Stack overflow running make reftests

Short info header:

GFX version: Master
OS: Linux Mint 18.3
GPU:

Output of make reftests:
Parsing test suite 'local'...
Testing Vulkan:
	Scene 'compute':

thread 'main' has overflowed its stack
fatal runtime error: stack overflow
Aborted
Makefile:72: recipe for target 'reftests' failed
make: *** [reftests] Error 134

Did a small bit of investigating with git bisect and it seems to be #3307 that's causing it.

what i found is that it SIGABRTs here:
https://github.com/gfx-rs/gfx/blob/3fce1bd0550110f0565018fd2b4b74a4da151c62/src/backend/vulkan/src/device.rs#L1674
while entering this function (i mean the call itself fails):
https://github.com/NotIntMan/inplace_it/blob/03fb87daf35e6f0d792d52702246e12ac90fd950/src/fixed_array.rs#L104-L105
but then my debugging falls short since i have no idea how to inspect/debug stack sizes for closures(? is that even proper thing to do? :shrug: )
maybe nesting inplace_it::inplace_or_alloc_array was doomed from the start? :shrug:

that's scary... but easy to check in a standalone example. Maybe file an issue to their repo?

I couldn't reproduce it with simple Vecs of i32. But digging into asm this is what i found (take it with a grain of salt since im not fluent in all this native stackframe shenanigans):
__rust_probestack after each call walks whole stackframe (in steps of 1000 bytes i think) to check whether it will cause segfault.
Idk where the actual size of each stackframe comes from exactly but:

it's requested to be 19_106_544 before we segfault and on my machine stacksize is 8mbs
it's somehow related to inplace macro in https://github.com/NotIntMan/inplace_it/blob/03fb87daf35e6f0d792d52702246e12ac90fd950/src/fixed_array.rs#L104

If i change this macro to allocate at most 1632 elems the quad example starts working fine again. I suppose this depends on element type & bytesize
https://github.com/NotIntMan/inplace_it/blob/03fb87daf35e6f0d792d52702246e12ac90fd950/src/fixed_array.rs#L239
And if i change the macro to 128 elems max all make reftests pass for vulkan without stack overflows.
I wonder why it requests 19106544 stack though since vk::DescriptorSetLayoutBinding, vk::DescriptorSetLayoutCreateInfo and VkResult<vk::DescriptorSetLayout> are only 24, 32 and 16 bytes correspondingly

Thank you for the findings! I wanted to ask you to file a bug to inplace_it repo, but ended up doing it myself here - https://github.com/NotIntMan/inplace_it/issues/4

Fixed by #3326


Move documentation to MkDocs

Fixes #49

@theskumar If you have any configuration/plugins etc. that you think make obvious sense here, please do not hesitate to add them to this PR.

@frjo I'll take a look at the plugins and also the plugins customization we can also do as do more and more docs. More organically.

@theskumar Nice improvements. Really liking mkdocs, it just makes sense.

Updated the dev port to 9100 to avoid conflicts in my local env. I hope that works for you as well.


feat: Internal links

As long as the url is formatted as (/spaces/...) then it does work.  At least it stays in the same browser tab although it does seem to refresh the entire page.


SearchView : memory leak on clear criteria

the result view is recreated every time you click on clear criteria due to the call to initialize.

done.

https://github.com/KleeGroup/focus/commit/f62a21fdeb56a0f1214a83dcc41a4969e04dcefe


[Fixedwing]mission_landing_required should not relative to RTL type

Describe the bug
fixed wing update flight plan, QGC error "Mission rejected: landing pattern required"
To Reproduce
Steps to reproduce the behavior:

start sitl gazebo plane
set the flight plan without land waypoint
upload
error "Mission rejected: landing pattern required"

Additional context
in check_mission_valid()
https://github.com/PX4/Firmware/blob/master/src/modules/navigator/mission.cpp#L1644
check the navigator mission_landing_required()
https://github.com/PX4/Firmware/blob/master/src/modules/navigator/navigator.h#L274
just return the RTL type whether RLT type is equal RTL_LAND
I am not clear whether RTL type should be combind the mission land required

Recently the fixed wing default parameters were updated to default RTL_TYPE to 1 which is to Return via a mission landing pattern.  This is the best RTL_TYPE for the vast majority of fixed wing systems.   This safety check rejects any mission that does not have a landing pattern, because how else will you get back and land when you lose Comms or go low battery?

but in some use case like land survey, we wish the last action is loiter at home and open the parachute, and another question is when we upload the flight plan, qgc just prompt no Land pattern but if we set the last waypoint as land, no effective because there is no land start. no person will find the issue is RTL type before you check the source code.

we wish the last action is loiter at home and open the parachute,

In this case you will want to change the RTL_TYPE parameter to something other than the fixed wing default of 1, e.g. probably set it to 0.  The fixed wing defaults are set here:  https://github.com/PX4/Firmware/blob/master/ROMFS/px4fmu_common/init.d/rc.fw_defaults#L33

qgc just prompt no Land pattern but if we set the last waypoint as land, no effective because there is no land start. no person will find the issue is RTL type before you check the source code.

The text message sent from the autopilot to QGC used to say "land start required", but we changed it to "landing pattern required" because the general user had no idea what a "land start" was, but they generally do know what a "landing pattern" is because it is one of the mission planning buttons in Qgroundcontrol.
You raise a good point here though about potential confusion for people just using a Land waypoint vs using a Landing Pattern.  The Mission Feasibility module checks for a "mission landing pattern" as documented in the Return Mode behavior docs here https://docs.px4.io/master/en/flight_modes/return.html


Implement POSITION expression

Background
resolve #855
Tasks

add structures

[x] ast
[ ] executor
[x] plan

define errors

[ ] error when there is no in keyword

add tests

[x] projection with columns
[x] only string
[ ] errors

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 38 (0.0%)  changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.1%) to 98.205%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

core/src/plan/expr/function.rs
0
1
0.0%

core/src/executor/evaluate/mod.rs
0
4
0.0%

core/src/executor/evaluate/stateless.rs
0
4
0.0%

core/src/executor/evaluate/function.rs
0
6
0.0%

test-suite/src/function/position.rs
0
23
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.1%

Covered Lines:
36162

Relevant Lines:
36823

💛  - Coveralls


Create/Update Feed Fails with "Request contains an invalid argument" error

Describe the bug:
We are in the process of migrating the .NET Nuget package for "Google.Ads.GoogleAds" from version "9.0.0" to version "11.0.1". After doing so, we are now making a call like the code below in Steps to Reproduce in order to update a Feed.
Instead of getting a MutateFeedsResponse back, it blows up with the following exception error every time:

{"Status(StatusCode="InvalidArgument", Detail="Request contains an invalid argument.", DebugException="Grpc.Core.Internal.CoreErrorDetailException: {"created":"@1651768123.016000000","description":"Error received from peer ipv4:172...*:443","file":"..\..\..\src\core\lib\surface\call.cc","file_line":1070,"grpc_message":"Request contains an invalid argument.","grpc_status":3}")"}

Note that we can load Feeds just fine by passing a query to await googleAdsService.SearchStreamAsync, so we are able to connect to the API and run queries, but we have been unable to create or update anything since switching to 11.0.1. This same Request contains an invalid argument error is generated for both creates and updates.
Steps to Reproduce:
using Google.Ads.GoogleAds;
using Google.Ads.GoogleAds.Lib;
using Google.Ads.GoogleAds.Util;
using Google.Ads.GoogleAds.V10.Services;

// We load the Google.Ads.GoogleAds.V10.Resources.Feed into the "feed" variable here.
var operation = new FeedOperation() {
    Update = feed,
    UpdateMask = FieldMasks.AllSetFieldsOf(feed)
};
var googleAdsConfig = new GoogleAdsConfig() {
    DeveloperToken = "***********************",
    LoginCustomerId = "124*******",
    OAuth2Mode = OAuth2Flow.APPLICATION,
    OAuth2ClientId = "***********************************.apps.googleusercontent.com",
    OAuth2ClientSecret = "***************************",
    OAuth2RefreshToken = "*******************************************************************************************************",
};
var googleAdsClient = new GoogleAdsClient(googleAdsConfig);
FeedServiceClient serviceClient = googleAdsClient.GetService(Services.V10.FeedService);
long customerId = 0; // We are storing this customer ID on our end when we create the Feed, so the 0 here is just a placeholder.

// This method blows up with the "InvalidArgument" error 100% of the time.
MutateFeedsResponse response = await serviceClient.MutateFeedsAsync(customerId.ToString(), new List<FeedOperation>() { operation }, cancellationToken);

Here is what the feed object looks like before it's sent to the MutateFeedsAsync method:

Here is what the FeedOperation looks like:

Expected behavior:
Should update the Feed, like it used to in version 9 of the Nuget package.
Client library version and API version:
Client library version: 11.0.1
Google Ads API version: 10
.NET version: .NET Core 3.1
Operating system (Linux, Windows, ...) and version (if the bug is platform-specific):
Request/Response Logs:
I enabled detailed logging, but when I accessed the file after these errors, the request doesn't appear there. The last request I see logged is actually to Method Name: /google.ads.googleads.v10.services.GoogleAdsService/SearchStream. There are no requests logged to Mutate a Feed. The last SearchStream request had request ID gWZW4d6ou032M0e8eZ5EWw, if that matters (shouldn't matter, since we can GET just fine).
Anything else we should know about your project / environment
Here are all the Nuget packages we have installed in this project, in case one of the other ones could be messing something up:

Since the call is Async, the logs get a while to be written (i.e. it is not synchronized).
Could you share the request-id? It is also part of the GoogleAdsException. Add the exception to the Visual Studio watch and expand the fields.


Change the global create and DM create tooltips to read Create

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/35677
PROPOSAL: https://github.com/Expensify/App/issues/35677#issuecomment-1924302082
Tests

Open NewDot on web/desktop
Hover over the + button in the bottom tab bar
Observe the tooltip reads 'Create'
Click into a chat
Hover over the + button to the left of the composer
Observe the tooltip reads 'Create'

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

Open NewDot on web/desktop
Hover over the + button in the bottom tab bar
Observe the tooltip reads 'Create'
Click into a chat
Hover over the + button to the left of the composer
Observe the tooltip reads 'Create'

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

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

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/77237602/8ed629d2-f118-4631-b422-7159c70ee934

MacOS: Desktop

https://github.com/Expensify/App/assets/77237602/e59c5e14-242b-408b-9770-e1969c1085bd

@esh-g can you merge main please hopefully reassure should pass

bump @esh-g

@youssef-lr Sorry for the delay, done!

@aimane-chnaif @youssef-lr It should have been fixed now.. Seems like some test relied on an acccessibility label

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/youssef-lr in version: 1.4.43-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Refactored OSM Shapefile importer

Fixes / changes completed

Highway tag – we’re now using this (not used before, previously the code was using a hardcoded speed or max speed if non-zero).

Max speed tag now passed properly to the encoders. Added a filter for value “0” as in Geofabrik shapefiles 0 means no tag, but 0 will probably just mean 0 speed in the Graphhopper flag encoders…

One way tags now used properly. Previously the code was only checking for “0” and treating this as boolean. You also have to check for against the direction of digitisation (e.g. value “-1” if its one-way against the directory of digitisation). Also Geofabrik is using an odd (unfortunately non-standard) convention for their shapefile oneway field; I now read this convention but turn into the standard convention in the ReaderWay I pass to the flag encoders. This could break in the future if Geofabrik clean this up (the code will throw an exception with a useful message if it breaks).

Encoding manager now used properly. I now fill a ReaderWay with the tags and pass to the EncodingManager (the EncodingManager was not used previously), so we should get proper behaviour over multiple speed profile types (car, bike etc). Previously there was some hardcoding to “car”.

Fixed partially connected graph bug. With a shapefile from Geofabrik we don’t have node objects, only the geometry of the road (they don’t have a separate node export shapefile). Worse still, the road geometry generally isn’t split at junctions / intersections. Previously the code was assuming that any point at the start or the end of a road geometry line needed to be a node, and was splitting edges wherever one of their geometry points corresponded to the start or end of another edge. This fails badly though, because many times you get two edges crossing each other (e.g. at crossroads) where neither edges are broken at the crossroads – resulting in edges not being split at the crossroads, the graph being only half-connected and hence some pretty odd routes. Instead I’ve changed the code to create a node – and therefore split edges – based on any identical coordinate shared in two or more edges. This is (I believe) the best we can do with Geofabrik shapefile data but may fail in some odd / rare circumstances (e.g. as no z-level considered). This also means each coordinate (pillar or tower) gets stored in a hashmap during the build, which is not memory-friendly for very large files. However for a HERE importer I believe the data would be setup differently (so we’d be able to do this differently).

Edge length was being rounded down to int metres, I’ve kept it in double instead.

Added the estimated_distance and estimated_centre artificial tags

Ensured code handles shapefile multilinestring or linestring geometry (both are possible, previously multilinestring was assumed).

Unit tests - two tests for travel times, comparing between building using pbf (the existing reader project) and the shapefile project. One test is between some predefined points with known travel times, the other chooses many pairs of random points (200 currently). For the random pairs of points, we’re getting a mean agreement in travel times between the pbf and shp of around 99%, which is pretty good as the shapefile isn’t taking into account lots of other tags : ) Obviously in some cases we get less agreement presumably due to tags we’re not using…

Unit tests - we now have a (very basic) geometry test

Unit tests - we now have a test for a single one way example

Small amounts of code tidying (no code conventions applied though).

Thanks, will review!

When trying 'sachsen' I get:
Caused by: java.lang.NullPointerException
	at com.graphhopper.reader.shp.ShapeFileReader.getFeatureIerator(ShapeFileReader.java:56)
	at com.graphhopper.reader.shp.OSMShapeFileReader.processJunctions(OSMShapeFileReader.java:82)

Will look into it tomorrow.

Re: sachsen. I've just tried this file and its fine. Route built below using this code.
GraphhopperSHP gh = new GraphhopperSHP();
gh.setWayPointMaxDistance(0);
gh.setStoreOnFlush(false)
		.setDataReaderFile(
				"C:\\Users\\Phil\\Dropbox\\Business\\Companies\\Graphhopper\\Shapefile importer\\Sachsen-dataset\\gis.osm_roads_free_1.shp")
		.setGraphHopperLocation(new File("c:\\temp").getAbsolutePath())
		.setEncodingManager(new EncodingManager(new CarFlagEncoder())).setCHEnabled(false).importOrLoad();

GHPoint dresden = new GHPoint(51.0504 ,13.7373);
GHPoint leipzig = new GHPoint(51.3397,12.3731);

GHRequest request = new GHRequest(dresden,leipzig).setVehicle("car");
GHResponse response = gh.route(request);
if(!response.hasErrors()){
	System.out.println(Utils.toWKT(response.getBest().getPoints()));

}

The exception suggests the shapefile can't be loaded? You've unzipped and referenced the roads file yes?

Works now surprisingly well - thanks a bunch!

The exception suggests the shapefile can't be loaded? You've unzipped and referenced the roads file yes?

I specified the folder not the shp file ... was too late yesterday ;) ... we should still add a NPE check (?)

It looks like geotools is not JDK9 ready, which is a bit ugly:
java.lang.IllegalArgumentException: org.geotools.data.DataStoreFactorySpi is not an ImageIO SPI class
	at com.graphhopper.reader.shp.ShapeFileReaderTest.initHopper(ShapeFileReaderTest.java:118)
	at com.graphhopper.reader.shp.ShapeFileReaderTest.setupBeforeClass(ShapeFileReaderTest.java:131)

Do you have an idea if we somehow can workaround this without changing geotools? This was the only thing I found in the web but maybe this need a change to geotools directly: https://github.com/levigo/jbig2-imageio/pull/18

Ah, it is already known to them: https://osgeo-org.atlassian.net/projects/GEOT/issues/GEOT-5289?filter=allopenissues

hmm.. Probably best to wait until they've fixed it then.
Dr Philip WelchOpen Door Logistics LimitedSpecialists in open source solutions for transport logistics.
Email<EMAIL_ADDRESS>Linkedin:  http://uk.linkedin.com/in/welchphilip
Skype: opendoorlogistics
Tel:  +44 (0) 20 8144 4009
Website:  http://www.opendoorlogistics.com
---- On Thu, 17 Nov 2016 12:19:27 +0000<EMAIL_ADDRESS>wrote ----
Ah, it is already known to them: https://osgeo-org.atlassian.net/projects/GEOT/issues/GEOT-5289?filter=allopenissues
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

For now I've just excluded the shp module from JDK9 build and will still merge.

Merged it via this commit https://github.com/graphhopper/graphhopper/commit/1960b0f6239cb66fd6847fb865880a10e78eb025
The ugliness here is that I wanted it in a single commit (for simplicity) but now it looks like a change only from vvikas still when you look at 'git log' the author is "vvikas and Philip Welch" although it did not pick up the second email, obviously. I hope this is okay and have added you as a contributor in our list and hopefully more changes are coming :) (?)

Cool. Don't worry about who the change shows up from - it's not a problem.


Hypertensive Emergency should always be checked and stop other workflows

If a patient is in HTN Emergency, recommend they seek medical attention and do not continue other workflows.
Most straightforward way to implement will be to create a new workflow "Hypertensive Emergency". We need to decide whether anyone should be excluded from this workflow and put a time limit on how recent the BP reading should be. 6 hours? 12 hours? 1 day? That way we don't tell them they're in crisis when the most recent reading we have is from 6 months ago.
The other workflows would need to have an exclusion criteria that keeps people out if they are currently in hypertensive emergency so no other recommendations are provided.

For now, we are using the criteria that the BP reading has to have occurred within the last 14 days. We've also added new patients to the Logica sandbox to test the new workflow and updated the Workflow Patients excel spreadsheet.


Fixes: #14 by upgrading to broccoli-persistent-filter

Upgrading broccoli-filter to broccoli-persistent-filter which addresses @stefanpenner performance issue (#14)

@stefanpenner, does this look good to you?

@joliss yes it looks good.
I will quickly try it out to confirm. (ill look in like 15 min)

just confirmed with a new app (with a few coffee-script files added) that all appears to work, and IO op and cost dropped as expected.

@joliss I have a large app with a lot of coffeescript files, I tested this branch and it works fine and cuts my coffeescript-specific build time to 20% of what is was.

@joliss please merge and cut a release soon :+1:

@joliss some fast plugins leave it off by default, as they still benefit enormously from the patch based rebuilds. for CS it should very likely be enabled by default

@joliss please help merge this PR. Have been using it for over 2 weeks without issue.

@johnnyshields I can't merge this as it is - see the discussion above. I'm waiting on a new push from @thoov.

@joliss @johnnyshields I have updated the PR. I have also turned persist on by default.

@joliss pinging on this issue, please kindly merge and cut a release if it's satisfactory.

@joliss hola?

@joliss ping

@joliss as per our discussion, i have confirmed (in an although simple app, that add/update/remove/move etc seem to work).
I will gladly deal with any bugs/issues that fall-out, I only need commit + release so I can do so without having to bug you.

Out in 0.6.0, thanks everyone! :)


label assignment problem

Thanks for the authors' contributions. I have the problem about uniform matching. For example, assuming that Two Objects are close,  the anchors around the two adjacent objects will be assigned the information of the two object at the same time. How to solve this problem ?

Does such situation happen frequently in your task? In general, the situation hardly happens in real application. If it happened, you could set a rule to assign the anchor to only one object.


Configure wget in Compose example to bypass Docker client proxy settings for healthchecks

In current version docker-compose example, wget uses Docker client proxy settings, when it tries to connect to another container. Obviously, usually external proxy will not be able to connect to Docker container running on your machine.
Furthermore, since example uses IPs at least in one wget call present in Compose config (and actually uses it for a range of IPs, not even a single one), you can't rely on no_proxy - by design it only respects domain names, not IP addresses or ranges.
Localhost wget call change might be an overkill, but if no_proxy isn't set, it still could fail, I guess.
It's a very simple change, but it fixed the problem for me and probably will fix the same issue, if others run into it.

Thanks for the detail explanation. LGTM

@Armoric It was tested locally, the option was taken from wget manpage inside the container. I think I did not see --no-proxy as a possible option there, but it can be true as well (I might've missed something or manpage might not mention it for whatever reason).

Thanks!


Impossible to obtain the v4l name while configuring

Ouput of cat /var/local/log/linux-enable-ir-emitter/linux-enable-ir-emitter.log
[05:20:21] [INFO] Stand in front of and close to the camera and make sure the room is well lit.
[05:20:21] [INFO] Ensure to not use the camera during the execution.
[05:20:23] [INFO] Configuring the camera /dev/video0.
[05:20:34] [ERROR] Impossible to obtain the v4l name of /dev/video0.
[05:20:34] [ERROR] The configuration failed.
[05:20:34] [INFO] Do not hesitate to visit the GitHub!
[05:20:34] [INFO] https://github.com/EmixamPP/linux-enable-ir-emitter/blob/master/docs/README.md
[05:31:13] [INFO] Stand in front of and close to the camera and make sure the room is well lit.
[05:31:13] [INFO] Ensure to not use the camera during the execution.
[05:31:14] [INFO] Configuring the camera /dev/video0.
[05:31:19] [ERROR] Impossible to obtain the v4l name of /dev/video0.
[05:31:19] [ERROR] The configuration failed.
[05:31:19] [INFO] Do not hesitate to visit the GitHub!
[05:31:19] [INFO] https://github.com/EmixamPP/linux-enable-ir-emitter/blob/master/docs/README.md
[05:31:35] [INFO] Stand in front of and close to the camera and make sure the room is well lit.
[05:31:35] [INFO] Ensure to not use the camera during the execution.
[05:31:36] [INFO] Configuring the camera /dev/video0.
[05:31:44] [ERROR] Impossible to obtain the v4l name of /dev/video0.
[05:31:44] [ERROR] The configuration failed.
[05:31:44] [INFO] Do not hesitate to visit the GitHub!
[05:31:44] [INFO] https://github.com/EmixamPP/linux-enable-ir-emitter/blob/master/docs/README.md
[05:32:07] [INFO] Stand in front of and close to the camera and make sure the room is well lit.
[05:32:07] [INFO] Ensure to not use the camera during the execution.
[05:32:09] [INFO] Configuring the camera /dev/video0.
[05:32:12] [ERROR] Impossible to obtain the v4l name of /dev/video0.
[05:32:12] [ERROR] The configuration failed.
[05:32:12] [INFO] Do not hesitate to visit the GitHub!
[05:32:12] [INFO] https://github.com/EmixamPP/linux-enable-ir-emitter/blob/master/docs/README.md
[05:35:39] [INFO] Stand in front of and close to the camera and make sure the room is well lit.
[05:35:39] [INFO] Ensure to not use the camera during the execution.
[05:35:40] [INFO] Configuring the camera /dev/video0.
[05:35:44] [ERROR] Impossible to obtain the v4l name of /dev/video0.
[05:35:44] [ERROR] The configuration failed.
[05:35:44] [INFO] Do not hesitate to visit the GitHub!
[05:35:44] [INFO] https://github.com/EmixamPP/linux-enable-ir-emitter/blob/master/docs/README.md

Output of sudo linux-enable-ir-emitter tweak
[INFO] Tweaking the camera /dev/video15
[INFO] Caution, you could break the camera.
0) exit
Choose an instruction to tweak: 0

Output of v4l2-ctl --list-devices
ipu6 (PCI:pci:pci0000:00):
	/dev/video8
	/dev/video9
	/dev/video10
	/dev/video11
	/dev/video12
	/dev/video13
	/dev/video14
	/dev/video15

ipu6 (pci:pci0000:00):
	/dev/media0

Intel MIPI Camera (platform:v4l2loopback-000):
	/dev/video0

Ouput of for dev in /dev/video*; do echo $dev && v4l2-ctl -d $dev --list-formats-ext; done
/dev/video0
ioctl: VIDIOC_ENUM_FMT
	Type: Video Capture

	[0]: 'YU12' (Planar YUV 4:2:0)
		Size: Discrete 1280x720
			Interval: Discrete 0.033s (30.000 fps)
/dev/video10
ioctl: VIDIOC_ENUM_FMT
	Type: Video Capture Multiplanar

	[0]: 'Y10 ' (10-bit Greyscale)
	[1]: 'BX24' (32-bit XRGB 8-8-8-8)
	[2]: 'Y12I' (Interleaved 12-bit Greyscale)
	[3]: 'Z16 ' (16-bit Depth)
	[4]: 'YUYV' (YUYV 4:2:2)
	[5]: 'Y8I ' (Interleaved 8-bit Greyscale)
	[6]: 'BG12' (12-bit Bayer BGBG/GRGR)
	[7]: 'GB12' (12-bit Bayer GBGB/RGRG)
	[8]: 'BA12' (12-bit Bayer GRGR/BGBG)
	[9]: 'RG12' (12-bit Bayer RGRG/GBGB)
	[10]: 'BG10' (10-bit Bayer BGBG/GRGR)
	[11]: 'GB10' (10-bit Bayer GBGB/RGRG)
	[12]: 'BA10' (10-bit Bayer GRGR/BGBG)
	[13]: 'RG10' (10-bit Bayer RGRG/GBGB)
	[14]: 'BA81' (8-bit Bayer BGBG/GRGR)
	[15]: 'GBRG' (8-bit Bayer GBGB/RGRG)
	[16]: 'GRBG' (8-bit Bayer GRGR/BGBG)
	[17]: 'RGGB' (8-bit Bayer RGRG/GBGB)
	[18]: 'GREY' (8-bit Greyscale)
/dev/video11
ioctl: VIDIOC_ENUM_FMT
	Type: Video Capture Multiplanar

	[0]: 'Y10 ' (10-bit Greyscale)
	[1]: 'BX24' (32-bit XRGB 8-8-8-8)
	[2]: 'Y12I' (Interleaved 12-bit Greyscale)
	[3]: 'Z16 ' (16-bit Depth)
	[4]: 'YUYV' (YUYV 4:2:2)
	[5]: 'Y8I ' (Interleaved 8-bit Greyscale)
	[6]: 'BG12' (12-bit Bayer BGBG/GRGR)
	[7]: 'GB12' (12-bit Bayer GBGB/RGRG)
	[8]: 'BA12' (12-bit Bayer GRGR/BGBG)
	[9]: 'RG12' (12-bit Bayer RGRG/GBGB)
	[10]: 'BG10' (10-bit Bayer BGBG/GRGR)
	[11]: 'GB10' (10-bit Bayer GBGB/RGRG)
	[12]: 'BA10' (10-bit Bayer GRGR/BGBG)
	[13]: 'RG10' (10-bit Bayer RGRG/GBGB)
	[14]: 'BA81' (8-bit Bayer BGBG/GRGR)
	[15]: 'GBRG' (8-bit Bayer GBGB/RGRG)
	[16]: 'GRBG' (8-bit Bayer GRGR/BGBG)
	[17]: 'RGGB' (8-bit Bayer RGRG/GBGB)
	[18]: 'GREY' (8-bit Greyscale)
/dev/video12
ioctl: VIDIOC_ENUM_FMT
	Type: Video Capture Multiplanar

	[0]: 'Y10 ' (10-bit Greyscale)
	[1]: 'BX24' (32-bit XRGB 8-8-8-8)
	[2]: 'Y12I' (Interleaved 12-bit Greyscale)
	[3]: 'Z16 ' (16-bit Depth)
	[4]: 'YUYV' (YUYV 4:2:2)
	[5]: 'Y8I ' (Interleaved 8-bit Greyscale)
	[6]: 'BG12' (12-bit Bayer BGBG/GRGR)
	[7]: 'GB12' (12-bit Bayer GBGB/RGRG)
	[8]: 'BA12' (12-bit Bayer GRGR/BGBG)
	[9]: 'RG12' (12-bit Bayer RGRG/GBGB)
	[10]: 'BG10' (10-bit Bayer BGBG/GRGR)
	[11]: 'GB10' (10-bit Bayer GBGB/RGRG)
	[12]: 'BA10' (10-bit Bayer GRGR/BGBG)
	[13]: 'RG10' (10-bit Bayer RGRG/GBGB)
	[14]: 'BA81' (8-bit Bayer BGBG/GRGR)
	[15]: 'GBRG' (8-bit Bayer GBGB/RGRG)
	[16]: 'GRBG' (8-bit Bayer GRGR/BGBG)
	[17]: 'RGGB' (8-bit Bayer RGRG/GBGB)
	[18]: 'GREY' (8-bit Greyscale)
/dev/video13
ioctl: VIDIOC_ENUM_FMT
	Type: Video Capture Multiplanar

	[0]: 'Y10 ' (10-bit Greyscale)
	[1]: 'BX24' (32-bit XRGB 8-8-8-8)
	[2]: 'Y12I' (Interleaved 12-bit Greyscale)
	[3]: 'Z16 ' (16-bit Depth)
	[4]: 'YUYV' (YUYV 4:2:2)
	[5]: 'Y8I ' (Interleaved 8-bit Greyscale)
	[6]: 'BG12' (12-bit Bayer BGBG/GRGR)
	[7]: 'GB12' (12-bit Bayer GBGB/RGRG)
	[8]: 'BA12' (12-bit Bayer GRGR/BGBG)
	[9]: 'RG12' (12-bit Bayer RGRG/GBGB)
	[10]: 'BG10' (10-bit Bayer BGBG/GRGR)
	[11]: 'GB10' (10-bit Bayer GBGB/RGRG)
	[12]: 'BA10' (10-bit Bayer GRGR/BGBG)
	[13]: 'RG10' (10-bit Bayer RGRG/GBGB)
	[14]: 'BA81' (8-bit Bayer BGBG/GRGR)
	[15]: 'GBRG' (8-bit Bayer GBGB/RGRG)
	[16]: 'GRBG' (8-bit Bayer GRGR/BGBG)
	[17]: 'RGGB' (8-bit Bayer RGRG/GBGB)
	[18]: 'GREY' (8-bit Greyscale)
/dev/video14
ioctl: VIDIOC_ENUM_FMT
	Type: Video Capture Multiplanar

	[0]: 'Y10 ' (10-bit Greyscale)
	[1]: 'BX24' (32-bit XRGB 8-8-8-8)
	[2]: 'Y12I' (Interleaved 12-bit Greyscale)
	[3]: 'Z16 ' (16-bit Depth)
	[4]: 'YUYV' (YUYV 4:2:2)
	[5]: 'Y8I ' (Interleaved 8-bit Greyscale)
	[6]: 'BG12' (12-bit Bayer BGBG/GRGR)
	[7]: 'GB12' (12-bit Bayer GBGB/RGRG)
	[8]: 'BA12' (12-bit Bayer GRGR/BGBG)
	[9]: 'RG12' (12-bit Bayer RGRG/GBGB)
	[10]: 'BG10' (10-bit Bayer BGBG/GRGR)
	[11]: 'GB10' (10-bit Bayer GBGB/RGRG)
	[12]: 'BA10' (10-bit Bayer GRGR/BGBG)
	[13]: 'RG10' (10-bit Bayer RGRG/GBGB)
	[14]: 'BA81' (8-bit Bayer BGBG/GRGR)
	[15]: 'GBRG' (8-bit Bayer GBGB/RGRG)
	[16]: 'GRBG' (8-bit Bayer GRGR/BGBG)
	[17]: 'RGGB' (8-bit Bayer RGRG/GBGB)
	[18]: 'GREY' (8-bit Greyscale)
/dev/video15
ioctl: VIDIOC_ENUM_FMT
	Type: Video Capture Multiplanar

	[0]: 'Y10 ' (10-bit Greyscale)
	[1]: 'BX24' (32-bit XRGB 8-8-8-8)
	[2]: 'Y12I' (Interleaved 12-bit Greyscale)
	[3]: 'Z16 ' (16-bit Depth)
	[4]: 'YUYV' (YUYV 4:2:2)
	[5]: 'Y8I ' (Interleaved 8-bit Greyscale)
	[6]: 'BG12' (12-bit Bayer BGBG/GRGR)
	[7]: 'GB12' (12-bit Bayer GBGB/RGRG)
	[8]: 'BA12' (12-bit Bayer GRGR/BGBG)
	[9]: 'RG12' (12-bit Bayer RGRG/GBGB)
	[10]: 'BG10' (10-bit Bayer BGBG/GRGR)
	[11]: 'GB10' (10-bit Bayer GBGB/RGRG)
	[12]: 'BA10' (10-bit Bayer GRGR/BGBG)
	[13]: 'RG10' (10-bit Bayer RGRG/GBGB)
	[14]: 'BA81' (8-bit Bayer BGBG/GRGR)
	[15]: 'GBRG' (8-bit Bayer GBGB/RGRG)
	[16]: 'GRBG' (8-bit Bayer GRGR/BGBG)
	[17]: 'RGGB' (8-bit Bayer RGRG/GBGB)
	[18]: 'GREY' (8-bit Greyscale)
/dev/video8
ioctl: VIDIOC_ENUM_FMT
	Type: Video Capture Multiplanar

	[0]: 'Y10 ' (10-bit Greyscale)
	[1]: 'BX24' (32-bit XRGB 8-8-8-8)
	[2]: 'Y12I' (Interleaved 12-bit Greyscale)
	[3]: 'Z16 ' (16-bit Depth)
	[4]: 'YUYV' (YUYV 4:2:2)
	[5]: 'Y8I ' (Interleaved 8-bit Greyscale)
	[6]: 'BG12' (12-bit Bayer BGBG/GRGR)
	[7]: 'GB12' (12-bit Bayer GBGB/RGRG)
	[8]: 'BA12' (12-bit Bayer GRGR/BGBG)
	[9]: 'RG12' (12-bit Bayer RGRG/GBGB)
	[10]: 'BG10' (10-bit Bayer BGBG/GRGR)
	[11]: 'GB10' (10-bit Bayer GBGB/RGRG)
	[12]: 'BA10' (10-bit Bayer GRGR/BGBG)
	[13]: 'RG10' (10-bit Bayer RGRG/GBGB)
	[14]: 'BA81' (8-bit Bayer BGBG/GRGR)
	[15]: 'GBRG' (8-bit Bayer GBGB/RGRG)
	[16]: 'GRBG' (8-bit Bayer GRGR/BGBG)
	[17]: 'RGGB' (8-bit Bayer RGRG/GBGB)
	[18]: 'GREY' (8-bit Greyscale)
/dev/video9
ioctl: VIDIOC_ENUM_FMT
	Type: Video Capture Multiplanar

	[0]: 'Y10 ' (10-bit Greyscale)
	[1]: 'BX24' (32-bit XRGB 8-8-8-8)
	[2]: 'Y12I' (Interleaved 12-bit Greyscale)
	[3]: 'Z16 ' (16-bit Depth)
	[4]: 'YUYV' (YUYV 4:2:2)
	[5]: 'Y8I ' (Interleaved 8-bit Greyscale)
	[6]: 'BG12' (12-bit Bayer BGBG/GRGR)
	[7]: 'GB12' (12-bit Bayer GBGB/RGRG)
	[8]: 'BA12' (12-bit Bayer GRGR/BGBG)
	[9]: 'RG12' (12-bit Bayer RGRG/GBGB)
	[10]: 'BG10' (10-bit Bayer BGBG/GRGR)
	[11]: 'GB10' (10-bit Bayer GBGB/RGRG)
	[12]: 'BA10' (10-bit Bayer GRGR/BGBG)
	[13]: 'RG10' (10-bit Bayer RGRG/GBGB)
	[14]: 'BA81' (8-bit Bayer BGBG/GRGR)
	[15]: 'GBRG' (8-bit Bayer GBGB/RGRG)
	[16]: 'GRBG' (8-bit Bayer GRGR/BGBG)
	[17]: 'RGGB' (8-bit Bayer RGRG/GBGB)
	[18]: 'GREY' (8-bit Greyscale)
/dev/video_front
ioctl: VIDIOC_ENUM_FMT
	Type: Video Capture

	[0]: 'YU12' (Planar YUV 4:2:0)
		Size: Discrete 1280x720
			Interval: Discrete 0.033s (30.000 fps)

Output of ls -l /dev/v4l/by-path
total 0
lrwxrwxrwx. 1 root root 12 Dec  5 04:13 pci-0000:00:05.0-video-index0 -> ../../video8
lrwxrwxrwx. 1 root root 12 Dec  5 04:13 pci-0000:00:05.0-video-index1 -> ../../video9
lrwxrwxrwx. 1 root root 13 Dec  5 04:13 pci-0000:00:05.0-video-index2 -> ../../video10
lrwxrwxrwx. 1 root root 13 Dec  5 04:13 pci-0000:00:05.0-video-index3 -> ../../video11
lrwxrwxrwx. 1 root root 13 Dec  5 04:13 pci-0000:00:05.0-video-index4 -> ../../video12
lrwxrwxrwx. 1 root root 13 Dec  5 04:13 pci-0000:00:05.0-video-index5 -> ../../video13
lrwxrwxrwx. 1 root root 13 Dec  5 04:13 pci-0000:00:05.0-video-index6 -> ../../video14
lrwxrwxrwx. 1 root root 13 Dec  5 04:13 pci-0000:00:05.0-video-index7 -> ../../video15

Give more information if you have
I get this error when I try to configure as shown in the image below: Impossible to obtain the v4l name of /dev/video0

Additional info

Computer (or camera) model: Dell XPS 13 9340
Linux distribution: Fedora
Version of linux-enable-ir-emitter: 6.1.0 but tried 6.0.6 and 6.0.5 - same error

If you execute linux-enable-ir-emitter -d /dev/video<X> test
Where you replace  by the number for each of the following device entry:
/dev/video8
/dev/video9
/dev/video10
/dev/video11
/dev/video12
/dev/video13
/dev/video14
/dev/video15
Which one does show a grayscale image (or very dark if your room is not lighted enough)?

None of them work and I get the error as seen in the image. It is the same with and without sudo.

Try also with the ffplay utils: ffplay /dev/video (ffmpeg package on fedora) to see if you can get a video feedback and let me know


feat: text generation

I took a look at the llama-2-7b-chat repo on Hugging Face, apparently it requires a pro subscription to run.


Implemented case-insensitivity for URL content type suffixes.

In order to support URL suffixes like .XML, .Json etc.
which was not possible to configure, I have added
format conversion to lower case before comparison
with reference values which all are in lower case.
Without this fix it was not possible to use content format configuration using non-lower case suffixes. All other URL parts (path, query) was easy to configure to be case-insensitive.

Are there any chances this to be integrated into master and update NuGet package?

Thanks @timba

Awesome, thanks @vdaron !

Are you going to update Nuget package as well?

Yup, I'll take care of that now.

Nuget updated!

Great, thanks!


Spacy seems outdated + problems running attention...

Disclaimer: NOT a coder. Generally curious individual with just enough copy-paste and google skills. I may not know what I'm talking about.
Just playing around with the repo. The install failed because of spacy version in requirements.txt for me. Using python 3.10 on Ubuntu 22.10. Changing Spacy to 3.4.4 (which I had cached, so I just did pip install spacy - to see whichever worked)
It installed, but gave further warnings like
⚠ As of spaCy v3.0, shortcuts like 'en' are deprecated. Please use the full pipeline package name 'en_core_web_sm' instead. Collecting en-core-web-sm==3.4.1...
and
⚠ As of spaCy v3.0, shortcuts like 'de' are deprecated. Please use the full pipeline package name 'de_core_news_sm' instead. Collecting de-core-news-sm==3.4.0

This would be a very useful sample to see how directml performs, but I also ran into the spacy problem. To go beyond the MS examples: is there a way to map appropriate tensors in existing software (ex. fastai) to "privateuseone" which is the directml device?


Non-deterministic digest with multi-arch images

Describe the bug
The digest set by the digest update strategy appears to be non deterministic for multi-arch images. Sometimes it will be the digest of the parent image and sometimes the child image for the specific architecture.
To Reproduce
Use these annotations
        argocd-image-updater.argoproj.io/image-list: argocd-image-updater=quay.io/argoprojlabs/argocd-image-updater:latest
        argocd-image-updater.argoproj.io/argocd-image-updater.update-strategy: digest

Expected behavior
I would expect the digest to be of the parent image, not of the child. Either way is fine, but it should be deterministic.
Version
quay.io/argoprojlabs/argocd-image-updater@sha256:f7c95baa1da4e1204bd6119844297fa732506cdce562ae9aa6b39559c0985861

Hm, that's interesting. Thanks for providing the additional traces. I will dig further into that.
What I see can tell from the trace is that on your first instance, there was no manifest list returned from the registry but an actual v2 image manifest, e.g.
"time=""2022-01-18T17:42:30Z"" level=trace msg=""v2 SHA digest is sha256:29390b414821a0f4595272fb97f9c4a631d143d3eb767c75139ef6ebd0c95021"""

vs
"time=""2022-01-17T23:56:03Z"" level=trace msg=""SHA256 of manifest parent is sha256:f7c95baa1da4e1204bd6119844297fa732506cdce562ae9aa6b39559c0985861"""

I see you run lastest, is there any change that the first instance is running a version of Image Updater previous to adding multi-arch manifests?

By the way, I think it would be useful for filtering if the log lines were prefixed with the application name that they relate to. Particularly as there seems to be concurrent threads updating multiple applications. Many times I have struggled to piece together a related sequence of events from the logs because of this. What do you think?

Yes, I totally agree that the logging could be much improved. We already make use of context-based logging at some places, but at others not. That should be changed.

is there any chance that the first instance is running a version of Image Updater previous to adding multi-arch manifests?
Yes I think that was probably the case.

Just FYI, #357 is an effort to improve logging by adding contextual information.


Can't get it working in IE8

That
1
 element  has the following style:
p {
  height: 30vh;
  background: black;
  width: 100%;
}

Here is the result (not fixing the
 to 30vh):

Would appreciate any help!

Ugh, I had to add in that inline script...

https://github.com/saabi/vminpoly/pull/39


CSS grid configuration not found - IOS 8 Simulator

I checked out: https://github.com/akoenig/angular-deckgrid/issues/27 where I found
.deckgrid[deckgrid]::before {
content: '5 .column.size-1-5';
visibility: hidden;
font-size: 0;
}
and firebean3's comment:
I added an element before the deckgrid inside the tab with the attribute ng-init="initialised=true;"
I added to the deckgrid the attribute ng-if="initialised"
which fixed my initial issue in Chrome. However, with IOS 8 simulator I am getting the same No CSS grid configuration bug with these fixes.
Has anyone found a workaround for this issue?

save problem... but in Safari, I suppose that if we found the solution, both will work as ios 8 use safari i think.

Thanks! I ended up doing a crazy hack as well to get it to work

Also had this issue, the hack proposed by sovanna works.

Thanks sovanna, I went with a more responsive (requires jquery) approach:
if (!content || content === '') {
var width = $(window).width();
if (width > 1199) {
content = '5 .column.column-1-5';
} else if (width > 991) {
content = '4 .column.column-1-4';
} else if (width > 767) {
content = '3 .column.column-1-3';
} else if (width > 479) {
content = '2 .column.column-1-2';
} else {
content = '1 .column.column-1-1';
}
}

Kelvin-Chu, you saved my life! thanks!

@DIma-Kush @Kelvin-Chu here's non-jQuery version of window width: $window.innerWidth


Expose jsonc-parser

Seems like vscode uses jsonc-parser internally, but doesn't expose it. Forcing developers to add jsonc-parser to their extension.
It would be useful if the typescript definition exposed the parser directly, removing an additional dependency.

This is intentional. We want to be able to upgrade our internal dependencies—such as jsonc—without having to worry about potentially breaking extensions


Roll Engine from adf5b59485a9 to<PHONE_NUMBER>ee (3 revisions)

https://github.com/flutter/engine/compare/adf5b59485a9...8772365537ee
2020-10-14<EMAIL_ADDRESS>[fuchsia] add intercept_all_input flag support (flutter/engine#21821)
2020-10-14<EMAIL_ADDRESS>Call PlatformView.dispose when removing hybrid composition platform views (flutter/engine#21790)
2020-10-14<EMAIL_ADDRESS>Roll Skia from 2e0c70dc9c3e to 7bbdde059685 (10 revisions) (flutter/engine#21816)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Commit queue failed; closing this roll.


ENH: Route all diversity calculations through diversity-lib

Closes #280.
See also qiime2/q2-diversity-lib#21
Closes #284.
Note: Renames "weighted_unifrac" to "weighted_unnormalized_unifrac", aligning q2-diversity with q2-diversity-lib and the underlying unifrac package. This is a breaking API change.

This tests clean locally, but tests will continue to fail here until https://github.com/qiime2/q2-diversity-lib/pull/21 is merged.

This PR is ready for a preliminary review - does anything here need major course correction?
Only beta_phylogenetic has been converted into a pipeline at this time. I'll continue transitioning other Actions on a separate branch while this is in review, so this doesn't become a moving target.

After beginning work on dispatch for nonphylogenetic beta diversity measures, I've decided to move dispatch from diversity-lib to diversity, preventing some gross circular dependency action. Removed this from In Review until that's wrapped up.

Executive Summary
Thanks @ChrisKeefe, these q2-diversity/q2-diversity-lib changes are looking great! After spending some time going through these PRs, I have a handful of thoughts, which I will try to outline here.
TLDR: I think there is at least one too many levels of indirection here, and with a little restructuring this code can be simplified conceptually and structurally.
Overall structuring
The role of the q2-diversity-lib plugin is to serve as library code for q2-diversity. The q2-diversity-lib code could just as easily live inside of q2-diversity itself, but we chose to factor it out as a plugin for a few reasons, one of them being just for the sake of giving you an opportunity to make a plugin from scratch.  With that in mind, I think it is important to emphasize that the use of this q2-diversity-lib library code does not need to be minimized in q2-diversity, in fact, I think that minimizing/masking q2-diversity-lib invocations in q2-diversity is problematic.
If we emphasize that the actions available in q2-diversity-lib are meant to compose together into bigger pipelines in q2-diversity, we get the best of both worlds - compartmentalization of code (in q2-diversity-lib) and easy to follow pipelines (in q2-diversity).
With that in mind, generally speaking:

Individual methods belong in q2-diversity-lib
Pipelines belong in q2-diversity
Visualizers that aren't able to consume Pipelines via the QIIME 2 framework
should consume the pipeline functions via plain python

q2-diversity-lib
Mappings
The proliferation of data-lookups-as-utility-functions-but-only-sometimes is a bit confusing:

alpha.implemented_phylogenetic_measures_dict()
alpha.implemented_phylogenetic_measures()
alpha.all_phylogenetic_measures_alpha (note not a function)
alpha.implemented_nonphylogenetic_measures_dict()
alpha.implemented_nonphylogenetic_measures()
alpha.unimplemented_nonphylogenetic_measures()
alpha.all_nonphylogenetic_measures_alpha()
beta.implemented_nonphylogenetic_metrics_dict()
beta.implemented_nonphylogenetic_metrics()
beta.unimplemented_nonphylogenetic_metrics()
beta.all_nonphylogenetic_measures_beta()
beta.implemented_phylogenetic_metrics_dict()
beta.unimplemented_phylogenetic_metrics_dict()
beta.all_phylogenetic_measures_dict()
beta.all_phylogenetic_measures_beta()

Instead of this, I propose one coherent data structure that encodes all of this information in one pass:
MAPPINGS = {
    'PHYLO': {
        'IMPL': {'faith_pd'},
        'UNIMPL': set(),
    },
    'NONPHYLO': {
        'IMPL': {'observed_features', 'pielou_e', 'shannon'},
        'UNIMPL': {'ace', 'chao1', 'chao1_ci', 'berger_parker_d',
                   'brillouin_d', 'dominance', 'doubles', 'enspie', 'esty_ci',
                   'fisher_alpha', 'goods_coverage', 'heip_e',
                   'kempton_taylor_q', 'margalef', 'mcintosh_d', 'mcintosh_e',
                   'menhinick', 'michaelis_menten_fit', 'osd', 'robbins',
                   'simpson', 'simpson_e', 'singles', 'strong', 'gini_index',
                   'lladser_pe', 'lladser_ci'},
    },
}

This lends itself well to "natural reading", especially when chaining together:
metrics = MAPPINGS['NONPHYLO']['IMPL'] | MAPPINGS['NONPHYLO']['UNIMPL']
implemented_metrics = MAPPINGS['NONPHYLO']['IMPL']

Also, this has the advantage of only exporting one object, rather than a half dozen loosely related ones.
You also might've noticed that there are dictionaries in the tips, I don't think you'll need to include those dicts, and hopefully you'll see why, elsewhere in this review. Right now I am envisioning one MAPPINGS in the alpha module, and one in beta.
Also, I'm open to other names (METRICS, for example), and different layouts of the data, this is just to get you started with some ideas.
Translations
I like the idea of including translations, and I mention it here as a subsection of mappings, but only because I see it as a loosely related idea. I think you will be able to move any translation functionality into the q2-diversity Pipelines, discussed later in this review.
Methods
I think the following QIIME 2 Methods should be exposed in this plugin (will reference the path to the view function, for clarity):

alpha.faith_pd
alpha.observed_features
alpha.pielou_evenness
alpha.shannon_entropy
alpha.alpha_passthrough
beta.bray_curtis
beta.jaccard
beta.unweighted_unifrac
beta.weighted_unifrac
beta.beta_passthrough
beta.beta_phylogenetic_passthrough

You'll notice there is no alpha_phylogenetic_passthrough Method, only because there are no unimplemented alpha phylogenetic metrics in q2-diversity.
alpha_passthrough
This method will handle just the MAPPINGS['NONPHYLO']['UNIMPL'] metrics, and might look something like this:
@_disallow_empty_tables
def alpha_passthrough(table: biom.Table, metric: str) -> pd.Series:
    counts = table.matrix_data.toarray().astype(int).T
    sample_ids = table.ids(axis='sample')

    result = skbio.diversity.alpha_diversity(metric=metric, counts=counts,
                                             ids=sample_ids)
    result.name = metric
    return result

beta_passthrough
This method will handle just the MAPPINGS['NONPHYLO']['UNIMPL'] metrics.
Same idea as alpha_passthrough above - defer to skbio, don't worry about fancy signatures, citations, etc. Basically just moving the beta method over from q2-diversity.
beta_phylogenetic_passthrough
This method will handle just the MAPPINGS['PHYLO']['UNIMPL'] metrics.
Same idea as alpha_passthrough above - defer to skbio, don't worry about fancy signatures, citations, etc. Basically just moving the beta_phylogenetic method over from q2-diversity.
Pipelines
There will be none in this plugin. That means removing:

alpha.alpha_dispatch
alpha.alpha_phylogenetic_dispatch
beta.beta_dispatch
beta.beta_phylogenetic_dispatch

The bodies of these pipelines will be moved to q2-diversity.
Pipelines as Python Functions
There will be none in this plugin. That means removing:

alpha.alpha_rarefaction_dispatch
alpha.alpha_rarefaction_phylogenetic_dispatch
beta.skbio_dispatch
beta.unifrac_beta_dispatch

Visualizers
There will be none in this plugin.
q2-diversity
Methods
Several existing methods will be converted to Pipelines (see below).
The following Methods will be removed:

_alpha.alpha
_alpha.alpha_phylogenetic
_alpha.alpha_phylogenetic_alt
_alpha.alpha_phylogenetic_old
_beta.beta
_beta.beta_phylogenetic

Pipelines
New pipelines (former Methods):

_alpha.alpha
_alpha.alpha_phylogenetic
_beta.beta
_beta.beta_phylogenetic

These pipelines can all basically have the same implementations as the *_dispatch pipelines that you added to q2-diversity-lib.
alpha
This is more-or-less a copy-paste from your current alpha_dispatch pipeline:
def alpha(ctx, table, metric, drop_undefined_samples=None):
    metrics = MAPPINGS['NONPHYLO']['IMPL'] | MAPPINGS['NONPHYLO']['UNIMPL']
    implemented_metrics = MAPPINGS['NONPHYLO']['IMPL']

    if metric not in metrics:
        raise ValueError("Unknown metric: %s" % metric)

    metric = ALPHA_TRANSLATION[metric]

    if metric in implemented_metrics:
        func = ctx.get_action('diversity_lib', metric)
        if 'drop_undefined_samples' in signature(func).parameters:
            func = partial(func, table=table,
                           drop_undefined_samples=drop_undefined_samples)
        else:
            if drop_undefined_samples:
                warnings.warn(f"The {metric} metric does not support dropping "
                              "undefined samples.")
            func = partial(func, table=table)
    else:
        func = ctx.get_action('diversity_lib', 'alpha_passthrough')
        func = partial(func, table=table, metric=metric)

    result = func()
    return tuple(result)

Pipelines as Python Functions
The following Pipelines shall be used as QIIME 2 Pipelines, as well as vanilla Python code:

_alpha.alpha
_alpha.alpha_phylogenetic
_beta.beta
_beta.beta_phylogenetic

This can be handled by building a dependency-injection mock, to fill in the ctx argument:
class PyContext:
    def __init__(self):
        self.mappings = {
            'diversity_lib': {
                'faith_pd': q2_diversity_lib.alpha.faith_pd,
                'observed_features': q2_diversity_lib.alpha.observed_features,
                'pielou_e': q2_diversity_lib.alpha.pielou_evenness,
                'shannon': q2_diversity_lib.alpha.shannon_entropy,
                'alpha_passthrough': q2_diversity_lib.alpha.alpha_passthrough,
                'bray_curtis': q2_diversity_lib.beta.bray_curtis,
                'jaccard': q2_diversity_lib.beta.jaccard,
                # ... etc etc etc
            },
        }

    def get_action(self, plugin, action):
        return self.mappings[plugin][action]

Visualizers
The following visualizers will need to be updated to invoke the "Pipelines as Python Functions" listed above:

_alpha.alpha_rarefaction
_beta.beta_rarefaction

Using the PyContext class above, we can "inject" the vanilla Python functions in:
...

ctx = PyContext()

for d, i in itertools.product(depth_range, iter_range):
    rt = rarefy(feature_table, d)
    for m in metrics:
        if m in phylogenetic_metrics():
            rt_p = transform(rt, to_type=BIOMV210Format,
                             from_type=biom.Table)
            vector = alpha_phylogenetic(
                    ctx=ctx, table=rt_p, metric=m, phylogeny=phylogeny)
        else:
            vector = alpha(ctx=ctx, table=rt, metric=m,
                           drop_undefined_samples=False)
        data[m][(d, i)] = vector
return data

...

Summary and Conclusion
Like I said above, this all looks great, and I think the main parts of the implementation are there, but I think we can do a lot to help streamline it and reduce the complexity of the Pipeline -> Pipeline -> Method workflow that is currently proposed. Let me know if you have any questions or comments. I'm sure I missed one or two things in here, but I have played with all of these proposed changes locally and can confirm that the plan proposed here works.
🦖

Going to merge now - travis is failing because the staging env is missing the latest div-lib. I tested locally and all seems in order, no need to wait 2-3 hrs for the new env.


HL-435,429,439: Accept, reject and cancel handler applications

Description :sparkles:

Handler can complete the application by accepting, rejecting and cancelling
Handler can close the application and be redirected to the main page
Notification views are implemented when actions are completed

Accept and cancel:

Cancel dialog:

Success notification view:

Issues :bug:
Testing :alembic:
Screenshots :camera_flash:
Additional notes :spiral_notepad:

Codecov Report

Merging #796 (010b48b) into develop (c82283e) will decrease coverage by 51.49%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           develop     #796       +/-   ##
============================================
- Coverage    63.29%   11.79%   -51.50%
============================================
  Files          791       51      -740
  Lines        20011      712    -19299
  Branches      1952      108     -1844
============================================
- Hits         12666       84    -12582
+ Misses        6981      606     -6375
+ Partials       364       22      -342

Impacted Files
Coverage Δ

...rontend/tet/admin/src/components/editor/Editor.tsx
0.00% <0.00%> (ø)

...tend/tet/admin/src/components/editor/TextInput.tsx
0.00% <0.00%> (ø)

...end/tet/admin/src/components/editor/PhoneInput.tsx
0.00% <0.00%> (ø)

...nd/tet/admin/src/components/editor/NumberInput.tsx
0.00% <0.00%> (ø)

...admin/src/components/editor/form/ActionButtons.tsx
0.00% <0.00%> (ø)

.../src/components/editor/EditorErrorNotification.tsx
0.00% <0.00%> (ø)

.../src/components/editor/companyInfo/CompanyInfo.tsx
0.00% <0.00%> (ø)

...omponents/editor/postingDetails/PostingDetails.tsx
0.00% <0.00%> (ø)

...mponents/applicationReview/ApplicationReview.sc.ts

...components/applicationReview/ApplicationReview.tsx

... and 752 more

Continue to review full report at Codecov.

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

For cancelling application, is there a reason why we don't have the same pattern as when accept / reject application: we setHandledApplication in context with status cancel and log message? Then we can reuse the onDone method, I think it will be more consistent also..

yes. the problem is with Dialog component, which does not allow to use the Context. HDS should fix the component first. The initial idea was to reuse the onDone, but its a workaround now.


OBS Settings Error

When I try to record the pop up, a pink windows is being recorded instead of my summary screen.

When you click Show Popups In Window, a window is created that holds all popups (i.e. the boxes that appear when loot drops). You can see the window when you click on Tibialyzer in your taskbar, where it will show as a transparent window called Tibialyzer (Popup Container). This window can be captured by OBS using the Window capture.
In OBS, add a Window Capture source and select "Tibialyzer (Popup Container)" as window. The window will appear as a pink window, which is the background color of the window. At the bottom of the Window Capture dialog, go to the Color Key and select "Use Color Key". Click on the color and select the color (251, 0, 255) (i.e. Red: 251, Green: 0, Blue: 255). This will make the window transparent instead of pink, and still allow popups to appear in the window.

I've added the color key and OBS Studio is showing the area correctly (and transparent) but it is not allowing popus to apprear in the window.
Also, with popup container activated, I can't select stuff on Tibia, it's like the popup container is overlapping the tibia screen.

I also have this issue of not being able to click on things because the transparent window is in front of tibia. On my case I lose the bottom half of the screen.
I removed it from streams.


cipher/nacl does not include the encryption method in the encrypted data.

Is your feature request related to a problem? Please describe.
The encrypted data must indicated what encrypted method was used. Mailchain allows multiple encryption methods, the first byte of encrypted data is used to select the correct encryption protocol. This byte is not set in cypto/cipher/nacl.
Describe the solution you'd like

[ ] After encrypting data with easySeal the result must have ciper.NACL prepended.
[ ] Before decrypting data check the encrypted data has ciper.NACL as the first byte.
[ ] Before decrypting data remove the first byte if ciper.NACL then pass to easyOpen
[ ] Handle nil or []byte{} inputs for Decrypt method
[ ] Add test cases

Additional context
cipher/aes256cbc has this an implementation of this

@robdefeo
Also,I will catch this issue

Thanks @u5surf :) let me know if you need anything


First wave of specification adopters

This issue will list the first few specification adopters that we'll work with.

Service Binding Operator
Runtime Component Operator
Strimzi Operator
PostgreSQL Operator
IBM Cloud Operator

Once there's an existing issue or PR created on the corresponding GitHub repo of the project, please add a comment here for tracking purposes.

Service Binding Operator:

adoption of annotations (ref)
A modification to its API group, to be independent from OpenShift. (ref)
A simplification of its CRD name to ServiceBinding (we are already using this name in the spec). (ref)
Renaming customEnvVar to dataMapping. (ref)
Allowing for the application selector to be omitted, for the cases where another Operator owns the deployment. (ref)
Addition of fields such as serviceAccount and subscriptionSecret that support more advanced binding cases. (ref)
Not related to the CRD, but directly related to how this spec approaches item 1 from Pointer to binding data, in terms of referencing a nested property.  (ref)

Strimzi Operator

General improvements to bindable data. (ref)

Runtime Component Operator

Adoption of various parts of the spec. (ref)

Would it make sense to include S3 Bucket binding via an ObjectBucketClaim in this initial wave of spec adopters since this is a common use case and is supported in the following upstream Red Hat-maintained community operators

lib-bucket-provisioner
awss3operator
noobaa
rook-ceph

as well as the downstream Red Hat OpenShift Container Storage operator?

hey @ron1 - sure, the more adoption the better =)
I guess in terms of "first wave" vs "subsequent waves" relates to resources we have available to work through this.  The current 5 Operators listed either have resources committed to work through it or at least a commitment that we'll get to it (either RH or IBM) in the near-term (in the next month or so).
Do you think you would be able to help drive the S3 Bucket adoption?

hi @arthurdm - I'm not sure I have the necessary contacts to fully drive the S3 Bucket adoption but I am willing to help.

awesome, thanks @ron1
do you have a link to the main operator that drives the ObjectBucketClaim binding?

@arthurdm The source code for the lib-bucket-provisioner library that drives the ObjectBucketClaim binding is available here: https://github.com/kube-object-storage/lib-bucket-provisioner. This morning, I noticed that this library was given a DEPRECATION NOTICE last month. As described in the README, There is a [Kubernetes Enhancement Proposal](https://github.com/kubernetes/enhancements/pull/1383) under review which will significantly change this design and interfaces. This repo is not longer active and should not be used.
The KEP has been a work-in-progress since November 2019 but now seems to be nearing completion. It will likely take a while for this KEP to be implemented and subsequently integrated into products. What are your thoughts about moving forward with this in the meantime?

Thanks for the info @ron1 - I would suggest we target this for the second wave of adoption, which hopefully matches well with this KEP moving forward.   Could you please add a comment in here so we don't lose track of this service?

hey @navidsh  / @yharish991 - could you guys please take an initial look into what changes would be needed for the PostgreSQL Operator to adopt the spec?  Could be a lower bar for now.

hi @arthurdm - I added the comment on the second wave of adoption issue here.

IBM Cloud Operator

Adoption of spec annotations. (ref)

https://github.com/openshift/odo/issues/2161 should we track this here too?

agreed @sbose78 - added in the description. will add an entry here too.

odo

List and provision services. (ref)

Closing this in favour of #82 and #83, as the items on this issue have become outdated.


Fixes for 1.4.0 patch

Seems like CO made some changes internally to the UI stuff that broke the mod. Updated it reflect new methods, and it seems like it's working again.

Considering that 1.4.0 partially implements the functionality of this mod, I'm about 90% sure more than just this needs changing.

True, though this mod offers better granularity and the very desirable ability to cycle between ground, normal, elevated, and bridge.
FWIW, I pulled down a copy of the source and made the changes here and it wasn't perfect, which I don't know if is a result of caching and not updating like I thought or what.  For example, I didn't have the road snap or geometry (straight, curved, etc) buttons, and highway seemed to treat normal as elevated.  It got too late at night to investigate any further :/

Sorry about that, main concern for me was getting it to build+ getting the road height to show up. I think there's some UI issues( it's now hiding some of the new road UI buttons), plus the ground/ elevated/ bridge toggling

Hah, nothing to be sorry for - I was appreciative someone had looked into the issues on day 0, as much as I am appreciative of it being on GitHub in the first place.  (this is the part where I lament the lack of time to look into this some more, sooner than later)


Update custom client example in README

According to this discussion

Closed since we don't have news of @satish860. If you are around satish feel free to re-open of course 🙂


Use READ IOContext for all non Segment* files when copying node-node

Description
This is a draft to fix https://github.com/opensearch-project/OpenSearch/issues/15902 on top of @reta's changes for https://github.com/opensearch-project/OpenSearch/pull/15333 9.12.0-snapshot-83df2ff.
With this change we open all files other than Segments* using IOContext.READ during node-node file copy (recovery/segrep).
With Lucene9_12 a READONCE context will confine the underlying IndexInput (MemorySegmentIndexInput) to a single thread.  However, the Segments* file requires IOContext.READONCE in test - this is only enforced in MockDirectoryWrapper.
https://github.com/apache/lucene/blob/b2d3a2b37e00f19a74949097736be8fd64745f61/lucene/test-framework/src/java/org/apache/lucene/tests/store/MockDirectoryWrapper.java#L817
Related Issues
Resolves #15902
Check List

[ ] Functionality includes testing.
[ ] API changes companion pull request created, if applicable.
[ ] Public documentation issue/PR created, if applicable.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

closing this, changes included with https://github.com/opensearch-project/OpenSearch/pull/15333


FloBro stays in seperate full screen windom

No matter what I do, FloBro stays fullscreen in a different 'window' (on mac). I've restarted both flobro and my computer and the issue isn't going away.

Flobro will recover in its last state. If you are on a Mac, press Command-Control-F to exit fullscreen mode. Does this fix your problem?


Is this project still active?

I am looking for an Android Relay App that would centralize the user's records in a single app for all other apps on the phone to access.

@vitorpamplona For now, I'm not implementing new features, only fixing bugs.
Is there something I can help with?


Integrators for ultra-weak DPG method solving Poisson equation

Dear mfem developers,
We are interested in examining the DPG framework (more general than ex8 and similar with HDG branch) for some plasma applications.
Before moving to the real application, we want to start from the poisson equation.
-\Delta u = f with Dirchlet Boundary condition.
Rewrite it into the first order form
q+\grad u = 0,
div(q)  = f.
The ultra-weak form of DPG is based on the variational form:
( q, \tau) - (u, div(\tau) ) + < \hat{u}, \tau \cdot n > =0,
-( q, \grad v)  + < \hat{q}, v> = (f,v),
with q \in L^2, u \in L^2, trace term \hat{u}\in H^{1/2} and trace term \hat{q} \in H^{-1/2}.
The trial space for q and u are L^2 and the test space is also L^2. For the test norm of the DPG method, we use
|| (\tau, v) ||_V ^2 := || \tau ||^2 + || div(\tau) ||^2 + ||v ||^2 + ||\grad v ||^2
After looking into the framework, I think we need to implement the following operators:
(1) Face Integrator: <u, [tau \cdot n]>, where tau in L2,
(2) Domain Integrator: (div tau1, div tau2), where tau1 tau2 in L2,
(3) Domain Integrator: (q, \grad v),  where q (vector), v (scalar) are in L2.
Are there any similar operators we could borrow? Any suggestions would be greatly appreciated.
Thank you very much!
Best,
Zhichao Peng

Hi,
For the operators that involve H^1 and H^1/2, you can follow example 8 and use the L2 space.
The difficulty is for the (div tau1 , div tau2 ) and the <u, tau \cdot n> integrators. For these you need a broken (discontinuous) version of the H(div) space. This way the normal trace of tau makes sense on the boundary of an element.
Currently this space is not in the code but I don't think is going to be hard to put there.
Feel free to try it.
Best,
Socratis

Hi @psocratis ,
Thanks for your suggestions!
I think  I can use P^k(K) for the test space, since it is a subspace of the broken H(div) and H(1).
Do you think is it a good idea to modify VectorDivergenceIntegrator and use calcDshape, to build (div,div)? And for the \lgl u,[\tau \cdot n] \rgl, I guess I can check the HDG branch and modify NormalTraceJumpIntegrator.
Best,
Zhichao

Hi @ZhichaoPengMath
For the domain integrators, you can use the existing ones(e.g. (div , div )) but for a modified finite element collection. I think the easiest way is to create a "broken" version of RT elements (look how L2 is done). For the face integrator,  yes you need something similar to the NormalTraceJumpIntegrator but again \tau has to come from this broken space.
To sum it up I would first start from the implementation of the broken finite element collection and then you probably have every integrator you need.
Hope this helps.

Hi @psocratis,
Thanks again for your suggestions!
In the 2011 paper,
ANALYSIS OF THE DPG METHOD FOR THE POISSON EQUATION∗
by L. DEMKOWICZ AND J. GOPALAKRISHNAN,
a discrete version of broken H(div) space Q^l_div(K) is used for the test space. I think the easiest way to implement this method is to follow what you suggest.
I am actually following Jay. GOPALAKRISHNAN AND W. QIU's 2013 paper
AN ANALYSIS OF THE PRACTICAL DPG METHOD
In (3.3) on page 542 of this paper, I think they use the test space
V^r={ \tau\in (P^r(K,\mathcal{V}) and v \in P^r(K) }.
I think this test space can be implemented with the help of L2_FE_collection.
Do you think I understand everything correctly?
Mimicking VectorDiffusionIntegrator and VectorDivergenceIntegrator, I was able to define the face integrators. To test them, I wrote a code similar with test_2d_bilininteg.cpp, and they seem to work correctly. I also implemented the trace integrator, but I found it is harder to test the Trace Integrator. I may directly couple it with face integrators and test with some manufactured solutions. If you are willing to share any thoughts on how to test the trace integrator, I will be more than grateful.
Thanks for the discussions!
Best,
Zhichao

Hi @psocratis ,
Thanks for the suggestions again.
In L. DEMKOWICZ AND J. GOPALAKRISHNAN's 2011 paper ANALYSIS OF THE DPG METHOD FOR THE POISSON EQUATION∗, Q^{div}_l is used for the test space. I think that space is not supported by the current MFEM work. And your suggestions seem to be the best way to implement it.
In J. GOPALAKRISHNAN AND W. QIU's 2013 paper AN ANALYSIS OF THE PRACTICAL DPG METHOD, their (3.3) suggests to use test space
V^r = { (\tau,v) \in the broken space: \tau\in P^r(K; vector), v \in P^r(K) }.
I am following this paper, and I think the test space can be directly implemented with the help of L2_FECollection. Do you think I understand things correctly?
Thanks!
Best,
Zhichao

Hi @psocratis,
Thanks a lot for the fruitful discussions with you!
Now, I finished implementing the DomainIntegrators and the FaceIntegrators. I wrote some 2D tests with manufactured solutions, and the correct results was given.
Before moving to the real DPG code, I will close the issue for now and make a brief summary here, for the reference of myself and anyone interested in this issue.
(1) Notes on the test space:
I am following J. GOPALAKRISHNAN AND W. QIU's 2013 paper, and the test space is just the standard ``DG" space
V^r = { (\tau,v) \in the broken space: \tau\in P^r(K; vector), v \in P^r(K) }. Things can be implemented with the help of L2_FECollection.
However, if one follows L. DEMKOWICZ AND J. GOPALAKRISHNAN's 2011 paper, a broken version of
RT space needs to be implemented, and I guess the best way is to implement the FECollection as @psocratis suggested.
(2) DomainIntegrators can be implemented similar to VectorDivergenceIntegrator based on CalcShape
and CalcDshape. Note that MFEM's original DivDivIntegrator requires RT space and uses CalcDivShape which is not supported for the L2_FECollection.
(3) FaceIntegrator: <u,[\tau \cdot n]>, can be implemented similar to the local1 of HDGFaceIntegratorDiffusion, which is under the HDG branch. Also, NormalTraceJumpIntegrator requires RT for the test space, so it can not be directly used, however, it is a great reference for our implementation.
(4) HDG branch also provides SkeletonMassIntegrato, SkeletonMassIntegratorRHS and ProjectCoefficientSkeletonDG, which is useful for imposing Dirichlet boundary condition through
trace terms and designing manufactured solutions. Note that, the original ProjectCoefficient does not seem to work with trace finite element collections for now.
Thanks again for your help @psocratis!
Best,
Zhichao

Hello,
Dear @ZhichaoPengMath, have you successfully implemented this?
If so, it would be helpful to provide a minimal working example, please!
Thank you
zaq

Hello @issabass,
It was long time ago, so I do not remember all the details now. Sample code can be found on my MFEM fork:
https://github.com/ZhichaoPengMath/mfem/blob/master/fem/dpg_integrators.cpp
https://github.com/ZhichaoPengMath/mfem/blob/master/fem/dpg_integrators.hpp
For debugging, I used some manufactured solution, and you can check my tests in https://github.com/ZhichaoPengMath/mfem/blob/master/tests/unit/fem/test_pzc.cpp
One issue I want to mention is that, due to my implementation, < v, [n \cdot \tau ] > only works for the case there is no hanging node in your mesh. As a result, it only works for conforming adaptive mesh refinement (which is good enough for my application). A better implementation is needed, if you want to use non-conforming AMR.
Just out of curiosity, are you trying to implement some DG code for diffusion equation?
Best,
Zhichao

Hello,
Dear @ZhichaoPengMath, have you successfully implemented this?
If so, it would be helpful to provide a minimal working example, please!
Thank you
zaq

Dear @ZhichaoPengMath, thank you very much for the reply, for the useful input!
This is insightful and will surely help us set up our approach (SUPG/PSGD , which is similar to yours).
Yes, indeed, in the work we are planning to do; solving the diffusion equation in its first-order form
represents the first step to accomplish.
Now, I am learning what is already available like your code, the one in HDG branch and
of course the custom ex5.
Given your remark, "...it only works for conforming adaptive mesh refinement
(which is good enough for my application)", I am not sure about what we will end up doing.
My hope is that we could implement an approach that works for nonconforming fe.
But, as I explore the library, I see there is the implementation of RT fe (but not BDM fe).
Anyway, wish me luck and again many thanks indeed.
All the best,
zaq

Dear @issabass,
Thanks for the discussion! I have a few more comments.
(1) MFEM supports non-conforming AMR. The issue with my code is due to my implementation.
(2) The troublemaker in my code is as follows. When I tried to implement < v, [n \cdot \tau ] >  on the skeleton, the current element ``thinks" it only has one neighbor sharing the same edge. But, if you end up doing AMR without hanging nodes similar to page 19 of this paper https://arxiv.org/pdf/1806.11000.pdf, my current implementation will be fine.
(3) I think RT is well-supported by MFEM. If the ``bilinear form" you need is already supported by MFEM, I believe that you will not face my issues.
Good luck and best regards,
Zhichao

Dear @ZhichaoPengMath,
Thank you very much for the code, for the paper, for the comments and explanation.
All the best,
zaq


loadImageFromPromise() reject the error and the dataSet, if the dataSet is resolved and the image is rejected

Coverage decreased (-0.002%) to 2.5% when pulling 22c7f504c2a95ae64168843857a22d1272489c4e on adreyfus:feature/loadImageFromPromise_return_rejected_image_promises into 400526a91918afcf88c662edae82e04714b13198 on chafey:master.

Coverage decreased (-0.005%) to 2.497% when pulling 3042d49f94abda69b7777aef5c7d3e3081f7bf67 on adreyfus:feature/loadImageFromPromise_return_rejected_image_promises into 400526a91918afcf88c662edae82e04714b13198 on chafey:master.

Coverage decreased (-0.006%) to 2.495% when pulling f168d7196369f35deb44076c3c87c5fa56cda22a on adreyfus:feature/loadImageFromPromise_return_rejected_image_promises into 400526a91918afcf88c662edae82e04714b13198 on chafey:master.

Coverage decreased (-0.005%) to 2.497% when pulling aab0d2091cd5a925e089f8887a9a9911c238f464 on adreyfus:feature/loadImageFromPromise_return_rejected_image_promises into 400526a91918afcf88c662edae82e04714b13198 on chafey:master.

Same changes are integrated to the Pull Request #119 (because of modifying the same parts of code)

Coverage decreased (-0.01%) to 2.491% when pulling 20d8eccd4e72d8be27a4ee027571446435e2da00 on adreyfus:feature/loadImageFromPromise_return_rejected_image_promises into 400526a91918afcf88c662edae82e04714b13198 on chafey:master.

Coverage decreased (-0.004%) to 2.471% when pulling d324a6400b5c5fa50cc33294c70a2fc03dfcac74 on adreyfus:feature/loadImageFromPromise_return_rejected_image_promises into eab9926e6120afeb0a7092a77aced7187cd05aba on chafey:master.

Coverage decreased (-0.005%) to 36.285% when pulling f756ea5e0a02bdca49dd4b794c75c9a4e1e349b8 on adreyfus:feature/loadImageFromPromise_return_rejected_image_promises into 84ba3f01ada656ccdf99e33ff84f31d48a6af019 on chafey:master.

I will resolve conflicts when I have time ( again :-/ )


Distraction Dimmer - HazeOver / dim all but

Description of the new feature / enhancement
A tool like HazeOver to dim inactive windows, to help reduce distraction and increase focus.

Scenario when this would be used?

Workflow with a lot of context-switching, like switching back and forth between terminal and code editor.
Big screens, where you have multiple windows opened at the same time.
Presentations and screen casts.

Supporting information
I found a windows alternative called LeDimmer, but it's abandoned and not open-source. It also lacks a lot of options.

I'm interested in contributing this tool to the project and would be happy to champion development on it. I'm currently doing some exploratory looks into what APIs we'd use for this

I'm interested in contributing this tool to the project and would be happy to champion development on it. I'm currently doing some exploratory looks into what APIs we'd use for this

If you would like to contribute to PowerToys, we can discuss it here and you can start working on this :)
cc: @crutkas

Some initial thoughts, as I'm unfamiliar with what hooks Windows might have to achieve this:

Do we simply get the window borders and draw around them to create a dimming effect? Will this be performant enough on low-powered devices to create a good experience?
Alternatively, how does Windows handle drawing in terms of layering. Like, is there a z-index equivalent on Windows that would let me draw n-1 overlay to create the effect?
It seems like this repo has split C# and CPP code - Does the PowerToys folks have preference one way or the other? I was leaning CPP, simply because FancyZones seems to be using it, and I suspect some codesharing might be able to occur there

Something I wanna test: I want to make sure multi-monitor support is handled OOTB - since this is a big part of the feature for me

Some initial thoughts, as I'm unfamiliar with what hooks Windows might have to achieve this:

Do we simply get the window borders and draw around them to create a dimming effect? Will this be performant enough on low-powered devices to create a good experience?
Alternatively, how does Windows handle drawing in terms of layering. Like, is there a z-index equivalent on Windows that would let me draw n-1 overlay to create the effect?
~It seems like this repo has split C# and CPP code - Does the PowerToys folks have preference one way or the other? I was leaning CPP, simply because FancyZones seems to be using it, and I suspect some codesharing might be able to occur there~ EDIT: Apologies, it seems to be pretty clearly in favor of CPP per the style guide

Something I wanna test: I want to make sure multi-monitor support is handled OOTB - since this is a big part of the feature for me

@crutchcorn I saw you started working on this. I will add the in progress label for you, if this is ok.

This is actually #9496

but lets move that here as this has more info.

I would suggest creating a POC that is outside powertoys itself so we can test that directly.  From there we can talk about implementation back in.  Trust me on so many levels this will be easier :)
Pick either C++ or C#

So there are some questions which need clarification:

Do we need a specifiaction for this?
This doesn't seem to fit really in the existing utilities. But I think it's also to small dor a own utility. Any ideas on this?
Personally I think this would be a good feature for the focus sessions in the new Windows 11 clock app. Should we still integrate it?

cc: @dedavis6797 @crutkas

Make this a different app.
Lets not over think this.
Honestly i think this can just a be a c# app.
We can refactor code as needed.
POC first, integrations later.  I don't know what types of hooks the clock app has for integration.  I think integration would be nice but lets do a Minimal lovable product

Here is what i'm thinking:  @crutchcorn what are your thoughts?

hot key activate when a window is in focus
underlay is invoked.
underlay has color + transparency setting.

would be nice to add mica / acrylic later

Right clicking / double clicking on underlay dismisses it.
Alt-Tab dismisses underlay
game mode can't be activated

Sounds good. I'll try to make it with C# and just do some experimentation. I tried to start with a PowerToys instance, and couldn't even get main or stable building on my end after 3hrs of attempts (I'm not great w/ C# or CPP Windows build tooling, so that's prob on me) so this works out well
Yeah, that makes sense. Ideally, we also have the ability to toggle it on/off from a tray icon as well - although I don't know any other PowerToy that does this
I don't agree about the underlay dismissing it or alt-tab dismissing it entirely, however (at least not without settings).
For example, I do technical content writing and use HazeOver on my laptop to help me focus on writing when I need it. However, I also want to focus on research and quickly switch between the two. It helps a fair bit with my ADHD when I need to go full heads down mode but still need to multitask.
Disabling game mode makes sense to me - although I think that will be a post-POC feature.

PowerToys itself is a hub and spoke model, every feature is actually a different item and everything reports back to runner / settings but even then, everything is designed to be self contained.
I think once we have something to play with, we can make some further design choices like you said. Some of these were guessing how i may want it to work.
Part of me thinks maybe the alt-tab we may want as a setting but yeah, lets test out a POC like we have with Always on top and the find my mouse recently to see what may need to be refined to hit minimal lovable :)

@crutchcorn how is it going!  would love to see what insanity you whipped up

Wanted to see this happen so I wrote PowerDimmer, a first attempt. I know next to nothing about dotnet and Windows dev but I'm using PowerDimmer now.
https://github.com/shayne/PowerDimmer

@shayne is it possible this repo is private? It 404s for me
@crutkas I admittedly haven't yet given it a stab. I was planning on doing so this week, but it seems like @shayne possibly has a strong start. I'm hoping I can help a bit when I can take a look at it :)

Woops! Yeah, public now.

I will take a look tomorrow!

@shayne - is it okay if I submit bug reports and/or PRs to the GH repo? Or would you like me to hold off for now?

Feel free to file the bug in case it's not on my radar. There are a few known issues. I figured I should release it as is since (when you're not trying to break it) it works well. Perhaps some Windows experts can spot the issues instead of me spinning my wheels :)

@shayne - Looking good so far! I didn't know LeDimmer existed and I was playing around with PowerToys today and thought it would be nice to have a focus app like this. Hopeful to see this make it into PowerToys soon!

Just wanted to leave confirmation that @shayne's work works extremely well - even for weird multi-monitor and multi-DPI setups like @happiness801 and mine! Thanks again for building it @shayne - it's deeply appreciated

Tried, this is neat.  I think one thing i would want is to quickly toggle on / off entire feature without exiting it.
@shayne, you're thought is to maybe have put this in powertoys?  correct?  With the item above, this is at what i'd classify as lovable.

i would want is to quickly toggle on / off entire feature without exiting it

Added this as well as an "Active on launch?" setting.

I think there are two settings.

Enable / Disable Feature (aka fully off) like other features in PT
Active / Deactivate the focus overlay like we do with mouse highlighter

This IMO would be a good reference for this.  At times i need the overlay, others i don't.  Some people may want it just fully off.

@crutkas the activation shortcut is in place. I agree with the "fully off" feature like others in PT. It would make sense to add that feature when integrating my project into PT. Right now it exists as a standalone app.
To answer your previous question, yes I would like to see this in PT. It is a lot less effort to develop and test it standalone. I was waiting for feedback and general support before working on PT integration.

@crutchcorn Do you need any help from us?

@shayne on multiple launches, it fails to run, i like it however.

I think adding the chance for an acrylic / mica underlay would be baller too
Another quirk is elevated apps when it isn't

Both livable

@crutkas curious about the launch failures. I do know it doesn't handle conflicting global keybinds gracefully.
I do use it daily, however I find with Windows 11 I have to restart it to get it to properly layer. It's like the "dim windows" stop ordering correctly.
Any direction would be greatly appreciated.

@shayne it crashes on 2nd launch for me on
            settings = new ConfigurationBuilder<ISettings>().UseJsonFile("settings.json").Build();
            settings.DimmingEnabled = settings.ActiveOnLaunch;

System.IO.IOException: 'Unable to move the replacement file to the file to be replaced. The file to be replaced has retained its original name.'

@shayne nice job 😃
I gave it a try and I am also experiencing System.IO.IOException: 'Unable to move the replacement file to the file to be replaced. The file to be replaced has retained its original name.' on 2nd launch that looks related to Config.Net nuget package.
On first launch I am randomly experiencing An unhandled exception of type 'System.ExecutionEngineException' occurred in WindowsBase.dll after a few minutes of usage. I have been able to fix the crash converting the Win32.WinEventDelegate to a field.
https://github.com/shayne/PowerDimmer/blob/5f1b63ecc359f911159f364e6a8c7211decbe52b/App.xaml.cs#L84
Reference: https://stackoverflow.com/a/56774612

How is this feature coming along? I noticed @shayne's PowerDimmer repo is a couple years without any improvements, so I assume it is still a PoC?

I use it daily and works for me. Unfortunately, I don't have the bandwidth to bring it into PowerToys.

One more vote for this! Absolutely needed for focused work.

would love to see this as well

These guys just release "Crop & Lock" in v0.73. Interesting feature, but really doesn't help much with focus...
...if you are interested, I found CinemaDrape actually does what we need (or something very close to it).

I'm seeing a lot of 'dim screen' feature requests being duped and referred here, so rather than create a new feature request, I'd like to request an extension of the feature described in this thread please.
Sometimes I find that my screen is just way too bright in some dark situations.  I don't want to or cannot turn on another light source to counter-balance the situation, so instead I try to dim my screen, but my graphics driver or Windows will only dim it so far. Pitifully so.  Dark Mode at the OS or application level is not a solution either - I find its support is patchy.  So instead I use colour inversion in dark settings, in Ease of Access > Colour filters.  This is good for me, but even then some elements of the screen (text, UI) can be too bright as to be piercing my eyeballs.  My device has a pretty good screen, not gonna lie.
So I'm looking for a Super Dim or Ultra Dim app, and I'm hoping it can graduate to the suite of PowerToys.
I imagine it's just a black layer with an opacity setting (I work with CSS, so that's where my thinking comes from). A dark translucent filter layer that covers the entire screen at the touch of a key combo.
I'd also like the option for this filter to be a light (as in white) filter too (remember I talked about colour inversion).
Loving your work with PowerToys, thank you.

Hello! The dimming feature is super helpful for me especially with the OLED Display of my laptop. Right now, I am using the LeDimmer because the PowerDimmer does not work on my system and in my opinion, adding this feature in PowerToys is a very great idea. I have been using PowerToys for years and it helped me in being productive. Looking forward in new features PowerToys!

Since ticket still opened: PowerDimmer mentioned already works perfectly fine for me on Win11 if one bothers repo being not too active.

Since ticket still opened: PowerDimmer mentioned already works perfectly fine for me on Win11 if one bothers their repo being not too active.

For me it crashed silently a lot, this fork is working pretty much perfectly, but you have to build it yourself

If they send me a PR I'd be happy to merge it. 🤷♂

If they send me a PR I'd be happy to merge it. 🤷♂

Author of those fork isn't active for two years, i'm pretty sure that it's completely forgotten


Always fetch and checkout by SHA

Followup #76
This completely removes the possibility for HEAD checkouts - there's no need for it, the SHA of the commit should always be set by Woodpecker. Also, the fetch command now fetches the SHA instead of the reference.

Can we release the bugfix first and then merge it :)
PS: i want this testet against some edgecases first


Implement Gibbs Sampler

Need to implement Gibbs Sampler class.
It should

receive

multivariate conditional probabilities,
needed number of iterations;

return

random (n-dimensional) array with given distribution.

Implement example, which can pick and reproduce textures.

Need adequate representation of input probabilities — maybe class to store neighbors of a component and probabilities depending on them?


[DOCS] add skill set needed for contributing

Description
In the contributing.md or readme add the skill set needed in order to contribute to the repo
Screenshots
No response
Additional information
No response

i want to add this feature


[servicebus] Check SDK support described types in message serialization and deserialization

We received a bug report in java SDK. Customer cannot cast property attribute from servicebus messages which are sent by .net SDK.
After investigation, we found that .net SDK support Uri, DateTimeOffset and TimeSpan object by using described types in amqp. But java SDK haven't mapped any of these described types.
Here is .net doc: https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-amqp-dotnet#message-serialization
Please confirm this case in SDK.

We don't have corresponding types for Uri, DateTimeOffset, or TimeSpan. We have and support Date. In the future there will be a Temporal.Duration api.  Keep this for tracking purpose.


Inference results seems weird using default trained model

I tried to follow the steps to generate enhanced images, but the results seems weird. Is that normal?
Inference results: https://drive.google.com/drive/folders/1TlEPm40HJS-A7qwD5ikY6DfEleG19d0T?usp=sharing

Get the same results as @hotdog132 provided

Sorry for the late reply. The results in this link are indeed the results enhanced by our method. That is normal.
We are aware that our method is just the first step to combine the Retinex decomposition with CNN. Looking forward to more powerful methods!

The images in the test_results can not open.BMP has bogus header data.How to fix it?


Expose aggregated metrics when all are available

Hi,
Thank you for creating this. I was wondering - do you see a way to expose a callback that can be called with all metrics aggregated once they are available? This would complement the individual metrics firing.
The use-case for this is reporting all metrics at once, instead of as they come.
I tried my hand at doing this myself - since it seems most metrics fire at or before the page changes state to hidden, I added an event handler for visibility change. I also collect the metrics into a measurements object as they come via the analytics tracker. See the example:
let ranOnce = false;
  addEventListener("visibilitychange", () => {
    if (!ranOnce && !!document.hidden) {
      publish("measurements", {
        pageUrl: location.toString(),
        ...roundNumbers(measurements),
      }) || (ranOnce = true);
    }
  });

That said, it seems like there's a lot of fragmentation in browser support for visibilitychange. (See hidden vs msHidden vs webkitHidden, etc at Page Visibility API on MDN. Curious if and how you ended up handling it in this project.
Thanks again.

Ciao @rikonor, thank you for the feedback.
The problem in waiting all metrics are ready, it creates a ton of risk in not firing some of the late values in case someone bounce very quickly out of the website.
You are ofcourse free to aggregate Perfume metrics how and when you prefer in your application. It is something Perfume would never try to push an opinionated API for it.
If I was trying to achieve your goal I will probably pick a metric like tbt and wait that happens, but again you might risk to miss a ton of other values if the user leaves the page in the first 10s.


ctrl+n/p doesn't work which works in sublime line

VSCode Version: all versions
OS Version: OS X

Steps to Reproduce:

[shift+]cmd+p
ctrl+n/p doesn't work which works in sublime

Duplicate of #7876