Circular Linked List in JAVA

Is your feature request related to a problem? Please describe.
the code for circular linked list is not available in java.
Describe the solution you'd like
A circular linked list is a type of linked list where the last node's next pointer points back to the first node, creating a circular structure. Unlike a regular linked list, which has a null or "tail" pointer at the end, a circular linked list does not have a distinct end. This circular arrangement allows for continuous traversal and enables efficient operations on the list.
Steps to create a circular linked list:
Define the Node class: Create a Node class that represents a single node in the circular linked list. Each node should have a data element and a next pointer to point to the next node.
Initialize the head pointer: Create a head pointer that initially points to null, indicating an empty list.
Insert nodes into the list:
a. Create a new node with the given data.
b. If the head is null, make the new node the head and set its next pointer to itself, forming a circular reference.
c. If the head is not null, traverse the list until the last node is reached (i.e., the node whose next pointer points to the head).
d. Set the next pointer of the last node to the new node.
e. Set the next pointer of the new node to the head, completing the circular reference.
Traverse the circular linked list:
a. Set a temporary node variable to the head.
b. Start a loop that continues until the temporary node variable becomes equal to the head again (indicating completion of a full traversal).
c. Within the loop, process the data of the current node.
d. Update the temporary node variable to its next pointer for the next iteration.
Additional context

i can solve this issue
@Kumar-laxmi can you assing me this under ssoc'23

i can solve this issue
@Kumar-laxmi please assing me this under ssoc'23

Can you please assign me this issue
@Kumar-laxmi .
This shall be my first PR for SSOC'23

Assigned!
@Devchawla2608 : Java

i would like to work on this issue please assign it to me.

can you assign me this issue

can you assing me this !


update to swift 4

Do you plan to merge this PR?

@WorldDownTown any chances to get this merged? :)

I made a maintained range slider if any of you are interested: https://github.com/yhkaplan/DoubleSlider


[Turbopack] Error during SSR Rendering

What version of Turbopack are you using?
4.7.4
What package manager are you using / does the bug impact?
Yarn v1
What operating system are you using?
Windows
Describe the Bug
When running the yarn run dev or npm run dev on the default turbopack npx create-next-app --example with-turbopack example. The app randomly crashes and produces the following the error:
error - [rendering] [root of the dev server]/hooks  Error during SSR Rendering
  timed out waiting for the Node.js process to connect

Expected Behavior
The error shouldn't exist as there were no modifications made to any of the files.
To Reproduce
1.) Use npx create-next-app --example with-turbopack and create the app with any name.
2.) Run yarn install
3.) Run yarn dev.
4.) Now navigate inside the template app. It'll crash producing the error. Randomly.
Reproduction Repo
No response

A similar error occurred
What version of Turbopack are you using?
nextjs 13.0.0
What package manager are you using / does the bug impact?
yarn 1.22.19 / probably no
What operating system are you using?
win11 21h2 (22000.1098)
Describe the Bug
When running the yarn run dev or npm run dev on the default turbopack npx create-next-app --example with-turbopack example. The app randomly crashes and produces the following the error:

error - [rendering] [root of the dev server]/context/clothing
Error during SSR Rendering
timed out waiting for the Node.js process to connect
error - [rendering] [root of the dev server]/context/books
Error during SSR Rendering
timed out waiting for the Node.js process to connect
error - [rendering] [root of the dev server]/context/electronics
Error during SSR Rendering
timed out waiting for the Node.js process to connect
error - [rendering] [root of the dev server]/styling/global-css
Error during SSR Rendering
timed out waiting for the Node.js process to connect

Expected Behavior
The error shouldn't exist as there were no modifications made to any of the files.
env
node 16.15.0
yarn 1.22.19
win11 21h2 (22000.1098) / i5-9600K / 16GB
To Reproduce

Use npx create-next-app --example with-turbopack and create the app with any name.
Run npm run dev.
The above error occurs rarely when opening the application in a browser

Often crashed on first startup
Also, crashes often occurred when memory usage was high.

@xpadev-net let me know of you get turbopack working.

@xpadev-net let me know of you get turbopack working.

node version 16+

Getting the same issue with  NodeJs v14.17.3

The same too with Nodejs v16.14.2

duplicate of #2352


Git/GitHub: Pull request process which doesn't default to upstream repository

Reviewing this question, we found the following:
a) A forked repository will show the upstream repository's default branch as the base branch for any pull request generated through the interface
b) A command line tool like cli (https://github.com/cli/cli) can be used to generate a pull request while specifying both the base repository and the base branch, so that pull request generation doesn't default to the upstream repository.
We also want to check if we can generate a pull request from a repository that is not a fork.  (We would also need to check if we can pull in changes from the upstream into the non-fork).  That can be a separate GitHub issue if need be.


Loosen implicit constraints

Rebasing the commits in #184 on top of master so the test run with the updated Travis configuration.

I think we can merge this and close #184. All credit goes to @kubukoz by the way, you rock!


Node.js: Fix issues identified by ESLint.

Codecov Report

Merging #1613 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1613   +/-   ##
=========================================
  Coverage     86.77%   86.77%
  Complexity     4168     4168
=========================================
  Files           408      408
  Lines         16711    16711
  Branches       1797     1797
=========================================
  Hits          14501    14501
  Misses         1715     1715
  Partials        495      495

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 a681cf2...86b2e62. Read the comment docs.


Client side changes for Google sheets UQI migration

Discussion - Google sheets forms use a separate code path on the client side which does not seem to be compatible with UQIDBEditorForm. We need to make changes to either converge the two paths or support UQI on this other path.

handy to find google sheet id


[$250] mWeb - Expense - Expense report title briefly displays previously entered title

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: V9. 0.75-0
Reproducible in staging?: Yes
Reproducible in production?: Yes
Issue reported by: Applause Internal Team
Device used: Redmi note 10s android 13
App Component: Money Requests
Action Performed:

Go to https://staging.new.expensify.com/home
Open a workspace chat with expenses
Open the expense
Tap header -- title
Change the title and save it
Note changed title is displayed
Again tap the title and rename it.
Save the title

Expected Result:
On renaming expense report after first time, every time newly saved title only must be shown.
Actual Result:
On renaming expense report after first time, every time newly saved title is shown and briefly previously entered title is shown.
Workaround:
Unknown
Platforms:

[ ] Android: Standalone
[ ] Android: HybridApp
[x] Android: mWeb Chrome
[ ] iOS: Standalone
[ ] iOS: HybridApp
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/4d4c132b-94de-400a-98d6-1348a874ae62
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~021869097713143185244
Upwork Job ID:<PHONE_NUMBER>143185244
Last Price Increase: 2024-12-17

Issue OwnerCurrent Issue Owner: @thesahindia

@rafecolton @rojiphil #53226

@jacobkim9881 I have not looked into this issue yet but feel free to go ahead and put forward a formal proposal so that the proposal can be reviewed.

Root cause seems to be related to the discussion here. Please hold on.

Let's hold on https://github.com/Expensify/App/issues/53226


Use HTTP sessions

can i help?

I am also available for this

oK

@noverd If you're working on it, I'll stand to the side. I don't want any conflicts.

@noverd If you're working on it, I'll stand to the side. I don't want any conflicts.

I have not started yet, I was waiting for an answer CubeTheCube


Do not flood the console!

Limit console logging to only one message of a given type (if !verboseLogging)
Limit to only one internal message log per page view when the session storage is not available

:shipit:


Update JwtTokenExtractor.cs

Fixes #
#minor
Description

Specific Changes

Testing

Hi @xieofxie, could you explain the reason for this change?
Also, there's a failing unit test that will have to be updated.
Thanks.

@ceciliaavila I have updated the test~


Make all inputs optional

Convert all the inputs (except for seeded track) to optional, allowing people to leave fields such as "popularity", "danceability", etc. blank if they wish to.
The seeded track is a mandatory field.
Follow API documentation for Recommendations API to see what's allowed to be optional.
https://developer.spotify.com/documentation/web-api/reference/browse/get-recommendations/

I would like to work on this.

@maw1a All yours. Please open a PR and assign me as a reviewer when it's ready!
We already have some optional inputs on the app, you can just follow that same style for the rest of the inputs. Please look at the API documentation to see what inputs are allowed to be optional and which aren't.
Please note that if an optional input is filled out, but is invalid, the UI should still show an error beside the field, but it can still go ahead and generate the recommendations. You can see what I mean if you go to the site, search for a track, enter valid required inputs, open the optional inputs, and enter an invalid optional input. It will show you an error beside the form saying that the input is invalid, but it will still generate the playlist.
Let me know if you have any questions!

This issue is open for anyone to work on


Added missing list braces

Fun little bug that makes the code fail when MACRO_BLOCKAGES_LAYER contains an even number of elements LOL

The lint issue is likely because your changes are based on an older version of OpenLane. I'll just ignore it for the merge.

The changes are based on the most recent commit of the master branch, so an older version can't be the cause for linting issues. I assume one of the Python linters that your pipeline uses has been updated in the last two days and complains about something that was okay in the previous version, since you are not pinning the versions of the linters as far as I can see.

wow good start to the week

(may I suggest doing python3 -m pip install -r requirements_dev.txt instead, single source of thruth and stuff, sorry if I'm annoying :D)

@Syndace I did have a requirements_lint.txt at some point but it got lost in merge hell at some point.


Remove PinotProtocolSocketFactory to reduce the usage of old commons-httpclient

As per the issue

Deleting PinotProtocolSocketFactory as the first step to cut the usage of old commons-httpclient

Codecov Report

Merging #11246 (057f58d) into master (e809b4e) will increase coverage by 0.00%.
Report is 15 commits behind head on master.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master   #11246     +/-   ##
=========================================
  Coverage    0.11%    0.11%
=========================================
  Files        2229     2155     -74
  Lines      119768   116777   -2991
  Branches    18126    17724    -402
=========================================
  Hits          137      137
+ Misses     119611   116620   -2991
  Partials       20       20

Flag
Coverage Δ

integration1temurin11
?

integration1temurin17
?

integration1temurin20
?

integration2temurin11
?

integration2temurin20
?

unittests1temurin11
?

unittests1temurin17
?

unittests1temurin20
?

unittests2temurin11
?

unittests2temurin17
0.11% <ø> (+<0.01%)
:arrow_up:

unittests2temurin20
0.11% <ø> (+<0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Changed
Coverage Δ

...n/java/org/apache/pinot/common/utils/TlsUtils.java
0.00% <ø> (ø)

... and 100 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Closing as this is covered in PR.


New Unread articles appear below old Read ones

Hi, thanks for the great app. In All Unread, new Hacker News articles appear buried under Read articles, probably because they have an older timestamp. I need to hunt for them, which isn't ideal. Please make all new, unread articles appear on top, like in Cappuccino. Thanks.

Does the Next Unread command work for you? This should make it so you don’t have to hunt.
You can also select the All Unread feed to see everything that’s unread.

Next Unread seems to work but the jump is disorienting. I'm using All Unread and wish new entries would appear always on top. Now they sometimes appear below the fold. Thanks.


Cannot open projects with VS 2015

Not sure whether everybody has already upgraded to VS 2017, given that it has only been released very recently. Anyhow, the recent commit entitled "Update projects to VS 2017" (dbaddb57) changed the .csproj files so that those projects can no longer be opened with VS 2015.
Using DocumentFormat.OpenXml.csproj as an example, here is the error message I get (with [...] meaning I omitted that part of the path):
[...]\Open-XML-SDK\DocumentFormat.OpenXml\DocumentFormat.OpenXml.csproj : error  : The default XML namespace of the project must be the MSBuild XML namespace. If the project is authored in the MSBuild 2003 format, please add xmlns="http://schemas.microsoft.com/developer/msbuild/2003" to the <Project> element. If the project has been authored in the old 1.0 or 1.2 format, please convert it to MSBuild 2003 format.  [...]\Open-XML-SDK\DocumentFormat.OpenXml\DocumentFormat.OpenXml.csproj

I get the same error message for the other two projects contained in the solution.
Did you mean to only support VS 2017 going forward (which could be fine)? Otherwise, we need another solution referencing VS 2015 compatible .csproj files.

I guess VS2017 is the way to go because the new .csproj base is vastly different and offers more possiblities (e.g. creating NuGet packages directly from it)

For the avoidance of doubt, I'm not arguing against VS2017 being the way to go. I also planned to make the transition from VS2015 to VS2017 soon after its official release. And looking at just 2 open pull requests, I think we don't leave too many contributors behind. And if NuGet packages are now the preferred way of distributing releases rather than having people build their own, the "problem" might not be all that big.
BTW, I've just migrated my main project to the latest NuGet package, which worked just fine. So even if I waited a while before upgrading to VS2017, I would not have a problem. I was only planning to have a look at those unit tests (see the other issue I created), which I can't right now because I am still on VS2015.

@ThomasBarnekow : You are right; we broke something and project is not compiling with VS2015. It's supposed to work with VS 2015.
@tomjebo : Can you review what broke the VS 2015 compilation ?

@tarunchopra, this is not a compile problem. As described in my original post, the project files cannot be opened with VS2015 because the project file format has been upgraded to VS2017. The VS2017 format is incompatible with the one used up to VS2015.

@ThomasBarnekow thanks for bringing this up. I'll sync up with @twsouthwick and get this resolved.

This was by design as the tooling for VS2015 was preview and with VS2017 hitting RTM, that tooling is the way forward. The two project types don't work well together (having a project.json and the csproj in the same directory causes problems for the toolchains). I can't gather from the thread if this is a blocker (ie are people unable to upgrade to VS2017?).
@ThomasBarnekow  if you want to look at the project in VS2015, the code itself hasn't diverged at all, so feel free to checkout the commit before the merge and fix any tests there. Another option is to download the .NET CLI tools and use VS Code.

@twsouthwick I personally don't have an issue with upgrading to VS2017 as I planned to do that anyhow. Other people might have a problem, though.
I was just surprised that I could effectively not open the solution with VS2015, because the only project files I can see right now are .csproj files, e.g., DocumentFormat.OpenXml.csproj, which don't work with VS2015. I can't see project.json files anywhere, at least not in the vNext branch.
So, what exactly is the way forward? The current .csproj files that can't be opened with VS2015 but only VS2017? If so, we should be really clear in Readme.md that anybody wanting to compile the SDK or contribute to it must use VS2017 or whatever else is supported.
Leaving the legacy behind is totally fine in my eyes. People who just want to work with the SDK can now comfortably use NuGet packages. They no longer need to build the SDK themselves.

Yes, the README is being updated to address this issue. The way forward is to open in a tool that supports the new csproj format: VS2017, VS Code, VS for Mac, or .NET CLI

Good. Once the README is updated, we can close this issue.

@twsouthwick, you said the README is being updated but I can't see any update yet. Will this be done anytime soon?
I've also seen that the Change Log in the README does not reflect the latest nine (9) NuGet packages (see here). And if you look at the gallery page for the Open XML SDK, the Change Log mentions Version 2.6.0, 2.6.1, and 3.0.0 (as "in progress"), but it does not mention any of the versions that you can actually download.

The README in the repo has been updated but looks like you are looking at the feed description which has not. Only released versions are included in the README - ci builds (ie once with vNext in the name) are not included as those are not official releases. I'll update that readme.

I've updated the feed README to include the latest information

@twsouthwick, I looked at both the README of this repository and at the feed.
Regarding the README (following the link you provided above), what exactly did you update? For example, it does not mention that VS2015 and earlier are no longer supported. It should mention what you already indicated above:

The way forward is to open in a tool that supports the new csproj format: VS2017, VS Code, VS for Mac, or .NET CLI

The README also says the following:

This project uses the project.json for the project build system. Please see the .NET Core SDK for more information on how to use this project type.

Is that still up-to-date?
The fact that you publish CI builds on myget.org is also a bit confusing (at least for me). And a CI build (2.7.2-vnext0027) is currently marked as the recommended release (rather than 2.7.1)?

Regarding the README (following the link you provided above), what exactly did you update? For example, it does not mention that VS2015 and earlier are no longer supported. It should mention what you already indicated above:

We don't explicitly state it doesn't support VS2015, but we do say you need VS2017 or something compatible. I prefer to state what you need to open it, rather then list some of the things that won't work. What do you think? The current wording is in bullet 2:
   Open the solution with an editor that supports the latest .NET project files, such as Visual Studio 2017, VS Code, VS for Mac, or .NET CLI. See https://www.microsoft.com/net/download/core for details.

The README also says the following: ... This project uses the project.json

Good catch. This is out of date and needs to be updated

The fact that you publish CI builds on myget.org is also a bit confusing (at least for me).

MyGet doesn't seem to differentiate between prerelease and non-prerelease and I'll look into why the latest build is marked as recommended. If you were to try to add these in VS, you'll only see the stable versions. If the name scheme is confusing, please see http://semver.org. This can be clarified in the README as well if you think that would help.

We don't explicitly state it doesn't support VS2015, but we do say you need VS2017 or something compatible. I prefer to state what you need to open it, rather then list some of the things that won't work. What do you think?

I would also say that VS2015 and earlier are not supported. Otherwise, people would have to find out that VS2015, for example, does not support the latest .NET project files. Thus, you could add something like the following:
For clarity, Visual Studio 2015 and earlier do not support the latest .NET project files and cannot be used to open the solution.

Regarding the stable versions on myget.org, you are right in case people use the VS GUI. However, people might use the Package Manager console to install the package as described by the example provided in the README:
PM> Install-Package DocumentFormat.OpenXml -Version <version retrieved from the web>

When determining the version retrieved from the web by following the link that is provided in the README, people see 2.7.2-vnext0027 (status April 1) as the recommended release.
So, yes, I would think that explaining the version naming scheme in the README would definitely help in this case (because myget.org incorrectly flags a prerelease as the recommended release).

To run the project in Visual Studio 2015 please revert to a commit in which Visual Studio 2015 was used.
If you are not sure then run the following command on git command line.
Navigate to git master branch
git checkout master

Please ensure that you backup current directory to another location before executing the following step.
You have closed your visual studio completely so that there are no file access errors.

You can see history of commits by the following line
git log --oneline --graph --decorate

In this case are reverting to commit id 3f36da8
git reset --hard 3f36da8 && git clean -f -d

Now try opening the solution in Visual Studio 2015 and it should work!

@twsouthwick My git reset fix was just to run a sample project on VS2015 for users who just want to look at this project how it works. I never meant it for take it to production or use it generally. For all practical purpose even Visual Studio 2017 has a community but there are users who don't have user rights to install new software on their system. So this fix might be helpful for them to get a 'quick glimpse' of main methods that are being used in this project.

Would something like https://github.com/KirillOsenkov/SourceBrowser be helpful for this (such as at http://source.dot.net)? I've been thinking of setting that up for this project for easy browsing and searching via symbols


Unbox notifications in the background

Boxed messages are attached to both regular and silent notifications now. We always attempt to unbox the silent notification in the background, if the user has enabled plaintext notifications we also display the unboxed message. If we've attached the boxed message to the regular notification we also attempt unboxing when the user selects the notification. the aim is to fill the user's cache as aggressively as possible.

did you test this with large payloads? there are limits to how large a push payload can be so i wonder if we'll get more messages dropped with this change

we have a threshold below the max limit for sns above which we won't attach the msgBoxed

k but did we actually test this out

yes.

thanks!


Where all the colors?

Some editors look like this.

Or even this,

The bed command does not support this kind of coloring because it makes difficult to make it visible for both light and dark terminals. The issue report is unclear for what is expected, so closing.

@itchyny how does vim and oh-my-zsh handle this then? Do you use any syntax highlighting in terminal?

Some terminal tools have color themes feature, but I don't implement it in the bed command because that's not what I want to put effort to. Actually bed already uses light green color but I should minimize the use of colors, it is a thorny road.

Why not to use "logical" color which can be painted according to palette specified in command line param?

Your comments so far do not describe how you expect the hexes to be colored, what you need them for. In any cases, my current answer is I don't implement such colors because I don't need them and I want to keep the command simple as it is. If you want such colors, use different tools, thanks.

@itchyny you didn't answer why you are not using discolored terminal either. :D
If you take a look at hexedit output, the coloring scheme separates hexes into four zones.

(red) 00 - zeroes
(grn) 01-1F - unprintable control characters
(wht) 20-7F - lower, safe part of ASCII table
(blu) 80-FF - higher part of ASCII table

The other editor uses colors to segment working areas.


Add Namespace approval issue URL in Release plan ADK work item

Release planner will prompt user to provuide GitHub issue namespace approval and this is stored in Dataverse. We should update this in release plan ADO work item.

[x] Add new field in ADO work item for release plan
[x] Update the cloud flow that sync release plan info to update Namespace approval issue in ADO work item.

Modified cloud flow Automated Release Plan Sync SDK Type to update namespace approval issue


20 project sets created in AWS LZ0

Describe the issue
We want to create project sets for use in the Chekpoint Hackathon.
Which Sprint Goal is this issue related to?

Note: 'Milestone' is a ZenHub term that we use synonymously with 'Sprint'.

The 'Milestone' description (created in ZenHub) should clearly list Sprint Goals. This section should indicate which 'goal' this issue is related to.
Additional context

Reach out to Julian to confirm the handing out project sets

Definition of done

These project sets have only Dev and Sandbox in them
Hand 5-10 of the project sets to Chekpoint, AWS for prepping their cyber-range game events

@MaxWardle Accounts have been created, we just need to give access to Checkpoint and AW.


Could not find existing command

1.21 / Fabric
Running commandaliases-1.0.1+mc1.21-build.70
Running into the below error in the console:
[16:21:15] [Server thread/ERROR]: [SERVER] COMMAND_REDIRECT - Could not find existing command "execute in minecraft:overworld run tp $executor_name() 196 65 -281": /home/container/./config/commandaliases/warp_solanum.toml
schemaVersion = 1 commandMode = "COMMAND_REDIRECT_NOARG" command = "mainspawn" redirectTo = "execute in minecraft:overworld run tp $executor_name() 196 65 -281"
I am expecting to be able to reload commandalias and then do /mainspawn and no matter what world, I would be teleported to a certain world and to a specific coord. I'm not needing to /set mainspawn or anything special. Hard coding it is fine.
Help?

I have the same issue :(
Current workaround for me is to use the COMMAND_REDIRECT instead. But that one only sometimes accepts extra arguments :(

I am also having this problem, issue ongoing


Fix Unicode test link.

Description
Old link redirected to https which gave an error with curl.
Motivation and Context
See above.
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

How Has This Been Tested?
Tested in Linux Mint 18.3.

[ ] I have tested using MacOS
[x] I have tested using Linux

Checklist:

[x] I have checked that no other PR duplicates mine
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[ ] I have updated the tests accordingly.

Nice find @Menturan!
Thank you for your contribution. 😄

@all-contributors please add @Menturan for bug

:tada: This PR is included in version 2.4.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[web] explicit platform view compositing modes

Today platform views are composited based on two pieces of information available to the engine:

The platform view's place in the layer tree.
The value of isVisible in the RegisterViewFactory callback signature.

The engine then makes the rest of the decisions. These decisions can be always predictable, have unpredictable performance features, or lack correctness.
Always predictable decisions 👍
The isVisible is a clear unambiguous flag that allows the engine perform guaranteed optimizations with predictable visual outcomes. For example, if the developer set the flag to false and their platform view does not indeed render anything visible (e.g. PointerInterceptor and Link widgets), the behavior is always correct and the platform view incurs minimal performance overhead.
Unpredictable performance 👎
The minimum overlay optimization makes correct visual choices, but its performance is not predictable because the overlay count is sensitive to overlaps between pictures and platform views. Just 1px of overlap can cause a new overlay created. If the overlap exists for every platform view (e.g. they are added in an loop and share the same structure), overlays multiply. Overlaps can come and go during animations, which can create subtle performance cliffs in the middle of transitions.
Lack of correctness 👎
Flutter Web limits the number of overlays to avoid running out of memory. At some point it stops creating new overlays, and instead attempts to make the least wrong compositing decision.
Proposal 1: compositing mode
Both the minimum overlay optimization and overlay limit are effective at keeping performance reasonable, and these kinds of heuristics are the only option without any developer hints. However, if the developer can provide more information, the engine can do a better job.
Provide a set of compositing modes that would provide both predictable performance and correctness guarantees. Based on the observation of a few real-world apps, the following modes are good candidates:

Proposed by @jezell in https://github.com/flutter/engine/pull/51397#issuecomment-1998099092: an "always on top" mode that would always put the platform view on top of all Flutter canvases. It guarantees to never incur an overlay, and it guarantees a specific compositing effect. It may or may not be the right choice for a particular use-case, but there's nothing to guess w.r.t. what it does.
"always behind": mutually exclusive with "always on top"; places the platform view behind all Flutter canvases. Performance and correctness guarantees are also guaranteed.
"mask": a (shape, color filter) tuple (perhaps based on Path and MaskFilter) applied to layers composited behind the platform view. The key use-case is to "burn a hole" of a given shape through the canvas revealing the platform view that's composited behind it. The mask would be used in conjunction with the "always behind" mode so the engine places the platform view behind the "hole".

(NOTE: on the web, the implementation of alwaysBehind is likely to be the same as isInvisible, but each engine implementation is free to deviate as the two modes are semantically different)
Proposal 2: platform view group
Compositing mode is predictable and it eliminates the need for overlays entirely, but a bit all-or-nothing. Given that Firefox and Safari are struggling to gives an efficient way to composite HTML content amongst WebGL content, all-or-nothing may be the right choice for the time being. However, it may be too limiting in some situations, in particular in cases when the HTML content is partially transparent (e.g. SVG, PNGs and GIFs with alpha, or simply HTML without an opaque background).
One way to allow transparency in platform views but still keep the number of overlays under control is to allow grouping multiple platform views such that the group induces only one overlay. Consider an image gallery where every image is a CORS image, needing an  element, hence requiring a platform view. Each image may be wrapped inside a widget  that also supplies a background, a shadow, and a label under the image. The structure of such UI may look like this:
<grid>
  <card>
    <background-color />
    <shadow />

  </card>
  <card>
    <background-color />
    <shadow />

  </card>
  ... many more cards ...
</grid>

Looking at this structure linearly, every image is surrounded by non-platform view content. Naively, we'd have to sandwich every image between overlays to paint background and foreground content. You'd need numberOfCards + 1 overlays to composite the UI. However, despite how pictures appear in the render tree to the engine, the developer may know in advance that the images will always show up on top of everything that's inside the <grid>. Knowing this would allow the engine eliminate the unnecessary overlays predictably without looking into the pictures.
One way to achieve this is to introduce a new kind of ContainerLayer. Let's call it PlatformViewGroup. The layer has only one property, compositionMode, which takes two values onTop and behind. Applying this layer to the UI above, it would roughly look like this:
<platform-view-group compositionMode="onTop">
  <grid>
    <card>
      <background-color />
      <shadow />

    </card>
    <card>
      <background-color />
      <shadow />

    </card>
    ... many more cards ...
  </grid>
</platform-view-group>

The engine would "pluck" the platform views from inside the platform view group, and composite it on top of everything else that's in the group, preserving any layer effects that must be preserved, a la:
<platform-view-group compositionMode="onTop">
  <grid>
    <card>
      <background-color />
      <shadow />

    </card>
    <card>
      <background-color />
      <shadow />

    </card>
    ... many more cards ...
  </grid>

  ... many more imgs ...
</platform-view-group>

This operation is identical to what the minimum overlay optimization does today, but instead of relying on looking at picture contents, it uses an explicit signal from the developer. This way the optimization would still work even when half a pixel of an nearly transparent pixel of a shadow overlaps with the platform view. The fast path is guaranteed.

@yjbanov, few months ago we landed this in the engine: https://github.com/flutter/engine/pull/43301 It reduces the number overlays drastically. In fact unless there is some weird sandwiched overlapping,  the embedder can usually get away with just two layers regardless of the number of platform views.
The algorithm is described here: https://docs.google.com/document/d/1YHwVz7-F03psEzHxByGka_lIFaDV5K90BJMbNxQeK4k/edit?resourcekey=0-n4_VcUnMU-99sjJ6C1_Ycw
It does rely on a DlRegion which we introduced a while back, but that could be reimplemented in javascript.
This might be something to consider.

@knopp the problem is that we don't need overlays reduced, we need them eliminated. This proposal allows them to be eliminated, which I think is a massive win. In our case we are building design tools, so we need predictable behavior for the end users, not crashing when you happen to drop in too many things that cause overlays to be created and the algorithm didn't save you.

With the proposal if there is no Flutter content on top of platform view, there is no overlay. The overlay only happens when there is actual Flutter content painted on top of platform view, and even then the minimal amount of overlay surfaces is used. For example you can have 20 platform views, but unless there is Flutter content deliberatly sandwiched between them in a way where it is below one platform view and above other platform view, you will be able to represent this with just one overlay surface (regardless of number of platform views). And if nothing paints over platform view, there is no overlay at all.

@knopp yeah, that works great if you have the ability to control the stacking order and position but in our case we don't. the user controls the placement of objects in their canvas, and the position in the stack of the items. If a user drops a video, then a shape, there is now a shape on top of the video. If they drop another video and another shape and so on, you rather quickly run out of platform layers. There's no way for us to guarantee predictable behavior unless we can eliminate the overlays.

Nevermind, I just noticed that https://github.com/flutter/engine/pull/47317 has landed already.

I see where the difference is. https://github.com/flutter/engine/pull/47317 works based on picture cull rect. That's way too pessimistic, I can imagine there are many situation where the cull rect overlaps platform view even though there's no actual content painted over it. In desktop embedder this is done based on picture RTree, which covers the actual area where picture is drawn. But I don't think this the RTree is exposed by canvaskit in any way right now :-/. If there was a way to obtain the Rtree from the recorded picture that'd likely improve things significantly.

It should be easy to expose the RTree in CanvasKit. However, as @jezell is pointing out automatic overlay reduction has limits, one of which is that it's hard to predict. There's also a bit of a step function in performance when going from zero overlays to one on the web. As soon as there's a single overlay we have to resort to one of the two available options:

Use multiple WebGL contexts, one for each overlay.
Use BitmapImage.

Multiple WebGL contexts is very error-prone and contains performance cliffs. WebGL resources are not shared across contexts, which requires moving resources around, which has cost and leads to subtle resource management costs, such as "Cannot delete resource which belongs to a different context".
BitmapImage works quite well on Chromium-based browsers. However, Safari and Firefox have terrible performance.
Ultimately, the best solution is to eliminate overlays when possible. Luckily, most platform views are opaque and can either appear in the background or in the foreground, even when they are placed sandwiched between layers in the render tree.

I understand the performance characteristics are different. I remember having to disable createImageBitmap and OffscreenCanvas when it was used unconditionally because it made our app downright unusable in Firefox. This makes sense for web. I do remember considering hole-punching on desktop, but given that overlays are much cheaper on desktop (at least on macOS right now), it didn't seem worth the effort given that we don't know whether the platform views are opaque (also I do remember having some concerns about rrect/path clipping and antialiasing).

Here's a concrete example: load https://earth.google.com. Open the Elements tab in Chrome DevTools. Expand the element hierarchy down this branch:
html > body > flutter-view > flt-glass-pane > #shadow-root > flt-scene-host

Notice the following list of children inside <flt-scene-host>:
<flt-scene-host>
  <flt-canvas-container>
  <flt-platform-view-slot>
  <flt-clip>
  <flt-canvas-container>
</flt-scene-host>

Toggle the visibility CSS property of the first <flt-canvas-container>. Notice that nothing visibly changes on the UI. All that background canvas does is fill the screen with a default background color to match your system theme. However, it is completely covered by other UI, including some platform views. The overlay minimization optimization kicked in and removed an overlay between <flt-platform-view-slot> and <flt-clip>. However, it failed to remove the second overlay because the platform view does indeed overlap with both the background content and the foreground content (RTrees also wouldn't help here).
And yet, the 3D Earth canvas can easily be moved into the background using an "always behind" mode and a mask that "burns a hole" through the canvas the shape of the platform view to reveal it. That would eliminate all overlays entirely.

This makes sense, however I don't quite understand why there is a layer with background color in the first place. It is possible to have Flutter with transparent background (i.e. the platform view being first thing to paint). It might need some convincing if you're using material app/scaffold (we use custom widgets), but it's certainly doable. We used to have a problem on desktop when the canvas was unconditionally cleaned before painting making the first R-Tree unusable, but I don't think that's the case anymore.

Admittedly we have the same issue on windows, where "always behind" mode would be useful for NSVisualEffectView. Because while getting rid of the base layer is doable (at least on desktop), it does create some friction and require changes t widget hierarchy.

Added another idea I thought of today (edited the original issue description). Perhaps we don't need to go that far yet, but documenting it just in case.

Added another idea I thought of today (edited the original issue description). Perhaps we don't need to go that far yet, but documenting it just in case.

In your example, is there any Flutter layer that is a) painted over a platform view while simultaneously b) being painted below another platform view? (I'm not sure but it's possible that the foreground might need a repaint boundary to force separate layer). It might be that there are some subtle differences between web and native, but shouldn't it be possible to have this capped at 2 layers already instead of n+1?
i.e.
<grid>
  <card>
    <background-color />
    <shadow />

   <repaint-boundary>

   </repaint-boundary>
  </card>
  <card>
    <background-color />
    <shadow />

    <repaint-boundary>

    </repaint-boundary>
  </card>
</grid>

Only content in repaint-boundary is painted directly on top of platform views, so if minimum overlay optimisation works as I'd expect, everything that's not in repaint boundary should end up in base layer, and everything in repaint boundary should end up in single overlay layer.

@yjbanov I really like the idea of allowing people to control the layers themselves. I was thinking a similar thing would be useful. For bonus points, would be awesome if you could do something like:
WebPlatformViewGroup(...),
CanvasKitPlatformViewGroup(...)
Right now you are fixed to one renderer, but there are a lot of cases where that sucks. For instance, if you want fast start, CanvasKit sucks due to the heavy payload, and the web renderer is much better (think login pages), but then you get into your app and you want the nicer rendering. Would be very nice if canvaskit was lazy initialized and brought in after login for us, but there's not a good out of the box way to swap renderers.
Another use case where that would be useful is you could sort of avoid platform layer exhaustion if you could use both renderers, since top most layers could use web renderer, which is not constrained, while bottom layers could canvaskit for better perf.

@jezell I like the idea of a baseline renderer that's small, and can continue loading in the background to become a full-featured renderer. However, swapping between CanvasKit and HTML won't work because engine-backed objects have renderer-specific representations. For example, you cannot start with an HTML Paint and later pass it to CanvasKit (which needs to be backed by a C++ SkPaint object). We'd have to do some sort fancy switch-over behind-the-scenes for all objects that can possibly flow into CanvasKit and HTML interchangeably.
An alternative would be to take CanvasKit, and see if there's a way to trim it aggressively such that it's very small, but perhaps doesn't have all the features, or maybe doesn't perform at 100%. For example, we can omit the text system in the baseline, and use Canvas 2D for rendering text. That could remove a few 100s of KB of payload. If CanvasKit is 500KB (totally guessing a number here), does it really matter much at that point?

@yjbanov maybe with multiview this could be accomplished?
https://github.com/flutter/flutter/issues/121374
Maybe swapping an image between engines with the same objects would be problematic, but does it really need to swap?If a view got mapped to a renderer, it's probably a lot easier to just to throw an exception if an image created from one renderer is used by the other renderer. It's easy enough to rebuild the same widget tree. If each view in a multi-view app is associated with a zone and the renderer used by the zone in a zone local variable instead of a static it might be possible with minimal changes.
Maybe explicit view compositing is just mutiview?

https://x.com/fserb/status/1794058245901824349
The ability to render HTML elements in Canvas is apparently landing in Chrome. Could potentially be very useful.

That is an interesting proposal from the platform view perspective. I would not describe it as "landing in Chrome" just yet. It still needs to go through the usual W3C/WICG processes before anything can be implemented and shipped in any browser.


[Question] This repo still using old docker images

Hello @janrenz This K8s deployment still uses old docker images. Any plan to update these images to use websockets?

Feel free to make a PR!

Feel free to make a PR!


create_user_pool_domain not returning data if no cert config is given

Moto version 1.3.16
Per AWS docs, you should be able to create a domain without supplying domain config (a certificate)
Doing so, AWS will just use their internal cognito domain to create the login page.
Related code:
https://github.com/spulec/moto/blob/master/moto/cognitoidp/models.py#L192-L198
The above code should probably be something like:
    def _distribution_name(self):
        if self.custom_domain_config and "CertificateArn" in self.custom_domain_config:
            hash = hashlib.md5(
                self.custom_domain_config["CertificateArn"].encode("utf-8")
            ).hexdigest()
            return "{hash}.cloudfront.net".format(hash=hash[:16])
        hash = hashlib.md5(self.user_pool_id).hexdigest()
        return "{hash}.amazoncognito.com".format(hash=hash[:16])

I am not a python dev so above may not be right.

This is now part of moto >= 1.3.17.dev277

@bblommers just curious - how long before a docker image will be tagged for .17?
No huge hurry since I'm just building from the patch branch for the moment.


Migrations require Rails 6.1

I'm trying to  add Maglev to a Rails 6.0 app, and expected it to work based on the README

Maglev is a page builder / CMS that you can plug in any Ruby on Rails 6+ application.

but most or all of the migrations specify 6.1.  Is this necessary?  Will I have problems if I change them to specify 6.0?
# This migration comes from maglev (originally<PHONE_NUMBER>2712)
class AddCanonicalToPages < ActiveRecord::Migration[6.0] # ⬅ ⬅ ⬅ ⬅ ⬅ ⬅  was 6.1
  def change
    add_column :maglev_page_paths, :canonical, :boolean, null: true, default: true
    add_index :maglev_page_paths, %i[canonical maglev_page_id locale], unique: true, name: 'canonical_uniqueness'
  end
end

Good question. It was generated from Rails 6.1 installation (the latest Rails version at the time I started the project).
Based on this changelog, I don't see anything preventing you to replace ActiveRecord::Migration[6.0] by ActiveRecord::Migration[6.1].
If everything works on your side, I'll replace it in the repository as well.
Thanks!

Thanks!
So far I haven't had any problem with changing 6.1 to 6.0, but I've only used Maglev in development.  Another developer is updating our internal gem that conflicted with Rails 7, so I expect to be upgrading my app soon, and therefore I may not be able to say based on any production use that it's okay to make those changes to the migrations.  But I'm 99% confident that they're safe to make.


Dragging the main window causes it to tremble

It happens every time when I drag the titlebar. I'm using OS X Mavericks, on a 15" macbook pro with Retina. I can provide you with more information about my system or make a video of the bahaviour, if you need it.

Here too.
Mavericks 10.9.5, retina mbp 15 2014.


Improve the rudimentary optimization configuration loading capability

I recently pushed a change that establishes "Clear", "Defaults", and "Load" buttons on the optimizations tab.   Still some rough edges.  This issue is intended to be a worklist for things that need improving.  Feel free to add to it or comment.

[x] File chooser state in the load button should be cleared when other buttons are used (otherwise you might not get a fresh load if you return to the load button later).
[ ] See samples/config/optconf1.json for unacceptable handling when the loaded config does not cover all languages.   Even if we retain the present global behavior, the languages that end up empty should look as they do after "Clear" is pressed, ready to be re-populated.
[ ] If the present global behavior is what we want (not sure) then consider restoring the former subtab selections after the load completes (return to the initial selections is a possibly astonishing side-effect)
[ ] Consider whether the present global behavior might not be what we want.  Instead, "Clear" might clear only the current phase (or the phases of the current language), "Defaults" scoped similarly, and "Load" might perform a coarse-grained merge leaving other languages (or even other phases of the current language) unchanged.

The first task was easily handled.   The second raises more subtle questions, though.
When you load a degenerate configuration like optconf1.json, most languages have no phases at all, but we create subtabs for all languages that have a QcertOptimStepDescription.   The ones that have no phases are useless for further modification because there are no phases (even empty ones) into which to drag optimizations.   This contrasts with what the "Clear" button does, which is to preserve the phases from the default configuration while simply removing all the optimizations.
I think the property that the default configuration's phase structure should be regarded as fixed should carry into loaded configurations so that:

any language/phase pair that is not in the config should be treated as in the Clear button (name and number of iterations set to the default but with no optimizations) and
any language/phase pair in the config that does not match one in the default config (ignoring the number of iterations) should be treated as an error.

So, the config can load optimizations and set the number of iterations for phases but not invent new phases or languages that the compiler does not already know about.

The last work item (local rather than global effects for config changes) is really a requirements issue so I am inclined to hold off on doing it until I get some feedback (especially from @jeromesimeon).
The second-to-last work item (restoring subtab selections) could become moot, depending on what we decided to do on the local vs global question.    So, I'm holding off on that work item also.

It appears that (1) the support as it now exists was good enough for Jerome in giving the demo and (2) we've generally moved beyond fine-tuning the demo, since SIGMOD is over.   Remaining work in this issue is thus not well-motivated and I'm closing it.


Add Frames to makeModule

I actually started working on this a while ago but got sidetracked and never finished it.  I added an antimatter material to create a cavity on the back surface of the module.  This keeps the geometry simple but I don't think there's a way to know if one of the sensors is on the frame instead of the module surface.

nice! I don't understand the antimatter material very well but, as far as sensors go, that is why I recommend in all my journals / talks to do a cleanup of the results. The "matchers" search in the cleaning functions can find the name of the frame in the materials list and remove those sensors from the results... That's how we remove torque tubes, sky, and also when a sensor catches the inside edge of a panel (the surface number changes in those cases). Not sure if this helps.

My method doesn't create a new material for the frame, instead it makes the module deeper and then carves out some of the module material on the back.  So the frame material is still 'black' (same as the module) and the rear of the module is material type 'framecavity'.
I think the cleanup you're describing will still work, but it's not intuitive that you'd remove results for material 'black' and only keep those for 'framecavity'.
Here's an example results csv:
jalderman@crunchy ~/Downloads/bifacial_radiance $ cat FramedModules/1P-1round/results/irr_1axis_07_02_08.csv | column -t -s,
x            y              z         rearZ     mattype                   rearMat                   Wm2Front            Wm2Back             Back/FrontRatio
0.6283781    3.847706e-17   1.17999   1.08999   a8.2.a0.framecavity.6457  a8.2.a0.framecavity.2310<PHONE_NUMBER>666666   58.025890000000004  0.15266517337875934
0.5567591    3.409166e-17   1.273326  1.183326  a8.2.a0.framecavity.6457  a8.2.a0.framecavity.2310<PHONE_NUMBER>6666663  57.079373333333336  0.1506270389938665
0.4851401    2.970626e-17   1.366661  1.276661  a8.2.a0.framecavity.6457  a8.2.a0.framecavity.2310<PHONE_NUMBER>333334   55.361940000000004  0.14653546814006352
0.4135211    2.532086e-17   1.459997  1.369997  a8.2.a0.framecavity.6457  a8.2.a0.framecavity.2310<PHONE_NUMBER>6666667  53.902593333333336  0.14294192143416623
0.3419021    2.093547e-17   1.553333  1.463333  a8.2.a0.framecavity.6457  a8.2.a0.framecavity.2310<PHONE_NUMBER>3333335  49.96310666666667   0.1330366968690658
0.2702831    1.655007e-17   1.646668  1.556668  a8.2.a0.framecavity.6457  a8.2.a0.framecavity.2310<PHONE_NUMBER>666667   42.61986666666667   0.11404884384919708
0.1986641    1.216467e-17   1.740004  1.650004  a8.2.a0.framecavity.6457  a8.2.a0.framecavity.2310  372.2272            39.30168333333334   0.10558491627806099
0.1270451    7.779271e-18   1.83334   1.74334   a8.2.a0.framecavity.6457  a8.2.a0.framecavity.2310<PHONE_NUMBER>666667   41.86534333333333   0.11267046319520028
0.05542614   3.393872e-18   1.926675  1.836675  a8.2.a0.framecavity.6457  a8.2.a0.framecavity.2310  0.3446287333333333  36.29722<PHONE_NUMBER>0324878
-0.01619285  -9.915263e-19  2.020011  1.930011  a8.2.a0.framecavity.6457  a8.2.a0.framecavity.2310  23.27856            40.60308333333333   1.7441516649512847
-0.08781184  -5.376925e-18  2.113347  2.023347  a8.2.a0.framecavity.6457  a8.2.a0.framecavity.2310<PHONE_NUMBER>666667   45.01263666666667   0.1224008430416029
-0.1594308   -9.762323e-18  2.206682  2.116682  a8.2.a0.framecavity.6457  a8.2.a0.framecavity.2310<PHONE_NUMBER>333333   45.75658333333334   0.12501824912748
-0.2310498   -1.414772e-17  2.300018  2.210018  a8.2.a0.framecavity.6457  a8.2.a0.framecavity.2310<PHONE_NUMBER>333333   46.05938666666666   0.12656833750760377
-0.3026688   -1.853312e-17  2.393354  2.303354  a8.2.a0.framecavity.6457  a8.2.a0.framecavity.2310  362.2932            46.60743            0.1286452557065501
-0.3742878   -2.291852e-17  2.48669   2.39669   a8.2.a0.framecavity.6457  a8.2.a0.framecavity.2310  362.0027            46.73423666666667   0.1290987817711992
-0.4459068   -2.730392e-17  2.580025  2.490025  a8.2.a0.framecavity.6457  a8.2.a0.framecavity.2310<PHONE_NUMBER>333333   43.01530333333333   0.11929362071820086

Oh, I understand now. With that methodology it wouldn't work. I do see an options with your carving method though:

Generate a box the size of the frame, and carve out everything but the borders. Then add the module itself the usual way. That way this will be two different identifiable materials.
Number of objects: 2

Generate boxes for the frame itself by calculating location of edges and desired sizes as input. Number of objects goes up to 5 though.

@jalderman9 I was wondering if you could comment on how you made the support and tracker structure for the system shown in these images. It looks pretty detailed. I'm just starting out with the program, so any code or reference material would be a big help.

@shaca40 For the posts I created a function that calls genprism with a list of xy coordinates that defines the H shape and extrudes it in the z direction to the desired height with -l 0 0 <z height>.  Then you apply transforms to array the shape based on row spacing and North-South spacing.
The end result is a single line of text that looks something like this where the number 12 is the number of vertices and the long string of numbers that follow are the x y pairs, and finally the transforms to move/array the posts:
!genprism Metal_Grey Hpile 12 0 0 0.006 0 0.006 0.047 0.142 0.047 0.142 0 0.148 0 0.148 0.1 0.142 0.1 0.142 0.053 0.006 0.053 0.006 0.1 0 0.1 -l 0 0 1.543 | xform -t -0.074 -0.05 0 | xform -t -13.334 6.060 0 -a 5 -t 6.66667 0 0 -a 3 -t 0 -6.060 0
For the post caps/actuators I used dxf2rad as described here.  For the purlins I again use genprism with xform.
The hardest part of this is keeping track of your reference frame and applying transforms in the correct order.
I believe bifacial_radiance has a method to add custom text to scenes but I just have my code directly open the .rad file for each hourly scene and append it.

while adding frame to the module, module is getting shifted.

This is the module image.

How to handle this?

@jalderman9 will you give some example how you added frame?

this stems from the half-cell shift to center sensors on a cell in even-cell numbered modules. You can try doing an even number of cells or turning off the cell level module.
I thought there is a warning for using frames with the cell-level module. Maybe when we redid the module into a class-object that warning went away. I'll follow on the discussion on the thread you opened.
S.


Script to read the Images

Type
New Feature/Advancement
Description
Create a Script that can read the Images and their label and save the Data for future purpose. Keep this Script specifically in a /script directory. You must also add a function that loads the Dataset. Make sure to download the dataset from Kaggle.
Tools

Python

Have you read the Contributing Guidelines on Pull Requests?
Yes

I can work on this.

Sure @rutujadhanawade ,
I am assigning this issue to you


install python3.6

recently started using a f-strings in a project and pushed it to piku and noticed that is was giving syntax errors.  python3.5.3 installed.
would it causes issues to install 3.6?

Depends. If you use uwsgi as a system package, you will need to recompile that to match your Python version or just use a Python web server and the web worker instead of wsgi.
If you’re using Raspbian, I’m currently planning to test Buster ASAP and note any differences.

On 3 Jul 2019, at 21:17, dWiGhT<EMAIL_ADDRESS>wrote:
recently started using a f-strings in a project and pushed it to piku and noticed that is was giving syntax errors. python3.5.3 installed.
would it causes issues to install 3.6?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

ok... so I installed python 3.7.2 and compiled a plugin for uwsgi.  Had to add a bit of code to piku.py but it seems to be running fine.  Thanks!

This can be closed.  I'll move the info on what I changed to make this happen into issue #24.


Deactivate :hover classes for the switch component on small screens

the switch component stays stretched after pressing when deactivated.
the fix should be something like:
pub fn sm() -> Attribute(a) {
  class(
-    "[&+div]:text-sm [&+div]:w-9 [&+div]:h-5 [&+div]:after:h-4 [&+div]:after:w-4 [&:enabled+div]:hover:after:w-5 [&:checked:enabled+div]:hover:after:w-4",
+    "[&+div]:text-sm [&+div]:w-9 [&+div]:h-5 [&+div]:after:h-4 [&+div]:after:w-4 lg:[&:enabled+div]:hover:after:w-5 lg:[&:checked:enabled+div]:hover:after:w-4",

  )
}

pub fn md() -> Attribute(a) {
  class(
-    "[&+div]:text-md [&+div]:w-11 [&+div]:h-6 [&+div]:after:h-5 [&+div]:after:w-5 [&:enabled+div]:hover:after:w-6 [&:checked:enabled+div]:hover:after:w-5",
+    "[&+div]:text-md [&+div]:w-11 [&+div]:h-6 [&+div]:after:h-5 [&+div]:after:w-5 lg:[&:enabled+div]:hover:after:w-6 lg:[&:checked:enabled+div]:hover:after:w-5",

  )
}

pub fn lg() -> Attribute(a) {
  class(
-    "[&+div]:text-lg [&+div]:w-[3.25rem] [&+div]:h-7 [&+div]:after:h-6 [&+div]:after:w-6 [&:enabled+div]:hover:after:w-7 [&:checked:enabled+div]:hover:after:w-6",
+    "[&+div]:text-lg [&+div]:w-[3.25rem] [&+div]:h-7 [&+div]:after:h-6 [&+div]:after:w-6 lg:[&:enabled+div]:hover:after:w-7 lg:[&:checked:enabled+div]:hover:after:w-6",
  )
}

The size of a screen doesn't necessarily determine whether it's touch-enabled. This issue will be automatically fixed in TailwindCSS v4 (discussed here: https://github.com/tailwindlabs/tailwindcss/pull/8394). In the meantime, you can enable this behavior with the hoverOnlyWhenSupported future flag:
// tailwind.config.js
module.exports = {
  future: {
    hoverOnlyWhenSupported: true,
  },
  // ...
}


Move the default decentraland app config to testnet and keep the default for the demo app using localhost

I think we will probably want an option to run even the decentraland one with localhost too, just not as the default.
Once this is done: https://github.com/tasitlabs/TasitSDK/issues/135
Credit to @marcelomorgado for this suggestion

@marcelomorgado I think the rough original intent of this issue is complete, even if it’s not done exactly as the issue is worded

Agree

Re-opening this based on our discussion on Slack

@pcowgill commented:

It would be nice if npm start defaulted the app to using the development config and not default

Perhaps by npm start passing a flag through that sets a var that chooses which config to use


Create temp files using mktemp

Using mktemp to create temporary files (e.g. the torsocks configuration file) will prevent collisions with existing files. Even if it is most unlikely to happen, it could happen in your code. mktemp simply won't create the file, if another file with the same name already exists

Thanks!


create cookie banner component

Description
Checklist

[ ] Tested against our testing policy (Resolution, Browser & Accessibility)
[ ] CHANGELOG entry

Closing as this was a missed historic branch that has been duplicated in https://github.com/Manifesto-Digital/hee-prototypes/pull/13


Expression 'undefined' used with directive 'webcam' is non-assignable!

Keep getting this error when trying to access makeSnapshot().  Commenting out video: '=' under scope:{} gets rid of the error, but of course there's no video.
Any ideas?
Thanks

I started to update the documentation, not sure if it's the good way but work better. Check https://github.com/jonashartmann/webcam-directive/pull/25

I've made changes that should fix this issue. It required changing the interface of the directive, so I've pushed the version to 3.0.0
You should use the new channel attribute to bind the scopes: https://github.com/jonashartmann/webcam-directive#set-a-channel-to-bind-data
Please try it out and let me know if you still have issues.


Carnac won't show Shift or Alt or sometimes Ctrl on my system

I am a Blender user and Blender is using lots of Shift + alt + ctrl type of shortcuts. Carnac sadly fails to show those all.

I would like to add, that shortcuts that involve mouse keys like Ctrl + Wheel or modifiers keys alone would also be welcome.

same issue here, I am using Photoshop, and it cannot show Alt or Shift tab when I press either of them alone.


Using Fill instead of Fit for background images.

Description
Some custom banners usually don't macth screen resolutions so using Fill (where the image gets cropped to screen size) will make it look much cleaner
How it looks on Reskin XBOXSX Ext

How it looks on Reskin XBOXSX

I've made it exact for 1920-620 backs
Will try to play with another dimensions. I think it will be horizontal scale with snap to top.

Please don't do this or at least give an option for us to choose. This is probably the only theme that doesn't always try to fill the whole screen and it's why I use it. Other themes make the default Steam hero resolution look even worse on 4K screen by trying to fill the screen.

I don't want to change it ))


Google: Not working on Mobile

On My PC it works seamlessly, but on my iphone, it is in a loading loop after entering the Username and hitting Next.

Is it for the Google site? New sign-in page or the old one?

The New one

Only on iPhone? Have you checked Android phone maybe?

i just tried it on an android device and it is working. So i just used my iphone again and Voila.... Its working now. Maybe some DNS issues or something was there before. All Good now.

Ok, thats good to know. Thanks! Closing.


write_attributes / attributes= method

Thoughts on adding something like this (possibly naming it attributes=)?
    # Analagous to ActiveRecord's #attributes= -- allows for writing attributes via a hash
    def write_attributes(attrs)
      attrs.each do |attr, val|
        write_attribute(attr, val)
      end
    end

Yes, it's a good idea to follow the Rails naming conventions and PR is welcomed.
But unfortunately there is already attributes accessor (defined here). It's too low-level and doesn't cast attribute values. So it makes sense to change it with proposed implementation. But it would be a breaking change so I believe we should wait until the next major release.
There is similar method #load (here) which is used completely internally but accidentally public. It could be used for now and later in the next major release it will become private.

Thanks for the quick response!


Dry output matches

Codecov Report

Merging #16 (8d52f30) into master (e32e0aa) will increase coverage by 2.91%.
The diff coverage is 76.92%.

@@            Coverage Diff             @@
##           master      #16      +/-   ##
==========================================
+ Coverage   79.58%   82.50%   +2.91%
==========================================
  Files           9        9
  Lines        1313     1280      -33
==========================================
+ Hits         1045     1056      +11
+ Misses        268      224      -44

Impacted Files
Coverage Δ

src/stellar/stellar.main.tpp
69.73% <62.50%> (-1.39%)
:arrow_down:

src/stellar_output.h
92.97% <75.60%> (+18.67%)
:arrow_up:

src/stellar/stellar.diagnostics.tpp
84.61% <90.47%> (+3.97%)
:arrow_up:

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 e32e0aa...8d52f30. Read the comment docs.


Error with OAuth1.0 Authentication

I'm trying to use OAuth1.0 to authenticate to an API. I am getting an error when it's preparing the http request.
The code is very simple. It builds just fine until I add the authentication part.
Any ideas?
ERROR - WebClient.Execute: -2147210493 (11011 / 80042b03), An error occurred during execute
-2147210492 (80042b04): An error occurred while preparing http request
-2146232576 (80131700): Automation error
Function Get_SingleRecord() As String
    Dim Client As New WebClient
    Client.BaseUrl = kBaseURL & "/"

    ' Setup authenticator
    Dim Auth As New OAuth1Authenticator
    Auth.Setup _
        ConsumerKey:=kconsumer_key, _
        ConsumerSecret:=kconsumer_secret, _
        Token:=koauth_token, _
        TokenSecret:=koauth_token_secret
    Set Client.Authenticator = Auth

    ' Use GetJSON helper to execute simple request and work with response
    Dim Resource As String
    Dim Response As WebResponse
    Resource = "restapi/1.0/object/contact/3"
    Set Response = Client.GetJson(Resource)
End Function

The error was at this line:
Set web_Crypto = CreateObject("System.Security.Cryptography.HMACSHA1")
Solution:
Installed MS .NET Framework 3.5


Remember search criteria

Would be cool if the search criteria were remembered. Perhaps saved as a cookie.

This could probably be handled with the same method as the other options
are. I second this.
On Jul 29, 2016 10:18 PM, "David Andersen"<EMAIL_ADDRESS>wrote:

Would be cool if the search criteria were remembered. Perhaps saved as a
cookie.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/justinleewells/pogo-optimizer/issues/201, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABCQDR-70kYbbT5U4YhhDxVP5CIqXFnPks5qat6TgaJpZM4JYuuG
.

I'll look into it, but the way semantic ui does selects doesn't seem to be compatible with this idea at first glance.


"Edit with Notepad++" option is greyed out

When using this Shell under Windows 10 (works under Windows 11), my option to open a file with notepad++ is greyed out and can't be clicked, with default context menu it works just fine. Is this an issue with this shell or is it a issue on Notepad++ side? I guess this issue is more of a curious question more so then a problem for me.
Shell:

Default:

try: modify(find='Notepad' vis='true')

This fixed it, thank you!

try: modify(find='Notepad' vis='true') or remove it and create new one: https://discord.com/channels/1106387012707168318/1142556557075284130/1142556557075284130

What file do you put the code in?

copy the code at the end in \imports\modify.nss file - save and reload the app with ctrl right click

Nice! That worked. Thank you

First thought which came to my mind was: Are the NP++ against Palestinians sovereignty?


Keyboard input is invalid after an abnormal RDP session disconnection

VSCode Version: 1.51.1
OS Version: Windows 10 20H2

Steps to Reproduce:

Open the editor on Windows: code --disable-extensions
Open a RDP session to this Windows from a MacOS RDP client.
Put the MacOS to sleep.
Login to Windows. Then try to type on Code.

Symptom:
The keyboard seems unresponsive. Code can't catch any key but mouse events.
Workaround:
Use the mouse to open "Command Palette". Then the keyboard works again.

same issue

Merging to https://github.com/microsoft/vscode/issues/167556


Fix for Google drive upload

This is mentioned under Issue #363

Tks

On Oct 31, 2019, at 9:36 PM, Khaos Tian<EMAIL_ADDRESS>wrote:
Merged #371 https://github.com/KhaosT/homebridge-camera-ffmpeg/pull/371 into master.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/KhaosT/homebridge-camera-ffmpeg/pull/371?email_source=notifications&email_token=AEXEFGAYSFHERVAHQHVKSHTQROBZTA5CNFSM4JCNTUH2YY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOUSPY4QA#event-2761920064, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEXEFGCZH7AENAP4YW6TYS3QROBZTANCNFSM4JCNTUHQ.

@NorthernMan54 np, sorry for the delay 😅


feat(cmd) Add flag for InMemory Cache for downloading charts

This feature allows us to use the --use-inmemory-cache flag to
use a chart without downloading it to the helm repository cache,
instead which is downloaded to InMemoryCache
augments and dependent on
https://github.com/helm/helm/pull/7601
Signed-off-by: Vibhav Bobade<EMAIL_ADDRESS>

cc @marckhouzam

@waveywaves can you checkout the CI failure?
# helm.sh/helm/v3/cmd/helm [helm.sh/helm/v3/cmd/helm.test]
cmd/helm/install.go:156: client.ReadOnlyFS undefined (type *action.Install has no field or method ReadOnlyFS)
cmd/helm/install.go:189: client.ReadOnlyFS undefined (type *action.Install has no field or method ReadOnlyFS)
cmd/helm/install.go:193: undefined: downloader.GetChart
FAIL	helm.sh/helm/v3/cmd/helm [build failed]

Closing as #7601 wouldn't need the flag to run anymore.


Additional EmbraceUrlConnectionDelegate unit tests and bug fixes

Goal

Testing

Release Notes

WHAT:
WHY:
WHO:

Current dependencies on/for this PR:

master

PR #50   👈

This stack of pull requests is managed by Graphite.


mitmdump crashes on start of server-replay: KeyError: 'marked'

rec.zip
Steps to reproduce the problem:

Run mitmdump with the attached recording: mitmdump --server-replay findastation.out
An exception is thrown:

Traceback (most recent call last):
  File "/home/markus/src/mitmproxy/venv3.5/bin/mitmdump", line 11, in <module>
    load_entry_point('mitmproxy', 'console_scripts', 'mitmdump')()
  File "/home/markus/src/mitmproxy/mitmproxy/main.py", line 102, in mitmdump
    master = dump.DumpMaster(server, dump_options)
  File "/home/markus/src/mitmproxy/mitmproxy/dump.py", line 64, in __init__
    self._readflow(options.server_replay),
  File "/home/markus/src/mitmproxy/mitmproxy/dump.py", line 96, in _readflow
    return flow.read_flows_from_paths(paths)
  File "/home/markus/src/mitmproxy/mitmproxy/flow/io.py", line 83, in read_flows_from_paths
    flows.extend(FlowReader(f).stream())
  File "/home/markus/src/mitmproxy/mitmproxy/flow/io.py", line 49, in stream
    yield models.FLOW_TYPES[data["type"]].from_state(data)
  File "/home/markus/src/mitmproxy/mitmproxy/models/flow.py", line 112, in from_state
    f.set_state(state)
  File "/home/markus/src/mitmproxy/mitmproxy/models/flow.py", line 107, in set_state
    super(Flow, self).set_state(state)
  File "/home/markus/src/mitmproxy/mitmproxy/stateobject.py", line 55, in set_state
    val = state.pop(attr)
KeyError: 'marked'

What is the expected behavior?
mitmdump continues running and the replayed page is served
Any other comments? What have you tried so far?
Note that this is a recording made with an olderversion of mitmproxy, probably from about 2 months ago. Other recordings do not crash similarly.
Running on commit 62ab2f2fd5188f31e99560dce788ba85c2933a1a with Python 3.5 on Linux.
Thanks :)

This is because we made a change that stores the marked attribute (whether or not a flow was marked in the UI) to the "recordings" so old recordings will not work, sadly.
I'm not sure if we can just keep default values for attributes that were not found in the files.

We currently only support version migrations between stable releases.  You can fix this by adding state["marked"] = False in convert_flow in mitnproxy.flow.io_compat. (IIRC, on mobile atm)

@dufferzafar: 0.17- recordings work fine, it's just 0.18 recordings from master (which don't go through the migration) :smiley:

Thanks for the fast response :) I should be able to work it out.


Unrecognized attribute 'useOriginalURLEncoding'

I'm trying to set useOriginalURLEncoding=false in my web.config under configuration/system.webServer/rewrite/rules but get the following error:
Module | RewriteModule
Notification | SendResponse
Handler | StaticFile
Error Code | 0x8007000d
Config Error | Unrecognized attribute 'useOriginalURLEncoding'
Config File | \?\D:\home\site\wwwroot\web.config
How can I enable this? Here's the blog/article for more info: https://blogs.iis.net/iisteam/url-rewrite-v2-1

Im having the same problem here, any updates on this?

Hi
If the problem persists and is related to running it on Azure App Service, please open a support incident in Azure:
https://learn.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request
This way we can better track and assist you on this case
Thanks,
Joaquin Vano
Azure App Service


[Feature] Bug explanation

Was fighting the World Boss on Titan and discovered that swapping out to a different pokemon when your first one died cause whatever you swapped to, to faint after battle.
All you have to do is wait for a World Boss to happen (Or start one)

You fight the boss with one of your pokemons, you hit them onces.
You let your first pokemon die
Swap to someone else and kill the World Boss
When the battle finishes both your first and second pokemon will have fainted

Unfortunately, I was forgot to take screenshots, but will be willing to try and replicate the bug inside of the Beta Server.
Username: WxllyDox
Server: Titan
latest.log
If you are having hard time to replicate it on Beta Server, I suggest you try it on Titan. I willing to help if my information is lacking or not descriptive enough for someone to understand the problem.

Need confirmation this is still happening, aka - can an admin reproduce the issue?

reproduced and forwarded to tracker


[AutoPR search/resource-manager] Azure Search: Add resource identity (MSI) support

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/3377

(message created by the CI based on PR content)

Codecov Report

:exclamation: No coverage uploaded for pull request base (restapi_auto_search/resource-manager@12fae77). Click here to learn what that means.
The diff coverage is 76.92%.

@@                           Coverage Diff                           @@
##             restapi_auto_search/resource-manager    #2897   +/-   ##
=======================================================================
  Coverage                                        ?   56.71%
=======================================================================
  Files                                           ?     7649
  Lines                                           ?   158370
  Branches                                        ?        0
=======================================================================
  Hits                                            ?    89812
  Misses                                          ?    68558
  Partials                                        ?        0

Impacted Files
Coverage Δ

...-search/azure/mgmt/search/models/search_service.py
100% <ø> (ø)

...mt-search/azure/mgmt/search/models/resource_py3.py
100% <100%> (ø)

...e-mgmt-search/azure/mgmt/search/models/__init__.py
100% <100%> (ø)

...e-mgmt-search/azure/mgmt/search/models/resource.py
100% <100%> (ø)

azure-mgmt-search/azure/mgmt/search/version.py
100% <100%> (ø)

...rch/azure/mgmt/search/models/search_service_py3.py
100% <100%> (ø)

...mt-search/azure/mgmt/search/models/identity_py3.py
66.66% <66.66%> (ø)

...e-mgmt-search/azure/mgmt/search/models/identity.py
66.66% <66.66%> (ø)

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 12fae77...4826023. Read the comment docs.

This PR has been merged into https://github.com/Azure/azure-sdk-for-python/pull/2901


Add list of langs accepted by our ICU

Action plan:

Gather test cases from ICU, Snowball and maybe other vendors for the most important languages
Maybe involve the community to help testing languages
List the most important langs in the docs, not only for ArangoSearch (SORT, --default-language, Fulltext index?)

https://github.com/unicode-org/icu/blob/master/icu4c/source/test/testdata/WordBreakTest.txt


Highlight option in Search

Hi. I've been trying to find out how to enable highlighting when getting search results but could not seem to find it in either the elasticsearch.go or esapi folder. Please let me know if I've looked over something. Thanks!

Hello! Highlighting is done by passing the corresponding configuration in the search definition, ie. in the search body — there's no method or something like that on the Search API.
Have a look in the "XKCD" example, which has a comprehensive demo of returning, parsing, and displaying highlights:
https://github.com/elastic/go-elasticsearch/blob/ca32bbd4b9860afbb832ebbaa9149a50740e9f9a/_examples/xkcdsearch/store.go#L184-L188

Thank you for such a quick reply! Will be sure to look into it.


Various VSCode / VSCodium extension themes

Description of changes

vscode-extensions.carrie999.cyberpunk-2020: init at 0.1.4
vscode-extensions.dhedgecock.radical-vscode: init at 3.3.1
vscode-extensions.nur.just-black: init at 3.1.1
vscode-extensions.silofy.hackthebox: init at 0.2.9
vscode-extensions.thorerik.hacker-theme: init at 3.0.1
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[X] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Tip: Set your PR in draft to avoid spamming all maintainers before doing the branch change.

I prefer to close this PR in favor of https://github.com/NixOS/nixpkgs/pull/280941


./hello_world: error while loading shared libraries: libprotobuf.so.<IP_ADDRESS>: cannot open shared object file: No such file or directory

Hi,
I ran make RDMA=1 under p4app-switchML/dev_root/client_lib/, then make RDMA=1 under p4app-switchML/dev_root/examples/, and finally ran . /hello_world under p4app-switchML/dev_root/ build/bin/ . But it shows: "./hello_world: error while loading shared libraries: libprotobuf.so.<IP_ADDRESS>: cannot open shared object file: No such file or directory".

Environment:

Ubuntu16.04
Python 3.8.3
ConnectX-6 NIC

You have to compile the needed third party libraries which in your case is only GRPC.
Go to dev_root/third_party and run make RDMA=1. This will compile GRPC then print an important message that you need to follow in order to register the GRPC library in your system.
Next time, you can just run make RDMA= in dev_root and it will perform all needed steps.
Let me know if it doesn't work out.

Thank you very much for your help, I have been able to start this example, but it has the following exception again, I don't know what is the cause, can you give me some advice?

My switchml.cfg is as follows ,and placed it in the ~/p4app-switchML/dev_root/build/bin with hello_world directory：
switchml.txt

i have this same porblem  as you，has you solved it ？
 If you have a solution afterwards, I'd appreciate you telling me about it.

You must run the controller to use the DPDK or RDMA backends. Without the controller you can only run with the dummy backend which is used usually for debugging (no real communication happens).

@OasisArtisan, thank you very much for your help, I've been able to run the "hello_world" example on the client side! I would also like to do a joint test with the switch afterwards.

But I had some trouble on the switch side. Could you please take a look at the following issue?
https://github.com/p4lang/p4app-switchML/issues/13#issue-1292901371

@1908639561 i have been run switch and controller already，however this problem is still happed.
bf-sde.pm> show
-----+----+---+----+-------+----+--+--+---+---+---+--------+----------------+----------------+-
PORT |MAC |D_P|P/PT|SPEED  |FEC |AN|KR|RDY|ADM|OPR|LPBK    |FRAMES RX       |FRAMES TX       |E
-----+----+---+----+-------+----+--+--+---+---+---+--------+----------------+----------------+-
5/0  | 6/0| 12|1/12|100G   | RS |Ds|Au|YES|ENB|UP |  NONE  |               0|               0|
7/0  | 5/0| 20|1/20|100G   | RS |Ds|Au|YES|ENB|UP |  NONE  |               0| [](url)             11|
9/0  | 4/0| 28|1/28|100G   | RS |Ds|Au|YES|ENB|UP |  NONE  |               9|               2|
11/0 | 3/0| 36|1/36|100G   | RS |Ds|Au|YES|ENB|UP |  NONE  |               2|               5|
![Snipaste_2022-07-09_10-07-36](https://user-images.githubusercontent.com/59639597/178087687-bec73eb8-38b6-4bd1-9dc2-2d411312ab8b.png)

Furthermore，i can run "hello world" success with dummy ,but when i use dpdk or rdma backend，i got "Check failed: buf != MAP_FAILED && buf == requested_address Error allocating memory region: Cannot allocate memory [12]"

@lvleiai123 , have you set up this script?
https://github.com/p4lang/p4app-switchML/tree/main/dev_root/scripts

i haven't run this scriptsa and i will try this now  .  we can get "DEV" by run “ibv_devices”,  how can i get another “REGS”.

I don't think it should need to be changed if you're using the ConnectX-5/6 NIC.

@lvleiai123 ,
What version of SDE are you using? Is your "switchml.cfg" file not properly configured?

SDE = 9.5.0 , here are my configure ，i'm afraid i have configured correctlly
switchml.txt

@lvleiai123 ,
Indeed, you can try to modify different values, and the value of "rank" in this file should be different in different clients. Also the official test was done on "9.6.0", I think the "SDE" version may also need to be "9.6.0" or higher.

i can also run hello world successfully by default configureation in switchml.cfg.
but when i change the  configuration  “backend = dummy” into “backend = rdma” in  switchml.cfg ,i will get errors like this
, you can try for it

Hi,
the SDE version 9.7 has changed the name of the pktgen table, so the controller code that worked for 9.6 and earlier versions does not work with 9.7+. I have now committed the changes to make it work with 9.7+.
@lvleiai123 I suggest to update to the a newer SDE, but if you want to keep using 9.5, do not pull the latest commit.
Regarding the "Cannot allocate memory [12]" error, I think that you run out of memory in the hugepages.
Just out of curiosity, can you please try to use packet_numel=64 and max_outstanding_packets=1 and check if the error still happens? This is reducing the amount of memory allocated.
Anyway, to solve the issue you should enable 1GB hugepages. Please confirm if this solves the problem.
Finally, regarding disabling the ICRC check, the script we provide works for Mellanox CTX 5 and 6, but for any other NIC you need to ask the NIC vendor how this can be done. If you find out how to do this for a different NIC, it would be great to let us know or send a PR with the script, so that we can add that to the repo.

@AmedeoSapio  @OasisArtisan @lvleiai123，hi，
I have been able to run "hello_world". But the client only seems to be sending packets, but never receiving packets from the switch. I am using SDE-9.8.0.But I guess I may need to try using SDE-9.7.0 in the future.
I have changed my switchml.cfg according to this issue：https://github.com/p4lang/p4app-switchML/issues/8#issue-1167374645
switchml.cfg.txt

I use "python3 switchml.py --switch-mac 00:90:fb:70:64:b9 --switch-ip <IP_ADDRESS>" to run my controller.And my switch NIC information is as follows：

Hi,
the --switch-mac and --switch-ip parameters are the addresses that the switch uses while acting as endpoint, to send/receive packets to the RDMA NICs. These do not need to be addresses of a real NIC on your system.
For --switch-mac you can use the default value 00:11:22:33:44:55, as long as no other NIC in your testbed has this exactly same MAC address.
For --switch-ip you need to provide an address, not used by anyone else, in the same subnet as the IPs of your RDMA NICs.
As an example, if you have 2 worker nodes, the first host RDMA NIC has IP <IP_ADDRESS>/24 and the second one has <IP_ADDRESS>/24, you should provide something like --switch-ip <IP_ADDRESS>.

Hi, @AmedeoSapio . Thank you for your reply！
I did what you said, but it still doesn't seem to work.The client is always waiting for the jobs to complete.I am using SDE-9.9.0.

My RDMA NIC's status:
ens6f1:

Link encap:Ethernet
HWaddr 10:70:fd:06:fa:4d
inet addr:<IP_ADDRESS>
Bcast:<IP_ADDRESS>
Mask:<IP_ADDRESS>

My ports.yaml:

My switchml.cfg:
switchml.cfg.txt

Hi, @AmedeoSapio ，
I see in this question that we can only use ports below 64 to connect to the server, https://github.com/p4lang/p4app-switchML/issues/6#issuecomment-1063497997has this restriction not been lifted yet please?This is because the switches I use all have port numbers of 64 or more.

Hi @1908639561,
that restriction is not present anymore, so you shouldn't have any problem with a 2-pipes switch (as long as you don't explicitly enable the folded pipeline in the controller).
Since you are mentioning that the switch is a 2 pipes switch, note that you can only use packet_numel = 64 (see this other  https://github.com/p4lang/p4app-switchML/issues/6#issuecomment-1070319732 in that same issue).
Please check if changing this value solves your problem.

Hi, @AmedeoSapio ，
I've changed its value, but it still doesn't work properly.
switchml.cfg.txt

@1908639561 How many packets in/out that port do you see with the pm show command when you start the client?

i have two  nodes，it have  been run successfully， i can see them in controller  by command "show_rdma_workers"。
SwitchML>show_rdma_workers
                                                   Received              Sent
 Worker ID     Worker MAC        Worker IP     Packets  /    Bytes      Packets  /    Bytes
     0      b8:ce:f6:74:73:7b     <IP_ADDRESS>         0     /      0           0     /      0
     1      b8:ce:f6:74:69:c3     <IP_ADDRESS>         0     /      0           0     /      0

here are info when i run train program in node work3：
[switchml.txt](https://github.com/p4lang/p4app-switchML/files/9088703/switchml.txt)
[switchml.txt](https://github.com/p4lang/p4app-switchML/files/9088703/switchml.txt)

(base) root@work3:/imagenet#  python main.py -a resnet50 --dist-url 'tcp://<IP_ADDRESS>:10000' --dist-backend 'gloo'  --world-size 2 --rank 0  /imagenet/tiny-imagenet-200/
开始时间为2022-07-11 10:04:31
=> creating model 'resnet50'
Epoch: [0][  0/196]     Time  3.698 ( 3.698)    Data  0.843 ( 0.843)    Loss 7.1413e+00 (7.1413e+00)    Acc@1   0.00 (  0.00)   Acc@5   0.78 (  0.78)
Epoch: [0][ 10/196]     Time  1.794 ( 1.969)    Data  0.000 ( 0.077)    Loss 8.1934e+00 (7.1185e+00)    Acc@1   0.78 (  0.50)   Acc@5   2.73 (  2.41)
Epoch: [0][ 20/196]     Time  1.820 ( 1.889)    Data  0.000 ( 0.040)    Loss 7.2121e+00 (7.3330e+00)    Acc@1   0.00 (  0.39)   Acc@5   1.95 (  2.29)
Epoch: [0][ 30/196]     Time  1.794 ( 1.860)    Data  0.000 ( 0.027)    Loss 5.8432e+00 (7.0244e+00)    Acc@1   0.39 (  0.50)   Acc@5   3.91 (  2.65)

work4：
(base) root@work4:/imagenet# python main.py -a resnet50 --dist-url 'tcp://<IP_ADDRESS>:4791' --dist-backend 'gloo'  --world-size 2 --rank 1  /imagenet/tiny-imagenet-200/
开始时间为2022-07-11 10:57:33
=> creating model 'resnet50'
Epoch: [0][  0/196]     Time  3.624 ( 3.624)    Data  1.088 ( 1.088)    Loss 7.0714e+00 (7.0714e+00)    Acc@1   0.39 (  0.39)   Acc@5   1.17 (  1.17)
Epoch: [0][ 10/196]     Time  1.797 ( 1.980)    Data  0.000 ( 0.099)    Loss 8.1733e+00 (7.0992e+00)    Acc@1   0.00 (  0.43)   Acc@5   1.17 (  2.59)

However, i don't understand why node working with “TCP” ，also，  " Received  "and “Sent” is both 0 by  "show_rdma_workers" in controller.  All  Packets I captured in node work3 or work4  through "tcpdump" are TCP ,no UDP at all.
i have already configured "RDMA" in switchml.cfg as below 。
Finally，i also don't understand clearly if  “dist-url ”  is the ip of mellanox network card。
switchml.txt
switchml.txt

@1908639561 How many packets in/out that port do you see with the pm show command when you start the client?

@AmedeoSapio , It is in this state：

I'm sorry, I think I made a fatal mistake because I reinstalled my switch system as ubuntu 18.04. So I was using the default normal user and my controller didn't have permission to handle the packets. After I recompiled SwitchML and ran the controller when I switched to root, I am now able to run "hello_world".


usage feedback - something panics when declaring a dependency like this foo = "*"

At: https://github.com/mainmatter/cargo-autoinherit/blob/main/src/dedup.rs#L147
thanks for the tool :+1:

thanks :+1:


Bootstrap e2e tests

This project still amazes me 🤩
I think tests are a crucial part of any project, so I added a basic smoke e2e test to build upon.
Bootstrapping was the most challenging part, so I hope this can pave the way for more in-depth tests.
What does it do?
It opens a tsserver instance in the project that should be tested and opens/saves a file and checks if the generated file was created and imported.
How to run
It can be run via pnpm test:e2e, everything else should be done automatically.
Be aware that the test takes some time (because of tsserver), around ~5 secs on my M1 machine for this test alone.
Any feedback is greatly appreciated
Addresses issue #22

Updated to a monorepo in #33 as this PR broke changesets and publishing in general

Rebased!

@JoviDeCroock should be good to merge now 🥳


Suggested FAQs

This might be a good start to the list of FAQs that we want/should publish on the ESMValTool documentation page:

[ ] How do I get my code into the ESMValTool?
[ ] Can I add other languages/packages when writing my code?
[ ] Are the observations used in the ESMValTool provided with the installation as well?

There is a FAQ section in the documentation now: https://docs.esmvaltool.org/en/latest/faq.html, it can be edited here.


Double buffering for flash programming

Improve flash programming performance by using double buffering. Data for the next page is loaded into RAM while the previous page is still being programmed. Double buffering is enabled by adding the 'page_buffers' value to the flash_algo dictionary.
Only Freescale Kinetis devices are currently supported. I need someone to help enable and test on other devices.
On the K64F, these are the flash_test.py results before and after:

Target           Chip Erase          Page Erase          Page Erase (Same data)

k64f single      14.796891 KB/s      14.272724 KB/s      35.775076 KB/s
k64f double      24.274857 KB/s      22.992638 KB/s      35.759061 KB/s

Excellent idea!  Patch looks great.  I'll test with the targets I have but I might not be able to get to it  until the weekend.

Thanks for reviewing. If this pull request is not merged in by the time you are able to test other targets, you can send me a patch for additional device support and I'll push it to this branch for inclusion in the pull request. Or we can just add other devices as separate pull requests.

No problem.  Thanks for the patch, I have been using it today and it is excellent :smiley:.  If you want to merge this patch feel free to.  I'll open up a new pull request as you suggested if this gets merged before my changes.


Using SwipeCellKit in UITableView inside UIScrollView

Hi!
I have an UIScrollView, which contains multiple UITableViewController, so could horizontally swipe between them. But when I add SwipeTableViewCell's in tableView and if i would try to swipe left/right i can only access SwipeActions, but not the UIScrollView...
Is it possible to set some kind of area on SwipeTableViewCell (for example, from left corner to centre of the cell) where if i swipe, i would see SwipeActions, and if i swipe outside this area -> then just use simple paging functionality between controllers?
Thanks!

Its not. Without SwipeTableViewCell, do the editActions on UITableView work in your case?

You mean set scrollView.panGestureRegognizer.delegate = self ? Because in this case it fails with error: UIScrollView's built-in pan gesture recognizer must have its scroll view as its delegate. Or I need to add another panGestureRecognizer to scrollView?

Yes, you need to put a panGestureRecognizer and then use the shouldRecognizeSimultaneouslyWith to disable cell's panGestureRecognizer when when you choose its appropriate.

Going to close this issue as supporting edge swipe only does not make sense from a UX perspective and conflicts with the back gesture. You should be able to accomplish what you need with the above mentioned suggestion.

Hiii seidju,
Can you please add the code here for solution?


Undefined kernel_z, kernel_h and kernel_h attributes in GRUDCell() class

Hi,
I'm trying to run the GRUD on the data bricks platform for my research and there seems to be some undefined attributes used when calling the CRUDCell.  I run the following code:
model = create_grud_model(input_dim=17,                              output_dim=17,                             output_activation='sigmoid',                             recurrent_dim=[64],                             hidden_dim=[64]                            )
And I end up with the following:
AttributeError: 'GRUDCell' object has no attribute 'kernel_z'
Digging a bit furthering grud_layers.py, you have the following on lines 278-280:
278     z_t = K.dot(x_z, self.kernel_z) + K.dot(h_tm1_z, self.recurrent_kernel_z)
279     r_t = K.dot(x_r, self.kernel_r) + K.dot(h_tm1_r, self.recurrent_kernel_r)
280     hh_t = K.dot(x_h, self.kernel_h)

But self.kernel_ and self.recurrent_kernel_ are not defined anywhere in the GRUDCell class.I am pretty new to this level of tensor flow/keras so I'm not sure exactly what these should be in the pipeline, so I can't hack it together myself. Can you please help?

@quarkmatter I have modified the tensorflow.keras.recurrent.py, and return the self.kernel_ and self.recurrent_kernel_  for grud_layer.py, which seems working. But there are warning:
"WARNING:tensorflow:Gradients do not exist for variables ['grud/kernel:0', 'grud/recurrent_kernel:0', 'grud/bias:0', 'grud/masking_kernel:0'] when minimizing the loss."
I am not sure about the consequences of this warning.

Please strictly follow the package dependencies in requirements.txt, as running on later versions has not been tested.