[perf] Explore re-using XPathContext objects, and compiling XPath expressions

Two things I want to explore doing to try to improve the performance of XPath (and, transitively, CSS) searches:

re-use XPathContext objects which are a little expensive to create
expose libxml2's ability to compile XPath expressions

For (1), we need to be a bit careful:

XPathContext is not thread-safe
there is some state we need to set or un-set appropriately:

namespaces (via XPathContext#register_namespaces)
variables (via XPathContext#register_variable)

while preserving other state:

the nokogiri: prefix used for dynamic function binding
the nokogiri-builtin: prefix used for our performance-optimized builtin functions
the built-in xpath functions themselves

but the performance improvement could be significant, see this response from the current libxml2 maintainer indicating "best practice" is to keep one XPathContext per thread and re-use it.
The benchmark submitted by a user in #760 indicates a 4x(!) speedup on simple expressions by avoiding re-initializing an XPathContext object. It seems likely that the real-world speedup will be less (since cleaning up registered namespaces and variables will have some overhead), but it still seems like it would be a pretty decent speedup.
For (2), we'll need a new Ruby class to wrap the compiled expression represented by xmlXPathCompExprPtr, and a way to pass that into #xpath, but that seems like relatively straightforward work. (Note this API won't be available in JRuby.)
I'd like to get a rough benchmark ahead of time to see how much time this will save us, for simple and for complex expressions -- after a brief search I couldn't find any prior results here.

I chatted with @tenderlove about this at RubyConf 2024 and I think I've got a clear path to land this in v1.18.0.

See https://github.com/sparklemotion/nokogiri/pull/3378 which implements the context re-use optimization.

I've posted another PR that implements compiled XPath expressions:
https://github.com/sparklemotion/nokogiri/pull/3380
However, I'm not seeing a compelling increase in performance. I'd love if someone who thinks this feature will speed up their code would give that branch a try and show me a benchmark that would convince me it's worth it.

Closing this, if anyone has thoughts on compiled xpath expressions, let's continue the conversation in #3380 🙏


[tmxlite] Fixes and Update to 1.4.4

Don't use vendored dependencies
Fix pkgconfig files
Control library linkage

[x] Changes comply with the maintainer guide
[x] SHA512s are updated for each updated download
[x] The "supports" clause reflects platforms that may be fixed by this new version
[x] Any fixed CI baseline entries are removed from that file.
[x] Any patches that are no longer applied are deleted from the port's directory.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is added to each modified port's versions file.

/azp run

Thanks for the update and the Android fixes!


Online video editor

Pull Request for PyVerse 💡
Issue Title : 📃: Online Video Editor

Info about the related issue (Aim of the project) : To develop a comprehensive online video editing application that allows users to upload, edit, and export videos seamlessly. The application will include essential editing features to cater to both novice and experienced users.
Name: Rahul Aka Vector
GitHub ID: @Rahul-AkaVector
Email ID<EMAIL_ADDRESS>Idenitfy yourself: (Mention in which program you are contributing in. Eg. For a WoB 2024 participant it's, WoB Participant) contributor, gssoc-ext, hacktober-fest

Closes: #208
Describe the add-ons or changes you've made 📃
I have added a new feature that allows users to trim and crop video clips within the Mini Video Editor. Additionally, I have implemented fade-in and fade-out effects for video transitions. These enhancements improve user experience and functionality by providing more editing options.
Type of change ☑
What sort of change have you made:

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested? ⚙
The new features have been tested using multiple video files to ensure the trimming and cropping functionalities work as expected. I also verified the fade-in and fade-out effects across different video lengths. All tests were successful without any errors.
Checklist: ☑

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly wherever it was hard to understand.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] I have added things that prove my fix is effective or that my feature works.
[ ] Any dependent changes have been merged and published in downstream modules.

@UTSAVS26 kindly review the PR and let me know any changes


Is Opponent Playable is  The Scrapped idea

What is your question?
so I found ClientPrefs in gameplay Settings they are only one is were unused (Opponent Playable)
is this were scrap idea?

Doubt it was a scrapped idea but a work in progress one that's been delayed. There is one guy who got it working, so you can merge this to your own build if you want.
https://github.com/ShadowMario/FNF-PsychEngine/pull/2770

Oh Ok :)


[Bug][PagerDuty Plugin] Unable to list over 99 services when configuring the Data Scope

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
While configuring the data scope of a PagerDuty integration you get to select which PagerDuty services to target. If you scroll down, the list will lazy-load additional services. This bug is that if your organization has more than 99 services, the same first 99 services are lazy-loaded.
This really sounds like an API paging offset bug.
What do you expect to happen
When I scroll down the list of services,  I get a continuous list of services.
How to reproduce
Have a PagerDuty organization with 101 services.
Anything else
I've had a quick sift through the code, but I haven't found where that happens yet.
I'll invoke @keon94 's attention because I get a sense he may know where the issue lies. :grin:
Version
main
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

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

After a bit of digging, I think it's happening here, but I still haven't wrapped my head how the paging happens.
I think it might be here, but I have yet to understand what this nextPageToken is. There's no reference to it in the PagerDuty API documentation, so I'm guessing it's an internal generic for handling paging.

Found it. The bug is here.
This should be:
 func GetQueryFromPageData(pageData *PageData) (url.Values, errors.Error) {
        query := url.Values{}
-       query.Set("offset", fmt.Sprintf("%v", pageData.Page))
+       query.Set("offset", fmt.Sprintf("%v", pageData.Page*pageData.PerPage))
        query.Set("limit", fmt.Sprintf("%v", pageData.PerPage))
        return query, nil
 }

@avanier Appreciate your digging into this. Let us know if your suggestion above works, and if so, feel free to open a PR and link it here.

@keon94 Here's the PR! :tada:

@avanier In my testing, after creating about 250 services, scrolling down would keep repeating the same list of services; it wasn't not capped to 99. At any rate, you code change does fix the bug.

Hi  @avanier
Thank you for your contribution!
I’m Joshua Poddoku, Lead Evangelist for Apache DevLake.
We would want to issue you a certificate to honor your contribution on behalf of Apache DevLake and feature you on contributors page.
I just wanted to confirm if your full name is “Alexis Vanier”. I suggest if you could join our slack for communication: https://join.slack.com/t/devlake-io/shared_invite/zt-18uayb6ut-cHOjiYcBwERQ8VVPZ9cQQw
Kindly acknowledge! Thanks again


Make the time from initial wheel touch alert to making noise longer

I just took my first drive with 0.7.10 (since 0.7.7) tonight and since I don't have DM at night I use wheel touch. However with the changes to wheel touch timings in this commit https://github.com/commaai/openpilot/commit/21d4ac1eebba06769f03edf7220ce84bd6ae154d I find myself not being able to catch the alert fast enough so that it doesn't make noise. If I'm looking straight at the road, as soon as I notice that the alert to touch the wheel has shown, it's just then turning to orange and starts making noise, possibly waking up anyone else in the car (but is also annoying if it's just you).
Is there any way we can either delay this prompt noise, or revert part of that commit to make the time from initial "touch the wheel" alert to making noise alert its original length? It was perfect before, but now makes driving at night much more annoying. Another annoyance is the orange warning alert that makes noise turns on and off repeatedly if the monitoring model is uncertain, since the orange alert resets the hi_std_alert_enabled variable, so it's just in a loop until I touch the wheel, even if I'm looking at the road and the model can see me.
That last thing could be solved by a timeout on how quickly it can show the uncertain alert after orange alert is shown.

Follow up; if this will not be changed, then I'd at least like to know if we can revert the driver monitoring times to their previous values without risking being banned. After all, they were good enough until the last commit.

We can make the green alert appear sooner.

Hmm, actually @ZwX1616, can we revert _AWARENESS_PRE_TIME_TILL_TERMINAL and _AWARENESS_PROMPT_TIME_TILL_TERMINAL? I'm not sure why we had to change that.

Yeah that sounds about right, I felt like it gave me about 2 seconds before it made noise which wasn't ideal (you end up hearing that warning beep every ~30 seconds or so at night).

I'll go out and test the original values/find ones that seem better as well as try to fix that uncertain alert flickering while the orange "touch wheel" alert is on screen and open a PR for that

Hmm, actually @ZwX1616, can we revert _AWARENESS_PRE_TIME_TILL_TERMINAL and _AWARENESS_PROMPT_TIME_TILL_TERMINAL? I'm not sure why we had to change that.
Or @ShaneSmiskol, without changing _AWARENESS_TIME=35 if you find values for the others two that are better, we'd upstream.

Yeah we can do that. Something in the middle might be better? But yes I am okay with being more strict with the green while allowing more time to react before orange. The driver is expected to hold the wheel in that situation anyways.

I went out to get a video of the second issue I described, you can see the uncertain warning keeps triggering since the orange alert keeps resetting it. I actually didn't expect it to disengage here, I thought since it wasn't showing either alert for a few seconds that it saw me and reset the timer but I guess it didn't.
https://streamable.com/xxx7on

Have any ideas what can be changed to fix the flickering?

Adobe flash player should be discontinued in December, so as a result, we're going to have to make things more adaptable to HTML5 and webm devices or programming :-) just saying

what

On Nov 3, 2020, at 8:05 AM, DaveyD233<EMAIL_ADDRESS>wrote:
—

Have any ideas what can be changed to fix the flickering?

A counter can be added to avoid throwing multiple alerts within a short amount of time, but it's kind of hacky tbh. When it says "Check Driver Visibility", check driver visibility. If driver visibility can't be achieved, vision DM will not work as desired. I would just touch the wheel to reset.

That being said, you are welcome to find out a comfortable green/orange balance and submit a PR for that!

I don't think not changing behavior is a good solution since it's especially confusing to know what the state of awareness is if it flickers on and off and then goes terminal out of nowhere. It was completely unexpected for me since it seemed like it picked up my face and was happy, but then gave me less than a second to react before disengaging.
I'll make a PR for updating the times though soon, I just need time to experiment


"not owner" on all commands executed by server

I can no longer run any commands on my server. Every time I run a command I get a "not owner" message.
[19:22:35] >>> refreshfix
[19:22:35] Sending request to SCP: Secret Laboratory...
[19:22:35] Console log refresh mode: OPTIMIZED
[19:22:44] >>> refreshfix
[19:22:44] Sending request to SCP: Secret Laboratory...
[19:22:45] not owner

[19:29:52] >>> help
[19:29:52] Commands from MultiAdmin:
[19:29:52] CONFIG <reload>: Handles reloading the config
[19:29:52] EXIT: Exits the server
[19:29:52] GITHUBGEN [filelocation]: Generates a github .md file outlining all the features/commands
[19:29:52] HELP: Prints out available commands and their function.
[19:29:52] INFO: Prints license and author information.
[19:29:52] NEW <config_id>: Starts a new server with the given config id.
[19:29:52] RESTART: Restarts the game server (multiadmin will not restart, just the game)
[19:29:52] RESTARTNEXTROUND: Restarts the server at the end of this round
[19:29:52] STOPNEXTROUND: Stops the server at the end of this round
[19:29:52] Commands from game:
[19:29:52] Sending request to SCP: Secret Laboratory...
[19:29:53] List of available commands:
[19:29:53] not owner

I'm running MultiAdmin 1.4.1.

I am not able to replicate this error, but before executing any command you must wait for
"Waiting for players"
when starting the server.
If the server was started, and you are still experiencing this bug, please tell us how we can replicate the issue.

This is not a MultiAdmin problem, if this persists, please put it as an issue on https://github.com/Grover-c13/Smod2/issues


[CT-324] [Feature] quote setting for metric filters, like expected_values test

Is there an existing feature request for this?

[X] I have searched the existing issues

Describe the Feature
A sibling to https://github.com/dbt-labs/dbt-core/issues/4294, due to feedback in https://github.com/dbt-labs/dbt_metrics/issues/15
This metric definition:
metrics:
  - name: event_count
    label: Event Counts
    model: ref('activity_stream')
    description: "Count of events logged"

    type: count
    sql: activity

    timestamp: timestamp
    time_grains: [day, week, month]

    dimensions:
      - source

    filters:
      - field: timestamp
        operator: '>='
        value: '2021-01-01'

gets rendered in the SQL query as where timestamp >= 2021-01-01, because the first set of quotes are for the ~pot~ parser.
The expected_values test handles this by adding a quote parameter:
      - name: status_id
        tests:
          - accepted_values:
              values: [1, 2, 3, 4]
              quote: false

We should probably be consistent and have quotes here on-by-default as well, but that does feel a bit weird to me.
Describe alternatives you've considered
Continuing to double-quote dates and strings
Who will this benefit?
People filtering their metrics against strings or dates
Are you interested in contributing this feature?
Maybe
Anything else?
No response

One other thing that comes quickly to mind: How to differentiate between whether the field should be quoted, versus the value? We could have sensible per-database defaults for field, or even be clever by looking up the associated column in the model. If we wanted to be cleverer with value, we'd need to do type introspection...

Oh yeah, I was mostly thinking about the value. Haven’t gotten as far as thinking about field quoting - I'm sorta hoping that there's something I can tap into that magically gets it right 😬
I was imagining that it'd be like this (assuming 4294 is done, otherwise add a single set of quotes back around every value)
version: 2

metrics:
  - name: new_customers
    label: New Customers
    [...]
    filters:
      - field: is_paying
        operator: 'is'
        value: true
           quote: false
      - field: lifetime_value
        operator: '>='
        value: 100
           quote: false
      - field: company_name
        operator: '!='
        value: Acme, Inc
           quote: true #true by default anyway
      - field: signup_date
        operator: '>='
        value: 2020-01-01

@callum-mcdata whaddaya reckon?


Sync with apache/incubator-tvm 09/18/2020

Can you change the dmlc_tvm_commit_id to https://github.com/apache/incubator-tvm/commit/71b6a359b414db94e4957c7b670f2eee4e87f5e6

@kevinthesun Looks like there is some unresolved conflicts in python/tvm/topi/nn/pooling.py


Documentation on creating automated tests does not exist

The main use-case for appcenter testing (test cloud) is to be able to create automated tests that run after a new build is triggered. However, the documentation talks just about how to upload a one off test to appcenter from your local machine using a pre-built app bundle. It wasn't until I found this blog https://tomsoderling.github.io/AppCenter-Automated-UI-tests-on-build/ that I could figure out how to create automated tests via post build scripts. I think this needs to be front and center for appcenter test. You can even see that in the blog the author took 34 builds before they got what they wanted, even with support from appcenter.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 1bd83c51-172c-1ec2-a485-9118c1109c0b
Version Independent ID: 44c1a155-e819-aa43-f3aa-2f254afb259b
Content
Content Source
Service: vs-appcenter

Hi @tura08 thanks for the feedback! We know this process could be made clearer and easier, thank you for sharing the link. In addition to improving the documentation, we'll more tightly integrate these two services in the near future.

Hi @glennwester thanks for acknowledging this. Something else to note is that it is not currently feasible to build and test in appcenter due to the build time limit of 30 mins. I am barely able to run tests on two devices before the build times out. I am going to move to VSTS for build and run testing and deployment in appcenter via VSTS.

Hi @tura08, we have a solution for this! You can add --async to to end of your upload command to return immediately after the the app and test files have uploaded. Can you please try this and let me know if it resolves your issue?

Using --async means that my build is now independent of my tests and therefore a build could potentially pass even though the tests fail. I want my pipeline to consists of build, test and distribute... i.e. I want to wait for the tests...

Can I run tests with appium written on Node using the framework Nightwatch ?

Hi @tura08, for the purposes of trialing our service, could you reduce the length of your testing suite so that you can perform an end to end build/test/distribute workflow?

Is there a replacement for Xamarin Test Recorder?

@awesomes007  The comments feature of our documentation is intended to enable customers to suggest changes to the docs or ask clarifying questions about the docs.
App Center support is provided directly from within the App Center portal. Any time you need help, just click the blue chat button in the lower-right corner of any page and our dedicated support team will respond. For additional information, see the [App Center Help Center] (https://intercom.help/appcenter/getting-started/welcome-to-app-center-support).


JSON type and functions

sqlite has these so it might be nice to have in glusql too

There is a plan to provide better semi-structured and even unstructured data in several months.
For now, some limited functions are supported. You can use MAP and LIST data types.
e.g. two data types:

MAP examples
LIST examples


Fixed an issue where the SPM package doesn't compile with Xcode 11.4

After updating to Xcode 11.4, my project is showing the following issue with RxBluetoothKit:
xcodebuild: error: Could not resolve package dependencies:
   target at '/Users/xcode/Library/Developer/Xcode/DerivedData/project-btxgpemzyyretjcousmtwoebmywz/SourcePackages/checkouts/RxBluetoothKit' contains mixed language source files; feature not supported

I've been able to track down the error to the Info.plist file in the Sources folder.
For whatever reason, Xcode 11.4 now doesn't like that there's a file that's now a .swift one. (Xcode 11.3.1 still works fine)
I've included that file in the excluded section in the package description, which solves the issue.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Andrew Marinov seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


⚠ Bofrost.de has degraded performance

In 10bbb96, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 926 ms

Resolved: Bofrost.de performance has improved in e4a228b after 10 minutes.


v1.9.4 rollback and Jekyll 4.0 support

Versions 2.0.0 and 2.1.0 introduced several bugs that affected the Autopages feature. Version 1.9.4 appears to be very stable, working fine even with Jekyll 4.0. With development of the plugin being more or less inactive, I think the most pragmatic solution to get everything working again is to roll back to 1.9.4.
This PR reverts all commits post 1.9.4 and cherry picks the last two, that relaxed the Jekyll dependency version. I've also kept all edits to README.md. All other changes to documentation and examples authored by @ibrado have been reverted, but some might be worth keeping (I didn't have time to check which of them related to 1.9.4).
This might seem like a blunt solution, but it gives us a fully functional version of the plugin that works with Jekyll 4.0, today, with no new code. I suggest releasing this as version 1.9.5, and then resuming development of 2.0.0.

@letrastudio I'm not a maintainer of this project, but provide support nonetheless.
Instead of turning back the pendulum on the master branch and moving forward, the best option here is to point your Gemfile to your fork of this project.
You need not touch the master branch at all. Just checkout a new branch from the v1.9.4 tag and cherry-pick Jekyll 4.0 support onto that branch.

@ashmaroli I'm sure you're right and this wasn't the best way of managing the commit history — I'm not that good at Git 😅
And I'm already pointing my Gemfile at this fork, but thanks for suggesting it. I'm just thinking about all the people who might not know that it's an option, and how they may not even consider that 1.9.4 is the most stable version to use. (It certainly took me a while to come to that conclusion!)
I could redo this PR the way you mentioned. But do you agree that this is a good idea? Let's not call it a rollback — let's call it a backport of Jekyll 4 support to 1.9.x. Wouldn't it be nice to have that hypothetical 1.9.5 version officially released on rubygems?

let's call it a backport of Jekyll 4 support to 1.9.x

That's indeed the correct way of calling this. But unfortunately, this project has just a single branch of code. So technically, backport PR wouldn't be possible until there's a 1.9-stable branch..

But unfortunately, this project has just a single branch of code. So technically, backport PR wouldn't be possible until there's a 1.9-stable branch..

Yeah, I thought that might be the case — that's why I opted for the rollback strategy. My thinking was that after tagging v1.9.5 the newer changes could then be re-reverted, with the v1.9.5 tag sitting between 2.1.0 and whatever comes next. Not exactly orthodox, I know…

To whoever who wants to use jekyll 4.0.0 with paginate-v2 1.9.4 features;
I made a fork whose version is based on 1.9.4 but with relaxed dependency, and re-versioned it as <IP_ADDRESS> .
If you use jekyll under bundler management, then you should be able to update to this version by specifying it in bundler like this;
group :jekyll_plugins do
  # ...
  gem 'jekyll-paginate-v2', github: 'Yuki-Inoue/jekyll-paginate-v2', branch: 'maintenance-1.9'
  # ...
end

To maintainer of this repo
Could you release such <IP_ADDRESS> so that we all can retrieve it from rubygems.org?

Fixed in https://rubygems.org/gems/jekyll-paginate-v2/versions/3.0.0


Update Presentations.md

@all-contributor add @Sarvesh244 for content, example

@all-contributors please add @Sarvesh244 for content, example


Vsock network mode shows no progress when used

The user might get suspicious when using vsock when seeing:
INFO Waiting for machine to be running, this may take a few minutes...
INFO Machine is up and running!

and has to wait for about 2 minutes...
until finally more gets added:
INFO CodeReady Containers VM is running
INFO Generating new SSH Key pair ...
INFO Updating authorized keys ...
INFO Copying kubeconfig file to instance dir ...
INFO Starting network time synchronization in CodeReady Containers VM

The text: INFO Machine is up and running! is too suggestive as "It was successful, right?"

grin no debug logs to get a better idea what it's been doing during these 2 minutes? I'd expect waiting for SSH?

grin no debug logs to get a better idea what it's been doing during these 2 minutes? I'd expect waiting for SSH?

We could redirect redirect/show VM console logs to entertain the user while it starts.

We could redirect redirect/show VM console logs to entertain the user while it starts.

Yep, waiting for SSH. So in this case showing another 'suggestive message', like "Waiting for SSH to provision the machine" or simialr would at least temper the enthusiasm to break out earlier.

Yep, waiting for SSH. So in this case showing another 'suggestive message', like "Waiting for SSH to provision the machine" or simialr would at least temper the enthusiasm to break out earlier.

We could redirect redirect/show VM console logs to entertain the user while it starts.

This might cause an information overload and likely the eclipse console wouldn't appreciate this either.

We could redirect redirect/show VM console logs to entertain the user while it starts.

This might cause an information overload and likely the eclipse console wouldn't appreciate this either.

Yep, waiting for SSH. So in this case showing another 'suggestive message', like "Waiting for SSH to provision the machine" or simialr would at least temper the enthusiasm to break out earlier.

There's a logging.Debug("Waiting until ssh is available") before the Wait for SSH call, the message could be reworded and promoted to Info. I wonder what the VM is doing during these 2 minutes though, should not take that long to start, get an IP and start sshd.

Yep, waiting for SSH. So in this case showing another 'suggestive message', like "Waiting for SSH to provision the machine" or simialr would at least temper the enthusiasm to break out earlier.

There's a logging.Debug("Waiting until ssh is available") before the Wait for SSH call, the message could be reworded and promoted to Info. I wonder what the VM is doing during these 2 minutes though, should not take that long to start, get an IP and start sshd.


Type-based flow control

SUGGESTION
Compilation-time type-based flow control in overloaded functions and/or type-based generic specializations and/or safe static castings are NEEDED.
Suggested syntax:

Compilation-time type-based flow control: C++ compile-time
Compilation-time generic specializations: C++ compile-time
Safe static castings: static_cast(x: object) => TargetType | void

TypeScript Version:  2.4.0 / nightly (2.5.0-dev.201xxxxx)
Code
Example that shows inconsistency of current language abilities
interface IFirst {
	f1(): void;
}

interface ISecond {
	f2(): void;
}

function isFirst(obj: object) {
	return typeof (obj as IFirst).f1 == 'function';
}

function isSecond(obj: object) {
	return typeof (obj as ISecond).f2 == 'function';
}

class CorrectImplementation implements IFirst, ISecond {
	f1() {
		console.info('+f1');
	}

	f2() {
		console.info('+f2');
	}

}

interface IPerson {
	name: string;
}

class IncorrectImplementation implements ISecond {
	f1(x: IPerson): void {
		console.info(`f1(person: ${JSON.stringify(x.name)})`);
	}

	f2() {
		console.info('+f2');
	}

}

let objects:Array<IFirst | ISecond> = [
	new CorrectImplementation(),
	new IncorrectImplementation()
];

for (let inst of objects) {
	if (isFirst(inst)) { ///
		// invalid function type for IncorrectImplementation: (x: IPerson) => void
		// expected () => void
		// => TypeError (runtime): Cannot read property 'name' of undefined
		(inst as IFirst).f1();
	}
	if (isSecond(inst)) {
		(inst as ISecond).f2();
	}
}

Summary:

Type guards do not work as needed.
There is no type-based flow control.
'Compilation-time type checks' does not wor as expected

Should not your type guard check the function length as well, if you want to be safe?
not sure how this is related to type guards or not. you are using type assertions to access your properties, which is telling the compiler to shut up and let you do what you want.
also runtime casting checks is something out of scope of the TypeScript project. please see https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals for more information.

I'm not speaking about runtime type assertions here.
I'm speaking about compilation-time conditions like  std::type_traits::is_base_of<Base, Derived> or something like this to check if (typeof value) implements or extends some concrete interface or class.
I don't want to check length of function and make many other spikes. Situation in the code above is very usual situation in the overloaded functions for example. And this language gives no chance to make good library that can be safe for users.
This is IN THE SCOPE.
Can you be honest with yourselves and write language for clever people not for stupids?

I only want to write something like
for (let inst of objects) {
	if (is_base_of<IFirst, typeof inst)>.value) { ///
		(inst as IFirst).f1();
	}
	if (is_base_of<ISecond, typeof inst)>.value) {
		(inst as ISecond).f2();
	}
}

without any type guards and other spikes. It's only compilation-time type-based flow.
TypeScript has no good implementation of overloaded functions (because of single implementation for many types). It also has no good implementation for generics for the same reasons. But if you want to make strong language for compilation-time process you ** HAVE TO MAKE ** theese things.

@kol-93 please keep our code of conduct in mind.
I think you're just looking for type predicate types.

@DanielRosenwasser please look carefully at my code in the first message before you write your's next.
There are we can see type guards, that can check only JavaScript-compatible properties and types. So if you have function, you can't check it's signature, if you have interface-typed property, you can check it only with other type guards and so on.
So you think wrong. You have too much suggestions about type assertions in this repo here and you or your friends from Microsoft are closing all of them with same reason "out of scope". Please don't tell me about code of conduct because you ignore clever things from good programming languages and implement too many spikes without understanding of basics.
Please look how overloaded functions implemented in other languages before you answer this post. Do you have such implementation?? Do you have generics (or just templates) specialisations? Ok, you don't want to add RTTI to this language (but there too many clever things that it's a bad idea), but in this case you have to implement some instruments for compilation-type assertions else your language will be only a JavaScript with syntax sugar, but not a TypeScript.

Very helpful, precise and constructive commentary. Thee wise man, shalt you share more of your infinite knowledge with us, the uninitiated?

That will be enough for this thread. Runtime type instantiation has been discussed to death and conduct like this will not be changing anyone's mind.


Fixes #666. Refactor ConsoleDrivers to simplify and remove duplicated code

Fixes #666 - Include a terse summary of the change or which issue is fixed.
For v2, and as part of #2606, I'm tackling this. Todo:

[ ]  Move() and AddStr() - there's almost no difference in each of the 4 driver's implementation, and the code is complex and hard to understand.
[ ]  I have an idea that doing unicode wide manipulation in AddStr is the wrong place to do it and will investigate how to move that logic into UpdateScreen
[x]  Each driver defines _ccol and _crow and _contents the same and uses them in the same way. These should be moved into ConsoleDriver
[x]  Move non-driver specific color stuff to ./Drawning
[ ]  Add more primitive unit tests, especially for unicode handling

Pull Request checklist:

[x] I've named my PR in the form of "Fixes #issue. Terse description."
[x] My code follows the style guidelines of Terminal.Gui - if you use Visual Studio, hit CTRL-K-D to automatically reformat your files before committing.
[x] My code follows the Terminal.Gui library design guidelines
[x] I ran dotnet test before commit
[x] I have made corresponding changes to the API documentation (using /// style comments)
[x] My changes generate no new warnings
[x] I have checked my code and corrected any poor grammar or misspellings
[x] I conducted basic QA to assure all features are working

@BDisp take a look...
Right now, the only driver that's really using my new codepath is FakeDriver. When I read your message about working on the same thing, I was just about to refactor AddRune to not be virtual so there was one implementation that looks something like this:
	public override void AddRune (System.Rune systemRune)
	{
		var rune = new Rune (systemRune).MakePrintable ();
		var runeWidth = rune.GetColumnWidth ();
		var validLocation = IsValidLocation (Col, Row);

		if (validLocation) {
			if (rune.IsCombiningMark () && Col > 0) {
				// Decode the previous rune
				var previousRune = new Rune (Contents [Row, Col - 1, 0]);
				var newCombo = new StringBuilder ();
				ReadOnlySpan<char> remainingInput = previousRune.ToString ().AsSpan ();
				while (!remainingInput.IsEmpty) {
					// Decode
					OperationStatus opStatus = Rune.DecodeFromUtf16 (remainingInput, out Rune result, out int charsConsumed);

					if (opStatus == OperationStatus.DestinationTooSmall || opStatus == OperationStatus.InvalidData) {
						result = Rune.ReplacementChar;
					}

					newCombo.Append (result);
					// Slice and loop again
					remainingInput = remainingInput.Slice (charsConsumed);
				}
				newCombo.Append (rune);

				var combined = newCombo.ToString ();
				var normalized = !combined.IsNormalized () ? combined.Normalize () : combined;
				Contents [Row, Col - 1, 0] = normalized [0];// BUGBUG: This is wrong, we need to handle the case where the rune is more than one char
				Contents [Row, Col - 1, 1] = CurrentAttribute;
				Contents [Row, Col - 1, 2] = 1;
				Col--;
			} else {
				Contents [Row, Col, 0] = rune.Value;
				Contents [Row, Col, 1] = CurrentAttribute;

				if (Col > 0) {
					var left = new Rune (Contents [Row, Col - 1, 0]);
					if (left.GetColumnWidth () > 1) {
						Contents [Row, Col - 1, 0] = Rune.ReplacementChar.Value;
					}
				}

				if (runeWidth > 1) {
					Col++;
					Contents [Row, Col, 0] = Rune.ReplacementChar.Value;
					Contents [Row, Col, 1] = CurrentAttribute;
					Contents [Row, Col, 2] = 1;
				}
			}
		}
		Col++;
	}

To enable CursesDriver to render to curses at AddRune time, vs in UpdateScreen, my plan was to add new virtual methods (e.g. OnContentsChanged(col, row, Rune, Attribute, Dirty).
One thing I just learned is having Contents just be an array of tuples of ints is we'll never be able to support combining sequences that don't normalize into a single unicode char. See ContentsTests.AddStr_With_Combining_Characters for an example that will never work.
To address this, I propose we change the way Contents is defined to be a two dimensional array of structs like this:
struct ContentsCell {
   string runes;
   Attribute attr;
   bool Dirty;
}

Also, look at how I refactored things, including the System.Text.Rune extension methods.

See https://github.com/gui-cs/Terminal.Gui/issues/2616

You are doing well. I think with your focused on the ConsoleDriver and I with focused on the System.Text.Rune will result on the right combination.

@BDisp please do me a favor and if you make any more changes to any of the ConsoleDrivers, please submit them as PRs to this PR. I've done some significant refactoring and merging from changes to v2_develop are challenging. Thanks.

@tig all logic I added on the WindowsDriver is broken here. See in the gif bellow that the replacements chars you added here was on BMP code points which has double width. I'll try to make the WindowsDriver working with non-BMP, which I already did in the v2_develop branch, but the cursor doesn't fit the non-BMP length. When I finished more or less I'll target the v2_develop and then you merge in this, because it's confused to me.

Don't bother...yet.
I'm rearchitecting the whole thing.
Please give me another week or so.

Ok @tig. Thanks. The ContentsCell idea is great. There is much duplicate code on all drivers that can be put on in the ConsoleDriver. It only need do call overridden methods to get/set the rune value in the right places (current, previous or next) and get/set the right colors (current, previous or next), where each driver handles differently. But the conditions can be done all on the AddRune (virtual, not abstract). But I also understand it's very complex too :-)

Ok @tig. Thanks. The ContentsCell idea is great. There is much duplicate code on all drivers that can be put on in the ConsoleDriver. It only need do call overridden methods to get/set the rune value in the right places (current, previous or next) and get/set the right colors (current, previous or next), where each driver handles differently. But the conditions can be done all on the AddRune (virtual, not abstract). But I also understand it's very complex too :-)

There are the following areas where the four drivers need to differ, and my thinking about simplifying each:

Emitting changes to Contents. Exactly as you describe above; the essence is "AddStr modifies Contents and `UpdateScreen" reflects any changes since its last call to the platform-specific console APIs. See Note below.
Mapping Terminal.Gui's 'Color' to the platform specific APIs. I'm working to reduce the code in each driver in this regard to only the algorithms needed to do this mapping. As I'm doing this I'm trying to ensure adding TrueColor and other styling will be easier.
Cursor style and visibility APIs. I still have more thinking to do here, but there is duplicate code and some of it seems needlessly complex. I'm not convinced the Terminal.Gui Cursor API is ideally designed, but other than NetDriver flickering, it does work.
Mouse input handling. I haven't dug into this deeply yet, but man is there a lot of code that seems duplicatlve.
Keyboard input handling, I think we can radically simplify this. Terminal.Gui has way too many definitions of a "Key" (Key, ConsoleKey, ConsoleKeyInfo, etc...) and there is a ton of code for mapping between all of these where there seems to be a lot of duplicate logic. I may pun this to a future PR as I simply don't understand a lot of it.
Mapping platform-specific thread synchronization and timers. I'm not planning on touching any of this...when it comes to threading "THAR BE DRAGONS!"

** Note on making AddRune non-virtual: I'm worried about two things
a) At one point the drivers had an "immediate mode" where calling AddStr caused the platform APIs to be called synchronously. The idea being, having the console immediately reflect the change. At some point this code became disabled, and all code-paths end up having UpdateScreen getting called only via a MainLoop iteration (thus AddStr is asynchronous relative to the console actually changing). I do think there are times when an immediate mode are useful (esp in debugging) and I'd like to see if we can add it back in.
b) Parsing Contents for what has changed (even if it is more encapsulated via Cell) may result in poor performance if the underlying API is ANSI escape sequence-stream based. For the current WindowsDriver and NetDriver this may be less of an issue because they provide "direct to buffer" APIs. But Curses doesn't actually do this (in reality it is using ANSI escape sequences under the covers). If we implement #2610 (add a Windows Driver that uses Virtual Terminal Sequences), it will too act in this way. The trick here will be making UpdateScreen smart enough to consolidate and coalesce runs of styling such that megabytes of "\0x[x;yH\0x[r;g;bm" that are duplicative don't get emitted.
I now think I understand why Miguel added #370 (New Terminal Backend) to his todo list way back when: He realized the logic for emitting the right ESC sequences should be in Terminal.Gui, and once that happened, nCurses just gets in the way.
Another way of saying this, I think, is: We can build a single implementation that takes changes from Contents and emits ESC sequences and it will work on BOTH Windows and Linux now that Windows has a real terminal that actually (mostly) conforms to ANSI esc sequence standards.

There are the following areas where the four drivers need to differ, and my thinking about simplifying each:
1. Emitting changes to `Contents`. Exactly as you describe above; the essence is "`AddStr` modifies `Contents` and `UpdateScreen" reflects any changes since its last call to the platform-specific console APIs. See Note below.

See my response there too.

2. Mapping Terminal.Gui's 'Color' to the platform specific APIs. I'm working to reduce the code in each driver in this regard to only the algorithms needed to do this mapping. As I'm doing this I'm trying to ensure adding TrueColor and other styling will be easier.

TrueColor would be great.

3. Cursor style and visibility APIs. I still have more thinking to do here, but there is duplicate code and some of it seems needlessly complex. I'm not convinced the Terminal.Gui Cursor API is ideally designed, but other than NetDriver flickering, it does work.

That why I hide the cursor on the NetDriver while UpdateScreen is executing to avoid the cursor flickering to be more visible, but you commented that code. In Windows you can´t reduce that more it's now. That why I decided use the StringBuilder class to write the minimum of times, because before, when each char was write to console the flickering was much more visible.

4. Mouse input handling. I haven't dug into this deeply yet, but man is there a lot of code that seems duplicatlve.

Yes there are but also each driver handles differently mouse events. Some of them don't send a click event, so we need to create a click event when a released button is captured in the same location when it was pressed. Only the NetDriver receives the right mouse events because the internal NetEvents does all the heavy stuff.

5. Keyboard input handling, I think we can radically simplify this. Terminal.Gui has way too many definitions of a "Key" (`Key`, `ConsoleKey`, `ConsoleKeyInfo`, etc...) and there is a ton of code for mapping between all of these where there seems to be a lot of duplicate logic. I may pun this to a future PR as I simply don't understand a lot of it.

Well this can be more and less identical between WindowsDriver and NetDriver in the response but not on the input, where they are truly different. CursesDriver input is also different but as it's escape sequence compatible, much of EscSeqUtils methods are used.

6. Mapping platform-specific thread synchronization and timers. I'm not planning on touching any of this...when it comes to threading "THAR BE DRAGONS!"

Yes this part is very tricky.

** Note on making AddRune non-virtual: I'm worried about two things
a) At one point the drivers had an "immediate mode" where calling AddStr caused the platform APIs to be called synchronously. The idea being, having the console immediately reflect the change. At some point this code became disabled, and all code-paths end up having UpdateScreen getting called only via a MainLoop iteration (thus AddStr is asynchronous relative to the console actually changing). I do think there are times when an immediate mode are useful (esp in debugging) and I'd like to see if we can add it back in.

That why the drivers has a sync private member for that. Has you can imagine this is private because "immediate mode" can be useful for debugging, but not for a release config. If NetDriver is flickering so much, then if sync is true it will flickering much more, because it will write to the console when each char is added to the buffer and every time it's clear a view, draw a view. Well it'll a hell, even for debugging, believe me. I've started a new method for using in the TestHelpers that read from the FakeConsole buffer, instead of the driver Contents. For all this reason the buffer must be write to the console asynchronously, after the buffer has all write and the Refresh method will run UpdateScreen and UpdateCursor. Although it's asynchronous the are executed in sequence and not alternated.

b) Parsing Contents for what has changed (even if it is more encapsulated via Cell) may result in poor performance if the underlying API is ANSI escape sequence-stream based. For the current WindowsDriver and NetDriver this may be less of an issue because they provide "direct to buffer" APIs. But Curses doesn't actually do this (in reality it is using ANSI escape sequences under the covers). If we implement #2610 (add a Windows Driver that uses Virtual Terminal Sequences), it will too act in this way. The trick here will be making UpdateScreen smart enough to consolidate and coalesce runs of styling such that megabytes of "\0x[x;yH\0x[r;g;bm" that are duplicative don't get emitted.

Don't ever think about adding escape sequences to the Contents. It only take location, runes and attributes. We can make this only as part of the ConsoleDriver which is common to all drivers. For WindowsDriver deal with escape sequences is the same way how the NetDriver active this in the NetWinVTConsole, but WindowsDriver use WriteConsoleOutput which only will write the ScreenBuffer contents. Unless you use another API where you can control the output and write to the console a StringBuilder object.

I now think I understand why Miguel added #370 (New Terminal Backend) to his todo list way back when: He realized the logic for emitting the right ESC sequences should be in Terminal.Gui, and once that happened, nCurses just gets in the way.

Yes I believe, so. I do even think, maybe Miguel can confirm or not, that was the reason he began the NetDriver for this purpose.

Another way of saying this, I think, is: We can build a single implementation that takes changes from Contents and emits ESC sequences and it will work on BOTH Windows and Linux now that Windows has a real terminal that actually (mostly) conforms to ANSI esc sequence standards.

Well the ideal is only using one driver that can be compatible on Windows and Linux, like NetDriver. But this one has pros and cons on both OS. On Windows is so slowing to handle escape sequences. I think it's time to dotnet guys perform a refactoring System.Console that not depends on Win32 API to create Virtual Terminal Sequences or create a new API that is at root more compatible escape sequences. On Linux many of the Console properties aren't allowed, but this is the minor of the problems because in return we can leverage the escape sequences to get/set this properties.

Don't ever think about adding escape sequences to the Contents.

LOL. 100000% agree. What I'm thinking is Contents will be like this (pseudo code):
using System.Collections.Generic;
using System.Text;

namespace Terminal.Gui;

/// <summary>
/// Represents a single row/column in a Terminal.Gui rendering surface
/// (e.g. <see cref="LineCanvas"/> and <see cref="ConsoleDriver"/>).
/// </summary>
public class Cell {
	/// <summary>
	/// The list of Runes to draw in this cell. If the list is empty, the cell is blank. If the list contains
	/// more than one Rune, the cell is a combining sequence.
	/// (See #2616 - Support combining sequences that don't normalize)
	/// </summary>
	public List<Rune> Runes { get; set; }

	/// <summary>
	/// The attributes to use when drawing the Glyph.
	/// </summary>
	public Attribute? Attribute { get; set; }

	/// <summary>
	/// Gets or sets a value indicating whether this <see cref="T:Terminal.Gui.Cell"/> has
	/// been modified since the last time it was drawn.
	/// </summary>
	public bool IsDirty { get; set; }
}

Then, in ConsoleDriver:
	/// <summary>
	/// The contents of the application output. The driver outputs this buffer to the terminal when <see cref="UpdateScreen"/>
	/// is called.
	/// <remarks>
	/// The format of the array is rows, columns. The first index is the row, the second index is the column.
	/// </remarks>
	/// </summary>
	public Cell [,] Contents { get; internal set; }

It only take location, runes and attributes. We can make this only as part of the ConsoleDriver which is common to all drivers. For WindowsDriver deal with escape sequences is the same way how the NetDriver active this in the NetWinVTConsole, but WindowsDriver use WriteConsoleOutput which only will write the ScreenBuffer contents. Unless you use another API where you can control the output and write to the console a StringBuilder object.

Correct.
Regarding _sync - I'm not convinced we can't expose and API that lets developers turn this on and off. The current codebase removed it, but that was done as a temporary measure to make the code more readable for me as I tried to understand it.
FWIW, in other places where I've commented out code (e.g. in the cursor stuff) what you're seeing is one of my techniques to really understand how something works. I try to add "BUGBUG" or "TODO" comments when I do this to remind me to revisit it later, but sometimes I forget.

See 1st post for list of todo's for this PR.


Will trained checkpoints be released?

We will release the checkpoints, and considering that we are further extending our dataset and improving our model structure, we plan to release the improved dataset and model checkpoints after some time.


Re-name repo

To something like Rock band name gen or hipster name gen.
It's also a rapper name gen, or adult industry name gen ... Heehe.

Done.


added heart in footer

🛠 Fixes Issue
#647

👨💻 Changes proposed

✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

📄 Note to reviewers

📷 Screenshots

Please raise an issue !

I have raised an issue

always tag that issue in the PR by WRITING closes #issueNumber


Notify listeners on add

This PR will:

Include notification of listeners upon listener add in WithEvents.js
Make sure ViewportTracker does not notify listeners with incomplete event data
Enable ViewportAware to reattempt layout measurement in case one was requested while the component has not yet been mounted

Coverage decreased (-0.3%) to 82.751% when pulling ea00201d53d6fdf6f4bdc9fa9a87de16863cd62e on fix/last-event-on-add into ecf8bfba0f9ce47387270ec31fd123b21d6891c6 on master.

Coverage decreased (-0.05%) to 83.023% when pulling 6d93c9b7a3d8079f5e229e9dd646fda69284a596 on fix/last-event-on-add into ecf8bfba0f9ce47387270ec31fd123b21d6891c6 on master.

Coverage decreased (-0.05%) to 83.023% when pulling feb6283d24abf4b490d4ec1175993d7905cb9ab4 on fix/last-event-on-add into ecf8bfba0f9ce47387270ec31fd123b21d6891c6 on master.

Coverage decreased (-0.04%) to 83.042% when pulling b3b5a646b3497d48fb56f57e3d66ec3862bb9b41 on fix/last-event-on-add into ecf8bfba0f9ce47387270ec31fd123b21d6891c6 on master.


Add two helpful command-line options for debugging function passes.

What's in this pull request?
Add two helpful new command-line options for debugging function passes.

Before merging this pull request to apple/swift repository:

[ ] Test pull request on Swift continuous integration.

Triggering Swift CI
The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:
Smoke Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please smoke test
    OS X platform               | @swift-ci Please smoke test OS X platform
    Linux platform              | @swift-ci Please smoke test Linux platform

Validation Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please test
    OS X platform               | @swift-ci Please test OS X platform
    Linux platform              | @swift-ci Please test Linux platform

Note: Only members of the Apple organization can trigger swift-ci.

This commit adds -sil-break-on-function and -sil-break-on-pass, both
-Xllvm options.
-sil-break-on-function stops function pass execution in the debugger
just prior to running each function pass on a particular function.
-sil-break-on-pass stops function pass execution in the debugger just
prior to running a particular pass on each function.
Used together, you can break just prior running a particular pass on a
particular function.
For example:
xcrun lldb -- $(/path/to/my/swiftc -c -O problem.swift -###) -Xllvm -sil-break-on-function=TF7problem7problemFT_T -Xllvm -sil-break-on-pass='Simplify CFG'
Now when running under the debugger, we'll stop execution just prior
to each run of Simplify CFG on the function problem() in
problem.swift.

@swift-ci Please smoke test


Cache Not Expiring When Overwriting an Image Via Upload

I have a question on how the cache is supposed to work. I have a system which allows uploading images to a media directory. For example, a user uploads a file to the following path:
/media/pic.jpg
The system I am using to view the file after uploading uses ImageProcessor with a URL such as:
/media/pic.jpg?width=250
This works great, the cache module is installed and working etc. Now, if the user uploads a different file but uses the same name, instead of seeing the different file after uploading it, the user sees the old file until they do a refresh using control f5 even when using a URL that should activate ImageProcessor:
/media/pic.jpg?width=250
So my question is, if I use the URL above for an image, then upload an entirely different image that uses the same file name, should the cache mechanism in ImageProcessor tell the browser that the file has changed? Or is browser always going to load the image from its own cache because the URL is exactly the same?
Thanks,
John

I'll have to have a look at this. There must be some sort of browser caching issue. What browser are you using?
The disk cache works by creating a hash of the image name, querystring params, the file size and the last write time of the input image. If any of those values are different then it will reprocess the image.
The browser should be registering the input image as a file dependency and clear out it's cache. I have noticed though more and more that browsers seems to overly aggressively cache objects so I'll have to double check.
I've got a release coming out soon with a fix for removal of etags so I'll test it before I release that.
Cheers
James

Hi James,
I am able to replicate this in Firefox, IE and Chrome. To correct one thing I said above - I do not need to do a control f5 to refresh the image, instead a standard page refresh works. But after uploading an image I do not see the new image until I do a page refresh.
I created a very simple sample website to demonstrate the problem. It can be found here:
https://github.com/PromontoryProtean/ImageProcessor-Cache-Test
I'm fairly new to GitHub so let me know if there is a problem grabbing the files. Hopefully I set this up in a clear enough way to demonstrate what is happening.
Thanks,
John

Ah right. That makes more sense.
In short, there's no way to force the browser to clear the cache from my end as the browser does not make a request to the server if the url is the same. That's why people employ various cachebusting techniques such as appending the current datetime to a url.
I would append the cache buster following an upload using JavaScript using a hash as follows:
http://stackoverflow.com/a/9943419/427899
From my end I've done what I can. The server will send the correct response headers and invalidate it's own cache should the source image change. The disk cache will update also.
I hope that helps.
James

Hi Jim,
Thanks for the Stack Overflow link, that definitely clears things up for me. I didn't realize that browsers have become so aggressive in their caching mechanisms. I wrongly assumed that browsers respected the expiration headers if they were set correctly.
I am now considering some kind of server side fingerprint mechanism. Here is an approach that I think might be a good fit:
http://madskristensen.net/post/cache-busting-in-aspnet
I am super busy with beginning of the year projects, but I will experiment when I get some time and report back on my progress if I come up with something useful.
Thanks,
John

No worries,
Yeah I know that approach. I use something similar in my Cruncher project, it works a treat for that though you'd have to use a hash as you can't change the rest of the url.

Hi Jim,
I had some time to work on this so I tested the fingerprint approach and it solved my problem. I can do something like this to call an image:
<img src="<%=Fingerprint.Tag("/media/sample.jpg") %>?width=100&height=100&mode=max" alt="Sample Image" />
And it will be rendered on the client side as:

I updated my GitHub project above with a working example. Do you think it might be useful to include the Fingerprint method in ImageProcessor.Web.Helpers? I know it is not specific to images (could be used for any resource file such as CSS, javascript etc.) but it might be useful to have readily available.
Thanks,
John


Very slow to loading checkpoint shards and convert tokenizer - Tesla P40

hello,
Using a Tesla P40 on windows. the app is very slow to loading checkpoint and convert tokenizer
You set add_prefix_space. The tokenizer needs to be converted from the slow tokenizers Loading checkpoint shards: 100%|█████████████████████████████████████████| 2/2 [04:22<00:00, 131.28s/it]

Is it normal ?

i have tried this tips but nothing change https://discuss.huggingface.co/t/error-with-new-tokenizers-urgent/2847/4
    Uninstalled transformers
    Installed transformers sentencepiece like this : !pip install --no-cache-dir transformers sentencepiece
    Use_fast= False like this: tokenizer = AutoTokenizer.from_pretrained(“XXXXX”, use_fast=False)

thanks

The output is normal, see https://github.com/jy0205/Pyramid-Flow/issues/34#issuecomment-2408554153.
However, the slow checkpoint loading is unusual, could you check your RAM usage?

According to this, the bottleneck seems to be reading from HDD.


Task netinfo:compileDebugJavaWithJavac FAILED (NETWORK_TYPE_NR cannot find symbol) - [SOLUTION USE compileSdkVersion/targetSdkVersion 29+)]

<Hii ,All I have the same issue on My applications while cleaning gradlew clean also and also i try above cases its not fixed. Anyone help me with this issue..
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':react-native-community_netinfo:compileDebugJavaWithJavac'.
Compilation failed; see the compiler error output for details.
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
BUILD FAILED in 13s
My Environment  Versions:
System:
OS: Windows 10 10.0.19043
CPU: (12) x64 Intel(R) Core(TM) i7-10810U CPU @ 1.10GHz
Memory: 3.02 GB / 15.61 GB
Binaries:
Node: 16.13.0
Yarn: 1.22.17
npm: 8.1.3
IDEs:
Android Studio: Version 2<IP_ADDRESS> AI-203.7717.56.2031.7784292
npmPackages:
react: ~16.9.0 => 16.9.0
react-native: ~0.61.5 => 0.61.5
Description.
While Run the react-native run-android project it shows error on task failed in Task :react-native-community_netinfo:compileDebugJavaWithJavac FAILED .

Hii Sure @LavaRiddle  while build applicaton on gradle version 6.0.2 to 7.3 getting error. can you any similar way. I tried so many ways but not working can you say any ways for me

You must use compileSdkVersion and minSdkVersion 30 for this to work: https://developer.android.com/reference/android/telephony/TelephonyDisplayInfo#OVERRIDE_NETWORK_TYPE_NR_NSA
That's the current play store minimum requirement so this should not be a burden? As in: you literally cannot publish an app on the app store without having targetSdkVersion 30 so your app should be there already. Can you confirm that you are not on those versions, and that it works if you bump to those versions?
This was not an intentional breaking change though - it was an inadvertent one. We can certainly require compileSdkVersion 30 (or 31) easily, but requiring targetSdkVersion 30 is perhaps more difficult (for non play store apps?).
I didn't realize this would be breaking and it should be called out in the release notes - sorry for the trouble and let me know if it resolves with the APIs set to 30+

Hi Mike, you're right, I checked the API levels and the NETWORK_TYPE_NR appears after api level 29 - setting the minSDK to at least 29 resolved this.

It's target 30 across the entire store period - they're rejecting binary uploads if you're not targetting 30 (ask me how I know .... https://github.com/ankidroid/Anki-Android/issues/5304 :sweat_smile:   )

I can't go back and fix an accidental breaking change, but the symbols were actually released in the 6.x series before we did 7.x
I edited the 6.x release notes to indicate the accidental break, and I added this item to the breaking changes list on the 7.0.0 release so future developers should hopefully not suffer
Thanks for confirming that worked!

Hii @mikehardy  thanks for the solutions..

same issue for me!, any update

same issue for me!, any update

You Need To Upgrade the
compileSdkVersion = 29
targetSdkVersion = 29
If you fix this it will be working fine.

working

but now Play store require SdkVersion 30, :(

same issue for me!, any update

You Need To Upgrade the compileSdkVersion = 29 targetSdkVersion = 29 If you fix this it will be working fine.
but now Play store require SdkVersion 30, :( i can't go back verison 29.

same issue for me!, any update

You Need To Upgrade the compileSdkVersion = 29 targetSdkVersion = 29 If you fix this it will be working fine.

but now Play store require SdkVersion 30, :( i can't go back verison 29.

At this point, everyone developing Android apps should be using compileSdkVersion 31, targetSdkVersion 30 at least (maybe 31 if your libraries support it - not all do quite yet but you should be testing...), and JDK 11.
Do not attempt to use anything lower. Do not file issues or comments in repositories if you are attempting to use lower versions than that, as you're just going to be wasting your time and maintainer time.
This is all driven by Google and the way they slowly push version bumps out in the ecosystem. Start moving forward...

@AregbesolaOJ there is only one reason those symbols aren't found, and it's definitely the wrong API level used during build. Perhaps npx react-native-clean-project will help

Oh thanks @mikehardy  I already tried that as well, no luck. The docs mentions parsing the androidXCore version in the build.gradle buildscript block for AndroidX platform, getting same error even after adding that.

All I can say is, if the example works, the module works. Examine differences and apply to your project, as you hhav a project specific problem somewhere. It works in all my work projects as well, there is nothing wrong with the module

<Hii ,All I have the same issue on My applications while cleaning gradlew clean also and also i try above cases its not fixed. Anyone help me with this issue.. FAILURE: Build failed with an exception.
What went wrong: Execution failed for task ':react-native-community_netinfo:compileDebugJavaWithJavac'. Compilation failed; see the compiler error output for details.
Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
BUILD FAILED in 13s
My Environment Versions: System: OS: Windows 10 10.0.19043 CPU: (12) x64 Intel(R) Core(TM) i7-10810U CPU @ 1.10GHz Memory: 3.02 GB / 15.61 GB Binaries: Node: 16.13.0 Yarn: 1.22.17 npm: 8.1.3 IDEs: Android Studio: Version 2<IP_ADDRESS> AI-203.7717.56.2031.7784292 npmPackages: react: ~16.9.0 => 16.9.0 react-native: ~0.61.5 => 0.61.5
Description. While Run the react-native run-android project it shows error on task failed in Task :react-native-community_netinfo:compileDebugJavaWithJavac FAILED .

try to update JDK to 11

Hi everyone,
I tried all the above solutions - changing compileSdkVersion & targetSdkVersion numbers. Still getting the same error.
Task :@react-native-community_netinfo:compileDebugJavaWithJavac FAILED
FAILURE: Build failed with an exception.

What went wrong: Execution failed for task ':@react-native-community_netinfo:compileDebugJavaWithJavac'. > Compilation failed; see the compiler error output for details.
Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
BUILD FAILED in 3s
10 actionable tasks: 1 executed, 9 up-to-date
error Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html
error Command failed: ./gradlew app:installDebug. Run CLI with --verbose flag for more details.
npm ERR! code ELIFECYCLE
npm ERR! errno 1

Please suggest any hints to rectify this error.

What went wrong: Execution failed for task ':@react-native-community_netinfo:compileDebugJavaWithJavac'. > Compilation failed; see the compiler error output for details.

But you don't post the compiler error output, so no help is possible.

Getting the same error:
> Task :react-native-community_netinfo:compileDebugJavaWithJavac FAILED

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.7/userguide/command_line_interface.html#sec:command_line_warnings
289 actionable tasks: 24 executed, 265 up-to-date
/Users/admin/Desktop/work/statnews/mobile/node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/types/CellularGeneration.java:53: error: cannot find symbol
            case TelephonyManager.NETWORK_TYPE_NR:
                                 ^
  symbol:   variable NETWORK_TYPE_NR
  location: class TelephonyManager
/Users/admin/Desktop/work/statnews/mobile/node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/ConnectivityReceiver.java:293: error: cannot find symbol
                            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
                                                                                ^
  symbol:   variable Q
  location: class VERSION_CODES
/Users/admin/Desktop/work/statnews/mobile/node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/ConnectivityReceiver.java:295: error: cannot find symbol
                                        wifiInfo.getRxLinkSpeedMbps();
                                                ^
  symbol:   method getRxLinkSpeedMbps()
  location: variable wifiInfo of type WifiInfo
/Users/admin/Desktop/work/statnews/mobile/node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/ConnectivityReceiver.java:304: error: cannot find symbol
                            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
                                                                                ^
  symbol:   variable Q
  location: class VERSION_CODES
/Users/admin/Desktop/work/statnews/mobile/node_modules/@react-native-community/netinfo/android/src/main/java/com/reactnativecommunity/netinfo/ConnectivityReceiver.java:306: error: cannot find symbol
                                        wifiInfo.getTxLinkSpeedMbps();
                                                ^
  symbol:   method getTxLinkSpeedMbps()
  location: variable wifiInfo of type WifiInfo

Happens even if I set my minSdkVersion to 29 (my compileSdkVersion and targetSdkVersion was already at 31):
    ext {
        buildToolsVersion = "30.0.2"
        minSdkVersion = 29
        compileSdkVersion = 31
        targetSdkVersion = 31
        ndkVersion = "20.1.5948944"
    }

I notice minSdkVersion isn't 29 in either android/ or example/android/ Gradle of this project, so seems like minSdkVersion isn't the important part.
Was unable to build the example project here for unrelated reasons.
Seems very clear this is being built against an SDK prior to 29, so I have to assume the SDK version is being overridden somehow, but I'm yet sure how. I'm on React Native 0.64.4 right now.

Okay, by isolating the issue, I found another dependency (specifically Adobe Analytics) was causing the incompatibility. Based on Mike's advice in #464 I tried overriding its target and compile versions and this appears to have allowed the build to work.
subprojects {
  task listAllDependencies(type: DependencyReportTask) {}

  afterEvaluate { project ->
    if (project.name.contains('acpanalytics')
      && project.hasProperty('android')) {
      android {
        compileSdkVersion 31
        defaultConfig {
          targetSdkVersion 31
        }
      }
    }
  }
}


Provide iOS icon set

Would be very interesting provide specific icon set for iOS platform, even that Android and Windows Phone  share the same icon set, iOS has very different icons UI, because of this justify this isolated the iOS platform.

I've seen that this request already is offer, sorry.


Performance Optimisation

Hello,
Are there any plans to improve the peformance of the PIXIGAFPlayer?
I ask this because I have the same animation in both GAF and Spine yet I seem to be getting consistently worse performance with GAF ( . My testing involved creating multiple instances of the same animation on screen.
In order to make sure the problem wasn't the GAF animations I was using, I also tested using 5 instances of the "first_test" demo animations in this repo. My mobile device had a hard time keeping a consistent 60fps in this test yet the device could consistently maintain 60fps in more complex spine animations.
Thanks

Hi @Shaylin ,
I have plans to optimize the PxiGAFPlayer but no time at the moment, I have no idea when I will work on it.
Do you think it's possible to send me the different files you use for your tests in Spine and GAF ?
Thank you

Hi,
Unfortunately I can't send you the animations as they're company IP.
I did also test the first_test animation in this repo. It just seemed like 5 animations on
screen shouldn't have had such a significant performance impact.
Would you be open to accepting a pull request with performance optimisation changes for PIXI GAF Player ?
I might work on it in the future.
Thanks

Absolutely!!! Any help is welcome :)
I'm not sure of the impact in performance bit one of the first step in optimization I would like to do is to remove useless getter/setters and replace these by properties. At this step, the code is a simple conversion of AS3 player.


@processContent injecting a template element breaks IE rendering

I'm submitting a bug report

Library Version:
1.4.2

Browser:
IE 11

Language:
TypeScript 2.3.3

Current behavior:
I recently implemented an approach for hiding the replace-part syntax from our framework's custom controls. @jdanyow pointed me in the right direction here.
This works fine in chrome/firefox/edge, but now we're facing issues with a customer still using IE11. The templates simply don't render there.
I was thinking this would be the same issue as #460, but unfortunately the fix provided there didn't work in my case.
You can reproduce this by running the attached project in IE and Chrome. The dropdown is populated in IE, but the content doesn't render.
au_template_issue.zip

@jdanyow I know you had some improvements to template creation you were working on. Can you test this scenario as well?

I'm having the same problem here. The fix in #460 works great for simple templates using if.bind, but replace-part is not handled correctly.
According to the source, replace-part must be on a
We are starting to feel this issue, could this be resolved any time soon?

@arnederuwe IE is known not to like invalid HTML - you are putting content different from text inside an <option>:
<select>
  <option repeat.for="item of itemsSource">
    <template replaceable part="item-template"></template> <!-- invalid HTML -->
  </option>
</select>

@TimVevida By saying you have the same problem, do you mean you are also adding content different from text into an <option>?

Thanks for the reply @StrahilKazlachev
If I understand correctly, this would mean you can't use templates inside of an option tag in IE?
While unfortunate, if this is a browser limitation, so be it. I do think however limitations like these should be clearly visible in Aurelia's official docs, perhaps create a section listing IE's limitations?


Improvement in palindrome project

Is your feature request related to a problem? Please describe.
The existing palindrome project needs some work on functionality and more on its UI.
Describe the solution you'd like
I wanted to make it more user friendly so I removed the submit button and the output is printed dynamically. I have changed its UI also.
Describe alternatives you've considered
na
Additional context
Original Screenshot:

Expected changes:

@Vanshiii203 please check this issue


The aot compiler encountered a segmentation fault while compiling this wasm binary.

I constructed a wasm binary with an exported function called "main". I used the following command to compile it with aot compiler, while a segmentation fault was encountered.
file9.zip
wamrc -o file9.wasm.aot file9.wasm

And the outputs are:
Create AoT compiler with:
  target:        x86_64
  target cpu:    znver3
  target triple: x86_64-unknown-linux-gnu
  cpu features:
  opt level:     3
  size level:    3
  output format: AoT file
Segmentation fault (core dumped)

I used other runtimes to execute this wasm binary and found that the program seemed to contain an endless loop.

#2595


is beast and asio good enough for enterprise use? how about it compared to netty?

is beast and asio good enough for enterprise use? how about it compared to netty?
and is there any famouse App/Website/Exe use beast and asio?

Yes, and yes.


Add some necessary contents for diagnostic suppressions.

PR Summary
Fixes https://github.com/PowerShell/PSScriptAnalyzer/issues/1691.
Output Suppressions to sarif result file.

Add a list of suppressions for each diagnostic.

Add -IncludeSuppressions parameter for output all violations including suppressed one.

Add Kind attribute in RuleSuppression.

Add test cases for those changes.

PR Checklist

[ ] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[ ] Summarized changes
[ ] Change is not breaking
[ ] Make sure all .cs, .ps1 and .psm1 files have the correct copyright header
[ ] Make sure you've added a new test if existing tests do not effectively test the code changed and/or updated documentation
[ ] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: to the beginning of the title and remove the prefix when the PR is ready.

tests issue needs to solve before merge: https://github.com/PowerShell/PSScriptAnalyzer/issues/1695

/azp run

@bergmeister could you also please take a look at this?

@t-lipingma I've implemented the suppression combination part of this work in https://github.com/PowerShell/PSScriptAnalyzer/pull/1699.


Replace implementation of Provider Type RequestPathInfo

https://github.com/Adobe-Consulting-Services/acs-aem-commons/blob/ff750e963a7ca3a1df49f4a9afa8aca4be4c63ef/bundle/src/main/java/com/adobe/acs/commons/wcm/vanity/impl/ExtensionlessRequestWrapper.java#L40 and https://github.com/Adobe-Consulting-Services/acs-aem-commons/blob/ff750e963a7ca3a1df49f4a9afa8aca4be4c63ef/bundle/src/main/java/com/adobe/acs/commons/synth/impl/SynthesizedSlingHttpServletRequest.java#L182 implement the provider type RequestPathInfo. As that leads to a critical issue in CQRules:CQBP-84 we have to find a way to not trigger this rule.

@cziegeler: Any idea how to circumvent running into this? AFAIK there is no RequestPathInfoWrapper provided by the product one could rely on.

I think the best solution is to add a RequestPathInfoWrapper to Sling API

That is no solution for ACS AEM Commons, because it needs to stay backwards compatible with AEM Classic 6.4 (which I fear will never get an updated bundle version of Sling API, once there is one).

ok, then I guess the only way is to avoid the implementation of that interface which I guess is not possible either

That is no solution for ACS AEM Commons, because it needs to stay backwards compatible with AEM Classic 6.4 (which I fear will never get an updated bundle version of Sling API, once there is one).

Why does the 6.x branch have to keep on working on AEM 6.4? The end of core support is reached for AEM 6.4 and they can keep on working on the 4.x or 5.x branch?

Even if we drop support for 6.4 we will have to support 6.5 which is unlikely to receive an update of the Sling API bundle either.

FTR: I added the wrapper to Sling in https://issues.apache.org/jira/browse/SLING-10650 but as I said, this is no short term solution.

Also, FWIW - i tried using the MockRequestPathInfo from the Sling Servlet Helper module (which has its own problems since that doesnt ship with AEM, or atleast not all versions) - however that Sling module violates a number of @ProviderType declarations on the Sling Http request/response abstractions (since it basically re-implements many of these interfaces for mock/internal request use) - so perhaps this is a bigger issue unless somehow Sling gives itself a pass on violating the @ProviderType rules (and FWIW, Cloud Manager does not forgive it - so using the APIs in the Sling Servlet Helper APIs throws many Critical Bugs in CLoud Manager).. Not sure if we (or rather Sling) needs wrappers for "everything" or what.

This has been fixed in https://github.com/Adobe-Consulting-Services/acs-aem-commons/commit/1a25b353606dba8c16a40cabc621db3a261a5eb3.


Send mixed Shopping Baskets to Paypal and SOFORT

I want to use the possibility of Paypal to send mixed shopping baskets to Paypal (I think they call it "parallel payments") - we need to add several parallel payments in one basket (e.g. one or two "one time" payments and 1 oder 2 recurring payments) within ONE transaction - at the moment it looks like wirecard does not support this.

Hello!
Thank you for asking. We have forwarded this question to my colleagues who are responsible for the API. Immediately when we receive the answer we will update you.
Kind regards

Hello once again,
after receiving the answer to your question from my colleagues I can tell you that wirecard really does not support this feature yet. I have to close this issue now.
Have a nice day!


Multi-GPU training

Hi, these examples are excellent, and can we training on multi-GPUs with K2/lhotse? Just like the DDP in pytorch?

I don't believe we have examples of multi-GPU training yet, but AFAIK
standard PyTorch mechanisms for multi-GPU training should work.
If you try, let us know, and make a PR about it!
On Tue, Jan 19, 2021 at 4:58 PM ffhh<EMAIL_ADDRESS>wrote:

Hi, these examples are excellent, and can we training on multi-GPUs with
K2/lhotse? Just like the DDP in pytorch?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/k2-fsa/snowfall/issues/76, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZFLO5BU7THFY7ZHC7MU2TS2VCSXANCNFSM4WIOG3LA
.

I don't believe we have examples of multi-GPU training yet, but AFAIK
standard PyTorch mechanisms for multi-GPU training should work.
If you try, let us know, and make a PR about it!
On Tue, Jan 19, 2021 at 4:58 PM ffhh<EMAIL_ADDRESS>wrote:

Hi, these examples are excellent, and can we training on multi-GPUs with
K2/lhotse? Just like the DDP in pytorch?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/k2-fsa/snowfall/issues/76, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZFLO5BU7THFY7ZHC7MU2TS2VCSXANCNFSM4WIOG3LA
.

There is a WIP pull-request about multi-GPU training: https://github.com/k2-fsa/snowfall/pull/71

There is a WIP pull-request about multi-GPU training: https://github.com/k2-fsa/snowfall/pull/71

Thanks, I'll try it. @danpovey @csukuangfj

Thanks, I'll try it. @danpovey @csukuangfj

BTW I intend to finish that PR so that we can switch between single-GPU and multi-GPU training when I find some spare time. I will also need to make sure that it does the right thing when aggregating things like validation loss between the GPUs (I saw both processes return slightly different values) and storing/loading checkpoints. If you have more time and can pick it up before I do, you're welcome to do it :)

BTW I intend to finish that PR so that we can switch between single-GPU and multi-GPU training when I find some spare time. I will also need to make sure that it does the right thing when aggregating things like validation loss between the GPUs (I saw both processes return slightly different values) and storing/loading checkpoints. If you have more time and can pick it up before I do, you're welcome to do it :)

Fantastic!!
On Wed, Jan 20, 2021 at 2:36 AM Piotr Żelasko<EMAIL_ADDRESS>wrote:

BTW I intend to finish that PR so that we can switch between single-GPU
and multi-GPU training when I find some spare time. I will also need to
make sure that it does the right thing when aggregating things like
validation loss between the GPUs (I saw both processes return slightly
different values) and storing/loading checkpoints. If you have more time
and can pick it up before I do, you're welcome to do it :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/k2-fsa/snowfall/issues/76#issuecomment-763040596, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZFLO6JUGID2MJESMMUBCLS2XGLFANCNFSM4WIOG3LA
.

Fantastic!!
On Wed, Jan 20, 2021 at 2:36 AM Piotr Żelasko<EMAIL_ADDRESS>wrote:

BTW I intend to finish that PR so that we can switch between single-GPU
and multi-GPU training when I find some spare time. I will also need to
make sure that it does the right thing when aggregating things like
validation loss between the GPUs (I saw both processes return slightly
different values) and storing/loading checkpoints. If you have more time
and can pick it up before I do, you're welcome to do it :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/k2-fsa/snowfall/issues/76#issuecomment-763040596, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZFLO6JUGID2MJESMMUBCLS2XGLFANCNFSM4WIOG3LA
.


Can the Auto Vo output be scoped in any way?

A feature idea - have the ability to specify a node within which to keep VO in. Not sure if there might be any way to do this. Presumably it'd involve something like setting focus on starting element (JS?) and then reading from there. Is there conceivably a way to say when to stop?
Anyway, just an idea to throw out there in case there is a way to do it. :)

hi @lloydi, thanks for the issue. you could potentially do component specific testing against a storybook or other pattern library page. you might also check out voiceover.js for more fine grained targeting.


SNICallback native

Hello, I would like to indicate a new native functionality for express in your next updates: native SNICallback.
Today we do not have native support for such functionality. I myself, in a current project, needed SNICallback and I only found it in NodeJS native https functions but I didn't find any direct implementation in ExpressJS where I would rather have a raised server.
The solution was to join NodeJS https together with Express to use such a feature, but if the same feature was available natively in Express it would be of great help.
Such functionality is important because it helps us a lot in several things, including leaving a Dynamic SSL (which was for this functionality I needed).
Explanation of functionality in NodeJS can be found at the link: SNICallback in NodeJS

I am trying to use SNICallback, but the app I provide never seems to get invoked. Do you have working examples using SNICallback?

I am trying to use SNICallback, but the app I provide never seems to get invoked. Do you have working examples using SNICallback?

I use it like this:
import express from 'express';
import https from 'node:https';

const app = express();

async function dynamicCertify(domain){
    // do something
}

let options = {
    SNICallback: async function (domain, cb) {
        if (cb) {
            cb(null, await dynamicCertify(domain));
        } else {
            return await dynamicCertify(domain);
        }
    }
}

let server = https.Server(options, app);

app.get('*', (req, res) => {
    res.send('Hello World!');
});

server.listen(PORT, () => {
    console.log(`Server running on port ${PORT}...`);
});

Thanks for the reality check
Knowing it is supposed to work helps. I wonder if something broke in Node 19. I'll continue to explore.
My code is essentially the same as yours though I preload the certificates generated using acme.sh. I'm also running on Windows with Node 19. I wonder if that could be a factor. Or firewall rules or any other attempts to be "helpful" in the path. I did try WSL but it may not be pure enough Linux.

I've narrowed my issue down. In debug mode, I'm told I have an invalid SNI context. What kind of object does your dynamicCeritify return? I've been using { context: {key, cert}} and that may be the culprit.

Got it to work using
 cb(null,  tls.createSecureContext(sc));


Hide PassThroughInputManager from input queue if parent input is disabled

Closes https://github.com/ppy/osu/issues/9658
[x] Depends on #6221

This resolves issue 1 pointed at https://github.com/ppy/osu/issues/9658#issuecomment-2005767323, and together with #6221, will resolve the issue entirely.
When the user presses the key to resume gameplay, ResumeOverlay enables the game input manager inside the key binding event handler.
In master, PassThroughInputManager is still included in the input queue even if UseParentInput is disabled, therefore, the game input manager will be next in line to handle the resumption key press, and since it's enabled by the ResumeOverlay before its turn comes to handle the event, it will end up handling it and incorrectly counting it as a game press (ResumeOverlay cannot block the key by returning true because it is nested in a pass-through input manager by itself).
With this PR, PassThroughInputManager will be hidden from the input queue if UseParentInput is disabled, therefore, even if ResumeOverlay enables the game input manager, the input manager will not be in the input queue to handle the key press.
Alternative path would be to schedule the resume operation in osu! so that the resumption key press event in the current frame passes all over the drawables in the input queue without the game input manger handling it, then have game input manager become enabled next frame.
Checked and made sure tests pass in here and in osu! as well.

Wanna resolve conflicts here?


Incomplete PrivacyInfo.xcprivacy

PAL iOS and tvOS frameworks explains the use of the following Required Reason APIs:

NSPrivacyAccessedAPICategorySystemBootTime
NSPrivacyAccessedAPICategoryUserDefaults

When scanned with the https://github.com/Wooder/ios_17_required_reason_api_scanner, iOS framework seem to be using more than that:

NSPrivacyAccessedAPICategoryFileTimestamp via a stat call

Full scanner output:
Used symbols in binary ./swift-package-manager-google-programmatic-access-library-ios/ProgrammaticAccessLibrary/ProgrammaticAccessLibrary.xcframework/ios-arm64_x86_64-simulator/ProgrammaticAccessLibrary.framework/ProgrammaticAccessLibrary: mach_absolute_time, NSUserDefaults
Used symbols in binary ./swift-package-manager-google-programmatic-access-library-ios/ProgrammaticAccessLibrary/ProgrammaticAccessLibrary.xcframework/ios-arm64/ProgrammaticAccessLibrary.framework/ProgrammaticAccessLibrary: mach_absolute_time, NSUserDefaults, stat
Used symbols in binary ./swift-package-manager-google-programmatic-access-library-tvos/GoogleProgrammaticAccessLibrary/ProgrammaticAccessLibrary.xcframework/tvos-arm64/ProgrammaticAccessLibrary.framework/ProgrammaticAccessLibrary: mach_absolute_time, NSUserDefaults
Used symbols in binary ./swift-package-manager-google-programmatic-access-library-tvos/GoogleProgrammaticAccessLibrary/ProgrammaticAccessLibrary.xcframework/tvos-arm64_x86_64-simulator/ProgrammaticAccessLibrary.framework/ProgrammaticAccessLibrary: mach_absolute_time, NSUserDefaults

Please prepare a hotfix release adding NSPrivacyAccessedAPICategoryFileTimestamp to PrivacyInfo.xcprivacy file in iOS framework.

Thank you for identifying this issue. We are currently preparing a new release that should include the missing framework in privacyinfo.

@krin-san which version of PAL are you using? Version 2.8.1 should not be using NSPrivacyAccessedAPICategoryFileTimestamp.

You're right, @ericleich, after an update it only uses NSPrivacyAccessedAPICategoryUserDefaults. I might have used pre-update scan logs by mistake.


Version application data properties

azp run

@amikoliunas @Animagne does this need to be backported?

@amikoliunas @Animagne does this need to be backported?

I think so, Diego needs it for consumption reporting.

@diegopinate can you confirm the backport need?

/azp run

@amikoliunas @Animagne does this need to be backported?

@calebmshafer, yes, we would need this asap for the agent to use

@Mergifyio backport release/2.19.x


login if session expired

market filter added to sys argv
listener exception added and used
more tests added
storageengine only deletes files if zip is older than 1hr
market_expiration added
closes #20

Coverage increased (+5.0%) to 76.892% when pulling a40e0f193b7073e116d5415ffc853a4d643d456c on UAT into 5c1c25688d83a0305db7c26d4b835af7d51cbd05 on master.


sytem state sysmaster/status segfaulting

for FMAD80 sysmaster/status is not correctly configured for 2x40G native ports. resulting in a the daemon going down.

fixed, output looks like
fmadio@fmadio100-095:~$ curl XXXX "http://localhost/sysmaster/status"
uptime,                                             0D 0H 39M
packets_received,                                           0
packets_dropped,                                            0
packets_errors,                                             0
packets_captured,<PHONE_NUMBER>61
bytes_captured,<PHONE_NUMBER>9397
bytes_pending,                                              0
bytes_disk,                                                 0
bytes_overflow,                                            0
bytes_overflow_now,                                            0
capture0_link,                                              up
capture0_link_uptime,                                0D 0H 39M
capture0_link_speed,<PHONE_NUMBER>0
capture1_link,                                            down
capture1_link_uptime,                                0D 0H 39M
capture1_link_speed,<PHONE_NUMBER>0
capture_bytes,                                       64157184
capture_packets,                                      1002456
capture_bps,                                                0
capture_pps,                                                0
capture_name,                                            none
capture_active,                                         false

resovled, requires regression

sysmaster/status requested multiple places in the SLT regressions. closing