Date questions

Two topics:

On date filters, are Dates expected? Or strings? Why?
When the SDK returns dates from Xata, does it return Dates or strings? Strings are preferred here because we have to usually serialize them at query time anyway because Dates are not transferrable over JSON.

We decided not to parse numbers and dates given by users. So the SDK expects dates and returns dates. The fact that they are serialized in the REST API to strings is an internal implementation detail. In the future we could use a binary protocol that supports dates as a primitive value for example. In any present or future column type the idea is that users will get the higher level type in their language, that is typically more useful for them (e.g. you can format a Date with a date API).

Here's a loom response: https://www.loom.com/share/404936922ba848d89e80cdbca4fb0b33
TL;DW Summary

We decided https://github.com/xataio/client-ts/issues/315#issuecomment-1172971386 given by users.

Who is "we" in this scenario? This is the kind of decision that devrel needs to be involved in, because it directly impacts developers and our relationships with them. From the linked comment,

We've decided not to allow users to pass strings for int/float/date columns for now. It'd increase the size and complexity of our code, and would require us to handle edge cases (eg. what to do on invalid values: throw or cast to null; what to do if there's not a timezone specified, etc).

I can understand not wanting to validate user input as strings, but at the same time, if they pass in invalid strings, it's really on them. Similarly, the burden of converting a string to a Date would be equally on them, and therefore would be less code for us to maintain, no?

In the future we could use a binary protocol that supports dates as a primitive value for example. In any present or future column type the idea is that users will get the higher level type in their language,

Both of these sound far more complex than a strings in/strings out approach because it requires writing specific code for specific languages that is added complexity as opposed to something like strings, which all languages natively support.

that is typically more useful for them (e.g. you can format a Date with a date API).

Since we use the client from an environment like serverless functions and workers, we will have to serialize any Dates it returns to strings anyway so we can transport them over the network. This increases complexity in userland, instead of returning simple strings that users can then send to their clients.
Does that make sense? Is there something we missed? Would love your thoughts. We'd also really appreciate it if we can discuss these things a bit more in the future and use them ourselves before making such decisions.

Afterthought: what would probably also make sense for the SDK is to filter on just dates, or datetimes to fulfill the “yesterday” use case in the loom.

Who is "we"

The frontend team, that owns the CLI.
About the technical aspects. Just a few thoughts:

Using strings for things like this is called "Stringly Typed" programming. It's not a best practice. In fact is quite the opposite.
Temporal is not production ready. And Date won't go away anytime soon. Sure we can investigate if there's some compatibility we can provide there.
Dates are serializable out of the box to JSON:

In the SDK we are aware of the data type in the schema and we parse them. To the user it doesn't matter that they are serializated to strings. It's transparent to them.
The fact that next.js errors is more about how they deserialize props in their framework. They don't send type information, so they fail (in development) when serializating value whose type cannot be inferred just from the JSON itself. We can investigate how to deal with this, but it's a broader topic, not just dates. If you send a Page object you won't be able to invoke hasNextPage() in the client-side, because methods are missing after serialization/deserialization. Our plan is to fix this with xata workers.

Agree with everything @gimenete mentioned.
I think we will end up supporting string | Date | Temporal for create/update operations but always return Date on read. Maybe a setting could be set to return Temporal instead of Date in the future too.
Right now Temporal requires a polyfill, as it's not Stage 4 ready (they even have problems with its own serialization IIRC and are stalled there).

Dates are serializable out of the box to JSON:

Even if they weren't, we could add a helper method to XataRecord that handles serialization/deserialization (including links and nested properties). Something like toJSON/fromJSON at the record/table level (where you have a schema that helps you inferring types in runtime).

The fact that next.js errors is more about how they deserialize props in their framework.

It's really a shame this still happens in 2022... But yeah it's not our fault and I wouldn't consider the normal scenario. Maybe we could still tweak the internal record/page toString method so it works just fine?

The frontend team, that owns the CLI.

We should maybe discuss ownership a bit more separately. My fear is that we develop some sort of tribalism where devrel owns integrations, the VS Code extension, and similar things, and frontend owns the CLI, web app, etc. and we end up more divided than unified and collaborative. I’m sure none of us want that.
Thanks for the explanation on stringly typed programming, though as far as I know, it’s more of a derogatory term used when strings are needlessly used instead of more rich types.
For dates in the SDK, the usage looks like this (I tried to illustrate this in my loom):

In a serverless function,
use the SDK to get data which maybe has a date type,
serialize the date to a string for JSON transport
res.end(dataWithDateStrings)

Meanwhile, we’ve lost the JavaScript Dates to the network anyway since we’re transporting strings (since we don’t have Date at the network layer). I’m not so sure this is needless string casting since we can only transport strings over a network. Does that make sense?
That way, a user can choose to convert a date string from a network response into Date or Temporal or whatever else they want.
To be fair, I don’t have a strong opinion about string or Date types, but instead care about the developer experience: we claim we’re “the best serverless database for Next.js”, yet we have users return this from getStaticProps:
{
  props: {
    data: records.map(r => ({ …r, date: r.date.toISOString() }))
  }
}

instead of this:
{
  props: {
    data: records
  }
}

one of these is more “best for Next.js” energy than the other because it’s terser and less work. Technical details aside, if we can achieve and serve this to users, we’d love that.

Regarding Next.js and scalar types serialization.
After doing some state of the art research, other ORMs like Prisma have the same problem and they don't do any conversion and use the Date object.
Right now if users complain about this we can propose the Blitz.js approach which is adding the superjson plugin to Next.js (commonly used together with Prisma).
And for the future we can build our own rich serializer that handles Dates, Links, Pages properly and allows to maintain type safety both in server and client code.

Alternatively, if there's a path to changing this upstream in Next.js, we could work together on an RFC?

Alternatively, if there's a path to changing this upstream in Next.js, we could work together on an RFC?

That would be awesome! To be fair it's not a problem only for Next.js but with the schema-less/comment-less/old JSON spec we're forced to deal with. Users other frameworks (like remix) or building REST APIs would also benefit from a custom built serializer of our own that provides full type-safety. So, even if Next.js fixed this problem internally, it's likely we would still want to build some kind of helpers.
In any case, having it built-in in next would make it easier for developers using our SDK, other ORMs or simply sending non-scalars from getServerSideProps/getStaticProps. I think the ones needed to be implemented are: Map, Set, BigInt, RegExp, Date and likely the new Temporal.

I've implemented a quick proof of concept of the fromJSON and toJSON methods @SferaDev was mentioning: https://github.com/xataio/serializer
This serializer supports the basic types, dates, bigints, sets, maps, and custom classes. In the README you can find more information and an example of a Person class with an age() method. The serializer is capable of "hydrating" objects into their original classes and thus, have the original methods. Something that is not possible just with JSON.stringify/parse. Although this requires an extra step (configuring the serializer), that's fine for Xata because we have a set of classes we know we want to serialize.
If this looks interesting and could potentially be included inside Next.js we are happy to collaborate in a RFC and/or creating a PR for Next.js itself. What do you think @leerob ?

@gimenete That's seems like a good solution to me, I'm curious if there would be performance concerns since the code needs to do a pass through potentially deep nested objects.
@xataio/devrel Would this library be something that we could recommend people to use to reduce the pain in situations like the one presented by Tejas? What do you think of the idea?

@xataio/devrel Would this library be something that we could recommend people to use to reduce the pain in situations like the one presented by Tejas? What do you think of the idea?

The serializer is very valid helper, one I'd love to have in the toolset. But talking about dates specifically, I would prefer whatever is returned from the SDK to be useful "out-of-the-box" for such a big use-case (serializing SSR responses in frameworks like Next.js and others) - in that scenario, I see the serializer as a workaround.
{ props: { data: serialize(records) } }

or, if we stuff it in the SDK:
const { records } = await xata.db.users.select(columns).getPaginated().serialize()

To me that still raises the question about why is it not better than a valid date-string.
As a JS developer, I'd prefer to call new Date( record.birthday ) than using the serialize method.
Additionally because we need to consider some (most?) people will just serialize dates by themselves instead of checking docs. So, though the serialize method is a valid and better replacement, it won't entirely prevent:
{
  props: {
    data: records.map(r => ({ …r, date: r.date.toISOString() }))
  }
}

whereas using a string would. Personally, I consider this an inherent DX flaw for the serialize approach, one I'd rather not have (it makes the happy path of using our APIs less intuitive)

To me that still raises the question about why is it not better than a valid date-string.
As a JS developer, I'd prefer to call new Date( record.birthday ) than using the serialize method.

@atilafassina To me the real question is: As a JS developer working without types, and having defined in the schema that a column is a date. What would you expect the value be without checking the docs? A Date or a string?
The same way you don't expect a Boolean or a Number to be a string even if can be represented as one, a Date should be a Date type even if JSON serialization does not support it out of the box.
The current most popular ORM for Next.js has the same problem as us, use Date objects for dates and don't even mention it in their docs as a limitation. They have a couple resolved issues that point to an external library.
If we have a good docs section about it, provide a serialization tool and even work with Next.js developers to fix it long term, that provides a much better DX.

@atilafassina To me the real question is: As a JS developer working without types, and having defined in the schema that a column is a date. What would you expect the value be without checking the docs? A Date or a string?

I see your point. And I'd be 100% there with you if there was one Date format to rule them all.
At the moment there are 2 types a JS Dev would deal with dates: Date and Temporal.
Moreover, there's the whole question about timezones. In my opinion, the string format would make explicit and easier to convert to which ever format the application actually needs. With the byproduct of being serializable out-of-the-box.
So, for now I'd still vote as string because the conversion is easier whichever way is needed. But I also think we need to reevaluate once Temporal evolves and/or gains usage.
Specifically to avoid this:

use Date objects for dates and don't even mention it in their docs as a limitation. All they have are a couple resolved issues that point to an external library as a fix
If we have a good docs section about it, provide a serialization tool and even work with Next.js developers to fix it long term, that provides a much better DX.

I absolutely agree that would be better than the dumpster fire you mentioned above (😛). But again, I think the point of great DX is making it intuitive, the least we count our users will jump into the docs to figure stuff out the better we will be. Also because Next.js is not the only framework we need to cater for and we can't assume other teams will have the bandwidth or the willingness to work together on it.

@atilafassina What if we offer it as a setting in the XataClient constructor?
{ dateType: "date" | "temporal" | "string" }

And maybe even allowing them to add the format for the string type?
The thing is that I don't want to make a design choice of a default behavior over a "bug" on some frameworks/scenarios.

This sounds pretty good to me, @SferaDev
thank you very much 🏆

Assembling the rest of Xata to check if their fine with this:
@gimenete , @TejasQ , @tsg : can we all be onboard with @SferaDev suggestion? ☝

I'm not sure about that. We are focusing a lot on a specific use case of a framework. Summarizing the pros and cons of using string for dates:
Pros

Works out of the box for getServerSideProps/getStaticProps for Next.js.

To clarify: this is not a problem if you are writing a JSON API with Next.js, CloudFlare workers, etc. This is very specific to this use case. And seems like you can use existing tools to solve this very specific use case such as superjson. Additionally, this limitation is broader, is not only Dates, but other JS primitives and custom classes. Even if we solve this very specific use case with strings, we are still losing any method in our custom classes such as record.getMetadata() or page.hasNextPage(). Those are not solved with returning strings for dates.
Additionally a user could just do JSON.stringify() or JSON.parse() themselves. Dates are transformed to strings out of the box. The serializer I did fixes more things, but if you only care about dates you can use JSON.stringify/parse.
Cons

One of the things we aim long-term is to have a rich set of column types. If we return strings, we are losing that. In the future we may have urls and those could be URL objects, etc. What's the point of having many data types if we finally return strings? For validation we could just use regular expressions.
We are losing type safety. Stringly Typed programming is a bad practice.
We are not consistent with other ORMS.
It's confusing to users to get a string when their column type is a Date. If I'm writing business logic such as invoide.createdAt.getFullYear(), I'm expecting createdAt to be a Date.

So, to me, returning strings only fixes partially a limitation in a very specific use case.
Additionally we may want to enforce to always use xata workers to access xata, and with them, we will fix this out of the box.

We are focusing a lot on a specific use case of a framework
not a framework. Next.js is not the only one adding serialized data to the bundle or sending it over the wire. The aim here is to provide something that works out of the box without requiring our users to be creative. Yes, of course they can use JSON.parse and JSON.stirngify. My point is about comfort, not feasibility.

We are losing type safety. Stringly Typed programming is a bad practice.
I would like to understand why in this case this is a bad practice.

It's confusing to users to get a string when their column type is a Date. If I'm writing business logic such as invoice.createdAt.getFullYear(), I'm expecting createdAt to be a Date.

I think you're jumping to the assumption that you expect it to be a Date object, which is precisely my point. Dates in javascript are incosistent and Date object itself is not a great API. It will soon be replaced and so picking it as our standard is tricky - this is precisely where I think your "URL object" argument loses grip.

So, to me, returning strings only fixes partially a limitation in a very specific use case.
I agree there's always a tradeoff, and that's why I think @SferaDev 's  proposal is good, we forward the power to the user and provide them with a seamless experience to whatever they decide. If we have telemetry or once we get feedback, we can aim to the best experience based on real data.

Additionally we may want to enforce to always use xata workers to access xata, and with them, we will fix this out of the box

I'm more than happy to revisit it once we do. But at the moment we need to find the best DX for what we have at hand. Xata Workers are a great concept, but one which even I know very little. We can't base our current DX on something that is still on planning / research stage.

not a framework. Next.js is not the only one adding serialized data to the bundle or sending it over the wire

Like I said, if you do res.json() in a Next.js API, you won't get any errors with Dates. So, to me, this problem is very specific, there are solutions for dates, and using strings it doesn't solve the whole thing (getMetadata(), hasNextPage(), etc.).

I would like to understand why in this case this is a bad practice.

Any business logic you want to do with dates. Like I said invoice.createdAt.getFullYear().

I think you're jumping to the assumption that you expect it to be a Date object

Like I said, any ORM returns Dates, and as a developer you are specifying a column type "date" (not string), etc.

It will soon be replaced

Even if it's replaced (I'd be very surprised if it ever goes away), it'll be replaced by another object that will have the same serialization problem.

something that is still on planning / research stage.

It's not in research stage, it's in implementation stage. In a couple of weeks we may have something we can start using.

Like I said, any ORM returns Dates, and as a developer you are specifying a column type "date" (not string), etc.

I gave a quick look around, and I don't think this is correct: at least Prisma's DateTime is an ISO string
But the reason why I didn't reply to that when you first mentioned is that I don't think we should base ourselves in what others are doing just for the sake of it. User mileage may vary, and if we blindly follow them for the sake of consistency we are bound to repeat their mistakes.

Like I said, if you do res.json() in a Next.js API, you won't get any errors with Dates. So, to me, this problem is very specific, there are solutions for dates, and using strings doesn't solve the whole thing (getMetadata(), hasNextPage(), etc.).

that's the besides the point I've been trying to make. We can't accommodate both cases at the same time. In this argument about which case is closer to the core is moot without real usage data. We need to identify which tradeoff imposes less discomfort.
So what I'm saying is that new Date( string ) is more intuitive than importing a package and to serialize data, or calling and SDK method, or even using JSON.stringify. As you said yourself "we keep consistency with other ORM, dbs, and apps" - and the platform. If we can't cater everyone, we rely in the platform as fallback instead of engineering something ourselves and expecting everyone to know/learn about it.

Even if it's replaced (I'd be very surprised if it ever goes away)
now we're entering a dangerous ground of predicting the future. What we can and should do is trust the specification. And it's a done deal that the Date API will be replaced. The Temporal API is not final, but will be the new standard.

It's not in research stage, it's in implementation stage. In a couple of weeks we may have something we can start using

Cool, I'm happy to learn more about it. But seems to me it's the same case as the new api in JavaScript. It's coming, soon. But it's not yet here.

Again, I think @SferaDev 's proposal accommodate both cases well, we can set Date as a default and wait for proper user feedback/metrics to flip it or not. Why are you against it?

I gave a quick look around, and I don't think this is correct: at least Prisma's DateTime is an ISO string

That's only to represent the default value in their *.prisma files.

Thanks everyone, let's go with the suggestion from @SferaDev , with Date being the default. If the two issues that @gimenete pointed become problematic, we're going to find out from our users, and then we can look for making it a more granular setting or alternatives.

Hey everyone, I'm currently recording an onboarding video where we build a small sample app to teach people Xata and I just got this error again:

This is now blocking an onboarding guide intended to be released to our waitlist, so it'd be super nice if we could address this soon-ish. 😬


[BUG] Potential miscounting of stored procedure argument count?

Unfortunately, it's been a while since the issue initially happened and when I reported this, since we initially tried a lot of workarounds before resorting to making an issue. I suspect there's a deeper underlying issue, so I think this is the right thing to do. I can try to get on another call w/ the user to confirm details I didn't take at the time.
That said, I do have a unixODBC trace; it's quite long though (though the goods are in theory on SQLProcedures/SQLProcedureColumns), and I'm not sure if it'd need sanitization, so ping me if you need it.
Describe your system

odbc Package Version: I believe 2.4.0
ODBC Driver: IBM i Access
Database Name: DB2
Database Version: I believe 7.3
Database OS: IBM i
Node.js Version: I believe 12 or 14
Node.js OS: IBM i

Describe the bug
Initially, there was confusion because the SP had a different physical vs. SQL name and that caused confusion, but after locating it, it seems there was issues with argument count.
Expected behavior
The stored procedure should be called. Also, the stored procedure argument count mismatch error should probably report the balance of arguments, to make it more obvious what the failure mode is.
The same code called from a JDBC client (i.e. DBeaver) seems to work.
To Reproduce
Steps to reproduce the behavior:

Connect to database with options '...'
Create database table '...'
Run query '...'

Code
The stored procedure's typical arguments + type signature:

There are nine inputs and one output, for a total of ten arguments (confirmed with select * from qsys2.sysparms where specific_name = 'OFTC_PRD'). The user code (I don't have right now unfortunately) was confirmed to be passing a ten element array
User's code:

The resulting error that occured was linked above.

Hey @NattyNarwhal ,
I know its been a while, sorry for the delay. I think I have run into a similar issue with @worksofliam in the past. I think it had something to do with the way that the table function/procedure was created. Do you have any information on how it was created? I was never able to recreate it.
If you aren't working on this anymore, feel free to close the issue, but otherwise I will try to recreate and fix (whether it is at the Node.js odbc level or the IBM i driver level)


Project structure

Let's discuss (and aggregate issues on) project structure, styleguide, etc.

[x] Add Prettier.
[x] Move to TypeScript.
[x] ESLint (IMO, at least for react)?

To be decided

[ ] Currently, we're using classical React. Do we want to move to hooks?
[ ] Testing. Jest? (actually, don't think we'll be able to test canvas workflow in Jest.)

IMO we should migrate to functional react, i dont see any benefit is us having this in classes. Maybe @vjeux could clarify if we have any technical blocker to migrate this to hooks.
I also think we should add eslint, it would help us alot when this project grows.
(In case we decide to add eslint) - We could also add a pre-commit hook using husky to lint and prettify the code before commiting.

I started with hooks but couldn’t figure out how to read up to date variables when using addEventListener for window mousemove. If you can make it work that’d be awesome :)
https://github.com/vjeux/excalibur/commit/457800caa369bdb358727eeb3f193490d4400984

I’d be happy with eslint, prettier, typescript and jest

Jest is already installed in the project (via react-scripts package)

@nanot1m @vjeux can we close it?

ad 2: Cypress won't help here until they implement non-synthetic, native events (at least as far as interacting with the canvas is concerned). We could go with Puppeteer & CDP, or something like Selenium & WebDriver.

@dwelle with cypress you can interact with canvas using mouse events and maybe compare the result as a screenshot.

@giovannigiordano I thought we'd need to fire proper events. I'll investigate if we can emulate the tests in Cypress by triggering mouse events programmatically.

@giovannigiordano you were right, so far it seems we could make it work. https://github.com/excalidraw/excalibur/issues/63

What's the latest on npm vs yarn? I thought we started with yarn.
So, have we settled on npm, and should we install everything via npm so that we keep package-lock up to date?

@dwelle I introduced yarn and then npm to use it in the deploy action, to avoid the usage of a custom action which integrates yarn (the nodejs action has npm).
The project is small, we don't have too many dependencies, so let's focus on other features.

Would you guys be interested in splitting the code into multiple files? I believe that it will improve dev workflow as it is easier to navigate through smaller files instead one large file.

I feel like we've done the original scope of this issue.


feat: update seaweedfs version

Automated changes by the update-addons GitHub action

Merging into a branch.


Use flutter analyze for flutter packages

I guess it wires up their own lints, etc.
Blocked by https://github.com/dart-lang/pana/issues/32
Which is blocked by flutter bug https://github.com/flutter/flutter/issues/10704

Assuming you ran flutter packages get for the project, flutter analyze should return the same set of errors/warnings/hints/lints as dartanalyze. So, I don't think a a --machine flag for flutter analyze is strictly required here?

Good to know!

@devoncarew – so we can just run dartanalyze and we're good? Cool!

Closing as not-needed.
This would need to be built into pana.


remove trailing / in capacitor.config server.url

Capacitor.convertFileSrc uses window.WEBVIEW_SERVER_URL and assumes it has no trailing / but since it has the resulting url becoms http://localhost:8080//_capacitor_file_/... which means it won't load if it's used in a <img :src="src">

Thanks for the PR!


Exception thrown when passing classloader as param

When passing classloader exception is thrown:
new Reflections(classLoader,..
Looks like the filtering of params is wrong.

Classloader remains in params list and is unhandled -> else throw new ReflectionsException("could not use param '" + param + "'");

I'm facing this issue as well. When is the next release planned?
I will use the ConfigurationBuilder for now.


[Snyk] Upgrade immutable from 4.1.0 to 4.3.0

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade immutable from 4.1.0 to 4.3.0.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 6 versions ahead of your current version.
The recommended version was released 4 months ago, on 2023-03-10.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

👷 Deploy Preview for yds-hugo1 processing.

Name
Link

🔨 Latest commit
1cd7ef1b705dd779797c535b0a53cff81842ecd5

🔍 Latest deploy log
https://app.netlify.com/sites/yds-hugo1/deploys/64bc2f33f8de800008d63e1a


Use a custom name for the css/scss when included in

Give the ability to give a personal name to the style besides the one from the file.
Right now, the loader uses the file's name to create the JavaScript. For example:
If you have a filename called:
my-polymer3.scss
my-polymer3-app.js
It will use my-component-1 as the style for registering.
Besides having 2 files with the same name, there are times that file names are not practical (such as index,.scss or style.scss, or my-super-long-component-name-styles.css)   But there may be a collision when you have the same style.
The current proposal is to use Webpack Queries when loading the file.
Example
// Inside my-polymer3.js
import './my-polymer3.scss?name=style-1'
class Polymer3App extends PolymerElement {
// Check how now we specify
Hello {{prop1}}!
       <input type="text" value="{{prop1}}" />
          😉😉😉😉😉

         Poop
    ;
}
static get properties() {
return {
prop1: {
type: String,
value: 'my polymer3 component',
},
};
}
}
window.customElements.define('my-polymer3', MyPolymer3);

This is done with the first release


New Strings about rig on EO, ZH-CN/TW

Thank you for the additions!

Thank you for the additions!


Rework @Data/@Value classes into Java 14+ records

This will be tricky, as some of these have non-default toString/equals logic. So amount of Lombok might need to be retained on them (?)

Also, toString is mostly used for debug logs, which as time showed are of very little importance, in fact. equals/hashCode is different story, tho


kube-scheduler

i didn't find option "--scheduler-name"

Hi @GioBVVF
Which web page didn't have the option that you mentioned?
/triage needs-information

I'm not sure what the bug is. In Kubernetes v1.23, the kube-scheduler doesn't support setting --scheduler-name on the command line.
If you are using a different version of Kubernetes, consult the version of that reference page that matches version of Kubernetes you are running. There is a version selector top right.
/remove-triage needs-information
/triage support

/kind support

what's the last version that support this setting ?

https://github.com/kubernetes/kubernetes/commit/c13c3ebc793013c1f6ccd4c28312f63edadc5c54

/close


adding more documentation

Coverage remained the same at 73.938% when pulling d3e1877eac79c1cefc97d693d84135a48c3d7ec9 on apikeybinding-docs into d57009f708bde78ca2415e8937b6d19e44fa75c9 on master.


[Feature]: built-in type: "css" support like insert option of style-loader

What problem does this feature solve?
https://github.com/webpack-contrib/style-loader#insert
Usage https://github.com/backstage/backstage/blob/0cd632560246c37aa55699efe83445afe0eb1420/packages/cli/src/lib/bundler/transforms.ts#L35-L50
What does the proposed API of configuration look like?
Align with style-loader.

We should align builtin CSS behavior with Webpack. you can use css-loader and style-loader in Rspack

We should align builtin CSS behavior with Webpack. you can use css-loader and style-loader in Rspack

Yeah, I'm using style-loader now.

Yes, If it's implemented by webpack builtin-in, we will align this


Can't get highlighting to work on Windows 7

I installed elm and following the install instructions here but it get this error:
// Place your settings in this file to overwrite default and user settings.
{
"elm.makeCommand": "./node_modules/.bin/elm-make"
}
file: 'file:///c%3A/project/static/.vscode/settings.json'
severity: 'Warning'
message: 'Unknown configuration setting'
at: '3,3'
source: ''
Any idea how to fix that?
I tried also using the global install with the .exe but I don't know how to point at the elm-make.exe, when I use:
"elm.makeCommand": "elm-make"
I get the same error and no highlighting.

I have not tried setting this setting in Windows, but I can try it later today. Anyways - if you use the global installation of elm, you should not need to set this setting at all.
By the way - the simple elm-make command seems correct - are you editing the correct user settings file?

Thanks for your offer Håkon, I ended up by reinstalling VSCode, the elm extension and restarting VSCode.
I probably didn't restart VSCode before checking Elm highlighting.
I think it would be nice to add some instructions to add the Elm extension for VSCode and to restart it.
Looking forward to use it!
Thanks again. Cheers.

Great that it worked out. Please create issues for any other startup issues with this extension - I think it's very important to smooth out any rough edges for new users.


Add check proxies not none in line 683

fixes #4635
In function merge_environment_settings before entering the loop

Hi @kartikeyaj0, thanks for contributing to Requests. From the issue and this pull request it's not immediately clear how you're entering this state. Proxies will be assigned to an empty dictionary if None is passed to the session, and the docstring explicitly states it must be a dictionary.
In the event a user somehow circumvents this, I think it's better to make sure we blow up here rather than silently failing. For that reason, I don't think we're going to accept this patch at this time. If you have more information on your issue, or believe there's a compelling reason we're missing, please feel free to let us know. Thanks!


Upgrade to ember 2.15 triggers this message

Hi there,
I got this message coming from broccoli-babel-transpiler when I upgraded my ember app to ember 2.15.0
broccoli-babel-transpiler is opting out of caching due to a plugin that does not provide a caching strategy: `function () {
  return {
    visitor: {
      VariableDeclaration: function VariableDeclaration(path, file) {
        var node = path.node,
            parent = path.parent,
            scope = path.scope;

        if (!isBlockScoped(node)) return;
        convertBlockScopedToVar(path, null, parent, scope, true);

        if (node._tdzThis) {
          var nodes = [node];

          for (var i = 0; i < node.declarations.length; i++) {
            var decl = node.declarations[i];
            if (decl.init) {
              var assign = t.assignmentExpression("=", decl.id, decl.init);
              assign._ignoreBlockScopingTDZ = true;
              nodes.push(t.expressionStatement(assign));
            }
            decl.init = file.addHelper("temporalUndefined");
          }

          node._blockHoist = 2;

          if (path.isCompletionRecord()) {
            nodes.push(t.expressionStatement(scope.buildUndefinedNode()));
          }

          path.replaceWithMultiple(nodes);
        }
      },
      Loop: function Loop(path, file) {
        var node = path.node,
            parent = path.parent,
            scope = path.scope;

        t.ensureBlock(node);
        var blockScoping = new BlockScoping(path, path.get("body"), parent, scope, file);
        var replace = blockScoping.run();
        if (replace) path.replaceWith(replace);
      },
      CatchClause: function CatchClause(path, file) {
        var parent = path.parent,
            scope = path.scope;

        var blockScoping = new BlockScoping(null, path.get("body"), parent, scope, file);
        blockScoping.run();
      },
      "BlockStatement|SwitchStatement|Program": function BlockStatementSwitchStatementProgram(path, file) {
        if (!ignoreBlock(path)) {
          var blockScoping = new BlockScoping(null, path, path.parent, path.scope, file);
          blockScoping.run();
        }
      }
    }
  };
}`.

Getting the same issue on ember 2.15.1
Then subsequent builds fail on some "Cannot read property 'visitors' of undefined" I do not use the word visitors within my app, so it is somewhere in the ember-stack.
Seems like this is related to: https://github.com/ember-cli/babel-plugin-feature-flags/issues/13

Full console output from ember serve:
DEPRECATION: ember-cli-htmlbars-inline-precompile is opting out of caching due to an AST plugin that does not provide a caching strategy: `conditional-compile-template`.
DEPRECATION: ember-cli-htmlbars is opting out of caching due to an AST plugin that does not provide a caching strategy: `conditional-compile-template`.
DEPRECATION: Addon files were detected in `ember-app/node_modules/ember-delay/addon`, but no JavaScript preprocessors were found for `ember-delay`. Please make sure to add a preprocessor (most likely `ember-cli-babel`) to in `dependencies` (NOT `devDependencies`) in `ember-delay`'s `package.json`.
DEPRECATION: Addon files were detected in `ember-app/node_modules/ember-backoff/addon`, but no JavaScript preprocessors were found for `ember-backoff`. Please make sure to add a preprocessor (most likely `ember-cli-babel`) to in `dependencies` (NOT `devDependencies`) in `ember-backoff`'s `package.json`.
Livereload server on https://localhost:49153
broccoli-babel-transpiler is opting out of caching due to a plugin that does not provide a caching strategy: `function () {
  return {
    visitor: {
      VariableDeclaration: function VariableDeclaration(path, file) {
        var node = path.node,
            parent = path.parent,
            scope = path.scope;

        if (!isBlockScoped(node)) return;
        convertBlockScopedToVar(path, null, parent, scope, true);

        if (node._tdzThis) {
          var nodes = [node];

          for (var i = 0; i < node.declarations.length; i++) {
            var decl = node.declarations[i];
            if (decl.init) {
              var assign = t.assignmentExpression("=", decl.id, decl.init);
              assign._ignoreBlockScopingTDZ = true;
              nodes.push(t.expressionStatement(assign));
            }
            decl.init = file.addHelper("temporalUndefined");
          }

          node._blockHoist = 2;

          if (path.isCompletionRecord()) {
            nodes.push(t.expressionStatement(scope.buildUndefinedNode()));
          }

          path.replaceWithMultiple(nodes);
        }
      },
      Loop: function Loop(path, file) {
        var node = path.node,
            parent = path.parent,
            scope = path.scope;

        t.ensureBlock(node);
        var blockScoping = new BlockScoping(path, path.get("body"), parent, scope, file);
        var replace = blockScoping.run();
        if (replace) path.replaceWith(replace);
      },
      CatchClause: function CatchClause(path, file) {
        var parent = path.parent,
            scope = path.scope;

        var blockScoping = new BlockScoping(null, path.get("body"), parent, scope, file);
        blockScoping.run();
      },
      "BlockStatement|SwitchStatement|Program": function BlockStatementSwitchStatementProgram(path, file) {
        if (!ignoreBlock(path)) {
          var blockScoping = new BlockScoping(null, path, path.parent, path.scope, file);
          blockScoping.run();
        }
      }
    }
  };
}`.
broccoli-babel-transpiler is opting out of caching due to a plugin that does not provide a caching strategy: `function () {
  return {
    visitor: {
      VariableDeclaration: function VariableDeclaration(path, file) {
        var node = path.node,
            parent = path.parent,
            scope = path.scope;

        if (!isBlockScoped(node)) return;
        convertBlockScopedToVar(path, null, parent, scope, true);

        if (node._tdzThis) {
          var nodes = [node];

          for (var i = 0; i < node.declarations.length; i++) {
            var decl = node.declarations[i];
            if (decl.init) {
              var assign = t.assignmentExpression("=", decl.id, decl.init);
              assign._ignoreBlockScopingTDZ = true;
              nodes.push(t.expressionStatement(assign));
            }
            decl.init = file.addHelper("temporalUndefined");
          }

          node._blockHoist = 2;

          if (path.isCompletionRecord()) {
            nodes.push(t.expressionStatement(scope.buildUndefinedNode()));
          }

          path.replaceWithMultiple(nodes);
        }
      },
      Loop: function Loop(path, file) {
        var node = path.node,
            parent = path.parent,
            scope = path.scope;

        t.ensureBlock(node);
        var blockScoping = new BlockScoping(path, path.get("body"), parent, scope, file);
        var replace = blockScoping.run();
        if (replace) path.replaceWith(replace);
      },
      CatchClause: function CatchClause(path, file) {
        var parent = path.parent,
            scope = path.scope;

        var blockScoping = new BlockScoping(null, path.get("body"), parent, scope, file);
        blockScoping.run();
      },
      "BlockStatement|SwitchStatement|Program": function BlockStatementSwitchStatementProgram(path, file) {
        if (!ignoreBlock(path)) {
          var blockScoping = new BlockScoping(null, path, path.parent, path.scope, file);
          blockScoping.run();
        }
      }
    }
  };
}`.
'instrument' is imported from external module 'ember-data/-debug' but never used
The Broccoli Plugin: [BroccoliMergeTrees: TreeMerger (preprocessedApp & templates)] failed with:
TypeError: Cannot read property 'visitors' of undefined
    at preprocess (ember-app/node_modules/ember-source/dist/ember-template-compiler.js:3921:47)
    at exports.precompile (ember-app/node_modules/ember-source/dist/ember-template-compiler.js:1551:42)
    at Object.exports.default (ember-app/node_modules/ember-source/dist/ember-template-compiler.js:16398:12)
    at Object.template (ember-app/node_modules/ember-cli-htmlbars/utils.js:29:40)
    at TemplateCompiler.processString (ember-app/node_modules/ember-cli-htmlbars/index.js:76:40)
    at Promise.then.result.output (ember-app/node_modules/broccoli-persistent-filter/lib/strategies/persistent.js:41:23)
    at initializePromise (ember-app/node_modules/rsvp/dist/rsvp.js:589:5)
    at new Promise$1 (ember-app/node_modules/rsvp/dist/rsvp.js:1077:33)
    at ember-app/node_modules/broccoli-persistent-filter/lib/strategies/persistent.js:40:18
    at tryCatch (ember-app/node_modules/rsvp/dist/rsvp.js:539:12)
    at invokeCallback (ember-app/node_modules/rsvp/dist/rsvp.js:554:13)
    at publish (ember-app/node_modules/rsvp/dist/rsvp.js:522:7)
    at flush (ember-app/node_modules/rsvp/dist/rsvp.js:2414:5)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)

The broccoli plugin was instantiated at:
    at BroccoliMergeTrees.Plugin (ember-app/node_modules/broccoli-plugin/index.js:7:31)
    at new BroccoliMergeTrees (ember-app/node_modules/ember-cli/node_modules/broccoli-merge-trees/index.js:16:10)
    at Function.BroccoliMergeTrees [as _upstreamMergeTrees] (ember-app/node_modules/ember-cli/node_modules/broccoli-merge-trees/index.js:10:53)
    at mergeTrees (ember-app/node_modules/ember-cli/lib/broccoli/merge-trees.js:85:33)
    at EmberApp._mergeTrees (ember-app/node_modules/ember-cli/lib/broccoli/ember-app.js:1832:12)
    at EmberApp.appAndDependencies (ember-app/node_modules/ember-cli/lib/broccoli/ember-app.js:1130:51)
    at EmberApp.javascript (ember-app/node_modules/ember-cli/lib/broccoli/ember-app.js:1253:30)
    at EmberApp.toArray (ember-app/node_modules/ember-cli/lib/broccoli/ember-app.js:1689:12)
    at EmberApp.toTree (ember-app/node_modules/ember-cli/lib/broccoli/ember-app.js:1711:38)
    at module.exports (ember-app/ember-cli-build.js:129:14)
    at Builder.setupBroccoliBuilder (ember-app/node_modules/ember-cli/lib/models/builder.js:56:19)
    at new Builder (ember-app/node_modules/ember-cli/lib/models/builder.js:30:10)
    at ServeTask.run (ember-app/node_modules/ember-cli/lib/tasks/serve.js:24:55)
    at Promise.resolve.then (ember-app/node_modules/ember-cli/lib/models/command.js:243:46)
    at tryCatch (ember-app/node_modules/rsvp/dist/rsvp.js:539:12)
    at invokeCallback (ember-app/node_modules/rsvp/dist/rsvp.js:554:13)
    at ember-app/node_modules/rsvp/dist/rsvp.js:629:16
    at flush (ember-app/node_modules/rsvp/dist/rsvp.js:2414:5)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)

@nizarayari I figured out that, at least in the app I am working on, I needed to upgrade ember-hammertime.
If you look at the offending line's source code:
pluginResult = transform(env);
traverse(program, pluginResult.visitors);

and log the transform you will see a ton of [Function] but! eventually, you will see [Function: bound TouchActionSupport] right before the exception occurs.
TouchActionSupport comes from ember-hammertime.
The latest version of ember-hammertime has some fix for AST Parsing:

So, maybe upgrade to the latest ember-hammertime and see what happens?
Hope this fixes things for you!


[AIRFLOW-3587] Remove unnecessary condition checks in dag_stats & task_stats

Jira

https://issues.apache.org/jira/browse/AIRFLOW-3587

Description

[x] Here are some details about my PR, including screenshots of any UI changes:

These two condition checks (introduced in
https://github.com/apache/incubator-airflow/pull/4368) will always pass, and are not necessary.
Reasoning:

if "all_dags" in filter_dag_ids == True, filter_dag_ids will be updated into a list of all DAG IDs (no "all_dags" inside)
if "all_dags" in filter_dag_ids == False, filter_dag_ids will not be touched. It will still be a set of DAG IDs, or empty set.

In either case,

there is no point to check whether "all_dags" is in filter_dag_ids, because for sure it will not.
then what's the point to check dag_id in filter_dag_ids in a for loop of for dag_id in filter_dag_ids?

Code Quality

[x] Passes flake8

@Fokko PTAL.
This PR is to remove two unnecessary condition checks in https://github.com/apache/incubator-airflow/pull/4368 authored by @ffinfo (@ffinfo PTAL as well).
Please check my reasoning above in the PR message.
Kindly let me know if I have misunderstood or missed anything. Thanks.

Codecov Report

Merging #4395 into master will decrease coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #4395      +/-   ##
==========================================
- Coverage   78.17%   78.16%   -0.01%
==========================================
  Files         204      204
  Lines       16529    16527       -2
==========================================
- Hits        12921    12919       -2
  Misses       3608     3608

Impacted Files
Coverage Δ

airflow/www_rbac/views.py
72.55% <100%> (-0.05%)
:arrow_down:

Continue to review full report at Codecov.

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

Codecov Report

Merging #4395 into master will decrease coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #4395      +/-   ##
==========================================
- Coverage   78.17%   78.16%   -0.01%
==========================================
  Files         204      204
  Lines       16529    16527       -2
==========================================
- Hits        12921    12919       -2
  Misses       3608     3608

Impacted Files
Coverage Δ

airflow/www_rbac/views.py
72.55% <100%> (-0.05%)
:arrow_down:

Continue to review full report at Codecov.

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

Codecov Report

Merging #4395 into master will decrease coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #4395      +/-   ##
==========================================
- Coverage   78.17%   78.16%   -0.01%
==========================================
  Files         204      204
  Lines       16529    16527       -2
==========================================
- Hits        12921    12919       -2
  Misses       3608     3608

Impacted Files
Coverage Δ

airflow/www_rbac/views.py
72.55% <100%> (-0.05%)
:arrow_down:

Continue to review full report at Codecov.

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

to give more context, if a user with a role of Admin, he will have all-dags privilege which could view/edit all the dags, otherwise, it will filter the dag only based on the role.

Thanks @feng-tao .
The logic you mentioned is in https://github.com/apache/incubator-airflow/pull/4395/files#diff-77df5adb32d964f37748c4557ffb3c4cR366 , which is not touched.
The two lines I tries to remove in this PR were introduced by @ffinfo 6 days ago.

thanks @XD-DENG for the clarification, I misunderstood that it removed the change for checking all-dags . The change lgtm in this case.


User::lastLogin() does not return login data that logged in by username/password

https://github.com/codeigniter4/shield/blob/e92712645e19ca6ce9db54bc4065d51fbebdb7f2/src/Entities/User.php#L187-L200

I don't understand the problem, but this might be a note to yourself anyway.

When username/password (not email/password) login can be used, the identifier is the username.
https://github.com/codeigniter4/shield/blob/0cd72f8cce31611e4b8adffa129a4485aeaa3f2c/src/Authentication/Authenticators/Session.php#L231-L237
But the where in the method specifies email.
https://github.com/codeigniter4/shield/blob/e92712645e19ca6ce9db54bc4065d51fbebdb7f2/src/Entities/User.php#L197

Ohhh right, thanks for explaining.

Probably a orWhere would fix this, but it brings up the question: what if developers store their own identifiers? Do we need a more comprehensive mapping from User identities to attempts?

It seems we should argue the use case of the method.
What is the method for?
It seems the table records all login attempts (password/magic link/access token) success/failed.

A good question for @lonnieezell! It isn't used internally but I'm guessing it is to make it easy to display "Last login _____". Maybe the "failed" option was going to be part of the "limit failure attempts" feature that we recently dropped?

All good points. Here's what I think: we remove the "failed" aspect and just makes this return the last successful by user_id. If we want a second method to return failures, make it accept an identifier and type so the developer knows what they are getting ahead of time.

The table records all attempts to login not just for last login ... it also provides a history of attempts so if a bot or hacker is attempting to login it can be tracked.

Okay, it is the purpose for the table. Both success and failure attempts should be recorded.
I think it is better not to record Access Token login in the table.
It is a kind of access log and users probably don't think it is their login.
Another table for Access Token login (e.g. auth_token_logins) would be needed.
If auth_logins records only Session Auth logins, finding by user_id can return the last login.
If so, the table name should be auth_session_logins?

I don't think it's important to rename the table. Other handlers could reused the table.

So, you're correct that if their primary identifier is changed then we cannot track them, and I don't think there's a way around that.

To display "Last login _____", only successful logins are needed.
So these records have user_id. Therefore finding by user_id in Session Auth logins is okay.
user_id is never changed.
If you like one logins table, how about adding a column to record handler?

I don't think Access Token logins are included in the user's definition of a login.
Access Token logins do not fire the login event.
I still think it would be better to keep the tables separate as the concepts are a bit different.

I am ok with that. We might think about a config setting on whether to track that or not, with it set to track by default.

Then how about these tables?
auth_logins: record login attempts. A login means users think it is a login. To login, users do action(s) like posting a form.
auth_token_logins: record Bearer Token type login attempts. Now it records login attempts by Access Token Authenticator.

That sounds good to me.

PR looks good. Back to this discussion, I still think we should split this method out. lastLogin() as a name does not seem to me that it would ever return "last failed attempt using my email/username", nor do I see a scenario where that would be useful from the Entity.
If we drop the "failed" flag this can use user_id and then changed identifiers won't affect it. If we really want the "failed" option we can make it a separate method that takes the appropriate parameters so as to be clear what you are getting.

If we drop the "failed" flag

I think this is necessary and useful.

@datamweb When a developer would use $user->lastLogin(tue)?
For what?

Events is a core functionality of CI4.
The file is app/Config/Events.php. You already have it if you installed CI4.
We are discussing User::lastLogin(), not the event failedLogin.
https://github.com/codeigniter4/shield/blob/7005aa568dd5e63093f3e78e5bdead663d1f4c68/src/Entities/User.php#L230
It is a method to get the last login attempt (log) from the database.


Feature/add static assets doc

Resolves #66, #78 and #81.

Codecov Report

Merging #82 (909148b) into main (8f9214b) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #82   +/-   ##
=======================================
  Coverage   58.51%   58.51%
=======================================
  Files          69       69
  Lines         716      716
  Branches      125      125
=======================================
  Hits          419      419
  Misses        267      267
  Partials       30       30

Continue to review full report at Codecov.

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


Add NavigationMesh border_size property for tile baking

Adds NavigationMesh border_size property for tile baking.
This allows users to partition larger game worlds into regions that have navigation meshes with easy to align tile edges. This tile edges can be efficiently merged by the navigation map using edgekeys. It also avoids problems with the agent_radius offset affecting the tile edges.
The difference between baking AABB and border size is, that the AABB limits the entire source geometry used in the baking as a bounding area while the border size limits the surface of the resulting navigation mesh.
This means in conjunction they can be used to limit the final navigation mesh without having unwanted offsets by e.g. agent radius at tile edges.

When users do the setup the border_size should be larger than the agent_radius and the AABB should be grown by the exact amount of the border_size.
The border size that ReCast uses internally is in voxel units, so the Godot border size float is ceiled to the cell size.
To bake a "perfect" aligned tile navigation mesh additional properties need to be considered. E.g. the edge_max_error should be at or blow 1.0.

We merged the 2D counterpart, is this one also good to go? CC @Scony

All good @akien-mga

Thanks!


Re-organized README and added a TOC

@twopirllc,
I took the initiative to re-organize a bit the README. I also added a table of contents to improve readability.
Let me know what you think,
DrPaprikaa

@DrPaprikaa,
Thanks!
I wonder if people will read more of the README that way before submitting an Issue?
KJ

Since the README is quite long, I hope so ! It's easier that way, IMO, to find information.
Cheers,
DrParikaa

Since the README is quite long, I hope so ! It's easier that way, IMO, to find information.
Cheers,
DrPaprikaa

@twopirllc,
For reference, tdqm has a very clear & organized README, it can be an example for improvements to pandas-ta's README. I hope this helps !
Cheers,
DrPaprikaa

Hi @DrPaprikaa,
There are definitely some good READMEs out there. Thanks for the reference, I'll check it out.
Thanks,
KJ

Hi @twopirllc,
I see the new README in development, it's impressive ! Really nice :)
DrPaprikaa

@DrPaprikaa,
Thanks! Thanks for the suggestions. Also, I hope it is easy to understand and descriptive enough.
KJ


How to get cookies as a string?

What is the inverse of parsing cookies from a string?
// parsing from a string:
const cookies = new Cookies(req.headers.cookie);

// serializing to a string:
cookies.???

getAll seems to return an object.

JSON.stringify(cookies)
{"name":"value","cookie":"monster"}
Not sure why you'd want to do that?
Or just for fun, change the output
Object.keys(obj).map( (key, value) => ${key}=${value}).join('')
name=0cookie=1

Actually I forgot where exactly we needed that – we're using universal-cookie in a Next.js app so maybe serializing for later hydration? I'm not totally sure right now.
The point was to get a string that will be parseable via new Cookie(THAT_STRING) again. Will JSON.strinfigy produce that? Will there be issues with "special characters" like &?

You don't need to manage all that. You just need to plug universal-cookie-express with Next.js and it will take care of everything for you (sending the cookies to the browser when they are set on the server, reading cookies, etc.)

You don't have an express server in Next so I don't see how you would do that directly


Failed to run kubernetes:v1.24.1

What happened:
Run the command below, and :
tar zxvf sealer-v0.8.5-linux-amd64.tar.gz && mv sealer /usr/bin
sealer run kubernetes:v1.24.1 \
  --masters <IP_ADDRESS> \
  --nodes <IP_ADDRESS>,<IP_ADDRESS> --passwd xxx

And got the result:
2022-06-17 15:28:53 [INFO] [local.go:288] Start to create a new cluster: master [<IP_ADDRESS>], worker [<IP_ADDRESS> <IP_ADDRESS>]
Start to Pull Image kubernetes:v1.24.1
b9269efe5e91: pull completed
d8e4ab010cb2: pull completed
b5f16e8c0b74: pull completed
4842b2340be2: pull completed
b5f16e8c0b74: already exists
4842b2340be2: already exists
d8e4ab010cb2: already exists
b9269efe5e91: already exists
b5f16e8c0b74: already exists
b9269efe5e91: already exists
4842b2340be2: already exists
d8e4ab010cb2: already exists
b5f16e8c0b74: already exists
4842b2340be2: already exists
b9269efe5e91: already exists
d8e4ab010cb2: already exists
Success to Pull Image kubernetes:v1.24.1
copying files to <IP_ADDRESS>: 28/28
copying files to <IP_ADDRESS>: 28/28
2022-06-17 15:29:47 [INFO] [kube_certs.go:234] APIserver altNames :  {map[apiserver.cluster.local:apiserver.cluster.local iz2ze53hi4jejgp7k8m2n3z:iz2ze53hi4jejgp7k8m2n3z kubernet
es:kubernetes kubernetes.default:kubernetes.default kubernetes.default.svc:kubernetes.default.svc kubernetes.default.svc.cluster.local:kubernetes.default.svc.cluster.local localh
ost:localhost] map[<IP_ADDRESS>:<IP_ADDRESS> <IP_ADDRESS>:<IP_ADDRESS> <IP_ADDRESS>:<IP_ADDRESS> <IP_ADDRESS>:<IP_ADDRESS>]}
2022-06-17 15:29:47 [INFO] [kube_certs.go:254] Etcd altnames : {map[iz2ze53hi4jejgp7k8m2n3z:iz2ze53hi4jejgp7k8m2n3z localhost:localhost] map[<IP_ADDRESS>:<IP_ADDRESS> <IP_ADDRESS>:192
.168.0.206 ::1:::1]}, commonName : iz2ze53hi4jejgp7k8m2n3z
2022-06-17 15:29:49 [INFO] [kubeconfig.go:267] [kubeconfig] Writing "admin.conf" kubeconfig file
2022-06-17 15:29:49 [INFO] [kubeconfig.go:267] [kubeconfig] Writing "controller-manager.conf" kubeconfig file

2022-06-17 15:29:49 [INFO] [kubeconfig.go:267] [kubeconfig] Writing "scheduler.conf" kubeconfig file

2022-06-17 15:29:50 [INFO] [kubeconfig.go:267] [kubeconfig] Writing "kubelet.conf" kubeconfig file

++ dirname init-registry.sh
+ cd .
+ REGISTRY_PORT=5000
+ VOLUME=/var/lib/sealer/data/my-cluster/rootfs/registry
+ REGISTRY_DOMAIN=sea.hub
+ container=sealer-registry
+++ pwd
++ dirname /var/lib/sealer/data/my-cluster/rootfs/scripts
+ rootfs=/var/lib/sealer/data/my-cluster/rootfs
+ config=/var/lib/sealer/data/my-cluster/rootfs/etc/registry_config.yml
+ htpasswd=/var/lib/sealer/data/my-cluster/rootfs/etc/registry_htpasswd
+ certs_dir=/var/lib/sealer/data/my-cluster/rootfs/certs
+ mkdir -p /var/lib/sealer/data/my-cluster/rootfs/registry
+ nerdctl ps -a
+ grep sealer-registry
+ rm -rf /var/lib/nerdctl/1935db59/names/default/sealer-registry
+ regArgs='-d --restart=always --net=host --name sealer-registry -v /var/lib/sealer/data/my-cluster/rootfs/certs:/certs -v /var/lib/sealer/data/my-cluster/rootfs/registry:/var/li
b/registry -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/sea.hub.crt -e REGISTRY_HTTP_TLS_KEY=/certs/sea.hub.key'
+ '[' -f /var/lib/sealer/data/my-cluster/rootfs/etc/registry_config.yml ']'
+ '[' -f /var/lib/sealer/data/my-cluster/rootfs/etc/registry_htpasswd ']'
+ nerdctl run -d --restart=always --net=host --name sealer-registry -v /var/lib/sealer/data/my-cluster/rootfs/certs:/certs -v /var/lib/sealer/data/my-cluster/rootfs/registry:/var
/lib/registry -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/sea.hub.crt -e REGISTRY_HTTP_TLS_KEY=/certs/sea.hub.key registry:2.7.1
c2ddbc949abd6b2427344b2d92da2f02bb1b751009e939636f6f3c69d2d0a590
+ sleep 1
+ check_registry
+ n=1
+ ((  n <= 3  ))
+ nerdctl inspect sealer-registry
+ grep '"Status": "running"'
            "Status": "running",
+ break
2022-06-17 15:29:51 [INFO] [init.go:251] start to init master0...
2022-06-17 15:30:12 [INFO] [init.go:206] join command is: kubeadm join  apiserver.cluster.local:6443 --token vs7et8.06767bhy1ifvg766 \
 --discovery-token-ca-cert-hash sha256:9d9b22020b2cb6a023faa3e7f5d683e5da3559c97a903f143df11fa8e1712bae \
        --control-plane --certificate-key df1b789cac983292fda4efcd29049cba714422a85067c5fdb45744947e0f4ae4

copying files to <IP_ADDRESS>: 30/30
copying files to <IP_ADDRESS>: 30/30
2022-06-17 15:30:14 [INFO] [init.go:206] join command is: kubeadm join  apiserver.cluster.local:6443 --token 965ixd.j4f7ves7gy92bk3m --discovery-token-ca-cert-hash sha256:9d9b220
20b2cb6a023faa3e7f5d683e5da3559c97a903f143df11fa8e1712bae

2022-06-17 15:30:14 [INFO] [masters.go:520] join token: 965ixd.j4f7ves7gy92bk3m hash: sha256:9d9b22020b2cb6a023faa3e7f5d683e5da3559c97a903f143df11fa8e1712bae certifacate key:
2022-06-17 15:30:14 [INFO] [nodes.go:92] Start to join <IP_ADDRESS> as worker
2022-06-17 15:30:14 [INFO] [nodes.go:92] Start to join <IP_ADDRESS> as worker
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/care/care.go:16] VsAndRsCare DeleteVirtualServer
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/utils/utils.go:21] SplitServer debug: IP: <IP_ADDRESS>, Port: 6443
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/utils/utils.go:21] SplitServer debug: IP: <IP_ADDRESS>, Port: 6443
2022-06-17 15:30:15 [WARN] [sealer/vendor/github.com/sealyun/lvscare/service/service.go:75] DeleteVirtualServer error:  no such process
2022-06-17 15:30:15 [WARN] [sealer/vendor/github.com/sealyun/lvscare/care/care.go:19] VsAndRsCare DeleteVirtualServer: no such process
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/service/service.go:129] IsVirtualServerAvailable warn: virtual server is empty.
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/utils/utils.go:21] SplitServer debug: IP: <IP_ADDRESS>, Port: 6443
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/utils/utils.go:21] SplitServer debug: IP: <IP_ADDRESS>, Port: 6443
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/utils/utils.go:21] SplitServer debug: IP: <IP_ADDRESS>, Port: 6443
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/utils/utils.go:21] SplitServer debug: IP: <IP_ADDRESS>, Port: 6443
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/utils/utils.go:21] SplitServer debug: IP: <IP_ADDRESS>, Port: 6443
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/care/care.go:16] VsAndRsCare DeleteVirtualServer
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/utils/utils.go:21] SplitServer debug: IP: <IP_ADDRESS>, Port: 6443
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/utils/utils.go:21] SplitServer debug: IP: <IP_ADDRESS>, Port: 6443
2022-06-17 15:30:15 [WARN] [sealer/vendor/github.com/sealyun/lvscare/service/service.go:75] DeleteVirtualServer error:  no such process
2022-06-17 15:30:15 [WARN] [sealer/vendor/github.com/sealyun/lvscare/care/care.go:19] VsAndRsCare DeleteVirtualServer: no such process
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/service/service.go:129] IsVirtualServerAvailable warn: virtual server is empty.
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/utils/utils.go:21] SplitServer debug: IP: <IP_ADDRESS>, Port: 6443
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/utils/utils.go:21] SplitServer debug: IP: <IP_ADDRESS>, Port: 6443
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/utils/utils.go:21] SplitServer debug: IP: <IP_ADDRESS>, Port: 6443
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/utils/utils.go:21] SplitServer debug: IP: <IP_ADDRESS>, Port: 6443
2022-06-17 15:30:15 [DEBG] [sealer/vendor/github.com/sealyun/lvscare/utils/utils.go:21] SplitServer debug: IP: <IP_ADDRESS>, Port: 6443
W0617 15:30:15.334228    8303 initconfiguration.go:120] Usage of CRI endpoints without URL scheme is deprecated and can cause kubelet errors in the future. Automatically prependi
ng scheme "unix" to the "criSocket" with value "/run/containerd/containerd.sock". Please update your configuration!
[preflight] Running pre-flight checks
W0617 15:30:15.347716    8305 initconfiguration.go:120] Usage of CRI endpoints without URL scheme is deprecated and can cause kubelet errors in the future. Automatically prependi
ng scheme "unix" to the "criSocket" with value "/run/containerd/containerd.sock". Please update your configuration!
[preflight] Running pre-flight checks
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...

This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.

This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.

2022-06-17 15:30:41 [INFO] [nodes.go:115] Succeeded in joining <IP_ADDRESS> as worker
2022-06-17 15:30:41 [INFO] [nodes.go:115] Succeeded in joining <IP_ADDRESS> as worker
2022-06-17 15:30:41 [INFO] [local.go:298] Succeeded in creating a new cluster, enjoy it!

No error is founded. But the nodes are not ready and the container network is not setup. And I didn't see the pod which is responsible for network.
kubectl  get no
NAME                      STATUS     ROLES           AGE   VERSION
iz2ze53hi4jejgp7k8m2n3z   NotReady   control-plane   61m   v1.24.1
iz2ze53hi4jejgp7k8m2n4z   NotReady   <none>          60m   v1.24.1
iz2ze53hi4jejgp7k8m2n5z   NotReady   <none>          60m   v1.24.1
kubectl  get po -A
NAMESPACE     NAME                                              READY   STATUS    RESTARTS   AGE
kube-system   coredns-5d49cbfd87-7h9t2                          0/1     Pending   0          61m
kube-system   coredns-5d49cbfd87-dtmgk                          0/1     Pending   0          61m
kube-system   etcd-iz2ze53hi4jejgp7k8m2n3z                      1/1     Running   0          61m
kube-system   kube-apiserver-iz2ze53hi4jejgp7k8m2n3z            1/1     Running   0          61m
kube-system   kube-controller-manager-iz2ze53hi4jejgp7k8m2n3z   1/1     Running   0          61m
kube-system   kube-lvscare-iz2ze53hi4jejgp7k8m2n4z              1/1     Running   0          61m
kube-system   kube-lvscare-iz2ze53hi4jejgp7k8m2n5z              1/1     Running   0          61m
kube-system   kube-proxy-kmvrw                                  1/1     Running   0          61m
kube-system   kube-proxy-v8lx6                                  1/1     Running   0          61m
kube-system   kube-proxy-zcdcz                                  1/1     Running   0          61m
kube-system   kube-scheduler-iz2ze53hi4jejgp7k8m2n3z            1/1     Running   0          61m

What you expected to happen:
I hope the nodes are ready.
How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:
Environment:

sealer version (use sealer version):
Cloud provider or hardware configuration:
OS (e.g: cat /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

Actually it is because there is no CNI plugin in the kubernetes:v1.24.1. Currently, we have not a proper way to trace all software in a ClusterImage. For example, this case is no CNI plugin. So we are planning to add more definition about ClusterImage or add a way for provider to describe what is included in ClusterImage.  @cheyang

This version requires you to install the CNI components yourself


Cmake support

The project does not support building with cmake.

pr: https://github.com/dkruchinin/particles/pull/2/commits/49597a17db8aa3045d117293c1bbca59331a3f15


[BUG] no login credentials

for the demo backend, there are a url and a token , but there are not admin login credentials.

Hey @ivosanchez, we cannot give the public access to demo instance because it could cause disturbance for our work and weird CMS pages :)
Skipping this credentials will not have consequences other than displaying plugins from demo instance in your local instance.
How do you see solution for this?
Propositions which currently comes to my mind:

not asking for username and password when using demo instance
some section in docs which would explain that you can safely  skip this credentials (I'd need your help where would be most helpful to put that kind of information)

it is ok. after all, that demo instance is prolly used by most people to see how well it works.  And  I think that a note saying that when prompt asks you for the credentials you can leave them blank and go ahead.

Actually, thinking more about it, Saleor has a demo that allows to get in the backend for a while and  then it resets itself so any likely changes made during the session don't persist. It might be too complicated to implement and not worth it (?)

Not in the current scope, I'm afraid, but for sure something we will discuss with Shopware team :)
Acceptance criteria

[ ] CLI informs that shopware credentials are not mandatory to run your instance


AttributeError: module 'flax.linen' has no attribute 'merge_param'

This guide suggests using nn.merge_param to combine arguments, but merge_param is only available through nn.module.merge_param. I believe it needs to be added to the import line here. I can open a PR if this is the case.

Good catch! Please do open that PR


Implement better without metadata version

I think #184 #185 is not implemented, and fetching the metadata in indexer is hard part.
So we can prioritize this version.

I think without this, so many data is not supported, so we need this.


13199 Misc schema updates

Issue #: bcgov/entity#13199
Description of changes:

updated NAICS data in Correction Information interface
save/restore NAICS object in filing.correction.business
app version = 3.5.16

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the bcrs-entities-create-ui license (Apache 2.0).

I temporarily marked this as Draft while confirming something with Lekshmi. No change needed so back to Ready For Review.


feat(consensus): Optimism Deposit Tx

Description
Ports the Optimism TxDeposit transaction type from reth-primitives for use in down-stream users of alloy-consensus.
The type is hidden behind a non-default optimism feature flag.

NACK. this work belongs in a separate workspace, not as feature flags. Would recommend a crate named alloy-network-optimism, The recommended implementation for this is as follows:
pub enum OptimismTxEnvelope { ... }
pub enum OptimismReceiptEnvelope { ... }

impl Network for Optimism {
    type TxEnvelope = OptimismTxEnvelope;
    type ReceiptEnvelope = OptimismReceiptEnvelope;

    ...
}

we'll pull this to alloy-rs/op-alloy and separate maintainership, the network trait abstraction was built specifically for this as james wrote


Regular polygons

Hello! I've successfully implemented regular polygons as outlined in issue #26. I've added support for drawing square, pentagon, and hexagon using the draw_poly function.
Here are some screenshots showcasing the new functionality:
Square Polygon:

Pentagon Polygon:

Hexagon Polygon:

Please review and merge this pull request at your convenience. If you have any feedback or questions, feel free to let me know. Thanks!

@joanita-51 Great work! 🎉

Make regular polygons -- triangle, square, pentagon, hexagon -- in the same canvas.

Can you please put all shapes in the same file? It's up to you how you want to align them -- concentric, as a grid of 4, aligned in a row or a column -- however you like it.
Don't worry about making types and functions with center points to do this. It's okay to just use hardcoded numbers too for points. The point of this exercise is to become familiar with the API for graphics library, so we can look at these examples when adding something new later.

@nikochiko When I use the calculated values as my points, I receive the following warnings.

@joanita-51 the warnings are there because there are a bunch of unused fields. You can go ahead and remove that code. It isn't needed, you can directly pass the points to Graphics.draw_poly.

Thank you @nikochiko I've added the polygon points and also placed the polygons in the same file. To avoid overlap with other shapes, I halved the pentagon's size. Are there any other modifications I can make?

@joanita-51 thanks for the changes! this looks good to me.
can you add a screenshot of the rendered image now?

Thank you very much for your assistance, @nikochiko. Is this the image you are referring to as 'rendered'?

Yes! This is good enough. Thanks for the changes.


Replace RestAssured.when with Spring WebTestClient

Fixes: #221

@spencergibb Is this what you had in mind?

Should I update the PR or should this be done later?

I would take care of the imports now before it is merged

@ryanjbaxter Fixed :)

Closed with some polish via 8be84431bc2e2a64122846e27a206cff3e99bd17

I was able to remove the reactor-spring dependency without a problem.

@spencergibb great to hear! Thanks!


Removed duplicated code with rendering::sceneFromFirstRenderEngine

Signed-off-by: ahcorde<EMAIL_ADDRESS>Enhancement
Summary
Related to this PR in ignition-renderin https://github.com/ignitionrobotics/ign-rendering/pull/320#event-4749407284. It uses the helper function rendering::sceneFromFirstRenderEngine to get the first scene that can be found in any rendering engine.
Checklist

[x] Signed all commits for DCO
[ ] Added tests
[ ] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[x] codecheck passed (See contributing)
[x] All tests passed (See test coverage)
[ ] While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge

@osrf-jenkins retest this please

@osrf-jenkins retest this please

@osrf-jenkins retest this please

@osrf-jenkins retest this please


Addition of an overview for the results section data download

Restructured slides
Link to upload section
New introduction

Solves #3586


Add documentation

Adds documentation webpage to the project.
At the moment this is being served from this branch (gh-pages) at http://ghp.wellcomecollection.org/WellcomeML/docs/_build/html/index.html. We will have to change the domain name to wellcomedatalabs.
After this branch is merged, I will switch the docs to generate from master/docs instead.
Subsequently, docs will be generated automatically with new releases, and/or can be changed at any time by following the new procedure in the README.md.
2.2 Contributing to the docs
Make changes to the .rst files in /docs (please do not change the ones starting by wellcomeml as those are generated automatically)
Navigate to the root repository and run
make update-docs

Codecov Report

Merging #78 into master will increase coverage by 1.27%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #78      +/-   ##
==========================================
+ Coverage   75.84%   77.11%   +1.27%
==========================================
  Files          33       37       +4
  Lines        1217     1499     +282
==========================================
+ Hits          923     1156     +233
- Misses        294      343      +49

Impacted Files
Coverage Δ

wellcomeml/ml/frequency_vectorizer.py
80.76% <0.00%> (-10.35%)
:arrow_down:

wellcomeml/__main__.py
0.00% <0.00%> (ø)

wellcomeml/ml/bert_vectorizer.py
100.00% <0.00%> (ø)

wellcomeml/ml/constants.py

wellcomeml/utils.py
100.00% <0.00%> (ø)

wellcomeml/datasets/conll.py
63.63% <0.00%> (ø)

wellcomeml/ml/sent2vec_vectorizer.py
80.00% <0.00%> (ø)

wellcomeml/ml/doc2vec_vectorizer.py
83.92% <0.00%> (ø)

wellcomeml/datasets/winer.py
82.06% <0.00%> (ø)

wellcomeml/ml/vectorizer.py
88.88% <0.00%> (+0.42%)
:arrow_up:

... and 4 more

Continue to review full report at Codecov.

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


[Announcement] iPokeGO is now available on the AppStore !

Hello all !
I have some great news today. iPokeGO is now officially available on the AppStore.
Here is the link :

Of course this repo will always be open. I would also be more active to add new functionality 👍
Thanks again for all contributors !

That's great, no more compiling every week. Although I hope you keep it updated regularly.

great work and congratulation on your acceptation on the app store xD

@cyan Thanks, it was difficult ^^

Do you have any setting for using app? I do not own any server :(

You need to own one or find one (good luck?)

just bought the remove-ad in-app, thank you for this! I can't wait for a public 2.4 <3

@HypeZ85 Thanks !

Hi! Is there any chance that the app will be updated in the store to 2.4? The ipa install just keeps on crashing when I open it. Would love to set IVs!

@Rageltjie Yeah of course, I'm going to push the new version this week !

@istornz That is awesome man. I can't wait. PS, I also bought the remove-ad-in-app. Great app!

@Rageltjie Thx a lot !
V2.4 now available :)


Issue2- for simple gaussain KDE

These changes will be for simple Gaussian KDE. At the moment I just add a simple class with two methods to prepare and evaluate KDE given an array for training and bandwidth choice for Gaussian Kernels.

It is not informative to call this PR 'Issue2', that does not tell someone reading it what is the content of the change.
Also can you fix the typo in the name (gaussain)


Add better aggregate controls

We have a single Aggregate button which aggregates with the mean operation. It would be useful to have multiple controls for options like: Aggregate Sum, Aggregate Mean, Aggregate Group-By

We have a single Aggregate button which aggregates with the mean operation. It would be useful to have multiple controls for options like: Aggregate Sum, Aggregate Mean,  Aggregate Group-By

It creates a group-by object instead of a dataframe, where the aggregate function can later be specified in code.

ah that makes sense.

To check:

add warning when aggregating with sum operation, if the field is not aggregate encoding


High GPU Usage

Hi,
I am experiencing incredibly high GPU usage on my PIXI implementation.
It's not my GC, because I generally run a low % on most websites with an implementation of PIXI.
However with the below code I run between 50% and 80% of my GPU constantly.
Am I missing a crucial element in my code?
let app = new PIXI.Application({
    width: 200,         // default: 800
    height: 200,        // default: 600
    antialias: true,    // default: false
    transparent: true, // default: false
    resolution: 1,       // default: 1
  });
document.body.appendChild(app.view);

app.renderer.view.style.position = "absolute";
app.renderer.view.style.display = "block";
app.renderer.autoResize = true;
app.renderer.resize(window.innerWidth, window.innerHeight);

let target = new PIXI.Graphics();
let targetx = 1030;
let targety = 768;

target.lineStyle(2,0xFFFFFF,1);
target.drawCircle(targetx, targety,5);
target.endFill();

target.lineStyle(2,0xFFFFFF,1);
target.drawCircle(targetx, targety,10);
target.endFill();

target.lineStyle(1,0xFFFFFF,1);
target.drawCircle(targetx, targety,15);
target.endFill();

target.filters = [
    new PIXI.filters.GlowFilter(10, 2, 0, 0x00c9fb, 0.5)
];

app.stage.addChild(target);

MacOS, retina? turn antialias off, plug in power cable.

Hi @savage-na - Did you work out what the performance drain was?

hi, i have the same problem,  did you solve this problem

How do you measure "GPU usage"?

That's because if you disable hardware acceleration you will be using the canvas renderer therefore you see a drop in performance

@macguffin absolutely, just worthwhile noting :) Another 'duh' point, but worthy to note, is if you turn off AntiAliasing then GPU usage decreases (albeit marginally)

How big is innerWidth/innerHeight? Do you have a running example that reproduces the issue?


Add "atem: Startup State: Load" capability

In the ATEM Companion module I see a command "atem: Startup State: Save". Is there no "atem: Startup State: Load" to allow the setting of an ATEM to a "known state" [assuming one saved the startup state via the GUI?

As far as I can tell based on the official software and the SDK, there is no way to do this. The only solution is to physically power cycle the atem.
So I don't think there is anything we can do for this. If anyone knows of or discovers a way this can be done then this can be reopened.


mpfs/knsh: Add C++ support

Increase the kernel stack size to 2K because it overflows when executing
dtors.
Summary
Adds CXX support for kernel mode in MPFS
Impact
MPFS only
Testing
mpfs icicle:knsh

The build error is the same as here: https://github.com/apache/incubator-nuttx-apps/pull/1171
I'll do rebase on Friday

Don't think the CI error is my doing:
[chip/45701c0.zip]
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of chip/45701c0.zip or
        chip/45701c0.zip.zip, and cannot find chip/45701c0.zip.ZIP, period.
make[1]: *** [chip/esp-wireless-drivers-3rdparty] Error 9
make[1]: Target `context' not remade because of errors.
make: *** [arch/xtensa/src/.context] Error 2
make: Target `all' not remade because of errors.
/Users/runner/work/incubator-nuttx/incubator-nuttx/sources/nuttx/tools/testbuild.sh: line 257: /Users/runner/work/incubator-nuttx/incubator-nuttx/sources/nuttx/../nuttx/nuttx.manifest: No such file or directory
  Normalize esp32-devkitc/wapi


error

Type: Bug
error to load typescript
VS Code version: Code 1.88.1 (e170252f762678dec6ca2cc69aba1570769a5d39, 2024-04-10T17:41:02.734Z)
OS version: Windows_NT x64 10.0.22631
Modes:

System Info

Item
Value

CPUs
AMD Ryzen 7 7700X 8-Core Processor              (16 x 4491)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_graphite: disabled_offvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
undefined

Memory (System)
31.15GB (14.69GB free)

Process Argv
--crash-reporter-id 879aa1bc-9387-4ac0-82d4-13569d684ca7

Screen Reader
no

VM
0%

Extensions (12)

Extension
Author (truncated)
Version

vscode-angular2-files
ale
1.6.4

ng-template
Ang
17.3.2

angular-schematics
cyr
6.9.0

vscode-github-actions
git
0.26.2

rest-client
hum
0.25.1

Angular2
joh
16.0.1

Angular-BeastCode
Mik
17.0.4

remote-ssh
ms-
0.110.1

remote-ssh-edit
ms-
0.86.0

remote-explorer
ms-
0.4.3

LiveServer
rit
5.7.9

html5-boilerplate
sid
1.1.1

A/B Experiments
vsliv368cf:30146710
vspor879:30202332
vspor708:30202333
vspor363:30204092
vscod805:30301674
binariesv615:30325510
vsaa593:30376534
py29gd2263:31024239
c4g48928:30535728
azure-dev_surveyone:30548225
2i9eh265:30646982
962ge761:30959799
pythongtdpath:30769146
welcomedialog:30910333
pythonidxpt:30866567
pythonnoceb:30805159
asynctok:30898717
pythontestfixt:30902429
pythonregdiag2:30936856
pyreplss1:30897532
pythonmypyd1:30879173
pythoncet0:30885854
h48ei257:31000450
pythontbext0:30879054
accentitlementsc:30995553
dsvsc016:30899300
dsvsc017:30899301
dsvsc018:30899302
cppperfnew:31000557
ccp2r3:30993541
dsvsc020:30976470
pythonait:31006305
showvideot:31016892
chatpanelt:31018789
dsvsc021:30996838
jg8ic977:31013176
fchga941:31038042
dwnewjupytercf:31035177

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.89.0. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

/needsMoreInfo

Thanks for creating this issue! We figured it's missing some basic information or in some other way doesn't follow our issue reporting guidelines. Please take the time to review these and update the issue.
Happy Coding!

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Week 18 Review Ticket

Hacks

[x] CPT Scoring 2

Even though programs are relatively basic, if they are explained and described effectively, points are awarded; however, if the program is more technically complex but the explanation is inadequate, points will be deducted. Formatting of CPT seems to be the most crucial factor. It could be advisable to develop a simpler application and focus more on correctly checking the boxes that CollegeBoard demands for the CPT, and if time is available, extra complexity can be added as time permits. Understanding seems to be evaluated, so it may be in your best interests to do so. The distinction between function and goal, which CPT seems to be very specific about, needs to be addressed very clearly as well as maintaining consistency in the elements provided and used, such as just

[x] Model and OOP Hacks

Within the same Jupyter notebook cell, I worked on the OOP hacks and that of my project. For my project, the Driver classes will be created for each from the formula one API. To demonstrate this, I made a get request and used iteration to store each driver within a Driver object. I made sure to include redundancy code to avoid any poor request errors. Then, I added comments and dislikes to prove the use of those functions

[x] PBL Frontend CRUD Implementation

Within my front end code, the user is able to search up a F1 driver, if the input text matches a driver, then the 2nd container will show up where it will display the statistics. The like/dislike buttons and comments are where I implement CRUD. Comments are CREATED by the user, the name and body of each comment is READ by database, the comments can be UPDATED by entering a comment with the same name, and the comments can be deleted by the user on the frontend.

Extra

Something that I worked on over the long weekend was redesigning my fastpages site as to better learn to apply CSS. It originally used a black and green color pallet, hence the images of linux terminals in the blog below that states what I learned.

What I learned

1 Model
.95 View
.95 CPT


Authentication Class lacks a Preauth Activity

While the OCSF Authentication class includes auth_factors, it lacks an activity indicator for preauth behavior:

Given the prevalence of pre-authentication activities, particularly in SAML and MFA contexts, it's crucial to address this gap.
I suggest introducing a new activity within the Authentication class specifically denoting Preauth.

Merged


NAV-49 (Raptor Tests), NAV-40 (Transfers), NAV-59 (Query Config)

Again a pull request relying on two open pull requests (Nav-40 transfers and Nav-49 tests).
Probably best to do everything in this pull request together.

Addressed most of the comments, and answered open discussion points.


After setting in form action value of event.locals.user should be accessible in load() or not yet implemented ?

Describe the bug
I'm not sure if it not yet implemented or it's a bug.
It was mentioned here: https://github.com/sveltejs/kit/discussions/5875#discussioncomment-3540263
+    // success case
+    event.locals.user = user; // so we can read it in `load`

Reproduction
// +page.svelte

{data.timestamp.toISOString()}

<form
  method="post"
  action="/"
  use:enhance={() => {
    return ({ form, result }) => {
      if (result.type === 'success') {
                form.reset();
                invalidateAll();
      }
    };
  }}
>
  <input type="text" name="user" />
  <button type="submit">Submit</button>
</form>

{#if data?.user}
  {data.user}
{/if}

// +page.server.js
export async function load(event) {
  let timestamp = new Date();
  if (event.locals.user) {
    return { user: event.locals.user, timestamp };
  } else {
    return { timestamp };
  }
}

export const actions = {
  default: async (event) => {
    const form = await event.request.formData();
    const user = form.get('user');
    event.locals.user = user;
    return { success: true, user };
  }
};

Logs
No response
System Info
System:
    OS: Linux 5.10 Alpine Linux
    CPU: (4) x64 Intel(R) Core(TM) i3-6100T CPU @ 3.20GHz
    Memory: 5.36 GB / 6.11 GB
    Container: Yes
    Shell: 1.35.0 - /bin/ash
  Binaries:
    Node: 18.2.0 - /usr/bin/node
    Yarn: 1.22.19 - /usr/bin/yarn
    npm: 8.10.0 - /usr/bin/npm
  npmPackages:
    @sveltejs/adapter-node: ^1.0.0-next.96 => 1.0.0-next.96
    @sveltejs/kit: next => 1.0.0-next.511
    svelte: ^3.44.0 => 3.50.1
    vite: ^3.1.0 => 3.1.6

Severity
blocking an upgrade
Additional Information
No response

After the action is done the request is basically finished. If invalidate is called on the client a new request is made. What you have to do is implement some sort of session using cookies for example.

But, when i don't use invalidateAll() see code below, data.timestamp is updated after each POST request and event.locals.user is still undefined

{data.timestamp.toISOString()}

<form method="post" action="/" use:enhance>
  <input type="text" name="user" />
  <button type="submit">Submit</button>
</form>

{#if form?.user}
  {form.user}
{/if}

export async function load(event) {
  let timestamp = new Date();
  if (event.locals.user) {
    console.log(event.locals.user);
    return { user: event.locals.user, timestamp };
  } else {
    return { timestamp };
  }
}

export const actions = {
  default: async (event) => {
    const form = await event.request.formData();
    const user = form.get('user');
    event.locals.user = user;
    return { success: true, user };
  }
};

Thats because locals is bound to a request.
Maybe this helps you understand the flow:

action request

new request -> new locals
action handler runs

Client calls invalidate (the default enhance calls invalidateAll on success to make sure load functions are rerun)

new request -> new locals
load function runs

To solve this you need to store the user in a cookie.
export const actions = {
  default: async (event) => {
    const form = await event.request.formData();
    const user = form.get('user');
	event.cookies.set('user', user);
    return { success: true, user };
  }
};

And get that cookie inside your load function
export async function load(event) {
  let timestamp = new Date();
  const user = event.cookies.get('user');
  if (user) {
    console.log(user);
    return { user: user, timestamp };
  } else {
    return { timestamp };
  }
}

If you use the user in many places you can attach the user to the locals inside your handle hook
// src/hooks.server.js
export async function handle({ event, resolve }) {
  const user = event.cookies.get('user');
  event.locals.user = user;
  return resolve(event);
}

export async function load(event) {
  let timestamp = new Date();
  const user = event.locals.user;
  if (user) {
    console.log(user);
    return { user: user, timestamp };
  } else {
    return { timestamp };
  }
}

This is different approach than presented in https://github.com/sveltejs/kit/discussions/5875#discussioncomment-3540263, due to my understanding it'll will never be implemented. Ok. I was somehow biased by .locals ie express app.locals concept.
One of my apps is runnig in LAN, I can't use cookie there or at least I don't now how.


Failed to add new block, TypeError: Cannot read properties of undefined (reading 'timestamp')

While test deploying to dev with a command bash deploy_blockchain_incremental_gcp.sh dev lia 0 0 0 --keystore --no-keep-data --no-keep-code, the following error was observed:
[NODE] [mergeChainSegment] Failed to add new block (1 / 0xda250c82aaa8266f6230c8b27249f3b5554dc31d34996b5c5d371b9699f1410e) to chain: TypeError: Cannot read properties of undefined (reading 'timestamp')
at BlockchainNode.buildBlockchainSnapshot (/home/ain-blockchain-2022-01-11T05-42/node/index.js:373:34)
at Function.validateStateProofHash (/home/ain-blockchain-2022-01-11T05-42/consensus/index.js:757:31)
at Function.validateAndExecuteBlockOnDb (/home/ain-blockchain-2022-01-11T05-42/consensus/index.js:848:17)
at BlockchainNode.mergeChainSegment (/home/ain-blockchain-2022-01-11T05-42/node/index.js:755:19)
at P2pClient.handleChainSegment (/home/ain-blockchain-2022-01-11T05-42/p2p/index.js:690:42)
at WebSocket. (/home/ain-blockchain-2022-01-11T05-42/p2p/index.js:626:16)
at WebSocket.emit (node:events:390:28)
at Receiver.receiverOnMessage (/home/ain-blockchain-2022-01-11T05-42/node_modules/ws/lib/websocket.js:1008:20)
at Receiver.emit (node:events:390:28)
at Receiver.dataMessage (/home/ain-blockchain-2022-01-11T05-42/node_modules/ws/lib/receiver.js:517:14)

Fixed, thanks!


Convert service resource to setup properties via property DSL

The service resource still uses set_or_return throughout. We should convert this to setup properties via the property resource DSL.

Fixed by #7946


Choose render position?

It would be nice if it was possible to choose a target location on the page for the render position. Any ideas on how to do this?

Like using "rootElement"?
http://guides.emberjs.com/v1.12.0/configuring-ember/embedding-applications/

Ah yes looks like that will work. Thanks!


Feature Idea: connectReduxFormReadonly()

connectReduxFormReadonly() would be a decorator for a component that wanted to subscribe to a form's state – data, dirty/pristine, and valid/invalid – without having any state-mutating functions provided.
Based on slack conversation with @olivierrr.

Implemented, not exactly as described here, in v1.4.0.


Multiple Ciphertexts Handling

Discussed issue in Pyfhel repository

Description
While trying to execute the calculate_msr with no_ciphertexts = 1
failed with ERROR
Full logs
Traceback (most recent call last):
  File "/home/user/Documents/github/SecBic-CCA/SecBiclib/algorithms/cipher_operations.py", line 286, in <module>
    sup_plain_list, data_sizes = zip(*[enlarge(plain_sub) for plain_sub in plain_list])
  File "/home/user/Documents/github/SecBic-CCA/SecBiclib/algorithms/cipher_operations.py", line 286, in <listcomp>
    sup_plain_list, data_sizes = zip(*[enlarge(plain_sub) for plain_sub in plain_list])
  File "/home/user/Documents/github/SecBic-CCA/SecBiclib/algorithms/cipher_operations.py", line 14, in enlarge
    N_rows,N_cols=np.shape(array)
ValueError: not enough values to unpack (expected 2, got 1)

That just means that array is of dimension 1, thus it returns a single value (the number of elements). Your code is expecting two numbers (N_rows and N_cols), but got only one, hence the error.

Yes, that's true. I need to look into the code and make some changes as of now it won't accept single ciphertext.

Current problem:
with considering ciphertexts in list -> scale out of bounds:

Checking all multiplications, and shifts to have been implemented with Rescaling  (Almost done)
Inefficient implemented logic of handling lists of ciphertexts (more probable- current approach)

Without considering list of ciphertexts -> ckks nSlots but no scale out of bounds problems

Shifting ciphertexts in list for computing sums of each axes influence the source ciphertexts then make the rest of computation incorrect => check the function inside the _list_shift


Experience and/or Timing is Everything+Not So Fast

Request
Experience: Slowers leveling by making it so quests level you up instead of your skills level.
Not So Fast Main Quest, I think it's mandatory in any
Additional context
Still think you level a bit too fast, Not so fast Main Quest is just because it makes sense

Pretty solid ideas I totally missed even though I know them. 🤦♂
They will most likely make it into the next update.