Make grype-db download smaller by switching compression methods

What would you like to be added:
Grype should download a smaller file during it's database update, probably by using .zstd compression on the current database schema.
Why is this needed:
The Grype database has grown over the years, to the point where now the database is 184 mb as a gzipped tar. This results in load on the CDN, and poor experience for many users.
Tasks:

[ ] - update yardstick to be able to handle zstd files: https://github.com/anchore/yardstick/blob/63765d429e650787df05711cd204fef04cb8efc8/src/yardstick/tool/grype.py#L260
[ ] - update grype-db-manager config shape to include a suffix per schema version, and pass that suffix as -e to grype-db package
[ ] - update that configuration to pass -e tar.zstd for v4 and v5 schemas

We may be able to use Xz in a performant way instead if we use https://github.com/xi2/xz

Prototype for grype is here https://github.com/anchore/grype/compare/main...fast-xz
What's missing is removing some of the copied untar code from go-getter and leveraging the stereoscope tar utils (may require some refactoring in stereoscope).

I would highly recommend using zstandard over xz!

Me too! When evaluating I've been trying to minimize file size while not impacting decompression time in grype. Something that threw a wrench into this evaluation process is when to use golang implementations for these methods vs shelling out to tooling to do this. I've found when compressing with a golang implementation there tends to be less ideal compression ratios and decompression times.  The lesson here learned is: compress with native tooling (for best archives), decompress with golang implementations (allowing us to keep grype as a portable static binary easily). I also found that what is being compressed is pretty sensitive to the compression ratio too, so while we've been prototyping a new schema, we ended up changing a lot of the details based on apparent ratios we were getting with those designs (for instance, a more normalized DB design tended to be a smaller DB file size, but not a great compression ratio when making the archive for distribution... but relaxing normalization and leaning more towards a json blob store the ratio was maximized).
So! Where are we at today with all of the feedback incorporated? In terms of distribution sizes:
original:
711M    build/vulnerability-db_v6.0.0_2024-11-14T01:32:00Z_1732070774.tar

archives:
 81M    build/vulnerability-db_v6.0.0_2024-11-14T01:32:00Z_1732070774-19.tar.zst    # zstd -19
 63M    build/vulnerability-db_v6.0.0_2024-11-14T01:32:00Z_1732070774-22.tar.zst    # zstd -22 --ultra
 58M    build/vulnerability-db_v6.0.0_2024-11-14T01:32:00Z_1732070774.tar.xz        # xz -9

Where Xz and Zstd-22 are comparable enough to be candidates here.
And timing (after trying out / swapping some decompression libs... I'll spare folks the details here):
❯ time grype db import vulnerability-db_v6.0.0_2024-11-14T01:32:00Z_1732070774.tar.xz
grype db import   6.32s user 0.34s system 89% cpu 7.488 total

❯ time grype db import vulnerability-db_v6.0.0_2024-11-14T01:32:00Z_1732070774-19.tar.zst
grype db import   1.21s user 0.58s system 168% cpu 1.065 total

❯ time grype db import vulnerability-db_v6.0.0_2024-11-14T01:32:00Z_1732070774-22.tar.zst
grype db import   2.89s user 0.46s system 130% cpu 2.574 total

From a timing perspective Zstd wins here.
Overall, the final verdict is Zstd 🎉

Adding changelog ignore since this, though this is implemented in #437, it won't be usable until v6 is enabled as the default schema (probably in a couple months). We don't want to pick this up in the next release notes.


device-groups to be first level objects in cli

User should be able to set / show commands on device-groups.

In more detail, this involves RPCs:

connection-change
controller-commit
config-pull
device-template-apply
Also, it adds syntax to some CLI commands, so that device-groups can be used with completion.


Showing only year list

Hi, is there any way to show only a list of years?  No date, time, month ... just years.
Thanks in advance

$("#startDate").bootstrapMaterialDatePicker({
year : true,
});


Add CLI support to create and update properties for Catalog and Schema

PR Checklist

[x] A description of the changes is added to the description of this PR.
[x] If there is a related issue, make sure it is linked to this PR.
[x] If you've fixed a bug or added code that should be tested, add tests!
[x] If you've added or modified a feature, documentation in docs is updated

Description of changes

Added CLI support to create properties for Catalog and Schema:

Cataog:bin/uc catalog create --name catalog_name --properties '{"key1": "value1", "key2": "value2"}'

Schema:bin/uc schema create --catalog catalog_name --name schema_name  --properties '{"key1": "value1", "key2": "value2"}'

Added CLI support to update properties for Catalog and Schema:

Catalog:bin/uc catalog update --name catalog_name --properties '{"new_key1": "new_value1", "new_key2": "new_value2"}'

Schema:bin/uc schema update --full_name catalog_name.schema_name --properties '{"new_key1": "new_value1", "new_key2": "new_value2"}'

Documentation changes.

Added properties usage for Catalog and Schema
Added headings in the documentation to make it more presentable
Fixed typos and inconsistencies

Closes #176

@vikrantpuppala The changes are done - please review them once you get a chance. Thx! 🙏

@MrPowers Should we add uc_docs_venv to .gitignore as well?

CLI changes LGTM. Nice work. Server changes appear to overlap with #190 which already has some comments in it. Can you please review #190 and adjust accordingly?

Thanks for reviewing this!
Actually, I was under the impression that we need to add support for creating and updating Catalog and Schema in #176 - and that required server changes as well hence this covers all of it along with the relevant test cases.
And, I was unaware of #175 and that it was being worked on - my bad.
Apparently, this PR now fixes both #175 and #176 - so please let me know the next steps.

Thank you for the update! I want to clarify that since #190 has been open for a long time and will be merged soon, I would suggest removing the duplicated parts to keep the scope of this PR to #176.

@xx-db Server file changes are reverted to keep the scope to #176. PTAL.

Do we need to wait for https://github.com/unitycatalog/unitycatalog/pull/190 to merged in before merging this in?

@vikrantpuppala added @tlm365's commits to this PR. PTAL.

Closes #176 and #175


[examples] SVG Straight-Skeleton

Hi,
I am opening an issue to provide an example on how to generate a Straight-Skeleton via SVG. It does not contain the actual lines of the straight skeleton, but some tricks on how to generate it as a height map. It includes boundary as well as a hole.
Feel free to use it as a HowTo thi.ng!
Would have liked to try to use geom-isolines to get a vector representation of it, but it seems its better to use hiccup-canvas instead. So there are still possibilities to extend the example. But for the current use, it should work.
SVG Polygons

Polygons with Gradients

Polygons with Darken-Filter

Polygons with Mask - Straight Skeleton

index.ts

import * as svg from<EMAIL_ADDRESS>import { $compile } from<EMAIL_ADDRESS>import * as vec from<EMAIL_ADDRESS>
/**
 * end result will be nearly a straight skeleton
 * that is generated via svg gradients, filters and masks
 */

/** we only create gradients up to a specified max length */
const MAX_LENGTH = 300;

/**
 *
 * straight skeleton parts (boundary or hole)
 *
 * we will create polygons for each line
 * they will be extrusions inside to the polygon
 * all getting a gradient pointing in that same direction
 * afterwards we will use a darken filter
 * this way, only the darkest pixel will be shown
 * and the result will look pretty much like a straight skeleton
 *
 * however on concave corners
 * we have an edge case.
 * our extrusion wont go around the corner,
 * but we can use a bisect vector to change the offset
 * direction of the extrusion.
 *
 *
 * so we offset the line perpendicularly
 */
const createStraightSkeletonPart = (path: vec.Vec[]) => {
	/**
	 * we add the first three points to the end, so we can easily cycle through points
	 * to create bisect vectors for each line
	 */
	const cyclicPath = [...path, ...path.slice(0, 3)];

	const svgPolys = path.map((_, i) => {
		/** get points for bisecting vectors */
		const prev = cyclicPath[i];
		const start = cyclicPath[i + 1];
		const end = cyclicPath[i + 2];
		const next = cyclicPath[i + 3];
		const dir = vec.asVec2(vec.normalize([], vec.sub([], end, start)));
		/** we create bisect vectors at start and end
		 * currently they have a scale of MAX_LENGTH
		 * could be improved by offseting to MAX_LENGTH perpendicular to start-end line
		 * via some trigonometry if we get the correct angle.
		 */
		const cross = vec.normalize([], [-dir.y, dir.x], MAX_LENGTH);

		const bisectStart = vec.cornerBisector2(
			null,
			prev,
			start,
			end,
			MAX_LENGTH
		);
		const bisectEnd = vec.cornerBisector2(
			null,
			start,
			end,
			next,
			MAX_LENGTH
		);

		/** if our bisect vectors are on concave corners
		 * we will use them to offset the start / end
		 * otherwise we just use the cross vector
		 */
		const bisectAngleStart = vec.angleBetween2(dir, bisectStart);
		const bisectAngleEnd = vec.angleBetween2(dir, bisectEnd);
		const startOffset = vec.add(
			[],
			start,
			bisectAngleStart > Math.PI / 2 ? bisectStart : cross
		);
		const endOffset = vec.add(
			[],
			end,
			bisectAngleEnd < Math.PI / 2 ? bisectEnd : cross
		);

		/** we need to rotate the final polygon,
		 *  since our linear-gradient goes from top to bottom.
		 *  we rotate our points so start and end point are in line with [1,0]
		 * afterwards we rotate the polygon back into position
		 * */
		const radiansAngle = vec.angleBetween2(dir, [1, 0], false);
		const degreesAngle = (radiansAngle * 180) / Math.PI;
		const rotatedPts = [start, end, endOffset, startOffset, start].map(
			(pt) => {
				return vec.rotateAroundPoint2([], pt, start, radiansAngle);
			}
		);

		/** create svg polygon using our gradient
		 * and rotating it back in position
		 */
		return svg.polygon(rotatedPts, {
			fill: "url(#gradient)",
			transform: `rotate(${-degreesAngle})`,
			"transform-origin": `${start.x} ${start.y}`,
		});
	});
	return svgPolys;
};

// boundary has winding order clock wise
// geojsons standard might be other way around... 🙈
const boundary = [
	[50, 50],
	[400, 50],
	[400, 400],
	[600, 600],
	[400, 600],
	[50, 400],
].map((v) => vec.asVec2(v));
const boundarySkeletonPart = createStraightSkeletonPart(boundary);
// hole has winding order counter clock wise
const hole = [
	[200, 300],
	[200, 400],
	[300, 400],
	[300, 300],
].map((v) => vec.asVec2(v));
const holeSkeletonPart = createStraightSkeletonPart(hole);

/**
 * now we create our svg
 */
$compile(
	svg.svg(
		{ width: "100%", height: "100%", viewBox: "0 0 700 700" },
		/**
		 * add definition for linear gradient
		 */
		svg.defs(
			svg.linearGradient(
				"gradient",
				[0, 0],
				[0, 1],
				[
					[0, "black"],
					[100, "white"],
				]
			)
		),
		/**
		 * add blend mode for polygons
		 */
		["style", {}, "polygon {mix-blend-mode: darken;}"],
		/**
		 * mask skeleton parts by the boundary
		 */
		["mask", { id: "mask" }, svg.polyline(boundary, { fill: "#fff" })],
		svg.group(
			{
				mask: "url(#mask)",
			},
			...boundarySkeletonPart,
			...holeSkeletonPart
		),
		svg.polyline(boundary, { strokeWidth: 1, stroke: "#f00" }),
		/**
		 * and now lets fill our hole and we are done
		 */
		svg.polyline(hole, { strokeWidth: 1, stroke: "#f00", fill: "#fff" })
	)
).mount(document.getElementById("app"));

@dennemark Sorry for the delay about getting back to you about your straight skeleton. Not forgotten about it. Also, if you're not after extracting the actual geometry of the skeleton, you might find the https://thi.ng/distance-transform package a more simple alternative approach...

🙄thi.ng offers too many algorithms! Super useful!
Distance-transform should be combinable with geom-isolines, I guess.
My approach definitely has some weaknesses, but since I know every line, I can scale the gradient for each of them differently, allowing me to make it weighted. Though I would have to add more gradients in that case.


Fix for #114 - NPE when coercing null enum value in BatchedExecutionStrategy

Fix for https://github.com/andimarek/graphql-java/issues/114 NPE when coercing null enum value in BatchedExecutionStrategy

I don't think null is a valid value in GraphQL (see http://facebook.github.io/graphql/#sec-Types.Non-Null).
What do you think?
Thanks

Yes, null is not a valid input value but it is a valid result value for enum.
The test I added tried to follow the FunWithStringsSchemaFactory test strategy but in this case it might be a little confusing. Let me try to explain.
TheLegal null value for enum test checks that the execution strategies coerce a null enum result value.
The stringObjectValueFetcher takes a string as source and if the source value is "null" it transforms it to null. All the other cases it just returns the same string.
Does that make sense?

It does make some amount of sense but is still confusing.  Can you rewrite your test to make a clearer separation between input coercion and result coercion?
I do think that "null" is a valid thing to try to coerce to an enum result, maybe null too (though not in the base GraphQLEnumValueDefinition).
However, your change to handlePrimitives has the side effect of now all primitives return null without coercion.  The spec says in 3.1.8 that

In all of the above result coercion, null was considered a valid value.

So really we should be allowing the result coercion to attempt to take place if null, and fix the NPE someplace else.  You either need a null check in getNameByValue or someplace else.
This should be good:
        if (value == null) {
            for (GraphQLEnumValueDefinition valueDefinition : valueDefinitionMap.values()) {
                if (valueDefinition.getValue() == null) return valueDefinition.getName();
            }
        }
        for (GraphQLEnumValueDefinition valueDefinition : valueDefinitionMap.values()) {
            if (value.equals(valueDefinition.getValue())) return valueDefinition.getName();
        }

And for easy reference here is Enum Values Spec

And now..I'm confused. What does the following mean? From the spec: An enum value cannot be “null” in order to avoid confusion. GraphQL does not supply a value literal to represent the concept null.
Does it mean an enum result value is never null and therefore has to be one and only one of the declared values?
If yes, ExecutionStrategy is too lenient and we probably need to change the ExecutionStrategy.completeValue to disallow null by moving completeValueForEnum above the null check
If not we are back to our original issue and BatchedExecutionStrategy shouldn't throw a NPE.
@danielkwinsor: Good catch, indeed the check shouldn't be in BatchedExecutionStrategy.handlePrimitives for the reason you stated. Now if we want to be consistent with the other handleXxx methods we could probably do the null check before calling BatchedExecutionStrategy.coerce. Like so https://github.com/graphql-java/graphql-java/pull/115/commits/cd6848f0648c88903688de32149e3af2ae797ea2.
I also simplified the test method to only showcase the enum null result value coercion. We can clearly see the regular ExecutionStrategy let null return null but not the BatchedExecutionStrategy.
Either way, we need to make the strategies consistent.

At this time, I see the issue is only when trying to give back a result that is null.  Null is a valid thing to return from a DataFetcher, even a DF for an enum.  The NPE happens when attempting to coerce this null value into some some name as in getNameByValue.
So getNameByValue needs a null check, it should go here and not in BES.  The only question to me is whether we detect null and return null (to avoid NPE on value.equals()) or really attempt to match up null with a GraphQLEnumValueDefinition with value Object == null.
Can you please limit your changes to a null check in getNameByValue and verify whether there are any other breaking places?

@danielkwinsor Made the changes per your comment. I added additional tests in GraphQLEnumTypeTest to cover the new code.


add clara-rules example project

I created an example using graalvm to compile a clara rules session, add some facts, and fire the rules.

thank you


[docs] withGlobalTauri for plugins

If I want to access tauri fs API through Vanilla JS, I would use window.__TAURI__.fs, by enabling withGlobalTauri.
Though I'm also using fs-watch plugin, how would I use it through the window.__TAURI__ variable?

I marked this as a feature request since we don't have this implemented. In the meantime you could download this file https://github.com/tauri-apps/tauri-plugin-fs-watch/blob/v1/dist-js/index.min.js into your project.


[Feature] jdk-threading-plugin need judge TraceContext exists

Search before asking

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

Description
在bootstrap-plugin/jdk-threading-plugin，多线程实现类在执行Run 或 Call 方法时，一定会产生Trace上下文（上游有则依赖，如果没有，则创建），但在bootstrap-plugin/[jdk-threadpool-plugin]中，线程池执行内部方法时，会依赖上游trace上下文，即如果没有Trace上下文，则不会创建trace上下文。这里存在类似场景但实现不一致的情况。
在我们实际项目中，我们并不希望多线程实现类在执行方法时创建Trace上下文，而是希望依赖上游的Trace上下文（有则创建，没有则无需创建），跟线程池增强保持一致。因此这里期望增加一个开关配置，由使用方来控制 或者完全依赖上游的Trace上下文。
一些问题场景：多线程类执行内部Run方法如果有个Kafka consumer 消费消息时，会出现traceId 重复的情况。
In bootstrap-plugin/jdk-threading-plugin, multithreaded enhance must generate a Trace context，but In bootstrap-plugin/jdk-threadpool-plugin，the threadpool relies on the upstream trace context when executing internal methods, that is, if there is no Trace context, no trace context is created. There are similar scenarios but inconsistent implementations.
In our actual project, we do not want a multithreaded implementation class to create a Trace context when executing  method. Instead, we want to rely on an upstream Trace context, consistent with  bootstrap-plugin/jdk-threadpool-plugin,So it is expected to add a switch configuration that is controlled by the user or completely dependent on the upstream Trace context .
some case A multithreaded class executing an internal Run method will repeat the traceId if there is a Kafka consumer consumption message.
Use case
public class ThreadingMethodInterceptor implements InstanceMethodsAroundInterceptor {
@Override
public void beforeMethod(final EnhancedInstance objInst, final Method method, final Object[] allArguments,
    final Class<?>[] argumentsTypes, final MethodInterceptResult result) {
    //CN:没有判断Trace上下文是否存在，建议增加一个开关配置或者增加一个上下文依赖判断
   // En：do not judge the TraceContext exist, I advised to here add a switch configuration or add juage TraceContext exist
    AbstractSpan span = ContextManager.createLocalSpan(generateOperationName(objInst, method));
    span.setComponent(ComponentsDefine.JDK_THREADING);

    final Object storedField = objInst.getSkyWalkingDynamicField();
    if (storedField != null) {
        final ContextSnapshot contextSnapshot = (ContextSnapshot) storedField;
        ContextManager.continued(contextSnapshot);
    }

}

....
}
Related issues
Are you willing to submit a PR?

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

Code of Conduct

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

If you want to do something, you could change on your own.
From a general use perspective, I can't agree with you. A trace context should be created if absent.


cssnano through postcss-loader (WebPack)

I would like to use CSSNano's powers through WebPack...but I just can't get the loader to pick up cssnano.
I tried a variation of calling cssnano as a function or just supplying it inside the return array; like so:
    postcss: function(){
        return [
            cssnano()
        ];
    },

Would be nice if someone could help me here! :)

css-loader integrates cssnano already. I'm not familiar with postcss-loader. :smile:

Oh. o.o That I did not know. Thanks for your response anyway!
postcss-loader picks up custom plugins…and looking at css-loader, it uses a few postcss stuff too.

:+1:

css-loader integrates cssnano already. I'm not familiar with postcss-loader. 😄

I read this and I trusted you, but unfortunately this is not correct :D. I tested it right now.
Here you can see the differences between style-loader, css-loader, sass-loader to style-loader, css-loader, postcss-loder, sass-loader
{code:css}
/* Minimized CSS w/o postcss-loader & w/o cssnano /
body{margin:0;border:1px solid rgba(0,0,0,0.5);font-family:Arial}p{margin:0}
/ Minimized CSS w/ postcss-loader & w/ cssnano */
body{border:1px solid rgba(0,0,0,.5);font-family:Arial}body,p{margin:0}
{code}


NIFI-1896 Refactoring nifi-api module to only be those items needed for implementing extensions

NIFI-1896 Refactoring nifi-api module to only be those items needed for implementing extensions.
This PR consists of multiple commits to show the process and discrete steps in the overall effort.  Can squash when reviewed and validated.

@apiri can you please rebase.  the big deprecation cleanup needs to be factored into this.

@joewitt Certainly... working on that at the moment.  Just wanted to have a copy pushed some place in case of emergency.


TS support in routes

This is the same as #881, but after rebasing branch "anurbol:ts" to "adonisjs:develop".
@thetutlage Sorry for bothering, but can you provide a little assistance. Look, there are still many other commits other than mine, in this PR. I believe this is due to "adonisjs:typescript" branch is behind "adonisjs:develop"? So syncing the former with the latter would make my PR look good?

Coverage decreased (-0.2%) to 96.296% when pulling af09aeee00c13b11221447c162a3a391c9c57390 on anurbol:ts into dc3b91fa30aecd1834f00b390959cd4190a92497 on adonisjs:typescript.

rebasing branch "anurbol:ts" to "adonisjs:develop"

You have to do other way around. Rebase adonisjs:develop to anurbol:ts.
This is how exactly it should work.

The develop branch of the AdonisJs is the most updated one.
You typescript branch must rebase it once and then you can make your own changes.

After a while typescript branch will not be in sync with the develop branch (which is fine). The nature of code in typescript branch is so different from the develop branch, that we cannot keep them in sync.

It's seems that I've done exactly what you said. Also it seems we are talking about the same, but putting opposite meaning in "rebase to". To clarify, this is what I've done:

forked adonisjs/adonis-framework to anurbol/adonis-framework
cloned to local machine, created anurbol:ts branch
edited code in that branch
added remote upstream with url https://github.com/adonisjs/adonis-framework.git
did git pull --rebase upstream develop (no conflicts appeared)
commited and pushed back to anurbol:ts
made this PR from anurbol:ts to adonisjs:typescript

Can you say what was wrong in those steps, please? Sorry for consuming your time

Hey @anurbol! 👋
Thanks for your inputs!
@thetutlage is currently working on the rewrite and we will mostly refactor the Router. Therefore, I'm closing this PR since it will be outdated with the new Router.


fix: TextBox, NumberBox, PasswordBox Placeholder Not Working Properly.

Pull request type

Please check the type of change your PR introduces:

[ ] Update
[x] Bugfix
[x] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[x] Documentation content changes

What is the current behavior?

When Password is set before setting PlaceholderEnabled, both PlaceholderText and Password will appear simultaneously.
If PlaceholderEnabled is false and PlaceholderText is not empty, clearing Text will still display PlaceholderText.

Issue Number: #1043
What is the new behavior?

fix this bugs.
If PlaceholderEnabled is set to false and PlaceholderText is not empty, clearing Text will not display PlaceholderText.

Other information
Added a new dependency property CurrentPlaceholderEnabledProperty.

I don't understand why the default value of PlaceholderEnabled is true, and when we assign true to it again, both Password and TextBox will be displayed at the same time.


Make cdylib only build when C API required

There's some problems with compiling hyper as a cdylib (https://github.com/rust-lang/rust/issues/82151), and even without problems, it's extra compilation work if you don't need to build a C library. The goal is to make it so users can opt-in to building a cdylib, instead of it being always on. To that end, we've pushed a bit in the tooling to allow this, and here's the steps that need to be done:

[x] Open an RFC to allow cargo rustc --crate-type cdylib (https://github.com/rust-lang/rfcs/pull/3180)
[x] RFC is approved and merged
[x] Feature is added to cargo (One PR)
[ ] https://github.com/rust-lang/cargo/issues/10083
[ ] Remove cdylib from hyper's Cargo.toml manifest

It's now possible in nightly to enable this at runtime:
cargo rustc -Z unstable-options --crate-type cdylib

Since the C API is "experimental", perhaps we can require that nightly cargo be used already...

@bagder how do you feel about using "nightly" cargo. If installing Rust with rustup, you can just run rustup install nightly and then run cargo +nightly blah blah (or rustup default nightly to skip needing to add +nightly for a directory).
The background here is that currently hyper sets in its manifest to build both a Rust lib (rlib) and a C lib (cdylib) at the same time. This is wasteful, and causes some problems for people building Rust in some environments. But it's the only "stable" way to specify library type. We've added the ability to cargo to specify this at command-line time, but it will take a while to become part of "stable" cargo. By using this now, we can a) fix some of those other Rust builds, and b) test the nightly feature so it can become stable.

Whatever helps you go about this in a more convenient manner I will adapt to. Using nightly like this sounds totally doable in my end!


Reflect Apple's OS rebranding

Same as https://github.com/exercism/java/pull/1505 ;-)

Thanks for that @katrinleinweber 🙂

You're welcome :-)


Add a cache fallback strategy

When CacheFallback property is set to true, the cached result is
returned no matter what in case of network error with the client
request.

Thank you, this kind of functionality is certainly useful, but could this be done by checking for stale-if-error on the request instead? https://tools.ietf.org/html/rfc5861#section-4
If nothing else, it counts any 50X status as an error too - which I think would be useful behaviour.
Thoughts from anyone watching are always appreciated! :)

Sweet, I was not aware of this extension. I’m all for adding support for it. I will push it into this PR.

Here it is, tell me what you think

Added support for lifetime

Added 500+ responses support

@gregjones PTAL

Hi @gregjones, are you ok to merge this PR? We have some projects depending on it.

I got in a bit of a mess with git and two PRs, but I think it's sorted now? :/


Permission to use graphics for Team Data Science Process  in a university course book / script ?

Dear all, I'm with IUBH, a German university of applied sciences focusing on distance learning. We're currently establishing new study programmes in Data Science and AI. As part of the material to cover I would like to ask whether we may include the graphics on the TDSP page, in particular the Data Science Lifecycle illustration.
Many thanks
Ulrich

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

ID: 094e56c7-d8dc-1e80-1154-3a369d1a1c82
Version Independent ID: 768d235a-9571-329b-1195-62a02ff1ed87
Content: What is the Team Data Science Process?
Content Source: articles/machine-learning/team-data-science-process/overview.md
Service: machine-learning
Sub-service: team-data-science-process
GitHub Login: @marktab
Microsoft Alias: tdsp

@ukerzel The terms of use of our documentation is available here. The guidelines for the usage of images is only restricted to own, personal, non-commercial use only.

Hi,
many thanks - I know, hence my question...
We are a state accredited but private university of applied sciences. It
would be great to include the figure into our teaching material (with
proper reference and citation of course) but it would be not "my" own use
as it's intended for the students. Whether or not it's commercial is
probably more difficult to discern. Unlike a state-owned university we do
charge fees and we're privately held.
Do your TOU cover our case or can we obtain permission to include the
graphics in our teaching materials?
Many thanks in advance
best wishes
Ulrich
On Fri, 25 Oct 2019 at 11:42, RohitMungi-MSFT<EMAIL_ADDRESS>wrote:

@ukerzel https://github.com/ukerzel The terms of use of our
documentation is available here
https://docs.microsoft.com/en-us/legal/termsofuse. The guidelines for
the usage of images is only restricted to own, personal, non-commercial use
only.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-docs/issues/41473?email_source=notifications&email_token=ALVYCIQN4QBMQSHYW3GZI3LQQK5QVA5CNFSM4JFABJ52YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECH2ATA#issuecomment-546283596,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALVYCIWYP7JVOFCZWHTEOE3QQK5QVANCNFSM4JFABJ5Q
.

@marktab Hi, do you have any idea about this ? Thanks.

@ukerzel The TOU covers all content from microsoft docs repository. @marktab could you please guide us if content in the document can be used as per the TOU policy?

@ukerzel Thanks for your interest.  Our terms of use are as stated, personal and non-commercial use.
If you would like to use the information from a graphic for commercial use, then I suggest making your own new graphics with the same content.  I have personally made my own graphics versions of TDSP using PowerPoint mostly because the ones we have are too detailed for some uses.   Often new graphics can match your own design templates.
We are happy you like TDSP and would like to include these ideas in your courses.  We encourage you to tell your students and customers about the website (by providing a citation) because we continue to work on language and concepts which have value for the data science community.  Your feedback and ideas for improvement are welcome.  Hope this helps.

@ukerzel We hope the above guidance on the usage works for you. We will now proceed to close the issue. Please do let us know in case of any queries.


mesh start fails for gRPC handlers with enums

Issue workflow progress

Progress of the issue based on the
Contributor Workflow

[x] 1. The issue provides a reproduction available on
Github,
Stackblitz
or
CodeSandbox

Make sure to fork this template and run yarn generate in the terminal.
Please make sure Mesh package versions under package.json matches yours.

[ ] 2. A failing test has been provided
[x] 3. A local solution has been provided
[ ] 4. A pull request is pending review

Describe the bug
mesh start fails for gRPC handlers with enums. mesh dev and mesh build both work, but mesh start fails because type._valueLookup is null, so type._valueLookup.set can't be called
To Reproduce Steps to reproduce the behavior:
Go to https://stackblitz.com/edit/github-acjw4e-rs3wnu?file=.meshrc.yml
Run npx mesh build && npx mesh start
Expected behavior
The command should run a graphQL mesh server
Environment:

OS: MacOS
@graphql-mesh/grpc: 0.100.0
NodeJS: 18.20.3

Additional context
A similar issue was fixed in REST process directive, apparently because of an incompatibility with graphql-js 16.9.0
Patching a similar fix in the grpc handler fixed the issue locally for me. I'm happy to provide this fix as a PR.

Thanks for the feedback!
A PR with the test and fix would be great!


Close channel after task.Run returns

This commit closes the done channel after task.Run returns to ensure that goroutines properly terminate. Without this closure, if ctx.Done returns early without closing the channel, other goroutines waiting on the channel might continue running, leading to unexpected behaviors or memory leaks.
To handle potential issues with closing the channel, such as sending an error to a closed channel, a recover statement is added. This ensures that any panic caused by closing the channel is gracefully handled.

Possible the design of task.Run is wrong, it will not just blocking channels, and it doesn't always return the first error.

I'm sorry, there is no problem here. I misunderstood default in select.


rsz: add detailed_routing as parasitics source

This first step only adds detailed_routing as a new source of parasitics, and is used mainly to avoid calculating the parasitics from wire load models.
In the first iteration on each net, the droute parasitics are used, but once the net is changed, later iterations will use the global routing parasitics for estimation. At some point we should be able to detail route again specific nets inside the repair_timing flow.
Last, I'm checking if the design is routed to define the parasitics source as detailed_routing. It doesn't seem the ideal way, but I didn't find any functions in STA to detect there are parasitics present in its internal structures. Another option would be have a command that the user explicitly calls to define detailed_routing as the parasitics source.
I'm open to suggestions on how to improve this part of the code.

Even if you could ask sta if it has parasitics, it wouldn't know the source of them.


Better error message for broken statuses module (had "TypeError: Cannot read properties of undefined (reading '302')")

Hi! I had an odd situation where I messed up my local copy of the "statuses" module, apparently a few months ago, and discovered it only today because express failed with

TypeError: Cannot read properties of undefined (reading '302')

in lib/response.js line 963.
Could we add a sanity check in express initialization that checks if statuses.message is at least truthy, and otherwise complain that the statuses module seems broken or incompatible and should be reinstalled? I could make a PR for that.

Hi, I am sorry you encountered that, if course. Unfortunately that type of scenario can happen to any dependency, and adding all these checks is just going to be tedious and error prone.
Npm has a built in way to detect this: run npm ls and will will exit with a non zero exit code and tell you which dependency is invalid in your install tree.


8-bit bytestrings vs. Unicode strings in Python: fix this once and for all

I've seen issue #25 and gotten the most recent version with the related update, but I'm still getting similar errors still however now in arbitrator.py
I belive this is one of the problem files WoodyHallæ°åç_0.jpg
Python 2.6.5
Ubuntu 10.04.1 LTS
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "arbitrator.py", line 289, in run
self.__process_db_queue()
File "arbitrator.py", line 634, in __process_db_queue
self.dbcur.execute("SELECT COUNT(*) FROM synced_files WHERE input_file=? AND server=?", (input_file, server))
ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings.

Thanks ykyuen,
Your fork worked perfectly for me.

The (hopefully) last Unicode problem has been fixed at #90.

@ykyuen Please let me know if you have any more suggestions or bugs :)

First of all Wim, kudos to you for creating this fantastic tool! :)
I haven't been able to resolve the UnicodeDecodeError issue. However, a few grey hairs later I was able to come up with a good enough workaround (for my use case) which has enabled me to use File Conveyor with Rackspace Cloud Files.
For my server setup (Ubuntu 10.04, Python 2.6.5 and latest File Conveyor), I encountered two UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 2: ordinal not in range(128) issues.
First issue: The daemon would throw an exception before it attempted to transfer any files. If you encounter the same problem, check your server's locale settings with locale. I wish I had checked this first! When I ran locale, the following errors were reported:
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

Adding export LC_ALL="en_US.UTF-8" to my .bashrc file (don't forget to reload with . ~/.bashrc) resolved the issues reported by locale and File Conveyor would then (in part) work.
Second issue: The daemon would throw an exception when it attempted to transfer a filename which contained special characters. I tried in vain to fix this but I was unsuccessful (until today I hadn't written a single line of python code).
Creating a solution that worked with Rackspace Cloud Files was non-negotiable, so I set out to create an acceptable workaround for a Drupal 7 site that has over 50GB of images. I patched arbitrator.py to skip files that I knew would cause the daemon to thrown an exception:
diff --git a/fileconveyor/arbitrator.py b/fileconveyor/arbitrator.py
index 394b4b4..6fa3e5a 100644
--- a/fileconveyor/arbitrator.py
+++ b/fileconveyor/arbitrator.py
@@ -347,6 +347,7 @@ class Arbitrator(threading.Thread):
         while self.discover_queue.qsize() > 0:

             # Discover queue -> pipeline queue.
             (input_file, event) = self.discover_queue.get()
             item = self.pipeline_queue.get_item_for_key(key=input_file)
             # If the file does not yet exist in the pipeline queue, put() it.
@@ -400,6 +401,16 @@ class Arbitrator(threading.Thread):
             (input_file, event) = self.filter_queue.get()
             self.lock.release()

+            # Skip filenames which we know will not work with File Convyeor or the CDN module.
+            import re
+            path, filename = os.path.split(input_file)
+            regexp = re.compile(r'^[a-zA-Z0-9_ .-]+$')
+            if regexp.search(filename) is None:
+                import codecs
+                output_file = codecs.open('skipped_files.txt', 'a', 'utf8')
+                output_file.write(input_file + '\n')
+                continue
+
             # The file may have already been deleted, e.g. when the file was
             # moved from the pipeline list into the pipeline queue after the
             # application was interrupted. When that's the case, drop the

With this patch in, the daemon doesn't throw an exception and will transfer the files that it is able to transfer. The patch also logs the problematic files to skipped_files.txt which gives me / the client a list to fix. For a Drupal 7 site, [the transliteration module] (https://www.drupal.org/project/transliteration) gives you the option to bulk rename files. I have installed this onto the site I'm working with to take care of new files. The bulk rename function doesn't work for me but I believe that's an isolated issue related to the images stored in complex parent and child field collections.


Promotion song!

Hi Marc!
Surprise PR here, sorry for that.
TLDR: Rick was singing 'speaker buddy' instead of 'santa baby' for a couple days while we were at a conf in Belgrade, I promised him to write full lyrics and send them to you in a PR. (In return Rick promised to record it at some moment :)
I Don't know if you want it in the repo, that's your choice, but at least I held my end of the deal 😂

This is hilarious! 🤣
The only thing I'd like before merging, is a YouTube video where you two sing this 😁.

I was afraid of that 😂
I'll check with @rickvdbosch and book a studio with autotune equipment 👍🏽


Why does the frame drop occur when record color frame and depth frame.

Before opening a new issue, we wanted to provide you with some useful suggestions (Click "Preview" above for a better view):

Consider checking out SDK examples.
Have you looked in our documentations?
Is you question a frequently asked one?
Try searching our GitHub Issues (open and closed) for a similar issue.

All users are welcomed to report bugs, ask questions, suggest or request enhancements and generally feel free to open new issue, even if they haven't followed any of the suggestions above :)

Required Info

Camera Model
{ D435 }

Firmware Version
( newest )

Operating System & Version
{ Win 10 }

Platform
PC/ Zotac barebone PC

SDK Version
{ librealsense 2.10.4 }

Language
{ opencv/python }

Issue Description
<Describe your issue / question / feature request / etc..>
Why does the frame drop occur when record color frame and depth frame.
The program I want is as follows.
First, record color frame and depth frame at 60fps
second, color and depth frames are called for image processing.
However, filter application and recording will cause the frame drop
How can i fix this problem?
please help..
source code
pipeline = rs.pipeline()
config = rs.config()
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 60)
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 60)
# config.enable_device_from_file("workd.bag")
_recoder = config.enable_record_to_file("./work.bag")
pipeline.start(config)

# dec_filter = rs.decimation_filter()
# spat_filter = rs.spatial_filter()
# temp_filter = rs.temporal_filter()
# disparity = rs.disparity_transform()

try:
    while True:

        # Wait for a coherent pair of frames: depth and color
        frames = pipeline.wait_for_frames()
        depth_frame = frames.get_depth_frame()
        color_frame = frames.get_color_frame()
        if not depth_frame or not color_frame:
            continue

        ## 30fps
        # filtered = dec_filter.process(depth_frame)
        ## 13fps
        # filtered = spat_filter.process(depth_frame)
        ## 53fps
        # filtered = disparity.process(depth_frame)
        ## 60fps
        # filtered = temp_filter.process(depth_frame)

         # filtered_image = np.asanyarray(filtered.get_data())
         depth_image = np.asanyarray(depth_frame.get_data())
         color_image = np.asanyarray(color_frame.get_data())

         depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)
         # filtered_colormap = cv2.applyColorMap(cv2.convertScaleAbs(filtered_image, alpha=0.03), cv2.COLORMAP_JET)
         colormap = cv2.applyColorMap(cv2.convertScaleAbs(color_image, alpha=0.03), cv2.COLORMAP_JET)

         # Stack both images horizontally
         images = np.hstack((depth_colormap, colormap))

         cv2.imshow('video', images)

 finally:
     # Stop streaming
     pipeline.stop()

The subject of slow running speed or missed frames has come up before on the other RealSense support forum.  The discussion linked to below may be useful to you.
https://communities.intel.com/message/553003#553003

Thank you for your reply.
I went to the link and i read it.
but There is only a C++ sample in the content.
Could you tell me the sample implemented as a python??

I am not personally experienced in Python programming unfortunately.  There is a general guide to For loops in Python though that may provide some guidance about how to convert the code for Python.
https://wiki.python.org/moin/ForLoop

[Realsense Customer Engineering Team Comment]
hi @suho-j,
would like to know if MartyG's suggestion work for you? thanks.

[Realsense Customer Engineering Team Comment]
Hi @suho-j,
Still observe this issue? If not, will close this.

The playback issue should be addressed.
We also noticed that on some low-end systems, the recorder can't keep up despite working with an SSD because the CPU doesn't handle the built-in frame compression. Usually compression is preferred because the bottleneck is the hard-drive, but we are adding an API to control it (#2687).
In any case, if you have follow-up questions or encounter any problem feel free to open new issues.


Favorites support?

Great node red integration, works fantastic!   Is there any plan to support playing Sonos favorites via command or must I reference the URI instead?

Thanks.
Sonos favorites are already supported. Use node "My Sonos" and command mysonos.export.item with payload the title of your favorite. The output can be used as inpurt for "Universal node" and command group.play.export
Favorites = the "My Sonos" tab in the offical SONOS App. Right?

Thank you.
On Wed, Dec 16, 2020, 10:30 AM H. Klages<EMAIL_ADDRESS>wrote:

Thanks.
Sonos favorites are already supported. Use node "My Sonos" and command
mysonos.export.item with payload the title of your favorite. The output
can be used as inpurt for "Universal node" and command group.play.export
Favorites = the "My Sonos" tab in the offical SONOS App. Right?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/hklages/node-red-contrib-sonos-plus/issues/120#issuecomment-746477808,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AILR7QV5TTIYWHP5SRRBKMDSVDHADANCNFSM4U57IXNA
.

Does it work for you? There are more information at the wiki


Help text has wrong encoding when "Beta: Use Unicode UTF-8 for worldwide language support" is enabled

Describe the bug
I'm using the Chinese Simplified version of Windows 10 with "Beta: Use Unicode UTF-8 for worldwide language support" enabled. Help text in java is still encoded with GBK, so it cannot be displayed correctly. Other texts shown by java.exe are also affected. I don't know if this happens for other languages or not.
I also tryed AdoptOpenJDK, and it also have this problem. So maybe this is an upstream bug? Where should i report this?
Thanks
Steps to reproduce the behavior:

Windows 10, Chinese Simplified
Enable "Beta: Use Unicode UTF-8 for worldwide language support" in control panel
java --help
See error

Expected behavior
Help text is shown correctly.
Screenshots

output of java --help, help text encoded with GBK while the system is using UTF-8
java-help.txt

Hi @everything411 - If this is also occurring with AdoptOpenJDK then the likely issue is with OpenJDK itself (or some common configuration that you need to set).  We'll see if we can reproduce and advise on next steps (or submit an upstream issue on your behalf).

@gdams could you take a look into this please and verify if this also occurs on Adoptium?

@gdams could you take a look into this please and verify if this also occurs on Adoptium?

fixed in latest Adoptium JDK17-beta. still wrong encoding for Adoptium JDK16 JDK11 and JDK8

@everything411 could you please check if this happens with the MS Build of OpenJDK binaries? Which versions the problem appears, which don't?

@brunoborges
MS Build of OpenJDK 17: the problem don't appear
MS Build of OpenJDK 11: the problem appears
so it seems that this problem is fixed in upstream jdk 17 but not in other versions of jdk?

Hi @everything411 @cyhhao
Could you please check if this issue is still happening with the packages published at microsoft.com/openjdk ?

@brunoborges
> chcp
Active code page: 65001

> java --version
openjdk <IP_ADDRESS> 2022-02-08 LTS
OpenJDK Runtime Environment Microsoft-31205 (build <IP_ADDRESS>+1-LTS)
OpenJDK 64-Bit Server VM Microsoft-31205 (build <IP_ADDRESS>+1-LTS, mixed mode)

> java --version
openjdk 17.0.3 2022-04-19 LTS
OpenJDK Runtime Environment Microsoft-32931 (build 17.0.3+7-LTS)
OpenJDK 64-Bit Server VM Microsoft-32931 (build 17.0.3+7-LTS, mixed mode, sharing)

the same result as before, ok for jdk17 and bad encoding for jdk11.
i also notice that javac's help text still broken in both jdk11 and jdk17. these texts are GBK-encoded and then printed to the UTF-8 console, leading to these "�"
> javac
�÷�: javac <options> <source files>
����, ���ܵ�ѡ�����:
  @<filename>                  ���ļ���ȡѡ����ļ���
  -Akey[=value]                ���ݸ�ע�ʹ�������ѡ��
  --add-modules <ģ��>(,<ģ��>)*
        ���˳�ʼģ��֮��Ҫ�����ĸ�ģ��; ��� <module>
                Ϊ ALL-MODULE-PATH, ��Ϊģ��·���е�����ģ�顣
  --boot-class-path <path>, -bootclasspath <path>
        �����������ļ���λ��

encoding of compiling error texts are bad, too, GBK-encoded text printed to UTF-8 console
> java .\test.java
.\test.java:7: ����: δ������쳣����FileNotFoundException; ���������в���������Ա��׳�
                InputStreamReader fileReader = new InputStreamReader(new FileInputStream(new File("not exist")), StandardCharsets.UTF_8);
                                                                     ^
1 ������
错误: 编译失败

and i also find that runtime exception texts encoding for jdk11 is ok but for jdk17 it is bad
for jdk11 "系统找不到指定的文件" means "No such file or directory" in english
> java .\test.java
Exception in thread "main" java.io.FileNotFoundException: not exist (系统找不到指定的文件)
        at java.base/java.io.FileInputStream.open0(Native Method)
        at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
        at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
        at Test.main(test.java:5)

for jdk17, "绯荤粺鎵句笉鍒版寚瀹氱殑鏂囦欢銆�" is meaningless, and it seems that "绯荤粺鎵句笉鍒版寚瀹氱殑鏂囦欢銆�" is the text "系统找不到指定的文件" encoded in UTF-8 is decoded as GBK, and then the GBK-decoded text is encoded in UTF-8 and printed to the UTF-8 console
> java .\test.java
Exception in thread "main" java.io.FileNotFoundException: not exist (绯荤粺鎵句笉鍒版寚瀹氱殑鏂囦欢銆�)
        at java.base/java.io.FileInputStream.open0(Native Method)
        at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
        at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
        at Test.main(test.java:5)

output of java.exe -XshowSettings:properties -version for jdk11
> java.exe -XshowSettings:properties -version
Property settings:
    awt.toolkit = sun.awt.windows.WToolkit
    file.encoding = GBK
    file.separator = \
    java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
    java.awt.printerjob = sun.awt.windows.WPrinterJob
    java.class.path =
    java.class.version = 55.0
    java.home = C:\Program Files\Microsoft\jdk-<IP_ADDRESS>-hotspot
    java.io.tmpdir = C:\Users\EVERYT~1\AppData\Local\Temp\
    java.library.path = C:\Program Files\Microsoft\jdk-<IP_ADDRESS>-hotspot\bin
(omitted)
        .
    java.runtime.name = OpenJDK Runtime Environment
    java.runtime.version = <IP_ADDRESS>+1-LTS
    java.specification.name = Java Platform API Specification
    java.specification.vendor = Oracle Corporation
    java.specification.version = 11
    java.vendor = Microsoft
    java.vendor.url = https://www.microsoft.com
    java.vendor.url.bug = https://github.com/microsoft/openjdk/issues
    java.vendor.version = Microsoft-31205
    java.version = <IP_ADDRESS>
    java.version.date = 2022-02-08
    java.vm.compressedOopsMode = Zero based
    java.vm.info = mixed mode
    java.vm.name = OpenJDK 64-Bit Server VM
    java.vm.specification.name = Java Virtual Machine Specification
    java.vm.specification.vendor = Oracle Corporation
    java.vm.specification.version = 11
    java.vm.vendor = Microsoft
    java.vm.version = <IP_ADDRESS>+1-LTS
    jdk.debug = release
    line.separator = \r \n
    os.arch = amd64
    os.name = Windows 11
    os.version = 10.0
    path.separator = ;
    sun.arch.data.model = 64
    sun.boot.library.path = C:\Program Files\Microsoft\jdk-<IP_ADDRESS>-hotspot\bin
    sun.cpu.endian = little
    sun.cpu.isalist = amd64
    sun.desktop = windows
    sun.io.unicode.encoding = UnicodeLittle
    sun.java.launcher = SUN_STANDARD
    sun.jnu.encoding = GBK
    sun.management.compiler = HotSpot 64-Bit Tiered Compilers
    sun.os.patch.level =
    sun.stderr.encoding = cp65001
    sun.stdout.encoding = cp65001
    user.country = CN
    user.dir = C:\Users\everything411
    user.home = C:\Users\everything411
    user.language = zh
    user.name = everything411
    user.script =
    user.timezone =
    user.variant =

openjdk version "<IP_ADDRESS>" 2022-02-08 LTS
OpenJDK Runtime Environment Microsoft-31205 (build <IP_ADDRESS>+1-LTS)
OpenJDK 64-Bit Server VM Microsoft-31205 (build <IP_ADDRESS>+1-LTS, mixed mode)

output of java.exe -XshowSettings:properties -version for jdk17
    file.encoding = GBK
    file.separator = \
    java.class.path =
    java.class.version = 61.0
    java.home = C:\Program Files\Microsoft\jdk-<IP_ADDRESS>-hotspot
    java.io.tmpdir = C:\Users\EVERYT~1\AppData\Local\Temp\
    java.library.path = C:\Program Files\Microsoft\jdk-<IP_ADDRESS>-hotspot\bin
(omitted)
        .
    java.runtime.name = OpenJDK Runtime Environment
    java.runtime.version = 17.0.3+7-LTS
    java.specification.name = Java Platform API Specification
    java.specification.vendor = Oracle Corporation
    java.specification.version = 17
    java.vendor = Microsoft
    java.vendor.url = https://www.microsoft.com
    java.vendor.url.bug = https://github.com/microsoft/openjdk/issues
    java.vendor.version = Microsoft-32931
    java.version = 17.0.3
    java.version.date = 2022-04-19
    java.vm.compressedOopsMode = Zero based
    java.vm.info = mixed mode, sharing
    java.vm.name = OpenJDK 64-Bit Server VM
    java.vm.specification.name = Java Virtual Machine Specification
    java.vm.specification.vendor = Oracle Corporation
    java.vm.specification.version = 17
    java.vm.vendor = Microsoft
    java.vm.version = 17.0.3+7-LTS
    jdk.debug = release
    line.separator = \r \n
    native.encoding = GBK
    os.arch = amd64
    os.name = Windows 11
    os.version = 10.0
    path.separator = ;
    sun.arch.data.model = 64
    sun.boot.library.path = C:\Program Files\Microsoft\jdk-<IP_ADDRESS>-hotspot\bin
    sun.cpu.endian = little
    sun.cpu.isalist = amd64
    sun.io.unicode.encoding = UnicodeLittle
    sun.java.launcher = SUN_STANDARD
    sun.jnu.encoding = GBK
    sun.management.compiler = HotSpot 64-Bit Tiered Compilers
    sun.os.patch.level =
    sun.stderr.encoding = UTF-8
    sun.stdout.encoding = UTF-8
    user.country = CN
    user.dir = C:\Users\everything411
    user.home = C:\Users\everything411
    user.language = zh
    user.name = everything411
    user.script =
    user.variant =

openjdk version "17.0.3" 2022-04-19 LTS
OpenJDK Runtime Environment Microsoft-32931 (build 17.0.3+7-LTS)
OpenJDK 64-Bit Server VM Microsoft-32931 (build 17.0.3+7-LTS, mixed mode, sharing)

i tried Temurin JDK 18 and java and javac is ok.
> java.exe
用法：java [options] <主类> [args...]
           （执行类）
   或  java [options] -jar <jar 文件> [args...]
           （执行 jar 文件）
   或  java [options] -m <模块>[/<主类>] [args...]
       java [options] --module <模块>[/<主类>] [args...]
           （执行模块中的主类）
   或  java [options] <源文件> [args]
           （执行单个源文件程序）

> javac.exe
用法: javac <options> <source files>
其中, 可能的选项包括:
  @<filename>                  从文件读取选项和文件名
  -Akey[=value]                传递给注释处理程序的选项
  --add-modules <模块>(,<模块>)*
        除了初始模块之外要解析的根模块; 如果 <module>
                为 ALL-MODULE-PATH, 则为模块路径中的所有模块。
  --boot-class-path <path>, -bootclasspath <path>
        覆盖引导类文件的位置

> java.exe" .\test.java
.\test.java:5: 错误: 未报告的异常错误FileNotFoundException; 必须对其进行捕获或声明以便抛出
                InputStreamReader fileReader = new InputStreamReader(new FileInputStream(new File("not exist")), StandardCharsets.UTF_8);
                                                                     ^
1 个错误
错误: 编译失败

However, runtime exception texts are still bad, the same problem as jdk17
Exception in thread "main" java.io.FileNotFoundException: not exist (绯荤粺鎵句笉鍒版寚瀹氱殑鏂囦欢銆�)
        at java.base/java.io.FileInputStream.open0(Native Method)
        at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
        at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
        at Test.main(test.java:5)

output of java.exe -XshowSettings:properties -version for jdk18
Property settings:
    file.encoding = UTF-8
    file.separator = \
    java.class.path =
    java.class.version = 62.0
    java.home = C:\Program Files\Eclipse Adoptium\jdk-<IP_ADDRESS>-hotspot
    java.io.tmpdir = C:\Users\EVERYT~1\AppData\Local\Temp\
    java.library.path = C:\Program Files\Eclipse Adoptium\jdk-<IP_ADDRESS>-hotspot\bin
(omitted)
        .
    java.runtime.name = OpenJDK Runtime Environment
    java.runtime.version = 18.0.1+10
    java.specification.name = Java Platform API Specification
    java.specification.vendor = Oracle Corporation
    java.specification.version = 18
    java.vendor = Eclipse Adoptium
    java.vendor.url = https://adoptium.net/
    java.vendor.url.bug = https://github.com/adoptium/adoptium-support/issues
    java.vendor.version = Temurin-18.0.1+10
    java.version = 18.0.1
    java.version.date = 2022-04-19
    java.vm.compressedOopsMode = Zero based
    java.vm.info = mixed mode, sharing
    java.vm.name = OpenJDK 64-Bit Server VM
    java.vm.specification.name = Java Virtual Machine Specification
    java.vm.specification.vendor = Oracle Corporation
    java.vm.specification.version = 18
    java.vm.vendor = Eclipse Adoptium
    java.vm.version = 18.0.1+10
    jdk.debug = release
    line.separator = \r \n
    native.encoding = GBK
    os.arch = amd64
    os.name = Windows 11
    os.version = 10.0
    path.separator = ;
    sun.arch.data.model = 64
    sun.boot.library.path = C:\Program Files\Eclipse Adoptium\jdk-<IP_ADDRESS>-hotspot\bin
    sun.cpu.endian = little
    sun.cpu.isalist = amd64
    sun.io.unicode.encoding = UnicodeLittle
    sun.java.launcher = SUN_STANDARD
    sun.jnu.encoding = GBK
    sun.management.compiler = HotSpot 64-Bit Tiered Compilers
    sun.os.patch.level =
    sun.stderr.encoding = UTF-8
    sun.stdout.encoding = UTF-8
    user.country = CN
    user.dir = C:\Users\everything411
    user.home = C:\Users\everything411
    user.language = zh
    user.name = everything411
    user.script =
    user.variant =

openjdk version "18.0.1" 2022-04-19
OpenJDK Runtime Environment Temurin-18.0.1+10 (build 18.0.1+10)
OpenJDK 64-Bit Server VM Temurin-18.0.1+10 (build 18.0.1+10, mixed mode, sharing)

Digression: Why do you want to enable this beta utf-8 option?

@imba-tjd linux and macos both set the default encoding to utf8. i need to share source codes with chinese characters between my windows machine and linux machine (wsl1 and wsl2 use utf-8, too).

Did you tried to input Chinese from stdin? Try this
System.out.println(new Scanner(System.in).nextLine());

You will find that it fails to read, if you enabled the beta utf8.

The issue https://bugs.openjdk.org/browse/JDK-8272352 might be relevant here; it was backported to OpenJDK 11.0.17 and Java 17.0.5 quite recently.
(Just passing by... I saw this thread as I was fixing Unicode problems in the NetBeans IDE.)

@everything411 Are you able to try with our latest 17.0.5 build?  As @eirikbakke mentions, the upstream issue seems to be fixed.

@karianna I can confirm that all bugs I reported here no longer exist now.


Changed Inverter. Now results are negative?

Hi all,
I am looking for an annual energy output form a project. I want to use the correct inverter.
I changed my inverter from ['ABB__MICRO_0_25_I_OUTD_US_208__208V_'] (default) to ['Chint_Power_Systems_America__CPS_SCA60KTL_DO_US_480__480V_'].
This was the only change.
My annual energy output is now heavily negative. Every hourly data point is negative.
Each non-daylight hour reads a -18 output that may come from the pnt input of 18. 'self consumption' (AC power consumed by inverter at night (night tare) to maintain circuitry required to sense the PV array voltage- from documentation)
Any ideas what is going on? Thanks.
Below are the specs on the two inverters.

Can you repost this question to the pvlib google group? https://groups.google.com/g/pvlib-python
I am almost certain this isn't an issue with pvlib code, you need to redefine your arrays. The Chint inverter is 60kW, with nominal DC input voltage 730, so you must have sufficient modules in series in the arrays. The ABB inverter is a micro-inverter that is fed by a single module.


Update s3-utils to 0.1.171 in scala-steward-dependencies

About this PR
📦 Updates uk.gov.nationalarchives:s3-utils from 0.1.169 to 0.1.171
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "uk.gov.nationalarchives", artifactId = "s3-utils" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "uk.gov.nationalarchives", artifactId = "s3-utils" }
}]

labels: library-update, early-semver-minor, semver-spec-patch, commit-count:1

Superseded by #49.


Feature/api version to beta2

switching to v1beta2
wrap sse query result

(Jove Github Bot) added it to the current sprint.


Export TCK logs in GitHub Action

Exports the logs of the different matrix builds as separate artifacts in case the corresponding build fails.
Adjusts the matrix build to keep running if one of the builds fails.
Adjusts the maven build command to suppress the download progress indicators.

So that you get an idea of what the exported logs for a failed build would look like, I created a separate PR on my fork that I rigged to always fail for JDK 8 and 17: https://github.com/tobous/db-jdo/pull/4
These are the results of the build: https://github.com/tobous/db-jdo/actions/runs/6936510666
At the bottom is the list of build artifacts, containing separat zips for the logs for the JDK 8 and JDK 17 build.
Please have a look at the files to ensure that all necessary log files are included. The current setup includes all files in tck/target/logs/.


Which is the latest?

com.sunny.CustomWebView-modified.aix ( the smaller one)
or
com.sunny.CustomWebView.aix
?

Hi @alanscot
Both are the latest versions but there is a little difference.
Original version adds your app in browser's list while modified version does not.


Refactor... stuff... Improve life bars

Improve formatting as well. This codebase is still in an intermediate state.

This is just a test to see how PRs look in github.


Add flags for customizing the transition time, etc

This could also be useful for #4.

Fixed in 2367969


ci: enable firefox headless env variable

I noticed that Firefox headless tests were not executing (while still returning a successful status) in CI. This PR makes an attempt to debug that to match execution when run locally:

The same tests run locally:

From the peanut gallery here... had a thought that maybe Firefox is just reporting its results differently. Although it doesn't say 1/7 done, 2/7 done, etc. it still takes some time and reports all the tests successfully. Some of the Chrome tests also don't take any time and complete in a similar time... just a thought.

From the peanut gallery here... had a thought that maybe Firefox is just reporting its results differently. Although it doesn't say 1/7 done, 2/7 done, etc. it still takes some time and reports all the tests successfully. Some of the Chrome tests also don't take any time and complete in a similar time... just a thought.

@frederickfogerty looks like you hit the nail on the head here. Forcing a failing test gets reflected in Firefox, so it looks like the 0/7 was just misleading.

@sherwinski glad I could help, and glad it all worked out! 😄


No back button when chat is open on mobile phone

When on mobile (samsung), cant go back to the room once chat is open, if i press back the browser just closes.
(Galaxy note 9, chrome)

You can press the chat button again. The Chatbutton is like a toggle.

Noice


How can we use for web application?

Is there anyway to make it work on website?

It is possible to run MediaPipe C++ calculators & graphs in webassembly and displayed on the web. We will be releasing this capability towards end of 2019.
What is your use case for running MediaPipe on the web?

I just wanted to try making AR application

Hi @mgyong can you plz share example for Hair segmentation on Web App, as you did for Android.
Thanks!!


doc - remove colons from sample decorator usage

Fix two examples in api_overview.rst where decorators are terminated
with a colon.

LGTM.


⚠ Bofrost.de has degraded performance

In 35ddb62, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1684 ms

Resolved: Bofrost.de performance has improved in 63a6cf5 after 11 minutes.


Rename onebox telemetry metadata fields

This PR renames a bunch of OneBox telemetry events metadata fields and make them camelcase.
This PR also removes the check isDotCom from the promptText private metadata field passed with the chat-question:executed event. None of the private metadata fields are sent to SG through the telemetery pipeline, so that data is still private, similar to the other present privateMetadata field. The only change is that the promptText will be recorded in the event_logs on that sourcegraph instance.
We need to remove the check so that we can selectively collect that field for the S2 instance, configured by a env var here: https://github.com/sourcegraph/cloud/pull/15143
Test plan
Make sure all the updated events are still recorded correctly.
Changelog

Hey @thenamankumar I thought we were only interested in collecting query (or now promptText) for the event onebox.intentCorrection, curious why the scope has changed to now include cody.chat-question?

@thenamankumar we should maybe sync on this tomorrow because I just removed the field all together after was told it was unused. https://github.com/sourcegraph/cody/pull/5558 Also there's a new way of testing these now


Unknown issue appears when installing requirements

Hey! I was checking your projects on github and came  across WAPresence. I tried it out but as soon as I download the requirements I'm met with this issue.
Mind giving me a hand?
https://pastebin.com/af34fnCr
Thanks!

To install winsdk, first, ensure you have the Desktop Development with C++ installed via the Visual Studio Installer. Additionally, I'm currently developing a new version that won't require winsdk. Stay tuned!


Popover setContent closes Popover after being opened with .show() or on hover

Prerequisites

[X] I have searched for duplicate or closed issues
[X] I have validated any HTML to avoid common problems
[X] I have read the contributing guidelines

Describe the issue
Whenever I update the content of a popover (e.g. after loading the final content from an API) after having opened the Popover manually it closes again after calling setContent().
Reduced test cases
https://codepen.io/dkhalil/pen/eYreLbQ
What operating system(s) are you seeing the problem on?
Windows
What browser(s) are you seeing the problem on?
Chrome
What version of Bootstrap are you using?
v5.2.1

setContent() destroys the popper and then shows it: https://github.com/twbs/bootstrap/blob/24f6e2764a557afdf0cabfc28067fe1078e0a0ee/js/src/tooltip.js#L338-L344
I'm not sure it is possible to set a new content without disposing the popper when it is already shown.
@GeoSot thoughts?
But I'm curious. A popover is linked to an action, so what would be the use case where we have an opened popover which must be updated on the fly? In other words, why the popover is not shown with the right content in the first place?

Well, it's only shown if it was already open: if (this._isShown()) {
As I mentioned in the issue, in my use case it's because I want to asynchronously load in the content when the popover is opened, first displaying a loading animation then the content.

Yep OK. Read it too quickly. I see your point.

quick answer: During the first effort, popper wasn't able to render the changed content properly. So the only way was to close it and re-render it

Okay, so I replaced setContent with this in my code now:
instance.tip.querySelector('.popover-body').innerHTML = result.data
instance.update()

That could be a fix in bootstrap as well, but I don't have the time right now to delve deep enough into the codebase to do a proper PR

Well, it's only shown if it was already open: if (this._isShown()) {
As I mentioned in the issue, in my use case it's because I want to asynchronously load in the content when the popover is opened, first displaying a loading animation and then the content.
Okay, so I replaced setContent with this in my code now:
instance.tip.querySelector('.popover-body').innerHTML = 'New Content'
instance.update()
That could be a fix in bootstrap as well, but I don't have the time right now to delve deep enough into the codebase to do a proper PR

But I'm curious. A popover is linked to an action, so what would be the use case where we have an opened popover which must be updated on the fly? In other words, why the popover is not shown with the right content in the first place?

A simple example: show the value of the input range


Has many relationship does not load existing values

Description
I have two models: Organization and OrganizationShippingAddress. On the Organization I have an HasMany relation for shipping addresses:
public function shippingAddresses(): HasMany
{
   return $this->hasMany(OrganizationShippingAddress::class);
}

In the organization.yaml blueprint I created the following field:
tabs:
  shipping_addresses:
    display: 'Shipping addresses'
    sections:
        fields:
          -
            handle: shipping_addresses
            field:
              resource: organization_shipping_address
              relationship_name: shippingAddresses
              type: has_many
              display: 'Shipping addresses'
              sortable: false

I expect to see the existing related models, but they don't show. I can select other models and create new ones, but after I save the organization the related models do not show up in the field.
Steps to reproduce

Create two models with an HasMany relationship
Add the HasMany field to model A
Create related models directly in the database
See if they show up in the field

Environment
Fatal error: Uncaught Error: Class "App\Console\Kernel" not found in vendor/statamic/cms/src/Console/Please/Kernel.php:11
I use Statamic 5.31, Laravel 11.27 and Runway 7.11

That's strange. They should be showing - I'll take a look when I'm back on Runway.

Fatal error: Uncaught Error: Class "App\Console\Kernel" not found in vendor/statamic/cms/src/Console/Please/Kernel.php:11

You'll need to update your please file after updating to Laravel 11: https://statamic.dev/upgrade-guide/4-to-5#updated-please-file-for-laravel


BUG: no map on back in ionic app

I'm submitting a ...  (check one with "x")

[ ] question
[x] any problem or bug report
[ ] feature request

If you choose 'problem or bug report', please select OS:  (check one with "x")

[x] Android
[ ] iOS

cordova information:  (run $> cordova plugin list)
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-googlemaps 2.3.3 "cordova-plugin-googlemaps"
cordova-plugin-ionic-keyboard 2.0.5 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 1.1.19 "cordova-plugin-ionic-webview"
cordova-plugin-splashscreen 5.0.2 "Splashscreen"
cordova-plugin-whitelist 1.3.3 "Whitelist"

If you use @ionic-native/google-maps, please tell the package.json (only @ionic-native/core and @ionic-native/google-maps are fine mostly)
Current behavior:
When I open map and go to new page and then return with back button (at the top) there is no map anymore
Expected behavior:
There should be map present.
Related code, data or error log (please format your code or data):
https://github.com/piernik/ionic-map

On ionViewDidEnter event run this.map.show(); when you return to the map.

I'll try - in previous version it wasn't necessary.

I meant setDiv(), sorry

It's working - thanks.
But I still cosider it as a bug.

Sorry to hear that. I guess we need to wait until Masashi (@wf9a5m75 ) looks into it

This is already fixed on the multiple_maps branch version.

I cannot fetch it :/ When will You publish it?

$> cordova plugin add https://github.com/mapsplugin/cordova-plugin-googlemaps#multiple_maps --variable ...

@wf9a5m75 thanks. It works but I noticed other bug.
Sadly I cannot reproduce it. I'll try to describe it.
I have app with polish touristic attractions: https://play.google.com/store/apps/details?id=pl.polskieszlaki.PolskieSzlaki&hl=pl
When open map for the first time app loads markers and pins them on map.
If marker is tapped overlay (not info windows) shows it's details:

        <app-mapa-chmurka-atrakcja *ngIf="atrakcja" [atrakcja]="atrakcja"
                                   style="position: absolute; top: 0; display:block;"></app-mapa-chmurka-atrakcja>

In that overlay/component there is a button. And that button does not recieve click event :/
But when I open detail attraction (not from map) and then open map with that attraction marked, overlay works correct - recieves click event.
Map always works on the same code:
loadMap() {
    let mapOptions: any | GoogleMapOptions = {
      camera: {
        target: this.srodek,
        zoom: this.zoom,
        tilt: 0
      },
      controls: {
        myLocation: true,
        myLocationButton: true,
        compass: true
      }
    };
    this.map = GoogleMaps.create('map_canvas', mapOptions);
    this.map.one(GoogleMapsEvent.MAP_READY)
      .then(() => {
        this.mapaService.map = this.map;

        this.map.on(GoogleMapsEvent.MAP_CLICK)
          .subscribe(() => {
            this.atrakcja = null;
            this.ref.detectChanges();
          });

///....
      });
  }

...
//adding markers
private dodajMarkerAtrakcji(item: Atrakcja) {
    const pipe = new KolorWagiPipe();
    this.map.addMarker({
      title: item.tytul,
      icon: pipe.transform(item.waga),
      animation: 'DROP',
      position: {
        lat: item.szer_geogr,
        lng: item.dl_geogr,
      }
    })
      .then((marker: MarkerAtrakcji) => {
        marker.id_miejsca = item.id_miejsca;
        this.markery.push(marker);
        marker.on(GoogleMapsEvent.MARKER_CLICK)
          .subscribe(() => {
            this.atrakcja = item;
            this.ref.detectChanges();
          });

//if going from attraction details tirgger marker click event to show overlay

        if (this.idMiejscaWybranego !== null && this.idMiejscaWybranego == item.id_miejsca) {
          marker.trigger(GoogleMapsEvent.MARKER_CLICK, marker.getPosition());
          this.idMiejscaWybranego = null;
        }
      });
  }

It all worked great in 2.2.8.

I managed to isolate bug. I've updated repository - https://github.com/piernik/ionic-map.
In home folder are those files: https://github.com/piernik/ionic-map/tree/master/src/pages/home
What is the problem? Overlay is not visible at beggining. It shows when You tab marker:
                // alert('marker clicked');
                this.show = true;
                this.ref.detectChanges();

To inform angular that overlay is not hidden I tigger this.ref.detectChanges();. But Your plugin is not reflecting those changes.
If You toggle overlay using standard button it works.
Hope You'll manage to fix the problem soon.

Add cordova.fireDocumentEvent('plugin_touch', {}); after this.show = true

Is cordova globally accessable?
I'm using typescript so I added declare let cordova:any; or should it be imported from some library?
marker.on(GoogleMapsEvent.MARKER_CLICK)
              .subscribe(() => {
                this.show = true;
                cordova.fireDocumentEvent('plugin_touch', {});
                this.ref.detectChanges();
              });

It doesn't work. The same behaviour.
Do You plan to fix it in next release? Or that will be permanent solution?

This is not a bug. You must tell to the plugin when you display with just changing css visibility. I won't fix this.

Please search some keywords on Google. I can find answers easily.
declare var cordova;
https://forum.ionicframework.com/t/how-to-use-non-native-plugins-on-ionic/63936

@wf9a5m75 that's exactly what I did and it does not work:/
I updated github repo so You can try Yourself.
https://github.com/piernik/ionic-map
In previuos version I did not have to use cordova hack.
Please look at this.

Steps are simple:
once you return to map from wherever, you have to map.setDiv('your_div'); and make sure the map is clickable by map.setClickable(true).
btw, switching the map on and off by overlaying too fast (on and off in 500 ms) can cause problem.

@vosecek it's not the case - did You see the code?

In previous version I did not have to use cordova hack.

Program is not the same forever. You have to change your code if new version doesn't work.
cordova.fireDocumentEvent('plugin_touch', {}); is not a hack.
I describe here.
https://github.com/mapsplugin/cordova-plugin-googlemaps-doc/blob/master/v2.0.0/whats-new-v2/README.md#change-4-save-battery-life

If you prefer previous version, why do you upgrade the plugin? Choosing which version is under your risk control.

Try again using the latest multiple_maps branch version code without plugin_touch event firering.

@wf9a5m75 cordova.fireDocumentEvent('plugin_touch', {}); is not working. Check it Yourself.
I can use it - no problem. But it is not working.
Here is code: https://github.com/piernik/ionic-map
I upgraded not to bother users with unnecesary permision from play service.

Adjustment for your case.

I can confirm that it is working :) I can publish app. Great job - thanks.


You could use "var processed = ''+a + c"

https://github.com/mustafaertekin/js-training/blob/1718282caa4c66802a397954a3116fc0ae398509/js/app.js#L144

ok


Fixes #1647 - prefer responding with JSON

...if multiple response handlers are eligible.

Travis build fails with compilation errors.

It does build now. Apparently, String concatenation in constants is not allowed in combination with Java 1.6. At least, that is my theory. WTF?


Incorporate mDNSResponder daemon?

See the mDNSResponder source code, available under Apache License: https://opensource.apple.com/tarballs/mDNSResponder/.

Another option would be to change this package into a Avahi client, leaving the heavy lifting to Avahi.


fix issue with variables that starts with (not, and, or] (eh notifica…

…tion.values .... )

Coverage increased (+0.01%) to 91.592% when pulling 24b06b2a1dc9c04bbc191a6caa076465c2d61b3a on bugfix/not-and-and-white-space into 222a9a3860a1ad6319e33939b61cc62473585424 on master.


useTypeImports option and consistent-type-imports

When using enums, if useTypeImports is set to true, then generated code won't work since enums cannot be used as values. Example of generated code :
export const AddressTypeEnumSchema = yup.string<AddressTypeEnum>().oneOf([AddressTypeEnum.Billing, AddressTypeEnum.Delivery, AddressTypeEnum.FolderOrMission, AddressTypeEnum.HeadOffice, AddressTypeEnum.ResearchUnit, AddressTypeEnum.Residence, AddressTypeEnum.SecondaryOffice]).defined();

Alternatively, If useTypeImports is set to false, then generated import instruction isn't perfectly valid :
Imports "XXX", "YYY" are only used as type.eslint[@typescript-eslint/consistent-type-imports](https://typescript-eslint.io/rules/consistent-type-imports)

@socnacom Hi!
Could you give me a minimal reproduction repository such as https://github.com/Code-Hex/graphql-codegen-typescript-validation-schema/issues/602 ?
Thanks!

No reply. close


Update docs

Fix middleware example code fence: see https://github.com/pragdave/earmark/issues/309

Update docs for consistency

add period to the end of the first line
apply mix format for code in doc
remove extra blank lines
add lines around heading / list
use :key not key
use - over *

Mostly done manually :)
I added more changes - around adding callback reference to make a link from call/2 to actual callback def.
I found some duplicated contents (e.g. README and module doc, and callback doc..) - we may tackle that later.


Remove publishVersion in gradle.properties

What

Why

Test Plan

✅ | ❌ I've added unit tests for this change.
✅ | ❌ The reviewer should manually test the changes in this PR.

Demo

How

Current dependencies on/for this PR:

main

PR #113   👈

PR #114

This comment was auto-generated by Graphite.


Stepper lacks accessibility

Summary
When navigating the Stepper component with voice assistant and keyboard-only navigation, it doesn't read out which step you're currently in when you go to the next step. It also doesn't hint the user how many steps there are in total.
Examples
No response
Motivation
No response
Search keywords: Stepper lacks accessibility

Thanks for reporting the issues. This is one of the thing to improve for sure, ref https://ishadeed.com/article/stepper-component-html-css/.

Thanks for reporting the issues. This is one of the thing to improve for sure, ref https://ishadeed.com/article/stepper-component-html-css/.

Seems like this example website is also inaccessible, it achieves the Stepper as a UI but voice assistant + keyboard navigation is still not there. The current Stepper in MUI in production is even better than this one imo. Here are a few specs I feel could make the Stepper more accessible for voice-overs:
when focusing on the whole stepper: tell the user they are in a stepper, tell them how many steps there are
when focusing on a step: tell the user which step they're in and in what order (e.g you are in 2nd step)
when finishing the steps: tell them they've finished all steps

Thanks for reporting, @jacklaurencegaray. We'll most probably migrate components to Base UI in Material UI v7. Until then, we'll accept community contributions for improvements in the Stepper component (as long as they don't introduce breaking changes).


Decrypt on Nodejs

I still don't understand how this encryption works, it's so much that it doesn't enter my mind, (privateKey, curve25519, secret, sharedSecret, sharedSecretExpanded, keysEncrypted, keysDecrypted, encKey, macKey...) I just wanted to connect to the websocket server and communicate freely, have a function that encrypts and decrypts the buffer using nodejs.

WA Server use keys to verify, sign, encrypt and decrypt message. and that keys is also encrypted and signed. key to verify the keys also included in it, so we need to slice that part.
This repo explain it all and you just need more time and patience to figure it all.
If you interest in NodeJS implementation, take a look here


Control plane "metric attributes exceeds 240 limit, some might be lost"

The agent limits the number of attributes to 240 for several reasons.
Our integration was not enforcing this limit, but most of the samples have a fixed number of attributes unless the users attaches hundreds of labels or custom attributes.
Unfortunately some samples gather metrics from prometheus  automatically transforming them into attributes. If cardinality of the dimensions is too big we would overcome the 240 limit and the sample is dropped entirely.
apiserverRequestDelta_verb_VERB_code_CODE | Difference of the number of apiserver requests, broken out for each verb and HTTP response code
-- | --
apiserverRequestRate_verb_VERB_code_CODE | Rate of apiserver requests, broken out for each verb and HTTP response code
restClientRequestsDelta_code_CODE_method_METHOD | Difference of the number of HTTP requests, partitioned by method and code
restClientRequestsRate_code_CODE_method_METHOD | Rate of the number of HTTP requests, partitioned by method and code
etcdObjectCounts_resource_RESOURCE-KIND

In particular a user sent us a payload affected by this issue and the "exploding" dimensions are:

etcdObjectCounts in particular with many CRD
apiserverRequestsDelta
apiserverRequestsRate

In big cluster we could do some of the following:

split samples if the #attributes>240
give the possibility to user to filter any of the metrics (this could helm in different scenarios)
avoid reporting metrics for any code+method have a 0 rate -> risk to confuse missing data with 0

[blocker for apiServer monitoring in large cluster ]

Hey guys, are there any news on this or any tests I can do on the cluster we're trying to get metrics from?

Hey guys, are there any news on this or any tests I can do on the cluster we're trying to get metrics from?
any news?


pageserver: Deletion queue for coalescing & deferring deletes

Problem
This PR addresses several problems:

To implement generation numbers as in https://github.com/neondatabase/neon/pull/4919, it is necessary to defer deletions from compaction/gc until an attachment's generation can be validated.
It is inefficient to individually delete objects, compared with deleting up to 1000 keys in a single request, so aggregating the deletes across tenants enables more efficient S3 calls.
In future when we want to implement passive readers of data in S3, it is helpful for the active writing node to delay its deletion to avoid stepping on slightly stale reads in flight on other nodes.

Summary of changes
A new top-level component in pageserver is introduced: the deletion queue.  There is one deletion queue per process, although it would be trivial to shard this out by key hash if we wanted more than one in future, if the tokio::sync::mpsc::Sender contention became too great.
The deletion queue runs two background tasks:

Frontend: this consumes individual deletion calls from timelines, and accumulates them into DeletionLists, which are periodically written to remote storage when a size threshold or time threshold is reached.  When a DeletionList has been persisted, a message is sent onward to the backend worker to inform it of the list.
Backend: consumes DeletionLists from the frontend, and accumulates them into a buffer of keys for issuing DeleteObjects requests.  When enough keys are accumulated to issue a full-sized (1000 key) deletion request, it is dispatched to S3.

There is no parallelism other than the implicit parallelism that comes from deleting 1000 keys in one request: this should be sufficient in practice:

Consider a system processing 1GB/s of writes, with an average size of 128MB objects.  Over long time spans, the average deletion rate will be the same as the average write rate, so of the order tens of objects per second.  A single channel batching up deletes in to 1000-key requests is easy enough to keep up with this.
Deletion of timelines generates burstier work, but deletion of timelines is not highly correlated across tenants, so we do not expect to see any mass deletion events.  If there was such an event, then the frontend queue would grow to its size limit (16k entries, where each entry contains many layers) , before blocking callers doing deletes.

Note that the deletion queue is independent of the queuing in remote_timeline_client.  To preserve ordering of deletions vs. uploads, it is important that callers (such as compaction) do a wait_completion on their remote_timeline client to flush preceding reads, before they push keys into the deletion queue.  The alternative would be to continue to feed deletions through remote_timeline_client's queue, but execute them by pushing into the deletion queue.  This is easy to code, but seems wasteful.  There are only a few places we do deletions, so it is not onerous to do an explicit flush (wait_completion) of the upload queue after uploading an index, before pushing deletions.
The deletion queue's push() method is currently async: this enables using a finite-size channel that will block users of the API if the deletion queue is deluged with a huge number of deletes and not keeping up (unlikely, but possible).  If we find a strong need for a sync interface (e.g. we want to call it from Drop somewhere), then it is straightforward to reverse this decision and substitute an unbounded channel.
Out of scope items in this PR:

implementing generation numbers & validation
a fast path for timeline deletion that skips persistence (as timeline deletion is not subject to generation number validation)

Closes https://github.com/neondatabase/neon/issues/4325
Checklist before requesting a review

[ ] I have performed a self-review of my code.
[ ] If it is a core feature, I have added thorough tests.
[ ] Do we need to implement analytics? if so did you add the relevant metrics to the dashboard?
[ ] If this PR requires public announcement, mark it with /release-notes label and add several sentences in this section.

Checklist before merging

[ ] Do not forget to reformat commit message to not include the above checklist

Closing until re-basing on generation number changes


How to get Js components (like Select2, tom-select...) to fully work inside the modal

Hi there,
Thx for the package,
.
Plz, How to get a Js component, like Select2, tom-select... to fully work inside the modal.
.
The blade looks like :
.
div wire:ignore
select id="users" wire:model.defer="users" class="tom-select" multiple
@foreach($user_list as $key => $value)
option value="{{ $key }}"> {{ $value }} /option
https://github.com/Endforeach
/select
/div
.
Like this, the tom-select isn't working
Thanks

Use Livewire Javascript hooks too initiate any javascript.

Thx a lot :)


fix: zero sequence check on relative time

I've just found out RelLockTime misses zero sequence check, which must be disallowed for miniscript.

Great catch! I will also copy this commit into #735 so it gets backported to 12.x.


Anonymous variable flagged as error

Using Scala 2.12.7,
[error] [snip]/Server.scala:29:7: parameter value x$2 in value $anonfun is never used
[error]       _ <- Stream.eval(foo)
[error]       ^

where foo is a function returning F[Unit]
I haven't been able to reproduce the issue with a simple code example but Chris Davenport (who identified better-monadic-for as the culprit) thinks it is a problem with the macro expansion.
E.g., in our piece of code if I have two such lines above the error is flagged on the 2nd one, even if I swap their order in the for-comprehension.
This was seen using releases 0.2.4 and 0.3.0-M2.

@sdavidp thanks for the report, I'll take a look this weekend.
In the meantime, can you try adding -P:bm4:no-tupling:n to scalacOptions and see if it fixes the problem?

@oleg-py Yes it does. Thank you Oleg!

I published the 0.3.0-M3 version just now. Give it some time to sync to Maven, and try it out without disabling untupler - should work properly now.

No Oleg, still get the error with 0.3.0-M3.
On Thu, Oct 11, 2018 at 12:18 PM Oleg Pyzhcov<EMAIL_ADDRESS>wrote:

I published the 0.3.0-M3 version just now. Give it some time to sync to
Maven, and try it out without disabling untupler - should work properly now.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/oleg-py/better-monadic-for/issues/12#issuecomment-429042356,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXexZzmt_Kk_UHMHBpWt6GCbLhQ-W80cks5uj32DgaJpZM4XIr1z
.

I derped and used wrong bitwise operator. My apologies! M4 is on its way - it seems to work in the code samples I managed to discover.
If it doesn't work, I'll switch to working it in snapshots. If so, please provide the structure of your for-comprehensions - just obscure the variable names and replace the RHS of each bindings by ???, I'll figure it from here

-M4 did the trick, for me anyway :)
Thank you Oleg!
On Thu, Oct 11, 2018 at 1:52 PM Oleg Pyzhcov<EMAIL_ADDRESS>wrote:

I derped and used wrong bitwise operator. My apologies! M4 is on its way -
it seems to work in the code samples I managed to discover.
If it doesn't work, I'll switch to working it in snapshots. If so, please
provide the structure of your for-comprehensions - just obscure the
variable names and replace the RHS of each bindings by ???, I'll figure it
from here
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/oleg-py/better-monadic-for/issues/12#issuecomment-429076951,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXexZwnrc36ywpLCxnPGgGfSB3flNPvcks5uj5NlgaJpZM4XIr1z
.


helper-cli: Optionally skip writing empty package configurations

When doing bulk creation of package configurations like with ´orthw`, it is sometimes desired to only generate non-empty files.

PS: The commit-lint check failed.


Few tweaks to the structure generated for Scala CLI

I need to say that the project is amazing, and the generated structure for Scala CLI is good. Since we haven't created a recommended structure for such projects yet, adopt-tapir is the perfect opportunity to create it ;)
To kick off discussion, I created a repo where I track all the changes that I think should be made in the structure (if people agree I think I should be able to open PR to the tool changing the structure. Summary of change:

.gitignore mainly  to exclude .scala-build and .bsp directories
Use comment based using directives - other forms are not recommended for now and confuse Intellij / Metals. Metals nicely colors the comment based directives
Use *.scala files in project definition not to confuse metals / IntelliJ
Add a bit to Readme about opening the project in IDE

Thanks for the feedback I really appreciate it 😃
I generally agree and can perform the necessary changes in the code but I would leave the .gitignore out of the discussion for the time being as it is not generated for sbt either. IOW it is a feature itself and IMHO it should be better to introduce it for both build tools.

Having said that I believe that we could join the efforts and I could prepare the PR (as I know the code better) and you could test it, @romanowski WDYT?


Add one Java17 bundled services sample, and generic README.

Add one Java17 bundled Datastore services sample, and generic instructions to use the other java8 samples.
Public Doc is at https://cloud.google.com/appengine/docs/standard/java-gen2/services/access

Not sure who should review this one, sending to @eaball35 for help.

Swapped myself for @averikitsch so that there is someone from the AppEngine side of things, and @kolea2 for the datastore review.

PTAL

PTAL


move in a loop?

Hey,
https://github.com/elbeno/testinator/blob/89fe6d3917bc4d074e8e01064aec3b83e7ccd9e2/src/include/function_traits.h#L51
it seems you are moving in a loop. I guess this is not valid.

Thanks! You're right. Fixed with https://github.com/elbeno/testinator/commit/b4c1b92492c96f6c963263a26fc465fb83fcce03


Per-file versioning rules in Makefile for JS source

Appends a hash to the names of files that have changed in app.html (see #28)

This is looking really cool, great progress and all!
But a few things that need changing. For one, it's broken right now,
$ make app.html
make: *** No rule to make target `app.html.in', needed by `app.html'.  Stop.

I could tell by eyeballing it that the app.html.in was missing. I'll see if I can make some other comments in the commits next to the code.

Your recently modified app.html should actually be renamed app.html.in in the repo. You should:
$ git mv app.html app.html.in

Should .make-script-block be added to the hidden file targets section (like LINT and TEST)?

no, it probably belongs as a dependency of ‘build’.

On Aug 20, 2015, at 12:24 PM, Jessie Wong<EMAIL_ADDRESS>wrote:
Should .make-script-block be added to the hidden file targets section (like LINT and TEST)?
—
Reply to this email directly or view it on GitHub https://github.com/informatics-isi-edu/chaise/pull/37#issuecomment-133137479.

aside from my inline comments, one more thing. have you tested this to see that things (a) still work, and (b) that is actually fixes the versioning/caching problem?

I've tested to see that it does still work but haven't looked at the caching problem yet.

I just checked to see if it fixes the caching problem and it appears to work. I modified one of the JS files and Chrome returned a 200 response for the modified while returning a 304 Not Modified for the unchanged files.


Intergrate eitbinary

Copied code and requirements from eitbinary to eitprocessing

Installation instructions are not good for production environment (only good if you will never build a package). We must use Python 3.10 forward for the code from eitbinary to work ( this may be why the documentation build failed by the way). There is no environment.yml , so your have to hand build the environment by guessing from the cfg file (bad) . Please note that we have setup.py, setup.cfg and pyproject.toml - and all of this could be accomplished in setup.py (your choice). We need to see once we run the .bumpversion if it updates with a  .version (no idea)

Also unclear why we need Sonarcloud (I think we don't) but I believe we would have to set up an account with them.

There is no environment.yml , so your have to hand build the environment by guessing from the cfg file (bad) .

Why is this better than just running pip install -e ./ in a freshly created environment? By pip installing, you also immediately have the current repo installed as well, which I don't think is the case for the environment.
(I realize that the setup instructions for that weren't there yet).

If the notebook doesn't run with the environment created in environment.yml, then the environment.yml should just be changed. In theory conda may be better at making sure all installed packages do not conlict than pip. I think the main thing is to be consistent, even down to the conda channel, as much as possible. I will add some additional notes on why I personally might avoid pip in a bit

Whichever way we go- conda or pip, it will effect many things like the testing, so just decide which, then we may to adjust the testing instruction.