JSMPEG Not working for cameras or birdseye

Checklist:

[x] I updated to the latest version available
[x] I cleared the cache of my browser

Release with the issue:

Card: 1.2
Integration: 2.1
Frigate: 0.9.1

Browser and Operating System:

HA OS
Windows 10 / Edge 94
Same issue on Windows 10 / Firefox
Same issue on HA Android

Description of problem:
I want to use the JSMPEG view for birdseye but it does not work with birdseye or any other camera.
As soon as I use live_provider: frigate-jsmpeg I get errors:
WebSocket connection to 'ws://homeassistant.local:8123/api/frigate/frigate/jsmpeg/birdseye?authSig=XXXXXXXXXXXXXXXXXXXXXXXXXXX' failed:
e.start @ frigate-hass-card.js?hacstag=394082552120:430
(anonymous) @ frigate-hass-card.js?hacstag=394082552120:430

In Firefox, it says 404 Not Found.
Similar to this comment but since I don't have the authentication error and it's not working at all, I am not sure this is related.
Both following WS URLs are working when I use frigate from Lovelace or using direct URL:
ws://homeassistant.local:8123/api/hassio_ingress/TGDdpxY_QFN2xTs_EJoGujLeQzU3QLOV1E_MfCYCa6E/live/birdseye
ws://<IP_ADDRESS>:5000/live/birdseye
Birdseye is working great from Frigate.
I also tried with a camera which work great with the default live_provider but same issue with jpmpeg. I tried with and without the frigate_camera_name, and with and without spaces, in lower or came case... I don't think it could be related to the name anyway since it should work with birdseye.
The most basic configuration is the following:
type: custom:frigate-card
frigate_camera_name: birdseye
live_provider: frigate-jsmpeg

Thank you for your support. Sorry if I was not clear. Here is a screenshot in context of Lovelace with the Frigate Add-On (standard installation on HA OS with the store - HA Blue - Odroid N2+).
In this case I use the developer tools from Firefox, you can see the connection to the WS is properly done and the content is streamed:

Then, you can see what happens when I attempt to load the card with the birdseye / jpmpeg configuration.

From the code, only reasons I can spot that would cause you to receive a 404:

Integration not installed correctly (Quick test: Press 'e' when HA is open, do your Frigate camera entities appear?). This would  cause /api/frigate to not exist at all.
Internal error (that ~couldn't happen).
Somehow you're getting a 404 from the Frigate backend (do you see the requests from the card in the nginx logs within your Frigate docker container, they're at /usr/local/nginx/logs )

Here's an example log from the nginx access logs in the Frigate docker container:
<IP_ADDRESS> - - [17/Oct/2021:08:48:17 -0700] "GET /live/birdseye?authSig=[REDACTED] HTTP/1.1" 101 507072 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36" "[IP1], ::1, [IP2]"

The integration is just proxying bits back and forth from the browser to the addon, so there's no logging there. There is logging for the HA assistant http handler, though (which shows the request being received and handled by HA-Core and thus almost certainly the integration). You can enable it with this in your HA configuration:
logger:
  default: warning
  logs:
    homeassistant.components.http: debug
    custom_components.frigate: debug

Here is the log record I get when viewing the birdesye JSMPEG stream:
2021-10-17 09:01:51 DEBUG (MainThread) [homeassistant.components.http.auth] Authenticated [IP] for /api/frigate/frigate/jsmpeg/birdseye using signed request
2021-10-17 09:01:51 DEBUG (MainThread) [homeassistant.components.http.view] Serving /api/frigate/frigate/jsmpeg/birdseye to [IP] (auth: True)

Thanks. Here is an extract of the logs around the loading of the integration (just after a restart).
I tried to not remove lots of things because I don't know if the log would still make sense for you.
My browser attempting to load the birdseye view from the card is on <IP_ADDRESS>.
2021-10-18 08:45:31 DEBUG (MainThread) [homeassistant.components.http.auth] Authenticated <IP_ADDRESS> for /api/frigate/frigate/jsmpeg/birdseye using signed request
2021-10-18 08:45:32 DEBUG (MainThread) [homeassistant.components.http.view] Serving /api/websocket to <IP_ADDRESS> (auth: False)
2021-10-18 08:45:35 DEBUG (MainThread) [homeassistant.components.http.auth] Authenticated <IP_ADDRESS> for /api/config using bearer token
2021-10-18 08:45:35 DEBUG (MainThread) [homeassistant.components.http.view] Serving /api/config to <IP_ADDRESS> (auth: True)
2021-10-18 08:45:37 DEBUG (MainThread) [homeassistant.components.http.auth] Authenticated <IP_ADDRESS> for /api/frigate/frigate/jsmpeg/birdseye using signed request
2021-10-18 08:45:37 DEBUG (MainThread) [homeassistant.components.http.auth] Authenticated <IP_ADDRESS> for /api/error/all using bearer token
2021-10-18 08:45:37 DEBUG (MainThread) [homeassistant.components.http.view] Serving /api/error/all to <IP_ADDRESS> (auth: True)
2021-10-18 08:45:38 INFO (MainThread) [custom_components.frigate]
-------------------------------------------------------------------
Frigate
Integration Version: 1.1.2
This is a custom integration!
If you have any issues with this you need to open an issue here:
https://github.com/blakeblackshear/frigate-hass-integration/issues
-------------------------------------------------------------------
2021-10-18 08:45:38 DEBUG (MainThread) [homeassistant.components.http.auth] Authenticated <IP_ADDRESS> for /api/camera_proxy/camera.garage using signed request
2021-10-18 08:45:38 DEBUG (MainThread) [homeassistant.components.http.view] Serving /api/camera_proxy/camera.garage to <IP_ADDRESS> (auth: True)
2021-10-18 08:45:39 DEBUG (MainThread) [homeassistant.components.http.auth] Authenticated <IP_ADDRESS> for /api/camera_proxy/camera.buanderie using signed request
2021-10-18 08:45:39 DEBUG (MainThread) [homeassistant.components.http.view] Serving /api/camera_proxy/camera.buanderie to <IP_ADDRESS> (auth: True)
2021-10-18 08:45:40 DEBUG (MainThread) [homeassistant.components.http.auth] Authenticated <IP_ADDRESS> for /api/error_log using bearer token
2021-10-18 08:45:40 DEBUG (MainThread) [homeassistant.components.http.view] Serving /api/error_log to <IP_ADDRESS> (auth: True)
2021-10-18 08:45:40 DEBUG (MainThread) [custom_components.frigate] Finished fetching frigate data in 1.855 seconds (success: True)
2021-10-18 08:45:40 DEBUG (MainThread) [homeassistant.components.http.auth] Authenticated <IP_ADDRESS> for /api/config using bearer token
2021-10-18 08:45:40 DEBUG (MainThread) [homeassistant.components.http.view] Serving /api/config to <IP_ADDRESS> (auth: True)
2021-10-18 08:45:42 DEBUG (MainThread) [homeassistant.components.http.auth] Authenticated <IP_ADDRESS> for /api/camera_proxy/camera.jardin_arriere using signed request
2021-10-18 08:45:42 DEBUG (MainThread) [homeassistant.components.http.view] Serving /api/camera_proxy/camera.jardin_arriere to <IP_ADDRESS> (auth: True)
2021-10-18 08:45:47 DEBUG (MainThread) [homeassistant.components.http.auth] Authenticated <IP_ADDRESS> for /api/config using bearer token
2021-10-18 08:45:47 DEBUG (MainThread) [homeassistant.components.http.view] Serving /api/config to <IP_ADDRESS> (auth: True)
2021-10-18 08:45:47 DEBUG (MainThread) [custom_components.frigate] Finished fetching frigate data in 0.282 seconds (success: True)
2021-10-18 08:45:47 DEBUG (MainThread) [homeassistant.components.http.auth] Authenticated <IP_ADDRESS> for /api/frigate/frigate/jsmpeg/birdseye using signed request
2021-10-18 08:45:55 DEBUG (MainThread) [homeassistant.components.http.auth] Authenticated <IP_ADDRESS> for /api/config using bearer token
2021-10-18 08:45:55 DEBUG (MainThread) [homeassistant.components.http.view] Serving /api/config to <IP_ADDRESS> (auth: True)


Ensure core Paragon theme CSS is built and published independently of consuming applications

Description
Currently, applications consuming @edx/paragon import its core SCSS in the top-most SCSS entry point (e.g., src/index.scss), along with any @edx/brand overrides:
// ... Any custom SCSS variables should be defined here
@import '~@edx/paragon/scss/core/core';

@import '~@edx/brand/paragon/fonts';
@import '~@edx/brand/paragon/variables';
@import '~@edx/paragon/scss/core/core';
@import '~@edx/brand/paragon/overrides';

With design tokens, the goal is to have the theme built independently of the consuming application so that any theme change does not require a re-build of each consuming application.
As such, consuming applications should no longer need to import SCSS directly from @edx/paragon or @edx/brand; instead, applications should import / inject an already-compiled CSS file. Note, this issue doesn't pertain to how applications will import/inject the compiled CSS file; this issue only relates to the generation of the CSS file itself.
In order to do this, Paragon will need to offer a way to compile the output CSS based on its design tokens and SCSS. Likewise, the @edx/brand NPM package(s) will also need a way to compile the output CSS.
This decision, of course, will have consequences for consuming applications, where SCSS variables or SCSS mixins from Paragon may no longer be used directly; instead, CSS variables or other alternatives will need to be used instead.
The proposal here is to have @edx/paragon generate core.css and light.css files. The contents of the light.css file would only contain the CSS variables pertaining to the light (default) theme variant. In the future, we could also generate a dark.css file for the CSS variables specific to dark mode. This way, consuming applications can choose which (and how) each stylesheet should be loaded and when (e.g., by dynamically creating/appending a <link> to the HTML <head>).
As such, the core.css file wouldn't necessary need to worry about which theme variant (e.g., light vs. dark) is active and simply use the CSS variables as needed (e.g., for component styles).
Acceptance Criteria

[ ] Ensure there is a Paragon CLI to compile Paragon's design tokens and SCSS styles to generated CSS files (e.g., perhaps similar to the build-scss.js Node script in www).

[ ] The output CSS should contain:

[ ] core.css

[ ] Core styles (i.e., foundation, layout, component styles, all the previously @include'd Bootstrap styles, CSS utility classes, usages of the CSS variables generated by the design tokens, etc.).

[ ] light.css

[ ]  All CSS variable definitions for the core Paragon light theme variant.

[ ] Each generated CSS file could be output twice: once minimifed and once unminified. This would make debugging easier for our future selves and for consumers than only generating a minified CSS file.

[ ] Consider the impacts on the @edx/brand NPM packages for theme authors. The CLI to compile the CSS into the appropriate files should be exposed to @edx/brand theme authors.
[ ] Verify the output CSS files will be included in the published NPM package such that it can be hosted on a CDN (we should be able to use an open source CDN for initial release like jsdelivr or unpkg).
[ ] Ensure consuming applications can still optionally import the necessary styles for core/light from installed copies of @edx/paragon and/or @edx/brand at the versions defined in package.json should an application not want to pull from a CDN (e.g., still supporting @import "~@edx/paragon/scss/core/core"; as an alternative to core.css and light.css).

Based on some feedback from our stakeholders, we ideally should support either using the compiled CSS output mentioned in the Acceptance Criteria above (i.e., core.css and light.css), likely pulled from an open source CDN like jsDelivr (at least for initial release), OR allow consuming applications to import from the locally installed versions of @edx/paragon and @edx/brand respectively. That way, applications would have an alternative to using a CDN to host a compiled CSS file.
For example, in the current state of @edx/paragon@alpha, I can either import the compiled dist/paragon.css file into my MFE via the CDN urls or I can still import @import "~@edx/paragon/scss/core/core"; to get the desired styles with CSS variables.

PR: DRAFT https://github.com/openedx/paragon/pull/2102


Talk view should have speaker twitter handles

Speaker twitter handles are now only visible in the speaker overview. They should also be available in the talk view.

Handles added


Push tags to populated repository

When populating repository in Gerrit, tags (if there is any) are also pushed to the repository.

@ceqi thanks for the contribution. Please can you rebase? I will be happy to merge.


solrcloud, state of node in state.json

When some of nodes are crashed or gone, it seems that state of node still active and solrnet will forward to the dead node sometimes.
Now I've solved this by doing as below:
private ISolrOperations<T> getSolrInstance<T>()
        {
            ISolrOperations<T> solr;
            try
            {
                solr = SolrNet.Cloud.Startup.Container.GetInstance<ISolrOperations<T>>();
                solr.Ping();
            }
            catch (Exception ex)
            {
                if (ex is SolrNet.Exceptions.SolrConnectionException)
                {

                    var provider = SolrNet.Cloud.Startup.Container.GetAllInstances<ISolrCloudStateProvider>().FirstOrDefault();
                    var leaderNode = string.Empty;
                    foreach (var s in provider.GetCloudState().Collections.Select(l => l.Value.Shards))
                    {
                        var replicas = s.Select(l => l.Value.Replicas);
                        foreach (var r in replicas)
                        {
                            leaderNode = r.Where(l => l.Value.IsLeader).Select(l => l.Value.Url).FirstOrDefault();
                        }
                    }
                    var oProvider = SolrNet.Cloud.Startup.Container.GetAllInstances<ISolrOperationsProvider>().FirstOrDefault();
                    solr = oProvider.GetOperations<T>(leaderNode);
                }
                else
                {
                    solr = null;
                }
            }
            return solr;
        }

but this code is dirty and uneffective, any other solution please!

@xavier-morera You know of somebody using SolrCloud and who can have a look at this?

@gjunge not anymore, at this moment.

I have exact reverse behavior in SolrCloud when solr nodes restarted the state.json in collection is still state: down it's not updating finding that the nodes came backup.

We had the same symptom in our SolrCloud installation. However, after going to several blogs and forums, we followed the suggestion that we should only consider shards and replicas to be active if it's in the list of live_nodes
Please review my PR above. We have similar code in production already but we're using a fork of SolrNet.


Change "controller" from a constructor to an initializer of a simple object

A secondary issue that has arisen in [Rename "controller"] (https://github.com/lhorie/mithril.js/issues/499) is that of the actual function of the "controller" property of a component.
Currently the property is a constructor that initializes a, as variously argued, "controller", or "view-model" or "view-context".
@pygy raised the point, which I agree with, that it should receive the view-context which it then initializes:

I think that we need to use different names for the initializer function (currently called controller) and the object it populates (for now this, then ctrl).
{
    init: function(foo) {
        foo.data = m.prop()
    },
    view: function(foo) {
        return m(".bar", etc...)
    }
}

...where foo can be named differently according to the context (ctrl, scope, viewmodel, etc...), but should, by convention, have the same name in both functions.
[source] (https://github.com/lhorie/mithril.js/issues/499#issuecomment-83591478)

With which @mindeavor seems to concur:

Nice! that's a neat option I haven't seen before. I think this will allow Mithril to get rid of the new keyword entirely. Also, I like the symmetry between the controller/init and view function signatures.
[source] (https://github.com/lhorie/mithril.js/issues/499#issuecomment-83610738)

as does @barneycarroll :+1:

I [think] this idea of having the unique instance as a passed in argument is great.
[source] (https://github.com/lhorie/mithril.js/issues/499#issuecomment-83698978)

The counter-argument from @lhorie is :

That doesn't warrant a breaking change, imho. We could talk about the merits of dropping this separately from the merits of dependency injecting the object (which is really just a variation of using this and new).
[source] (https://github.com/lhorie/mithril.js/issues/499#issuecomment-83733550)

I argue that, though a breaking change, this brings significant clarity to the concept and it brings symmetry between the proposed init and existing view. It also sheds use of this in the initialization code.
And this issue is thereby opened to discuss the merits of an injected initializer over a (typed) constructor for this thing whose final name is still the subject of debate. (There are other salient comments on that thread, so be sure to read them first).

this issue is thereby opened to discuss the merits of an injected initializer over a (typed) constructor

To clarify, I said that the DI suggestion is analogous to the factory pattern, not to whether the thing is a regular vanilla function or a constructor (and therefore a quasi-regular function as well).
//these two are analogous
function current() {
  return {foo: "bar"}
}
function proposed(data) {
  data.foo = "bar"
  return data
}

Note that neither uses this. My contention is that mandating a breaking change and a migration from current to proposed is potentially going to require a lot of work for those already heavily invested in Mithril, without bringing any mechanical advantages.
Compare to the proposal to obsolete m.deferred in favor of the ES6 Promise API. There are many strong reasons to do that (backed by a standard, .catch, .prototype, single-expression promise definition, single-expression .resolve and .reject, etc).

Leo,
I think what you have proffered is a straw-man. What is directly analogous is:
{
controller: function Current() {
        var ctx=this;
        ctx.foo = "bar"
    }

init: function proposed(ctx) {
        ctx.foo = "bar"
    }
}

However, this entirely misses the point; the argument is not (merely) about the pragmatic form of the code, but about the consistency and symmetry with view, and about the effect of initializing an object, explicitly provided, whose entire job is to provide context to the view.
The example from @pygy is what clarified it for me, by putting init and view together:
{
    init: function(ctx) {
        ctx.barValue = m.prop()
    },
    view: function(ctx) {
        return m(".bar", ctx.barValue())
    }
}

The relationship between initializing the context and using it is clear and obvious. That it eliminates the one place where Mithril depends on this instead of an explicit parameter is icing.
In this case the context is serving as a view-model. It could, of course, be otherwise.

Would it still be a straw man if I had written it like this?
{
  init: function() {
    var ctx = {foo: "bar"}
    return ctx
  },
  view: function(ctx) {
    return ctx.foo
  }
}

(point being, all of the variables are defined by app space and the only reason they have the same names is by convention, so neither is objectively clearer than the other)

@lhorie this doesn't have to be a breaking change if we apply context — we can ensure this with the following pattern internally:
var construct = ( function metaConstructorFacade(){
	var bind  = Function.prototype.bind;
	var slice = Array.prototype.slice;

	return bind ? function metaConstructor( Constructor, args ){
		return new ( bind.apply( Constructor, [ Constructor ].concat( args ) ) )();
	} : function metaConstructor( Constructor, args ){
		function Reconstruction( input ){
			return Constructor.apply( this, args );
		}

		Reconstruction.prototype = Constructor.prototype;

		return new Reconstruction();
	};
}() );

// ...In Mithril core
var ctxt = {};

return component.controller ? construct( component.controller( [ ctxt ].concat( userArgs ) ) || ctxt : ctxt;

Note that the arguably unperformant array methods calls can be optimised into for...of loops — this is just a proof of concept (I actually use this in Moria).
The above provides total BC for ES5 environments: if the user is in ES3 land (and do not have access to bind), this will work with the following caveat:
var controller = function(){
	this.thing = m.prop();
};

var ctxt = {};

ctxt = construct( controller, ctxt );

ctxt instanceof controller; // false!

You have suggested using apply with controllers yourself, and the behaviour above isn't documented anywhere. Besides, authors can mitigate with guard statements:
var controller = function(){
	if( !( this instanceof controller ) )
		return new controller();
}

The important thing to note here is that using this allows and arguably encourages people to expect weird and unreliable behaviour that doesn't extend well. Conversely, telling people not to use this allows a much less ambiguous way of extending and subclassing controllers. And if I know that instanceof is unreliable, then I'm going to achieve the same functionality with more dependable methods like explicit flags, eg ctxt.type = 'searchCtxt'.

@barneycarroll sorry, I think I didn't qualify "backwards compatible" properly. When I say backwards compatible, I mean compatible w/ Mithril 0.1.x. The argument is that ctrl(foo, ...args) signature is not backwards compatible w/ the current ctrl(...args) signature and would require going all-or-nothing to migrate from 0.1.x to 0.2.x
Contrast to, say, renaming the controller, which can be done in a backwards compatible way, you can choose to migrate at 0.2.x or 0.3.x or 0.9.x. This consideration is important because you ideally don't want to lock people out of new progressive improvements (be them bug fixes or new features) just because they don't have the bandwidth to go around refactoring their codebase to conform to some new aesthetic norm.

I don't find the aesthetics argument compelling and @lhorie has shown examples of how to achieve exactly what has been requested without changing the API, so I'm :-1: on this change.

@lhorie : I agree that an immediately breaking change needs to be exceedingly compelling, but I've already shown how this could be supported in 0.x without breaking existing code, the old way changed to throw in 1.0 and then remove in 1.1:
// in, for example, `m.module`
// was: var controller = new (module.controller || function() {});
var viewContext = createContext();

...

function createContext() {
    var ctx=module.controller ? new module.controller() : {};
    if(module.init) { module.init(ctx); }
    return ctx;
}

And indeed the support for controller could remain indefinitely if ultimately desired. And, of course, the above code could be inlined if there is only one place that does this, so the price in bytes is extremely low.

Wait, so the idea is that this snippet runs both controller AND init functions?
{
  controller: function() {return {foo: "bar"}},
  init: function(ctx) {ctx.baz = "quux"},

  view: function(ctx) {
    return m("div", ctx.foo, ctx.baz) //
barquux

  }
}

Maybe it's just me, but I'd expect one or the other to run, but not both.

I would remove the documentation for controller immediately, and wait to see if ever the need should present itself

I use them all the time (and I'd argue they're the most important piece of the components branch)

I personally find the argument against this, which amounts to "just abuse the constructor" to be undesirable

"Just abuse the constructor" isn't anyone's argument afaik (at least as far as the signature change proposal goes). I just said that it's possible to achieve the same level of clarity using the current API (by ignoring the existence of this altogether)
As I said before, obsoleting this and breaking controller signature are two separate topics.
My opinion is that a signature change should not happen because it's merely cosmetic in purpose.
Another suggestion that might be worth bringing up: One could just as well write something like this:
//preferences.mithril.js
var old = m.module
m.module = function() {
  var module = arguments[arguments[0].view ? 0 : 1]
  if (module.view) module.controller = function() {
    return module.init.apply(this, [{}].concat(arguments))
  }
  return module
})

//now we can use the init(ctx) proposal
//foo.js
var Foo = {
  init: function(ctx) {
    ctx.foo = "bar"
  },
  view: function(ctx) {
    return m("div", ctx.foo) //
bar

  }
}

The snippet is something you can drop in whenever you want to do your migration, so there's no need to wait for a core release. You can call init whatever you like, and you can choose whether it supports this, and whether it uses DI, etc without the need to get the community's blessing. And if you don't ever want to migrate, you simply don't use the snippet.

@lhorie,

Wait, so the idea is that this snippet runs both controller AND init functions?

Both are supported, at least for a time (the duration of 0.x, for example), for backward compatibility. One would not write what you wrote, but choose one or the other.
Either:
{
    controller: function() {
        this.foo="bar";
    },

    view: function(ctx) {
        return m("div", ctx.foo) //
bar

    }
}

Or:
{
    init: function(ctx) {
        ctx.foo="bar"
    },

    view: function(ctx) {
        return m("div", ctx.foo) //
bar

    }
}

Not both. The author can choose MVC-centric or MVx-centric. And, depending on the will of the community version 1.0 might might the presence of controller an error, then 1.1 might remove the check for it.
I agree that Mithril can be monkey-patched; but that's only appropriate (IMO) when shimming for a pending future release with a determined spec. Monkey-patching is otherwise extremely brittle.
Once again, this is not cosmetic, it's conceptual.

@lhorie,

I use them all the time (and I'd argue they're the most important piece of the components branch)

To be perfectly clear, I am not arguing that the object that results from invoking what is labeled "controller" in a Mithril component should go away, only that it's conceptualization be altered to be agnostic of MVC and function as an initializer (which is what a JS constructor logically is).
(Indeed, most languages' constructors are actually initializers but in JS the reality is critical to how the function is used and the language does not differentiate a constructor syntactically which is why there's a convention of lead-uppercase for them.)
If you prefer, Mithril internally could still call the object that results a controller, but externally it should be thought of as something that indicates it initializes the context provided to the view and, this issue argues, should be reformulated to be an initializer, not a constructor, bringing symmetry with view in both arguments and non-use of this.

Docs in components branch are now updated to favor the usage return (this is still allowed, but is now considered a fallback mechanism, for convenience)


Allow deletion of multiple values at once

All selected values are deleted from the treeview and database.

This will fix #18


use an eventemitter to emit route events and implement openApiDocument as a listener

purpose -> decoupling!

moved to internal bug tracker


Is it possible to run client on a remote server?

A step by step guide would be nice!

 I dont found any way for doing it. please help me

Thanks a lot for your helpI tried to connect them again yesterday and it was a success. I set servers ip for client and server with this command (—host ip adrress).
Sent from Yahoo Mail for iPhone
On Monday, September 17, 2018, 02:53, grafandreas<EMAIL_ADDRESS>wrote:
Carla is network based, it should be possible to just specifiy the server adress in your client. Have you tried that?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

@grafandreas Can we do this over SSH? (I'm a newbie) I can run jupyter via ssh. Would just SSH tunneling   the ports 2000, 2001, 2002 be enough?

@aquiire
Carla Server: Ubuntu 16.04 Desktop (my local machine -> carla renderer)
Carla Client (PythonAPI): Ubuntu 16.04 Server (remote cluster -> model trainings)

Remote port forwarding works for me without any issues.
You must check if your remote machine allows for remote port forwarding (AFAIK check it out somewhere inside /etc/ssh/sshd_config -> if it's not yours you'll have to ask administrator)
My local machine config (~/.ssh/config)

Host SOME_HOSTNAME_ALIAS
    HostName SOME_HOSTNAME
    User MY_REMOTE_USERNAME
    RemoteForward 2000 <IP_ADDRESS>:2000
    RemoteForward 2001 <IP_ADDRESS>:2001
    RemoteForward 2002 <IP_ADDRESS>:2002


Look into react-jsonschema-form release v5.7.0

We have an issue in our form component that could be fixed by:

New experimental_defaultFormStateBehavior prop was added to Form component
to specify alternate behavior when dealing with the rendering of array fields where minItems is set but field is not required.

@gusevda  can this be closed?


Where are enums going to live?

Should they all be in the top level class to reduce information that the client will be forced to remember.

I agree that they should be in the top level class, especially since that is how they'll be getting instances of each object.
user = sp.get_user(user_id)
user.get_following(sp.ARTIST)

Enums have been moved into a new file, constants.py. This will be imported within init.py so that clients can easiliy access the constants


test: fail when interpreting md footnote as link

WIP for https://github.com/lycheeverse/lychee/issues/1409.
Accidentally closed #1410 by rebasing on top of master, then pushing mid-rebase and don't have permissions to push there. 😅 So reopening here.
@jan-ferdinand fyi
The underlying issue is still not fixed. Just rebased.
@thomas-zahner let me know if you're still looking into this one.

@thomas-zahner, what do you think? I followed your advice and parsed the plaintext if link_type isn't LinkedType::Inline. Turned out nicely. Did I miss anything?

I went ahead and merged this. The tests pass and the changes just extended the existing logic. If we find a bug with it, we can easily fix it in-place.


Add EnumCodec

For now I suggest to add a simple EnumCodec, since it solves my issue.
Fixes #33

@essentinal Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@essentinal Thank you for signing the Contributor License Agreement!

Looks good from a cursory review. We should not add any other functionality beyond that. Using an enum and deciding how it should be represented in the database is an application-specific decision. Providing this feature at driver level is only a convenience feature and actually, this decision should be handled in a client.

If we do this here, it seems like we'd need the same thing in every r2dbc driver. The purpose of this is to translate a Java enum from/to an int or a String.
Frankly, this sounds like a feature better implemented at the client level (spring-data-r2dbc, etc.) Once done, it works for ALL drivers, including those not even implemented yet.
Whether such a feature on the client level would require any SPI changes, I'm not sure I see that (yet).

Reiterating on that topic, I'm also inclined to not provide an enum codec. If we would include that type of codecs in all drivers, then we would basically expect all drivers to ship with an enum codec to reduce variance amongst vendor-specifics. With R2DBC we intend to reduce the number of things each driver has to implement and enum codec falls in that category which would be provided by a driver with the same mapping (Enum to String and vice versa) while this is not a protocol-specific feature.
@nebhale Thoughts?

We discussed this topic in our team and concluded that enum support is a application-specific feature that would be implemented in the driver. Drivers only encapsulate database-specific feature. Mapping an enum name to a character column is not database-specific but rather an opinionated convenience feature.
Therefore, we decided to not include EnumCodec in our project. We could consider exposing a configurable codec registry so these concerns can be added through a specific extension point.
Thanks for all your effort!

Which maven version has this bug fixes ?

Enum codecs are not supported as per comment in this ticket.


Blockcomment

A suggestion for block comments with solution
/ *This is
a Block
Comment */

al.configuration.json
alsyntax.tmlanguage
from #139

@StanislawStempin "Thank you for the contribution. However, this is a change to the AL Language extension itself which is not part of this repository and not open sourced and therefore I can't merge it in. I would encourage you to open this as an issue and we will fix it in the next update."

Uploading al.configuration.json.txt…
Uploading alsyntax.tmlanguage.txt…

huups Clicked

Hi Gallimathias,
Block commenting with /* */ is already supported (replacing the old { } C/SIDE based block commenting) .  Isn't it?
Thanks
Kalman

In the attached files already, but this was inserted by myself. Since I assume that your "compiler" but swallows. Yes your compiler considers this or he simply ignores everything which is not al.

I do not clearly understand your issue. In an .al file one can block comment with / */  without your change.
That is part of the AL lexer. Or, do you think there is an issue with it?

No. I know my change is not immediately apparent if you do not see the original files.
The Lexer seems to get it otherwise it would not work, but the block comments were not highlighted. I'll try to make it visible right away

Ok on this Commit you can see my changes Commit:  745d030
Here you can now recognize my changes to the original files

Aah ok, so we have an issue in the colorizer. Ok, thanks for spotting it out, we will try to apply your fix.

One more question. Which version of the toolset are you using? The alsyntax.tmlanguage file should already contain these changes, since we have introduced block commenting with /**/
What I mean that you should not find anything like that

begin
{
If your  alsyntax.tmlanguage contains lines like these than you are on some old(December) version of the toolset.

Sorry the essence did not make it. These are the lines that have long been replaced in the alsyntax.tmlanguage . Actually with something similar you have.
<!-- We cannot support colorization for multiline comments since the '{' character is used in metadata definitions<dict>
+
begin
-			\{

I would have to have the latest version, I had created the machine last week with the official template of you. There were a few problems with the application but the lies themselves from me.

I'm on the road and I doubt that I can connect well to Azure. If I am afterwards in the Microsoft HQ in Munich I have wlan, then I tell you the current version number: D.

As Kalman mentioned this was already fixed but we will do some clean up in al.configuration.json since it's a publicly visible file.

This is a very good plan :D @StanislawStempin
There are not public files in the extension ???


Dashboard Token Listing: BLEU

Discord Handle of Submitter: @agustife
Token Symbol: BLEU
Network: Base
Token Address: 0xbf4db8b7a679f89ef38125d5f84dd1446af2ea3b
Network Explorer Link: https://basescan.org/token/0xbf4db8b7a679f89ef38125d5f84dd1446af2ea3b
Is a Super Token? true
Address of Underlying Token:  0xbf4db8b7a679f89ef38125d5f84dd1446af2ea3b
SVG Logo Link: https://lebleuelefant.com/bleu.png
Coingecko or Hardcoded Price?: Coingecko
Coingecko ID: le-bleu-elefant
Harcoded Price (if Coingecko ID is unavailable):
Token HEX Color: #03C3DF
Info on Listing: working on self-staking BLEU to get BLEUx rewards
Please close only after token has been added to resolver!

Correct Super Token address is here https://console.superfluid.finance/base-mainnet/supertokens/0x04fFB9ce95af003A3AA3611be6c6Ca1431151FB5?tab=streams

assets added, waiting for onchain listing

Listed. closing https://console.superfluid.finance/base-mainnet/supertokens/0x04fFB9ce95af003A3AA3611be6c6Ca1431151FB5?tab=streams


Files which size are a multiple of 64kb yield empty recipes

That's p. bad

Fixed in f5ebe2b153f3acd2b141d1f6f4629ef84945080a


Make bot network calculate seed value of Ogar scramble

Ogar uses a protection algorithm called scramble. If we have enough data we should able to calculate the seed values c.borderLeft, c.borderRight , c.borderTop ,  c.borderBottom
 this.scrambleX = Math.floor((1<<15) * Math.random());
 this.scrambleY = Math.floor((1<<15) * Math.random());

this.socket.sendPacket(new Packet.SetBorder(
                        c.borderLeft + this.socket.playerTracker.scrambleX,
                        c.borderRight + this.socket.playerTracker.scrambleX,
                        c.borderTop + this.socket.playerTracker.scrambleY,
                        c.borderBottom + this.socket.playerTracker.scrambleY
                ));

default values are:
´´´bash
borderLeft = 0
borderRight = 6000
borderTop = 0
borderBottom = 6000
´´´

bots could have a warm-up phase where they collect food, if they find another bot the following happens:
BOT A makes a snapshot of his position
BOT B also makes a snapshot of his position on his client
now we can calculate the seed values

@davidmann4 can you please make a video tutorial with your script please? I'm just not know anything about js node and all things :D

@Faicu Off topic, try making a new issue about it :)

solution: do not crack at all - create a own scramble system based on the start packet
calculate offset to the tracking system

done


Make table column names and other functionalities always visible

What:

Currently, when scrolled down:

https://github.com/BalticAmadeus/ProBro/pull/467


Acknowledge .NET Core 2.1 and Fedora 28 were released.

Signed-off-by: Jan Pazdziora<EMAIL_ADDRESS>

Does the releases.csv need updating also? (I'm seeing this referenced to by Azure VSTS .Net Core Tool Installer Step)

Possibly yes, but I'm not really familiar with everything that might need to be changed with the new release, or indeed, where to find those download URLs. I was only looking from the point of view of Fedora releases, EOL'ed and current.

Yeh, fair enough. Given that not everything seems to be working for 2.1.0 yet (see #1627 for example) it might be jumping the gun to merge this in just yet. 😞

The example in the document is just that, an example. Adding the link to the 2.1 supported OS versions makes sense. Maintaining a generic example doesn't feel like something that's needed.


Make the impact of the errorcode change slightly less.

A number of sniffs use capitalization in the errorcodes to improve readability. This was unnecessarily undone by the string_to_errorcode() implementation.
For the sniffs were the errorcodes have not necessarily changed while using this function, this maintains BC instead of breaking it.

P.S.: build failure has nothing to do with this PR, but with a problem with PHPUnit on Travis for PHP7+

Even though the build failure is unrelated, I won't be able to merge this (from GitHub's UI) until it is fixed. I guess we probably want to fix that before 0.11.0 anyway? I assume the issue is just that the PHPUnit version has been upped and we may need to manually install a lower version, or something like that?

I guess we probably want to fix that before 0.11.0 anyway?

We kind of need to as otherwise we won't be able to merge the changelog or develop into master.

I assume the issue is just that the PHPUnit version has been upped and we may need to manually install a lower version, or something like that?

We currently use the PHPUnit version included by default with the Travis PHP environments and don't install PHPUnit ourselves. So this is a Travis environment issue.
See: https://twitter.com/jrf_nl/status/839845035214524418
We could start requiring PHPUnit ourselves via composer, but it will (at least) double the build time.

We could just grab the phpunit phar instead. That should be fast. Alternatively we could install it via composer and then make sure that vendor is cached by Travis. Thoughts?

@westonruter It's not as simple as that as we'd need different versions of PHPUnit for the different PHP versions we're testing against. The latest PHPUnit version has a minimum PHP requirement of PHP 7.

Here is what WordPress core is doing: https://core.trac.wordpress.org/ticket/40086
Basically, installing the PHPUnit version manually.

As this affects PHPCS and all other PHPCS standards as well, I'm working on a fix to pull upstream for this.

Upstream fix has been pulled: https://github.com/squizlabs/PHP_CodeSniffer/pull/1384

As upstream is taking its time, I've pulled #873 as a temporary fix in the mean time to get the builds passing again.


Quick move between block files

@jrliu95
I figured this could be an interesting option, to have a quick move between blocks of the same subject. This takes away space, though, that could possibly be taken by more important action buttons for you guys. Let me know what you think.

That's a great idea! Since people processing the blocks likely want to process quite a few of them, this will be very useful. Is this in the newest version of the GUI?

it's in place now!


Temporary integration of FSL eddy

While we advance on #95, we agreed on integrating FSL eddy.

Resolved by: #144.


Upgrading time crate to 0.3.35

The time crate released a new 0.3.35 version, and it introduced a few breaking changes, mainly in the module naming and re-export path. Resulting in compile error, if one depends on the latest time release.
error[E0432]: unresolved import `time::format_description::FormatItem`
   --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-sqlite-0.7.4/src/types/time.rs:192:72
    |
192 |     use time::format_description::{modifier, Component::*, FormatItem, FormatItem::*};
    |                                                                        ^^^^^^^^^^ `FormatItem` is a type alias, not a module

error[E0425]: cannot find function, tuple struct or tuple variant `Component` in this scope
   --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlx-sqlite-0.7.4/src/types/time.rs:194:34
    |
194 |     const YEAR: FormatItem<'_> = Component(Year({
    |                                  ^^^^^^^^^ not found in this scope
    |
help: consider importing one of these items
    |
192 +     use time::format_description::BorrowedFormatItem::Component;
    |
192 +     use time::format_description::OwnedFormatItem::Component;
    |

Full log: https://github.com/SeaQL/sea-query/actions/runs/8626694053/job/23645278046#step:4:452

[patch.crates-io]
sqlx = { git = "https://github.com/wyatt-herkamp/sqlx.git", branch = "time_fix" }
sqlx-sqlite = { git = "https://github.com/wyatt-herkamp/sqlx.git", branch = "time_fix" }

Here is a temporary fix for anyone who is using sqlx 0.7 such as people using sea-orm.
Again very temporary fix. But it is getting the code to compile. All I am doing is locking the dependency for time to 0.3.34

As a temporary workaround, just pin the version of time in your dependencies:
time = "=0.3.34"

Sorry @wyatt-herkamp, I'm sure you have the best of intentions, but given the recent attack on xz-utils, I don't think it's a good idea to recommend that people patch SQLx to a repository controlled by a third party.

As a temporary workaround, just pin the version of time in your dependencies:
time = "=0.3.34"

Sorry @wyatt-herkamp, I'm sure you have the best of intentions, but given the recent attack on xz-utils, I don't think it's a good idea to recommend that people patch SQLx to a repository controlled by a third party.

I tried doing that. However, it was still erroring out. I completely understand. I am using this in a school project so it won't get near production.

If anyone is still having the same issue, please upgrade your local time dependency to 0.3.36, just like:

https://github.com/SeaQL/sea-orm/pull/2267

The breaking change in time crate has been patched in 0.3.36 but not in 0.3.35

https://github.com/time-rs/time/blob/main/CHANGELOG.md#0336-2024-04-10
https://github.com/time-rs/time/issues/675


bug: Diagram not displaying correctly in dark mode in latest documentation

Describe the problem
In the latest documentation (not in the stable one) it is observed that the arrows of the update diagram are not visible in the dark mode. See https://copier.readthedocs.io/en/latest/updating/#how-the-update-works.
Expected behavior
Arrows must be visible on all themes.
Screenshots/screencasts/logs
dark mode:

light mode:

This was indeed brought up by @Yajo in #528. I saved the notification to see if I can find a way to make the lines visible with both themes.

@pawamoy I think some css should be added that changes the color of the chart based on the theme change.

Native support for Mermaid.js is still in Insiders: https://squidfunk.github.io/mkdocs-material/reference/diagrams/
But yeah there might be a way with CSS :slightly_smiling_face:

Native support for Mermaid.js is still in Insiders: https://squidfunk.github.io/mkdocs-material/reference/diagrams/ But yeah there might be a way with CSS 🙂

That page works fine in dark mode. How do they do it?

@Yajo footnote: While all Mermaid.js features should work out-of-the-box, Material for MkDocs will currently only adjust the fonts and colors for flowcharts, sequence diagrams, class diagams, state diagrams and entity relationship diagrams.

That page works fine in dark mode. How do they do it?

Well I guess the mkdocs-material site is built with the insiders version of mkdocs-material, therefore supporting theme switch :slightly_smiling_face:

Found a way, there was actually an example in mkdocs-mermaid2-plugin docs :slightly_smiling_face: Pushing a PR


[BEAM-13683] Correct SQL transform schema, fix expansion address override bug

Converts the sqlx package's ExpansionPayload to have its Options field unexported, as it is incompatible with the SQL transform schema as implemented in Java. Also propagates a corrected expansion address back into the graph representation of the expansion transform in the event of an overridden handler (either a hardoverride tag as a result of an xlangx.Require() call or a per-URN override.)

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Run Go Flink ValidatesRunner

R: @lostluck @youngoli


P2P governor test for minConnectTime

I discovered that minConnectionTime needs to take into account established
connections (or ones that we are creating).  A fix is in PR #2526 (the commit
p2p-governor: minConnectTime computation).  We'd like to extend p2p tests to
cover this case.

What is the state of this issue?


20 instead of 200 bonus points?

It seems that the bonus points are 20 right now instead of 200.
Will this be fixed?
If it will be fixed, I'll restart new chats now (1200 - 50 >> 1000). If it won't be fixed, I'll be more hesitant to restart new chats (1020 - 50 < 1000).

Does this hold if the total score is multiplied by the defense value (second column)?

For some reason I though the maximum number of points one can get is 1200.


Add Syscoin Addresses (Tanenbaum, Mainnet & ROLLUX)

What is needed?
Adding in the Syscoin Safe Deployment addresses after deployment has been done.
Relies on :
https://github.com/safe-global/safe-singleton-factory/issues/123
https://github.com/safe-global/safe-singleton-factory/issues/124
https://github.com/safe-global/safe-singleton-factory/issues/125
Background
After deployment has been made, the addresses need to be added here first before changes to safe transaction service can be made.
Related issues
https://github.com/safe-global/safe-singleton-factory/issues/123
https://github.com/safe-global/safe-singleton-factory/issues/124
https://github.com/safe-global/safe-singleton-factory/issues/125
ATT:  @develcuy

@Uxio0, we'll have @GundamDweeb do the PR once we have your PR for: https://github.com/safe-global/safe-singleton-factory/issues/123 https://github.com/safe-global/safe-singleton-factory/issues/124 and https://github.com/safe-global/safe-singleton-factory/issues/125

@GundamDweeb, please add https://github.com/safe-global/safe-singleton-factory/issues/153 (Rollux Mainnet) to the description of this task. Thanks in advance!

Closing this due inactivity


New IR

This implements an initial version of the IR described in #126. The two missing features are:

Constant ports
Using interface signals in the body. These are not used super often so not sure if its worth supporting them.

Furthermore, the IR generation panics every time there is a binding problem. We need to figure out if a separate pass figure out binding structures and report errors or should this be the job of astconv.
Furthermore, there is no way of deleting things like instances or invocations from a component. Not sure if we want this capability but it can be done using a separate map that tracks validity of things in IndexStore objects.
Next steps:

Rewriting the compiler phases (type checking, interval checking, lowering, etc.) using the new IR.
Adding enough debug information to the ir::Component object so that we can report good error messages. We should store things like location information using a bunch of DenseInfoMaps that are stored behind a pointer so that we don't increase the size of ir::Component too much more.
Figure out how lower will work

Inevitably, as we work on these, the IR's design will change: we'll add more methods on all the IR objects and maybe add more information to things. This is fine an expected!

@UnsignedByte we can chat more about it but if you're curious about what the IR looks like, you can run cargo run -- <file> --show-ir and it'll generate a printed representation of the IR for the program.

Awesome! Predictably, I think this is an interesting implementation problem:

Furthermore, there is no way of deleting things like instances or invocations from a component. Not sure if we want this capability but it can be done using a separate map that tracks validity of things in IndexStore objects.

Hopefully it's possible to avoid needing deletion as long as possible, but when it is necessary, this (a "soft delete" map) doesn't sound like a bad way to go. Another (possibly very bad) option is to make such updates functional: if you want to delete stuff, you have to do the moral equivalent of a functional-programming filter and generate a new component that drops some of the contents.


ci: Tag api module on release

This enables it to be imported directly into other Go projects.
Follow up to #331.

@dkoshkin yeah we don't use the make tag for this unfortunately - maybe we should but this is a bit tricky when using release-please.


python311Packages.aiounifi: 66 -> 67

Diff: https://github.com/Kane610/aiounifi/compare/refs/tags/v66...v67
Changelog: https://github.com/Kane610/aiounifi/releases/tag/v67
Description of changes

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

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

Result of nixpkgs-review pr 272474 run on x86_64-linux 1

3 packages built:

home-assistant-component-tests.unifi
python311Packages.aiounifi
python311Packages.aiounifi.dist


Training data size for the generator and discriminator

I'm sorry to bother you after so many years:

I would be interested to know the size of the data used to pre-train the generator and the pre-train the discriminator on the zh-en data in the paper.
And whether the data used in train:, generator: and discriminator: during adversarial training in config_gan_train.yaml is the same as the data used in the previous pre-training of the generator and discriminator.
Looking forward to your reply

Sorry for the late reply.  As so many years passed, I cannot answer such a detailed question.


Prevent BubbleMenu from visible during user selecting content.

For more information: https://github.com/mashcard/mashcard/issues/105#issue-1282124018


Visualization backup revamp

The code related to #14698
Do not merge before https://github.com/CartoDB/cartodb/pull/14744

[x] Use VisualizationsExportService2Importer in before_destroy of the Visualization model (still using the visualizations_backup FF)
[x] Update tests from visualizations_export_service
[x] Same as done with Visualization model, saving a Visualization backup before a Layer is removed
[x] Layer tests

The last test added. Everything ready if the light goes green


Bug introduced into useful-links

Describe the bug
When hovering over a book, the animation works, but the backside disappears after just a second or so.  They behave properly in Firefox, but not Safari or Chrome.
To Reproduce
Steps to reproduce the behavior:

Starting at home page
Click Useful Links
Scroll down to the Books images
Hover

Expected behavior
When hovering over a book cover image, the book should flip to show the description of the book until you are no longer hovering.
Desktop (please complete the following information):

OS: Mojave 10.14.6
Browser: Safari 14.0, Chrome 86.0.4240.80 , FireFox 81.0.2

Additional context
I think I made this happen.  I think that I ended up merging a pull request that anuran-ux had closed. Sorry.  I cannot find the bug.

It works fine in Firefox 82.0b9, Chrome 86.0.4240.75 and Edge 86.0.622.43.

If you hover over the  books : Javascript for Kids, Javascript & JQuery, Cracking the Coding Interview, the text will disappear after a split secon in Chrome 85.0.4183.121

@sauravk7077 yes it works in firefox, but chrome...


Bug when searching in a book with a large table of contents

Hello!
When working with a book that has a large table of contents (I attach an example file below), a problem arises with the search. When you try to enter a search query that is not present in the book, the application crashes. I fixed this by rewriting the search function from recursive to a while loop. In my case, this solution helped solve the problem.
The attached epub file has been archived because .epub is not available for attachment: epub file

This fix targets version 2.7.2

Thanks for spotting and fixing this issue @vitaliynester!
Although the main branch is frozen for changes now, would you mind opening a PR targeting develop?

Changed to develop

@vitaliynester I adapted your changes to the latest develop. But as I couldn't reproduce the issue with the book you shared, would you mind checking my changes before I merge it? Thanks.

I apologize for the long response. Yes, after these changes the search works without errors. This is great!


Clicking warnings/error dialog should scroll in the correct file

If multiple files are used in a single compilation run, and the error is in a different file, clicking the error will just jump to the respective position in the master file, and not in the included/imported file.
The correct way to fix this is as follows:

disable auto-compilation
switch to the correct file (it is part of the error message)
scroll to the correct position

Seems this has been fixed. Can someone verify? Seems to work as expected on my end.

 Sorry about that!

I do not think this is fixed since early September. It is a case when using imports and there's an error in the referenced file, clicking on it will not switch tabs.
I do not see any commits in the last 25 days which fixed this?

Indeed but upon testing it, it not only switched to the imported file tab, it also scrolled down to where the error is.


Add option to disable Tor for merchant callback url

Hi,
here is my proposal to solve issue #9.
It reuses the existing local_network privacy context to disable tor only for the merchant callback.
Closes #9

Thanks for another great PR!
I will follow up with some cosmetics. I will probably adjust the config option name and make it default to use_tor instead of specific value, so please be aware some changes are coming.

Please note the config option changed to skip_tor_for_merchant_callbacks and so the value meaning is reverted. This is mainly to better cover scenario where primary use_tor is false.
Let me know if you need the deb release, otherwise I will wait for a couple more changes.

I agree, your name is better. Also the renaming to SKIP_TOR.
I can wait a few days or weeks for a new release, but I'd prefer not to wait more than a month.

I just released a deb addressing this and also the custom description issue.

Thanks I already tested it, see https://github.com/CypherpunkPay/CypherpunkPay/issues/5#issuecomment-1002096335
I would prefer not to disclose it. It's a very small deployment with only 1 or 2 payments per month. Users can upgrade their accounts to enable benefits/more features.

Thanks for testing! Your code reviews are very helpful!

I would prefer not to disclose it.

Of course. I enjoy seeing CypherpunkPay being used in contexts requiring privacy.


the screen shows the time, date and hoildays and wow you look hot and headlines

How can I change these and how do I get to the terminal screen

how can I change colors

You have to go to the config file present in the magic mirror repository..

Please refer to http://forum.magicmirror.builders for support and troubleshooting.
I'm closing this issue for now. If you feel this issue should remain open, please let me know.


Make the const generic degree into a generic trait struct

This PR depends on #65.
It is an extremely large change, so it would help to get it merged within a day or two. Otherwise it will conflict with other PRs. It is not easy to re-do, due to the number of manual fixes required.
This PR replaces the MAX_POLY_DEGREE const generic with a PolyConf trait containing a MAX_POLY_DEGREE constant.
It also makes a bunch of associated fixes and replacements:

FULL_RES_POLY_DEGREE becomes TestRes
IRIS_BIT_LENGTH becomes IrisBits
There are new FullRes and TinyTest config types, which are currently only used in tests
Some automatic derives can't be used, and need to be re-implemented manually
Some code is cleaned up to make this change simpler

This is part of #59, but I'm going to replace Coeff in another PR.

Rebased to resolve merge conflicts, now I'm going to merge with Eduardo's previous approval.


Add some statistics infos into PageStorage v3 GC.

What problem does this PR solve?
Issue Number: ref #3594
Problem Summary:
What is changed and how it works?
added info log:
[2022/03/31 16:08:31.123 +08:00] [INFO] [WALStore.cpp:239] ["WALStore:stress_test Dumped snapshotSave directory snapshot to log file done. [files_snapshot: log_2_1, log_3_0] [num of records: 1001] dump into [current_log=stress/wal/log_3_1, size=92096]."] [thread_id=22] (for testing, changed needSave()
[2022/03/31 16:08:31.149 +08:00] [INFO] [PageDirectory.cpp:1237] ["PageDirectory:stress_test After MVCC gc in memory, clean [invalid_snpashot_nums=5] [invalid_page_nums=0] [total_deref_counter=0] [all_del_entries=15442]. still exist [snpashot_nums=16], [page_nums=1001]"] [thread_id=22]
[2022/03/31 16:08:32.661 +08:00] [INFO] [BlobStore.cpp:699] ["BlobStore:stress_test BlobStore gc get status done. gc info: Read-Only Blob: [null]. No GC Blob: [1/0.54, 128/0.43, 169/0.21, 170/0.72, 171/1.00]. Full GC Blob: [126/0.02, 127/0.02, 129/0.12, 130/0.03, 131/0.02, 132/0.02, 133/0.02, 134/0.02, 135/0.03, 136/0.02, 137/0.02, 138/0.02, 139/0.02, 140/0.02, 141/0.02, 142/0.02, 143/0.02, 144/0.03, 145/0.03, 146/0.02, 147/0.02, 148/0.05, 149/0.03, 150/0.03, 151/0.04, 152/0.03, 153/0.05, 154/0.04, 155/0.04, 156/0.03, 157/0.05, 158/0.05, 159/0.05, 160/0.05, 161/0.05, 162/0.06, 163/0.05, 164/0.05, 165/0.09, 166/0.09, 167/0.10, 168/0.10].

Check List
Tests

[ ] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

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

close as the changes are contained in https://github.com/pingcap/tiflash/pull/4537


feat: warn about old array input

What does this PR do?
Warn users about using old-style of array input (e.g. --my-flag=val1,val2,val3) and suggest new style (e.g. --my-flag val1 --my-flag val2 --my-flag val3)
What issues does this PR fix or reference?
@W-16343745@
https://github.com/forcedotcom/cli/issues/2928

QA notes:  using bin/run.js with org list sobject record-counts
the warning...
✅ appears when using the flag with 1 and >1 commas
✅ appears when using the flag with 1 trailing comma
✅ does not appear when not using the flag
✅ does not appear when using the flag without commas
✅ does not appear with \,
✅ does not appear with \\,


[BUG]LiteDb doesn't insert data in .NET 5.0.100-preview.1.20125.9

Version
.NET Core 5.0.100-preview.1.20125.9
Describe the bug
LiteDb doesn't insert data in .NET 5.0.100-preview.1.20125.9
Code to Reproduce
using LiteDB;
using System;
using System.IO;
public class Author
{
public Guid Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
using (var db = new LiteDatabase("mytest.db"))
{
var collection = db.GetCollection("authors");
var author = new Author
{
Id = Guid.NewGuid(),
FirstName = "Mark",
LastName = "Twain"
};
collection.Insert(author);
var results = collection.Find(Query.All(Query.Descending), limit: 100);
foreach (var item in results)
{
Console.WriteLine(item.FirstName + " " + item.LastName + " " + item.Id);
}
Console.WriteLine("Record Count:" + collection.Count());
}
Expected behavior
data insert successfully.
Screenshots/Stacktrace
If applicable, add screenshots/stacktrace
Additional context
.NET Core SDK (reflecting any global.json):
Version: 5.0.100-preview.1.20125.9
Commit: 12e88ed2e5
Runtime Environment:
OS Name: Windows
OS Version: 10.0.17763
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\5.0.100-preview.1.20125.9
Host (useful for support):
Version: 5.0.0-preview.1.20120.5
Commit: 3c523a6a7a
.NET Core SDKs installed:
5.0.100-preview.1.20125.9 [C:\Program Files\dotnet\sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.App 5.0.0-preview.1.20124.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 5.0.0-preview.1.20120.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 5.0.0-preview.1.20122.1 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Verify Scenarios:
1). Windows 10 RS5 X64 + .NET Core SDK build 5.0.100-preview.1.20125.9: Fail
2). Windows 10 RS5 X64 + .NET Core SDK build : 3.1.101 Pass
Copy from https://github.com/dotnet/aspnetcore/issues/19491
@dotnet-actwx-bot FYI

@DotNetAppCompatFeiWang This bug was fixed in the master and will be present in the next incremental release.
This bug happened because the implementation of Enum.CompareTo was recently changed in the CoreCLR. For more info, see #1533 .


Added failure handling for not having expected number of ready replicas

What this PR does
Towards: https://github.com/giantswarm/giantswarm/issues/31013
Makes use of new failure handlers to add extra debug information when Deployments, DaemonSets or StatefulSets fail to become ready before the test timeout.
Checklist

[x] Update changelog in CHANGELOG.md.

Trigger e2e tests

/run cluster-test-suites

😆  The CAPA China test decided to fail in exactly the right way to actually show this change in action. Amazing!
Adding the skip label as this shows the change works as intended.


Merge editor: Unicode character in compare editor title

Testing #27549

create a merge conflict as described here: https://github.com/Microsoft/vscode/issues/27288#issuecomment-304138928
enable code lenses
click on 'Compare Chnaged'
Compare editor opens, but has a strange title:

Should be a dup of https://github.com/Microsoft/vscode/issues/27364 unless it isn't fixed for some reason.

@aeschli Should be fixed in todays insiders. Could you check which version you are running?

I tested with Version 1.13.0-insider
Commit c2a17a7929259d3d2643cb3f98478e994a39605b
Date 2017-05-30T05:12:15.312Z

Fix was in the next commit & build. Marking as duplicate.


/questlore issue

Both quests "A Gold Experience" and "A Little Touch of Color" have wrong QP requirements in the /questlore book. Both quests' QP Requirements are 30 instead of 10.

Fixed, and will be updated soon.


feat: nicer display for fbc pipelines

Functionally, this was all doing the right thing before. Tasks later in the pipeline wait automatically for preceding tasks if the output of a preceding task is used as a param of a later task.
However, our UI doesn't render the pipeline nicely if we only rely on those dependencies. By using runAfter, we can hint to the UI how the pipelinerun should be rendered.

@happybhati done, updated!

@happybhati done, updated!

I think you updated task version and readme instead of pipeline.

@happybhati done, updated!

I think you updated task version and readme instead of pipeline.

:cry: oh my. Fixing!

OK, let's try that again.


Allow environment variable config

Currently opening the terminal from atom screws up my npm install process because the NODE_ENV variable is set to production by atom. This makes npm ignore the devDependencies that I need for building my project.
Is there any chance we could get a way to set environment variables before launching the terminal? Or maybe just setting NODE_ENV to something else?

This is also conflicting with my workflow. Is this something that can be fixed in atom-terminal?

If you are not on windows, you can try to use the following config:
app: "/bin/bash"
args: "-c 'NODE_ENV=development;/usr/bin/x-terminal-emulator'"
I haven't tested this, but something like this should work.

That works in Ubuntu 14.04! :cool:


Responsive UI

Use percentage widths for sidebars to avoid centre column getting super wide
Reorder columns to put right sidebar content last
Collapse to single column when viewport gets too thin
Collapse navigation to inline list at top of page on thin viewports

With the new files library the right column could go now I guess. It just has some form controls like the update-page-button that are already in the center column too.

As of 2.0 Admin UI is fully responsive with Bootstrap 4 (beta2). Phone, Tablet, whatever.


feat: supporting pushing entire secret for bitwarden provider

Problem Statement
What is the problem you're trying to solve?
Related Issue
Fixes https://github.com/external-secrets/external-secrets/issues/4087
Proposed Changes
How do you like to solve the issue and why?
Checklist

[ ] I have read the contribution guidelines
[ ] All commits are signed with git commit --signoff
[ ] My changes have reasonable test coverage
[ ] All tests pass with make test
[ ] I ensured my PR is ready for review with make reviewable

Ugh, it encoded the value. I'll fix that later.


Semantic release

Codecov Report

Merging #31 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #31   +/-   ##
=======================================
  Coverage   11.48%   11.48%
=======================================
  Files           1        1
  Lines         235      235
=======================================
  Hits           27       27
  Misses        208      208

Continue to review full report at Codecov.

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


How do I run the code????

I have absolutely no clue how to run the code and I don't have experience with python or jyputer notebook????? Help!

Hey!
Well, you would need to follow some steps (recommended):

Install python if you do not have it, and create a virtual environment in the same place as where you have the repository in your local file system: python3 -m venv venv.
Activate the environment: source venv/bin/activate. This command will work for Linux & Mac, for Windows would be: venv/scripts/activate.
Install jupyter notebook: pip3 install jupyter, and run it: jupyter notebook.
Now you can go to the .ipynb files, install the dependencies (would have to search for each of them in google), and run the cells!

thank you soooo much
:)
On Sat, Feb 18, 2023 at 12:44 AM Nil Andreu @.***>
wrote:

Hey!
Well, you would need to follow some steps (recommended):

Install python if you do not have it, and create a virtual
environment in the same place as where you have the repository in your
local file system: python3 -m venv venv.
Activate the environment: source venv/bin/activate. This command
will work for Linux & Mac, for Windows would be: venv/scripts/activate.
Install jupyter notebook: pip3 install jupyter, and run it: jupyter
notebook.
Now you can go to the .ipynb files, install the dependencies (would
have to search for each of them in google), and run the cells!

—
Reply to this email directly, view it on GitHub
https://github.com/huseinzol05/Stock-Prediction-Models/issues/118#issuecomment-1435514323,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AR3BTQVZ4P67V5CCVH2VFFLWYB4XJANCNFSM6AAAAAAS5UQKFU
.
You are receiving this because you authored the thread.Message ID:
@.***>

Anything else let me know if you want @Maxwick456 !


Cancel button behavior

The cancel button cancel the dialog (which is normal) but also clears the date, which is a little bit confusing, in my opinion. It might be a good thing to be able to cancel the dialog without setting the date to null.
Maybe just adding a clear button and stop reseting on cancel?

Oh yeah, I think this was broken by pull request #8. I will look into your PR as a better alternative

closed by pull request #18


feat(deal-ticket): deal ticket margin levels

Related issues 🔗
Closes #3767

Is there a PR to update the Specs with this added functionality?


Expose a way for user to set different element speed matrices/tensors

For both 2D and 3D provide a way for the user to set the element Tet "M" or Tri "T" values.

done here<PHONE_NUMBER>69fdd71382e72e735400f5a859edb2


can I use this project for commericial use

Yes, pursuant to the terms of the MIT license.
If you'd like, you may contribute monetarily to the maintenance of the
Tabula project here: https://opencollective.com/tabulapdf
On Jul 30, 2017 12:05 PM, "rajdeokumarsingh"<EMAIL_ADDRESS>wrote:

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/tabulapdf/tabula-java/issues/176, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAhdmq84ZRFC_6BJs9EWOV5WExKr3D5Eks5sTKm9gaJpZM4OnrJw
.


SSL for docs

🐞 Problem

https://poliastro.readthedocs.io works, but https://docs.poliastro.space doesn't.
🎯 Goal

HTTPS all the things!
💡 Possible solutions

Find out how to get a SSL certificate, perhaps with Let's Encrypt https://letsencrypt.org/.
📋  Steps to solve the problem

Comment below about what you've started working on.
Add, commit, push your changes
Submit a pull request and add this in comments - Addresses #<put issue number here>
Ask for a review in comments section of pull request
Celebrate your contribution to this project 🎉

This is the key part of the docs:
http://docs.readthedocs.io/en/latest/alternate_domains.html#cname-ssl

We don’t support SSL for CNAMEs on our side, but you can enable support if you have your own server.

Also, related issues: https://github.com/rtfd/readthedocs.org/issues/2652 https://github.com/rtfd/readthedocs.org/issues/3282

This is in the works https://github.com/rtfd/readthedocs.org/issues/2652#issuecomment-400741375 so I won't take any action from the poliastro side. Closing!

Now it works! We have to change the links everywhere.
https://docs.poliastro.space/

https://www.eff.org/deeplinks/2018/07/google-chrome-now-marks-http-sites-not-secure


Fixing page switching in the policy section

Affected module
UI
Describe the bug
Good afternoon!
In the policy view section, when switching from one page to another, the page counter is lost. It is impossible to view the policies on the pages further than the second one.
To Reproduce

Expected behavior
Switching between pages in the policy section should be fine.
Version:

OpenMetadata version: 1.1.7

Hi @AlekseevVadim,
We have verified same on our end and not able to reproduce the same. Feel free to re-open with additional info like network or console if you are still facing this issue.
Verified with 1.2 release


Model - Serials - Uniquify serials

We need a model for uniquifying serials.
Need to account for:

name changes of same serial
presence/absence of "The"
Publication data - e.g. "The Coleopterists Bulletin" was "The Coleopterist's Bulletin" during certain date ranges but should be the same continuing publication.
Things like "Series A" and "Second Run"

Considerations: similar serials task.

Closing for https://github.com/SpeciesFileGroup/taxonworks/issues/970


[Bug] Docs is getting deployed from main branch

Astronomer Cosmos Version
1.4.1
If "Other Astronomer Cosmos version" selected, which one?
No response
dbt-core version
1.8.0
Versions of dbt adapters
No response
LoadMode
AUTOMATIC
ExecutionMode
AWS_EKS
InvocationMode
None
airflow version
2.9.0
Operating System
Linux
If a you think it's an UI issue, what browsers are you seeing the problem on?
No response
Deployment
Official Apache Airflow Helm Chart
Deployment details
No response
What happened?
It appears that the documentation at https://astronomer.github.io/astronomer-cosmos is being deployed from the main branch. This can be confusing for users, as they may see documentation for features that haven't yet been officially released.
Relevant log output
No response
How to reproduce
Example:
We can see remote paths manifest parsing docs here
https://astronomer.github.io/astronomer-cosmos/configuration/project-config.html
Anything else :)?
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Contact Details
No response

Reopening as "dosubot" marked it as stale & closed it prematurely.


Rolled back invoice amount in cents

Aligned invoice amount display with current backend implentation

this one is important and not risky !


Create first version of requirements

Requirements are needed before coding. They will be stored in the wiki

The first version has been made. See wiki


Add public alias to downgrade method on all components

Currently, the component handler is looking for the private method mdlDowngrade_ on a component, when downgrading it. This is a bad practice, and particularly it breaks when using closure compiler.
We should add a public mdlDowngrade alias to every component with a downgrade method, and switch the component handler to using that instead.

Merged in #1818.


Adding new tags

I am grateful for your help till now @kermitt2. Thankyou for always replying very fast.
So, I tried adding new tags in the fulltext model according to the way you explained in the issue #344. As you mentioned, I made the necessary changes in :

TEIFulltextSaxParser.java
TaggingLabels.java
TEIFormatter.java

After training I was able to get some score for the new tag <rs> like below:

But when I try running create training method or processFulltext method, I am unable to get the  tag as output. This is after making changes in the TEIFormatter.java file.
It will be a big help to me if you could tell me what I missed here. Thanks in advance !

Hi @kermitt2 !
It will be a big help for me if you could tell me how to fix the above issue.
Thanks in advance!

Sorry for the inconvenience! It seemed to be an issue from my side. It is now working!

Hi @Tanmay98 ! Good to know and sorry I was off the last days.

Hey @kermitt2 ! No problem.
Also, I was able to add new tags in the fulltext as well as the header model.

Hi @Tanmay98  & @kermitt2 ,
I'm trying to do the same with the header model.
I'm working with scientific articles that might include 'conflict of interest', 'running title', 'classification', and many more tags.
Tried the same using the  tag and edited those 3 java files (instead of TEIFulltextSaxParser.java, edited TEIHeaderSaxParser.java)
Could you please help me by providing me the sample of the

Training data (header xml or in this case, fulltext, that'll do)
TEIFulltextSaxParser.java
TaggingLabels.java
TEIFormatter.java

so I could cross verify what I did wrong and rectify it?

Sorry for the inconvenience! It seemed to be an issue from my side. It is now working!

Hey.
Facing the same issue.
What change did you make?


Underline in search highlight

I recently started using the nord-vim colorscheme and so far I am very pleased. Great job. I have a question though regarding search highlight. When search highlight is enabled the searched item is both hightlighted and underlined. Is it possible to disable the underlining? See screenshot below.

The underline style has been added in #41 to improve the currently selected search result when there are multiple search results, otherwise only the cursor indicates the current search result item position.
It might be a good idea to make the underline effect configurable to also prevent incompatibility problems with plugins that modify the styling of search results.

Thanks for the answer. I will consider submitting a PR.

/me sighs ... midterms :crying_cat_face:

@hejersbo
Sorry for the delay, I've had no free time (job :man_health_worker:, study :book:, life :weight_lifting_man: etc.) to work on my or any other :octocat: OSS project (see Tweets :bird: from April and June), but from the beginning of July I finished my studies and can finally spend time on OSS again :green_heart:
Like @dylnmc already mentioned a option to only disable underlines for the IncSearch is too specific and can simply be achieved with the custom scoped overrides. To disable underlines globally a new configuration has been implemented which has been shipped with release version 0.9.0.


BUG: signal: Convert the upfirdn utility function _output_len() to Python.

Implement _output_len() as a plain Python function instead of a Cython
function with intp_t types.  This avoids the potential overflow that
can occur if intp_t is 32 bit (e.g. 32 bit Linux or Windows) and the
input is very long, and also avoids a bug in Cython 0.29.32 that occurs
in 64 bit Windows.
Closes gh-17375.

Good question, @tupui.  After some testing, I see that the effect, while small, is more than I expected.  I'm going to force-push an alternative fix that is less intrusive and doesn't appear to affect the performance.

@tupui, I pushed a new version of the PR.  It turns out that changing the types of the variables in the Cython function _output_len() from np.intp_t to np.int64_t also avoids the bug in Cython 0.29.32.  The fix is now simpler, and doesn't affect the performance.  The previous version that made _output_len() a pure Python function resulted in that function taking twice as long (from ~70ns to 145ns on my machine).  That had negligible affect on upfirdn(), but it could result in resample_poly() taking about 20% longer.  (That is surprising, and suggests there is room for optimizing resample_poly(), but that's out of scope for this PR.)


feat(export.import): Full import/export of an api

Import/Export pages and members
fix gravitee-io/issues#164

I'm not able to import a previously exported version of my API.
Please have look to the export file
export-bear.txt
I have the following stack-trace:
Caused by: io.gravitee.fetcher.api.FetcherException: Unable to fetch git content
	at io.gravitee.fetcher.git.GitFetcher.fetch(GitFetcher.java:64)
	at io.gravitee.management.service.impl.PageServiceImpl.getContentFromFetcher(PageServiceImpl.java:212)
	... 113 common frames omitted
Caused by: java.io.FileNotFoundException: /var/folders/fw/mtbbvq9n6xd2xjclpbgcblqm0000gn/T/TestGitRepository8970907960096252932/CONTRIBUTING.md (No such file or directory)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at io.gravitee.fetcher.git.GitFetcher.fetch(GitFetcher.java:61)
	... 114 common frames omitted

So, there is probably a better way to handle this kind of error / exception from Git fetcher and provide a clearer message to end-user.


this package isnt package for detect mock location but this dependency detect is aplication type is mock location

Thank you for your comment. The package includes functionality to detect whether mock location is enabled on Android and whether the location provided by the device is simulated or produced by an accessory on iOS. This can be seen as a way to indirectly determine if the application is utilizing fake location features. I hope this clarifies the purpose of the package.


Remove Clone bound on Application::Message

I'm currently writing an application where I want to create a message that should not be cloned.
 I could wrap it in Arc<Mutex<>> and pass it through a message that way, but being able to pass it as a box achieves the same thing more clearly.
I can't do this in master, because the Message associated type has a bound on Clone. But it turns out that nothing actually takes advantage of this bound, and IMO it's logical that the system should only ever be moving messages, not cloning them.
This change will put a greater restriction on how Message is used, but it's a restriction that the system appears to be currently handling fine.

Native widgets like Button require this bound. There are also some features that will need this bound in the future, like a time travelling debugger. It's a safe default.
Why do you want to send GPU resources through a Message? They are supposed to contain simple data. If it's the result of some computation, using Arc is the proper way to do it.
However, I'd advise you against using a Mutex. Chances are what you are trying to do can be achieved using a better data model.

I have a Command that triggers a compute shader, and a message that returns the results.
Commands have a bound of static on their futures, which means the futures need to take ownership of their parameters -- so the future needs ownership over the compute resources. That means either box or arc.
Arc is problematic though, because my command needs mutable access to its GPU resources. So a mutex would be required if I used arc. So the simplest thing to do is box. When starting the computation, I move the box into the future, and when the computation, it moves the box back via the message. The nice thing about this design is that it also prevents multiple commands from accessing the compute resources at once, at compile time. Because you have to move the box containing the resources into the command, there's no possibility of reusing it to issue another command later which will wait on a mutex.

How does a Box let you move data from your Application into a future? What is left behind while the future is running? Isn't what you need an Option and Option::take?
Why do you need to share a RenderState between invocations of the Command? Could the Command create the state every time from scratch based on some other input? What does your application do?
I feel like you are trying to own state that shouldn't be yours. In other words, I think you should design your renderer as a separate runtime and then have a communication layer between it and your GUI.
One way to achieve this is by making your renderer live in a Subscription and communicate with your app using some kind of channel. The renderer will own its state and will be able to mutate it and the application won't see it (no need to move it or borrow it). It will also be able to notify the application of progress by returning messages (a Subscription is really just a Stream).

In any case, this PR doesn't really remove the bounds found in the widgets themselves, just the Application. You will hit the same issue at some point.
If the Subscription idea sounds too complicated, you may be able to leverage Arc::try_unwrap or Arc::get_mut to obtain ownership or a mutable reference, respectively. No need for a Mutex.

I gave it some more thought, and I think your changes are worth merging.
Although I would tackle your particular use case differently, I think non-cloneable messages can be useful for other scenarios.
For instance, you can achieve what you want and still be able to use widgets that need a Clone requirement by modelling your Message like this:
#[derive(Debug)]
enum Message {
    Interaction(Interaction),
    RenderingFinished(RenderState),
}

#[derive(Debug, Clone, Copy)]
enum Interaction {
    ButtonPressed,
    // ... Other interactions you may be interested in!
}

Notice that Message does not implement Clone, so you should be able to use a RenderingFinished without an Arc.
Additionaly, I have removed the Clone requirement for Element::map, so you should be able to turn any Element<Interaction> into an Element<Message> easily:
impl Application for Example {
    // ...

    fn view(&mut self) -> Element<Message> {
        let content: Element<Interaction> =
            Button::new(&mut self.increment_button, Text::new("Increment"))
                .on_press(Interaction::IncrementPressed)
                .into();

        content.map(Message::Interaction)
    }
}

If we end up implementing a time travelling debugger, we will most likely do it by using a trait extension. We can ask for Message: Clone or similar there!
Finally, I have removed Clone requirements from Sandbox and some web widgets. Let me know what you think, and we can merge this!

How does a Box let you move data from your Application into a future? What is left behind while the future is running? Isn't what you need an Option and Option::take?
Why do you need to share a RenderState between invocations of the Command? Could the Command create the state every time from scratch based on some other input? What does your application do? A bit more details would help me understand your use case and give you further guidance!

The ultimate goal is to show a fractal render in-progress. I have a fractal that takes 100k iterations to complete. I'd like to make a system where you can request that it run N iterations and then return incremental progress back to the UI.
So the design is, there's a Command to run N iterations, and when it's done it sends a message back that it's done. The message handler will spawn 2 commands when this happens. The first command converts the fractal data into an Image handle for rendering, and the second command is to continue computations. Finally, when the fractal is completely done, it either just drops the GPU state right there, or stores it on the GUI object. I want to try the former first.
So I don't want to recreate the render state every time because I imagine the steps will be quite short (N might be 1 to 10).

From what I gathered, I feel like you are trying to own state that shouldn't be yours. In other words, I think you should design your renderer as a separate runtime and then have a communication layer between it and your GUI.
One way to achieve this is by making your renderer live in a Subscription and communicate with your app using a channel (mpsc should work). The renderer will own its state and will be able to mutate it and the application won't see it (no need to move it or borrow it). It will also be able to notify the application of progress by returning messages (a Subscription is really just a Stream).

I had never heard of subscriptions before. I'm willing to try this out!

Thanks for the details! Sounds really cool. If you end up open-sourcing it, I'd love to try it out!
I think event subscriptions are the best way to do what you want. They are basically the Stream version of Command, and can be used nicely to model asynchronous systems that need to persist and report progress like WebSocket connections, HTTP downloads, etc.
Event subscriptions were merged recently in #122.

I'll be honest, your last example there is over my head. I'm not super clear on the difference between interactions, elements, messages, and Element<Interaction> and Element<message>
One concern is, how discoverable do you think it is to have to put element interactions inside an inner message? I can imagine the following sequence:

The developer makes a message, which works for something trivial
The developer tries to add a button press, which gives them a compile error about needing clone, so on autopilot, the developer adds a Clone bound on their whole message struct
The developer never learns that they can remove the Clone bound.

I suppose it's fine if they do - something like this would probably be a pretty advanced usage. It it's worth thinking about.

Ah, I see my confusion. I thought interaction was a built-in thing I hadn't seen before, and content.map basically tells the content widget to map its messages via the function you supply?
How many people will discover that you can do something like content.map, and how many people will understand what they're reading when they find it in someone else's code?

@ejmahler The Elm Architecture composes quite nicely. The whole idea is that your Message type does not need to be flat. In fact, nesting messages is an interesting technique that can be used to compose different smaller applications into a bigger one. The Element::map documentation shows an example of this.

The developer never learns that they can remove the Clone bound.

The Clone bound is still needed, but only by the message type you use directly in your widgets. If your usage is advanced enough that you need an un-cloneable Application::Message, you can simply nest the bound. I don't think this strategy is that uncommon.

Yeah, I agree that the idea of nesting messages should feel pretty natural. I developed something for this a while ago and I reached for nesting messages almost immediately.
This looks good then.

How many people will discover that you can do something like content.map, and how many people will understand what they're reading when they find it in someone else's code?

Element::map is no different than Option::map or Iterator::map.
The tour and todos examples use it!


buiding the container fails due to new preinstall dependencies

recent changes in the main repository added a preinstall step:
https://github.com/calcom/cal.com/commit/8d078564dda8d9fea38ef562317f95f5378f61ac
these scripts need to be in the container in order for turbo to properly run all steps without error. without them, the build step will error, complaining about a missing .git-init.sh script
i have a proposed fix for this in https://github.com/calcom/docker/pull/202

The build still fails, but doesn't look like it's due to this same issue, likely is due to some other core changes, but reopening just in case

yup, looks like a typescript error. so the preinstall script seems to work, but now the web build fails.

Hi both, I'm currently finishing the final touches on version 2.5.3 which I believe fixes the issues seen in the build.

Hi both, I'm currently finishing the final touches on version 2.5.3 which I believe fixes the issues seen in the build.

Thanks!!

i was able to successfully build 2.5.3

Latest is up to date!


Binary data API changes

Note: Renamed AsString/AsStream -> ToString/ToStream since these are allocating (and also to avoid confusion between ToString/AsString), but left AsBytes since this does not allocate.
Didn't add the public BinaryData(object serializable, Type type, ObjectSerializer serializer = default) as I'm not sure if we want this considering it would be sync only.

I don't love the ToString part of the changes (because I always miss those), but I'm fine trying this out for a preview or two and seeing how customers respond.
I think you also need to re-export the API.

Yeah, I was thinking about how I handle these scenarios as a user using ReadOnlyMemory.ToString() as an example. I don't put as much hope into ToString as I would a method specific to the type, but I will usually at least test out how it works if I need a string representation.

Oh...  maybe update the Changelog to list these as breaking changes while you're updating the PR?