Replay is too slow on  1.0.0-beta.1

Environment
 "@sentry/angular": "^8.24.0",
 "@sentry/capacitor": "^1.0.0-beta.1"

Steps to Reproduce
import * as Sentry from '@sentry/capacitor';
import * as SentryAngular from '@sentry/angular';

Sentry.init(
    {
      dsn: environment.sentryDsn,
      integrations: [Sentry.replayIntegration(), SentryAngular.browserTracingIntegration()],
      ...
    },
    SentryAngular.init
  );

Expected Result
New version should log errors and messages in Sentry the same way as the previous version.
Actual Result
I'm having a type error in the integrations array because of the SentryAngular.browserTracingIntegration(). If I remove browserTracingIntegration and only set integrations: [Sentry.replayIntegration()], I don't get any error.
The error is:
  Type '(Replay | Integration)[]' is not assignable to type '((integrations: Integration[]) => Integration[]) & Integration[]'.
    Type '(Replay | Integration)[]' is not assignable to type '(integrations: Integration[]) => Integration[]'.
      Type '(Replay | Integration)[]' provides no match for the signature '(integrations: Integration[]): Integration[]'

So that's one thing but even if I remove the browserTracingIntegration, with this new version I'm not able to see the logs in sentry.
I ran the migration script and changed @sentry/angular-ivy in favor of @sentry/angular... am I missing something?
I also noted in my browser network that the sentry requests have the sentry_version=7 param... is that ok or should it be 8?
https://xx.ingest.sentry.io/api/xx/envelope/?sentry_key=xxx&sentry_version=7&sentry_client=sentry.javascript.angular%2F8.24.0
Thanks

Hi and thank you for opening this issue!
Would you mind checking if using the exact version sentry/angular version 8.9.2  works on your project?
example:
 "@sentry/angular": "8.9.2",
 "@sentry/capacitor": "1.0.0-beta.1"

Thanks for your quick answer.
Using  "@sentry/angular": "8.9.2" fixes the typing issue and I'm able to see the error/messages in the Sentry dashboard.
However,  and I don't yet understand why, it makes the app suuuuuuuuper slow and unusable, like impossible to use at all. If I disable Sentry the app works good again. Any idea what could be happening?

Is there any "stable workaround" to use this package with angular 18?
I need to push an app release before the end of the week and I'm starting to get worried 😬.
Thanks

Update: it looks like if I remove these lines the app works good again:
  replaysSessionSampleRate: 0.1,
  replaysOnErrorSampleRate: 1.0,

So this is now my winning Sentry config
import * as Sentry from '@sentry/capacitor';
import * as SentryAngular from '@sentry/angular';

...

 Sentry.init(
    {
      dsn: environment.sentryDsn,
      release<EMAIL_ADDRESS>      // replaysSessionSampleRate: 0.1,
      // replaysOnErrorSampleRate: 1.0,
      enabled: environment.production,
      environment: environment.title ?? 'develop',
      ignoreErrors: [...],
      integrations: [Sentry.replayIntegration(), SentryAngular.browserTracingIntegration()],
      tracePropagationTargets: ['localhost', environment.API_URL],
      tracesSampleRate: environment.title === 'production' ? 0.75 : 1
    },
    SentryAngular.init
  );

I saw in the code that replaysSessionSampleRate and replaysOnErrorSampleRate are only for the browser so I guess I should be fine without them as my app is only for native environments.

Vue Capacitor 6 same:

import * as Sentry from '@sentry/capacitor'
import * as SentryVue from '@sentry/vue'

 Sentry.init(
      {
        app,
        dsn: import.meta.env.VUE_APP_SENTRY_URL,
        integrations: [
          //SentryVue.browserTracingIntegration({ router }),
          //Sentry.replayIntegration(),
          // WORKAROUND
          () => SentryVue.browserTracingIntegration({ router }),
          () => Sentry.replayIntegration(),
        ],
        tracePropagationTargets: ['localhost', /^\//],
        tracesSampleRate: 1.0,
        // replaysSessionSampleRate: 0.1,
        //replaysOnErrorSampleRate: 1.0,

        environment,
        //dist,
        //release,
      },
      SentryVue.init
    )

Vue Capacitor 6 same:

import * as Sentry from '@sentry/capacitor'
import * as SentryVue from '@sentry/vue'
Sentry.init(
{
app,
dsn: import.meta.env.VUE_APP_SENTRY_URL,
integrations: [
//SentryVue.browserTracingIntegration({ router }),
//Sentry.replayIntegration(),
// WORKAROUND
() => SentryVue.browserTracingIntegration({ router }),
() => Sentry.replayIntegration(),
],
tracePropagationTargets: ['localhost', /^//],
tracesSampleRate: 1.0,
// replaysSessionSampleRate: 0.1,
//replaysOnErrorSampleRate: 1.0,
    environment,
    //dist,
    //release,
  },
  SentryVue.init
)

Also for vue, you also need to use the speicif version of @sentry/vue "8.9.2"

Update: it looks like if I remove these lines the app works good again:
replaysSessionSampleRate: 0.1,
replaysOnErrorSampleRate: 1.0,
So this is now my winning Sentry config
import * as Sentry from '@sentry/capacitor';
import * as SentryAngular from '@sentry/angular';
...
Sentry.init(
{
dsn: environment.sentryDsn,
release<EMAIL_ADDRESS>// replaysSessionSampleRate: 0.1,
// replaysOnErrorSampleRate: 1.0,
enabled: environment.production,
environment: environment.title ?? 'develop',
ignoreErrors: [...],
integrations: [Sentry.replayIntegration(), SentryAngular.browserTracingIntegration()],
tracePropagationTargets: ['localhost', environment.API_URL],
tracesSampleRate: environment.title === 'production' ? 0.75 : 1
},
SentryAngular.init
);
I saw in the code that replaysSessionSampleRate and replaysOnErrorSampleRate are only for the browser so I guess I should be fine without them as my app is only for native environments.

I am sorry for your experience, did it also happen on the previous version?

@lucas-zimerman thx for Vue pnpm i<EMAIL_ADDRESS>works fine. Thank you!
Also why is this version and when can I upgrade to the latest version?

Update: it looks like if I remove these lines the app works good again:
replaysSessionSampleRate: 0.1,
replaysOnErrorSampleRate: 1.0,
So this is now my winning Sentry config
import * as Sentry from '@sentry/capacitor';
import * as SentryAngular from '@sentry/angular';
...
Sentry.init(
{
dsn: environment.sentryDsn,
release<EMAIL_ADDRESS>// replaysSessionSampleRate: 0.1,
// replaysOnErrorSampleRate: 1.0,
enabled: environment.production,
environment: environment.title ?? 'develop',
ignoreErrors: [...],
integrations: [Sentry.replayIntegration(), SentryAngular.browserTracingIntegration()],
tracePropagationTargets: ['localhost', environment.API_URL],
tracesSampleRate: environment.title === 'production' ? 0.75 : 1
},
SentryAngular.init
);
I saw in the code that replaysSessionSampleRate and replaysOnErrorSampleRate are only for the browser so I guess I should be fine without them as my app is only for native environments.

I am sorry for your experience, did it also happen on the previous version?

No, it didn't happen before.

@lucas-zimerman thx for Vue pnpm i<EMAIL_ADDRESS>works fine. Thank you! Also why is this version and when can I upgrade to the latest version?

We stayed on a fixed version for the first beta, but future betas will have the latest version

Is there an indicative date that version 1.0.0 will be out of beta?

We will ship a release candidate next week, you can expect the final 1.0.0 in a few weeks time at the latest

Since the issue with conflicting packages were sorted out, I will reuse this issue to track the replay slowness with the latest version.
In regard to the new version, as kahest pointed out, it is expected in a few weeks.

@djabif sorry for the late question, are you experiencing the slowness with replay on web, app or both?

@djabif sorry for the late question, are you experiencing the slowness with replay on web, app or both?

Hi, sorry for the late reply. I was experiencing the slowness only in the app.


我问一个很基础的问题：area区域换来换去还是china

必须vpn换成全局的吗？似乎有的vpn换成全局的也不好使呢？
何解？

试试这个看？挺好用的，挺方便
https://chrome.google.com/webstore/detail/new-bing-anywhere/hceobhjokpdbogjkplmfjeomkeckkngi

应该是你的DNS分流或者路由分流有问题，与插件无关。
We should use English here.
I think this has nothing to do with the browser extension. It's just that your DNS problem has redirected you to bing.cn.

#119


error rf bridge and state blinds KingArt

First thank you for your work.
I have been a user of sonoffland for more than 2 years, I have about 220 devices and so far everything is perfect, but....
I have 14 KingArt blind devices, the handling works, but the status never changes, it only changes if the % bar is moved, if it is moved from ewelink it doesn't, if an automation is executed either.
there they are closed and continue to indicate open and never change
The automations that depend on the state do not work, because the condition is... if xxx is closed, open it, but since it is believed to be open it does not open it

I have 3 rf bridge, if I create any binary sensor from bridge number 1 perfect, if I create it from bridge number 2 all the rf devices disappear, if I create it from bridge 3 all devices also disappear.
I use the latest version, 3.0.4
thanks for all greetings

I have also observed the same problem that the colleague has described.  Even when I updated the integration to the latest version, the blind stopped working completely for me, but after a pending update in ewelink, it worked again, although with the error of the percentages.

I also have the same problem described by the colleague with sonoff bridges

For blinds, this is duplicate #792
For RFBridge you need to download diagnostics from device page

I still need to see your diagnostics info

Todavía necesito ver su información de diagnóstico

this is the register of the rf bridge that disappears
sonoff-9e1b94693f64bd9b7b2bb51248580199-Bridge Volumétrico-f239e5ea497aaddf2d6c69d66f5bd1b4.json.txt
It happens when creating the last sensor, the first 3 belong to brige 1, which copies the signals to it to solve the problem momentarily

Component can't find some of your payload_off. I have added an warning to latest master version. You can find problem payload there


Fix Hash directory name for case-sensitive file systems.

Resolves #90

Hi @kenhowardpdx, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.azure.com.

TTYL, AZPRBOT;

@kenhowardpdx, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, AZPRBOT;


Change item size which is not centered.

Is your feature request related to a problem? Please describe.
Is there any way we can change item size to smaller which is not centered?
Describe the solution you'd like
The idea is centered item should be bigger than other items.

There currently isn't a way to do this, but this would make a good feature!


Current Auth Status Inflexible

So, I'm finding this is getting more and more problematic as time goes on.  Currently, if I want to use the permissions of a user, I have to create a parser for each user type.  Consider the following:
  def load(conn, params, current_user, {:ok, %{"pem" => %{"sys" => perms}}} = claims) do
    do_load(conn, params, current_user, perms)
  end
  def load(conn, params, current_user, {:ok, %{"pem" => %{"admin" => perms}}} = claims) do
    do_load(conn, params, current_user, perms)
  end
  def load(conn, params, current_user, {:ok, %{"pem" => %{"user" => perms}}} = claims) do
    do_load(conn, params, current_user, perms)
  end

Here, I have to create all three function signatures, because it's not possible to do:
  def load(conn, params, current_user, {:ok, %{"pem" => %{type => perms}}} = claims) when type in ["sys", "admin", "user"] do

Any thoughts on an efficient way to do this?
Thanks

I'm not clear what you're trying to do exactly.


Identity not found when using Workload Identity with secret store driver

Hi,
So we are trying to use workload-identity to bind certificate hosted on keyvault to our ingress app deployment.
But we are facing some issues during deployment.
We get the error message "Identity not found"
Now, we do have workload-identity working with service accounts and able to fetch secrets from keyvault. For use within our app.
Also able to use user assigned identity to get the SSL certificate. But we would like to use workload-identity.

We get the error message "Identity not found"

Identity not found error is if you're using user-assigned managed identity to access keyvault.

Now, we do have workload-identity working with service accounts and able to fetch secrets from keyvault. For use within our app.

Are you using workload identity or user-assigned managed identity? If you're using workload identity, then ensure you set the clientID as mentioned in the docs to use the correct mode. Also, share the SecretProviderClass yaml.

This was it. Thanks for answering.


Test for unexpected message delays

This test confirms that our current test suite is not introducing any unexpected message delays, where message delays is analogous to that from the paper https://eprint.iacr.org/2017/573/20171115:001835.
Issues #229 and #230 will cause this property to fail; they'll have to refine it somehow.

I rebased onto master and also to eliminate fixup commits.

(I belatedly promoted the PR from Draft.)

bors r+


[KO] Translation of Collections lesson

#201 :smiley:

Thank you @Dalgona!  What is your Twitter handle?

Thank you for merging! Mine is @d57pub_.


allocate off of a single 50GiB mmap region

This is a good short term fix, gives us time to find the culprit and make a test.


Contribute test case for vic ova on Harbor scenario.

the code path is: https://github.com/vmware/vic-product/tree/master/tests/test-cases

I'm closing it right now and let new VIC team decide the strategy.


Add generics to d3.d.ts

This is a complete rewrite of d3.d.ts and is extensively breaking. By way of apology for the utterly massive pile of changes this brings in, I'm going to list what happened and why:
Name Reorganization
Any empty namespace (things like D3.Svg and D3.Geo) have been removed, along with D3 itself.
Type names follow the path of their associated constructor function: d3.rgb() returns a d3.Rgb, and d3.svg.line.radial() returns a d3.svg.line.Radial.
Selections
Selections are now parameterized by their bound data. Most code should be compatible, but usage of the .datum method may cause some type issues. This in fact broke a test. Thanks to type unions, usage of (d, i) => ... can be inferred even in the object case.
Sets
Since d3.set only uses string keys, it is no longer generic.
Interpolators
Interpolation requires two values: the input value and the resulting interpolated value. This exists largely to support the interpolation of d3.color and its subclasses; d3.interpolate(d3.rgb("#000"), d3.rgb("#fff")) returns a function of (t: number) => string. However, there is a one-parameter variation of d3.interpolate that most users will find useful: d3.interpolate("#fff", "#000") will just work.
Scales
Due to the interpolation issue above, scales require two parameters due to their .interpolate method. Constructor functions accept single-parameter variations for ease of use: d3.scale.linear<number>() constructs a scale whose domain and range are both numeric.
Generators
Generators (SVG graphics, controls, and the layout functions) have zero-parameter variations that accept the D3 default types (i.e., area generators expect Array<[number, number]>).
Layouts that Write to Values
Layouts like d3.layout.tree write values to their input. I've mimicked this with a type called Result which has a suite of the optional properties that are populated on a node. Input values are expected to extend this interface. Since the values are computed, they are not required on creation.
Inheritance
D3 uses inheritance very, very sparsely. I removed any base types. They became incredibly difficult to sustain due to the way D3 changes some methods around.
The biggest offenders here are the generators and their radial equivalents. d3.svg.line.radial() actually creates a d3.svg.line under the hood, but it deletes the x and y methods, renaming them to radius and angle. It is much easier to treat the line and its radial equivalent as disparate types.
CSV, TSV, DSV
Delimiter-separated value parsers return property bags of type { [key: string]: string } instead of any.
The code is parameterized over row functions, so most code will need to change uses of d3.csv and friends to include a row function. This is most apparent in the tests, which relied on the any type to pretend that the data was pre-converted.
Overloads
D3's flexibility was extremely difficult to work with in places. I think I captured most of the spirit. However, I may have missed some edge cases. See also the d3.extent tests, where I had to disable some invocations because TypeScript 1.4's lib.d.ts thinks Number.prototype.valueOf returns an Object instead of a number.
Other Changes
I had to rewrite d3.layout.cloud. It follows the pattern established by other generators, and is generic over the result interface Word.
Open Issues

The handling of Event is less than ideal. D3 likes to attach arbitrary properties, and it's hard to guarantee when they exist and when they don't.
What D3 considers a "scale" varies from control to control. I ended up defining a Scale interface that represented what that particular control used.
I have more than likely broken the dcjs typings. I'm not familiar with dcjs, so I was only able to make minor changes.
I haven't added documentation comments for most of the types, functions, and modules in this library.
There is a really strong probability that these types are overly precise.

@hansrwindhoff @mtraynham Please review this PR.

Hello Alex (@gustavderdrache , I know what this means ;) I don't understand how you got the test to compile with the --noImplicitAny flag set.  I am sending a patch (https://dl.dropboxusercontent.com/u/8561342/alexford/0001-get-d3-test.ts-to-compile-with-noimplicitany-add-tsc.patch), I also added atom editor tsc plugin tsconfig.json files, not sure if we want to keep those around in general...@borisyankov?
In general I think putting the generics in is an excellent idea. It didn't break the dcjs stuff for me.

Couldn't have said it better than @hansrwindhoff, this is really awesome.  I probably won't be able to check the whole thing tonight, but I can give some notes over the next day or so.
One thing I noticed, and confined to the usage you have for Primitive, does Date or anything that specifies valueOf on it's prototype belong as well?  I only ask, because I've had a case in the past where an ordinal scale's domain was based on a set of a dates, and was not treated like a continuous domain.
I was going to add the extended geo library sometime in the next week or so, I'll likely follow suit with what you've done here.  Again, this is really good stuff.

@hansrwindhoff -- Good catch on the noImplicitAny. That was a step I completely missed. I looked over your patch and the tests and added type annotations. There were quite a few places where I could give a stronger type than any, so I did that. I'm not sure about adding the tsconfig.json, so I left it out. This pull request is already pretty big.
@mtraynham -- I played with d3.scale.ordinal more, and it turns out that I really should've used string coercion. Ordinal scales are parameterized over two arguments. The domain array is preserved, so it's safe to use Dates or even a custom type that implements its own toString function. This ought to catch quite a few cases I missed, such as using D3 colors.

@gustavderdrache That does look better, thanks!
Also, can we identify which other libraries depend on d3 that also need to change as well.  I made updates to dc.js recently, so that will need to be updated as well.  Once this PR is finished, it may be good to open bugs on the others.

I changed the libraries that I know I broke (dc.js is among them), but they'll need someone more familiar with them to really correct it. The build is passing, so there at least aren't invalid references. But I do know that this will break a handful of open PRs against D3, so we'll want to keep an eye out for those.

Ahh I see, overlooked the bottom.  It's kind of unfortunate that scales don't inherit from a a base scale sharing the following properties:

domain
range
copy

Specifically in cases like:
https://github.com/borisyankov/DefinitelyTyped/pull/3999/files#diff-3b4e05c4d0fb325a49f97f31c4951eceR328
But I can see how the typing may make it hard to properly convey that.

Yeah, it's troublesome, but I found that the easiest thing to do is create an interface specifically for that scale type. If, for example, the scale needs to be number => string and have a mutable domain, then it's not too much hassle to create an interface like so:
interface Scale {
    (n: number): string;

    domain(): number[];
    domain(values: number[]): Scale;
}

The compiler can sort out structural compatibility. It makes it easier for the user to provide custom scales and it keeps the type definitions honest, in the sense that they don't invent type hierarchies that don't really exist. Right now the dc.js scales are just raw functions because I wasn't sure of the usage patterns. (This is why all the layouts have their own Link type despite them having the same shape.)
The really egregious part about having a "base" scale is that it really doesn't help anything: TypeScript doesn't have a good notion of "returns self" in setters. d3.scale.pow().domain(foo) has the base scale type and therefore loses all of its extra properties. At that point, you have to copy all the properties and we've just duplicated work. This exact thing happened to me with the DSV-specific XHR, which actually does inherit from d3.xhr, but the setters' return types don't reflect the subtype.

...in the sense that they don't invent type hierarchies that don't really exist.

I agree.  And hopefully in the future d3.js does take better advantage of structure sharing.
But maybe just specific to dc.js we should be more definitive about the types of scales it can handle instead of that any functor.  I don't believe the charts can handle scales other than the one's provided by d3.  If they do, I imagine the number of users doing so is slim to none.  So being stricter at compile time, reducing the amount of casting, as well as lending type inference to the text editors really does help.
Something like this added to dc.js:
export type GenericScale = d3.scale.Identity | d3.scale.Linear | d3.scale.Pow | d3.scale.Quantize | d3.scale.Quantile | d3.scale.Threshold | d3.scale.Ordinal | d3.time.Scale

Although, I havn't tried this before, so I'm assuming it will work.

It's not as easy as it seems, unfortunately. Most default D3 scales use numbers, but there's the potential for an x axis to use time scales instead. At that point you're better off looking for a scale that maps the input domain to something expected.
As an example, the color mixin only requires a function with an additional domain(Array) method, as parameterized by a color accessor and the data array. We can't actually make any guarantees about the underlying type, because the default scale is just d3.scale.category20, which happily accepts anything that turns into a string. One user may tag data by date, but another may use string IDs. The interface would look kind of like this:
/**
 * A scale that maps a datum of type T to a color.
 */
interface ColorScale<T> {
    (x: T): string | d3.Color;

    domain(values: T[]): ColorScale<T>;
}

/**
 * Provides universal coloring support as a mix-in.
 */
interface ColorMixin<Datum, Color> {
    colorAccessor(accessor: (d: Datum, i: number) => Color): ColorMixin<Datum, Color>;

    getColor(d: Datum, i: number): string | d3.Color;

    colors(scale: ColorScale<Color>): ColorMixin<Datum, Color>;
}

But this interface doesn't extend to other scales: the bubble mixin has a radius function that is, by default, number => number, but there's no reason we can't use string tags of 'small', 'medium', and 'large'. That gives us something like this:
/**
 * A linear scale for bubble chart radii.
 */
interface RadiusScale<T> {
	(x: T): number;
}

/**
 * A bubble chart mixin.
 */
 interface BubbleMixin<Datum, Radius> {
	 radiusValueAccessor(accessor: (d: Datum) => Radius): BubbleMixin<Datum, Radius>;

	 r(radius: RadiusScale<Radius>): BubbleMixin<Datum, Radius>;

	 bubbleR(d: Datum): number;
 }

This does get insanely complicated, and the reason for it is this:
> dc.bubbleChart()
    .radiusValueAccessor(function () { return "small"; })
    .r(function (d) { return d === 'small' ? 20 : 100 })
    .bubbleR({});
20

Mmm yeah, I see what you're getting at when you add in the context of the accessors.  I'm still on the fence because there is now the expectation that you only have to pass an any functor, which may/may not contain domain and range (or rangeBand) properties, even though dc expects them.
For instance, dc's coordinate grid does make the assumption that it is being passed a valid d3 scale:
https://github.com/dc-js/dc.js/blob/develop/src/coordinate-grid-mixin.js#L25
I've looked over a lot of the other changes.  LGTM.
I did mean to ask one last thing:
https://github.com/gustavderdrache/DefinitelyTyped/blob/master/d3/d3.d.ts#L1309
Is that valid?  I tried that in a previous request and Webstorm seemed to complain about using typeof within the method signature's arguments.  I know Webstorm has had it's own share of problems, but I think I was on TS1.3 at the time, and don't remember if the tests passed or not.

A typeof query is legal in that position. I don't use Webstorm, but it seems like it's in the wrong given the spec (§3.7.9, "Type Queries"). It compiled cleanly for me locally (1.4.1 compiler), so I don't foresee any complications.
As far as the dc.js typings go, it seems more prudent to open a new bug so that others who have worked on the project can provide guidance on what scales are used where.
In the immediate case, it may be good enough to create an interface type Scale<Range> which has domain and range accessors and use that everywhere. It'd be customized to accept an any type (given the input issues) but have output types appropriate to the usage (number for the radius example above and string for the color one). Thoughts?

Sounds good to me :)

Done. I picked over the diff and replaced the annotations with Scale<T>, but do you mind double-checking and making sure I didn't miss one?

@gustavderdrache I will try to take a look tonight?

@gustavderdrache I plugged your new headers d3.d.ts and d3.cloud.layout.d.ts into a ~25k line ts d3js project, got ~350 compilation errors. After a simple rename of the newly named force interfaces I am down to ~100 errors.
One thing that I find problematic is, that some of the remaining errors are around the Event interface that now comes from lib.d.ts and doesn't contain many of the valid fields I had from the d3 version of the event (was called D3Event). Are you sure this is the correct interface?
Also in the force node the size property is gone... Before I plugged in the new headers, I updated my d3.js to the latest 355. And the code runs, so I think these properties are actually there. I have not had the time to go through every error, but I guess I would maybe put this in a new branch and we can iron the details out...?
There are also some valid errors that are discovered by the generic versions of the new definitions, that's really cool! Things where the vars were typed any and are now getting the types flowing into them, the stuff I was doing was some sort of shortcut...so that is great.
All in all I think this very nice!! Good stuff.

The event object is really annoying to handle... it's a global that has arbitrary properties glued on to it based on the dynamic context (see selection/on.js), which is difficult to give a proper type to. I suppose it may just be simplest to have d3.event's type be an aggregation of the various standard DOM events, with extra properties added on by the core event handlers:
interface Event extends KeyboardEvent, MouseEvent /* etc */ {
    // ...
}

As far as the force node size is concerned, it is not documented as existing, so I didn't include it. One quirk of TypeScript's inference is that if you have this code:
interface Foo {
    size: number;
}

var foos: Foo[];

var layout = d3.layout.force().nodes(foos);

The layout is of type Force<force.Node> and you lose the extra properties on Foo.

Temporarily closing this request: I made a major oopsie in the merge resolution.


Fixed type of pc.MouseEvent.event

Fixes #2889
I confirm I have signed the Contributor License Agreement.

Thanks!!


Alive?

Seems that repository wasn't updated for quite a while, PRs remains unmerged.
Is it still alive?

I would also like to know. Also does it still work?

Yes, it should still work, but I don't use this anymore, and haven't had a chance to check.
There is in fact a better version in the 2.0 branch, but I haven't gotten around to writing documentation for that.

@scdoshi Nice to hear from you.
We're at LotusTM interested to maintain and develop plugin further. Any chances for gettings contributors rights or transferring repository to our organization?

@scdoshi +1 to move this repo to an organization or at least give permissions to people who wants to contribute!

If someone takes over, I've created a fork based on the 2.0 branch that observes all forms on the page, allowing dynamic content to work with the library. I'm very happy if it's useful to anyone. I wrote it as I needed it for my current project.
https://github.com/pbowyer/jquery-ajaxchimp/tree/observe-forms

@pbowyer that's an interesting approach using delegated events, did not know how that worked and learned something new, so thanks!
Since dynamically adding forms would happen in javascript anyways, it doesn't seem like a problem to call ajaxchimp on the element right after adding it to the DOM and it would be more readable to me in that it's immediately obvious what is happening. (less magic)
It's also easier to chain different callbacks for each form on the page if ajaxChimp was called separately on them, or at least there was an option too.
Anyways, it's easy enough to fork the repo, so glad you got the solution you prefer

Thanks for your reply, I saw you were already delegating for the 'submit' event rather than binding directly to it, so it was a small step to generalise further!

Since dynamically adding forms would happen in javascript anyways, it doesn't seem like a problem to call ajaxchimp on the element right after adding it to the DOM and it would be more readable to me in that it's immediately obvious what is happening. (less magic)

There's two advantages of using the delegated approach that I see: Less coupling - the callback is already cluttered with code being fired after load (Facebook, Google Analytics, the list grows) so one less is nice. More importantly for me, I suspect it is more performant. Getting rid of jank is hard, and the less JS that's run when the next section of content is inserted, the easier it is to keep scroll moving smoothly. I should benchmark one day to see what the difference is - maybe when this project is done :)
Thanks for your response!

Hi!
@scdoshi So it's dead again?


Request: Example of how to use Appium Tizen TV driver on a Samsung TV

Hi team,
How are you all? Hope everyone is doing well.
Firstly, thank you for creating this fantastic repo. I was looking at the driver documentation and got lost!
Please provide an example of how one can implement it in a real scenario. I am familiar with appium for mobile devices, but I want to implement this on a Samsung TV.
A couple of questions about the driver:

After installation, can we inspect the TV's elements? For instance, can we view the app ID and buttons if it is a browser app on the TV?
Or is it only meant to be used as a replacement for the TV remote?

Unfortunately there aren't very many good open source demo apps so a real world example is probably not doable right now.

After installation, can we inspect the TV's elements?

Yes, use the page source command

For instance, can we view the app ID and buttons if it is a browser app on the TV?

It depends on what type of app it is. This driver only supports web-based apps. It also only supports apps that you own. You can't automate apps that you didn't develop.

Or is it only meant to be used as a replacement for the TV remote?

No, it's a full automation driver, with the restrictions mentioned. But you can also use it as a remote.


Cannot connect to the Remote Desktop

I can't connect to the Remote Desktop via vnc it doesn't matter which port i use
running it on localhost from a mac.
i have the same issue with all other docker images from you like the firefox docker image
btw: ssh does work

This remote desktop uses RDP not VNC. Check Microsoft Remote Desktop in the mac App Store

oh god your image helped me i just tried out every every docker image online with a functioning sound in docker on a cloud vm. I just using your code and now all what i wanted to do work, i couldn't ecsactly use your configuration part for pulse audio because i get a error on using
RUN dpkg-buildpackage -rfakeroot -uc -b
because that seems not to work.
But still the flash audio now does play without sound that is firstly enough :-)!!
Thank you helped me a lot lot lot

I know sound is hard.
With me it works. After
login pulseaudio should run.
I'm working on a kali version
and with this one I have to
start pulseaudio by hand and
then watch youtube with firefox.
Shal I close it now ?
(for this RUN dpkg-buildpackage -rfakeroot -uc -b check your pulseaudio version )

You have a port collision when two conatiners want to use the same port
docker run -p 5901:5900 -d somevnc
Left is the port on the docker-host (should be unique in the host.
Right is the port inside the container (so here the port the containers listens to)
The next vnc should run like docker run -p 5902:5900 -d somevnc
If you use docker run -p 5900 -d somevnc, docker will automaticly assign an outside
port. You can see the ports when you do a docker ps


Close meetings

As City Staff,
I want to be able to close a meeting for public comment,
so that comments are not received last minute or after the meeting has taken place.

Acceptance criteria:

I can push a button and no longer receive public input on a meeting.

Acceptance test:

Go to an open meeting.
Close it.
It is clear from the meeting header that it is now closed.
Go to an agenda item. You are not able to vote or comment on this agenda item.


xstate-catalogue CatalogueSearcher modal keyboard shortcut ctrl + k conflicts with chrome and firefox keyboard default shortcuts

While using a Windows 10 machine [version 19042.906], user attempts to open the "search machines" modal with the ctrl + k chord trigger the Focus Address bar for Web Search (writes "? " there) search shortcut in Firefox (Version 87.0 (64-bit))[1] and the Search from anywhere on the page address bar shortcut in Chrome (version 89.0.4389.114) [2]
macOS users do not appear to have a similar conflict.
[1] - https://support.mozilla.org/en-US/kb/keyboard-shortcuts-perform-firefox-tasks-quickly
[2] - https://support.google.com/chrome/answer/157179?co=GENIE.Platform%3DDesktop&hl=en#zippy=%2Caddress-bar-shortcuts

Screen Recording

https://user-images.githubusercontent.com/6540117/113804474-d5b12680-971b-11eb-92da-a23b0cfd9764.mp4

Chrome Result
Firefox Result

Chrome Shortcuts
Firefox Shortcuts

User experience could benefit from update to default keyboard shortcut to open the search modal to something that does not conflict with default browser configuration or disabling of default behavior in Chrome and Firefox.

What do TailwindCSS use on Windows? as their hotkey?

What do TailwindCSS use on Windows as their hotkey?

Ok, that's interesting 🤔, they use Ctrl + K but it does not trigger the browser's search behavior...
Let's see how they are doing that.

Ok, i found the piece of code accomplishing this in TailwindCSS, they are using @docsearch/react via algolia and there it is implemented via a simple event.preventDefault()
🠖 PR incoming 👌

OK cool - I'm happy to close based on that


cydia wechat tweak not working

no matter what version of wechat the tweak for wechat like wechathook、wechat purify do not working……… some how wechat help can see the settings but it still not working just like fake tweak.

I have already tried uninstalling Substitute and installing Substrate through Cydia. This causes my iPhone reboot and not
working. My iPhone is xsmax 13.5

I'm not particularly knowledgeable, but this seems like an issue that the developer of the tweak would have to address, unless said developer said that it has an issue b/c of your jailbreak method.


Inconsistency between facet widgets for hasResults

We sometimes use facetValues.length, some others nbHits (or even hits.length, leading to even more inconsistency).
I think we should:

either rename hideContainerWhenNoResults to hideContainerWhenNoRefinements for them and use facetValues
or expose both, with hideContainerWhenNoRefinements = false and hideContainerWhenNoResults = true

WDYT?

@Jerskouille Is this still accurate with the refactoring on the autoHide decorator?

Yes, that's how I saw it, but I didn't fix it.

I think most of the time what you want is "hideContainerWhenNoResults". Because if there's no results then there's no facets?
So maybe we should always use nbHits internally for consistency if it's ok with you.

(removed the bug label, this is not a bug right now)

The behaviour can be really different as soon as we have null on some facet values. Some blocks might be displayed when there is actually nothing in it.
And it is actually a bug since some are using nbHits (price-ranges, toggle), and others are using facetValues.length (refinement-list, menu, hierarchical-menu), meaning that they don't behave consistently when there are null values.

And with hitsPerPage: 0, it's also inconsistent, hence the bug tag.

Ok better understood the bug (facet values containing null) => leads to a bug.
hideContainerWhenNoResults still seems ok as for naming and having only one option. Maybe we just need to ensure to only check the relevant information to hide/display the widget (which is the number of available refinements in the end).

So the actual bug is that in some widget we keep rendering them even when the refinement array is empty right?

I actually don't know. Maybe it's what we want.
It's more that the parameter name is inconsistent with the behaviour.

By the way, I'm already introducing hideContainerWhenNoRefinents in #404 and #405 .

Ah indeed hideContainerWhenNoRefinements would then have two meanings. Maybe we should just have "autoHide: true/false" like we had at the begining then handle the implementation differently.
I am not sure the user need so much detail, it should just hide when it's obvious (either no results or no refinements).

I'm ok with an autoHideContainer.

I'm ok with an autoHideContainer.

:v: WFM nice

closing in favor of #407


Convenience method to install nox as git pre-commit hook

How would this feature be useful?
I often write "check" tasks which I like to run as a pre-commit hook. I modified a pre-commit (the tool) generated file to handle this that I reuse and modify for each project. It would be nice if generating and installing a pre-commit hooks to run a particular session was built into the tool.
The pre-commit hook I use that I modified from pre-commit (tool)'s hook.
#!/usr/bin/env bash

# start templated
INSTALL_PYTHON=/path/to/my/python
SESSION=check
# end templated

if [ -x "$INSTALL_PYTHON" ]; then
    exec "$INSTALL_PYTHON" -m nox -s "${SESSION}"
elif command -v nox > /dev/null; then
    exec nox -s "${SESSION}"
else
    echo '`nox` not found.  Did you forget to activate your virtualenv?' 1>&2
    exit 1
fi

Describe the solution you'd like
Ideally there would be a pair of pre-commit install/uninstall commands. Something like
nox --install-precommit=check
nox --uninstall-precommit

Describe alternatives you've considered
Doing it manually... Not sure what else. I'm not that creative :grin:

Why not leverage pre-commit itself? You can drop a .pre-commit-config.yaml like this into your project:
repos:
  - repo: local
    hooks:
      - id: nox
        name: Nox
        entry: nox -s check --
        language: system
        types: [python]
        require_serial: true

You can install the pre-commit hook using pre-commit install.
Here's an example noxfile.py you could use with this:
import nox

@nox.session
def check(session):
    session.install("flake8")
    session.run("flake8", *session.posargs)

Here pre-commit will invoke Nox with the Python files staged for each commit, and Nox will forward them to Flake8. (Obviously if this is all you do, you should just use plain pre-commit with flake8.) I'd probably avoid hardcoding the session name in the .pre-commit-config.yaml though, and either run all sessions in noxfile.py, or define nox.sessions in the noxfile.py, and/or define NOXSESSION in the environment as needed.
Personally, I prefer to integrate Nox and pre-commit in the opposite direction, with a Nox session that installs and invokes pre-commit. But to each their own :)

Why not leverage pre-commit itself?

I am well aware of pre-commit. Running nox per-file will be a huge overhead. It's just not a reasonable solution.

Obviously if this is all you do, you should just use plain pre-commit with flake8

Exactly...

I prefer to integrate Nox and pre-commit in the opposite direction, with a Nox session that installs and invokes pre-commit. But to each their own :)

That makes no sense to me.
The whole point is to replace pre-commit with nox, since it really wouldn't take much effort, there is a lot of overlap in functionality, and nox being the more capable tool. I'm also trying to avoid pre-commit's decision to only run checks per file which is just not how mypy was intended to be run and causes a number of problems. I want to avoid complicating my project and avoid specifying tools and flow in multiple places by using a less capable tool in addition to nox.

Running nox per-file will be a huge overhead.

I'm not sure I understand which overhead you refer to, can you elaborate?
In the example I gave, Nox is invoked once per commit, with files passed on the command-line after the -- separator. It should run somewhat faster than what you proposed above, by virtue of linting only files touched by the commit.

The whole point is to replace pre-commit with nox, since it really wouldn't take much effort, there is a lot of overlap in functionality, and nox being the more capable tool.

The effort may be small if we limit git integration to the specific use case you presented above. But pre-commit covers much more ground than that. People would soon expect us to support additional requirements, for example other hooks like pre-push or commit-msg, passing and filtering files touched by the commit, or stashing local modifications. They'd be better off just using pre-commit. As a mature tool specializing in git hook management, it has had time to address a myriad of edge cases.

I'm also trying to avoid pre-commit's decision to only run checks per file which is just not how mypy was intended to be run and causes a number of problems.

I also find that running mypy from Nox has some advantages (see #516). Would it be an option for you to only run linters on pre-commit, and keep mypy as a plain Nox session?
If you do need to run mypy as a pre-commit hook as well, I can see two options:

Run the Nox session from pre-commit as described above.
Use a standard mypy pre-commit hook in addition to the Nox session.

The first option will produce more consistent results. The second option has the advantage of simplicity and speed. There won't be much duplication if you keep the mypy configuration in pyproject.toml or mypy.ini.

I want to avoid complicating my project and avoid specifying tools and flow in multiple places by using a less capable tool in addition to nox.

You don't need to. My advice would be this: Run linters from pre-commit, and run pre-commit from Nox. Run mypy from Nox only. You'll still have Nox as a single entry-point, and no duplication or complexity.
I certainly wouldn't consider pre-commit "less capable" in any way. Nox and pre-commit have different goals, and complete each other nicely.

pre-commit's decision to only run checks per file

This is not a decision pre-commit makes, it's one you make. Set pass_filenames: false on a hook that needs to run once instead of per-file. Done.

nox being the more capable tool

This is not remotely true. They are different tools. pre-commit can run any check, and fully locks dependencies, and auto-updates, and so much more.
From https://scikit-hep.org/developer/tasks:
@nox.session
def lint(session: nox.Session) -> None:
    """
    Run the linter.
    """
    session.install("pre-commit")
    session.run("pre-commit", "run", "--all-files", *session.posargs)

And use https://scikit-hep.org/developer/tasks for some setup. The setup there is fine for MyPy, IMO, but you can add pass_filenames: false if you want.
Or you can also leave mypy as nox only if it's too slow. I like the pinning, etc, that pre-commit provides.

Closing as it seems unlikely at this point that we'll support pre-commit hook installation in Nox.
Feel free to continue the discussion though. One tool commonly used with pre-commit that also offers its own hook implementation is isort. So if we changed our mind, we'd probably want to take a look there. Note that isort is not in the business of installing hooks, it just offers a Python API that can be used to craft your own hook.

I understand people may ask for more features and I tend to agree that I don't like increasing project scope like that. Feature implementation is always up for discussion. And this is not an argument about whether pre-commit or nox are valid tools. In my case, the only value that pre-commit brings is the installation of git hooks. Using 2 tools when one would do is not an advantage. pre-commit doesn't just install hooks, but always adds itself as a layer of indirection and necessary configuration. It would be nice if pre-commit didn't try to duplicate functionality, or at least split it up. Every tool seems to be it's own ecosystem rather than working together. There is an effort in the EDA space to try to unify all these disparate tools. I'm surprised that there isn't such a push against the proliferation of tools in Python. I'd prefer to only use nox and have some way to bridge the feature gap. Or use pre-commit in a way where there isn't redundancy, coupling, or stepping on toes.
Some additional thoughts since both posts were long

I don't need additional kinds of it hooks, only pre-commit
generating a hook file the user manages, like what isort supports, sounds like a good idea
Version pinning can be accomplished with requirements files and tools like pip-upgrader
pass_filenames: false is an unintuitive name since I don't know how pre-commit is implemented
pass_filenames: false is still not sufficient since it still runs on all unstaged or untracked changes. I still need to run mypy in nox to stash changes
nox is just Python, so it is a more capable automation tool, and the way nox is instrumented is simple (as in lower conceptual overhead)

Of course this feature doesn't have to be implemented in this project either. It's entirely possible to do externally. I may pursue that option.

isort natively supports pre-commit (the tool) too, by the way.

pass_filenames: false is an unintuitive name since I don't know how pre-commit is implemented

Can't this be used to argue against anything?

pass_filenames: false is still not sufficient since it still runs on all unstaged or untracked changes

No it does not. Pre-commit carefully handles partial stages and untracked changes. Nox would not unless it duplicated all of this functionality - there's a ton of work to make pre-commit work well, and you are asking for that to be duplicated in nox, IMO.

nox is just Python

pre-commit is just Python too (in implementation).
What do you want from a pre-commit hook? I assume it needs to be fast. pre-commit does a lot to make sure it is caching and running as fast as it possibly can. Nox, on the other hand, isn't trying to be fast by default.
Also, I've never had to turn off the default pre-commit pass filenames for mypy, and my mypy runs are under a second or two on over a dozen different projects. Nox can't even create a venv in that amount of time. I think it's different tools for different tasks.

Can't this be used to argue against anything?

I was pointing it out since I have seen this a number of times where names/descriptions are chosen whose meaning is tied to the implementation a user might not know. I skip over them because I don't understand what they actually mean so I presume it's some advanced feature. But it turns out to be a very useful feature, even to novices. It's frustrating. Perhaps it's just a mistaken presumption it being an "advanced" feature?
Changes can have second order effects on other files, so certain checks should be run over the whole project every time. Type checking with mypy is just one example of that. pass_filenames should be a switch with a name/description that newbies can understand, or at least be understood by first explaining how hooks are called.

Pre-commit carefully handles partial stages and untracked changes

I swear I tried it when you mentioned it first and mypy was checking untracked files. But I just tried it again and it does not. WTF :sob:

pre-commit is just Python too

No it's a declarative DSL. You are strictly limited to the provided feature set. If it does not suffice you must either beg for the addition of an extra knob, or work around the problem in some potentially obtuse way. I'm really not a fan of declarative automation tools in general. I've moved away from tox to nox for exactly that reason. We have an automation tool at work that uses YAMLs to describe build flows and it's become such a problem with the limited expressivity and additional maintenance effort of that format that we just hacked a programming language on top of it.

I've never had to turn off the default pre-commit pass filenames for mypy

Correct me if I'm wrong, but it seems like you may be missing issues if you do this. Make a change in one module, downstream modules in your project may break, but they may not be checked.

Looks like I may have been partially correct about pre-commit not handling untracked changes. When running with pass_filesname: false it isn't stashing the build/ directory which contains a copy of the source code, which then confuses mypy. It does handle partial staging on the same file though. Seems like they missed a few details.


SQL Server: Error when using field of type XML

When having a field of Type XML in the affected table,  I get the following error since moving to .NET 6, EF Core 6 and EFCore.BulkExtension > 5.*.
The data type xml cannot be used as an operand to the UNION, INTERSECT or EXCEPT operators because it is not comparable.
It doesn't matter whether the XML field is affected or not in the query.
FYI:
It worked when using Net 5, EF Core 5 and EFCore.BulkExtensions 3..
When I want to use EF Core 6 with EFCore.BulkExtensions 3., I get an error about a missing method (I guess EF Core 6 and BulkExtension 3.* are not compatible).

Try to set OmitClauseExistsExcept: true  in config.

Thanks, OmitClauseExistsExcept: true OmitClauseExistsExcept: true


Table rendering bug

Unfortunately the included image is no longer available, so I'm not really sure what the problem is. Please feel free to reopen if you can provide more info though :)


pl not respecting total_val_batches

It took me a while to hunt it down,
If I provide:
total_train_batches = 10
total_val_batches = 3
val_check_batch = 1

how do we get to total_batches 40 in tqdm:
Eventually I found the culprit to be this:
https://github.com/PyTorchLightning/pytorch-lightning/blob/master/pytorch_lightning/callbacks/progress.py#L326-L330
I have a hard time following this logic.
We should have a total of 13 items here, not 40.
Obviously the real numbers are much bigger - so we end with an incredibly huge numbers.
Thanks.

OK, I figured it out - the val_check_batch is very confusing with float and int values. I need to pass val_check_batch = total_train_batches to not rerun validation multiple times. I was under the impression that it was a frequency argument so 0.25 indicated 4 times during eval and 1 - just one time.


Test - render attachment images inline

Hi,
I didn't apply for this position, but would like if you may review my submission

Hi Nikita - thanks for this. Seems fine - bit light on tests, though you're the first person to use the V2 HipChat API ;)
Estella, our talent manager, will drop you a line to learn a bit more about you, your wishes, etc and we'll see how it goes from there.
Closing this PR as we've taken a look


Feature request.

I would like to have a service that exposes the access.
This way i can use a device tracker in ha that disabled rfid access when the car is parked next to the charger and reenable this with the cars isnt parked there.
I dont know if this is possible atm, i assumed that it would be possible to just add
    async def require_rfid_access(allowed: bool):
        """ Set charger dynamic current """
        json = {"authorizationRequired": allowed}
        return await easee.post(f"/api/chargers/{charger.id}/settings", json=json)

    await require_rfid_access(True)

    async def set_access(accesslevel: int):
        """"1: Open for all
              2: Access to all users with Easee account.
              3: Access to whitelisted users
         """"
        return await easee.put(f"/api/chargers/{charger.id}/access/", json=accesslevel)

But it dont seem to change anything in the easee cloud.
Edit:
Pressing the button in the app seems to change the access to Access to all users with a Easee account (the data is sends is 2)
set_access seems to work but the car isnt home atm so i need to check that this works as intented.

Seems to work ok. Ill send PR for this.

Closing this as pr is sent


README.md image links are b0rked

There are two embedded images at the top of the README.md which don't load.
Currently they display this text:
![IMG_1843 2](https://user-images.githubusercontent.com/2007088/112699616-35751b00-8e5a-11eb-9bf8-cc09af4847a9.PNG | width=100) ![MiniWasher](https://user-images.githubusercontent.com/3220618/136715514-d1cb86ac-4278-4012-b7d5-25300a313fcf.png | width=100) ![DishWasher](https://user-images.githubusercontent.com/3220618/138618307-c7b6a9f0-073e-44df-a70a-8c0acbcb033b.png | width=100)
Most of the forks of this project that are 14 commits behind display the images properly; other forks which are two commits behind have the same problem.

Fixed


BPMN in different containers spring boot

I have two BPMN processes that are in different containers of spring boot. I call my second bpmn from the first and I have a java class problem not being found. I have some way to work with processes in different java containers?

Can you provide an example?

Am 03.07.2017 um 14:38 schrieb thiagokuch<EMAIL_ADDRESS>I have two BPMN processes that are in different containers of spring boot. I call my second bpmn from the first and I have a java class problem not being found. I have some way to work with processes in different java containers?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

I have this process called Test1 starting in a spring boot project and calling my process Test2.

And i have this process called Test2.

The two are started on separate spring boot projects and with the same postgres base configured for both. As you can see in figure 1, the Test1 process calls the Test2 process that fails because it does not have access to the JAVA binaries (Test2Delegate).
.
My question is if I can have processes in projects with separate spring boot and with their binaries being called between each other.

Glad you already found the forum ... that is the right place to discuss this since it is not related to the spring boot starter, it's normal camunda behavior.


[BUG] autoTrackPageVisitTime causing tracking to be sent too often

Description/Screenshot
Enabling the autoTrackPageVisitTime or enableAutoRouteTracking options causes a /track call to be made each time an event is raised. For example, if autoTrackPageVisitTime = true, then every time the page changes, a /track call is getting sent to record the time on that page.
Steps to Reproduce

OS/Browser: Windows/Chrome
SDK Version [e.g. 22]: 2.5.5
How you initialized the SDK:

private appInsights: ApplicationInsights = new ApplicationInsights({
    config: {
      instrumentationKey: environment.appInsights.instrumentationKey,
      distributedTracingMode: DistributedTracingModes.W3C,
      autoTrackPageVisitTime: true,
      disableFetchTracking: false,
      enableAutoRouteTracking: true,
      enableAjaxErrorStatusText: true,
      enableCorsCorrelation: true
    }
  });

Expected behavior
The data tracked using the enableAutoRouteTracking or autoTrackPageVisitTime should be batched and sent along with the remaining telemetry.
Additional context
Add any other context about the problem here.

Looking over the code, what you are asking for is exactly what happens.
That is, the code internally calls track() which then adds this event to the internal batch and based on the maxBatchInterval (defaults to 15 seconds) and/or maxBatchSizeInBytes (defaults to 100kb) the batched events would eventually get sent.
The "timer" is based on when the "first" event is batched and not the last.
Can you provide more details and perhaps a fiddler trace showing when and events are sent etc. You may need to manual edit the trace to remove and private stuff that you don't want shared publicly.

Thanks @MSNev . I'll try and get a redacted example to show. What we're seeing in Chrome Network tab, at least is:
/track
<click menu1>
/track
<click menu2>
/track
<click menu3>
/track

These are happening immediately, appearing to not have any batching.

Hey @MSNev . Between clicking of two components, I am getting two /track messages getting posted:
[
  {
    "time": "2020-10-16T00:18:35.140Z",
    "iKey": "<instrumentationKey>",
    "name": "Microsoft.ApplicationInsights.<instrumentationKey>.Pageview",
    "tags": {
      "ai.user.id": "GHCf/WnS5bu8NVc2B2Ot5o",
      "ai.session.id": "4XiDl4e0a4e3+GIda7j5GM",
      "ai.device.id": "browser",
      "ai.device.type": "Browser",
      "ai.operation.name": "/second-component",
      "ai.operation.id": "d6f73d7b94d44d4abfc53691e5b40d99",
      "ai.internal.sdkVersion": "javascript:2.5.9",
      "ai.internal.snippet": "-"
    },
    "data": {
      "baseType": "PageviewData",
      "baseData": {
        "ver": 2,
        "name": "/second-component",
        "url": "http://localhost:4200/second-component",
        "duration": "00:00:00.009",
        "properties": {
          "refUri": "",
          "duration": "9"
        },
        "measurements": {},
        "id": "d6f73d7b94d44d4abfc53691e5b40d99"
      }
    }
  },
  {
    "time": "2020-10-16T00:18:35.143Z",
    "iKey": "<instrumentationKey>",
    "name": "Microsoft.ApplicationInsights.<instrumentationKey>.Metric",
    "tags": {
      "ai.user.id": "GHCf/WnS5bu8NVc2B2Ot5o",
      "ai.session.id": "4XiDl4e0a4e3+GIda7j5GM",
      "ai.device.id": "browser",
      "ai.device.type": "Browser",
      "ai.operation.name": "/second-component",
      "ai.operation.id": "d6f73d7b94d44d4abfc53691e5b40d99",
      "ai.internal.sdkVersion": "javascript:2.5.9"
    },
    "data": {
      "baseType": "MetricData",
      "baseData": {
        "ver": 2,
        "metrics": [
          {
            "name": "PageVisitTime",
            "kind": 0,
            "value": 626,
            "count": 1,
            "min": 626,
            "max": 626
          }
        ],
        "properties": {
          "PageName": "ApplicationInsightTest",
          "PageUrl": "http://localhost:4200/first-component"
        }
      }
    }
  },
  {
    "time": "2020-10-16T00:18:35.637Z",
    "iKey": "<instrumentationKey>",
    "name": "Microsoft.ApplicationInsights.<instrumentationKey>.Pageview",
    "tags": {
      "ai.user.id": "GHCf/WnS5bu8NVc2B2Ot5o",
      "ai.session.id": "4XiDl4e0a4e3+GIda7j5GM",
      "ai.device.id": "browser",
      "ai.device.type": "Browser",
      "ai.operation.name": "/second-component",
      "ai.operation.id": "d6f73d7b94d44d4abfc53691e5b40d99",
      "ai.internal.sdkVersion": "javascript:2.5.9",
      "ai.internal.snippet": "-"
    },
    "data": {
      "baseType": "PageviewData",
      "baseData": {
        "ver": 2,
        "name": "ApplicationInsightTest",
        "url": "http://localhost:4200/second-component",
        "duration": "00:00:00.000",
        "properties": {
          "refUri": "http://localhost:4200/first-component"
        },
        "measurements": {
          "duration": 0
        },
        "id": "d6f73d7b94d44d4abfc53691e5b40d99"
      }
    }
  }
]

and the second request is:
[
  {
    "time": "2020-10-16T00:18:35.140Z",
    "iKey": "<instrumentationKey>",
    "name": "Microsoft.ApplicationInsights.<instrumentationKey>.Pageview",
    "tags": {
      "ai.user.id": "GHCf/WnS5bu8NVc2B2Ot5o",
      "ai.session.id": "4XiDl4e0a4e3+GIda7j5GM",
      "ai.device.id": "browser",
      "ai.device.type": "Browser",
      "ai.operation.name": "/second-component",
      "ai.operation.id": "d6f73d7b94d44d4abfc53691e5b40d99",
      "ai.internal.sdkVersion": "javascript:2.5.9",
      "ai.internal.snippet": "-"
    },
    "data": {
      "baseType": "PageviewData",
      "baseData": {
        "ver": 2,
        "name": "/second-component",
        "url": "http://localhost:4200/second-component",
        "duration": "00:00:00.009",
        "properties": {
          "refUri": "",
          "duration": "9"
        },
        "measurements": {},
        "id": "d6f73d7b94d44d4abfc53691e5b40d99"
      }
    }
  },
  {
    "time": "2020-10-16T00:18:35.143Z",
    "iKey": "<instrumentationKey>",
    "name": "Microsoft.ApplicationInsights.<instrumentationKey>.Metric",
    "tags": {
      "ai.user.id": "GHCf/WnS5bu8NVc2B2Ot5o",
      "ai.session.id": "4XiDl4e0a4e3+GIda7j5GM",
      "ai.device.id": "browser",
      "ai.device.type": "Browser",
      "ai.operation.name": "/second-component",
      "ai.operation.id": "d6f73d7b94d44d4abfc53691e5b40d99",
      "ai.internal.sdkVersion": "javascript:2.5.9"
    },
    "data": {
      "baseType": "MetricData",
      "baseData": {
        "ver": 2,
        "metrics": [
          {
            "name": "PageVisitTime",
            "kind": 0,
            "value": 626,
            "count": 1,
            "min": 626,
            "max": 626
          }
        ],
        "properties": {
          "PageName": "ApplicationInsightTest",
          "PageUrl": "http://localhost:4200/first-component"
        }
      }
    }
  },
  {
    "time": "2020-10-16T00:18:35.637Z",
    "iKey": "<instrumentationKey>",
    "name": "Microsoft.ApplicationInsights.<instrumentationKey>.Pageview",
    "tags": {
      "ai.user.id": "GHCf/WnS5bu8NVc2B2Ot5o",
      "ai.session.id": "4XiDl4e0a4e3+GIda7j5GM",
      "ai.device.id": "browser",
      "ai.device.type": "Browser",
      "ai.operation.name": "/second-component",
      "ai.operation.id": "d6f73d7b94d44d4abfc53691e5b40d99",
      "ai.internal.sdkVersion": "javascript:2.5.9",
      "ai.internal.snippet": "-"
    },
    "data": {
      "baseType": "PageviewData",
      "baseData": {
        "ver": 2,
        "name": "ApplicationInsightTest",
        "url": "http://localhost:4200/second-component",
        "duration": "00:00:00.000",
        "properties": {
          "refUri": "http://localhost:4200/first-component"
        },
        "measurements": {
          "duration": 0
        },
        "id": "d6f73d7b94d44d4abfc53691e5b40d99"
      }
    }
  }
]

An example site illustrating the problem is available here:
https://danielbecroft.github.io/application-insights-example/second-component

@danielbecroft the link for the sample site appears to be locked down -- I'm getting a 404.
Looking at the url / refUri (at least for the second one) it looks like a full page navigation is occurring which will cause the unload event to cause any events to be flushed asap (so the event doesn't get lost) for a SPA it's expected to have hash based navigation (which doesn't cause the browser to trigger the unload event etc)

Sorry @MSNev , I accidentally linked to the component route, not the application root. I've fixed the URL.
We'll try using the hashed-route navigiation model, and report back with our testing results.

We've tried to move to hash-based navigation / routing, and the problem still persists. I've updated the example application (above) to use the hash-based routing. The code for the app is here.
We've also tried disabling the "flush" (via the disableFlushOnBeforeLoad configuration item), but the problem still persists.
Not sure if there's anything else we can try.

@danielbecroft Thanks for the sample, after debugging through this I eventually found the "why" the data is being sent.
Basically, this is currently by design, deep down in the PageViewManager it has this comment and in your case the situation is #4 and it's this if block that is being called (resulting in the call to _flushChannels) https://github.com/microsoft/ApplicationInsights-JS/blob/master/extensions/applicationinsights-analytics-js/src/JavaScriptSDK/Telemetry/PageViewManager.ts#L134
 * Currently supported cases:
 * 1) (default case) track page view called with default parameters, overridePageViewDuration = false. Page view is sent with page view performance when navigation timing data is available.
 *    a. If navigation timing is not supported then page view is sent right away with undefined duration. Page view performance is not sent.
 * 2) overridePageViewDuration = true, custom duration provided. Custom duration is used, page view sends right away.
 * 3) overridePageViewDuration = true, custom duration NOT provided. Page view is sent right away, duration is time spent from page load till now (or undefined if navigation timing is not supported).
 * 4) overridePageViewDuration = false, custom duration is provided. Page view is sent right away with custom duration.

Can this call be delay -- probably, I'll need to chat with some of the other members on the team. But my initial thought is that we should be able to expose a config setting (of some kind) to disable the auto flushing -- unless I'm missing some other subtle issue that caused this to be added initially.

Hi @MSNev Is there anything else I need to provide for this? Is there a known workaround or similar that we could apply?

Hi @danielbecroft, sorry for going dark on this, unfortunately this dropped off my radar because of workload and some shuffling around within the team. Specifically the person I was going to ask about the above history.
I've assign this to myself so that it doesn't drop off again (as I scan my allocated items regularly), I'll try and contact some other members on the options. I may end up allocating to someone else after we determine whether adding a config setting is a path forward.
Cheers

I have the same issue as @danielbecroft.  I have an existing angular 11 app and am not able to switch to hash based routing since that would break deep linking from other applications.  But just to test things locally I turned on useHash and still see multiple posts to /track on every route change, with no delay.  A configurable delay would help side step the issue for me and help prioritize bandwith for my app data when there is a route change.  But getting it to work with the buffer setting would be ideal.

Still reviewing

Hi @danielbecroft @red-man, sorry for late reply. @MSNev and I had a discussion with the team and we think current design still has its advantage. when autoTrackPageVisitTime or enableAutoRouteTracking is enabled with Single-Page App, a pageView will be triggered when a new component is rendered. And for pageView data (one of the most important data), it has to be sent right away since there are chances that batch-send may fail due to factors we can not control. Therefore, the frequent /track requests is by design.


[BUG] Docker run on mac cannot access localhost:8889

Community Note

Please use a 👍 reaction to provide a +1/vote. This helps the community and maintainers prioritize this request.
If you are interested in working on this issue or have submitted a pull request, please leave a comment.

Describe the bug
If we try to use this project with docker:
docker build -t aws/graph-notebook-conf .
At the runtime, there's a minor issue :

[W 2023-05-18 01:10:43.536 ServerApp] No web browser found: Error('could not locate runnable browser').
Which can be addressed easily in:
/docker/service.sh

nohup jupyter notebook --ip='*' --port ${NOTEBOOK_PORT} "${WORKING_DIR}/notebooks" --allow-root > jupyterserver.log &
nohup jupyter lab --ip='*' --port ${LAB_PORT} "${WORKING_DIR}/notebooks" --allow-root > jupyterlab.log &

We can fix it by adding the flag --no-browser
nohup jupyter notebook --ip='*' --port ${NOTEBOOK_PORT} "${WORKING_DIR}/notebooks" --no-browser --allow-root > jupyterserver.log &
nohup jupyter lab --ip='*' --port ${LAB_PORT} "${WORKING_DIR}/notebooks" --no-browser --allow-root > jupyterlab.log &

When the docker container is running, I cannot connect to it with my browser, I noticed that both lines previously mentioned in the file /docker/service.sh have the configuration --ip='*' which I believe have an impact on those logs at the runtime:

[C 01:10:43.401 NotebookApp] You must use Jupyter Server v1 to load JupyterLab as notebook extension. You have v2.5.0 installed.
You can fix this by executing:
pip install -U "jupyter-server<2.0.0"
[I 01:10:43.405 NotebookApp] Serving notebooks from local directory: /root/notebooks
[I 01:10:43.405 NotebookApp] Jupyter Notebook 6.4.12 is running at:
[I 01:10:43.405 NotebookApp] http://docker-desktop:8888/

and

[I 2023-05-18 01:10:43.519 ServerApp] jupyterlab | extension was successfully loaded.
[I 2023-05-18 01:10:43.526 ServerApp] nbclassic | extension was successfully loaded.
[I 2023-05-18 01:10:43.528 ServerApp] Serving notebooks from local directory: /root/notebooks
[I 2023-05-18 01:10:43.528 ServerApp] Jupyter Server 2.5.0 is running at:
[I 2023-05-18 01:10:43.528 ServerApp] http://localhost:8889/lab
[I 2023-05-18 01:10:43.528 ServerApp]     http://<IP_ADDRESS>:8889/lab

I presume the issue here is the hostname http://docker-desktop:8888/ while we see that for the lab part it's using correctly hostname in http://localhost:8889/lab.  From what I understand, when we package Junyper in docker, it's a common practice to have:

--ip <IP_ADDRESS>
--no-browser
--allow-root

I tried to change the configuration to replacing --ip='*' by --ip <IP_ADDRESS> but it didn't worked, then I tried to modify /docker/service.sh by adding:
echo "c.ServerApp.ip = \"<IP_ADDRESS>\"" >> ~/.jupyter/jupyter_notebook_config.py like it's the case here:
https://github.com/jupyter/docker-stacks/blob/b378681adad0506b3613cde9d8a35c3e246dfe71/base-notebook/jupyter_server_config.py#L11-L12
This change didn't fix the issue, so I'm considering to use jupyter/minimal-notebook as a workaround.

OS: MacOS 13.3.1
Browser: Google Chrome
Graph Notebook Version: N/A
Graph Database & Version: N/A

To Reproduce
Steps to reproduce the behavior:

Clone the current repository
docker build -t aws/graph-notebook-conf .
docker run --network="host"  -p 8889:8889 -p 8888:8888 -v ~/dev/graph-notebook/out:/working -e GRAPH_NOTEBOOK_HOST=xyz.us-west-2.neptune.amazonaws.com -e AWS_REGION=us-west-2  -e GRAPH_NOTEBOOK_SSL=False aws/graph-notebook
Opening Chrome with http://localhost:8889/lab

If applicable, add screenshots to help explain your problem.
Expected behavior
JypiterLab should accessible.

Thank you for the bug report and analysis, @expe-elenigen ! We are looking into a fix for this.

@expe-elenigen While trying to reproduce this issue, a warning in the log message's first line
WARNING: Published ports are discarded when using host network mode
remove --network="host" it will only work on Linux.
docker run  -p 8889:8889 -p 8888:8888 -v ~/dev/graph-notebook/out:/working -e GRAPH_NOTEBOOK_HOST=xyz.us-west-2.neptune.amazonaws.com -e AWS_REGION=us-west-2  -e GRAPH_NOTEBOOK_SSL=False aws/graph-notebook-conf
will resolve your issue furthermore do a docker ps and make sure you can see the port for aws/graph-notebook-conf

In the end, in my case, I had to switch GRAPH_NOTEBOOK_SSL to true and as you mentioned, I removed the --network="host" part, I wonder if something change in the docker image or what, but now it's working:
docker run  -p 8889:8889 -p 8888:8888 \
  -v ~/dev/graph-notebook/out:/working \
  -e GRAPH_NOTEBOOK_HOST=..xyz.us-west-2.neptune.amazonaws.com \
  -e AWS_REGION=us-west-2 \
  -e GRAPH_NOTEBOOK_SSL=true \
  aws/graph-notebook-conf

When I spin up the image given the advice here, I get to a login screen, but I'm not sure how to continue from here?

I believe you may have the incorrect port.  Notebook server is running on 8888.  Lab is running on 8889.

I believe you may have the incorrect port. Notebook server is running on 8888. Lab is running on 8889.

Indeed, I attached the wrong screenshot. This is what I see on 8889. To add some more context here's how I'm starting the image:
docker run -p 8889:8889 -p 8888:8888 \
  -v ~/dev/graph-notebook/out:/working \
  -e GRAPH_NOTEBOOK_HOST=db-timeline-neptune-serverless.cluster-ro-cclbakrwpxpj.us-east-1.neptune.amazonaws.com \
  -e AWS_ACCESS_KEY_ID \
  -e AWS_SECRET_ACCESS_KEY \
  -e AWS_SESSION_TOKEN \
  -e AWS_REGION="us-east-1" \
  -e GRAPH_NOTEBOOK_SSL=False \
  graph-notebook

And here's what I get on each port when I navigate to localhost:8888/lab or localhost:8889/lab

If you're going to access on port 8888, just leave off the /lab.  Port 8888 is where Jupyter Notebook (classic) is running.
In both cases (using classic on 8888 or lab on 8889), if you don't set NOTEBOOK_PASSWORD as part of the environment variables in the docker run command, then the default password is used:  https://github.com/aws/graph-notebook/blob/2e3cefd30db0fa22a4bb702ee04167c8fad4e2fa/Dockerfile#L26

Thanks a lot @triggan! Can you confirm that I can pass a Neptune Analytics Graph endpoint (g-xyz.us-east-1.neptune-graph.amazonaws.com) to the notebook and work with that as well?

Yes, just ensure you're setting the analytics graph endpoint using the GRAPH_NOTEBOOK_HOST environment variable or by modifying the %graph_notebook_config from a notebook after the container launches.

Thanks @triggan! I started the notebook inside an ec2 with access to a neptune analytics graph using the private endpoint.
I can run queries inside the ec2 with:
time aws neptune-graph execute-query --graph-identifier g-ggbxhnqxxxx --region us-east-1 --query-string ...

and I'm getting some results.
However, when I set the private endpoint in the notebook, I'm getting this error:
{'error': ConnectTimeout(MaxRetryError("HTTPConnectionPool(host='g-ggbxhnqxxxx.us-east-1.neptune-graph.amazonaws.com', port=8182): Max retries exceeded with url: /status (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7f25b102e4a0>, 'Connection to g-ggbxhnqxxxx.us-east-1.neptune-graph.amazonaws.com timed out. (connect timeout=None)'))"))}

Here's my notebook config:
{
    "host": "g-ggbxhnqxxxx.us-east-1.neptune-graph.amazonaws.com",
    "neptune_service": "neptune-db",
    "port": 8182,
    "proxy_host": "g-ggbxhnqxxxx.us-east-1.neptune-graph.amazonaws.com",
    "proxy_port": 8182,
    "auth_mode": "IAM",
    "load_from_s3_arn": "",
    "ssl": true, // I tried turning this
    "ssl_verify": true, // and this on and off
    "aws_region": "us-east-1",
    "sparql": {
        "path": "sparql"
    },
    "gremlin": {
        "traversal_source": "g",
        "username": "",
        "password": "",
        "message_serializer": "graphsonv3",
        "connection_protocol": "http"
    },
    "neo4j": {
        "username": "neo4j",
        "password": "password",
        "auth": true,
        "database": null
    }
}

Thanks @triggan now I can run %status (so I assume Jupyter can connect to Neptune Analytics), but for example %opencypher_status times out:

The security group attached to your Private Graph Endpoint is allowing traffic on 8182 and on 443.

Perhaps check the DNS settings within the container to ensure it's using the same DNS settings as the EC2 instance?
If you run !nslookup <graph_endpoint> in a cell, it should resolve to the IP address used by your Private Graph Endpoint within your VPC.
Seems odd that an execute-query call would succeed from your EC2 instance but is not connecting from the notebook.
FWIW, the get-graph API call made by the %status magic is accessing a control plane API (via the https://neptune-graph.<region>.amazonaws.com/graphs/<graph_identifier> endpoint) where as the execute-query API (or the list-queries API from the %opencypher_status magic) are both accessing the graph-specific endpoints (data plane).  The former would go across the Internet (IGW) whereas the latter needs to go through the VPC Endpoint (Private Graph Endpoint).


Update Notification in Windows Action Center Does Not Initiate Update

Microsoft PowerToys version
0.45.0
Running as admin

[X] Yes

Area(s) with issue?
General
Steps to reproduce

Open Windows Notification Center
Click the "A PowerToys Update is available" notification
The notification dismisses (temporarily) but no update is initiated.
Opening the Notification Center again reveals the notification is present again.

✔ Expected Behavior
Clicking notification about an available update would either immediately begin an update or open Settings so the user can proceed to update.
❌ Actual Behavior
No discernable result of clicking notification.
Other Software
Video of issue (WEBM video format, could not be attached here) https://1drv.ms/u/s!Am9yPJnkxhMo4cNZiAxqTnDnegpjYQ?e=6rSKmJ

cc: @yuyoyuppe

We should add a button to open settings page.

Hi @LtCmdrKeene, thanks for the report! This might be related to changes in how toast notifications work in Windows 11, since we already have the button to update/open the settings page. We'll investigate it.
Btw just to make sure - it's impossible to scroll down or expand the notification somehwo?

Btw just to make sure - it's impossible to scroll down or expand the notification somehow?

It didn't seem to have any way to expand but I will explore the UI next time to see if I can reach the buttons.

might be related to changes in how toast notifications work in Windows 11

Nah, same on 10

might be related to changes in how toast notifications work in Windows 11

Nah, same on 10

Yeah, The notification center with win+n is implemented in Windows 10.

Windows 10 uses win+a as the access key (instead of notification center it's called action center on 10).
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: Franky Chen @.>
Sent: Tuesday, November 2, 2021 2:00:04 AM
To: microsoft/PowerToys @.>
Cc: Shawn Keene @.>; Mention @.>
Subject: Re: [microsoft/PowerToys] Update Notification in Windows Action Center Does Not Initiate Update (Issue #14148)
might be related to changes in how toast notifications work in Windows 11
Nah, same on 10
Yeah, The notification center with win+n is implemented in Windows 10.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/PowerToys/issues/14148#issuecomment-957148936, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABAGIFWH5XG3V2UVP3DSXBTUJ6D7JANCNFSM5HBLIHGQ.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Windows 10 uses win+a as the access key (instead of notification center it's called action center on 10).

Hmm... You are right.
Win + n in Windows 11 and Win + a in Windows 10.

I can confirm that still nothing happens, when clicking on the notification at version v0.60.0 and Windows 11 Version 21H2. I already seen this issue on my machine with older versions of PowerToys too and when my OS was on Windows 10. So the problem doesn't seem to be OS related.
If any kind of logs or further details are needed because the issue can't be reproduced just contact me.

There's a "down pointing triangle" symbol in the notification that you can click and will reveal the true buttons.  Clicking the notification itself does nothing other than temporarily dismiss it (it will show back up immediately the next time you open the notification center).  but if you want to actually take action, you must expand it and then click the buttons.
Honestly if clicking the main notification just launched PowerToys settings I'd find that to be a better experience. Just "doing nothing" is a confusing and frustrating experience.

Triangle? Buttons? Then I must have missed them... 😐

Yeah it shows next to the time the notification arrived. Click that down-facing triangle to reveal the buttons. It works for other notifications too, almost all of them have additional details that Windows 11 hides every time.
Here's an example. PowerToys works identically.

.

You and me have a different experience. I only see this

Looks like you're using Windows 10?

Looks like you're using Windows 10?

That's a Keene observation 😉

Actually, looks like /dup #10106


Revert "renderer/canvas: Check refresh before draw"

This reverts commit 60212747b54c73e97ab93a15bfc5ff9362408c02.
this triggered duplicated updates,
it came up with many thread sanitizer problems.
issue: https://github.com/thorvg/thorvg/issues/2462

@JSUYA hello, please let me know if you have any problems with it. I reverted it.


Missing data

The run https://github.com/CodeReaper/powercast-data/actions/runs/8214406301 failed, seemingly since EDS was down during 10:00 and 14:00 today. EDS has subsequently not updated the data.

The missing data was recovered between 11:00 and 12:00 the next day. Meaning there was an outage of about 12 hours.


Underline and Strikethrough having conflicts using it.

Bug description:

Using the webview on the library react-native-pell-rich-editor I have found that underline and strikethrough styles have conflicts with each other, causing that the rich editor doesn't work as expected.

This bug is opened by this comment https://github.com/wxik/react-native-rich-editor/issues/127#issuecomment-847632668
To Reproduce:

Create a bare bone React Native project.
Install react-native-web-view and react-native-pell-rich-editor.
After applying bold and italic with underline the style is being applied correctly.
After press Strikethrough the styles are being applied correctly.
After press underline there is a condition one or the other, so both gets removed.

This is the example code:
import React from 'react';
import {
  SafeAreaView,
  StyleSheet,
  Text,
  ScrollView,
  KeyboardAvoidingView,
  Platform,
} from 'react-native';
import {actions, RichEditor, RichToolbar} from 'react-native-pell-rich-editor';

const handleHead = ({tintColor}) => <Text style={{color: tintColor}}>H1</Text>;

const App = () => {
  const richText = React.useRef();

  return (
    <SafeAreaView>
      <ScrollView>
        <KeyboardAvoidingView
          behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
          style={styles.wrapperContainer}>
          <Text>Description:</Text>
          <RichEditor
            ref={richText}
            onChange={descriptionText => {
              console.log('descriptionText:', descriptionText);
            }}
          />
        </KeyboardAvoidingView>
      </ScrollView>

      <RichToolbar
        editor={richText}
        actions={[
          actions.setBold,
          actions.setItalic,
          actions.setUnderline,
          actions.heading1,
          actions.insertOrderedList,
          actions.insertBulletsList,
          actions.setStrikethrough,
        ]}
        selectedButtonStyle={{backgroundColor: '#1E1E1E'}}
        iconMap={{[actions.heading1]: handleHead}}
      />
    </SafeAreaView>
  );
};

const styles = StyleSheet.create({
  wrapperContainer: {
    flex: 1,
  },
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
  },
});

export default App;

Expected behavior:

After press Strikethrough the styles are being applied correctly.
After press underline there is a condition one or the other, one should persist.

Screenshots/Videos:
https://github.com/react-native-webview/react-native-webview/assets/14319083/5d61876a-77f9-4a04-b81a-c18f7acefe98
Environment:

OS: OSX
OS version: 13.4.1
react-native version: "react-native": "0.70.9",
react-native-webview version: "react-native-webview": "^12.0.2"

This does not seem related to react-native-webview.
I don't know what this sentence means:

belongs to the bug of the bottom of webview and cannot be solved

But I don't think it was intended to suggest that this was a react-native-webview problem.


FacetSearch facet hash results with concatenated string of attributes

Indice establishment_index.rb
ThinkingSphinx::Index.define :establishment, :with => :active_record, :delta => true do
indexes est_cost_ranges.range, as: :price_range, :sortable => true, :facet => true
has est_cost_ranges.id, :as => :est_cost_range_id, :facet => true
end
EstCostRange Model
class EstCostRange < ActiveRecord::Base
attr_accessible :title, :body
attr_accessible :range
has_and_belongs_to_many :establishments
end
Results
irb(main):254:0> @est_cost_range_facets = Establishment.facets(:max_matches => 10000, :conditions =>{:status=>"published", :city=>"bangalore"},:facets => [:price_range])[:price_range]
=> {"351-500 1351-1500"=>1, ""=>17, "851-1000 1351-1500"=>1, "351-500 851-1000"=>7, "351-500 501-850"=>2, "501-850 851-1000"=>3, "501-850 1001-1350"=>1, "351-500"=>2, "251-350"=>3, "351-500 1001-1350"=>1, "Above 1500"=>1, "Above 1500 351-500"=>1, "251-350 Above 1500"=>1, "501-850"=>1}

Why above issue closed?

Fields are single string values for each record - so that means in your case, for each establishment, each of its price ranges get concatenated together into a single string.
Unfortunately, while Sphinx has support for multi-value attributes, strings are not a supported multi-value type (only integers, bigints, and timestamps). So, what I'd recommend you do in this case is use the est_cost_range_id attribute for your facet generation, and translate the ids through to their range labels. I realise this isn't nearly as elegant, but I can't think of a better way to do this with Sphinx.


Improve Parser and Visitor

These changes are relatively minor but do give some performance and memory improvements.
Summary of Changes

Switch from deprecated ANTLRInputStream to antlr CharStreams approach
Add new Parser functions that eliminate unnecessary copying of input
Remove unnecessary traversals when transforming ANTLR CST to FIRRTL AST in the Visitor

For a ~700 MB input .fir file, this improves ANTLR parsing time from ~78s to ~52s and Visiting time from ~62s to ~54s. Modest but real improvements. The size of the ANTLR CST remains around ~36GB so while this helps reduce unnecessary object creation, the fundamental motivation for https://github.com/freechipsproject/chisel3/pull/829 remains

Looking forward to this being merged 👍

cough @azidar cough @chick cough


Spring Boot OAuth2 Issue

Hi I Built two applications one is Authorization Server which will give Access token that is working fine,
How i can Build Resource Server to access Authorization Server.

Thanks for getting in touch, but it feels like this is a question that would be better suited to Stack Overflow. We prefer to use GitHub issues only for bugs and enhancements. Feel free to update this issue with a link to the re-posted question (so that other people can find it) or add some more details if you feel this is a genuine bug.


fixed 3 javadoc links 1) google guave, 2&3) Two links relocated away from "aggregateknowledge"

https://issues.apache.org/jira/browse/SOLR-XXXXX

Description
Please provide a short description of the changes you're making with this pull request.
Solution
Please provide a short description of the approach taken to implement your solution.
Tests
Please describe the tests you've developed or run to confirm this patch implements the feature or solves the problem.
Checklist
Please review the following and check all that apply:

[ ] I have reviewed the guidelines for How to Contribute and my code conforms to the standards described there to the best of my ability.
[ ] I have created a Jira issue and added the issue ID to my pull request title.
[ ] I have given Solr maintainers access to contribute to my PR branch. (optional but recommended)
[ ] I have developed this patch against the main branch.
[ ] I have run ./gradlew check.
[ ] I have added tests for my changes.
[ ] I have added documentation for the Reference Guide

Thanks for this...   I know this is a small PR, but if you want to get in the habit of having the PR Description be filled in, that always helps folks!   The link back to the JIRA issue and just update the Description/Solution/Test sections.   a "not applicable" is fine!

https://issues.apache.org/jira/browse/LUCENE-9229
Fixed 3 broken links in the javadoc

A link to guava relocated by google.

Two links relocated away from "aggregateknowledge".

Thanks. For future PRs, please fill in the description field and complete the checklist. The title of the PR should start with the JIRA issue number, e.g. "SOLR-1234 my feature".
For minor dead-link fixes like these we don't need individual JIRA issues, but for future larger works, separate JIRAs can be created.


Problem compiling in ARM7

When compiling in ARM7 and these options CRYPTOPP_ARMV7A_HARD, CRYPTOPP_ARMV7A_SOFTFP are not applied, the AddCompileOption("-DCRYPTOPP_DISABLE_NEON") faild because there are an error in:
https://github.com/noloader/cryptopp-cmake/blob/b97d72f083fefa249e46ae3c15a2c294e615fca2/CMakeLists.txt#L264
It works with change to:
if (NOT "${COMMAND_OUTPUT}" STREQUAL "")
list(APPEND CRYPTOPP_COMPILE_OPTIONS "${opt}")
endif ()

@abdes,
For the non-Windows paths we are using a clean compile as the gate. If the compile and link command produces any output then we consider the toolchain rejected the option. This was necessary on Solaris and PowerPC, where the toolchain would reject an option but CMake would report success.
To learn more we need to see the output of something like:
g++ ${opt} TestPrograms/test_arm_neon.cxx

The command above just runs the test manually.


Support for SubCommands

I think it would be great to have support for SubCommands.
The idea is to be able to execute a command like this:
vagga build QtCreator3.4.0 Qt5.2.1 Ubuntu14.04.3
vagga test parser-tests yaml
instead of:
vagga build-QtCreator3.4.0-Qt5.2.1-Ubuntu14.04.3
vagga test-parser-tests-yaml
When you would write for example:
vagga build
you would get the list:
Available commands:
    QtCreator3.4.0 - description
    QtCreator3.4.1 - description
    QtCreator3.4.2 - description
    ...

This could probably look something like Supervise is right now with the children option.
A !Command could have children-or-some-other-keyword(subcommands?)

Also, it would be nice if commands could also be imported from another .yaml the same way configs for containers can be imported.
vagga/
  vagga/test.yaml
  vagga/test/
  vagga/test/parser-tests.yaml
  vagga/test/completion-tests.yaml
  vagga/test/audio-tests.yaml
  vagga/test/synth-tests.yaml
  ...
  vagga/build.yaml
  vagga/build/
  ...
  vagga/bench.yaml
  vagga/bench/
  ...

vagga.yaml:
  ...
  commands:
    test: !Command
      subconfig?:
        ?path: vagga/test.yaml
      description: ...

    build: !Command
      subcommands?:
         subconfig?: vagga/build.yaml

Sounds nice. Except command syntax might better look like:
commands:
  build: !Group
    subcommands:
      cmd1: !Command ...
      cmd2: !Command ...

I don't think I'll have the time to work on this soon. But it should be pretty easy to implement, because it doesn't need any changes to way containerization is done. Just requires some fiddling with the configuration. So contributions are welcome.


Add a very simple defense system- safe mode when attacked

This Pull Request has been merged by GitConsensus.
Vote Totals

Yes
No
Abstain
Voters

3
0
0
3

Vote Breakdown

User
Yes
No
Abstain

tedivm
✔

Esryok
✔

PostCrafter
✔

Vote Results

Criteria
Result

Has Quorum
True

Has Votes
True


Should okta-rc3 be used instead?

I am currently encountering the issue listed at: https://github.com/stormpath/stormpath-sdk-java/issues/1346
One of the workarounds proposed there was to bump up to okta-rc3, should this be merged into master?
https://github.com/oktadeveloper/okta-spring-boot-angular-pwa-example/blob/7737ff6c252d1194f1650c6eccb68d510dccb7fb/server/pom.xml#L25

I changed the example to remove the Stormpath Spring Boot Starter, so closing this issue.


remove deprecated dependency istanbul

https://www.npmjs.com/package/istanbul this package is already deprecated.

When we drop support for older node, we'll which to nyc. But while we still support Node < 6, we can't drop this dependency

We can close this now.


Delete account crash

I'm on current master

and after delete an account I run into this

Now I can start app again, but selection an account I run into next crash

Hey.
@hannesa2 please provide steps to reproduce. I'll try to fix that

git checkout 447dbe1
"and after delete an account I run into this "  ... but maybe it's gone on current recent master.

I've deleted accounts<EMAIL_ADDRESS> on V 5.731 without any issues. I did, however, find an issue.
After deleting the account, the new account look screen (sorry, not sure what else to call it) still shows the deleted account.
After restarting the emulator everything looks and behaves as it should.

One more thing I noticed is that the 'new' account screen only shows 3 icons, rather than the actual number of accounts


Added new enemy obstacles

solved issues
#30
#6
Changes Made
->I have added new jumping bird enemy to increase the difficulty of the game
->Changed the collision range between enemy and player
->Solved some syntax error
hope you like the changes

@treyhboy Awesome work! The jumping birds is a great idea to add some complexity to the game. Would you mind adding a few comments in for the code you added, this just helps new contributors understand the code more easily. If you could pull down some recent changes to resolve the conflict on your branch, then I will merge your PR.
Really great work!

Cleared the conflict and added some more comments
i think we are good to go :)

@treyhboy One of the additions you have made has caused an error, the game screen is appearing blank.

Solved the error @EdwardDunn
Apology for the mistake

@treyhboy Great thanks!