Prototype: Support token binding for public client apps

Intro:
Proof of Possession is intended to ensure that the client that requests a token is the only client that can use the token. This is accomplished by the client generating a key pair and requesting that the public key be included in the issued access token. The client library then generates a wrapper token signing it with the private key that is only known to it. (Docs link)
Proposal:

Ensure all Azure Identity SDKs are able to call into WAM (this will give RT binding on Windows, for public client). This feature is available in .NET as a preview.
Add API support for using access token binding. This requires the app developer to inform the SDK about the protected API they're about to call (i.e. what is the target URL), and to extract a nonce from 401 and 200 headers.

Requires changes in both azure.core and azure.identity

Tracking for the week of 10/9/2023


how to get pointcloud from depth image?

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

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

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

Required Info
how to get pointcloud from depth image?

Camera Model
{D400 }

Firmware Version
(Open RealSense Viewer --> Click info)

Operating System & Version
{Win 10

Platform
PC

SDK Version
2.16.0}

Language
{C++}

Segment
{Robot}

Issue Description
<Describe your issue / question / feature request / etc..>
hi！I'm a beginner to study realsense d435.here are two questions I want to ask.
Q1. I download the SDK2.16.0 and the intel realsense viewer, I find there are some examples like  rs_pointcloud \ rs_save to disk... these examples can show the realtime pointcloud. But my question is how can I use the depth image from intel realsense viewer to convert the pointcloud?  I try the code below  and get the very strange radial pointcloud, so I think maybe i am wrong.  I want to read the depth image that I saved before then turn to the pointcloud like .pcd file.
#include "stdafx.h"
#include
#include <boost/thread/thread.hpp>
#include <pcl/range_image/range_image.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/range_image_visualizer.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/features/range_image_border_extractor.h>
#include <pcl/keypoints/narf_keypoint.h>
#include <pcl/console/parse.h>
#include <pcl/PolygonMesh.h>
#include
#include <pcl/common/io.h>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/PolygonMesh.h>
#include <vtkSmartPointer.h>
#include <vtkPolyData.h>
#include <pcl/io/vtk_lib_io.h>
#include <pcl/point_types.h>
#include "math.h"
#include <pcl/registration/correspondence_rejection_sample_consensus.h>
#include <pcl/registration/correspondence_rejection_trimmed.h>
#include <pcl/registration/icp.h>
#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>
#include<pcl/io/pcd_io.h>
#include<pcl/point_types.h>
#pragma comment( lib, "opencv_highgui2412d.lib")
#pragma comment( lib, "opencv_core2412d.lib")
typedef pcl::PointXYZRGB P_pcl;
typedef pcl::PointCloud<P_pcl> point_cloud;
typedef point_cloud::Ptr ptr_cloud;
const double camera_factor = 1;
const double camera_cx = 212.559662;// the resolution is 424*240
const double camera_cy = 123.307076;
const double camera_fx = 213.512985;
const double camera_fy = 213.512985;
// -----Main-----
int main()
{
//
cv::Mat img = cv::imread("E:/computer_Depth.png", 0);
//ushort d = img.ptr<ushort>(100)[100];
pcl::PointCloud<pcl::PointXYZ>::Ptr cloudPtr(new pcl::PointCloud<pcl::PointXYZ>);
for (int m = 0; m < img.rows; m++)
{
	for (int n = 0; n < img.cols; n++)
	{
		ushort d = img.ptr<ushort>(m)[n];
		if (d == 0)
		{
			continue;
		}
		pcl::PointXYZ p;
		p.z = double(d) / camera_factor;
		p.x = (n - camera_cx) * p.z / camera_fx;
		p.y = (m - camera_cy) * p.z / camera_fy;
		cloudPtr->points.push_back(p);
	}
}

pcl::visualization::CloudViewer viewer("Cloud Viewer");
viewer.showCloud(cloudPtr);
//while (1);
//	return 0;

pcl::PointCloud<pcl::PointXYZ> cloud;
cloud = *cloudPtr;

pcl::io::savePCDFileBinary("computer_Depth.pcd", cloud);
std::cout << " saved " << std::endl;
getchar();
return (0);

}
Q2. the second question is when i use the intel realsense viewer 3D form , I can save the pointcloud .ply file correctly, but when i use the code below to read this .ply file, there is mistake: NO POLYGONS.
#include "pch.h"
#include
#include <pcl/common/io.h>
#include <pcl/io/io.h>
#include <pcl/point_cloud.h>
#include <pcl/io/ply_io.h>
#include <pcl/io/ply/ply.h>
#include <pcl/console/parse.h>
#include
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/PolygonMesh.h>
#include <pcl/io/ply_io.h>
#include <pcl/io/vtk_lib_io.h>
#include <pcl/io/vtk_io.h>
#include <stdlib.h>
using namespace pcl;
using namespace pcl::io;
using namespace pcl::console;
using namespace std;
int main(int argc, char** argv)
{
PolygonMesh cloud;
pcl::visualization::PCLVisualizer viewer("PCL PolygonMesh");
string filename = "flower.ply";
pcl::io::loadPolygonFilePLY(filename, cloud);
viewer.addPolygonMesh(cloud);
viewer.setBackgroundColor(0.2, 0.0, 0.0);
while (!viewer.wasStopped())
{
viewer.spinOnce();
}
return 0;
}
My questions maybe very easy, but it still troubled me a lot.  Can someone help for me ? THANKS A LOT!

But my question is how can I use the depth image from intel realsense viewer to convert the pointcloud?

Q1 : In the Viewer top right corner, the "save" icon will export the scenery to a ".ply" file.

or in C++, you'll need something like that :
// Declarations
	rs2::pointcloud pc;
	rs2::points points;
        rs2::pipeline pipe;

// Start your pipeline somewhere around here
	auto frames = pipe.wait_for_frames();
	auto depth = frames.get_depth_frame();
	auto color = frames.get_color_frame();

	pc.map_to(color);
	points = pc.calculate(depth);
        points.export_to_ply("your_filename.ply", color);

I can save the pointcloud .ply file correctly, but when i use the code below to read this .ply file, there is mistake: NO POLYGONS.

Q2 : I think that right now, the ".ply" file generated with the Viewer contains a point cloud exclusively (no polygon). You can generate the mesh with another program once you have a point cloud.

@AntoineWefit  THANKS FOR YOUR ANSWER! ! but I still have a question, the code you used below:
auto frames = pipe.wait_for_frames();
auto depth = frames.get_depth_frame();
This represents the acquisition of realtime depth data, right?
I want to input  my depth image like .png file

I chage the Depth Visualization/ Color Scheme from Jet  to White to Black. use this kind of depth image:

the code i used below is workful for Kinect , I used the depth image from Kinect and  Kinect's  intrinsic. When I used the depth image from realsense viewer and changed the intrinsic, it generated a very strange radial pointcloud.
`cv::Mat img = cv::imread("E:/computer_Depth.png",-1);
ushort d = img.ptr(100)[100];
pcl::PointCloudpcl::PointXYZ::Ptr cloudPtr(new pcl::PointCloudpcl::PointXYZ);
for (int m = 0; m < img.rows; m++)
{
for (int n = 0; n < img.cols; n++)
{
ushort d = img.ptr(m)[n];
if (d == 0)
{
continue;
}
pcl::PointXYZ p;
p.z = double(d) / camera_factor;
p.x = (n - camera_cx) * p.z / camera_fx;
p.y = (m - camera_cy) * p.z / camera_fy;
cloudPtr->points.push_back(p);
}
}
pcl::visualization::CloudViewer viewer("Cloud Viewer");
viewer.showCloud(cloudPtr);
pcl::PointCloudpcl::PointXYZ cloud;
cloud = *cloudPtr;
pcl::io::savePCDFileBinary("computer_Depth.pcd", cloud);
std::cout << " saved " << std::endl;
getchar();
return (0);`

Is there any way to combine the realsense d435 camera intrinsic and depth images from  realsense viewer  to generate the pointcloud?
About Q2, i saved the .ply file using the botton you introduced and I will find some codes to generate the mesh.
Thanks again!:)

This represents the acquisition of realtime depth data, right?

Yes, from a connected RealSense camera.

Is there any way to combine the realsense d435 camera intrinsic and depth images from realsense viewer to generate the pointcloud?

Not sure about that, maybe this can help you.
You could generate the pointcloud directly from the Viewer or with some simple code, instead of converting pictures.

Hello @anranx ,

The color representation of depth in realsense viewer, as captured with PNG,  uses histogram equalization - a one-way transformation that makes the image "human"-readable but not applicable for depth extraction. See #2231.
The "Save snapshot" button in viewer also generates RAW file (along with PNG) that preserves the actual depth data in native Z16 (uint16_t) format.

To generate pointcloud from depth frame you can  use rs2_deproject_pixel_to_point API that requires the following:

Depth RAW data (see above)
Depth Raw->Metric units scale factor (via get_option(RS2_OPTION_DEPTH_UNITS))
Depth Intrinsic
You can also use pointcloud utility class, as it generates vertices for the whole frame at once at expecnce of some extra-coding on your side.

As for the Kinect-specific code - I don't have a first hand experience, but for reading a related discussion (https://communities.intel.com/message/532200#532200) I'm not sure whether Kinect's "d" stands for Cartesian or radial depth .
I can only confirm that Realsense devices produce undistorted (Cartesian) depth. So you'll need to check up the math to see that the transformations align.

@AntoineWefit Thanks for your help! I change my way to get the pointcloud. Save the pointcloud from Viewer and open it in the Meshlab. Something wrong in visualization.
I set the depth unit as 0.001, it means 1 meter in each depth unit. But it seems so small in the Meshlab

I try to zoom it using the mouse, but still small.
When I change the depth unit to 0.0001, it means 0.1meter in each depth unit. Then I put the pointcloud into meshlab, it become bigger.

Shouldn't the pointcloud in 0.001 depth unit is bigger than the pointcloud in  0.0001 depth unit?
My question is how to set the depth unit so that the pointcloud can become normal size in meshlab?
Thanks you!

I think that Meshlab is just adapting the Window to the size of your 3D model. It looks like you captured a big scenery, like an entire room. Some points are really far away which make your model kind of big.
Can you specify what you are trying to capture ? (for example : an object, a person, a room...)
I would advise you to set up the Intel RealSense Viewer to capture only the desired object.
For that, adjust your settings like this (for example : if you want to capture something between 30 cm and 1 m) :
Controls :

Advanced Controls / Depth Table :

Thank you for your reply!
I am trying to caputure a vivo model rib bone. I know the model space is limited and the camera minimum imaging distance is 10cm,  so I reduce resolution to the min 424*240 to capture the ribs. I am capture the pointcloud in this vivo model, so I dont know why produce so mush  points in long distance. And actually, I dont know how to set the other parameters in such short distance.

because I will align the STL1(come from the pointcloud I captured) with STL2(come from CT reconstruction）so I want to keep the same unit.  .mm is the universal unit.

I reconstruct the pointcloud in 0.001 unit and saved as .STL1,  but it is too small compared to another STL 2reconstructed by CT.

So can you suggest how to set those parameters to caputure pointcloud in condition of low resolution(424*240)and short distance(limited space in vivo model)? Or there is something wrong in the process of capturing the pointcloud?
Thank you very much!

First of all, your min distance (10 cm) is really close, even for the D435. It is going to be tricky to capture a nice pointcloud at this distance.
Secondly, since you are really close, I think that you should set your Depth Clamp Min to 0 and your Depth Clamp Max to around 30 cm. With that, you'll get rid of things beyond that distance.
Try to also adjust the Disparity Shift to get a nice 3D model according to the scanning distance.
Regarding the units, I don't know if there is a way to make any change. I believe that the exported 3D models from the Viewer are set to meters unfortunately, which explain the size difference between your STLs, but I could be wrong.

Honestly, until the Realsense officially has an example which can do a full pointcloud reconstruction without manually doing it in ie Meshlab, I think the application @anranx is trying to do will be very tricky with lots of hard manual labor.
Pointcloud Reconstruction:

[Realsense Customer Engineering Team Comment]
@anranx  Any update from your side? Can we close this ticket?

Sorry to reply. I changed the depth unit in RealSense View, it gets better now. Finally, I decide to get pointcloud from RealSense View instead of depth image. I am try to do reconstruction in meshlab or using c++ code. Anyway, thank you guys very much for  advice and help!   :))

@HippoEug Thank you for your reply!
It doesn't seem to work very well from the pictures. Do you have any idea to reconstruction? Or is there a better way to create pointcloud instead of RS Viewer?  Maybe better pointcloud can get better reconstruction.
Because my application is using the pointcloud to identify which the rib is, and then do some registration with the model from CT reconstruction. So maybe it is  not necessary for me to scan the whole subject. Anyway, I can learn from you if you have better idea.

There is an application that is Recfusion. I have tried it and it is perfect.. but the downside is its $99 if I recall correctly. You should try using the free version and see if it works.

Here is an output from the application.
This is an actual picture of my messy room:

These are the results from Recfusion. Instead of taking a screenshot on my PC, I took a picture of my monitor using my phone, hence the terrible reflection.

I still think this should be a default feature for the Realsense. The D435 I am using is owned by my company.. but if this is a default feature for the Realsense, I might get the camera for myself as well

@hilaEG @HippoEug Where did your guys get the point cloud result. I am now getting from realsense ros publish topic from /camera/depth/color/points, but it sometimes get a lot of very long distance points, is there any way to filter it?

What do you mean by getting the point cloud result?
I think for the long distance points, you can try using Depth Clamp

@anranx  I have exactly same commands here.................


Cleanup Get-AzureConstants.py to be a bit more pythonic

Output has not changed at all. Also compatible with python3.

What this PR does / why we need it: Minor code cleanup to the python file!
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
Related to #1216.
Note: This should 'just work' on Windows, but I don't have a box to test against.
Release note:

This change is

@yuvipanda,
Thanks for having already signed the Contribution License Agreement. Your agreement has not been validated yet. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

Verified nothing changed:
 ~/go/src/github.com/Azure/acs-engine  ⑂ yuvipanda-cleanup-vm-sizes    python pkg/acsengine/Get-AzureConstants.py
 ~/go/src/github.com/Azure/acs-engine  ⑂ yuvipanda-cleanup-vm-sizes +    git status
On branch yuvipanda-cleanup-vm-sizes
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   pkg/acsengine/azureconst.go

no changes added to commit (use "git add" and/or "git commit -a")
 ~/go/src/github.com/Azure/acs-engine  ⑂ yuvipanda-cleanup-vm-sizes +    git diff
diff --git i/pkg/acsengine/azureconst.go w/pkg/acsengine/azureconst.go
index adc6ec80..86693a86 100644
--- i/pkg/acsengine/azureconst.go
+++ w/pkg/acsengine/azureconst.go
@@ -2,7 +2,7 @@ package acsengine

 import "fmt"

-// AUTOGENERATED FILE - last generated 2017-08-08 21:39:37
+// AUTOGENERATED FILE - last generated 2017-08-10 19:59:50

 const (
        // AzurePublicProdFQDNFormat specifies the format for a prod dns name

Great, will merge after e2e completes.


Clarify error handling behavior for nested transactions in docs

I spent two hours reading the SQLite documentation and the better-sqlite3 source code. Thought this might help other people as well.
Thanks for the great library!

Thanks for the review, @mceachen!

Thanks for merging!


#Improve | Prettify .gitignore and add a few more environments

I think this can make some arrangements? Also I just added a few more virtual environment ignores .

No auto-generate, just got the items seperating and ordering by category for the future.

No auto-generate, just got the items seperating and ordering by category for the future.

I usually use GitHub auto-generated .gitignore file as a starting point and add additional stuff underneath.
https://github.com/hasansezertasan/not-just-a-todo-app/blob/143cfaef6ead92fb5354363bca425940b33698d5/.gitignore#L161-L175

No auto-generate, just got the items seperating and ordering by category for the future.

I usually use GitHub auto-generated .gitignore file as a starting point and add additional stuff underneath.
https://github.com/hasansezertasan/not-just-a-todo-app/blob/143cfaef6ead92fb5354363bca425940b33698d5/.gitignore#L161-L175

Sure, I also use .gitignore templates of Python, but in this pull-requests, I just ordered them by categories, like default templates'.


Export Applications modal, enhancements

Related issues: #261

Export applications modal should be block, so if the user accidentally clicks outside of modal they don't lose the last x minutes of progress.
Nice-to-have features

Clicking cancel button / pressing Esc should cancel download.

Tested in Epinio Server Version: v1.9.0-23-g58d35b2e with latest ui image ghcr.io/epinio/epinio-ui:latest-next

Checked pressing Esc / Cancel actually stops the export of images and charts
Checked pressing outside the export window does not close the window and the download continues

The only thing to mention is that if Esc / Cancel is pressed when is compressing the files will not be stopped. Given that the compression will be part of the download on another ticket, I assume this as normal.

Restested in Epinio v1.10.0-rc1


Fix bug related to managedLedger properties

Fix issue #7161
related to https://github.com/apache/pulsar/pull/7222

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

@zhanghaou to help resolve the latest comments

Please take a look again. @merlimat @jiazhai @codelipenghui @sijie

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks


Server Crash on Startup (Forge)

I concluded that this mod was causing my server to crash because it started up when I removed it from the mod list. I've attached my crash report, log, and debug for the server.
Crash Report.txt
Debug.log
Log.txt

Fixed!


Search functionality does not work due to API limitations

In the getAllProducts() function, there is no logic to support Shopify's pagination requirement.
As a result, the store can only search through the first 250 products.

For anyone with the same issue, I added a new function to shopify JS like this --
`
export async function getProductsByTitle(title) {
let query = `
{
products(first:25, query: "title:${title}*") {
edges {
node {
id
handle
title
priceRange {
maxVariantPrice {
amount
currencyCode
}
minVariantPrice {
amount
currencyCode
}
}
images(first: 1) {
edges {
node {
originalSrc
altText
width
height
}
}
}
}
}
}

}
`
return shopifyFetch({
query: query,
})
}`
This doesn't scale if there are a lot of products because of API limitations, but this provides a partial solution to a more accurate search functionality. Maybe consider looking into the Bulk operations to get a real answer to this.


[REQUEST] Implement feed start and expiration date (GTFS rule)

Is your feature request related to a problem? Please describe.
Feed must have a valid start date and expiration date. This is a GTFS rule implemented in Google Python validator and featured in Google Type Error as TYPE_FEED_EXPIRATION_DATE, TYPE_FEED_FUTURE_SERVICE, TYPE_FEED_HAS_VERY_SHORT_SERVICE  and TYPE_EXPIRED_FEED_HAS_VERY_SHORT_SERVICE.
Describe the solution you'd like
Actual Google GTFS validator behaviour : verifies if feed does not start in the future, or does not expire within 60 days.
Describe alternatives you've considered
Additional context
Line 49, 50, 54 and 55 in Error support priorities https://docs.google.com/spreadsheets/d/1vqe6wq7ctqk1EhYkgtZ0_TbcQ91vccfs2daSjn20BLE/edit#gid=0

@maximearmstrong This is looking at feed_info.txt feed_start_date and feed_end_date, right?
Does the Python tool put any parameters on what a "valid" date is? For example, does it need to be in the future from now? Or within the next 10 years? Or just it just validate the YYYYMMDD format?

@barbeau Yes. In the Python validator, feed_start_date must be in the future, and feed_end_date must be in more than 60 days.

@maximearmstrong Thanks, that's interesting.
@timMillet this is another rule we'll need to look at in terms of what's considered current GTFS best practice.

@barbeau I agree. AFAIK, there are no such rules anywhere in the spec or in the Best Practices. The only things specified in the Best Practices are:

"At any time, the published GTFS dataset should be valid for at least the next 7 days, and ideally for as long as the operator is confident that the schedule will continue to be operated." and
"If possible, the GTFS dataset should cover at least the next 30 days of service."

Why the Google Validator was issuing errors when feed_start_date was not in the future, and feed_end_date was not in more than 60 days?

Why the Google Validator was issuing errors when feed_start_date was not in the future, and feed_end_date was not in more than 60 days?

I'm guessing this rule goes way back to the early days of GTFS when producers were consistently publishing a GTFS dataset every 3-4 months, with no overlap between feed service periods.
Obviously industry practices have changed significantly since then, with some agencies publishing updates daily, which may be an update of a feed (in which case feed_start_date would be in the past) and it may only be valid for the next 30 days (in which case feed_end_date would be less than 60 days away).

Interesting! I agree with your last paragraph.
IMHO, a past date for feed_start_date should be allowed. feed_end_date should be at least cover the next 7 days, but it would be great if it covers the next 30 days. So less than 8 days (current day+7 days): error; between 8 days and 30 days: notice; 31 (current day+30 days) and more: nothing.
Btw: at my previous job, I noticed that most of the feeds providing feed_end_date and feed_start_date were providing a schedule for the next 2 months. Now I know who was responsible for that 😛

@timMillet  are you aware of any use case  where only one of the following field would be provided: feed_start_date, feed_end_date?

I'm not aware of any - it's actually strange that these fields aren't explicitly conditionally required, in that if you provide one you must provide both.

Indeed, should we open a new issue to flag this as a warning?

@lionel-nj Yes, I would flag one of the two fields being empty as a warning for now. However, I also think the spec should be updated to explicitly say if one field is provided the other must be too. That seems to be the intent from the description, but it's not explicitly defined.

Re-opening, since TYPE_FEED_EXPIRATION_DATE seems to be the only one of these currently supported.


When battery saving mode is enabled tooltip boucing rapidly

When i enable battery saving mode, tooltip bouncing animation starts to malfunction, as soon as battery saving mode is disabled it gets normal, is there any fix for this ?

By disabling floatingAnimation you can stop the rapid bouncing, we'll missing bouncing effect entirely. So, as a workaround I'm checking if battery saving mode is enabled and enabling and disabling the effect. Below code may help.
boolean batterySaverEnabled = false;             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {                 PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);                 if (powerManager.isPowerSaveMode()) {                     batterySaverEnabled = true;                 }             }
if (!batterySaverEnabled) {                 builder.floatingAnimation(Tooltip.AnimationBuilder.DEFAULT);             }

Thanks for the answer, but i still if power saver is enabled when the tooltips were already showing then this wont work right?

Yeah. good point.. we may have to catch event from PowerManager (if there is any API available. I didn't find any yet 😛) and re-create the Tooltip.
In my case Tooltip stays only for 3-5 seconds, this kind of case could be rare. I'm waiting for someone to fix this in the Library itself.

@laxman-spidey you can listen to power saver event with action ACTION_POWER_SAVE_MODE_CHANGED, its there in the documentation itself.

You can monitor for changes to this state with ACTION_POWER_SAVE_MODE_CHANGED.

Hi everyone. I am using this library on my project. I have a question. How to hidden status bar when show tooltip??
Many thanks!


Sometimes fixing a cyclic dependency requires a buck2 killall

I wish I could provide a minimal repro of this.  I've tried and have been unable to figure it out.
Often times I introduce a cycle in my dependency tree.  I do a build, and the build almost completes, and then at the very last step after almost all actions are run, I get an error saying there was a cycle.  I go and fix the cycle by simply deleting one of the deps in one of the targets to break it.  But buck2 immediately complains about a cycle again.  No matter what I do, I cannot get it to keep running.  If I do a buck2 killall and then re-run the build, without touching any other files, it (strangely) restarts the entire build.  All actions re-run.  Then at the end, it doesn't complain about the cyclic dependency.
I'm going to keep working on a repro, as I can't provide my actual graph.  But hopefully someone who understands the internals well can get an idea from this alone.  It seems like it's caching something about the dependency tree and not properly invalidating it when the configuration changes.

We are in the process of moving from DICE to modern DICE (basically v2 of DICE). The way that cycles etc work between the two is quite different. I'm not that sure which open source ends up defaulting to. CC @cjhopman who has inherited DICE ownership and did a lot of work on the cycle tracking.

Do you know which format the cycle error is? We have two things that detect cycles, one prints the cycle all on one line and its hard to read and the other prints them with each node in the cycle on it's own line.
i.e.:
a -> b -> c -> d

vs
-> a
-> b
-> c
-> d

it'd help narrow this down if you knew which of the two it is.

I think this is eager deps causing spurious cycles, not related to the cycle detectors

Ah, yeah. That seems most likely.

It’s the single line version for sure.  Another thing Ive occasionally noticed is that it will mention the same dep twice in a row.  Like A > B > B > C > A, which is weird

The eager deps is the problem is explained a bit in https://neilmitchell.blogspot.com/2020/11/data-types-for-build-system-dependencies.html. Imagine if instead of doing it the way Shake does, you just evaluated all previous dependencies in parallel, even if a previous dependency means they might not be possibly required. That causes all kind of weird things to happen, including cycles that can never be hit in the normal course of execution. Buck2 currently does that, and we call it the eager deps bug.

I see.  Is there a plan to fix it somehow?

There are two plausible plans:

Have a more refined dependency structure, and then only spawn the right things. Basically copy what Shake does.
Have better cycle detection that is aware that there are potentially unreachable states. Shake actually also does this because it has non-deterministic dependency generators (which Buck2 doesn't have as much)

I believe @cjhopman plans to do number 1.


don't stop retrying azure credential refresh on single failure

Fixes #1213
Proposed Changes

Keep retrying azure blobstore credential refresh
If the token expires, cause the server to gracefully shutdown

Release Note
Retry Azure credential refresh in the event of a refresh failure. Shutdown if token expires.

/assign @nmiodice

/hold
for @nmiodice to review

This LGTM as well. Thanks @mikehelmick and @sethvargo

/hold cancel


ocaml-edn includes an opam control file, can be pinned

This has the advantage that OPAM can also install all dependencies (Menhir) and it can be easily removed or updated.

Thanks

@Leonidas-from-XIV when I run
$ opam pin add edn https://github.com/prepor/ocaml-edn

a text editor pops up with a opam file stub that I'm supposed to fill in. Should the content of that file not be exactly https://github.com/prepor/ocaml-edn/blob/master/opam?
If I use that file as my opam file (i.e. simply copy paste the content) I get the following error:
[ERROR] The compilation of edn failed at "./configure --prefix=/Users/jonasenlund/.opam/4.02.3".

If I instead clone the repo and run
$ opam pin add edn .

everything installs fine. Any ideas what I'm doing wrong?

@jonase That's strange. For me it picks up the proper contests of that opam file directly, without bothering me with an editor and resolves the dependencies and builds it correctly. That's why I proposed it, it's quite convenient.
Which OPAM version are you running?

$ opam --version
1.2.2

I'm sorry, I used the wrong URL, it was missing the .git suffix. Pushed a commit to solve it.

Thanks! I think you need to open a new PR since I already merged this one?


Training the model from scratch again

Continuing the previous issue of shape mismatch between the initialised model architecture and the trained model architecture, model needs to be retrained again with uniform shape to resolve the issue of shape mismatch.

Model training is done almost! Train it for few more epochs and test it out and it's done!

Training from scratch is done!


Adding testing for Distribution and fix boundary parsing

I don't really like the [1,2,3,4] syntax for defining two bounds (1, 2) and (3, 4). I think this could easily lead to difficult to debug mistakes when defining models.

Fixed

LGTM


[WIP] Add the capability to remove a given project and all related frames

Fixes #192

[x] Add a method to Watson class to delete project by name
[ ] Add the functionality to the CLI
[ ] Add tests
[ ] Update documentation

Thanks for the PR!
As it's a dangerous operation, I think we should ask the user for confirmation. Here is a pattern for doing that with Click: http://click.pocoo.org/5/options/#yes-parameters
Ideally, we should also tell the user how many frames this will delete.

@k4nar for the pointer.
I agree. I'll do that when I implement this feature in the CLI.


Document ordering of model properties

Issue #948 was intended establishing ordering guarantees for model properties and have guarantees be clearly articulated in the public documentation. While the fix for #948 does seem to establish a clear ordering, I don't think this was actually described in any public documentation.

est: 2

I did document the ordering in the public reference documentation for the API that return member collections.
For example,
properties of a model:
https://microsoft.github.io/typespec/standard-library/reference/js-api/interfaces/Model#properties-2
enums of an interface
https://microsoft.github.io/typespec/standard-library/reference/js-api/interfaces/Namespace#enums
My thinking was that it's really the callers of this code that need to know about ordering. That said, it's totally fine to also put this somewhere more prominent, but please make sure the docs are consistent if so.

This also made me spot a copy/paste issue in ref docs for namespace members. Fix here: #1923

I thought the documentation was missing because I didn't see any docs include in #1737 which was the PR that closed #948.
But I also think that this should be documented as a basic characteristic of models, e.g. on the Language Basics/Models page, probably with the Record section. Users simply writing TypeSpec need to know this to know that the order of the parameters spread from a model into a parameter list is well defined.

Yes, it makes sense to add the info there too.
(The docs I linked were in #1737 as doc comments in the typescript that now generate into the reference docs.)


add test doc

Description

Fixes #58
Type of change
Please delete options that are not relevant.

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

How Has This Been Tested?

Test Configuration:

Firmware version:
Hardware:
Toolchain:
SDK:

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

Thank you @hero0926 for contribution 👍

Linking with #58


Sticky scroll sometimes breaks changes comparison in source control

VS Code Version: 1.73.1
OS Version: Win 11 Pro 10.0.22621 Build 22621

Steps to Reproduce: ?
It doesn't happen for every file, but every now and then when I click on a file Source Control (side)tab, be it under Changes or Staged Changes, the right half of the editor view shows what changes have been made, but the left half of editor view fails to show what the lines were before the change because there is sticky scroll from a completely different file over the lines.
Example image:

Looks like it also happens the other way around.

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!

Sorry, I couldn't find an already open issue pertaining to the source control views. Thank you for figuring it out, and for your future efforts to solve the issue. I would appreciate the duplicate issue link though.


Add 'solo5-mkimage' tool.

solo5-mkimage can be used to build MBR partitioned disk images
containing a unikernel. Includes support for GCE-style images (sparse
.tar.gz).
Only runs on Linux and/or in Docker, mainly due to lack of portable DOS
fdisk.

@ricarkol @sgrove Can you test this when you get a chance and confirm it works for you?
@djwillia Ok to remove the existing solo5-build-iso.bash in favour of solo5-mkimage?

@ricarkol I've addressed all your comments. Shall I remove solo5-build-iso.bash? We can always get it back from history/integrate that functionality into solo5-mkimage if a use-case for ISO images is found.

Thanks for the changes @mato


I got an error (attempt to call method 'for_each' (a nil value)).

I run with the following command:
th main.lua -data /devData/BenchmarkData/ILSVRC2012_resize  -netType overfeat

But I got the following error messages. Any suggestions? Thanks.
/home/jwh/torch/install/bin/luajit: ...est_torch/imagenet-multiGPU.torch/fbcunn_files/Optim.lua:61: attempt to call method 'for_each' (a nil value)
stack traceback:
	...est_torch/imagenet-multiGPU.torch/fbcunn_files/Optim.lua:61: in function '__init'
	/home/jwh/torch/install/share/lua/5.1/torch/init.lua:54: in function </home/jwh/torch/install/share/lua/5.1/torch/init.lua:50>
	[C]: in function 'Optim'
	/home/jwh/test_torch/imagenet-multiGPU.torch/train.lua:35: in main chunk
	[C]: in function 'dofile'
	main.lua:35: in main chunk
	[C]: in function 'dofile'
	.../jwh/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:131: in main chunk
	[C]: at 0x00406670

Requirements section in readme:
git clone https://github.com/torch/nn && cd nn && git checkout getParamsByDevice && luarocks make rocks/nn-scm-1.rockspec

It works. Thanks. I can run the demo now. But the Volatile GPU-Util of Tesla K40c is almost always 0%. Is it normal?


useUpdateNodeInternals doesn't update handle positions during active connection

Describe the Bug
I'm using custom nodes in my graph component and these nodes collapse the handles when user is not near them. This is done with absolute position on handles and with animations. Now, I've managed to handle animation and position updates on the source node by calling updateNodeInternals on every requestAnimationFrame until animation is done.
However, if the user has initiated a connection then target nodes doesn't update their handle positions. I think internally they are being updated but no one told the connection about it :)
Your Example Website or App
https://codesandbox.io/p/devbox/react-flow-edge-issue-dvgwvh
Steps to Reproduce the Bug or Issue
This is a very crude example, especially requestAnimationFrame being called all the time but it's the same behaviour with optimized version anyway.

Try to connect the source to target
See that even though you are hovering over target the connection thinks handle position is on the left (as opposed to where you are seeing)

Expected behavior
I expect that when updateNodeInternals is called the connection should also know where the target handles are.
Screenshots or Videos
No response
Platform
Browser: Chrome (122.0.6261.94)
React Flow version: 11.10.4
Additional context
No response

I get what you're saying, I would also need to increase the hover trigger area to compensate for that delay then. All of it seems a bit hacky though. May I ask the reasoning behind this? As source handles behave correctly in this case.
If it's also a won't fix situation, could you tell me where is the related logic located so that I can fork or monkey patch it?

Okay it appears that this comes from the following snippet. I get why you are using a lookup here but if there is a way to know when updateNodeInternals is called then this lookup should be invalidated. I've tested it and updating the lookup here solves this issue. I'll investigate the code a little more to see how I can get notified about this and open a PR about it.
https://github.com/xyflow/xyflow/blob/82f40b4a6792ac734859521024e756a8834e78c6/packages/system/src/xyhandle/XYHandle.ts#L151-L161

This is still an issue on v11.11.3.
I see the PR #3988 was closed pretty quickly after it was opened - did it not address the issue in a satisfactory way?

I think I closed the PR because I didn't get any feedback and my project requirements changed.
I'm willing to work on it if I can get a review. Although, I have a feeling that this won't be fixed until v12 gets a stable release.

Thanks @DenizUgur. I was thinking about how to be more efficient with this. I think it would need to be memoized as you said, but it's not immediately clear how to do that without adding substantial complexity. I agree it's probably best to wait for v12 to not put extra pressure on maintainers.

This should be possible with the changes proposed in #4548. If this lands in main you should be able to update your handles while a connection is in progress.

I'm having the same exact problem. I need to update my handle positions when a connection is active so that fix would be really helpful!

I suppose that PR would fix this issue without any changes from our side right?

yep @DenizUgur !

That's perfect! Thank you @peterkogo @moklick


custom internet(okhttp) native module

Hi, i try custom  internet(okhttp) native module.
@ReactMethod
public void get(String url, Callback callback) {
    try {
        Thread.sleep(10000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

    String json = HttpClientC.get(url);
    callback.invoke(json);
}

I purposely delayed it by 10 seconds.
It will blocking the page when i call it in componentDidMount method.
is it run subThread?   but it blocking the page. why?

It is run in native module thread, which is still used to enqueue calls to the main UI thread. See my previous answer https://github.com/facebook/react-native/issues/14841#issuecomment-313595180 explaining why you shouldn't do blocking calls in @ReactMethod methods.

From http://facebook.github.io/react-native/docs/native-modules-android.html

Native modules should not have any assumptions about what thread they are being called on, as the current assignment is subject to change in the future. If a blocking call is required, the heavy work should be dispatched to an internally managed worker thread, and any callbacks distributed from there.

I see. Thank you for your patience.


Want to join this organization.

Hi @Kushal997-das,
You were invited, please see the invitation link.


Don't Merge! PR real time test for webhook case

Docs Build status updates of commit d836682:
:clock10: Pending: waiting for processors (21 builds ahead of you)
:warning: Docs Build is busy, currently there are 21 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit d836682:
:clock10: Full build: the average full build time is 5 min(s) 11 sec(s), this is based on the last 30 build(s) for this repository.

Docs Build status updates of commit d836682:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-conceptual/testing.md
:warning:Warning
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)
Details

docs-ref-conceptual/testing.md

[Warning] Missing attribute: either ms.prod or ms.service is required. Use ms.prod for on-premise products, or ms.service for cloud services.
[Warning] Missing attribute: title.
[Warning] Missing attribute: either ms.prod or ms.service is required. Use ms.prod for on-premise products, or ms.service for cloud services.
[Warning] Missing attribute: title.
[Warning] Missing attribute: either ms.prod or ms.service is required. Use ms.prod for on-premise products, or ms.service for cloud services.
[Warning] Missing attribute: title.

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


[Question]: Custom Composer/RenderPass resolution/size different from "main" renderer

Hey there!
I'm doing an off-screen postprocessing pipeline and use the final pass (aka the result from a CopyPass) as texture on a mesh, essentially like
    composer.addPass(renderPass)
    composer.addPass(shaderPass)
    composer.addPass(copyPass)
    .....

    mesh.material.diffuse = copyPass.texture

Is there a way to change the size/resolution of the RenderPass' render-target without affecting the main resolution of the renderer?
For example I have the main context dpr = 2 (and I have to keep at 2) but I don't want to have the Composer's dpr = 2,
just 1 or whatever different from the main dpr, so I can save some performances, but I can't see any method to do that, even renderPass.setSize(...) doesn't do the trick. (worth a shot)
The solution I'm thinking about can be create a render-target manually, render what I need and then skip the render pass going straight to the second pass (shader pass in my case) and pass manually as uniform the render target I created
const rt = new WebglRenderTarget(....)
const shaderPass = new ShaderPass(.....) <<< custom uniform rt.texture
...
composer.addPass(shaderPass)
composer.addPass(copyPass)

...
animate(){
  gl.setRenderTarget(rt)
  gl.render(scene, camera)
  gl.setRenderTarget(null)

  composer.render()
}

Any thought on this?
Thanks in advance ❤
--
EDIT: Maybe as enhancement we can expose RenderPass.getRenderTarget() so we can modify based on our needs?

Hi,
unfortunately, this use case is currently not supported. RenderPass.setSize doesn't do anything since this pass renders to the main frame buffers that are managed by the composer.
I don't plan on adding more features to v6. The next major version will provide persistent resolution settings for each Pass and there will be an alpha release soon.

Hey @vanruesc , at the end I've solved exactly the way I suggested :)


[Impeller] ClipBehavior.antiAliasWithSaveLayer should probably not create a save layer.

Because we're not doing anything with the save layer, as the clipping is done with the stencil buffer. There are no fidelity improvements as far as I know.

Hang on, the existence of the saveLayer is not necessarily about fidelity. Destructive blend modes will be "caught" by the saveLayer and will not be passed on to the layer below. While the original benefit of using the save layer was to prevent overdraw of AA edges, that doesn't mean that removing it will have no effect on rendering.


Multi GPU on single images

Using the binary is possible to enable multi GPU support for single images? Or this option is only available when selecting a directory?
When I tested with gpu-id: 0,1 upsacaling a single image only one GPU was being used.
OS: Windows.

Not possible


Composer files are duplicated inside jballerina tools

While extracting jballerina-tools-zip, it asks confirmation on replacing some files. See above screenshot.

Fixed with https://github.com/ballerina-platform/ballerina-lang/pull/15972


error: Could not find suitable distribution for Requirement.parse('nose==0.11.3')

Hello, when I execute make occur this error:
--- Installing development tool: nose[0.11.3]
/export/projects/hue/build/env/bin/python2.7 /export/projects/hue/build/env/bin/easy_install -f http://archive.cloudera.com/desktop-sdk-python-packages/
-H pypi.python.org,archive.cloudera.com -qq nose==0.11.3
Download error on http://archive.cloudera.com/desktop-sdk-python-packages/: [Errno 110] Connection timed out -- Some packages may not be found!
Download error on https://pypi.python.org/simple/nose/: [Errno 101] Network is unreachable -- Some packages may not be found!
Couldn't find index page for 'nose' (maybe misspelled?)
Download error on https://pypi.python.org/simple/: [Errno 101] Network is unreachable -- Some packages may not be found!
No local packages or working download links found for nose==0.11.3
error: Could not find suitable distribution for Requirement.parse('nose==0.11.3')
make[2]: *** [nose[0.11.3]] Error 1
make[2]: Leaving directory /export/projects/hue/desktop' make[1]: *** [/export/projects/hue/build/.devtools] Error 2 make[1]: Leaving directory /export/projects/hue/desktop'
make: *** [desktop] Error 2
then I tried
$ pip download -d ./python nose==0.11.3
Collecting nose==0.11.3
Could not find a version that satisfies the requirement nose==0.11.3 (from versions: 1.0.0, 1.1.0, 1.1.1, 1.1.2, 1.2.0, 1.2.1, 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.6, 1.3.7)
No matching distribution found for nose==0.11.3
but this version nose==0.11.3 has been old fashion, has other solution to resolve this?
thank you!

Thanks all, I have found the package from http://archive.cloudera.com/desktop-sdk-python-packages/ and install it with pip.


Camera Colors

Hello, I tried to clone your repo and run it and I seem to run into a problem when pressing scan. Colors seems off (for example red color turns into blue). I'm gonna attach a picture so you can get an understanding.

Maybe you could instruct me how to fix this problem. Thanks in advance!

The app is very sensible to light conditions, as written in the instructions. I see that the image of your camera seems to be kinda blue, so maybe try to use another phone if you can, or else try to use a red light to contrast the blue effect maybe?
Basically the app does a mean value of the RGB value of all the pixels inside each square, so that's why it recognizes it as blue instead of red (for example) even if the image is slightly more blue due to light conditions or problems in the camera. I don't know if it's a software problem, but it works kinda well on multiple phones I've tried it on.


Upgraded to the latest pFUnit

NOTE: The tests are failing because r-test dev branch is required. On my computer they seem to work (except the ones using aerodyn_inflow_library, see below)
Feature or improvement description
Now the latest version of pFUnit is considered, which allows to use Python >= 3.12
Impacted areas of the software
The tests framework
Additional supporting information
You are using a 10 years old pFUnit.
Test results, if applicable
The following tests FAILED:
         72 - py_ad_5MW_OC4Semi_WSt_WavesWN (Failed)
         73 - py_ad_B1n2_OLAF (Failed)
        102 - py_hd_5MW_OC4Semi_WSt_WavesWN (Failed)
        122 - py_ifw_turbsimff (Failed)
        133 - py_md_5MW_OC4Semi (Failed)

The error is always ModuleNotFoundError: No module named 'aerodyn_inflow_library'

@sanguinariojoe We really appreciate your pull request to update pFUnit so that it works with Python 3.12. However, we've been planning to move the unit testing to test-drive and remove the dependency on pFUnit. test-drive is fully Fortran based and doesn't use Python to generate the tests, which makes it simpler to add and debug unit tests. I expect the PR for the conversion to test-drive to be submitted and merged into dev within a couple of days. So, I'll leave this PR open until that gets merged and tested a bit. If test-drive doesn't work out, I'll  be happy to merge your PR.

@sanguinariojoe The test-drive based unit test PR has been approved and merged (#2276). Closing this PR since we won't be using pFUnit going forward. Thanks again for your efforts in submitting this PR.

Nice!
On Mon, 24 Jun 2024, 18:12 Derek Slaughter, @.***>
wrote:

@sanguinariojoe https://github.com/sanguinariojoe The test-drive based
unit test PR has been approved and merged (#2276
https://github.com/OpenFAST/openfast/pull/2276). Closing this PR since
we won't be using pFUnit going forward. Thanks again for your efforts in
submitting this PR.
—
Reply to this email directly, view it on GitHub
https://github.com/OpenFAST/openfast/pull/2273#issuecomment-2186931840,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAMXKKBONVVPCO6CKZCLWRDZJBAOFAVCNFSM6AAAAABJRSZSZCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBWHEZTCOBUGA
.
You are receiving this because you were mentioned.Message ID:
@.***>


Add test Verify That The Operator Pod Does Not Get Stuck After Upgrade

Signed-off-by: Pablo Felix Estevez Pico<EMAIL_ADDRESS>

https://opendatascience-jenkins-csb-rhods.apps.ocp-c1.prod.psi.redhat.com/job/rhods-ci-pr-test/1049/


Want to write a class member variable and a struct variable ( this structure is inside the class) to the json file

I have a class and inside that class i have a struct, now i want to write the class variable "name" and the structure member "a" in the json file but i am not able to do so, can you please help me with the problem. :-
(Using same code as of your example -> simple_meta_info_class.cpp -> https://gist.github.com/eliasdaler/213d42051958ae21185adbc7edbff915)
My Code snipet ->
class ABC
{
public:
struct ex
{
public:
int a;
};
static void registerclass()
{
ClassMetaInfo::registerMember("name", &ABC::name);
ClassMetaInfo::registerMember("int a ", &ex::a);
}
std::string name;
ex var = { };
        };

        ABC::registerclass();
        ABC p;
       p.name = "JOHN";
        json j = ClassMetaInfo<ABC>::deserialize(p);

json file output :-
{
"name": "JOHN"
}
By the above code i am getting the class variable "name" written in the json file but cannot see the structure variable "a" in the json file.
I have tried to put the registerclass() method inside the structure also but still i am not getting the stucture variable "a" written in my json file
(I want to write both the class variable and the structure variable in the json file, as per the above example i am expecting something like :-
{
"name": "JOHN"
" int a" : 32
}
to be the json output
)
Can you please help me regarding the issue
(Compiling on a windows machine in visual studio 2017)

Actually i am referring this code -> https://gist.github.com/eliasdaler/213d42051958ae21185adbc7edbff915
and in place of ->
struct Person {
std::string name;
int age;
}; in the code as in the link above, i am having this scenario ( nested structure)->
struct second
{
int secondID;
};
struct Person {
public:
int firstID;
second objsec;
};
( I have changed only the structure from the link given above to a nested structure )
Now i want my output to be something like this ->
{
"firstID": 2
"secondID": 3
}

Hello.
First of all, in your first example ABC::ex is a just type which needs to be registered to be serializable. It's not a part of ABC. Unless you store ABC::ex in ABC, there'll be no object to serialize.
So, here's one thing you can do:
struct ABC {
    struct ex {
        int a;
   }

   ex b;
}

Now you can do this:
template <>
inline auto registerMembers<ABC>()
{
    return members(
        member("b", &ABC::b)
    );
}

template <>
inline auto registerMembers<ABC::ex>()
{
    return members(
        member("a", &ABC::ex::a)
    );
}

And you'll get a JSON like this:
{
    "b" : {
        "a" : 50
    }
}

Now, suppose you want to get this instead (no "inner" level)
{
    "a" : 50
}

This is possible too! But you'll have to do this instead
struct ABC {
    struct ex {
        int a;
   }

   int getA() const { return b.a; }

   ex b;
}

And then...
template <>
inline auto registerMembers<ABC>()
{
    return members(
        member("a", &ABC::getA)
    );
}

And this will give you a flat structure you probably want.
This makes me think that adding support of lambda functions for getters/setters would be very useful as it will allow you to do something like:
template <>
inline auto registerMembers<ABC>()
{
    return members(
        member("a", [](const ABC& obj) { return obj.b.a; })
    );
}

and not have to introduce additional getters/setters to your types. I'll see what I can do. :)

Hello. So, here's what you can do:
struct second
{
    int secondID;
};

struct Person {
public:
    int firstID;
    second objsec;

    int getSecondId() const { return objsec.secondId; }
};

namespace meta
{

template <>
inline auto registerMembers<Person>()
{
    return members(
        member("firstID", &Person::firstId),
        member("secondID", &Person::getSecondId)
    );
}

}

Note that you'll need to add a getter for the secondID, otherwise this won't work (but this approach would also work for you first example where you have an inner class).
This makes me think that supporting lambda/free functions for getters/setters would be pretty cool, so that you'll be able to do just this:
template <>
inline auto registerMembers<Person>()
{
    return members(
        member("firstID", &Person::firstId),
        member("secondID", [](const Person& p) { return p.objsec.secondId;})
    );
}

without having to add a getter to Person. I'll try to implement it. :)


How do I set vcpkg cli to use Visual Studio generator to avoid ninja build errors?

In the Visual Studio docs - https://docs.microsoft.com/en-us/cpp/build/customize-cmake-settings?view=msvc-160 setting Visual Studio generator is described.
However, its not so clear what I need to do from vcpkg cli. vcpkg_configure_cmake.cmake and vcpkg_build_cmake.cmake have entries related to the generator. How do I use the latest Visual Studio as generator ?

@zcream, AFAIK, this is no way to pass the option in cli, however, you can remove 'PREFER_NINJA' from portfile.cmake, it will msbuild to build the project..


Remove banana and adam-test

Both banana and adam-test are no longer necessary and were used by me to test things. Creating this to track their removal for cleanup purposes.
Adding @jstidd as a watcher.

Removing applications apparently doesn't regenerate the index.yaml file automatically. So made the following manual commit: https://github.com/slateci/slate-catalog-incubator/commit/6fc306dcccc239ece4cdd38e588997606e09a54f.

Also apparently needed to manually remove the related GitHub releases.


Inconsistency of challenge's description

Challenge Name

https://www.freecodecamp.com/challenges/declare-javascript-variables#?solution=
%2F%2F Example
var ourName%3B

%2F%2F Define myName below this line

Issue Description

In computer science, data is anything that is meaningful to the computer.
JavaScript provides seven different data types which are
undefined, null, Boolean, string, symbol, number, and object.

Quote above is challenge's description.
Only boolean use UpperCase 'Boolean' but other data types are not.
It's better to use lowercase for consistency.

cc/ @FreeCodeCamp/issue-moderators Should we have all data types as Title Case or Lowercase?

I am almost tempted to close this as bikeshedding, but that's just me.

I was thinking all title case. MDN talks about objects with title case. @raisedadead I can see this as bikeshedding as well but I like consistency 😄  Plus, this isn't too difficult of a change. But that's just me 😄

@erictleung @raisedadead Title Case it is! PR incoming...

Note that "undefined" and "null" should not be capitalized.  If you capitalize them in code it will break.

@SaintPeter thanks for that! I'll submit a PR asap ;)


Enable transfer_write flattening for LLVMCPU

On the example of #12294, we want to flatten the transfer_write of vector<8x1xi32>:
vector.transfer_write %8, %subview_3[%c0, %c0, %c0, %c0] {in_bounds = [true, true]} : vector<8x1xi32>, memref<1x1x8x1xi32, strided<[2073600, 1920, 1, 1], offset: ?>>

into transfer_write of vector<8xi32>:
%collapse_shape = memref.collapse_shape %subview_3 [[0], [1], [2, 3]] : memref<1x1x8x1xi32, strided<[2073600, 1920, 1, 1], offset: ?>> into memref<1x1x8xi32, strided<[2073600, 1920, 1], offset: ?>>
%9 = vector.shape_cast %8 : vector<8x1xi32> to vector<8xi32>
%subview_4 = memref.subview %collapse_shape[0, 0, 0] [1, 1, 8] [1, 1, 1] : memref<1x1x8xi32, strided<[2073600, 1920, 1], offset: ?>> to memref<8xi32, affine_map<(d0)[s0] -> (d0 + s0)>>
vector.transfer_write %9, %subview_4[%c0] {in_bounds = [true]} : vector<8xi32>, memref<8xi32, affine_map<(d0)[s0] -> (d0 + s0)>>

It will allow LLVMCPUVectorLowering to create a single contiguous 8xi32 store instead of multiple 1xi32 stores. The later one results in worse performance.
This transform can be done by FlattenContiguousRowMajorTransferWritePattern in OptimizeVectorTransferPass. But it currently only works on memref not tensor, so we need to run the pass again after the bufferization.
IMO it makes sense to run OptimizeVectorTransferPass after the bufferization since the optimizations like FlattenContiguousRowMajorTransferWritePattern need to check contiguous memory accesses. But some canonicalizations in OptimizeVectorTransferPass also help eliminate transfer_read/write to avoid stack allocation during the bufferization. So the simple fix is to run the pass before and after the bufferization. LMKWYT

Looks like there is a dispatch size regression on RISC-V. I'll check if it impacts the performance.

Nice improvement!

Looks like there is a dispatch size regression on RISC-V. I'll check if it impacts the performance.

It would be good to understand why the size goes up. It should be the other way around unless we are missing a corner case...

There is a 20% regression on PersonDetect on RISC-V. I'm still finding the root cause.

You can also avoid the flattening for Riscv, and tag this issue on it

Are shuffle ops from transpose-like ops? They are vector<256xi32> types. I have a WIP PR that can lowers 16x16 vector into a sequence of shuffle ops, which has less length of shuffle vector but more shuffle ops. @dcaballe , will that help?

Are shuffle ops from transpose-like ops? They are vector<256xi32> types. I have a WIP PR that can lowers 16x16 vector into a sequence of shuffle ops, which has less length of shuffle vector but more shuffle ops. @dcaballe , will that help?

Those shuffles come from vector.shape_cast:
    %subview_2 = memref.subview %subview_1[0, 0, 0, 0] [1, 1, 8, 32] [1, 1, 1, 1] : memref<1x1x8x32xi32, strided<[18432, 768, 32, 1], offset: ?>> to memref<8x32xi32, affine_map<(d0, d1)[s0] -> (d0 * 32 + d1 + s0)>>
    %collapse_shape = memref.collapse_shape %subview_2 [[0, 1]] : memref<8x32xi32, affine_map<(d0, d1)[s0] -> (d0 * 32 + d1 + s0)>> into memref<256xi32, strided<[1], offset: ?>>
    %8 = vector.shape_cast %7 : vector<8x32xi32> to vector<256xi32>
    vector.transfer_write %8, %collapse_shape[%c0] {in_bounds = [true]} : vector<256xi32>, memref<256xi32, strided<[1], offset: ?>>

which is lowered into many vector.insert_strided_slice:
    %subview_4 = memref.subview %subview_3[0, 0, 0, 0] [1, 1, 8, 32] [1, 1, 1, 1] : memref<1x1x8x32xi32, strided<[18432, 768, 32, 1], offset: ?>> to memref<8x32xi32, affine_map<(d0, d1)[s0] -> (d0 * 32 + d1 + s0)>>
    %collapse_shape = memref.collapse_shape %subview_4 [[0, 1]] : memref<8x32xi32, affine_map<(d0, d1)[s0] -> (d0 * 32 + d1 + s0)>> into memref<256xi32, strided<[1], offset: ?>>
    %7 = vector.extract %6[0, 0] : vector<1x8x32xi32>
    %8 = vector.insert_strided_slice %7, %cst_0 {offsets = [0], strides = [1]} : vector<32xi32> into vector<256xi32>
    %9 = vector.extract %6[0, 1] : vector<1x8x32xi32>
    %10 = vector.insert_strided_slice %9, %8 {offsets = [32], strides = [1]} : vector<32xi32> into vector<256xi32>
    %11 = vector.extract %6[0, 2] : vector<1x8x32xi32>
    %12 = vector.insert_strided_slice %11, %10 {offsets = [64], strides = [1]} : vector<32xi32> into vector<256xi32>
    %13 = vector.extract %6[0, 3] : vector<1x8x32xi32>
    %14 = vector.insert_strided_slice %13, %12 {offsets = [96], strides = [1]} : vector<32xi32> into vector<256xi32>
    %15 = vector.extract %6[0, 4] : vector<1x8x32xi32>
    %16 = vector.insert_strided_slice %15, %14 {offsets = [128], strides = [1]} : vector<32xi32> into vector<256xi32>
    %17 = vector.extract %6[0, 5] : vector<1x8x32xi32>
    %18 = vector.insert_strided_slice %17, %16 {offsets = [160], strides = [1]} : vector<32xi32> into vector<256xi32>
    %19 = vector.extract %6[0, 6] : vector<1x8x32xi32>
    %20 = vector.insert_strided_slice %19, %18 {offsets = [192], strides = [1]} : vector<32xi32> into vector<256xi32>
    %21 = vector.extract %6[0, 7] : vector<1x8x32xi32>
    %22 = vector.insert_strided_slice %21, %20 {offsets = [224], strides = [1]} : vector<32xi32> into vector<256xi32>
    vector.store %22, %collapse_shape[%c0] : memref<256xi32, strided<[1], offset: ?>>, vector<256xi32>

Ouch... This is a big chunk of technical debt that is interfering with multiple scenarios right now: one is this, the other one is the transpose lowering that Hanhan is working on. Unfortunately, there isn't a single root cause. This is what I have identified so far:

OptimizeVectorTransferPass is doing far too many things at once, including removing leading and trailing unit dims but also collapsing non-unit dimensions. Generating a single vector<256xi32> would use 16 vector registers in AVX512 per operation. That doesn't make sense for CPUs (it probably does for GPUs, which is what pass was implemented for). I've been doing some experiments with this. We can try moving the trailing unit dims patterns out of the flatten flag and see what happens. We shouldn't be collapsing the dimensions for CPUs, at least at the same time as removing the unit dimensions.
In this sense, I have some changes to remove unit dims in more cases here.
vector.shape_cast is lowered to a scalar copy is some cases, which is very inefficient. We should try to use vector.broadcast/extract/insert when possible for all the vector lowering patterns.
We should lower the lowering of vector.shape_cast to the very end of the pipeline, as it's sometimes optimized away if we don't lower it too early. Trying to do so here (https://github.com/dcaballe/iree/commit/40819666de12e753d421b81e64875c8799ad81a8).

@pzread, do you think you could give it a try at only removing the unit dims without collapsing the dimensions to see what happens?

Ouch... This is a big chunk of technical debt that is interfering with multiple scenarios right now: one is this, the other one is the transpose lowering that Hanhan is working on. Unfortunately, there isn't a single root cause. This is what I have identified so far:

OptimizeVectorTransferPass is doing far too many things at once, including removing leading and trailing unit dims but also collapsing non-unit dimensions. Generating a single vector<256xi32> would use 16 vector registers in AVX512 per operation. That doesn't make sense for CPUs (it probably does for GPUs, which is what pass was implemented for). I've been doing some experiments with this. We can try moving the trailing unit dims patterns out of the flatten flag and see what happens. We shouldn't be collapsing the dimensions for CPUs, at least at the same time as removing the unit dimensions.
In this sense, I have some changes to remove unit dims in more cases here.
vector.shape_cast is lowered to a scalar copy is some cases, which is very inefficient. We should try to use vector.broadcast/extract/insert when possible for all the vector lowering patterns.
We should lower the lowering of vector.shape_cast to the very end of the pipeline, as it's sometimes optimized away if we don't lower it too early. Trying to do so here (dcaballe@4081966).

@pzread, do you think you could give it a try at only removing the unit dims without collapsing the dimensions to see what happens?

Only dropping the unit dims with https://github.com/iree-org/iree-llvm-fork/commit/1302177ae913600a3a1fbc2f70fcf219cc431523 works! We retain the improvement and no regressions now.
Are you planning to upstream the LLVM changes? I can wait for it or I can help upstream the code.

Awesome! Yes, I'm working on a few of these small patches today. I'll keep you posted. Thanks a lot for looking into this. At least now we have a better understanding of what is going on here.

@dcaballe Would you mind reviewing this again? SPIR-V has an issue (#14191) with vector.shape_cast generated in this optimization so right now I add an option to disable it there

Fix #12294


[Payment due 3/6][$500]  iOS - Saved Private note field not sticky, page can be scrolled

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

Version Number: 1.4.36
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Launch New Expensify app
Open either #announce room, #admins room or 1:1 conversation
Tap on header to go to details or profile page
Tap on Private notes option
Enter note & save it
Scroll the private notes page (Note: Saved note field not sticky)

Expected Result:
Saved note field should be sticky & should not be able to scroll
Actual Result:
Saved note field should be sticky & should not be able to scroll
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/cf935a7e-b28b-4b33-aa27-6f67be8fef84
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~015ac87fcf9eab0d9e
Upwork Job ID:<PHONE_NUMBER>051189760
Last Price Increase: 2024-02-04
Automatic offers:

situchan | Contributor | 28149495
mkhutornyi | Contributor | 0

We think that this bug might be related to #vip-vsp
CC @quinthar

Proposal
Please re-state the problem that we are trying to solve in this issue.
The private notes are scrollable when there's no need to be scrollable.
What is the root cause of that problem?
We use a ScrollView component
What changes do you think we should make in order to solve the problem?
Use a regular View component
Will be scrollable once the content overflows.
component to replace is here:
https://github.com/Expensify/App/blob/3ab4e6e12d9ff38e69493321f0d31f032481b373/src/pages/PrivateNotes/PrivateNotesListPage.tsx#L92
What alternative solutions did you explore? (Optional)

I think this can be external, low priority, and seems to only be affecting iOS.
@Santhosh-Sellavel feel free to review the proposals.

Unassigning this one due to low bandwidth, please reassign @Christinadobrzyn!

  I am subscribed to most issues/PRs to get full understanding of project status

I think we're reviewing proposals right @situchan?

@Christinadobrzyn to confirm, do you agree with expected behavior: Saved note field should be sticky & should not be able to scroll? This is iOS feature but should be fixed as inconsistent with other platforms?

Hi @situchan yes, I agree this should be the expected behaviour

Saved note field should be sticky & should not be able to scroll

@Christinadobrzyn thanks.
In that case, @mkhutornyi's proposal looks good to me.
🎀 👀 🎀 C+ reviewed

PR is in staging - https://github.com/Expensify/App/pull/36772

PR was deployed to production on Feb 28

Payouts due:
Contributor: $500 @mkhutornyi (paid in Upwork)
Contributor+: $500 @situchan (paid in Upwork)
Upwork job is here.
Do we need a regression test for this @situchan?

No need regression test as reported by QA team and issue is minor enough

Awesome - thanks for conifrming @situchan! Closing this!


Possibility to reset row class or assign a different value instead of adding a new one

Describe the bug
I can't figure out how to define form elements without a spacing between them. By default, "mb-3" is added to all divs containing an input element. Setting 'row_class' => 'mb-0' won't have any effect, because it will be added to the row classes resulting in "mb-3 mb-0".
Am I overseeing something or is this actually an issue?
To Reproduce
        $this->add([
            'name' => 'username',
            'options' => [
                 'row_class' => 'mb-0',
           ],
            'attributes' => [
                'placeholder' => 'Username',
                'class' => 'input-lg',
            ],
            'required' => true,
        ]);

Expected behavior
Is there a way (or is it actually missing?) to reset the default row class and set it to another value?
Context

Version: 6.0.1

@oliver681 I've added some explanation on this behavior, you can disable it by using the element option "row_spacing_class" (https://neilime.github.io/twbs-helper-module/docs/configuration/)
You can see an example in this test: https://github.com/neilime/twbs-helper-module/blob/9173270b9aa56f433ad5943a39773e065eac8e93/tests/TestSuite/TwbsHelper/Form/View/Helper/FormRowTest.php#L36


docs: how to use Vitamin libraries in README

Subject
We need to have a good documentation about "How to use" in README files.

See #39

See #39


Return true if page found

To help with those calling the get_metacritic_page() function, have it return true if it finds the page.

metacritic returns 200 even with 404....

Too bad, thanks for your pr nevertheless


Opened Ballerina files on Ballerina editor (graphical view) cannot be reordered.

 Issue by Sewmi
Saturday Feb 18, 2017 at 05:35 GMT
Originally opened as https://github.com/ballerina-lang/composer/issues/835

Ballerina files that are opened in Ballerina editor  (graphical view) cannot be reordered as user preferred.

 Comment by dakshika
Thursday Jul 06, 2017 at 05:13 GMT

this will be get fixed after the golden layout implementation

 Comment by dakshika
Tuesday Oct 24, 2017 at 11:15 GMT

We have dropped golden layout. hence issue still valid

This issue is still valid

Composer is discontinued hence closing the issue.


Add span id

So it is easier to find it inside data

Not so easy as it needs to be kept consistent throughout snapshots


Feature apidoc, fix events and observable properties

id and style are not observable, and so, don't trigger change:id and change:style events, but just a change event

Interesting. It looks like geometry is also not observable.

geometry is observable, but only geometryName  is 'geometry'

Ah, I see now that setGeometryName() updates the object listener for the geometry name. So the geometry is observable.


Pull out icon sprite

Fixes #9811
Fix summary

Pulled out the inline script loadiconSprite to it's own typescript file and made sure it had the correct types
Created a entrypoint file called icons.js that gets the currentScript of the icon-sprite and also gets the iconSprite DOM which is passed as arguments to the initIconSprite function.
Tested on the wagtail bakerydemo site in normal browser mode

Tested on incognito mode

Couldn't test on storybook because od=f storybook error

I closed this because I mistakenly created the branch off initSkipLink not main


SAI-4401: Experimental DocCollection Refactoring

Experimental changes to see efforts involved to extract the PRS supplier out from DocCollection to keep DocCollection immutable. Some background in https://fullstory.atlassian.net/browse/SAI-4401
Pros:

When DocCollection is fully immutable, the existing Solr logic calling it (and making such assumption) could have easier handling (less concern with state changes that induces race conditions etc)
Keep DocCollection logic simple as a pure container that simply assign the provided values into itself, this avoid unexpected ZK operations/fetches that trigger unexpected exceptions for caller
No longer need to worry about copy operations (such as DocCollection.copyWithSlices) would re-fetch PRS entries (since DocCollection no longer fetches anything). We might not need to add extra lazy loading to PRS as re-fetch might not be a concern anymore

This is fully just quick exploratory work to see if a modified flow would still work. I have not really done any testings yet. Really simple ZkStateWriter and ZkStateReader tests did pass.
Will run ./gradlew check and i do expect seeing some failures 😓
Be nice to get some thoughts from everyone though, especially @chatman  and @noblepaul . Many thanks!! 😊

@patsonluk .
good initiative. I'm reviewing this . Is it a better idea to do this PR on the upstream so that we get wider audience?

Honestly, I think this will be a regression. We recently changed the PRS behaviour to not alter the Objects in DocCollection. Imagine a cluster restart where there are 1000's of PRS change ops happening on each node and each node reconstructing the DocCollection objects


Show profile icon in bottom bar of web and miscellaneous minor fixes

On current version of web, when width of browser is narrow, bottom bar is shown as follows:
<Light, user profile not selected>

<Light, user profile selected>

<Dark, user profile not selected>

<Dark, user profile selected>

User profile icon is not shown on the bottom bar on the web version although shown on the iOS / Android version. Thus user cannot recognize current account by the profile icon.
I have implemented that user profile is shown on the web version same as iOS / Android version as follows:
<Light, user profile not selected>

<Light, user profile selected>

<Dark, user profile not selected>

<Dark, user profile selected>

Along with this fix, some additional fix has been applied as follows:

I have changed the border width when a user profile is selected from 1px to 2px. This is because border do not display correctly in lower resolution environments (ex. low-end smartphones and 96dpi PCs). This change has been applied both web (BottomBarWeb.tsx) and app (BottomBar.tsx) version of bottom bar.

In current version, top style setting in BottomBarStyles.tsx is not applied correctly to each <Icon> in BottomBarWeb.tsx. Because <Icon> is rendered to <svg> on the web page, and top style setting to <svg> is ignored. To fix this, I have wrapped each <Icon> with <View> and apply style to the <View>.

Redundant nested {hasSession ... clause in BottomBarWeb function in BottomBarWeb.tsx has been deleted.

Behavior that height of bottom bar vary slightly by selecting icon buttons has been observerd in some environment (ex. my Lenovo IdeaPad Duet Chromebook). To fix it, height of bottom bar has been specified explicitly with bottomBarWeb in BottomBarStyles.tsx.
-> As a result of fine tune, explicit definition of height is not needed now.

[Note] Please review and confirm this modification based on these points:

I have confirmed this modification on Web (PC), Android (real device) and iOS (simulator). I cannot confirm on real iOS device because I do not own it.
I have confirmed by using my personal Bluesky account, but I cannot confirm by using labeler account.

By the fix https://github.com/bluesky-social/social-app/pull/3351/commits/553c892a15f91d6714aef2e2c90aafa79ace1c8f , size of profile icon become  not changed between selected or not. Refer the following GIF animations:

【Before fix】

【After fix】

By the fix https://github.com/bluesky-social/social-app/pull/3351/commits/ef9e2b16dc3f8a611562900ad0cd5ea9a59636e8 , height of profile icon on web is limited by ctrlIconSizingWrapper, same as app. This fix make the explicit definition of bottom bar height not needed now.

I have resolved conflict with current main branch and register new PR https://github.com/bluesky-social/social-app/pull/3422 .


Restructured UTs of express-commons, models, PM and PS

Pull Request Test Coverage Report for Build 4713

0 of 0   changed or added relevant lines in 0 files are covered.
268 unchanged lines in 12 files lost coverage.
Overall coverage decreased (-2.7%) to 86.579%

Files with Coverage Reduction
New Missed Lines
%

core/models/src/catalog.js
1
95.0%

core/provisioner-services/src/BaseDirectorService.js
1
87.5%

data-access-layer/cf/src/UaaClient.js
2
91.3%

data-access-layer/iaas/src/BackupStore.js
2
89.59%

core/platform-managers/src/BasePlatformManager.js
3
58.62%

data-access-layer/bosh/src/BoshDirectorClient.js
4
79.67%

core/express-commons/src/middleware/index.js
5
89.17%

core/models/src/Plan.js
6
64.29%

core/utils/src/errors.js
6
93.83%

data-access-layer/service-agent/src/Agent.js
7
84.21%

Totals

Change from base Build 4711:
-2.7%

Covered Lines:
9132

Relevant Lines:
10167

💛  - Coveralls


racket-ahowden27

My program creates an important item from one of my favorite sports - a tennis racket! In the first few lines of code, there are variables that can be changed, including the amount of strings on the racket, the size of the racket, and the angle that the racket is displayed.
The coding experience was really fun, althought it took quite a few iterations before I figured out how to get the strings to not extend past the edge of the racket. It's always a great experience learning new syntax, and I definitely want to see what else I can make with the machine. Thank you for giving us this opportunity, it definitely gave me the break from schoolwork that I needed!

Thanks for the submission. Do you think you could add some thickness to the strings in the racket and make it look like they are woven together?

Definitely, I will work on that!

I made the revisions, but can't figure out how to commit the new screenshots so I just dropped them in the description... let me know if I should make a new PR if you need the images that way.


Upload script generator task

This is a rough spike but I wanted to go ahead and create the PR in the hopes to start the conversation.  I borrowed some of this from generators for phoenix.  Please feel free to comment on anything here I plan to do some refactoring to the task and extract a few functions so that its not so procedural.
One question that's on my mind presently is that I'm wondering how much of the file can be interpolated using prompts when generating the file instead of relying on environment variables.  I'm using eex templates so we should be able to prompt for values and interpolate them into the script if that's desirable.
Secondary question, I verbatim copied upload.sh into the priv/templates obviously I don't think having this duplication will work long run, if this gets merged in, will there be any advantage to leaving the original upload script in place at the project root or should we drop it?
Thanks, looking forward to feedback!

Cool. Thanks!
Regarding the first question on replacing the environment variables, I'm leaning on keeping the environment variables since I know of a few projects where people switch between boards and triggering off environment variables is convenient.
Regarding the second question, when this gets merged in, I'm going to delete the upload.sh in the root directory. Or feel free to update the PR to delete it. If I don't do this, I'll certainly have one get out of date.
One thing that would be good is to update the README.md with the new way of downloading upload.sh. Could you add something short?

@fhunleth thanks for the feedback.  I've updated the PR and squashed into a single commit.  Let me know if there's anything else needed for this.  If there are values that you think would be good to prompt for I can add those but per your earlier feedback I've mostly left the script in tact except that its now an eex template, hopefully thats ok.

Looks good. Assuming no issues with using File.chmod!/2, I'll merge after class today. Thanks!

@fhunleth I've updated per your comments.  Also, I was going to write some tests for this but having trouble actually running mix test, and seeing an error: failed to start child: Nerves.Runtime.Kernel.UEvent  how are you running these?  It must be magic ✨ !  😄    Perhaps an update to the readme for developers who want to contribute would be helpful.  I can add that to another PR if you can give me some advice or maybe the test is overkill? Thanks!

Merged!
Also, I added a bug regarding the unit testing issue. See https://github.com/nerves-project/nerves_runtime/issues/34. A unit test for the generator would be nice, but I didn't want to hold up merging this feature especially with the OSX uevent issue. If you have easy access to Linux, then you won't see the problem, but no worries if not.


Bug: Line numbers disappear when a large block of code is pasted

Lexical version: 0.3.5
Steps To Reproduce

Visit playground and create a new code block
Paste a large block of code (ex. from https://raw.githubusercontent.com/facebook/lexical/main/packages/lexical-playground/src/themes/PlaygroundEditorTheme.css)

The current behavior
The line numbers disappear at the end of the block
The expected behavior
The line number should be present over the entire node

This is still in Lexical version: 0.5.0 (which is currently deployed on playground

The gutter-numbers have the same length as the children of the CodeNode. But if the line is very long (without a linebreak), a single CodeHighlightNode can take 2 lines in view.
Any ideas how to fix this? :)

We plan on rewriting the code node in the future. So closing this for now.


Errors From Board Button:

When we click on the board button, nothing happens but we see the following error:

captured_trace.js:487 Unhandled rejection Error: Failed to read the 'localStorage' property from 'Window': Access is denied for this document. at https://conjoint-ly.github.io/trello-pivot/connector.1bf5abe3.js:2:1615

We test in an incognito window. But we expect that the Power-Up to work without access to localStorage.

We should check: if localStorage is not available, then we should use sessionStorage.
Test in Edge, Firefox, Chrome when incognito.

We don't need storage anymore, it's better to load fresh data on modal show


demo flash on chrome version higher than 69 on macOS

Demo flash with chrome version higher than 69 on macOS
Safari no problem.
Chrome which version is 68.0.3440.106 (64 bit) on windows no problem.
Chrome which version is 69.0.3497.100 (64 bit) on windows no problem
Just happened with chrome which version is 69.0.3497.100 (64 bit) on macOS

Are you seeing the same behavior described here?
https://groups.google.com/d/msg/cesium-dev/DJIM7QX8k8E/tHR1cHOkBQAJ
If so, I think the conclusion there was it's a Chrome bug:
https://bugs.chromium.org/p/chromium/issues/detail?id=784030&q=webgl flickering&colspec=ID Pri M Stars ReleaseBlock Component Status Owner Summary OS Modified

@vipcxj I'm going to close this since it sounds like the Chrome bug @OmarShehata linked to above.  If it turns out to be a different problem, let us know and we'll reopen your issue.  Thanks!

Congratulations on closing the issue! I found these Cesium forum links in the comments above:
https://groups.google.com/d/msg/cesium-dev/DJIM7QX8k8E/tHR1cHOkBQAJ
If this issue affects any of these threads, please post a comment like the following:

The issue at https://github.com/AnalyticalGraphicsInc/cesium/issues/7058 has just been closed and may resolve your issue. Look for the change in the next stable release of Cesium or get it now in the master branch on GitHub https://github.com/AnalyticalGraphicsInc/cesium.

I am a bot who helps you make Cesium awesome! Contributions to my configuration are welcome.
:earth_africa: :earth_americas: :earth_asia:


Limited compatibility with spongeforge

Tested with:
Valkyrien Skies Control 1.0.1
Valkyrien Skies 1.0.0
Valkyrien Skies World 1.0.0
forge-1.12.2-<IP_ADDRESS>38
spongeforge-1.12.2-2838-7.3.0
*no other mods or sponge plugins are installed
the ship can be assembled and controled by usinng captain chair normally
but other blocks include the compressor, engines, and even stabilizer and compacted valkyrium, are no longer affect to the ship except they have already activated before assemble ship.
also, all blocks placed after assemble ship will disappear when disassemble ship.
and in F3+B view, the weight of the airship will not changed by place or break blocks after assemble ship
I think it is some problem that relating to update.
a part from this, it will cause an error when performing /help
(the server will not be crushed)

help
[21:19:38] [Server thread/INFO] [minecraft/DedicatedServer]: Error occurred while executing command: net/minecraft/client/multiplayer/WorldClient
[21:19:38] [Server thread/ERROR] [Sponge]: Error occurred while executing command 'help' for source DedicatedServer: net/minecraft/client/multiplayer/WorldClient
java.lang.NoClassDefFoundError: net/minecraft/client/multiplayer/WorldClient
at java.lang.Class.getDeclaredConstructors0(Native Method) ~[?:1.8.0_261]
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) ~[?:1.8.0_261]
at java.lang.Class.getConstructor0(Unknown Source) ~[?:1.8.0_261]
at java.lang.Class.getDeclaredConstructor(Unknown Source) ~[?:1.8.0_261]
at org.valkyrienskies.mod.common.command.framework.VSCommandFactory.create(VSCommandFactory.java:24) ~[VSCommandFactory.class:?]
at picocli.CommandLine$Model$CommandReflection.initSubcommands(CommandLine.java:9585) ~[CommandLine$Model$CommandReflection.class:?]
at picocli.CommandLine$Model$CommandReflection.extractCommandSpec(CommandLine.java:9521) ~[CommandLine$Model$CommandReflection.class:?]
at picocli.CommandLine$Model$CommandSpec.forAnnotatedObject(CommandLine.java:5116) ~[CommandLine$Model$CommandSpec.class:?]
at picocli.CommandLine.(CommandLine.java:223) ~[CommandLine.class:?]
at org.valkyrienskies.mod.common.command.framework.VSCommandBase.func_71518_a(VSCommandBase.java:93) ~[VSCommandBase.class:?]
at org.spongepowered.common.command.MinecraftCommandWrapper.getHelp(MinecraftCommandWrapper.java:204) ~[MinecraftCommandWrapper.class:1.12.2-2838-7.3.0]
at org.spongepowered.common.command.MinecraftCommandWrapper.getShortDescription(MinecraftCommandWrapper.java:199) ~[MinecraftCommandWrapper.class:1.12.2-2838-7.3.0]
at org.spongepowered.common.command.SpongeCommandFactory.createDescription(SpongeCommandFactory.java:1089) ~[SpongeCommandFactory.class:1.12.2-2838-7.3.0]
at org.spongepowered.common.command.SpongeCommandFactory.lambda$null$28(SpongeCommandFactory.java:926) ~[SpongeCommandFactory.class:1.12.2-2838-7.3.0]
at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:1.8.0_261]
at java.util.TreeMap$KeySpliterator.forEachRemaining(Unknown Source) ~[?:1.8.0_261]
at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:1.8.0_261]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:1.8.0_261]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:1.8.0_261]
at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:1.8.0_261]
at java.util.stream.ReferencePipeline.collect(Unknown Source) ~[?:1.8.0_261]
at org.spongepowered.common.command.SpongeCommandFactory.lambda$createHelpCommand$29(SpongeCommandFactory.java:926) ~[SpongeCommandFactory.class:1.12.2-2838-7.3.0]
at org.spongepowered.api.command.spec.CommandSpec.process(CommandSpec.java:388) ~[CommandSpec.class:1.12.2-2838-7.3.0]
at org.spongepowered.common.command.SpongeCommandDispatcher.process(SpongeCommandDispatcher.java:355) ~[SpongeCommandDispatcher.class:1.12.2-2838-7.3.0]
at org.spongepowered.common.command.SpongeCommandManager.process(SpongeCommandManager.java:360) [SpongeCommandManager.class:1.12.2-2838-7.3.0]
at net.minecraft.command.ServerCommandManager.func_71556_a(SourceFile:665) [dh.class:?]
at net.minecraft.server.dedicated.DedicatedServer.func_71333_ah(DedicatedServer.java:433) [nz.class:?]
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:398) [nz.class:?]
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) [MinecraftServer.class:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_261]
Caused by: java.lang.ClassNotFoundException: net.minecraft.client.multiplayer.WorldClient
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:101) ~[launchwrapper-1.12.jar:?]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_261]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_261]
... 31 more

Yeah, happens to me too. Also it looks like vs can't notice sponge:
[16:53:56] [main/WARN] [FML]: ****************************************
[16:53:56] [main/WARN] [FML]: * Not applyingorg.valkyrienskies.mixin.spongepowered.common.network.MixinPacketUtil because Sponge isn't loaded!
[16:53:56] [main/WARN] [FML]: *  at org.valkyrienskies.mod.common.MixinLoadManager.shouldApplyMixin(MixinLoadManager.java:40)
[16:53:56] [main/WARN] [FML]: *  at org.spongepowered.asm.mixin.transformer.PluginHandle.shouldApplyMixin(PluginHandle.java:132)
[16:53:56] [main/WARN] [FML]: *  at org.spongepowered.asm.mixin.transformer.MixinInfo.shouldApplyMixin(MixinInfo.java:977)
[16:53:56] [main/WARN] [FML]: *  at org.spongepowered.asm.mixin.transformer.MixinInfo.readDeclaredTargets(MixinInfo.java:942)
[16:53:56] [main/WARN] [FML]: *  at org.spongepowered.asm.mixin.transformer.MixinInfo.<init>(MixinInfo.java:871)
[16:53:56] [main/WARN] [FML]: *  at org.spongepowered.asm.mixin.transformer.MixinConfig.prepareMixins(MixinConfig.java:713)...
[16:53:56] [main/WARN] [FML]: ****************************************

I also tried to just return true in method that checks for sponge and it didn't help. If I remeber correctly it lead to crash, so problem is probably deeper than that.
It was suggested in discord to downgrade sponge but I wasn't able to find correct version. While spongeVersion = "1.12.2-2825-7.1.6" (whatever it is) mentioned in build.gradle just crashed the game.

in the Valkyrien Skies 1.1.1, causing error when performing /help is fixed. but other problems are still exist

Alright I've fixed this for SpongeForge 1.12.2-2825-7.1.6 in commit ed5f89535f2f572b46a1cdb833e960c676506a1b, so if you want to use sponge use that version. I haven't fixed it yet for the current recommended version, which is SpongeForge 1.12.2-2838-7.2.0.

Alright version 7.3.0 works as of commit febf7d6cd56af3318ae19a188bd599ccfc18d5db.


add installation section to docs

see our last for that section format example: https://github.com/RandomFractals/geo-data-viewer#installation

see: https://github.com/RandomFractals/js-notebook-inspector#installation