Reintroduce "adjust scale" option for sizing points

At least on the Graph view – if a point's size becomes too big, it overwhelms the screen and all other data points.

I think this would be a good option to add
In addition to the option, you are also seeing a bug here, as the point size should be limited to a reasonable upper limit. Under normal circumstances it is, but especially in the graph view it sometimes gets out of control.


Allow injecting SessionResumptionStorage for controller

Problem
Currently SessionResumptionStorage can be injected for server.  But not on controller
Proposed Solution
Make it injectable for controller

We have also identified another problem with the current implementation, which has concrete implementation in the base class.  We require a fully replaceable implementation, which means we need a completely abstract base class.  A class hierarchy like this could work:

AbstractSessionResumptionStorage abstract class, only virtual interfaces; does not exist today
SessionResumptionStorage : AbstractSessionResumptionStorage: some implementation
SimpleSessionResumptionStorage : AbstractSessionResumptionStorage: the rest of the implementation

@kghost, can this be provide as part of the work for this issue, or do we need to introduce this ourselves.
CC @kianooshkarami , @wbschiller , @z-michel, @tcarmelveilleux


search-document version needs a bump

@azure/search-documents latest GA is 11.3.1, while we have 11.3.0-beta.9 in the repo.  We probably want to use 11.4.0 since we already migrated to core-v2.

Beta version has since been major bumped.


dibs: I will implement exercise word-count

I think the config.son needs a change @t-edward .  Thanks for jumping on this, by the way!

Thank you @t-edward for the work on this.  Bringing in your changes hopefully soon!


[0.9] Extends delays/breaks polymer element setup

Tested in FF 38, stipped down version of my actual code.
Error Message:
TypeError: dialogueLink.fromXML is not a function
dialogueLink.fromXML();
Without the extends in this testcase it works.
In my actual code (https://github.com/Xaratas/PillarsOfEternity-Quest-Editor) i have build drag and drop, which creates DialogueLink elements via the constructor. These are created fully, and have all expected polymer properties and my functions.
I spotted the difference between my working Links from drag and drop and the links from my xml setup. In the drag and drop case i add the element to the dom.
I have a line for this below, but it still prints the error.
Other, non extends elements i create does not have to be added to the dom to call my functions, thats why i think this is a bug.
<!DOCTYPE html>
<html>
  <head>
    <script src="bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
    <link rel="import" href="bower_components/polymer/polymer.html">
  </head>

  <body>
<script>

</script>

    <script>
		 document.addEventListener('WebComponentsReady', function() {
	    DialogueLink = Polymer({
			is: "dialogueLink-element",
			extends: "canvas", // comment out and it works

			properties: {
				randomWeight: Number,
        	    playQuestionNodeVO: Boolean,
            	questionNodeTextDisplay: String,
	            startElement: Object,
    	        endElement: Object
			},

    	    // ist vor dem Behavior dran
			factoryImpl: function(startElement, endElement) {
				this.startElement = startElement;
				this.endElement = endElement;
			},

			created: function() {
		    	console.log("created and prototype ready");
			},

			fromXML: function(xml) {
        	    console.log("fromXML");
	        }
		});

        	var dialogueLink = new DialogueLink(); // parameter doesnt really matter for this test
               // uncomment, and it will setup the canvas as polymer element, but in this function fromXML() would still "not exist"
               // document.getElementsByTagName("body")[0].appendChild(dialogueLink);
            dialogueLink.fromXML();
        });
	</script>

</body>
</html>

The issue here is a CustomElements polyfill limitation. The createElement call fails if the extended element is created with an uppercase character in the name.
is: "dialogueLink-element", // make the `L` here lowercase and it'll work

Closed in favor of https://github.com/webcomponents/webcomponentsjs/issues/313.


[New API] :  Countries and Capitals API

Brief Description 🤓
In this API, users can call the countries and data will be returned in the JSON format.
Users will get:

Country
Capital
Language Spoken Majorly
Latitude
Longitude
Currency

How will you develop it?🤩
I will create this API in Node.js to serve country data in JSON format involves the following steps:

Set up the project and install dependencies
Create the server
Define routes
Create a data source
Handle requests and send responses

Deployment
No
Select the open source program you are contributing to
Other
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINES of this project.

Greetings @abckhush🎀 ! , We are excited to have you dive into another issue with us!🚀
Your involvement in our project has been invaluable, and we're confident that your skills and insights will help us conquer this challenge😇.  Use command /gssoc24 to self assign the issue.  This issue represents an exciting opportunity for us to improve and enhance our project, and we are thrilled to have you on board.
We request you to follow CONTRIBUTING GUIDELINES.
Looking for your PR soon!
In case of any issues, you can contact us on Discord.❣

/gssoc24

@dishamodi0910 Please assign this issue to me. It is still not fixed. I would like to work on it under Gssoc'24

It's almost done.

Hey @abckhush ! I wanted to inform you that we have closed issue.Thank you for your understanding, and we look forward to your continued engagement with our repository🤗.
In case of any issues, you can contact us on Discord.
Thank you! ❣
Happy Coding! ✨
Will See you soon❣


Feature/intl

I am using this branch to add support for translations.
New translations are added by updating the file inside of src/languages/[lang_code].json.
Support for changing the locale in the mobile web UI is done by writing the global variable window.defaultLocale

Want to help out with this?
See: https://github.com/TheTorProject/ooni-wui/issues/31

🎉  (but also 🌮  and 🌯 !!!): I guess we should now test this. Let me know privately or publicly how can I help to double check that everything is working again (apart from reading the diff).

I switched the base branch and am going to merge this into rc.1


USHIFT-3177: Use only ipv4 addresses for default router

There was a mismatch between what the config package IP addresses from the host and the router controller. The config package only gets ipv4 addresses while the router controller takes ipv6 too. This caused a mismatch between allowed/configured IP addresses that triggered fake warning logs about ipv6 entries not allowed in the service (even if they were not configured).

Which issue(s) this PR addresses:

Closes #

/lgtm


Is this bundle compatible (or when will be?) with Symfony 4?

Hello, when I trying to install this bundle on my 4.0.0-RC1 composer gives me error that v3.4 is minimum-stability. Will you support ^4 and when? Or am I doing something wrong?

There is a PR #295, but the tests do still fail and it's not yet complete. But the goal is to support ^4.0

Thank you!

Any timeline when you will release the support for Symfony4?
As I see it's already developed in a branch. Thx.

@Lifeformwp @klodoma
There's a release/2.0.0-branch - could you test and give feedback if possible?

@bytehead I will give it a try the next days as we plan to upgrade to Symfony4. I'll provide my feedback.

Thank you, I'll await your feedback!

Hi, so my current feedback... , I am aborting the upgrade of our project to 4. There are too many dependencies in the project that are currently failing the upgrade.
Still, if I'll find some spare time I'll give it a shot and test your bundle on Symfony4.

@bytehead I'm testing your release/2.0.0 branch and no problem to report so far 👍
I only had to create package and routing files in config/. You plan to create a contrib recipe for it, right?

Like in your documentation, I use Orphanage like this:
$manager = $this->get('oneup_uploader.orphanage_manager')->get('products');
But Sf4 don't like it:

The "oneup_uploader.orphanage.products" service or alias has been removed or inlined when the container was compiled. You should either make it public, or stop using the container directly and use dependency injection instead.

I had fix it, i will send a PR soon ;)


Review NameDataType.export field

This field should either be independent of export system or removed. The export system is it's own macro output so it shouldn't need that value.

Should be unused as of now and should be remove in Specta v2.


Explore using bumpalo for the AST

This doesn't make full use of the bump allocator yet. We should also

Use bumpalo:Vec instead of Vec except in places where the vec can become large (mainly suite?)
Use the allocator in the lexer to avoid calls to alloc_str in the parser (which copies over the strings)
Change Int to store a &'ast str
Verify that no node (other than nodes storing a Suite) store any heap allocated data. Replace Box<'ast, T> with &'ast mut T.

FIXME:
I think the current implementation leaks memory. We need to wrap all Stmt in Box

Very interested in this!

Very painful is this

Do or do not, there is no try...

The last commit where we use bumpalo::Vec seems like to have regressed performance by a bit.

If anyone is interested in fixing some lifetime issues, feel free to PR it (or directly push to this branch). I might drop the last commit again because the result isn't promising enough.

Overall this is very painful for marginal wins. I wonder if an alternative AST structure that uses indices would be a better approach, similar to what Zig does https://ziglang.org/download/0.8.0/release-notes.html#Reworked-Memory-Layout
Let's say we have
#[derive(Debug, Clone)]
struct SyntaxNode {
	kind: NodeKind,
	parent: NodeIndex,
	children: Range<NodeIndex>,
	extra_data: Range<ExtraDataIndex>
}

and
struct SyntaxTree {
	nodes: IndexVec<NodeIndex, SyntaxNode>,
	extra_data: IndexVec<ExtraDataIndex, ExtraData??>
}

struct Parsed {
	root: SyntaxNode,
	tree: Arc<SyntaxTree>
}

We could then have AST facade nodes similar to Biome/RustAnalzyer
#[derive(Clone)]
struct IfStatement {
	syntax: SyntaxNode,
	tree: Arc<SyntaxTree>

	fn test(&self) -> Expression {
		Expression::cast_unwrap(self.children(&tree)[0])
	}

	fn body(&self) -> Suite {
		Suite::cast_unwrap(self.children(&tree)[1])
	}

	fn children(&self) -> &[SyntaxNode] {
		self.syntax.children(&self.tree)
	}

It would require some changes to our AST, most notably that a node can no longer contain a sequence of children. Instead, it would need a single list node (e.g. suite) that wraps the list of children.


model.exogenous.Sigma obsolete for new MvNormal, change it to Greek

Using the perturb function (for BGM) I received the following error message:

'Normal' object has no attribute 'Sigma'

I changed model.exogenous.Sigma to model.exogenous.Σ
@albop Does it seem coherent for the rest of the code?

Yes it makes sense. Thanks for the fix. Can you remve the old line instead of commenting it ?

@albop done


Git ignore generated protobuf files

Release note:
NONE

Merging this without review since it's trivial.


Refactor/code reorganization

[X] Have you provided a meaningful PR description?
Some small code reorganization changes extracted out of  #1420
[X] Have you tested your changes locally for CPU and GPU devices?
[X] Have you made sure that new changes do not introduce compiler warnings?

coverage: 85.177% (+0.4%) from 84.823%
when pulling 1cde85ee8a0ef32dbdc86cfd28a2179a3281a6af on refactor/code-reorganization
into 013be2e3fc45c9eebd9986c9d4068d4eca146f73 on main.


NL_17: dropping socio5

Dropping the question: "How would you describe your ethnic origin?  This refers to people who share the same cultural background and identity, not country of birth or nationality. "
Difficult to ask that in Netherlands

Apply the modification on nl_17.csv

I would like to drop this in Germany as well. Does not feel right somehow. Hard to describe, but this questions refers somehow back to the 1930's

We have removed the question for the NL survey.
@StephanJanosch Do you need this issue to remain open as a reminder, or can I close it?

@benvanwerkhoven you can close it.

ok!


Major refactor measure tool. Less coupling and easier extension.

Dam bugs

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 96.993%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2645

Relevant Lines:
2727

💛  - Coveralls


Added test for causal clustering and fixed it

Adds a test for causal clustering which uses docker compose to setup a cluster
Added/modified helpers to work with docker compose
renamed all causal clustering variables to match changes in neo4j

changelog: Renamed variables related to causal clustering (previously core-edge)

LGTM

LGTM


Fix naming cases in engineering ownership

Sorry I have to send this PR for my OCD.

Merging as-is, happy to address any post-merge comments!

👍  Thanks :-)


Net SDK versions selector

Is your feature request related to a problem? Please describe.
There are too many versions of ASP.NET to choose from when creating a project
Describe the solution you'd like
I would like to be able to select the dotnet version as well when creating the solution
can use command " dotnet new globaljson command"
Describe alternatives you've considered
can use command " dotnet new globaljson command"
such as  or "dotnet new globaljson --sdk-version 6.0.100"
Additional context
Add any other context or screenshots about the feature request here.
And url "https://learn.microsoft.com/zh-cn/dotnet/core/tools/global-json"

if possible,You can design it under command "Add Project" It gives you more flexibility,Less disruptive to existing operations.

oh no,   it is under command "Create Project".


1.6 documentation rn 2nd ed

Please approve this merge request for release of 2nd edition of the Release Notes. Thanks (CSI-3354)

Closing pull request. will open a new one once the branch is taken from the correct version branch.


Refactor androidd into qcomd

The comma three kernel has the same msm subsystem framework as the comma two. We should at least log subsystem crashes on the comma three as well.

We should be able to track this well enough offline.


fixed path to Material Admin layout

added "material" to beginning of import path

we handle this paths on the generator


Time to go calculation broken for some numbers

The arithmetic expression for calculating the time to go while scrubbing is broken, as some sh implementations (can) interpret numbers with leading zeros as octal numbers. This can easily happen with two digits hours, minutes and seconds, resulting in error messages like Illegal number: 08 or 09.
https://github.com/Josef-Friedrich/check_zpool_scrub/blob/df24487bfad11455dda48cd0fac42fd6b7b935b4/check_zpool_scrub#L443
A quick/dirty/bad hack would be to remove a single potential leading 0 for these only. I was looking for a clean sh only solution (removing an arbitrary number of leading zeros, but keep the last one if the string is zeros only) but did not find a good one. :(

Thank you for reporting this. Can you please review 9fc9373f455a0e4980d87e936e2036c6041addf0.

Seems to work (for me), thanks!
(Some side note: I must admit that it also seems pretty painful. For testing I installed some other sh implementations, from what I've seen the script actually works only with bash and dash anyway. SECONDS is actually a builtin variable in bash, but it seems ok due to the (non-standard?) local. Other typical system scripting languages like Perl and Python also have their ugly sides for sure, but sh somehow seems just that, even more painful when doing more than just running some commands. This is not supposed to be a rant, it's just interesting for me that what previously was more like a feeling is getting verified as I look deeper into it.)


cerebral vs redux

I found the FAQ a bit unhelpful when it comes to the difference between Cerebral and Redux. I think most important thing to highlight would be what Dan said in a Twitter conversation about this very topic: "I guess Redux helps when your data structure is complex but async interaction is not very complex. Cerebral is opposite."

I wrote this, let me know what you think :-)
What is the difference between Cerebral and Redux?
Cerebral and Redux were built to solve different problems
Redux was developed to achieve hot reloading global state and state changing logic. To achieve that it was necessary for state changes to be run with pure functions and the state has to be immutable. Now you can change the logic inside your reducer and when the application reloads Redux will put it in its initial state and rerun all the actions again, now running with the new state changing logic.
Cerebral had no intention of achieving hot reloading. Cerebral was initially developed to give you insight into how your application changes its state, using a debugger. In the Redux debugger you only see what actions are triggered an how your state looks after the action was handled. In Cerebral you can see a lot more. You see all actions fired as part of a signal. You see asynchronous behaviour, paths taken based on decisions made in your state changing flow. You see all inputs and outputs produced during the flow and you even see what paths were not taken. In addition to this you also see exactly what state was updated with what values.
What also differs is that Cerebral remembers the result of asynchronous requests, meaning that reproducing the state of your application does not trigger new asynchronous requests. When reproducing state it just outputs whatever the asynchronous action did when it was run the first time. This also allows you to safely move back and forth in time without firing off asynchronous requests.
Hot reloading is an amazing tool, though we must not forget that the main goal of hot reloading is to avoid loosing the state of your application when you make changes to your code. With Cerebral you will not loose the state making code changes, but you will have to reload the page to see the change. That said, you can combine Cerebral with hot reloading React components.
Redux is more flexible and less opinionated than Cerebral
A really cool part of Redux is the middleware. The library itself is very small, but allows developers to extend it very easily. This has given birth to lots of middleware in Redux. Cerebral is flexible in the way that it can be used with any view and immutable model layer, but it exposes a default API surface for changing the state. That means the community around Cerebral orbits the library itself, which gives a slower and more opinionated evolution. For better and for worse :-)
Routing
It is really good to see that Redux also affected the ideas of the router actually producing state, not just controlling your component tree. That said, this idea is taken further with Cerebral. The Cerebral Router just binds a url to a signal and makes it completely transparent. It does not matter if you trigger a signal or trigger the url, it will run the signal and put your application in the correct state. When a url is triggered the payload is created by parsing the url. When a signal is manually triggered with a payload the url is created by serializing the payload. It is actually extremely cool :-)
Accessing state
Redux and Cerebral also differs when it comes to accessing state. Redux manages state by separating it into different reducers. This is really great because when you look at a reducer you see what actions and logic that affects that specific piece of state. That said an action could potentially be handled in multiple reducers and you might need state in a reducer from an other reducer. That causes some challenges in Redux. With Cerebral you define a flow of state changes and you can access all your existing state at any point in the flow. You also define the state as one big state tree. Personally I think this is better because you can never go wrong in how you structure your state. So it is easier to read state changes in Cerebral from the perspective of a component changing your state, but it is harder to read in regards of "what can affect this piece of state?". From the "inside out" Redux reds better. From the "outside in" Cerebral reads better.
Summary
I hope this gave you some insight into how Cerebral and Redux differs. If you have an application that has complex asynchronous state changing flows I would suggest looking into Cerebral. If not, Redux might be what you are looking for! Thanks for reading :-)

Released it on website :-)

Nice write up Christian!
On Sun, Dec 27, 2015, 7:35 AM Christian Alfoni<EMAIL_ADDRESS>wrote:

Closed #9 https://github.com/cerebral/cerebral-website/issues/9.
—
Reply to this email directly or view it on GitHub
https://github.com/cerebral/cerebral-website/issues/9#event-500933323.

:clap:


Socket::read() can get stuck reading 0 bytes in a loop

I've seen multiple PHP processes getting stuck in a loop here when the cassandra node goes down.
Apparently, socket_read() returns an empty string when the other side has closed the connection.

socket_read() uses recv(), which is documented to return 0 if the peer  has  performed  an  orderly shutdown.
When recv() returns 0, PHP returns an empty string.

I think this fix fixes somewhat https://github.com/duoshuo/php-cassandra/issues/36 due to avoiding the infinite loop reported.

It seems your Cassandra version is 2.0.x.
php-cassandra supports Cassandra 2.1 or later.

We have this issue too, for example if we restart a cassandra node while php was connected. We use cassandra 2.1.


Typo in product list

Extra space needed after :
formatting the number of products with thousands (in French for instance: 233 454)

I will work on this.


release 2.2.0 - Implement HTTP Proxy

Implemented

Implemented support for HTTP Proxy

@2pd @aisling-2 Can you please help with a code review?
Best regards,
Radu Linu

@bnbot @aisling-2 @2pd @jonte-z Can you please give me an update in regards to this pull request?
Best regards,
Radu

Hi @linuradu, it's in our queue to review, we'll update this PR when we get into it. Thank you for your contribution!

.gz " ] // < kind >finished</ kind > } } }
最后做了一遍的检查，二次编译可以。
今天是某日。

Many thanks @jonte-z for the review!
Can you please tell me when will be merged rc-3.0.0 into the main branch and deployed to https://mvnrepository.com/?


Add a link to the docs

Pull Request Test Coverage Report for Build 158

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 81.267%

Totals

Change from base Build 153:
0.0%

Covered Lines:
1219

Relevant Lines:
1500

💛  - Coveralls

Pull Request Test Coverage Report for Build 158

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 81.267%

Totals

Change from base Build 153:
0.0%

Covered Lines:
1219

Relevant Lines:
1500

💛  - Coveralls

Thank you!


Change CotEditor's license to Apache 2

The license was changed to the Apache license version 2 since 2015.

cf. https://github.com/coteditor/CotEditor/blob/develop/LICENSE
cf. https://github.com/coteditor/CotEditor/issues/405

Thank you for the contribution. It was merged directly as b773a5732d9524594d571b2696bb28bc1952cd36 to keep commit history cleaner. Your contribution is still credited to you.


Consistent input/output from unit_converter, some EMIT fixes

units:

The unit_converter function was returning a non-list when a list was passed with one entry. The change makes the output type match the input type (list in = list out, single element in = single element out).
Improved the warning message to include the unrecognized units when unrecognized units are passed to unit_converter.

EMIT:

Emit inherited from FieldAnalysisEmit, but EMIT doesn't have any need for the FieldAnalysis functionality (no analysis setups in EMIT design). Emit will now inherit directly from Design. (S776155)
Emit.modeler.components is now initialized automatically (refresh_all_ids is called)
Units weren't initialized before the modeler so refresh_all_ids would fail during Emit initialization. Moved units initialization ahead of modeler initialization.

CI_Prerelease: https://github.com/pyansys/pyaedt/actions/runs/4256855860/jobs/7406255230

There is one test failure:

This is due to an update to the Emit API that was merged 2/21 so the CI_Prerelease workflow hasn't caught up yet.
@apollo-crum, @jsalant22 FYI - in case you run that workflow.


Coverage reports as 0 for any class referenced in a rails initializer

I have a constant defined in one of my rails models
# app/models/file.rb
class File
  PATH = '/tmp'.freeze
end

I then have an initializer that references that contstant
# config/initializers/create_path.rb
Dir.mkdir(File::PATH) unless File.exists?(File::PATH)

When I run my tests, the coverage for the File class is reported at 0.  If I remove that initializer, the coverage is reported correctly.
I'm running simplecov 0.16.1, minitest 5.11.3, and the requires in my test_helper are as such:
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../config/environment', __dir__)
require 'simplecov'
require 'rails/test_help'
require 'mocha/minitest'
require 'webmock/minitest'

Hi there @cschiewek,
please require and launch simplecov at the very top of your test_helper before any other requires. It needs to be required/started first so it can track all the other files being required, otherwise it won't work.
That should resolve your problem :dancer:

(I'll already close as I'm fairly certain that's it, feel free to reopen if it isn't)


4bit model requires more than 9GB

haven't looked deeper into this issue yet but downloading the 4bit model requires more than 9GB for some reason.
used the following command
mflux-save \
    --path "/Users/sdm/Desktop/code/schnell_4bit" \
    --model schnell \
    --quantize 4

the full precision model has been downloaded, based on the size of the .cache folder, i think:

and then the quantised version is copied:

so it required 43GB of free space even for the quantised version. im unsure if this a huggingface or mflux thing too.
just flagging so people trying to download quantised version with low storage space aren't confused!

@sudhamjayanthi Good that you point this out and I should explain this more clearly in the README, but currently it works like this:
You first need to download the full non-quantised model (34 GB) and then, when you run mflux-save, you export a local copy of the quantized model. The quantized model is thus never downloaded from an external source.
Once exported, you can choose to keep only the quantized model and point to it as shown here. But to reclaim the 34 GB disk space of the full model, you would have to manually delete the 34GB model from the Huggingface cache.
Of course, it would be nice if we could host the quantized weights somewhere so that if you only wanted the 4bit version, that was the only thing you had to download.

Yeah, guessed something like that was happening!
I'll push the quantised weights Monday if no one else does it by then, for the disk-poor.

Thanks! Please keep me posted if you do :)

https://huggingface.co/madroid/flux.1-schnell-mflux-4bit and https://huggingface.co/madroid/flux.1-dev-mflux-4bit/
Seems already available, 4-bit quantized models

Oh great, did not know about this! Will add this to the README. Might have to add support for downloading these automatically too.


Support multiple 3dtiles url

When I was testing, the loading of 3dtiles was limited by the browser, and only 6 requests could be concurrent at a time.

Can I support the following code to improve the request speed?
let url = ['http://t1.xxxx.com/3dmaps/Production_2.json', 'http://t2.xxxx.com/3dmaps/Production_2.json', 'http://t3.xxxx.com/3dmaps/Production_2.json', 'http://t4.xxxx.com/3dmaps/Production_2.json']
new Cesium3DTileset({
     url
    })

Thanks!

The maximum number of concurrent requests is limited by the browser. More concurrent requests doesn't necessary mean a faster application, see Kevin's write up on this here: https://github.com/CesiumGS/cesium/pull/8549#issuecomment-575842684 and the general 3D Tiles request scheduler issue here https://github.com/CesiumGS/cesium/issues/5509.
 You can do this by making one new Cesium3DTileset call for each URL.
If you're still having issues in your app feel free to start a thread on the Cesium community: https://community.cesium.com/.

Also RequestScheduler will be part of the public API in 1.69 which gives more control over the number of concurrent requests.
Specifically look at RequestScheduler.maximumRequestsPerServer. You can check out the documentation here: http://cesium-dev.s3-website-us-east-1.amazonaws.com/cesium/master/Build/Documentation/RequestScheduler.html

FYI, the actual concurrent request limit depends on the browser (Chrome uses 6) and the limit is also per-server (there is an additional overall limit of 10 for the page in Chrome I believe).
These limits go away or are much higher if HTTP/2 servers are used.

Thanks. Using `RequestScheduler' and HTTP/2 helped me a lot .


Config YAMLs not included in built package

Package bundles published on PyPI do not include the *.yaml files of src/ghga_transpiler/configs/. As these files are required for ghga-transpiler to function, a somewhat non-descriptive error is thrown:
$ ghga-transpiler ~/ghga_submission_test.xlsx
Unable to parse input file 'ghga_submission_minimal.xlsx': Unknown metadata version: 1.1

Solution
As per setuptools documentation, non-python files have to be specifically included in the build, for example via MANIFEST.in.

Thank you @sellth. #46 fixed the issue.


README winding confusion

in the README it says:
"This has two contours (rings), the first with four points, the second with three points. The second has 'clockwise' winding, signifying it is a 'hole'."
But it gives this example:
[
  [ [0,0],[7,0],[7,4],[0,4] ],
  [ [1,1],[3,1],[3,3] ]
]

where both of the contours are clockwise.
Is the wording correct or is the example?

[ [0,0],[7,0],[7,4],[0,4] ], is counter-clockwise

My apologizes, what I meant to say was that they are both counter clockwise. I mistyped what I was trying to say.

Ah yes this is a bug in the documentation. Great catch! The interior should be clock-wise.


Actually close #220

I have to admit to a total facepalm on this one!
Bumps the package version too
Close #220

Coverage remained the same at 89.683% when pulling 743089c16d6b0e640f8005f07ca07773baa1ef23 on scott-w:master into b2548421f42f58a9126a4ca269d0b8e99cfe3a19 on jeromegn:master.

Coverage remained the same at 89.683% when pulling 743089c16d6b0e640f8005f07ca07773baa1ef23 on scott-w:master into b2548421f42f58a9126a4ca269d0b8e99cfe3a19 on jeromegn:master.

Coverage remained the same at 89.683% when pulling 55b558a66a2eba31fda106535434ac4a8afb2da0 on scott-w:master into b2548421f42f58a9126a4ca269d0b8e99cfe3a19 on jeromegn:master.


PHP example working

PHP class and example script for embedded MongoDB Charts.  PSR-4 compliant for usage in PHP composer autoloading.

LGTM 👍 (but then again I haven't written any PHP in 8+ years... so take my approval with a grain of salt)


test: attempt to flush for gcovr

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/retest


Oxidise ‘git summary’ and ‘git summary —line’

Summary 💡
I.e https://github.com/tj/git-extras/blob/main/bin/git-summary
That’s a shell script and I imagine moving it to rust would be a significant performance bump. Particularly with ‘—line’ that can be kinda slow on large repos. Also as it appears to be using fairly standard git tools I’m supposing that everything might already in place (I noticed that GO just gained some support for blame), though TBH I haven’t done the due diligence so I’m not 100% sure.
If everything is in place I guess I could even take a crack at this myself if you agree to taking that feature in?
Motivation 🔦
Git summary is a nice tool to get an idea of the main contributors to an unknown repo. But it’s kinda slow for large repos

To be clear, I mean including this in 'gix' or 'ein' directly

Research
For completeness, here is the script's output when executed on the Git repository itself.
❯ time bash summary.sh
git: 'root' is not a git command. See 'git --help'.

The most similar commands are
        hook
        remote

 project     : git
 repo age    : 20 years
 branch:     : master
 last active : 8 days ago
 active on   : 6738 days
 commits     : 75634
 files       : 4574
 uncommitted :        5
 authors     :
 26567  Junio C Hamano                   35.1%
  4485  Jeff King                        5.9%
  2296  Johannes Schindelin              3.0%
  1945  Ævar Arnfjörð Bjarmason          2.6%
  1824  Nguyễn Thái Ngọc Duy             2.4%
  1401  Shawn O. Pearce                  1.9%
  1279  René Scharfe                     1.7%
  1203  Patrick Steinhardt               1.6%
  1163  Elijah Newren                    1.5%
  1118  Linus Torvalds                   1.5%
   954  Michael Haggerty                 1.3%
   866  brian m. carlson                 1.1%
   855  Jonathan Nieder                  1.1%
   820  Derrick Stolee                   1.1%
   754  Jiang Xin                        1.0%
   745  Taylor Blau                      1.0%
   641  Christian Couder                 0.8%
   638  Stefan Beller                    0.8%
   600  Eric Wong                        0.8%
   577  SZEDER Gábor                     0.8%
[..]
bash summary.sh  1.45s user 0.23s system 110% cpu 1.509 total

In comparison, here is the output of ein t hours, a tool that probably already processes all the data that the script sees:
❯ time ein t hours
 12:40:09 traverse commit graph done 75.6K commits in 0.39s (193.0K commits/s)
 12:40:09        estimate-hours Extracted and organized data from 75634 commits in 302.083µs (250374896 commits/s)
total hours: 61139.10
total 8h days: 7642.39
total commits = 75634
total authors: 2264
total unique authors: 2153 (4.90% duplication)
ein t hours  0.46s user 0.11s system 135% cpu 0.421 total

With the -p flag, it shows more information:
[..]
Jeff King<EMAIL_ADDRESS>4485 commits found
total time spent: 3513.56h (439.20 8h days, 5.75%)

Junio C Hamano<EMAIL_ADDRESS>26567 commits found
total time spent: 14482.98h (1810.37 8h days, 23.69%)
[..]

And with the -l flag, it also obtains line information:
[..]
Junio C Hamano<EMAIL_ADDRESS>26567 commits found
total time spent: 14482.98h (1810.37 8h days, 23.69%)
total lines added/removed: 271319/133779 (6.49%)

total hours: 61139.10
total 8h days: 7642.39
total commits = 75634
total authors: 2264
total lines added/removed/remaining: 3859275/2379017/1480258
total unique authors: 2153 (4.90% duplication)
stats omitted for 19524 merge commits
ein t hours -pl  67.43s user 1.82s system 1490% cpu 4.646 total

When using --line on git summary,  it's like it invokes a Git process per commit, which is very slow.
> time ./summary.sh --line
git: 'root' is not a git command. See 'git --help'.

The most similar commands are
        hook
        remote

 project     : git
^C
./summary.sh --line  0.01s user 0.01s system 0% cpu 1:39.39 total

I didn't take the time to let that finish, as it's clearly not made for more than a few hundred commits.

Ok. That seems like it's 95% of the way there for me. I guess the only missing feature from git summary --line would be that ein doesn't appear to count remaining lines per author (I didn't spot that at least). That's kinda nice to know as if remaining lines is near to or actually zero you know that the author is inactive.
Other than that it's mostly just small UX things for me. For example, I think it would be useful to have the list of authors in order of how much of the project they authored (ie sorted by number of commits or number of lines touched).
Would you accept a PR to:

add remaining lines per author and
sort the list by "amount of contribution" (ie lines or commits)

?

Here is what summary --lines looks like on the gitoxide repository, in 1m53s.
 project     : gitoxide
 lines       :   351996
 authors     :
331667 Sebastian Thiel              94.2%
5472 Eliah Kagan                    1.6%
1675 Conor Davis                    0.5%
1202 Sidney Douw                    0.3%
1055 Ed Page                        0.3%
 844 Yuri Astrakhan                 0.2%
 808 Christoph Rüßler               0.2%
 804 Pascal Kuthe                   0.2%
 803 Edward Shen                    0.2%
 767 Jiahao XU                      0.2%
 748 Nathaniel Brough               0.2%
[..]

The data needed for this is already collected by ein t hours, even though the presentation really wants to be in ein t summary I think. hours is a rewrite of the respective node tool, which likewise was too slow for use in typical repositories.
With the right refactoring, I think ein t hours and ein t summary can share the code that does the heavy lifting, and ein t hours can stay what it is.


Improvements on OpenAPI and Introduce Composition Transform

As described in https://github.com/Urigo/graphql-mesh/issues/198, we needed to change stuff inside OpenAPI handler.
Skipping Oas3 validation and providing custom fetch implementation instead of deprecated request package etc are added into openapi-to-graphql which can be found in this fork https://github.com/ardatan/openapi-to-graphql
Also in Mesh;

Introduce resolversComposition transform;

resolversComposition transform is based on graphql-toolkit's feature which has exactly the same name.

YouTrack needs to get fields parameter on each operation. So resolversComposition is used to delegate all root operations to generate fields parameter based on GraphQLResolveInfo and pass it to args.

Add skipSchemaValidation option in OpenAPI Handler to bypass strict Oas3 validation.
Pass custom fetch implementation based on Mesh's KeyValueCache impl. to benefit HTTP Cache

https://github.com/Urigo/graphql-mesh/tree/youtrack/examples/openapi-youtrack#youtrack-graphql-api
All those features can be tested on YouTrack. See the example, but you should use the canary version published by CI. You can find the latest alpha in the next comment.
Here is the working example;
https://codesandbox.io/s/strange-lewin-blnvq?file=/.meshrc.yml

@ardatan please add to the openapi docs a short guide about authentication.

@dotansimha I moved it to another issue because it is not OpenAPI specific. We should add it somewhere else. Maybe in recipes.


add ui

Prelaunch
Messages

[x] fix pagination
[x] fix headers
[x] fix per page params
[x] fix republish one, delete one on show page
[x] add favicon
[x] display no messages found text instead of showing table headers with no rows (dashboard, messages)
[x] fix styling of per page
[x] add meta title
[x] add meta noindex
[x] update messages delete all form erb to post status, and update action to pass from params
[x] update messages republish all form erb to post status, and update action to pass from params
[x] fix flash (dashboard, messages) not showing count details (updated, not updated)
[x] fix retry all delete all
[x] fix active header nav item bug
[x] fix home page not updating queued and publishing status
[x] fix time format (nothing to fix)
[x] add millisecond precision to outboxer messages created at and updated at (saved at precision 6, displayed to nearest second)
[ ] republish selected / delete selected preserves params after redirect
[ ] republish all / delete all preserves params after redirect
[ ] make footer pagination links same as btn-sm
[ ] fix failed message exception accordian button not collapsing
[ ] fix mobile styling issues
[ ] fix invalid HTML

Dashboard changes

[x] add per page drop down
[x] extra row and X more

Integration guide

[ ] document how to mount into a rails app

Post launch

[x] add back button? (won't do)
[ ] support locale / time zone (dashboard and messages)
[ ] test progressive enhancement
[ ] add per page update button, hidden on javascript

how to mount
# config/routes.rb
Rails.application.routes.draw do
  mount MySinatraApp, at: '/sinatra'
end


ld.exe: cannot find crt1-sim.o: No such file or directory (IDFGH-2073)

Environment

Development Kit: Lolin D32
Module or chip used:  ESP32-WROOM-32
IDF version v3.3
Build System: CMake
Compiler version:1.22.0-80-g6c4433a5-5.2.0
Operating System: Windows 10
Power Supply: USB

Problem Description
Hello, i installed the ESP-IDF with the esp-idf-tools-setup-2.1.exe installer.
After that i unpacked the hello_world example and i tried to run the following commands from the documentation:
cd %userprofile%\esp\hello_world
idf.py menuconfig
And i am getting the following errors in the command line:
CMake Error at C:/Users/Developer/esp/hello_world/main/CMakeLists.txt:1 (idf_component_register):
Unknown CMake command "idf_component_register".
Call Stack (most recent call first):
C:/Users/Developer/Desktop/esp-idf/tools/cmake/scripts/expand_requirements.cmake:107 (include)
C:/Users/Developer/Desktop/esp-idf/tools/cmake/scripts/expand_requirements.cmake:217 (expand_component_requirements)
CMake Error at C:/Users/Developer/Desktop/esp-idf/CMakeLists.txt:39 (message):
Failed to expand component requirements
-- Configuring incomplete, errors occurred!
See also "C:/Users/Developer/esp/hello_world/build/CMakeFiles/CMakeOutput.log".
See also "C:/Users/Developer/esp/hello_world/build/CMakeFiles/CMakeError.log".
cmake failed with exit code 1
And i have the following error in the CMakeOutput.log:
Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: C:/Users/Developer/.espressif/tools/xtensa-esp32-elf/1.22.0-80-g6c4433a5-5.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe
Build flags: -mlongcalls
Id flags:
The output was:
1
c:/users/developer/.espressif/tools/xtensa-esp32-elf/1.22.0-80-g6c4433a5-5.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: cannot find crt1-sim.o: No such file or directory
c:/users/developer/.espressif/tools/xtensa-esp32-elf/1.22.0-80-g6c4433a5-5.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: cannot find _vectors.o: No such file or directory
c:/users/developer/.espressif/tools/xtensa-esp32-elf/1.22.0-80-g6c4433a5-5.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: cannot find -lsim
c:/users/developer/.espressif/tools/xtensa-esp32-elf/1.22.0-80-g6c4433a5-5.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: cannot find -lhandlers-sim
c:/users/developer/.espressif/tools/xtensa-esp32-elf/1.22.0-80-g6c4433a5-5.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: cannot find -lhal
collect2.exe: error: ld returned 1 exit status
Expected Behavior
I was expecting something similar described in the documentation:
https://docs.espressif.com/projects/esp-idf/en/latest/get-started/index.html#id9
Thank you.

Based on Unknown CMake command "idf_component_register". it looks like you are trying to build an example from esp-idf 4.0+ against esp-idf 3.3 which won't work.

Yes you are right, i was using the examples from the github not the ones installed.
Thank you very much for your help.

Hello,
I have the same problem: crt1, vectors, lsim, lhand and lhal are not found on the xtensa-esp32-elf/bin:ld path. But it's not because of Unknown CMake command "idf_component_register".
Here is my output when I run idf.py menuconfig
`Executing action: menuconfig
Running cmake in directory /home/esp8266/hello_world/build
Executing "cmake -G 'Unix Makefiles' -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 --warn-uninitialized -DCCACHE_ENABLE=0 /home/esp8266/hello_world"...
Warn about uninitialized values.
-- Found Git: /usr/bin/git (found version "1.9.1")
-- IDF_TARGET not set, using default target: esp32
-- The C compiler identification is GNU 5.2.0
-- The CXX compiler identification is GNU 5.2.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/esp8266/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
-- Check for working C compiler: /home/esp8266/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
-- Check for working C compiler: /home/esp8266/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc -- broken
CMake Error at /usr/local/share/cmake-3.15/Modules/CMakeTestCCompiler.cmake:60 (message):
The C compiler
"/home/esp8266/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc"

is not able to compile a simple test program.
It fails with the following output:
Change Dir: /home/esp8266/hello_world/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_8f7a2/fast && /usr/bin/make -f CMakeFiles/cmTC_8f7a2.dir/build.make CMakeFiles/cmTC_8f7a2.dir/build
make[1]: Entering directory `/home/esp8266/hello_world/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_8f7a2.dir/testCCompiler.c.obj
/home/esp8266/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc   -mlongcalls -Wno-frame-address    -o CMakeFiles/cmTC_8f7a2.dir/testCCompiler.c.obj   -c /home/esp8266/hello_world/build/CMakeFiles/CMakeTmp/testCCompiler.c
Linking C executable cmTC_8f7a2
/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_8f7a2.dir/link.txt --verbose=1
/home/esp8266/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc -mlongcalls -Wno-frame-address     CMakeFiles/cmTC_8f7a2.dir/testCCompiler.c.obj  -o cmTC_8f7a2
/home/esp8266/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: cannot find crt1-sim.o: No such file or directory
/home/esp8266/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: cannot find _vectors.o: No such file or directory
/home/esp8266/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: cannot find -lsim
/home/esp8266/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: cannot find -lhandlers-sim
/home/esp8266/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: cannot find -lhal
collect2: error: ld returned 1 exit status
make[1]: *** [cmTC_8f7a2] Error 1
make[1]: Leaving directory `/home/esp8266/hello_world/build/CMakeFiles/CMakeTmp'
make: *** [cmTC_8f7a2/fast] Error 2

CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
/home/esp8266/esp-idf/tools/cmake/project.cmake:269 (__project)
CMakeLists.txt:6 (project)
-- Configuring incomplete, errors occurred!
See also "/home/esp8266/hello_world/build/CMakeFiles/CMakeOutput.log".
See also "/home/esp8266/hello_world/build/CMakeFiles/CMakeError.log".
cmake failed with exit code 1
`
Do you have a solution for this type of problem?
Thank you!

@AHafsy  you seem to be using IDF 4.0 or 4.1 together with GCC 5.2 based toolchain. Please check the getting started guides for installing the correct version of the compiler: https://docs.espressif.com/projects/esp-idf/en/latest/get-started/index.html#step-3-set-up-the-tools.

Thank you @igrr,
So, in my case I should use GCC 4.1 ?

In IDF 4.0 and later, the correct toolchain version will be installed automatically if you follow the instructions linked in my previous comment.
At the moment the version which will be installed is esp-2019r2, it is based on GCC 8.2 and newlib 3.0.
If you wish to install the toolchain manually (instead of using install.sh), you can find the download links here: https://docs.espressif.com/projects/esp-idf/en/latest/get-started-legacy/linux-setup.html#toolchain-setup


Is there a plan to support QRCode parsing

Is there a plan to support QRCode parsing

Hi @itbencn ,
It's not planned to implement a reader part. QRCoder is a pure generator library.


fix: fix release yml

Issue #, if available:
sed command in version number can print characters other than version number
Description of changes:

update sed command to only print "0-9" and "." to get version number

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Codecov Report

Merging #571 (3249084) into main (2882730) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #571   +/-   ##
=======================================
  Coverage   88.73%   88.73%
=======================================
  Files          68       68
  Lines        2539     2539
  Branches      733      733
=======================================
  Hits         2253     2253
  Misses        277      277
  Partials        9        9

Continue to review full report at Codecov.

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


Licensing

I would like to make some changes and use this in another project, can you add a license for it please (open if possible 😜)?

@ardaegeunlu
I added MIT License.
Feel free to ask me if you have any other requests :)

Thanks ✌✌


Need PHP 5.3

Hi,
$is_excluded = array_filter($anEvent['EXDATE_array'], function($val) use ($search_date) { return is_string($val) && strpos($search_date, $val) === 0; });

is not working in PHP 5.2, you need PHP 5.3:
syntax error, unexpected T_FUNCTION in class.iCal Reader.php on line 415
Or you have to define the anonymous function outside the array_filter. I would to it but I don't know how to transmit the parameters to the function ($search_date...)

To be honest PHP 5.2 was end of life 4 years, 11 months ago so I think you should really be upgrading

Yes of course, that was only to let people known that they have to upgrade
before using it.
Thanks for your work.
Frédéric HARDY
2016-01-04 22:01 GMT+01:00 Jonathan Goode<EMAIL_ADDRESS>
To be honest PHP 5.2 was end of life 4 years, 11 months ago so I think you
should really be upgrading
—
Reply to this email directly or view it on GitHub
https://github.com/johngrogg/ics-parser/issues/39#issuecomment-168807458
.


PageSpeed Insights complains on Angular CSS bundle files

Bug Report or Feature Request (mark with an x)
- [ x ] bug report -> please search issues before submitting
- [ ] feature request

Versions.
@angular 4.1.3
@angular/cli: 1.0.6
node: 6.10.1
os: darwin x64
npm: 3.10.10
Repro steps.
https://developers.google.com/speed/pagespeed/insights/?url=agentem.herokuapp.com&tab=desktop
PageInsight complains about the css bundle files created by Angular.
Demo: https://agentem.herokuapp.com
Source: https://github.com/isaklafleur/agentem
Desired functionality.
Google PageSpeed Insights complains on CSS bundles created by Angular.
https://developers.google.com/speed/pagespeed/insights/?url=agentem.herokuapp.com&tab=desktop
Who is wrong?
PageSpeed Insight Dev Team?
Angular Dev Team?
Me? :-)

Well, no one is wrong, it's just that we don't support neither CSS inlining nor deferred CSS loading.
I agree that these are important optimizations that we should look at enabling. It's sort-of part of a larger topic of Progressive Web Apps that we're looking at enabling by default.

Insights provided shows something I'm also experiencing, the blank page.
After moving to angular-cli from my custom webpack config, neither page insights nor 'fetch as google' are able to render the page.
I'm very certain this is caused by angular-cli, as I moved back and forward between commits.
Changes were custom webpack -> angular-cli, and angular 4.0 -> 4.1/4.2.
Is this common? I was hoping to find an answer here but with no luck. Not sure if I should open up a bug report, as I can't know for sure what's causing it.

Running stock cli and aot fetches just fine for me. It would be nice to have a higher page speed though

any solution from Angular to be compatible with PageSpeed Insight?

Nowadays I believe our default apps have very good Lighthouse scores, which I believe makes this issue obsolete.


Speech to Text input using Whisper API

Can we make chat copilot more accessible by adding a microphone speech-to-text input, ideally using OpenAI's Whisper API?

Chat copilot can be configured for speech input; although, its designed to target Azure Speech Services:

Just saw it thanks. Too bad it only works with English at the moment, but good enough for now.


Merging master to live

Docs Build status updates of commit 635e1a3:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

academic-services/project-academic-knowledge/concepts-queries.md
:white_check_mark:Succeeded

academic-services/project-academic-knowledge/media/concept-semantic-interpretation-flow.png
:white_check_mark:Succeeded

academic-services/project-academic-knowledge/media/concept-semantic-interpretation-hypothesis.png
:white_check_mark:Succeeded

academic-services/project-academic-knowledge/media/concept-semantic-interpretation-lexical.png
:white_check_mark:Succeeded

academic-services/project-academic-knowledge/media/concept-semantic-interpretation-resolve.png
:white_check_mark:Succeeded

academic-services/project-academic-knowledge/reference-interpret-method.md
:white_check_mark:Succeeded

academic-services/project-academic-knowledge/toc.yml
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Msdk 723 return authorizations

:tada: This PR is included in version 13.0.0-alpha.7 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 14.0.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 14.0.0-beta.1 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[Question]: Any Benefit to Exposing a Workflow as a QueryEngine?

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
@logan-markewich had mentioned awhile ago that the original plan for the Query Engines going forward was to reimplement them using Workflows.  That was later dropped as being unnecessary.
With that being said, is there a particular benefit to exposing a Workflow as a BaseQueryEngine (beyond when a BaseQueryEngine type may be expected by some class/function?
There is a definite downside in that it is rather tricky for a QueryEngine to support multi-inputs, which can be done with both QueryPipeline and Workflow, so it can limit that when exposed as a QueryEngine.  Consequently, I'm trying to understand if anything would offset that sacrifice.

I think the only downside is the types as you mentioned. Having an expected interface is nice so that the workflow plays nice with things that expect a query engine
That being said, there's nothing stopping you from using CustomQueryEngine and wrapping a workflow into it if you need the query engine type


VideoResNet_vaiq_int8 model support

Missing torch-to-linalg op:

avg_pool3d
%1473 = torch.aten.avg_pool3d %1471, %1472, %60, %551, %false, %false, %none : !torch.vtensor<[1,512,14,14,14],f32>, !torch.list<int>, !torch.list<int>, !torch.list<int>, !torch.bool, !torch.bool, !torch.none -> !torch.vtensor<[1,512,1,1,1],f32>

After Integrate torch-mlir@ec6d7aa onnx.resize op https://github.com/iree-org/iree/pull/17358:
<unknown>:0: error: failed to legalize operation 'torch.constant.int'
<unknown>:0: note: see current operation: %46 = "torch.constant.int"() <{value = 14 : i64}> : () -> !torch.int


Header too high on Android

Anyone else experiencing this? I have a header with a title and a right button and its something like 10 px too high.  No issues with iOS though.

That's designed to according to the Android Spec, not a bug, you can override the default style

@nihgwu I'll have to attach a pic just to make sure, right now the right button is cut off mid way - thats intended? Apologies if so.

@nihgwu how does one override the style for the header container? I tried styling the screen header but it had no effect on the positioning

@babsonmatt A picture would definitely help clarify this issue :+1:

@AlanFoster apologies for the delay! - this is with the android emulator (pixel xl)

@babsonmatt That's not "too high". You're using Expo, which implicitly sets the StatusBar to translucent. React Native's default is a translucent StatusBar on iOS you can go under, but an opaque StatusBar on Android that content does not go under.
You need to add padding+height to compensate for the translucent status bar Expo adds.
This is a duplicate of #12 and #1478.

Closing in favor of #1478

@dantman thank you for clarifying that for me - apologies for the duplicate issue

This work-around did the trick for me


Mathematical formulas cannot be displayed normally.

It is So Uncomfortable for me, as it can't display mathematical formulas correctly. Hope for solving this bug, thank you.

yep，It seems that in the latest dev branch, some special mathematical formulas are not supported, such as the following example.

逆矩阵的求法主要有以下几种常见的方法：

### 1. 通过伴随矩阵求逆矩阵（适用于小规模矩阵）
对于一个 \(n \times n\) 的方阵 \(A\)，其逆矩阵 \(A^{-1}\) 可以通过以下公式求得：
\[ A^{-1} = \frac{1}{\text{det}(A)} \text{adj}(A) \]
其中：
- \(\text{det}(A)\) 是矩阵 \(A\) 的行列式。
- \(\text{adj}(A)\) 是矩阵 \(A\) 的伴随矩阵，伴随矩阵是由 \(A\) 的代数余子式构成的转置矩阵。

步骤：
1. 计算矩阵 \(A\) 的行列式 \(\text{det}(A)\)。
2. 计算矩阵 \(A\) 的每个元素的余子式，构成伴随矩阵 \(\text{adj}(A)\)。
3. 使用上述公式计算 \(A^{-1}\)。

### 2. 使用行变换法（高斯-约旦消元法）
高斯-约旦消元法是求解逆矩阵的一种直接方法，适用于大多数规模的方阵。

步骤：
1. 将矩阵 \(A\) 和单位矩阵 \(I\) 组合成一个增广矩阵 \([A | I]\)。
2. 对增广矩阵进行初等行变换，使得矩阵 \(A\) 转化为单位矩阵 \(I\)。
3. 此时增广矩阵右侧的矩阵就是 \(A\) 的逆矩阵 \(A^{-1}\)。

### 3. 利用LU分解法
LU分解将矩阵 \(A\) 分解为两个三角矩阵的乘积：一个下三角矩阵 \(L\) 和一个上三角矩阵 \(U\)，即 \(A = LU\)。如果能找到这样的分解，可以通过分别求解 \(L\) 和 \(U\) 的逆矩阵来得到 \(A\) 的逆矩阵。

步骤：
1. 对矩阵 \(A\) 进行LU分解，得到 \(L\) 和 \(U\)。
2. 分别求解 \(L\) 和 \(U\) 的逆矩阵 \(L^{-1}\) 和 \(U^{-1}\)（对于三角矩阵，求逆相对简单）。
3. 最后 \(A^{-1} = U^{-1}L^{-1}\)。

### 4. 使用软件工具或计算器
在实际应用中，对于较大规模的矩阵，通常会使用数值计算软件（如 MATLAB、Python 的 NumPy、Mathematica 等）来求逆矩阵。这些工具通常使用更加复杂的算法，如分块算法或分解法来提高计算效率。

### 注意事项
- 只有方阵（即行数等于列数的矩阵）才可能有逆矩阵。
- 如果矩阵的行列式为零，则矩阵不可逆（即不存在逆矩阵）。

你可以根据具体情况选择合适的方法来求逆矩阵。

@tjbck
In the latest version of dev
Issues

The current logic is to wait for the message to end before rendering in latex, but there are some mathematical formulas that are not rendered.
While waiting for the message to end, latex rendering will make the overall reply effect not as good as other clients.

Improvements

Did solve the previous render markdown when there are repeated deletion of new elements, the return effect is not ideal situation
It also makes markdown rendering virtually problem-free and suitable for all markdown formats

Genuine
Hope to continue the feat of the new edition, while fixing the problems mentioned, thank the author again for his selfless dedication

Should be fixed on dev, testing wanted!

Would like to test dev but can't run on my pi 4b check #4331

thanks for solving ! It seems all right.

sometimes, still have some problem,and some words become red.

@tjbck

sometimes, still have some problem,and some words become red.

Yeah, I've got this and think I know what is causing it:

It seems to be that \)) isn't closing the inline markdown block, so whenever the LLM writes a markdown expression inside of some brackets it misses this and then waits until it sees the next closing markdown \) and makes everything red between the two, eg:
While Q is orthogonal (\(Q^T Q = I\)), \(I + Q\) is generally not orthogonal

Is treating:
\(Q^T Q = I\)), \(I + Q\)

as the expression, instead of two expressions:
\(Q^T Q = I\)

\(I + Q\)

and the red likely means it's come a cross invalid LaTeX syntax.

It seems the \\\(.*?\\\) part of the regex in:
function escapeBrackets(text: string) {
	let cleanSquareBracket = '';
	let cleanRoundBracket = '';

	const pattern = /(```[\s\S]*?```|`.*?`)|\\\[([\s\S]*?[^\\])\\\]|\\\((.*?)\\\)/g;
	return text.replace(pattern, (match, codeBlock, squareBracket, roundBracket) => {
		if (codeBlock) {
			return codeBlock;
		} else if (squareBracket) {
			cleanSquareBracket = squareBracket.replace(/\s*\n\s*/g, ' ').trim();
			return `$$${cleanSquareBracket}$$`;
		} else if (roundBracket) {
			cleanRoundBracket = roundBracket.replace(/\s*\n\s*/g, ' ').trim();
			return `$${cleanRoundBracket}$`;
		}
		return match.replace(/\s*\n\s*/g, ' ').trim();
	});
}

Is the cause of the problem, but I've no idea why is isn't acting greedy nor what difference the extra bracket afer could make... :/
I've tried Claude Sonnet 3.5, GPT 4-Turbo and GPT 4o to see if they can see the problem and solve it and all just start going round in circles and contradict themselves when asked about this:
I suspect the problem is deeper and relates to the theory that "regular expressions are fundamentally not capable of parsing context-free grammars".
That theory relates to nested structures though and the problem above doesn't seem to have any nesting, but for some reason the extra ) after the \) seems to cause the .*? to not "lazily" and I've no idea why...

Could this be solved by first converting all of the \( strings to some obscure ascii character and all of the \) strings to a different obscure ascii character, and then performing the regex using these instead? Surely the there could be no confusion with \) and \))?

Absolutely, substituting \( and \) with unique placeholders can be a practical workaround to sidestep issues associated with distinguishing escaped and non-escaped parentheses. This method essentially simplifies the regex patterns by ensuring that the placeholders do not have syntactic ambiguity within the text. Here’s how you might approach this:
Steps Involved:

Choose Unique Placeholders: Select placeholders that are unlikely to appear in the regular text. It could be a combination of non-standard ASCII characters or a rarely-used Unicode character.

Substitution: Replace all instances of \( with a unique opening placeholder, and \) with a corresponding closing placeholder.

Regex Application: Run your regex operations using these placeholders instead of the original bracket characters.

Reverse Substitution: Convert the placeholders back to the original LaTeX brackets after processing.

Example Implementation:
Here's a simple JavaScript example that demonstrates this approach:
function escapeBrackets(text) {
    // Unique placeholders
    const openPlaceholder = "«";  // Example: U+00AB
    const closePlaceholder = "»"; // Example: U+00BB

    // Step 1: Replace LaTeX brackets with placeholders
    let modifiedText = text.replace(/\\\(/g, openPlaceholder).replace(/\\\)/g, closePlaceholder);

    // Step 2: Apply regex on the modified text
    const regexPattern = new RegExp(`${openPlaceholder}(.*?)${closePlaceholder}`, 'g');
    modifiedText = modifiedText.replace(regexPattern, (match, expression) => {
        // Assuming transformation of the captured expression needed
        return `$${expression.trim()}$`;
    });

    // Step 3: Replace placeholders back to LaTeX brackets
    modifiedText = modifiedText.replace(new RegExp(openPlaceholder, 'g'), '\\(').replace(new RegExp(closePlaceholder, 'g'), '\\)');

    return modifiedText;
}

// Test the function
const inputText = "While Q is orthogonal \\(Q^T Q = I\\)), \\(I + Q\\)";
const outputText = escapeBrackets(inputText);
console.log(outputText);

Advantages:

Clarity: Removes ambiguity about what constitutes the bounding parts of the expressions to be matched.
Flexibility: Allows regex patterns to be simpler and focus solely on content between the placeholders.
Control: Minimizes unexpected matching errors that arise from overlooking escaped characters mixed with regular characters.

Considerations:

Ensure Uniqueness: The placeholders must be unique enough to not occur naturally in your datasets.
Reversibility: Ensure that the conversion back and forth does not alter any data unintentionally.
Efficiency: Multiple pass-through text replacements might introduce a performance overhead, so this strategy is more suited for scenarios where text size is manageable.

This approach works well for circumventing the complications due to syntax mixture in languages like LaTeX embedded in texts and gives more controlled management over how expressions are parsed and handled.

https://onecompiler.com/javascript/42r9qmmny
function escapeBrackets(text) {
    let cleanRoundBracket = '';
    let result = '';
    let i = 0;

    while (i < text.length) {
        if (text[i] === '\\' && text[i + 1] === '(') {
            // Found the start of a LaTeX inline block
            let end = i + 2; // Start searching after '\('
            while (end < text.length && !(text[end - 1] === '\\' && text[end] === ')')) {
                end++;
            }
            if (end < text.length) { // Ensure the closing delimiter was found
                cleanRoundBracket = text.substring(i + 2, end - 1).replace(/\s*\n\s*/g, ' ').trim();
                result += `$${cleanRoundBracket}$`;
                i = end + 1; // Move index past the closing '\)'
            } else {
                // No closing bracket found, add the rest as normal text
                result += text.substring(i);
                break;
            }
        } else {
            result += text[i];
            i++;
        }
    }

    return result;
}

// Test cases
const testText = `While Q is orthogonal (\\(Q^T Q = I\\)), \\(I + Q\\) is generally not orthogonal.`;
console.log(escapeBrackets(testText));

Output:

While Q is orthogonal ($Q^T Q = I$), $I + Q$ is generally not orthogonal.

Maybe just have 3 like this?

https://onecompiler.com/javascript/42r9rd8h3
function parseRoundBrackets(text) {
    let i = 0, result = '';
    while (i < text.length) {
        if (text[i] === '\\' && text[i + 1] === '(') {
            let end = i + 2;
            while (end < text.length && !(text[end - 1] === '\\' && text[end] === ')')) {
                end++;
            }
            if (end < text.length) {
                let content = text.substring(i + 2, end - 1).replace(/\s*\n\s*/g, ' ').trim();
                result += `$${content}$`;
                i = end + 1;
            } else {
                result += text.substring(i);
                break;
            }
        } else {
            result += text[i];
            i++;
        }
    }
    return result;
}

function parseSquareBrackets(text) {
    let i = 0, result = '';
    while (i < text.length) {
        if (text[i] === '\\' && text[i + 1] === '[') {
            let end = i + 2;
            while (end < text.length && !(text[end - 1] === '\\' && text[end] === ']')) {
                end++;
            }
            if (end < text.length) {
                let content = text.substring(i + 2, end - 1).replace(/\s*\n\s*/g, ' ').trim();
                result += `$$${content}$$`;
                i = end + 1;
            } else {
                result += text.substring(i);
                break;
            }
        } else {
            result += text[i];
            i++;
        }
    }
    return result;
}

function parseCodeBlocks(text) {
    let i = 0, result = '';
    while (i < text.length) {
        if (text[i] === '`' && text[i + 1] === '`' && text[i + 2] === '`') {
            let end = i + 3;
            while (end < text.length && !(text[end - 2] === '`' && text[end - 1] === '`' && text[end] === '`')) {
                end++;
            }
            if (end < text.length) {
                let content = text.substring(i + 3, end - 2).trim();
                result += content;  // Escape or process further as needed
                i = end + 1;
            } else {
                result += text.substring(i);
                break;
            }
        } else {
            result += text[i];
            i++;
        }
    }
    return result;
}

function escapeBrackets(text) {
    let result = parseRoundBrackets(text);
    result = parseSquareBrackets(result);
    result = parseCodeBlocks(result);
    return result;
}

// Test cases
const testText = `While Q is orthogonal (\\(Q^T Q = I\\)), \\(I + Q\\) is generally not orthogonal.`;
console.log(escapeBrackets(testText));

// Testing for various content types and combinations
const testText1 = "Simple LaTeX inline mode: \\(x^2 + y^2 = z^2\\) with text following.";
const testText2 = "LaTeX display mode with square brackets: \\[ \\frac{a}{b} = \\frac{c}{d} \\]";
const testText3 = "Code block test with backticks: ```console.log('Hello World');``` and more text.";
const testText4 = "Mixed content: \\(x + y = z\\) followed by a code block: ```int main() { return 0; }``` and more \\(u+v=w\\) text.";
const testText5 = "Incorrect closing sequence test: \\(n*m)) additional text here.";
const testText6 = "Multiple LaTeX expressions: \\(a + b = c\\) and \\(d = e + f\\) in one line.";
const testText7 = "Nested fake delimiters test: \\( this contains (fake) delimiters \\) but should parse correctly.";
const testText8 = "Incomplete expressions: Here is one \\(a+b incomplete and text continues.";
const testText9 = "Test escaping: This is not a latex \\( because the bracket is escaped: \\(n = m \\cdot k\\) the actual.";

console.log(escapeBrackets(testText1));
console.log(escapeBrackets(testText2));
console.log(escapeBrackets(testText3));
console.log(escapeBrackets(testText4));
console.log(escapeBrackets(testText5));
console.log(escapeBrackets(testText6));
console.log(escapeBrackets(testText7));
console.log(escapeBrackets(testText8));
console.log(escapeBrackets(testText9));

While Q is orthogonal ($Q^T Q = I$), $I + Q$ is generally not orthogonal.
Simple LaTeX inline mode: $x^2 + y^2 = z^2$ with text following.
LaTeX display mode with square brackets: $$\frac{a}{b} = \frac{c}{d}$$
Code block test with backticks: console.log('Hello World'); and more text.
Mixed content: $x + y = z$ followed by a code block: int main() { return 0; } and more $u+v=w$ text.
Incorrect closing sequence test: \(n*m)) additional text here.
Multiple LaTeX expressions: $a + b = c$ and $d = e + f$ in one line.
Nested fake delimiters test: $this contains (fake) delimiters$ but should parse correctly.
Incomplete expressions: Here is one \(a+b incomplete and text continues.
Test escaping: This is not a latex $because the bracket is escaped: \(n = m \cdot k$ the actual.

Something like this but tidied up. It still won't handle nesting but at least it will perform "lazy" matches where the .*? seems to be failing...

I'm absolutely clueless when it comes to Docker so no idea how to test any of this in actual running version :/ Where does this file even live in Docker, how can it be edited and so on are total mysteries - around 50% of the time I think I'm updating the files inside of Docker they don't update, and I couldn't even delete the OpenWebUI Docker data without a complete uninstall of everything to do with Docker, it's Linux user and so on, so I seriously doubt I can fix this even if I knew how... :(

OpenAI: o1-preview
USER
Can you look at this code:
function escapeBrackets(text: string) {
	let cleanSquareBracket = '';
	let cleanRoundBracket = '';

	const pattern = /(```[\s\S]*?```|`.*?`)|\\\[([\s\S]*?[^\\])\\\]|\\\((.*?)\\\)/g;
	return text.replace(pattern, (match, codeBlock, squareBracket, roundBracket) => {
		if (codeBlock) {
			return codeBlock;
		} else if (squareBracket) {
			cleanSquareBracket = squareBracket.replace(/\s*\n\s*/g, ' ').trim();
			return `$$${cleanSquareBracket}$$`;
		} else if (roundBracket) {
			cleanRoundBracket = roundBracket.replace(/\s*\n\s*/g, ' ').trim();
			return `$${cleanRoundBracket}$`;
		}
		return match.replace(/\s*\n\s*/g, ' ').trim();
	});
}

It seems to be that \)) isn't closing the inline markdown block, so whenever the LLM writes a markdown expression inside of some brackets it misses this and then waits until it sees the next closing markdown \) and makes everything red between the two, eg:
While Q is orthogonal (\(Q^T Q = I\)), \(I + Q\) is generally not orthogonal

Is treating:
\(Q^T Q = I\)), \(I + Q\)

as the expression, instead of two expressions:
\(Q^T Q = I\)

\(I + Q\)

It seems the \\\(.*?\\\) part of the reg-ex and for some reason the extra ) after the \) seems to cause the .*? to not behave "lazily".
Can you explain exactly why this reg-ex is failing and suggest a fix to handle these specific \)) cases properly? It seems to be a simple problem, but as yet no other LLM has been able to offer a valid solution that wouldn't break other LaTeX syntax parsing for backslashes inside the inline expressions, etc.
ASSISTANT
The issue arises due to the way regular expressions handle backtracking, especially with nested patterns and quantifiers like .*?. In your regex, the \\\((.*?)\\\) pattern is designed to match LaTeX expressions enclosed in \( and \). However, when the LaTeX expression is immediately followed by a closing parenthesis ), like in your example, the regex captures that extra ) as part of the LaTeX expression.
Here's why this happens:

The .*? is a non-greedy quantifier, so it matches as few characters as possible before the next part of the pattern (\\\)).
However, regex engines use backtracking when the overall match fails. Due to the alternation in your regex (|), the regex engine may backtrack and expand the .*? to include more characters, inadvertently including the extra ).

In your example, the regex matches from the first \( to the last \), including the extra ):
\(Q^T Q = I\)), \(I + Q\)

Solution:
To prevent the regex from capturing the extra closing parenthesis ), we can use a negative lookahead (?!\)) to ensure that the closing \) is not immediately followed by another ). Here's the corrected regex:
const pattern = /(```[\s\S]*?```|`.*?`)|\\\[([\s\S]*?[^\\])\\\]|\\\((.*?)\\\)(?!\))/g;

By adding (?!\)) right after \\\), we tell the regex engine to only match \) if it is not followed by a ). This prevents the extra ) from being included in the match.
Explanation:

\\\((.*?)\\\) matches LaTeX expressions enclosed in \( and \).
(?!\)) is a negative lookahead that asserts that the pattern \) is not followed by ).
This modification ensures that the regex stops at the correct \) and doesn't include any subsequent ) characters.

Updated Function:
function escapeBrackets(text) {
  let cleanSquareBracket = '';
  let cleanRoundBracket = '';

  const pattern =
    /(```[\s\S]*?```|`.*?`)|\\\[([\s\S]*?[^\\])\\\]|\\\((.*?)\\\)(?!\))/g;
  return text.replace(
    pattern,
    (match, codeBlock, squareBracket, roundBracket) => {
      if (codeBlock) {
        return codeBlock;
      } else if (squareBracket) {
        cleanSquareBracket = squareBracket.replace(/\s*\n\s*/g, ' ').trim();
        return `$$${cleanSquareBracket}$$`;
      } else if (roundBracket) {
        cleanRoundBracket = roundBracket.replace(/\s*\n\s*/g, ' ').trim();
        return `$${cleanRoundBracket}$`;
      }
      return match.replace(/\s*\n\s*/g, ' ').trim();
    }
  );
}

Testing the Fix:
Using the updated regex on your example:
const text =
  'While Q is orthogonal (\\(Q^T Q = I\\)), \\(I + Q\\) is generally not orthogonal';

console.log(escapeBrackets(text));

Output:
While Q is orthogonal ($Q^T Q = I$), $I + Q$ is generally not orthogonal

Now, the LaTeX expressions are correctly converted, and the extra ) is not included in the LaTeX expression, preserving the intended structure.
USER
Just to be clear: "we tell the regex engine to only match ) if it is not followed by a )" means this will still work for the case where there is a closing bracket after the expression closing? The way you worded it makes it sound like it will not treat this as a closing?
ASSISTANT
You're absolutely right, and I apologize for any confusion. My previous explanation wasn't accurate, and the proposed solution doesn't handle the case correctly. Let me clarify the issue and provide a better solution.
Understanding the Issue:
The problem arises because the regular expression is matching more than it should due to backtracking caused by the alternation (|) in the pattern. Specifically, when the LaTeX expression \(Q^T Q = I\)) is followed by , \(I + Q\), the regex incorrectly includes the extra ), causing it to consume beyond the intended closing \).
Here's what's happening step by step:

The pattern \\\((.*?)\\\) is supposed to match content between \( and \).
The .*? is a non-greedy quantifier, so it should match as little as possible.
However, due to the alternation in the regex pattern and the way regex engines handle backtracking, the engine may expand .*? to include more characters if the overall match fails, even consuming extra ) characters.
This causes the regex to match from the first \( to the last \), including any intervening ) characters.

Why the Previous Solution Doesn't Work:
Adding (?!\)) after \\\) in the regex (\\\((.*?)\\\)(?!\))) means that the closing \) will only be matched if it's not followed by another ). In your case, since the \) is followed by a ), the regex fails to match the closing delimiter, causing the entire expression to be incorrectly matched.
Correct Solution:
To fix this issue, we need to adjust the regex pattern to ensure that:

The non-greedy quantifier doesn't consume extra characters inadvertently.
The regex engine doesn't backtrack and expand the match beyond the intended scope.

Here's how we can modify the regex:

Change the Order of Alternation: Place the patterns in the regex in an order that minimizes backtracking. Specifically, match the LaTeX expressions before the code blocks.

Use Character Classes to Restrict Matching: Instead of .*?, use a character class that matches any character except the closing delimiter.

Avoid Matching Extra Characters: Ensure that the pattern for matching \( and \) pairs does not include any closing parentheses ) that are not part of the LaTeX expression.

Updated Regex Pattern:
Here's the corrected regex pattern:
const pattern = /\\\(([\s\S]*?)\\\)|\\\[([\s\S]*?)\\\]|(```[\s\S]*?```|`[^`]*`)/g;

Explanation:

\\\(([\s\S]*?)\\\): Matches LaTeX expressions enclosed in \( and \).

([\s\S]*?): Matches any character (including newlines) non-greedily.
This ensures that we match up to the first closing \) without including extra characters.

\\\[([\s\S]*?)\\\]: Matches LaTeX expressions enclosed in \[ and \].
(`[^\`]*`): Matches inline code enclosed in backticks.

We use [^]instead of.?` to prevent matching backticks inside code blocks.

 [\s\S]*? : Matches code blocks enclosed in triple backticks.

Updated Function:
function escapeBrackets(text) {
  const pattern =
    /\\\(([\s\S]*?)\\\)|\\\[([\s\S]*?)\\\]|(```[\s\S]*?```|`[^`]*`)/g;
  return text.replace(
    pattern,
    (match, roundBracket, squareBracket, codeBlock) => {
      if (codeBlock) {
        return codeBlock;
      } else if (squareBracket) {
        const cleanSquareBracket = squareBracket.replace(/\s*\n\s*/g, ' ').trim();
        return `$$${cleanSquareBracket}$$`;
      } else if (roundBracket) {
        const cleanRoundBracket = roundBracket.replace(/\s*\n\s*/g, ' ').trim();
        return `$${cleanRoundBracket}$`;
      }
      return match;
    }
  );
}

Testing the Updated Function:
Let's test it with your example:
const text =
  'While Q is orthogonal (\\(Q^T Q = I\\)), \\(I + Q\\) is generally not orthogonal';

console.log(escapeBrackets(text));

Expected Output:
While Q is orthogonal ($Q^T Q = I$), $I + Q$ is generally not orthogonal

Explanation of the Changes:

Order of Patterns: By placing the LaTeX expression patterns before the code blocks, we ensure that LaTeX expressions are matched first, reducing the chance of backtracking.
Restricting Matches: Using [\s\S]*? directly inside the LaTeX patterns ensures that we match any character, but the non-greedy quantifier stops at the first \\\).
Avoiding Backtracking Issues: By simplifying the regex and avoiding unnecessary alternation, we reduce the complexity and potential for the regex engine to backtrack and over-consume characters.

Why This Works:

The regex now correctly matches each LaTeX expression separately, even if there are extra parentheses or characters following the \) delimiter.
The non-greedy quantifier *? ensures that the match stops at the first occurrence of \\\).
By avoiding more complex assertions and lookarounds, we simplify the matching process and prevent unintended behavior.

Answer to Your Question:

Just to be clear: "we tell the regex engine to only match ) if it is not followed by a )" means this will still work for the case where there is a closing bracket after the expression closing? The way you worded it makes it sound like it will not treat this as a closing?

You're correct, and I apologize for any confusion. My previous wording was misleading, and the proposed negative lookahead (?!\)) would indeed prevent the \) from being matched if it's followed by a ), which is not what we want.
In the updated solution, we've adjusted the regex to ensure that the closing \) is always matched, regardless of what follows it. This ensures that LaTeX expressions like \(Q^T Q = I\) are correctly identified and transformed, even if they are immediately followed by additional parentheses or other characters.
Key Takeaways:

Be Cautious with Lookarounds: Negative lookaheads or lookbehinds can sometimes prevent the regex from matching valid patterns, especially when dealing with characters that can appear in various contexts.
Simplify When Possible: Reducing the complexity of the regex by simplifying patterns and avoiding unnecessary alternation can lead to more reliable matches.
Test Thoroughly: Always test the regex with various inputs to ensure it handles all expected cases, especially edge cases like the one you encountered.

I hope this clarifies the issue and provides a working solution for your problem. Let me know if you have any more questions or need further assistance!

Reading through the OpenAI: o1-preview solution makes me think that just breaking into 3 separate patterns and running the replace 3 times would quickly prove if it is actually the ordering causing the lazy operation to fail?

@tjbck can we reopen this? The LaTeX parsing is sooo close to working now and this just seems like the last hurdle and it will be working 100%! :)


Setup fastlane

I use fastlane extensively for my app, but not for plugins. It's overkill for plugins. The main reason to use fastlane is easy programmatic access to app stores, which doesn't apply to plugins.


Support Multiple controllers

Type of change

Bugfix
Enhancement

Description
Fixes the cluster configuration and start up so that multiple controller nodes work. Fixes: https://github.com/kroxylicious/kroxylicious-junit5-extension/issues/165
Additional Context
I still see this as an intermediate step, there are kludges to detect if a node should be a controller or a broker or both. While they work it feels like we are missing a proper object model that knows what role a node has. We also lack the ability for users to control the cluster topology (i.e. they can't have nodes in controller only mode with while they they still have brokers to start)
Checklist
Please go through this checklist and make sure all applicable tasks have been done

[ ] Write tests
[ ] Make sure all tests pass
[ ] Update documentation
[ ] Reference relevant issue(s) and close them after merging
[ ] Update CHANGELOG.md

We should probably update the README and the javadocs on the @KRaftCluster annotation to explain how the numBrokers and numControllers relate to the cluster that gets created.
I also think that with this change you're not far from being able to add support for controlling whether we use combined or pure-controller nodes using some combinedMode attribute on @KRaftCluster. Maybe that's something we can do in a follow-up PR, WDYT?

We should probably update the README and the javadocs on the @KRaftCluster annotation to explain how the numBrokers and numControllers relate to the cluster that gets created.

Yeah thats a good point.

I also think that with this change you're not far from being able to add support for controlling whether we use combined or pure-controller nodes using some combinedMode attribute on @KRaftCluster. Maybe that's something we can do in a follow-up PR, WDYT?

Yeah I've questioned the use of combined mode throughout this work but I really don't want to try and tackle it as part of this PR. Partly because I wonder if at that point we want to move to a more sophisticated deployment model such as @KraftCluster(brokerIds = [1,2,4], controllerId=1,2,6]) but keep numBrokers/ numControllers as a fall back...


docs(kgo): add Konnect entities documentation

Description
Adds a Konnect entities prerequisites building block (describing the KGO installation and KonnectAuthConfiguration creation steps) along with a first guide describing KonnectGatewayControlPlane usage. It also adds guides for:

Architecture overview
KongRoute and KongService
KongConsumer and Credentials
KongKey and KeySet
KongUpstream and Target
KongCertificate (+KongSNI) and KongCACertificate
KongVault
KongDataPlaneClientCertificate
Tagging and labeling entities

It's based on https://github.com/Kong/docs.konghq.com/pull/8083 which prepares v1.4.x release nav etc.
Part of https://github.com/Kong/gateway-operator/issues/439.
Testing instructions
Preview links:

https://deploy-preview-8084--kongdocs.netlify.app/gateway-operator/unreleased/guides/konnect-entities/architecture/
https://deploy-preview-8084--kongdocs.netlify.app/gateway-operator/unreleased/guides/konnect-entities/gatewaycontrolplane/
https://deploy-preview-8084--kongdocs.netlify.app/gateway-operator/unreleased/guides/konnect-entities/service-and-route/
https://deploy-preview-8084--kongdocs.netlify.app/gateway-operator/unreleased/guides/konnect-entities/consumer-and-consumergroup
https://deploy-preview-8084--kongdocs.netlify.app/gateway-operator/unreleased/guides/konnect-entities/key-and-keyset
https://deploy-preview-8084--kongdocs.netlify.app/gateway-operator/unreleased/guides/konnect-entities/tagging-and-labeling
https://deploy-preview-8084--kongdocs.netlify.app/gateway-operator/unreleased/guides/konnect-entities/dpcertificate/
https://deploy-preview-8084--kongdocs.netlify.app/gateway-operator/unreleased/guides/konnect-entities/certificate-and-cacertificate/
https://deploy-preview-8084--kongdocs.netlify.app/gateway-operator/unreleased/guides/konnect-entities/vault/

Checklist

[x] Review label added
[x] Conditional version tags added, if applicable.

Rebased on main after merging https://github.com/Kong/docs.konghq.com/pull/8083


Feature request - cleaning a container of elements before dropping a new one

I couldn't find any clue in your docs...
Consider this case:

I have four boxes where I drop items. They are defined and work fine:
dragula([$('whitelist_1'), $('whitelist_2'), $('blacklist_1'), $('blacklist_2'), ],

only one of them, say `blacklist_2',  can accept only one element.
So if the box already contains one element, it should be spilledwhen I drop the new one.

As of now, I simply remove the previously put elements by jQuery.
Is such a feature already supported within your script?

Use accepts.
accepts: function (el) {
  if (el === blacklist_2) {
    return el.children.length === 0
  }
  return true
}


Stellar in live broadcast - no other way to let you know

109TH AMATEUR SERIES (Division 11)
AMD Ryzen 5950x
ChessGUI
256mb hash each where possible
6 piece tablebases
Ponder off
GBSelect2024.cgb book
12 minutes with 8 second increments.
4 cycles 52 rounds
All engines 1CPU
The top engine will gain automatic promotion. Any other changes of division will be at my discretion and may not necessarily involve playoff matches.
Participants
CeeChess 1.4 64-bit (relegated)
Shen Yu 2.0.1 64-bit (relegated)
Oxidation 0.7.1 64-bit
Eubos 3.6 64-bit (relegated)
Isa 3.1 64-bit
Camel 1.6.0 64-bit
Tcheran 2.3 64-bit
Austerlitz 1.4.7 64-bit
chessplusplus 1.2.0 64-bit
Stellar 1.3.0 64-bit
InfraRed 2.0.2 64-bit
Trinket 3.0 64-bit
Maxwell 3.1.3 64-bit
Bread 0.4.0 64-bit (new)
Web based link for live viewing (courtesy of Jay - Berserk author).
https://ccrl.live/16069

Thanks a lot for letting me know.
Would it be possible in the future for you to use version 1.4.0 since I've made improvements to the performance and time management?

Done. :-)
On Thu, Jun 20, 2024 at 8:38 PM Dimitrije Dobrota @.***>
wrote:

Thanks a lot for letting me know.
Would it be possible in the future for you to use version 1.4.0 since I've
made improvements to the performance and time management?
—
Reply to this email directly, view it on GitHub
https://github.com/DimitrijeDobrota/stellar/issues/4#issuecomment-2180132289,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVOIVUR45V2IUB6VSEA7TQTZIKIHHAVCNFSM6AAAAABJTOZTICVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBQGEZTEMRYHE
.
You are receiving this because you authored the thread.Message ID:
@.***>


Changing ema period

I want to override ema for an specific period slow(55) and fast (10) ema, could you help me? please.
And I like to know how can chage period for MACD.
Thank you for your help

Hi @gambitov ,
You can try somethin like this:
import pandas as pd

from ta.trend import EMAIndicator
from ta.utils import dropna

# Load datas
df = pd.read_csv('ta/tests/data/datas.csv', sep=',')

# Clean NaN values
df = dropna(df)

# Calculate EMAs
df['trend_ema_fast'] = EMAIndicator(close=df[close], n=12).ema_indicator()
df['trend_ema_slow'] = EMAIndicator(close=df[close], n=55).ema_indicator()

Let me know if it is clear for you.
Best,
Dario

dear @bukosabino, I had to change [close] for ['Close'] and it works perfectly. Thank you so much.


Improve Hazelcast clustering docs by adding details around requirements for firewalls, mDNS, etc...

Describe the feature
Per discussions with @tsegismont -
This is a documentation improvement based on experiences I have had with Vert.x users and clients. Many get frustrated that examples of Hazelcast clustering do not work on their computers when running MacOS or Windows. This is often caused by the built-in or company mandated firewalls and security software.
Use cases

When a developer is programming on Windows and Windows Defender is preventing local discovery
When a developer is programming on a Mac and the built-in firewall is blocking local discovery
When a developer is programming on any OS where a 3rd-party firewall has been installed and mDNS discovery is not working

Contribution
I will be working on a submission to add more details about the required networking in order to support mDNS local discovery. In all cases, I will attempt to keep specific details out of the Vert.x docs and just link to external references for things like Windows Defender and MacOS Firewall.

Already documented here: https://github.com/vert-x3/vertx-hazelcast/blob/bcc0abe718706544b33e0f7bb1129003f4fdacfc/src/main/asciidoc/index.adoc#multicast-not-enabled-on-the-machine


What is the correct "host" parameter for MacOS or Linux FileSystems?

Hi! My local file system is MacOS. It seems like the examples provided are for host paths like D:... suitable for Windows.
If I'd like to work with local file system that is MacOS or Linux one, is it supported? If yes, what is a good sample path?

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

ID: be4e1f4d-cd08-e062-9631-7b54488fc3de
Version Independent ID: 81f8781c-1164-023c-9cff-d55799a2edfd
Content: Copy data from/to a file system by using Azure Data Factory - Azure Data Factory
Content Source: articles/data-factory/connector-file-system.md
Service: data-factory
GitHub Login: @linda33wj
Microsoft Alias: jingwang

@lenadroid Thank you for reaching out. At this time we are reviewing the ask and will provide an update as appropriate.

@lenadroid Currently, self hosted IR only support be installed on Windows, and in case of any file share in other OS, they must have SMB server setup, then SHIR can access their file share by pattern : \host\fileshare

Hope this helps.


Remove test_claim.py

These tests are interfering with each other and other tests.
Making every single test its own transaction seemed to fix that, but then the tests are too slow.

Hmm. Sad, but fair— I've also seen flaky test failures coming from these tests.
I'll approve this, but I feel like the root cause here must be a bug, either in the test code or in our real server somewhere. Tests run serially, so in theory even these tests should never be interfering with other ones.


httpclient: Avoid encoding params for POST/PUT requests

We should avoid encoding body in POST/PUT requests which can exceed the permissible URL length.
Cloudflare rejects the URL which is too long with 414 code.

@tamalsaha does the PR/fix makes sense?

Thanks.


Full screen doc examples result in 404

Bug Report
Steps

using Chrome on Windows 10
visit https://react.semantic-ui.com/views/statistic
navigate to any of the examples e.g. 'Statistics Group'
hover over the example so that top-right buttons are visible
click the 'Full Screen' button
browser opens https://react.semantic-ui.com/maximize/types-group

Expected Result

a fuller example of the React component

Actual Result
404
How about some good old Atari?
Chrome devtools shows:
Mixed Content: The page at 'https://react.semantic-ui.com/maximize/types-group' was loaded over HTTPS, but requested an insecure plugin resource 'http://www.pizn.com/swf/classic-asteroids.swf'. This request has been blocked; the content must be served over HTTPS.
VM1690 types-group:1 Mixed Content: The page at 'https://react.semantic-ui.com/maximize/types-group' was loaded over HTTPS, but requested an insecure plugin resource 'http://www.pizn.com/swf/1-space-invaders.swf'. This request has been blocked; the content must be served over HTTPS.
Version

current web documentation

@john-aws Thanks for reporting, I'm on it.


[HUDI-2770] - Docs for (HUDI-2737) - Use earliest instant for async compaction and clustering

What is the purpose of the pull request
In PR: https://github.com/apache/hudi/pull/3991, the --instant-time is no longer required for Hudi compaction and clustering utilities. As I made the simple change for this I also discovered that the compaction docs were unclear on how to schedule and then separately execute compaction asynchronously.
Brief change log

Added note about --instant-time no longer being required in clustering.md
Added note about --instant-time no longer being required in compaction.md
Reworded and expanded compaction doc to make scheduling vs execution clear

Verify this pull request
This pull request is doc changes only.
Committer checklist

[ X] Has a corresponding JIRA in PR title & commit

[X ] Commit message is descriptive of the change

[ X] CI is green

[X ] Necessary doc changes done or have another open PR

[ X] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

@yihua take a look to see if this covers your updates in PR: https://github.com/apache/hudi/pull/3991

Thanks @bhasudha, I made the corresponding updates


Add the Arabic Language

Add the Arabic Language to Date Picker

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


refactor: use mph to avoid exit-time destructors

Ref: https://github.com/qlibs/mph

TODO: switch from ubuntu-24.04 to ubuntu-latest after October 30
Ref: https://github.com/actions/runner-images/issues/10636


Background image should (optionally?) render pixel-for-pixel rather than scaling with the system scale

Description of the new feature/enhancement
This might be related to #2370, but it addresses a slightly different problem.
Currently, Windows Terminal scales the background image according to your system UI scale. So, for example, if your UI scale is set to 150% in Windows Settings, and you set a 100×100-pixel background image with backgroundImageStretchMode: none, the image will be rendered at 150×150. This might not be what you want, since the scaling will blur sharp edges, and the image will be much larger than you might have expected.
Proposed technical implementation details (optional)
There should be some way to indicate that we want our background image to render pixel-for-pixel, rather than be enlarged according to the UI scale.
Or else maybe it should simply render pixel-for-pixel by default. This was my expectation; not sure if it matches the expectation of others.

Yeah, actually it should just render pixel-for-pixel. Thanks!

I think so