[Bug]:   Exception 0x80000003 on Windows shutdown

Version

[X] I'm using version 1.8.1

Known issues

[X] I've checked Known issues

Existing issues

[X] I've checked Existing issues

What operating system are you using?
Windows
Operating System Version
Windows 7 SP1
Reproduction steps

Try to shutdown Windows 7 with Stretchly 1.8.1 installed
Get "unknown software exception" message
Reproduces how often: almost 100% of typical use cases (Stretchly starts with Windows and is only closed upon shutdown after awhile). If you try to shutdown the PC, get the error message, then click 'cancel shutdown' in the 'shutdown pending' overlay, then close the error message, then restart Stretchly and try to shutdown again - then it all goes well.

Expected Behavior
A graceful shutdown in any case.
Actual Behavior
Prevents system shutdown showing an error message "Exception unknown software exception 0x80000003 at 0x41020411.  This started after I updated to v1.8.1.
Relevant log output
Nothing out of the ordinary in the logs:

[2021-12-07 08:17:44.087] [info]  Stretchly: initializing...
[2021-12-07 08:17:44.123] [info]  Stretchly: loading preferences
[2021-12-07 08:17:44.139] [info]  Stretchly: starting Idle time monitoring
[2021-12-07 08:17:44.147] [info]  Stretchly: starting Do Not Disturb monitoring
[2021-12-07 08:47:14.046] [info]  Stretchly: showing Long Break notification
[2021-12-07 08:47:17.273] [info]  Stretchly: got 8 декабря 2021 г., 06:00 GMT+3 as sunrise time for 7 декабря 2021 г., 08:47 GMT+3
[2021-12-07 08:47:17.281] [info]  Stretchly: pausing breaks for 76363000
[2021-12-07 16:08:04.013] [info]  Stretchly: initializing...
[2021-12-07 16:08:04.047] [info]  Stretchly: loading preferences
[2021-12-07 16:08:04.064] [info]  Stretchly: starting Idle time monitoring
[2021-12-07 16:08:04.072] [info]  Stretchly: starting Do Not Disturb monitoring
[2021-12-08 00:17:22.036] [info]  Stretchly: initializing...
[2021-12-08 00:17:22.055] [info]  Stretchly: loading preferences
[2021-12-08 00:17:22.065] [info]  Stretchly: starting Idle time monitoring
[2021-12-08 00:17:22.065] [info]  Stretchly: starting Do Not Disturb monitoring
[2021-12-08 00:46:52.103] [info]  Stretchly: showing Long Break notification
[2021-12-08 00:46:58.142] [info]  Stretchly: got 8 декабря 2021 г., 06:00 GMT+3 as sunrise time for 8 декабря 2021 г., 00:46 GMT+3
[2021-12-08 00:46:58.151] [info]  Stretchly: pausing breaks for 18782000
[2021-12-08 01:11:26.917] [info]  Stretchly: initializing...
[2021-12-08 01:11:26.932] [info]  Stretchly: loading preferences
[2021-12-08 01:11:26.948] [info]  Stretchly: starting Idle time monitoring
[2021-12-08 01:11:26.955] [info]  Stretchly: starting Do Not Disturb monitoring
[2021-12-08 01:21:32.764] [info]  Stretchly: initializing...
[2021-12-08 01:21:32.779] [info]  Stretchly: loading preferences
[2021-12-08 01:21:32.796] [info]  Stretchly: starting Idle time monitoring
[2021-12-08 01:21:32.803] [info]  Stretchly: starting Do Not Disturb monitoring

Preferences
{
	"microbreakDuration": 20000,
	"microbreakInterval": 600000,
	"breakDuration": 300000,
	"breakInterval": 2,
	"breakNotification": true,
	"microbreakNotification": true,
	"breakNotificationInterval": 30000,
	"microbreakNotificationInterval": 10000,
	"microbreak": false,
	"break": true,
	"microbreakStrictMode": false,
	"breakStrictMode": false,
	"morningHour": 6,
	"microbreakPostpone": true,
	"breakPostpone": true,
	"microbreakPostponeTime": 120000,
	"breakPostponeTime": 300000,
	"microbreakPostponesLimit": 1,
	"microbreakPostponableDurationPercent": 30,
	"breakPostponesLimit": 1,
	"breakPostponableDurationPercent": 30,
	"mainColor": "#478484",
	"transparentMode": false,
	"opacity": 0.9,
	"audio": "tic-toc",
	"volume": 1,
	"fullscreen": false,
	"ideas": true,
	"naturalBreaks": true,
	"naturalBreaksInactivityResetTime": 300000,
	"allScreens": false,
	"useIdeasFromSettings": false,
	"language": "ru",
	"notifyNewVersion": true,
	"isFirstRun": false,
	"posLatitude": 0,
	"posLongitude": 0,
	"useMonochromeTrayIcon": false,
	"useMonochromeInvertedTrayIcon": false,
	"silentNotifications": false,
	"monitorDnd": true,
	"microbreakStartSoundPlaying": false,
	"breakStartSoundPlaying": false,
	"themeSource": "system",
	"endBreakShortcut": "CmdOrCtrl+X",
	"breakWindowWidth": 0.85,
	"breakWindowHeight": 0.85,
	"checkNewVersion": true,
	"breakIdeas": [
		{
			"data": [
				"Not alone",
				"Do you find it hard to take a break alone? Try to do it with a co-worker. Aside from making it easier to stick to breaks, you will have a chance to get to know them better. Taking breaks together increases productivity."
			],
			"enabled": true
		},
		{
			"data": [
				"Step away",
				"Do you ever notice how your brain can figure things out by itself? All it takes is to step away from the computer and take a break to think about something totally unrelated."
			],
			"enabled": true
		},
		{
			"data": [
				"Microbreaks",
				"Rest is a key component in ensuring the performance of the musculoskeletal system. Frequent breaks can decrease the duration of a task and help lower the exposure to ergonomic injury risk."
			],
			"enabled": true
		},
		{
			"data": [
				"Meditation",
				"Research studies suggest that mindfulness-based exercises help decrease anxiety, depression, stress, and pain, and help improve general health, mental health, and quality of life. Not sure how to start? There are numerous apps to help you out."
			],
			"enabled": true
		},
		{
			"data": [
				"Blink",
				"Looking at screens for a long time causes you to blink less, thus exposing your eyes to the air. Blink rapidly for a few seconds to refresh the tear film and clear dust from the eye surface."
			],
			"enabled": true
		},
		{
			"data": [
				"Ergonomics",
				"Improper height and angle of the keyboard, mouse, monitor or working surface can cause health problems. Take some time to read about desk ergonomics."
			],
			"enabled": true
		},
		{
			"data": [
				"Move",
				"There are a lot of ways you can exercise within your office. Try marching in place or doing desk push-ups."
			],
			"enabled": true
		},
		{
			"data": [
				"Change",
				"Do you have a stability ball or standing work desk?
			],
			"enabled": true
		},
		{
			"data": [
				"Notice",
				"Are you daydreaming or having trouble focusing? It is a sign that you need to take a break."
			],
			"enabled": true
		},
		{
			"data": [
				"Tech",
				"How about taking a no-tech walk?"
			],
			"enabled": true
		},
		{
			"data": [
				"Metabolism",
				"Emerging research shows that sitting for long periods of time contributes to risk of metabolic syndrome, heart attack and stroke risk and overall death risk, among others. Taking regular walking breaks can help your circulation, working to counteract some of those problems."
			],
			"enabled": true
		},
		{
			"data": [
				"Active Meetings",
				"How about moving meetings from the conference room to the concourse? Walking not only burns calories but it may even foster a sense of collaboration."
			],
			"enabled": true
		},
		{
			"data": [
				"Fruit",
				"Take your time and eat some fruit. Slowly. Notice the flavor, the texture, the freshness."
			],
			"enabled": true
		},
		{
			"data": [
				"Bathrooms",
				"Walk to the farthest bathroom in the worksite facility when going to the restroom."
			],
			"enabled": true
		},
		{
			"data": [
				"Coffee break",
				"Going on coffee break? Consider doing a 5-minute walk every time you go for one."
			],
			"enabled": true
		},
		{
			"data": [
				"Colleagues",
				"Do not email or message office colleagues, walk to their desks to communicate with them."
			],
			"enabled": true
		},
		{
			"data": [
				"Learning",
				"In a study of healthy volunteers, NIH researchers found that taking short breaks, early and often, may help our brains learn new skills."
			],
			"enabled": true
		},
		{
			"data": [
				"Exercise",
				"Evidence suggests small amounts of regular exercise can bring dramatic health benefits, including measurably reducing stress."
			],
			"enabled": true
		},
		{
			"data": [
				"Repeat",
				"Have you found your stretch-ly-routine? Do not forget to repeat it for more than once to better fight effects of prolonged sitting."
			],
			"enabled": true
		},
		{
			"data": [
				"Wrist and forearm",
				"Extend your arms with the palms facing towards you, then slowly rotate the hands four times clockwise, then four times counter-clockwise."

			],
			"enabled": true
		},
		{
			"data": [
				"Mobilize",
				"For every thirty minutes of stagnation, you should have at least one minute of stimulation."
			],
			"enabled": true
		},
		{
			"data": [
				"7 Minute Workout",
				"This workout packs in a full-body exercise routine in a fraction of the time. But as with any exercise, be careful. There are numerous apps to get you started."
			],
			"enabled": true
		},
		{
			"data": [
				"Pulse",
				" Raise your pulse rate to 120 beats per minute for 20 straight minutes four or five times a week doing anything you enjoy. Regularly raising your heart rate results in improved cardiovascular health."
			],
			"enabled": true
		},
		{
			"data": [
				"Take the stairs ",
				"Studies have shown that stair climbing, which is considered vigorous-intensity physical activity, burns more calories per minute than jogging."
			],
			"enabled": true
		},
		{
			"data": [
				"Make art",
				"Art therapy is known to have great mental health benefits, especially when it comes to stress management. How about writing a quick poem, taking a picture or painting something small?"
			],
			"enabled": true
		},
		{
			"data": [
				"Declutter",
				"A clean space helps your focus at work and is often linked to positive emotions like happiness."
			],
			"enabled": true
		},
		{
			"data": [
				"Lunch outside",
				"Nature is linked to positive emotions and decreased stress and anxiety. Whenever possible, try to take your daily lunch break outside, surrounded by some greenery."
			],
			"enabled": true
		},
		{
			"data": [
				"Public transport",
				"If you use public transport regularly, you can stand instead of sitting. If it is possible, try to replace as many of your daily trips as possible with walking or cycling."
			],
			"enabled": true
		},
		{
			"data": [
				"Yawning",
				"Yawning can be really helpful, as it produces tears to help moisten and lubricate the eyes."
			],
			"enabled": true
		},
		{
			"data": [
				"Focus change",
				"Hold one finger close to the eye and focus on it. Slowly move the finger away, focus far into the distance and then back to the finger. Bring the finger back and focus on something far away."
			],
			"enabled": true
		},
		{
			"data": [
				"Palming",
				"While seated, brace elbows on the desk and close to the desk edge. Let your weight fall forward and cup hands over eyes. Close your eyes and inhale slowly through nose and hold for few seconds. Continue deep breathing."
			],
			"enabled": true
		},
		{
			"data": [
				"Hand squeezes",
				"Squeeze a pair of balled-up socks or a soft rubber ball, hold for 5 seconds. Repeat whole process few times."
			 Roll your shoulders forward for 10 seconds, then backward.",
			"enabled": true
		},
		{
			"data": "Raise your right arm, stretch it over your head to the left, and hold for 10 seconds. Repeat on the other side.",
			"enabled": true
		},
		{
			"data": "With your right hand, grab each finger of your left hand in turn and squeeze. Repeat on the other side.",
			"enabled": true
		},
		{
			"data": "Stand up and do a lunge. Hold for 10 seconds, then do the other leg.",
			"enabled": true
		},
		{
			"data": "Close your eyes and simply notice whatever arises in current moment, without judgement.",
			"enabled": true
		},
		{
			"data": "Focus every 20 minutes for 20 seconds on an object at 20 feet distance.",
			"enabled": true
		},
		{
			"data": "If you need help, ask for it.",
			"enabled": true
		},
		{
			"data": "Do one thing at a time.",
			"enabled": true
		},
		{
			"data": "Is your attention spent wisely?",
			"enabled": true
		},
		{
			"data": "Change your sitting posture.",
			"enabled": true
		},
		{
			"data": "Expose your eyes to natural light.",
			"enabled": true
		},
		{
			"data": "With your eyes closed, slowly and gently raise your eyes to the ceiling and back down to the floor.",
			"enabled": true
		},
		{
			"data": "With your eyes closed, slowly and gently move your eyes to the left, then slowly to the right.",
			"enabled": true
		},
		{
			"data": "Shake your hands out to get some relief.",
			"enabled": true
		},
		{
			"data": "One at a time, touch the tip of each finger to the tip of your thumb so they make an O-shape.",
			"enabled": true
		},
		{
			"data": "Make a fist and then slide your fingers up until they point toward the ceiling, like you're telling someone to stop.",
			"enabled": true
		},
		{
			"data": "Make a fist and then fan your fingers out and stretch them as far as you can.",
			"enabled": true
		}
	],
	"showBreaksAsRegularWindows": false,
	"appExclusions": [],
	"pauseForSuspendOrLock": true,
	"pauseBreaksShortcut": "",
	"resumeBreaksShortcut": "",
	"screen": "primary",
	"timeToBreakInTray": false
}

Additional information
My configuration includes 2 monitors.

Code of Conduct

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

Hi, sorry to hear about the issue :(
Looks like Windows 7 is not supported anymore: https://www.microsoft.com/en-US/windows/windows-7-end-of-life-support-information. I think the issue is on WIndows 7 level, not Stretchly. Probably related to the fact that Stretchly is using new libraries and Windows 7 is not getting updated, as mentioned here with Skype: https://answers.microsoft.com/en-us/skype/forum/all/when-i-switch-off-the-pc-appears-a-window-saying/4a632f76-a016-4a6f-91f3-028bd77e7a37 (Skype is build with the same technology as Stretchly)


Feature Select and jump

Hi i Really love your project, I need a little help, I didn't find a solution for my problem yet, I hope you can help me.
It's not a big problem, but i think it would be nice if there will be option when I set it true, and I select a date It automaticly jump to the Hour grid and after I select an hour than It jump to the minute grid.
In my experience, several users like this date time picker yet they have to click a lot to set the correct date and time.
Is there any solution for this yet, or are you planing to do something similar to this?
I hope you can help me as soon as possible!

WIll be added, not in the upcoming version, but after that.


Changing 'swarm' key causes invalid connections to be made

Summary

Changing swarm.key of a peer (no real reason to do this) causes other peers to mark connections to same peer (with old file) to be marked as successful.
Steps to reproduce

To reproduce the issue (note that id does depend a bit on the timing, and may not happen every single time):

create a cluster of nodes (3 should be enough)
start all nodes, in order to create proper P2P topology
stop one one of the nodes
delete swarm.key of that stopped node
start that node again

Kademlia process that manages connected peers occasionally goes through the list of known peers, and if the stopped node is started again (and is on the same Multiaddr), that previous peer will be marked as connected, even though main connection is actually made to that new Swarm peer.
Expected behavior

We should actually try to connect to same address, expecting "old" Swarm peer, which should return some internal error, which should eventually (after several attempts) remove that "old" peer from address book.
Actual behavior

Hi @zbiljic, you can move this issue from core: backlog to core: active sprint. Don't touch me pipeline in core: Active sprint should not be touched ;)
I do it for you now. Thx

Sorry @Eknir, I moved ticket within "core: Active sprint" board, not sure what happened.


json decode error from service account.php

Uncaught Kreait\Firebase\Exception\InvalidArgumentException: C:\xampp\htdocs\fireabase/mydata.json could not be parsed to a Service Account: json_decode error: Syntax error in C:\xampp\htdocs\fireabase\vendor\kreait\firebase-php\src\Firebase\ServiceAccount.php:164 Stack trace: #0 C:\xampp\htdocs\fireabase\getdata.php(9): Kreait\Firebase\ServiceAccount::fromJsonFile('C:\xampp\htdocs...') #1 {main} thrown in C:\xampp\htdocs\fireabase\vendor\kreait\firebase-php\src\Firebase\ServiceAccount.php on line 164
<?php
require __DIR__.'/vendor/autoload.php';
use Kreait\Firebase\Factory;
use Kreait\Firebase\ServiceAccount;

echo "Path = " .  __DIR__.'/mydata.json';
// This assumes that you have placed the Firebase credentials in the same directory
// as this PHP file.
$serviceAccount = ServiceAccount::fromJsonFile(__DIR__.'/mydata.json');
echo "serviceAccount=".$serviceAccount;

$firebase = (new Factory)
   ->withServiceAccount($serviceAccount)
   ->withDatabaseUri('https://XXXXXXXXXXXXX.firebaseio.com')
   ->create();
$database = $firebase->getDatabase();
var_dump($database);
?>

The stack trace mentions a syntax error and the error is triggered in https://github.com/kreait/firebase-php/blob/9614b26a8327bc0ac0b052166e16afb7154b4a58/src/Firebase/ServiceAccount.php#L158-L165
As far as I can tell, there are two possible issues, which you can test with the following:
if ($content = file_get_contents($path)) {
    echo "The file is readable, and here is its content: {$content}\n";
} else {
    echo "The file is not readable\n";
    exit;
}

$data = json_decode($content, true);

if (json_last_error() !== JSON_ERROR_NONE) {
    echo "The file doesn't contain valid json: ".json_last_error_msg()."\n";
    exit;
}

try {
    $serviceAccount = ServiceAccount::fromArray($data);
} catch (InvalidArgumentException $e) {
    echo "The file doesn't contain a valid Service Account definition: ".$e->getMessage()."\n";
    exit;
}

var_dump($serviceAccount);
exit;

@Techiedie You 👍-d my last comment, does this mean this helped you resolve the problem?

yes, its work for me to find the error.
Thank you so much @jeromegamez


Add Evaluate action to Check Enforcer check-run.

This PR adds an Evaluate action button to Check Enforcer. At this point it adds the button but doesn't do anything. This is just to get some telemetry that shows how the payload changes when the action is received so that I can add it to Octokit and add appropriate tests.

/check-enforcer evaluate

/check-enforcer evaluate

/check-enforcer reset

/check-enforcer evaluate

Thanks. The event ids were added because I thought that they would be useful but turns out they aren't in practice because I just use various joins and parse with operations to get at what I want in the telemetry. I'll be removing the rest soon.


LM1B example does not handle partial batches in evals

Provide as much information as possible. At least, this should include a description of your issue and steps to reproduce the problem. If possible also provide a summary of what steps or workarounds you have already tried.
Problem you have encountered:
The LM1B example calls input_poipeline.get_lm1b_datasets https://github.com/google/flax/blob/master/examples/lm1b/train.py#L350 with drop_remainder at its default of True, dropping partial batches in the validation data caused by the number of examples being evenly divisible by the batch size. This will ignore some validation data and if a user modifies this example to evaluate on their own test set it will produce incorrect results.
What you expected to happen:
The example should be able to correctly handle any number of validation examples and drop none of them by default. This might require padding and masking. It is fine to have slightly different behavior for the training set, but for evals every example in the eval set should be processed exactly once and the metrics should be aggregated across all the eval batches correctly.

It's quite common to drop the remainder in for example the official TF examples. But I agree we should really do better. For a single host the fix is trivial but for multiple hosts we need to be careful about feeding the same number of batches and padding up to the same size on each host.

It isn't safe to do work intended for scientific publication with code that doesn't compute correct evals. It is a shame incorrect evals have become normalized by bad examples in other frameworks.
I know you aren't really disagreeing with me here, but I worry your comment could be read as minimizing this issue. This is a severe correctness problem even though it might be a common problem. The longer it exists in an example the more risk there is someone will put wrong eval numbers in their publications and it will spread to more codebases.
I also think this is a great example of where our tools push us to write bad code because writing correct code is inconvenient and uglier. It should be easier to handle these things which is why I additionally filed https://github.com/google/jax/issues/3088


TypeError: No constructor defined

I am encountering a TypeError: No constructor defined error when using the flat_map_batch operator in Bytewax. The error occurs during the execution of my data flow pipeline, which uses a series of custom dispatchers for data processing. The error message provided by the runtime is as follows:
TypeError: (src/operators.rs:206:80) error calling `mapper` in step "Stream Ingestion Pipeline.Raw Dispatcher.flat_map_batch"
Caused by => TypeError: No constructor defined

Error Details
Below is the full stack trace of the error:
comet_ml is installed but `COMET_API_KEY` is not set.
2024-09-17 17:18:20 [info     ] Received message.              cls=app.feature_pipeline.data_logic.dispatchers data_type=posts
thread '<unnamed>' panicked at src/operators.rs:198:33:
Box<dyn Any>
stack backtrace:
   0:     0x7ab1e936cb7c - std::backtrace_rs::backtrace::libunwind::trace::ha69d38c49f1bf263
   ...
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/home/weyon2/miniconda3/envs/job_recom/lib/python3.11/site-packages/bytewax/run.py", line 355, in <module>
    cli_main(**kwargs)
TypeError: (src/operators.rs:206:80) error calling `mapper` in step "Stream Ingestion Pipeline.Raw Dispatcher.flat_map_batch"
Caused by => TypeError: No constructor defined

Hello,
We remastered the course and fixed all these issues in the last commit


New version: fio.fio version 3.36

Pull request has been created with komac v2.1.0 :rocket:
Microsoft Reviewers: Open in CodeFlow

Hi @OfficialEsco,
This manifest adds Apps and Features entries that aren't present in previous PR versions. These entries should be added to the previous versions, or removed from this version.
(Automated response - build 870.)


Guest only accepts custom permissions from role Public

Describe the bug
Guest user only accepts custom permissions from the role Public. Any other role permission is ignored. The default permissions however work if given from another role than Public.
Steps To Reproduce

Go to roles and create another role "BookA", add this role to the user Guest
Create a book "BookA" and configure custom permissions for role BookA to view and none for role Public
Open a private tab with the book
See no book

Expected behavior
Guest user should inherit custom permissions from other roles than Public.
Your Configuration (please complete the following information):

Exact BookStack Version: BookStack v0.25.0
PHP Version: 7.2.10
Hosting Method: Apache2

Additional context
I use custom permissions for all of my books. For every book I use a different role with the same name as the book. Only this role can create or edit. If I want users to edit a book, I just add them to the role and I'm done with it. This way I can also easily overview any given edit permissions of a user.
This works pretty flawless except for the Guest user, which I want to give edit access to some books but without loosing track where the role Public has permission to edit. This can get icky with an expanding library.

Sorry for the very late response, Just looking through old issues and came across this and decided to check.
Can confirm this is the case, Is due to this condition:
https://github.com/BookStackApp/BookStack/blob/9490457d044b51fbe330998ce37dcfe255038f55/app/Auth/Permissions/PermissionService.php#L114
Might be something we should address during permission system review so "breaking" changes will be wrapped up in one go.
Will be dangerous to just go ahead and update the logic, since this has likely been in place since the early days of the permission system. I'd count that as a breaking change as may expose content not previously thought as exposed.
To do this safely I'd suggest we, on change of this logic:

Drop existing secondary (Non-public) roles from the guest user via database migration.

This will remove potentially used system permissions and hence be a breaking change still.

These could be easily re-applied under the caution of the considerations after upgrade.

This would safely disconnect any entity-permissions which may become active after logic change.

Apologies in the extra year of delay for this, I has missed this during permission system changes.
I've now applied the relevant changes in 777027bc48d628f1283b0a734ffabe5dbabebc36.
This will be part of the next feature release.
As I planned above, additional assigned guest user roles will be detached upon upgrade for safety.
These could have still applied some active permissions, so this will be a potential breaking change of access state, but should be easy for admins to re-assign after update where needed. Will have a breaking change advisory to advise of this for the feature release.
Thanks @Bolthier for raising.
Docs Updates

[ ] - Upgrade notice to advise of changes and drop of additional guest user roles.


glibc can't be built on darwin

Issue description
The package glibc don't builds on darwin.
(I want to use iconv in nix-shell.)
Steps to reproduce
nix-shell -p glibc --show-trace -f ~/code/nixpkgs/
error: syntax error, unexpected ')', at (string):1:102
nix-env -iA glibc -f ~/code/nixpkgs/
error: assertion failed at /Users/davidak/code/nixpkgs/pkgs/development/libraries/glibc/default.nix:8:1

Technical details

System: OS X 10.10.5
Nix version: nix-env (Nix) 1.11.2
Nixpkgs version: git master

That's assert stdenv.cc.isGNU;. Why do you think glibc should work on Darwin?

@davidak: you should use -A libiconv. That one is redirected to glibc on GNU platforms and e.g. to darwin.libiconv in your case.

@vcunat thanks, that work!
I used command-not-found to find the package that has the iconv binary:
command-not-found iconv
The program ‘iconv’ is currently not installed. It is provided by
several packages. You can install it by typing one of the following:
  nix-env -iA nixos.glibc
  nix-env -iA nixos.glibc_multi

The database for it is generated on Linux...

I'm going to steal this issue. Cross compiling glibc on Darwin is one of the few remaining hurdles for linux->darwin cross compilation. @periklis.

I found a bug where AR=$CC -print-program-name=ardoesn't work correctly as*-arisn't in a-Bdirectory or forced at compile-time with--with-ar. The latter doesn't exist, and the former isn't expected, so I'd say this is glibc's fault, though GCC could certainly do better too. This normally isn't an issue because the wrong ar` on Linux is good enough.

I think I am running into issues due to case-insensative file systems. They use both oS and os object prefixes. Lovely.

Native compilation of glibc is not supported:
configure: error:
*** The GNU C library is currently unavailable for this platform.
*** If you are interested in seeing glibc on this platform visit
*** the "How to submit a new port" in the wiki:
***   https://sourceware.org/glibc/wiki/#Development
*** and join the community!

Native compilation of glibc is not supported:
configure: error:
*** The GNU C library is currently unavailable for this platform.
*** If you are interested in seeing glibc on this platform visit
*** the "How to submit a new port" in the wiki:
***   https://sourceware.org/glibc/wiki/#Development
*** and join the community!


Set output_directory

https://github.com/inception-project/inception-reporting-dashboard/blob/524fd031a9de710a99dfb164ea4c6e5a923a4e21/inception_reports/generate_reports_manager.py#L447C5-L447C16
Currently, after generating the plots, the data is being exported to an arbitrary current working directory.
It would be helpful to be able to specify the output directory, especially keeping in mind, when the tool is packaged as container to mount a specific export folder to the host.
In fact there already exist a paramter output_directory, however it's default is none and is not set anywhere either.
There can be multiple approaches on how to inject this information to the application. In the easiest way, the export data function could make a quick lookup into the enviroment variables. However, I feel like this can get messy quite fast, if more parameters are introduced. Maybe a searate signgleton like object which holds Applicaiton Configuration can be initialized and made globally available ?
Let me know what you think about it and how I might be helpful

Hey @serwarde ,
I was testing the new docker image of this project (https://github.com/medizininformatik-initiative/GeMTeX/tree/main/inception-reporting-dashboard) and at first I could not find the exported files anymore.
While the internal documentation says, after generating the report the file is exported to the folder, in which the application is run in, I could not find it at that location anymore even though i could confirm to have found it there previously.
So i digged into some of the recent changes and noticed :
https://github.com/inception-project/inception-reporting-dashboard/blob/c58ffdb75beca1f0b4a3f08c52a6445452cf9dd5/inception_reports/generate_reports_manager.py#L293
The projects_folder is now passed through some seassion containing variable indirectly to the export_data method.
https://github.com/inception-project/inception-reporting-dashboard/blob/c58ffdb75beca1f0b4a3f08c52a6445452cf9dd5/inception_reports/generate_reports_manager.py#L742
(For anyone else stumbling through the same problem). The exported files by default are at ~/.inception_reports/projects.
Which is now even more hidden than before, especially in a containerized enviroment.
I'd like to suggest injecting the target directory through an enviroment variable, something like
output_directory = os.getenv('OUTPUT_DIRECTORY')
/ AND / OR be able to set the project folder from the enviroment variable as well

Furthermore
https://github.com/inception-project/inception-reporting-dashboard/blob/c58ffdb75beca1f0b4a3f08c52a6445452cf9dd5/inception_reports/generate_reports_manager.py#L464
The above code snippit is a bit misleading as of now export_data is always called by plot_project_progress which passes the project_folder. So output_directory is never None.


Fix some s3manager issues

First, thanks for landing s3manager -- I was about to implement this myself.
I've been trying to use s3manager to perform fast concurrent S3 uploads in a backup tool at work. I'm putting pretty large files; my test file is 60GB. Unfortunately, I ran into a variety of issues. I fixed some of them here.
The biggest issue was a memory leak. It turns out that the current s3manager code causes the entire input reader contents to be retained, and in my test that is far larger than the available system memory. The bug is due to a slightly subtle GC interaction where a reference to each chunk buffer is held onto for the duration of the whole multi-part upload.
I also found that the uploader could deadlock because the workers could all exit without the dispatcher being aware; this was much simpler to diagnose and fix.

I'd personally prefer to see the deadlocking resolved without resorting to a separate error channel, as managing multiple channels introduces quite a bit of extra complexity. I'm fairly certain that something as simple as switching to a RWMutex should be able to resolve the deadlock.

It's not an error channel, it's a quit signal chan, which is the usual pattern for cooperative cancellation.
In my fork I'm using github.com/cespare/wait which replaces wg, quit, closed, and err, and simplifies the code quite a bit.
Checking an error on every loop (instead of using a select) is probably going to always be broken.

@cespare if you could split the deadlock issue out into its own PR I can take the memory leak patch now. It looks like the deadlock part will need a little more investigation.

@lsegal Done, and I rebased both and updated the PR title.

Thanks!


Button & TextView fonts

hi and tanks for sharing this remarkable library
is there any way to change the font of Buttons and TextViews?

You can use [setTypeface](http://developer.android.com/reference/android/widget/TextView.html#setTypeface(android.graphics.Typeface)


Show default admin password in login form only on first start

How can we check that
a) admin user has logged in successfully first time
b) admin user has changed the default password ('admin')
We have to decide after which case (a) or (b) the message on login form ("use admin|admin for first login") should be shown.
(b) was the default in OpenSlides 1.x.

As discussed: Add new general config option 'loginString' for adding default password information for admin or demo user.

@normanjaeckel I think we can close this. If not, then please reopen


Comments: Wrapping Up

Link to chapter - http://serverless-stack.com/chapters/wrapping-up.html

Hi guys,
I've followed your tutorial through to setting up the endpoints, skimmed ahead on the front-end stuff, and gone through the source code. I don't see anything about Lambda in here at all. Am I missing something?
thanks.

Whole back end api is based on lambdas, this tut using serverless framework to create lambdas. Just spend 1-2 hrs and finish back end part of this tutorial and you will see lambdas in action. This is best tut ever! Thanks guys for making it.

Ah I see. Setting up Administrator Access means we don't have to explicitly setup Lambda access.  I didn't deploy but now have so the functions have been created and can see them.
Yes great tutorial Thanks!

hey @jayair can u perhaps how i can make this service into mobile app like the picture you show it here? did u have to make the front end all again?

@deepseafishing Oh we didn't really make it into an app here. We just added the web app to our home screen. But since we set the icons properly earlier in the tutorial, it shows up pretty nicely on our home screen.

Great tutorial. Thanks!
For anyone who might be interested, I've refactored the React client to use Redux, with a README.md and the refactored code up at https://github.com/pjamieson/iartx-serverless-client. Comments and suggestions welcome.

@pjamieson That looks pretty good! I'll check it out in detail and share it with the rest of community.

Thanks, Jay. The code (still a work-in-progress) is deployed at https://dev.iartx.com https://dev.iartx.com/.

On Aug 22, 2017, at 3:09 PM, Jay V<EMAIL_ADDRESS>wrote:
@pjamieson https://github.com/pjamieson That looks pretty good! I'll check it out in detail and share it with the rest of community.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/AnomalyInnovations/serverless-stack-com/issues/71#issuecomment-324165762, or mute the thread https://github.com/notifications/unsubscribe-auth/AAc-nb1vjoGE_tr_QTmd2t0sncPET4fgks5sa1GJgaJpZM4M4OSk.

This is the best material to get started w/ serverless in aws. Thank you guys!

Amazing tutorial.  The amount of detail that goes into this tutorial is simply amazing.  Taking into account all the little things I wanted, like www redirects, cache, scripts to make deploying easy, serverless framework for the api, https, redirecting urls to where you need to go if your session timed out!! (you didn't even have to cover this), but its amazing that you did! Simply the best tutorial I have ever read.  In fact so much so, I would like permission to create a set of videos (giving you guys credit of course), to help explain it further given the particular troubles I went through.  Let me know if this is okay :).

@x11joe Thanks for the kind words and support. It means a lot!
I think adding more detail through a video would be very helpful. Especially if you can build on the tutorial and add your perspective. We would love to link to it in the tutorial. I know one of our other readers is also working on a video series. You can take a look at it if you need some ideas or inspiration - https://github.com/AnomalyInnovations/serverless-stack-com/issues/152.

@rtorcato We do a quick calculation on the cost of running this tutorial app in this chapter here - https://serverless-stack.com/chapters/why-create-serverless-apps.html. For very large sites Serverless can be more expensive but for small to medium it is a lot cheaper. This has been true in our experience and here is some simple analysis on this - https://www.trek10.com/blog/lambda-cost/

Guys I get this message when I try to login : UnexpectedParameter : Unexpected key 'UserContextData' found in params, any idea ?
This is the version of libraries:
"amazon-cognito-identity-js": "^1.27.0",
"aws-sdk": "^2.157.0"

@Ajacs Which step of the tutorial is causing this issue for you?

I will second and third the comments here - a great tutorial, well written and thorough.
If you were going to add anything else, I'd suggest a "forgot password" chapter, since that would show how to send the user an email.  And a +1 on the SEO comment above!

Hey, just wanted you guys to know that the https://serverless-stack.com/#tools link is no longer pointing to any section on the homepage. No mas tools section.

@miloofcroton Good catch. Fixed it. Thanks.


Fix bottom space from DayTab offsets in Timetable Screen

Issue

close #914

Overview (Required)

In Timetable Screen,  remove bottom empty space due to DateTab offset.
Replace Column and offset with Box and Padding.

Links

Screenshot (Optional if screenshot test is present or unrelated to UI)

Before
After

Movie (Optional)
portrait

Before
After

landscape

Before
After

Could you check the grid behavior?

Sorry.
In TimetableGrid Screen, modifier from arguments is changed to apply to the whole screen.


Inline fragments with strings

ran into issues running variables with inline fragments within a github query string
graphql:"search(query: \"language:$language\", type: REPOSITORY, first:$pageSize)"
however, this version works correctly with variables:
graphql:"search(query: \"language:PowerShell\", type: REPOSITORY, first:$pageSize)"
variables := map[string]interface{}{
	"language": githubql.String("PowerShell"),
	"pageSize": githubql.Int(100),
}
err := client.Query(context.Background(), &query, variables)

ran into issues

What were the issues?
I think this is just how GraphQL works:
https://facebook.github.io/graphql/#sec-Language.Variables
A variable needs to provide an entire value. There is no support for doing string concatenation.

You'll need to do this instead:
graphql:"search(query: $query, type: REPOSITORY, first: $pageSize)"
query := fmt.Sprintf("language: %s", "PowerShell")

variables := map[string]interface{}{
	"query": githubql.String(query),
	"pageSize": githubql.Int(100),
}
err := client.Query(context.Background(), &query, variables)

Let me know if you find something in the GraphQL spec that says variables are expected to work in the way you suggested.

awesome! that makes sense! it looks like i assumed that the behavior was similar to JS template literals


Fix a regression supporting Unicode in Python 2

After reorganizing the code in #30, some of the new Python modules stopped importing unicode_literals which broke cases where Unicode strings were interpolated into quoted strings.
Additionally, the interactive mode needed to decode the user's input message only for Python 2 because it was an ASCII string by default when it needed to be Unicode. Under Python 3 the string is already Unicode.
This also adds a unit test that put a Unicode message into a user variable via <set>/<get> tags which verifies that this change fixed it under Python 2, where the new unit test initially failed.

This fixes #40


Crash on Android

On my Android device (Moto G Stylus 2022), when I include this scanner in the Camera, it opens for a second or two, but then always crashes with the following message:
FATAL EXCEPTION: mrousavy/VisionCamera.video

com.facebook.jni.CppException: Compiling JS failed: 1:1:invalid empty parentheses '( )' Buffer size 3 starts with: 280a29

FATAL EXCEPTION: mrousavy/VisionCamera.video
Process: com.vehotechnologies.DriverDevelop, PID: 22428
com.facebook.jni.CppException: Compiling JS failed: 1:1:invalid empty parentheses '( )' Buffer size 3 starts with: 280a29
	at com.mrousavy.camera.frameprocessor.FrameProcessor.call(Native Method)
	at com.mrousavy.camera.core.VideoPipeline._init_$lambda-0(VideoPipeline.kt:107)
	at com.mrousavy.camera.core.VideoPipeline.$r8$lambda$Jc5WVk283o2kPLyelK6VJSU9jAE(Unknown Source:0)
	at com.mrousavy.camera.core.VideoPipeline$$ExternalSyntheticLambda0.onImageAvailable(Unknown Source:2)
	at android.media.ImageReader$1.run(ImageReader.java:837)
	at android.os.Handler.handleCallback(Handler.java:980)
	at android.os.Handler.dispatchMessage(Handler.java:104)
	at android.os.Looper.loopOnce(Looper.java:238)
	at android.os.Looper.loop(Looper.java:357)
	at android.os.HandlerThread.run(HandlerThread.java:85)

Calling code:
  const device = useCameraDevice('back', {
    physicalDevices: ['wide-angle-camera'],
  });
  const isFocused = useIsFocused();
  const isActive = isFocused;

  const {
    props: cameraProps,
  } = useBarcodeScanner({
    fps: 5,
    onBarcodeScanned: barcodes => {
      'worklet';
      console.log(
        `Scanned ${barcodes.length} codes with values=${JSON.stringify(
          barcodes.map(({ value }) => value)
        )} !`
      );
    },
  });

...

            <Camera
              style={styles.preview}
              device={device}
              isActive={isActive}
              {...cameraProps}
              resizeMode="contain"
              enableFpsGraph
              orientation="landscape-right"
              pixelFormat="native"
              enableZoomGesture
              enableHighQualityPhotos={false}
              torch={useTorch ? 'on' : 'off'}
            />

With this same setup, Camera is working when I comment out the {...cameraProps} line in <Camera />.

Aside: I wasn't able to get the example app working to reproduce this, unfortunately -- I kept getting this error in Metro:
 BUNDLE  ./index.js

error: Error: Unable to resolve module @mgcrea/vision-camera-code-scanner from .../vision-camera-barcode-scanner/example/src/App.tsx: @mgcrea/vision-camera-code-scanner could not be found within the project or in these directories:
  node_modules
  ../../node_modules
  3 |   // onBarcodeDetected,
  4 |   useBarcodeScanner,
> 5 | } from '@mgcrea/vision-camera-code-scanner';

I saw the following response on another thread and will try it shortly.

          > Yes, that one works nicely. I had to upgrade react native to 0.72.5 though.

Well I just tried it on Android and it crashed the whole app after ~1 sec of code scanning.
Guess I'll be staying with v2 a little longer.
Found what's wrong:

If you need reanimated and vision-camera frame processor to play nicely with each other, you'll need latest version of vision-camera, react-native-worklets-core, and react-native-reanimated
babel.config.js should look like this

module.exports = {
  presets: ['module:metro-react-native-babel-preset'],
  plugins: [['react-native-worklets-core/plugin'], ['react-native-reanimated/plugin']],
};

Originally posted by @zzz08900 in https://github.com/mrousavy/react-native-vision-camera/issues/1985#issuecomment-1759653565

i have same problem also on ios, it works in debug mode but not in release mode. i get the same error when the camera starts

On my Android device (Moto G Stylus 2022), when I include this scanner in the Camera, it opens for a second or two, but then always crashes with the following message:
FATAL EXCEPTION: mrousavy/VisionCamera.video

com.facebook.jni.CppException: Compiling JS failed: 1:1:invalid empty parentheses '( )' Buffer size 3 starts with: 280a29

FATAL EXCEPTION: mrousavy/VisionCamera.video
Process: com.vehotechnologies.DriverDevelop, PID: 22428
com.facebook.jni.CppException: Compiling JS failed: 1:1:invalid empty parentheses '( )' Buffer size 3 starts with: 280a29
	at com.mrousavy.camera.frameprocessor.FrameProcessor.call(Native Method)
	at com.mrousavy.camera.core.VideoPipeline._init_$lambda-0(VideoPipeline.kt:107)
	at com.mrousavy.camera.core.VideoPipeline.$r8$lambda$Jc5WVk283o2kPLyelK6VJSU9jAE(Unknown Source:0)
	at com.mrousavy.camera.core.VideoPipeline$$ExternalSyntheticLambda0.onImageAvailable(Unknown Source:2)
	at android.media.ImageReader$1.run(ImageReader.java:837)
	at android.os.Handler.handleCallback(Handler.java:980)
	at android.os.Handler.dispatchMessage(Handler.java:104)
	at android.os.Looper.loopOnce(Looper.java:238)
	at android.os.Looper.loop(Looper.java:357)
	at android.os.HandlerThread.run(HandlerThread.java:85)

Calling code:
  const device = useCameraDevice('back', {
    physicalDevices: ['wide-angle-camera'],
  });
  const isFocused = useIsFocused();
  const isActive = isFocused;

  const {
    props: cameraProps,
  } = useBarcodeScanner({
    fps: 5,
    onBarcodeScanned: barcodes => {
      'worklet';
      console.log(
        `Scanned ${barcodes.length} codes with values=${JSON.stringify(
          barcodes.map(({ value }) => value)
        )} !`
      );
    },
  });

...

            <Camera
              style={styles.preview}
              device={device}
              isActive={isActive}
              {...cameraProps}
              resizeMode="contain"
              enableFpsGraph
              orientation="landscape-right"
              pixelFormat="native"
              enableZoomGesture
              enableHighQualityPhotos={false}
              torch={useTorch ? 'on' : 'off'}
            />

With this same setup, Camera is working when I comment out the {...cameraProps} line in <Camera />.
Aside: I wasn't able to get the example app working to reproduce this, unfortunately -- I kept getting this error in Metro:
 BUNDLE  ./index.js

error: Error: Unable to resolve module @mgcrea/vision-camera-code-scanner from .../vision-camera-barcode-scanner/example/src/App.tsx: @mgcrea/vision-camera-code-scanner could not be found within the project or in these directories:
  node_modules
  ../../node_modules
  3 |   // onBarcodeDetected,
  4 |   useBarcodeScanner,
> 5 | } from '@mgcrea/vision-camera-code-scanner';

on line 3 you commented onBarcodeDetected maybe thats why u got the error?

Edit: Updating to Reanimated v3 (latest) did fix the crash!
Now though it keeps giving this error repeatedly (no crash though):
ERROR  Frame Processor threw an error: Cannot read property 'map' of undefined

And later I discovered there's still crash in release builds for Android if you use reanimated with vision camera v3 and frame processor.
The only valid solution as of now is to remove reanimated, which is not always possible.
It looks like react-native-worklets-core is still messed up by reanimated in some way. Needs more digging.
FYI you can make a patch-package for vision camera v2.15.x to fix the iOS17/iPhone 15 crash, and stick to old old vision-camera-code-scanner until v3 or react-native-worklets-core gains more compatibility.
I believe those two commits are what you need to make a patch for v2.15.x
https://github.com/mrousavy/react-native-vision-camera/commit/503114b9d1c61d60fa3c69b3bd4cb084758fbf5b
https://github.com/mrousavy/react-native-vision-camera/commit/2ae4439c844e62131f76d35ffeca76f5a1c7237f

this was the fix for me:
https://github.com/mrousavy/react-native-vision-camera/issues/1776#issuecomment-1757204827

I have update the lib to support the latest version of react-native-vision-camera https://github.com/mgcrea/vision-camera-barcode-scanner/releases/tag/0.6.1, please reopen if you encounter new issues.


Show Debug preview (external browser) does not launch browser on Linux

Testing microsoft/vscode#129445
Issue Type: Bug

Try using the Show Debug preview (external browser) command

Bug
Nothing seems to happen
In the developer tools, I see this error being printed:
Extension Host
grep: warning: /usr/bin/X11: recursive directory loop

VS Code version: Code - Insiders 1.59.0-insider (c3b4df8f5d9c14aa4cfddb587231d0d52e72e5a2, 2021-07-27T15:07:54.419Z)
OS version: Linux x64 4.15.0-142-generic snap
Restricted Mode: No

Was not able to replicate on stable on my Linux VM

Also was not able to replicate on insiders either (OS is different in screenshot above because I had to re-create the VM):

Not too sure what's happening here? Based on the error, I'd think that it has to do with symlinks that create a loop?
Does the command to open in external browser for simple browser work? I think it uses the same API for opening in external browser.


Update features in v0.2 into branch master to release a new version

Description
Update master branch with new features related to backend support, vm scheduling scneario, RL toolkit, distributed toolkit and visualization tool.
Linked issue(s)/Pull request(s)

Backend related:

Vector env support (#266)
Add slot filter functions for node attribute (#273)
Refine joint decision sequential action mode (#219)
Add dynamic node support (#172)

VM scheduling scenario related:

Add oversubscription feature (#246), (#256)
Add hierarchy vm region architecture support (#258)
Fix bug of auto-downloading data (#257)
Pricing model and energy model update (#286)
Rule-based algorithm examples (#255), (#282)

RL toolkit related:

PG, K-step and lambda return utils (#155)
Add DDPG algorithm (#252)
Merge algorithm into agent (#259)
Distributed framework update (#206)

CLI related:

CLI refactoring (#227)
Feature: Add a cli command to support create new project (#279)
Add Env-Geographic visualization tool, CIM hello as example (#291), (#294), (#295)
CLI visualization support and maro grass local mode (#277)

Type of Change

[x] Non-breaking bug fix
[ ] Breaking bug fix
[x] New feature
[x] Test
[x] Doc update
[ ] Docker update

Related Component

[x] Simulation toolkit
[x] RL toolkit
[x] Distributed toolkit

Has Been Tested

OS:

[ ] Windows
[ ] Mac OS
[ ] Linux

Python version:

[ ] 3.6
[ ] 3.7

Key information snapshot(s):

Needs Follow Up Actions

[x] New release package
[ ] New docker image

Checklist

[ ] Add/update the related comments
[ ] Add/update the related tests
[ ] Add/update the related documentations
[ ] Update the dependent downstream modules usage

Description
Update master branch with new features related to backend support, vm scheduling scneario, RL toolkit, distributed toolkit and visualization tool.
Linked issue(s)/Pull request(s)

Backend related:

Vector env support (#266)
Add slot filter functions for node attribute (#273)
Refine joint decision sequential action mode (#219)
Add dynamic node support (#172)

VM scheduling scenario related:

Add oversubscription feature (#246), (#256)
Add hierarchy vm region architecture support (#258)
Fix bug of auto-downloading data (#257)
Pricing model and energy model update (#286)
Rule-based algorithm examples (#255), (#282)

RL toolkit related:

PG, K-step and lambda return utils (#155)
Add DDPG algorithm (#252)
Merge algorithm into agent (#259)
Distributed framework update (#206)

CLI related:

CLI refactoring (#227)
Feature: Add a cli command to support create new project (#279)
Add Env-Geographic visualization tool, CIM hello as example (#291), (#294), (#295), (#298)
CLI visualization support and maro grass local mode (#277)

Type of Change

[x]  Non-breaking bug fix
[ ]  Breaking bug fix
[x]  New feature
[x]  Test
[x]  Doc update
[ ]  Docker update

Related Component

[x]  Simulation toolkit
[x]  RL toolkit
[x]  Distributed toolkit

Has Been Tested

OS:

[ ]  Windows
[ ]  Mac OS
[ ]  Linux

Python version:

[ ]  3.6
[ ]  3.7

Key information snapshot(s):

Needs Follow Up Actions

[x]  New release package
[ ]  New docker image

Checklist

[ ]  Add/update the related comments
[ ]  Add/update the related tests
[ ]  Add/update the related documentations
[ ]  Update the dependent downstream modules usage


Add RPC stats from the browser

Currently stats are emitted on the server for each RPC call but my project now has the use case of understanding how long an RPC call lasts on the client (we want to measure the over the wire time).

Re-stamping from https://github.com/fusionjs/fusionjs/pull/401

!merge


Socket error in 3.6.11

Hi, everything works fine with 3.6.10, but when I install 3.6.11, I get a few warnings when installing, and then a permissions error when trying to run homebridge.
Install output as follows:
pi@loungepi:~$ sudo npm install -g --unsafe-perm<EMAIL_ADDRESS>><EMAIL_ADDRESS>install /usr/local/lib/node_modules/homebridge-broadlink-rm/node_modules/raw-socket
> node-gyp rebuild

make: Entering directory '/usr/local/lib/node_modules/homebridge-broadlink-rm/node_modules/raw-socket/build'
  CXX(target) Release/obj.target/raw/src/raw.o
In file included from ../src/raw.h:23,
                 from ../src/raw.cc:6:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
In file included from ../src/raw.h:21,
                 from ../src/raw.cc:6:
../src/raw.cc: At global scope:
/root/.cache/node-gyp/12.14.0/include/node/node.h:566:43: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>)’ to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/root/.cache/node-gyp/12.14.0/include/node/node.h:600:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
../src/raw.cc:55:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(raw, InitAll)
 ^~~~~~~~~~~
In file included from /root/.cache/node-gyp/12.14.0/include/node/node.h:63,
                 from ../src/raw.h:21,
                 from ../src/raw.cc:6:
/root/.cache/node-gyp/12.14.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/root/.cache/node-gyp/12.14.0/include/node/node_object_wrap.h:84:78:   required from here
/root/.cache/node-gyp/12.14.0/include/node/v8.h:10004:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callbac ’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/.cache/node-gyp/12.14.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/root/.cache/node-gyp/12.14.0/include/node/v8.h:10004:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/raw.node
  COPY Release/raw.node
make: Leaving directory '/usr/local/lib/node_modules/homebridge-broadlink-rm/node_modules/raw-socket/build'
+<EMAIL_ADDRESS>added 6 packages from 11 contributors, removed 1 package and updated 6 packages in 30.227s

Output when running homebridge:
pi@loungepi:~ $ homebridge
[1/2/2020, 7:19:49 PM] Loaded config.json with 4 accessories and 4 platforms.
[1/2/2020, 7:19:49 PM] ---
[1/2/2020, 7:19:49 PM] Warning: skipping plugin found at '/usr/lib/node_modules/homebridge-broadlink-rm' since we already loaded the same plugin from '/usr/local/lib/node_modules/homebridge-broadlink-rm'.
[1/2/2020, 7:19:49 PM] Warning: skipping plugin found at '/usr/lib/node_modules/homebridge-camera-ffmpeg' since we already loaded the same plugin from '/usr/local/lib/node_modules/homebridge-camera-ffmpeg'.
[1/2/2020, 7:19:49 PM] ====================
[1/2/2020, 7:19:49 PM] ERROR LOADING PLUGIN homebridge-broadlink-rm:
[1/2/2020, 7:19:49 PM] Error: Operation not permitted
    at new Socket (/usr/local/lib/node_modules/homebridge-broadlink-rm/node_modules/raw-socket/index.js:47:14)
    at Object.exports.createSocket (/usr/local/lib/node_modules/homebridge-broadlink-rm/node_modules/raw-socket/index.js:202:9)
    at Session.getSocket (/usr/local/lib/node_modules/homebridge-broadlink-rm/node_modules/net-ping/index.js:147:20)
    at new Session (/usr/local/lib/node_modules/homebridge-broadlink-rm/node_modules/net-ping/index.js:101:7)
    at Object.exports.createSession (/usr/local/lib/node_modules/homebridge-broadlink-rm/node_modules/net-ping/index.js:545:9)
    at Object.<anonymous> (/usr/local/lib/node_modules/homebridge-broadlink-rm/helpers/getDevice.js:4:34)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
[1/2/2020, 7:19:49 PM] ====================
[1/2/2020, 7:19:51 PM] Loaded plugin: homebridge-camera-ffmpeg
[1/2/2020, 7:19:51 PM] Registering platform 'homebridge-camera-ffmpeg.Camera-ffmpeg'
[1/2/2020, 7:19:51 PM] ---
[1/2/2020, 7:19:51 PM] Loaded plugin: homebridge-garagedoor-command
[1/2/2020, 7:19:51 PM] Registering accessory 'homebridge-garagedoor-command.GarageCommand'
[1/2/2020, 7:19:51 PM] ---
[1/2/2020, 7:19:51 PM] Loaded plugin: homebridge-ds18b20
[1/2/2020, 7:19:51 PM] Registering accessory 'homebridge-temperature-ds18b20.DS18B20'
[1/2/2020, 7:19:51 PM] ---
[1/2/2020, 7:19:51 PM] Loaded plugin: homebridge-filesensor
[1/2/2020, 7:19:51 PM] Registering accessory 'homebridge-filesensor.FileSensor'
[1/2/2020, 7:19:51 PM] ---
[1/2/2020, 7:19:51 PM] Loaded plugin: homebridge-tplink-smarthome
[1/2/2020, 7:19:51 PM] Registering platform 'homebridge-tplink-smarthome.TplinkSmarthome'
[1/2/2020, 7:19:51 PM] ---
[1/2/2020, 7:19:51 PM] Loading 4 platforms...
[1/2/2020, 7:19:51 PM] [TplinkSmarthome] Initializing TplinkSmarthome platform...
[1/2/2020, 7:19:51 PM] [TplinkSmarthome] homebridge-tplink-smarthome v4.0.1, node v12.14.0, homebridge v0.4.50
[1/2/2020, 7:19:51 PM] Error: The requested platform 'BroadlinkRM' was not registered by any plugin.
    at API.platform (/usr/local/lib/node_modules/homebridge/lib/api.js:134:13)
    at Server._loadPlatforms (/usr/local/lib/node_modules/homebridge/lib/server.js:327:45)
    at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:90:36)
    at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:59:10)
    at Object.<anonymous> (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10)
[1/2/2020, 7:19:51 PM] Got SIGTERM, shutting down Homebridge...

Rolling back to 3.6.10 makes these errors go away.
I'm running Raspbian Buster with Nodejs v13.5.0.

Hey @ashtonaut ,
It's due to doing device discovery in a more performant way.
This command should give node the privileges it needs:
sudo setcap cap_net_raw+ep /usr/bin/node

Thanks for the quick response. I updated to 3.6.11, then ran that command, but I still get the same permissions error when trying to start homebridge - permissions error when trying to create a socket. Happy to provide further diagnostics if that would help.

I tried that with docker setup but nothing worked for me. I had to downgrade to 3.6.10 which took the whole installation down unfortunately. After a half a day I managed to recover but still don’t know how to use the latest version with the setcap


Add is_z_forward option to look_at in Basis, Transform3D, and Node3D

This PR is a subset of #72795, split into its own PR for easy reviewing. This adds the is_z_forward option to look_at in Basis, Transform3D, and Node3D. It's mostly the same as @TokageItLab's code except:

I changed the documentation to be more clear and to not presume the reader has knowledge of glTF.
This PR does not include the GLTF_* constants which I don't think are desirable to have in the core engine.

Note that glTF itself is not self-consistent, the spec defines the camera's forward as -Z and asset forward as +Z. Also some glTF files may have -Z as forward to better align with the camera forward. Also other files like FBX may have +Z forward assets. So calling +Z forward "glTF forward" is not sensible.

I think as long as we agree we want to have this option it's easy to see that this PR is good. Also, this solves #27544.

Also some glTF files may have -Z as forward

I despise those who do this. It is an act of rebellion against the standardization of standards and an act of aggression against Khronos.
If you want glTF assets to be -Z, then you should file a complaint with the Khronos group, instead of airing your grievances in the Godot repository.

@TokageItLab Sorry to say, but what you feel about the use of -Z as forwards has no bearing on the fact that there ARE assets that use -Z. You're free to avoid them like a plague, and not to use this option, after all it's optional.
Personally I've come across those assets more than a couple of times, and getting them to work is a bear. +1 to the PR.

It is okay for you privately to use assets that are facing the opposite direction, but you should never promote it around by saying these assets are glTF.
The orientation and coordinate system of assets was not clear in fbx, and may have been in the beginning in OpenGL as well. So Khronos created glTF, a format for standardization, which has +Z Forward as a specification (https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units). Again, this is not a RECOMMENDATION, it is a SPECIFICATION.
Surely if we consider the camera space to be consistent with the coordinate system of the whole system, then OpenGL is -Z Forward, and there a +Z Forward glTF asset might be facing backward. Although this was a convention, but it can be said that glTF is a redefinition of it as a specification.
So having a workflow like https://github.com/godotengine/godot/pull/72753 as an optional Addon/Plugin is fine, but to say that glTF can be -Z Forward is completely wrong and nonsense.

I would like to remind everyone that we are working on a convenience tool for game developers, not on a standard implementation of the spec. As such, a more generic option that is clear in what it does and that can be applied without prejudice is better than another approach. In a sea of possibilities with how creators make their assets, with inconsistent formats and inconsistencies between different formats — a simple and straight-forward option "Is Z forward" provides a clear and convenient tool to the user, IMO. It's no different from having an up vector in all the same methods.

@YuriSizov I have no objection to this PR being merged, since I originally created it and removed the glTF enum from it. But it should not be based on the falsehood that glTF can be -Z Forward. I believe it should be noted in the pipeline documentation or somewhere that glTF should be +Z Forward.

To be clear, look_at is a method in the core engine. It's not related to glTF.
The current behavior is to only use -Z as forward, so it currently only does the opposite of what @TokageItLab wants. This PR adds the option to use +Z as forward.
I'm puzzled by how much heated discussion is going on. You want it to be only one way, but that way is the opposite of how it currently is, and this PR is just adding an option to make your way possible.

Yes, I definitely want this option implemented and this PR merged.
However, I am opposed to remove the fact that the glTF asset is +Z Forward from the documentation and not explaining it anywhere. You need to write that somewhere, like in the pipeline workflow from Blender to Godot.
And I finally approve it for now since it doesn't have to be in this PR.

Totally with you on explaining the GLTF default in docs, but...

I am opposed to remove the fact

uh, where is anyone REMOVING a fact from the docs?

@Zireael07 The original PR https://github.com/godotengine/godot/pull/72795 defined an enum called GLTF_FORWARD to describe the forwards in glTF assets, but this PR removes them.
@aaronfranke may have created this PR as a means of avoiding discussion of those enums, but I recommend that glTF forwards should be explained, even if there are no enums. And I remember in the discussion @aaronfranke wanted to allow -Z Forward in glTFs and he claimed that retargeting does not work in such a fake glTF.
To avoid more such claims, I recommend that we need to make users know the correct asset orientation for import/export somewhere, but as I mentioned above, that can be done outside of this PR.

@Zireael07 What Tokage means is that this PR is not adding it, while his PR was adding it.
Indeed it should be documented somewhere, but not in core. Maybe here.

@aaronfranke Thanks for clarifying. Yeah, things like this should be documented, preferably either where 3D assets are mentioned or under importing.

Superseded by #76060

Re-opening because this is still being discussed, and I still prefer this solution. We can re-close if https://github.com/godotengine/godot/pull/76060 ends up being merged.

Superseded by #72842.


Update to 6.12-rc6

https://github.com/jhovold/linux/tree/wip/x1e80100-6.12-rc6

https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/qcom/x1e80100?id=feb324e3118ac04f579888e9019e60e62fed27c8 Heads up, the linux-firmware repo was updated with some of the .jsn files used.

https://github.com/jhovold/linux/tree/wip/x1e80100-6.12-rc7 has hit


phpExtensions.snuffleupagus: 0.7.0 -> 0.9.0

Continuation of https://github.com/NixOS/nixpkgs/pull/215279
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

@GrahamcOfBorg build phpExtensions.snuffleupagus

@GrahamcOfBorg build phpExtensions.snuffleupagus


How is RUs distributed to partitions

In the document you have mentioned this
"Requests to the same partition key can't exceed the throughput that's allocated to a partition"
Could you please elaborate on this?
If we have database level RUs set and minimum RUs per container is 100 (RU/s). If we have partitioned for example by warehouseID and it creates 10 partitions. So will the 100 RU be distributed evenly across all the 10 partitions?

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

ID: d52f6d2e-f852-45ce-c205-ee4038d5ecd1
Version Independent ID: e45b7f29-4d75-0dda-0f13-38b644213840
Content: Partitioning in Azure Cosmos DB
Content Source: articles/cosmos-db/partitioning-overview.md
Service: cosmos-db
GitHub Login: @markjbrown
Microsoft Alias: mjbrown

@tkumark We are checking this and will get back to you.

There are two concepts to understand here. How throughput is distributed across partitions in a container and how throughput is distributed across containers when using database-level throughput.
For database-level throughput, RU/s is spread evenly across all containers within the database. What is important to understand about this is that these containers all need to have roughly the same request volume. We do not dynamically move throughput back and forth across the containers. So if you have four containers in a database with 10K RU/s, they will all get 2500 RU/s. If one of those containers suddenly needs 5000 RU/s you will get rate limited, even though you are below the 10K RU/s for the database. In this scenario containers in a database with shared throughput be provisioned with dedicated throughput to allow it to scale independently from the other containers.
Within each container, throughput is spread evenly across all partitions. Also important to understand that we do not dynamically move throughput around between partitions, throughput is bound to the partitions. Add more throughput, we create more partitions. We have a concept of logical partitions vs physical partition. Logical partitions are your actual partition key values. Behind the scenes we hash these values and map them to physical partitions and manage these as needed. This way you only need to focus on the logical partition or ensuring you have high enough cardinality for your partition key values. Key here too is requests must be distributed across your logical partition key values evenly to ensure you do not get rate limited on your requests.
Hope this explanation helps.

#please-close


Passing arguments to "z.string()"

It would be nice to have the possibility to pass arguments to the z.string() function.
This would be useful to, for example, set the required_error option to some better message than just the default "Required"
One way of doing that could maybe look like this:
model User {
  id        String   @id @default(uuid())

  /// @zod {required_error: "Please enter a name"}
  name      String
}

which would generate the following
export const UserModel = z.object({
  id: z.string(),
  name: z.string({ required_error: "Please enter a name" })
});

@PlayWolfYT have you found any of doing that eventually?

I've got this:
  /// @zod.custom(z.string({required_error: "Some error message"}))


How to use hotfix feature

it my steps , when i first open the game , select lua dump feature to ensure hotfix can listen the luadump directory after
the first thing i think it may be to optimize is the lua filename will contain @ symbol like {"name":"@BluePrint/graph"} , so the dump directory will contain @ , i think it should be removed
when i dump finished , i start the hotfix feature , logs below
{"name":"libxlua.so","base":"0x72ab10b000","size":2961408,"path":"/data/app/com.skka.new0-U2FW8sDcsDxzF8LDDGQw==/lib/arm64/libxlua.so"}
"init success"
"ret:0"
"LuaFileWatcher run "
/data/data/com.skka.new0/luadump
lua_State:0x72ab788a08
lua_State:0x72a9d2b908

but i modify the files in /data/data/com.skka.new0/luadump , there's no response for me like luaL_loadstring log , so there is a guide provide for users to quick know how to use lua hotfix feature

the second thing i think it need to be optimized is , adb push luaHotFix.lua  , it will use adb root , but some of mobiles can not open the adb root , i think use adb shell su -c will be more popular

i got the truth why inotify does not work , i invoke inotify_add_watch and it return a negative number , it stuck me .

GameSentry create luadump  directory with permission -wx-xxx-xxx , has no read premission , so inotify will failed


Error if user follows a non-existent component

Fixes #944.
If a non-existent component is specified in --follow, Spin now exits with this message:
$ spin up --follow godby --follow helo
Error: The following component(s) specified in --follow do not exist in the application:
  - godby
  - helo
The following components exist:
  - gogogo
  - goodbyte
  - hello
Error: exit status: 1

(I don't know where the "exit status 1" comes from - is that an artefact of the spin trigger command failing and that output being reported by spin up @lann?)
(cc @etehtsea - it won't let me add you as a reviewer)
Signed-off-by: itowlson<EMAIL_ADDRESS>

I've checked it locally and it works great!
Thanks!


Support PHP8

Hi,
Currently this library can't be used together with PHP8. PHP8 has been officially released, so it would be nice to add PHP8 support. This would require league/oauth2-client 2.6 release, as that is their first php8 compatible release.
Current error message:
Loading composer repositories with package information
 Updating dependencies
 Your requirements could not be resolved to an installable set of packages.

   Problem 1
     - Root composer.json requires thenetworg/oauth2-azure ^2.0 -> satisfiable by thenetworg/oauth2-azure[v2.0.0].
     - thenetworg/oauth2-azure v2.0.0 requires php ^5.6|^7.0 -> your php version (8.0.0) does not satisfy that requirement.

Hey there, could you please test it with oauth2-client v2.6 and report back if anything is not working? I will be happy to bump the supported PHP version if everything works fine.

I will test it, however i'd like to note that my use case of your plugin is limited, as I only use it for authentication.
After a quick glance of the source code I don't expect any issues with an upgrade, but i'll let you know the results of my tests 👍.

I can confirm that my use-case works with oauth2-client v2.6 :), it should be safe to bump the supported PHP version.

I have just added it to master, https://github.com/TheNetworg/oauth2-azure/commit/fc059d1c50b0301c745a430273f1492b192e1f15 currently available under dev-master via Composer (https://packagist.org/packages/thenetworg/oauth2-azure#dev-master). I will probably release it as v2.0.1 once I finish checking on League's changelog, to make sure we didn't do anything breaking here.


Centos7 build fails with webpack error

Is the issue already present in https://github.com/cloudera/hue/issues or discussed in the forum https://discourse.gethue.com?
No
Describe the bug:
When running "make apps" I get the following webpack error. Reading around suggests it is incompatibilty with the version of NodeJS.
npm run webpack

><EMAIL_ADDRESS>webpack /home/foo/workspace/beam-hue-build/rpmbuild/BUILD/hue-4.10.0
> webpack --config webpack.config.js

/home/foo/workspace/beam-hue-build/rpmbuild/BUILD/hue-4.10.0/node_modules/import-local/node_modules/pkg-dir/index.js:5
const pkgDir = async cwd => {
                     ^^^

SyntaxError: Unexpected identifier
    at NativeCompileCache._moduleCompile (/home/foo/workspace/beam-hue-build/rpmbuild/BUILD/hue-4.10.0/node_modules/v8-compile-cache/v8-compile-cache.js:240:18)
    at Module._compile (/home/foo/workspace/beam-hue-build/rpmbuild/BUILD/hue-4.10.0/node_modules/v8-compile-cache/v8-compile-cache.js:184:36)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)
    at Function.Module._load (module.js:445:3)
    at Module.require (module.js:504:17)
    at require (/home/foo/workspace/beam-hue-build/rpmbuild/BUILD/hue-4.10.0/node_modules/v8-compile-cache/v8-compile-cache.js:159:20)
    at Object.<anonymous> (/home/foo/workspace/beam-hue-build/rpmbuild/BUILD/hue-4.10.0/node_modules/import-local/index.js:4:16)
    at Module._compile (/home/foo/workspace/beam-hue-build/rpmbuild/BUILD/hue-4.10.0/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)

Steps to reproduce it?
On CentOS 7.9

download and unpack hue-4.10.0 from cdn.gethue.com
sudo yum install nodejs npm
cd hue
make desktop
make apps

Without installing npm and node the build fails earlier when it checks for npm.
$ rpm -q nodejs npm
nodejs-6.17.1-1.el7.x86_64
npm-3.10.10-<IP_ADDRESS>.1.el7.x86_64

Hue version or source? (e.g. open source 4.5, CDH 5.16, CDP 1.0...). System info (e.g. OS, Browser...).
Tarball 4.10.0.

OK, I have managed to answer my own question, the dependency is on a later version of Node and I need to install the RPMs from Node Source.
It is not clear which versions of node and npm I need. Would it be a good idea include tests for minimum versions during the build?


trying to add new work from Hathi yields rysnc error

Attempted to add uc1.c006043204, @rlskoeser investigated and found there was an rsync protocol error

Error from the log file on the server:

ERROR:ppa.archive.import_util:HathiTrust rsync failed \xe2\x80\x94\xc2\xa0Protocol incompatibility / command: rsync -rLt  --delete --ignore-errors  --files-from=/tmp/ppa_hathi_pathlist-549kqtxc.txt datasets.hathitrust.org::ht_text_pd /srv/ht_text_pd/

@mnaydan I think this was resolved by the PUL migration — do you want to do any further testing, or should we close?

Yes, good call. This was resolved by the PUL migration. Thanks!


Build broken on 15.6.0 Preview 1

PythonNavigateToItemProvider.cs(140,59,140,68): error CS0618: 'MatchKind' is obsolete: 'MatchKind is being replaced with PatternMatch and PatternMatchKind. Please remove all references and replace them with PatternMatch objects.'

Also this is obsolete:
Error	CS0618	'SuggestedActionSet.SuggestedActionSet(IEnumerable<ISuggestedAction>, SuggestedActionSetPriority, Span?)' is obsolete: 'Use fully specified constructor instead'	PythonTools	C:\GIT\PTVS\Python\Product\PythonTools\PythonTools\Intellisense\PythonSuggestedActionsSource.cs	99	Active
Error	CS0618	'SuggestedActionSet.SuggestedActionSet(IEnumerable<ISuggestedAction>, SuggestedActionSetPriority, Span?)' is obsolete: 'Use fully specified constructor instead'	PythonTools	C:\GIT\PTVS\Python\Product\PythonTools\PythonTools\Intellisense\ExtractMethodSuggestedActionSourceProvider.cs	84	Active

Also, method signature changes in Microsoft.Web.Core.dll (used in Django).

All fixed now.


Support limit the walking through depth.

Support limit the walking through depth.
This process of walking through files is asynchronous. So if you include some heavy-nested folders, node_modules for example, the result will be slow to show.

@hxnan  Thanks for you advice! The configuration for walk through depth and directory ignored patterns are planned to be implemented in next major release, with the default setting of unlimited depth and node_modules & .git ignored, then you can control the output as you wish :)


Hex tile - paginable table mode

The pagination controls should be visible only if the "settings" icon is clicked (just like in case of the ConcordanceTile)


Receiver Detail View Design

Problem statement
Daily data > Report details
Receivers need to be able to filter and sort on the Report Details page - some of these may replicate what we show on Daily Data, but it would be good to make sure we're providing all of the options that we need and removing any that don't make sense at that view.
We should also make sure that we're displaying all the data columns on that page that would be helpful for receivers to view. Most of these items already exist in some fashion, but we will want to mock up how they look on this page specifically to make it easier for engineering to implement.

Acceptance criteria

Mockup that's been vetted by engineering lead
Share with product and engineering leads on Experience and Pipeline teams

@drew-usds Added you to this - this is the split out from the pagination ticket. This should be fairly simple - mostly engineering wants to see all the filtering/sorting/etc. options on this page in a visual and make sure that we only display what's relevant, as well as double check that all the displayed columns/rows make sense.

@drew-usds @fmccaf1 Marking as possibly stale and closable!

Closing! Duplicate of @fmccaf1 's current work.


Unable to define safe type guards

🔎 Search Terms
I want to define a function isX(x): x is X.
However, I want it to throw a type error if x was never possibly an X.
For instance, this should compile:
isX(... as X | Y | Z)
isX(... as X | undefined)

But this should not:
isX(... as Y | Z)
isX(... as undefined)

This got me close, and it fully worked in TS 4.x:
type X = {a: number}; // For example

export function isX<T>(x: [Extract<T, X>] extends [never] ? never : T): x is [Extract<T, X>] extends [never]
  ? never
  : X extends T // Needed when T is any
  ? X
  : Extract<T, X> {
  return true;
}

But it no longer fully works in TS 5.x.
For instance, if you try using it from another function that takes the same type but narrows it to be NonNullable:
export function isMaybeX<T>(x: [Extract<T, X>] extends [never] ? never : T): x is [Extract<T, X>] extends [never]
  ? never
  : X extends T // Needed when T is any
  ? X
  : Extract<T, X> {
  if (x === undefined || x === null) { return true; }
  return isX(x); // ERROR
}

You get this error:
Argument of type '([Extract<T, X>] extends [never] ? never : T) & {}' is not assignable to parameter of type '[Extract<([Extract<T, X>] extends [never] ? never : T) & {}, X>] extends [never] ? never : ([Extract<T, X>] extends [...] ? never : T) & {}'.

🕗 Version & Regression Information

This changed between versions 4.x and 5.x

⏯ Playground Link
https://www.typescriptlang.org/play?#code/FAYwNghgzlAEAasDeFYF5YEYC+BuUkMsAmsgEbpZ7DACmAHgA4D2ATgC6wBmArgHYh2AS2Z9YQqPAA8AFQB8ACnoAuWAG0AovXasIg2QBoEcgLqwG7WnwAmcNX1oA3WqzMB+WA+etYqmQEpVenE7LR09dkNjMwsrW3UvFxNgWFgPRNYU3wRzbTi4GVgAeiLYADlaWmsq2AB3AAsrWEKJWAg+AE8sj3gs1TDdfRkjeDlkLNZadh5WMR0eWnxsOiY2Tl4BYVEQgFkIDrJaaXklVU1tQcjh6NzLGzsM908nF2yAoJD1AYio0Zi8+4JF6ubrPbx9HKxQGFErlSrVax1RpiFpwdpdVI9CHfIYjMZILJCLiwJToNAYfjVLhCByIgA+dNgwXJGD4PDAYH8yFgk2ms1g80WsGWqV5MzEEngSn8S2AQA
💻 Code

class X {a = 1};
class Y {b = 1};

export function isX<T>(x: [Extract<T, X>] extends [never] ? never : T): x is [Extract<T, X>] extends [never]
  ? never
  : X extends T // Needed when T is any
  ? X
  : Extract<T, X> {
  return true;
}
export function isMaybeX<T>(x: [Extract<T, X>] extends [never] ? never : T): x is [Extract<T, X>] extends [never]
  ? never
  : X extends T // Needed when T is any
  ? X
  : Extract<T, X> {
  if (x === undefined || x === null) { return true; }
  return isX(x);
}

🙁 Actual behavior
Argument of type '([Extract<T, X>] extends [never] ? never : T) & {}' is not assignable to parameter of type '[Extract<([Extract<T, X>] extends [never] ? never : T) & {}, X>] extends [never] ? never : ([Extract<T, X>] extends [...] ? never : T) & {}'.

🙂 Expected behavior
No error
Additional information about the issue
No response

I'm not sure how a type system is supposed to reason about this, so it's unsurprising the workaround stopped working at some point. The thing you're trying to represent fails some very basic symmetry of expectations -- if X | T is a valid argument because it contains X, therefore X | unknown is valid because unknown contains X, and unknown | X is just another way of saying unknown, and for any arbitrary T, T is also unknown. So it doesn't really make any sense to say you can write X | T but not T, because even T supersets X in the type T & X (which is conceivably inhabitable).


Unused variables in jsx

All variables used in jsx code are marked as unused:

Duplicate of #6, #5, #79 etc. As has been said previous, use the rules in eslint-plugin-react. Thanks :smile:

Got it. Thanks for the blazing fast answer :+1:

Maybe your bot can check for "jsx unused" here =). Or maybe I should just add something to the readme about react rules


The min and max values of the "TicksCoords" on the axis are not rendered

Version
4.2.1
Steps to reproduce
You can use any axis with category type. After the rendering is complete, change the size of the window, the chart will be scaled, there is a high probability that min ticks, max ticks or both will be lost (not rendered)
What is expected?
Normal rendering
What is actually happening?
The min, max, or both are lost (not rendered)

The problem is the inline function littleThan of fixOnBandTicksCoords in Axis.js. The data is compared without considering the precision, resulting in the first and last elements being removed. Please consider using the loss precision difference comparison method, such as the following correction code.
  function littleThan(a, b) {
    return inverse ? (a - b) > 1e-12 : b - a > 1e-12;
  }

PR is welcome, you could submit it.

@louis-neal Thanks Louis.
Can you provide a test example for this?

@louis-neal Thanks Louis.
Can you provide a test example for this?

example:
let a = 856.8, b =<PHONE_NUMBER>000001
a < b  //true (Causes ticksCoords.shift(), so the rightmost axisTick is not rendered.)
b - a > 1e-12 //false (What we want.)
b - a > 0.000000000001 //false
b - a > 0.0000000000001 //true

@louis-neal I mean ECharts demo. You can create one using this template: https://jsfiddle.net/ovilia/kn0Laj4u/

Please take a closer look at axisTick
https://jsfiddle.net/rzcLjbqt/ （bug）
https://jsfiddle.net/rnsqykdt/1/


STM32F407G Build Error - AddBuiltin() mismatch in arguments

@tensorflow/micro
System information

Host OS Platform and Distribution: Ubuntu 18.04.5 LTS
TensorFlow installed from : source
Tensorflow version : 2.3.0
Target platform : STM32F407G - Discovery Board
Tool chain: STM32 Cube IDE Tool chain

Problem
Mismatch in number of arguments between the function definition and the calling function in AddBuiltin() function.
Function Definition: tensorflow/lite/micro/micro_mutable_op_resolver.h (Line 473)
Code Snippet:  (Number of arguments - 3)
TfLiteStatus AddBuiltin(tflite::BuiltinOperator op, const TfLiteRegistration& registration,                           MicroOpResolver::BuiltinParseFunction parser)
Calling Function: main.cpp (generated using STM Toolchain)
Code Snippet: (Number of arguments - 2)
tflite_status = micro_op_resolver.AddBuiltin( tflite::BuiltinOperator_FULLY_CONNECTED, tflite::ops::micro::Register_FULLY_CONNECTED());
Sequence of Steps Followed:
We built all the examples for various compilers using this command.
$make -f tensorflow/lite/micro/tools/make/Makefile TAGS="portable_optimized" generate_non_kernel_projects
hello_world project is created using STM32 Cube IDE.
The tensorflow and third party folders generated inside hello_world project workspace are copied.
main.cpp is created for hello_world
The project is built in the STM32 Cube IDE. During the build process, we have the following error.
'g++' -std=c++11 -DTF_LITE_STATIC_MEMORY -DNDEBUG -O3 -DTF_LITE_DISABLE_X86_NEON -I. -I./third_party/gemmlowp -I./third_party/flatbuffers/include -I./third_party/ruy  -c tensorflow/lite/micro/examples/hello_world/main_functions.cc -o tensorflow/lite/micro/examples/hello_world/main_functions.o tensorflow/lite/micro/examples/hello_world/main_functions.cc: In function ‘void setup()’: tensorflow/lite/micro/examples/hello_world/main_functions.cc:81:53: error: no matching function for call to ‘tflite::MicroMutableOpResolver<1>::AddBuiltin(tflite::BuiltinOperator, TfLiteRegistration*)’    	tflite::ops::micro::Register_FULLY_CONNECTED());                                                  	^ In file included from ./tensorflow/lite/micro/all_ops_resolver.h:16:0,              	from tensorflow/lite/micro/examples/hello_world/main_functions.cc:18: ./tensorflow/lite/micro/micro_mutable_op_resolver.h:473:16: note: candidate: TfLiteStatus tflite::MicroMutableOpResolver<tOpCount>::AddBuiltin(tflite::BuiltinOperator, const TfLiteRegistration&, tflite::MicroOpResolver::BuiltinParseFunction) [with unsigned int tOpCount = 1; TfLiteStatus = TfLiteStatus; TfLiteRegistration = TfLiteRegistration; tflite::MicroOpResolver::BuiltinParseFunction = TfLiteStatus (*)(const tflite::Operator*, tflite::BuiltinOperator, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**)]    TfLiteStatus AddBuiltin(tflite::BuiltinOperator op,             	^~~~~~~~~~ ./tensorflow/lite/micro/micro_mutable_op_resolver.h:473:16: note:   candidate expects 3 arguments, 2 provided Makefile:36: recipe for target 'tensorflow/lite/micro/examples/hello_world/main_functions.o' failed
Please suggest the code changes
The above steps are executed as suggested in youtube

Hi all,
I solved it by modifying the following code portion of main.cpp:
static tflite::MicroMutableOpResolver<1> micro_op_resolver;
// Add dense neural network layer operation
tflite_status = micro_op_resolver.AddBuiltin(
tflite::BuiltinOperator_FULLY_CONNECTED,
tflite::ops::micro::Register_FULLY_CONNECTED());
in this way:
static tflite::MicroMutableOpResolver<1> micro_op_resolver;
tflite_status = micro_op_resolver.AddFullyConnected();
The fact is that AddFullyConnected() function (tensorflow/lite/micro/micro_mutable_op_resolver.h) is defined as follows:
TfLiteStatus AddFullyConnected() {
return AddBuiltin(BuiltinOperator_FULLY_CONNECTED,
*tflite::ops::micro::Register_FULLY_CONNECTED(),
ParseFullyConnected);
}
which avoids the mismatch above.
Hope this can be helpful.

Hi all,
I solved it by modifying the following code portion of main.cpp:
static tflite::MicroMutableOpResolver<1> micro_op_resolver;
// Add dense neural network layer operation
tflite_status = micro_op_resolver.AddBuiltin(
tflite::BuiltinOperator_FULLY_CONNECTED,
tflite::ops::micro::Register_FULLY_CONNECTED());
in this way:
static tflite::MicroMutableOpResolver<1> micro_op_resolver;
tflite_status = micro_op_resolver.AddFullyConnected();
The fact is that AddFullyConnected() function (tensorflow/lite/micro/micro_mutable_op_resolver.h) is defined as follows:
TfLiteStatus AddFullyConnected() {
return AddBuiltin(BuiltinOperator_FULLY_CONNECTED,
*tflite::ops::micro::Register_FULLY_CONNECTED(),
ParseFullyConnected);
}
which avoids the mismatch above.
Hope this can be helpful.

@Pradeepiit Could you please let us know if this issue resolved or not? please check https://github.com/tensorflow/tensorflow/issues/42756#issuecomment-770443361


Added old value to .RemoveElement operation

Hi,
as discussed in #21, I'm creating PR now.
I've updated some more stuff, like Operation.RemoveElement now returns a value and is mappable so I've updated tests as well. Please revise them as it's not my cup of tea.

Apart from the small comments I made there is something that bothers me. The thing is that in case you create a derived reactive array from another reactive array using the mirror method; every time an element is removed from the original array we are mapping the old value again in the other array when actually the mapped value has already been saved in the mirror's internal array.
This shouldn't be a problem if your map function is a pure function (which it should) but if for some reason your mapping operation does a heavy computation we are wasting resources.
I propose we refactor the mirror method as follows
public func mirror<U>(transformer: T -> U) -> ReactiveArray<U> {
    let mirrorProducer = producer.map { operation in
        // This avoids having to recompute the mapped value
        // for a remove operation which is not needed because
        // we are already storing the mapped values in the
        // mirror's internal array
        if case .RemoveElement(let index, _) == operation {
            return .RemoveElement(index, _elements[index])
        } else {
            return operation.map(transformer)
        }
    }
    return ReactiveArray<U>(producer: mirrorProducer)
}

Okay, will fix and push those changes.