Static while looping audio using AudioStreamPlayer3D

Godot version
4.1.2.stable
System information
Windows 10 - 4.1.2.stable
Issue description
Using the AudioStreamPlayer3D or AudioStreamPlayer node to play audio has a noticeable static noise after some period of looping.
Here is a video from a minimal project that showcases this:
https://clipchamp.com/watch/FiPJFo5YdQ6
Steps to reproduce

Import a audio file and then re-import with Looping enabled. In my test case I am using .wav format
Create a basic 3D scene with a Node3D as the root node and a AudioStreamPlayer3D as a child.
Add the imported audio file as the Stream of the AudioStreamPlayer3D
Add a Camera3D as a child of the root Node3D
Start that scene

The audio file that I used will be in the Minimal reproduction below.
Minimal reproduction project
AudioTest.zip
Just add the audio file to the Stream section of the AudioStreamPlayer3D and hit start.

Related to https://github.com/godotengine/godot/issues/22016.

Related to Audio clipping / static / interference on rapid intervals of sound (fixed in master) #22016.

All of the comments are related to versions 3.x, was this something that was supposedly fixed in version 4?

All of the comments are related to versions 3.x, was this something that was supposedly fixed in version 4?

Yes, but it's possible that the specific audio file you're using or your audio setup causes issues that weren't resolved by the original PR.
If you are using external DAC in particular, consider https://github.com/godotengine/godot/issues/75109.

All of the comments are related to versions 3.x, was this something that was supposedly fixed in version 4?

Yes, but it's possible that the specific audio file you're using or your audio setup causes issues that weren't resolved by the original PR.
If you are using an external DAC in particular, consider #75109.
No, I'm not using any DAC. My project setup is using the default values set by the editor and I've had the same issue with every audio file I've tested.

Is sample rate set to 48000 Hz in Windows sound settings and to 44100 Hz in Godot settings by chance?

@starry-abyss Checking my Headsets settings, it is set to 8 channel, 16 bit, 48000 Hz for Windows and I can't figure out how to check in Godot.

I suggest resampling can be the cause. Don't remember the exact issue pages with discussions, but Godot used to have a different audio backend on Windows which automatically resampled audio. Since Godot started to use WASAPI, no proper resampling happened.

I suspect the absence of resampling from 44100 to 48000 can be the cause. Don't remember the exact issue pages with discussions, but Godot used to have a different audio backend on Windows (early versions of Godot 3 IIRC) which automatically resampled audio. Since Godot started to use WASAPI exclusively, no proper resampling happened. Resampling is not needed only if Godot sampling rate matches the one set in Windows.

Could be, I'm not too familiar with the ins and outs of audio.
With that being said, I made a discovery yesterday and I believe this issue could be in part isolated with my headset. I'm not sure if my headset has its own set of drivers or not, but I've had other people test with the minimal project and it seems like they aren't having the same issue as me. I also tested it by disabling my headset and using the speakers on one of my monitors and again I heard no static. I am confused though, because it's not a hardware issue since I was able to record the static being outputted by godot. I wonder if there are specific audio drivers that can cause this.
My headset is: Corsair Void RBG Elite

Do the sampling rate change automatically to 44100 in Windows when you disable the headset? Also could you try to manually set it to 44100 in Windows with the headset enabled and check if there is a difference?

Does the sampling rate change automatically to 44100 in Windows audio settings when you disable the headset? Also could you try to manually set it to 44100 in Windows with the headset enabled and check if there is a difference?

Sorry did see this message, I'll test it out later today and let you know

Disabling the headset does not update the sample rate, still at 48000. Setting the sample rate manually on my headset to 44100 also did not fix the issue.

@sghofrany: your issue sounds eerily similar to #46595.
Just to confirm: Is it the same issue, except that setting your headset to 44.1 khz (so it aligns with the Godot settings) as seen in that issue's description does not fix it for you?
The only other difference I can see is that your headset uses 8 channels. Do you have one with 2 channels or can you change it to output only 2 channels in Windows?

@sghofrany: your issue sounds eerily similar to #46595.
Just to confirm: Is it the same issue, except that setting your headset to 44.1 khz (so it aligns with the Godot settings) as seen in that issue's description does not fix it for you?
The only other difference I can see is that your headset uses 8 channels. Do you have one with 2 channels or can you change it to output only 2 channels in Windows?

I don't have one with two channels, but I did end up using my monitors speakers and I couldn't hear any static. I can try setting the output to 2 channels later this week.


Contracts: Return emitted events for dry-runs

Contract dry-runs should return the events that would be emitted.
This will e.g. enable user interfaces to indicate better what the consequence of signing and submitting a particular transaction is.
A current UX movement for blockchains is to counter the "blind sign and submit" behavior ("yolo sign and submit"). We should provide better means to assess the effect of a transaction before submitting; returning the events that would be emitted would be a major step towards that.

Would be good if the system_dryRun does the same.

Yeah we should just improve system_dryRun https://github.com/paritytech/substrate/issues/7555

Please note we can't just use system_dryRun for dry running contracts. We need to return dispatchable specific data from the dry run. As long as dispatchables can't return data we need out custom dry run runtime API.


Update zio, zio-test, zio-test-sbt to 2.0.2

Updates

dev.zio:zio
dev.zio:zio-test
dev.zio:zio-test-sbt

from 2.0.0-RC6 to 2.0.2.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "dev.zio" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "dev.zio" }
}]

labels: library-update, early-semver-pre-release, semver-spec-pre-release, commit-count:1

Superseded by #45.


Use an interface method for unpacking records

This eliminates the typeToUnpack map which should offer a small speedup to program init time. This also notably simplifies the code.

Codecov Report

Merging #884 into master will decrease coverage by 1.35%.
The diff coverage is 26.29%.

@@            Coverage Diff             @@
##           master     #884      +/-   ##
==========================================
- Coverage   57.43%   56.08%   -1.36%
==========================================
  Files          41       41
  Lines       10648    10368     -280
==========================================
- Hits         6116     5815     -301
- Misses       3444     3465      +21
  Partials     1088     1088

Impacted Files
Coverage Δ

zmsg.go
41.2% <24.01%> (-7.54%)
:arrow_down:

dns.go
60% <42.85%> (-8.75%)
:arrow_down:

privaterr.go
67.16% <71.42%> (+0.49%)
:arrow_up:

msg.go
79.24% <81.81%> (+0.53%)
:arrow_up:

server.go
65.96% <0%> (-0.24%)
:arrow_down:

Continue to review full report at Codecov.

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


upgrade to 10.2?

Is there any reason to expect a bump in the FROM command to 10.2 would work?

I am not aware of any reason it would not work, but as it is a complex system I wouldn't be surprised if there was some minor issues. I have not tested yet, but if you try it let us know how it goes!

10.2 introduced backwards-incompatible changes:

mysql_zap was removed: this might break tooling which was built on top of this image
aria_recover was renamed

Honestly, i think it's fine to upgrade (my setup works!); But most importantly we should just ship different image tags like this: colinmollenhour/mariadb-galera-swarm:10.1 and colinmollenhour/mariadb-galera-swarm:10.2. What do you think?
#1071: Specified key was too long
Actually, the 10.2 upgrade fixes this issue: Specified key was too long; max key length is 767 bytes
As an example run this query in a mariadb:10.1 and a mariadb:10.2 container. The 10.1 fails with the above error.
CREATE DATABASE db;
USE db;
DROP TABLE IF EXISTS `tbl`;
CREATE TABLE `tbl` (
  `foo` varchar(512) COLLATE utf8_unicode_ci NOT NULL,
  `bar` varchar(512) COLLATE utf8_unicode_ci DEFAULT NULL,
  `baz` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`foo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Thanks for sharing your results! I think mysql_zap is not a great loss since Docker typically handles term/kill signals now. I've copied the Dockerfile and made the default file use 10.2 and the new file for 10.1. I setup Docker Hub auto-builds but I don't know if it is going to work yet.. Will see soon.

@colinmollenhour - In case it helps, I have a setup with multiple versions. Let me know if you would like me to make a pull request.
https://github.com/cpjolly/mariadb-galera-swarm
I have been using 10.2 for the last 6 months without issue.


Update sbt to 1.3.12

Updates org.scala-sbt:sbt from 1.3.10 to 1.3.12.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-sbt", artifactId = "sbt" } ]

labels: library-update, semver-patch

Coverage remained the same at 100.0% when pulling c1b7c0ac7a1f03b3798534f0100940c1b426ddd6 on scala-steward:update/sbt-1.3.12 into 6de5bd57f79172b56b7170a8f692dfb4490cbd1d on sangria-graphql:master.


IE9 - table layout is breaking when interacting with filtering

Type a few characters in the filter bar and then delete them. Repeat the action a couple a time and the layout of the table will break (see image below)
Example: go to http://griddlegriddle.github.io/Griddle/externalData.html, type 'dd' without the quotes, hit backspace, and then type again 'd' without the quotes. Repeat a few times. The layout will append itself.

The docs have been updated. Thanks for creating the issue!


Allow whitespace between PatternPart symbols of a MATCH clause.

Fixes opencypher/openCypher#131

@jmarton Looks great, thanks for your contribution.
The current testing procedure that we use is to add known correct queries to this file: cypher.txt (and cypher-legacy.txt for queries that use legacy constructs). These will then be parsed through the Antlr grammar in a test run by CI, to verify that the fix worked (and that nothing else broke).
I'll add this separately in a commit after merging yours (as I don't have write access to your fork).


Frontend: Add Bus Route UI

Bus route displays on map with bus stops
Clicking bus stop opens bottom sheet
Searching for bus 88 shows mock bus route

When i click on bus 88 in search bar, i don't see any bus route.


Delete crd on uninstallation of etcd-operator

[skip ci]
Signed-off-by: Hui Kang<EMAIL_ADDRESS>

Apologies for the delayed response. LGTM.


highest tag not used for generating semver

If there are more then one tag placed on the current version, git-semver will not use the highest semantic version.
E.g. both tags 0.0.1-rc1 and 0.0.1.rc2 placed on current version.
This is most likely due to git describe --tags also reporting only the older tag.
Please either find a solution for this or simply document this behaviour in the documentation.

I actually cannot reproduce this. Maybe this depends on the git version you're using? I'm using git 2.24.0 locally.
λ mkdir tag-test  && cd tag-test
λ git init
Initialized empty Git repository in /private/tmp/tag-test/.git/
λ touch README
λ git add README
λ git commit -m "Initial commit"
[master (root-commit) 6a42d11] Initial commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README
λ git tag -s 1.0.0-rc1 -m "Release candidate 1"
λ git tag -s 1.0.0-rc2 -m "Release candidate 2"                                                                                /tmp/tag-test master:6a42d11  [p3] dev:solutions
λ git-semver
1.0.0-rc2

Hmmmm.... cannot recreate with above commands either. I will close the issue for now and reopen ist, when I found the specific use-case.
git version 2.17.0 works too.


Fix Admin Login Bug

Hi. I don't know if it's my server of the app but I get the followi8ng PHP error 500 whenever I login to the administration area:
[13-May-2018 15:47:50 Europe/London] PHP Fatal error:  Uncaught Error: Call to undefined method mysqli_stmt::get_result() in /home/alexand2/ServiceStatus/classes/constellation.php:129
Stack trace:
#0 /home/alexand2/ServiceStatus/classes/constellation.php(30): Constellation->get_incidents(true, 0, 6,<PHONE_NUMBER>)
#1 /home/alexand2/ServiceStatus/index.php(41): Constellation->render_incidents(true, 0)
#2 {main}
thrown in /home/alexand2/ServiceStatus/classes/constellation.php on line 129
[13-May-2018 15:47:54 Europe/London] PHP Fatal error:  Uncaught Error: Call to undefined method mysqli_stmt::get_result() in /home/alexand2/ServiceStatus/classes/constellation.php:129
Stack trace:
#0 /home/alexand2/ServiceStatus/classes/constellation.php(30): Constellation->get_incidents(true, 0, 6,<PHONE_NUMBER>)
#1 /home/alexand2/ServiceStatus/index.php(41): Constellation->render_incidents(true, 0)
#2 {main}
thrown in /home/alexand2/ServiceStatus/classes/constellation.php on line 129

Hi, thank you for reporting it! I suspect you did a clean install and there are no incidents yet? This might've been introduced by 4b7d8be - can you check whether the older release (1.0.1) works correctly? If it does you can use that in the meantime. No need to do clean install, just replace the files (dont forget to delete install.php). Thanks.

Just tested with the demo page and it looks ok even without any incidents so it is probably not bug in the code but actually server configuration. Do you have MySQL Native Driver (mysqlnd)? It seems that without it the mysqli_stmt::get_result() method is not available. This might be good to work around in the future.

I tried with the 1.0.1 release and I still have the same error. I'm not too sure if the web server has  MySQL Native Driver installed so I shall check with the hosting company.

I just checked. mysqlnd is installed and enabled. We are also running PHP version 7.2. Could this be causing the error?

I figured out a fix. Just for your information for cPanel users this is what is needed for the site to work:

Could you please write a quick guide where to find these settings so I can put it in the wiki? Thanks 🙂


Adding sokol_audio UWP support, no MMDevice initialization

While Windows UWP supports WASAPI/Core Audio, it does not support the IMMDevice* API from mmdeviceapi.h, which sokol_audio uses to get an IAudioClient.
There is, however, an alternative way of getting an IAudioClient interface, and from there use the same codepath as desktop Win32, by using ActivateAudioInterfaceAsync.
This method is possible for desktop apps too, starting from Windows 8.
I have modified sokol_audio to:

Obtain IAudioClient via ActivateAudioInterfaceAsync instead of IMMDevice if SOKOL_WIN32_NO_MMDEVICE is defined
Fix import libs, define SOKOL_WIN32_NO_MMDEVICE when compiling the header for an UWP app.

While still being C only.
Tested:

On a desktop app with SOKOL_WIN32_NO_MMDEVICE defined everything seems to work
Compiling for an UWP dll works
Compiling both from a C and a C++ source

Looks like a good fix, thanks :) Do you have any advice on how to best test this?
Ideally I'd like to add a small UWP-specific set of samples to the sokol-samples repository, similar to the D3D11- and Metal-specific samples. Do you have some simple code around to create an UWP windows and D3D11 device and swapchain, similar to this: https://github.com/floooh/sokol-samples/blob/master/d3d11/d3d11entry.c ?)

Glad to hear you like the code :)
As a matter of fact, the next thing I need to do as a part of a larger project I'm working on is making an UWP implementation of sokol_app (so far I've been testing on desktop Windows by #defining SOKOL_WIN32_NO_MMDEVICE manually, in the c file that has SOKOL_IMPL)
Question becomes: are you interested in an UWP implementation of sokol_app? My plan is to use one of the starting Visual Studio Templates (either DirectX 11 and XAML app or DirectX 11 app), getting rid of any rendering code and hook up sokol_app calls from there.
Otherwise the best recommendation I have is to use one of the Visual Studio UWP DirectX 11 templates and hook up sokol_gfx to the context/device they create.

Question becomes: are you interested in an UWP implementation of sokol_app?

Even though I'm not a big fan of UWP (see https://floooh.github.io/2016/08/20/uwp.html) I think it would make sense for sokol_app.h at least if it fits into the sokol_app.h API model.
Would UWP support in sokol_app.h plus sokol_gfx.h's D3D11 backend allow hobbyists to run their code on the Xbox One? If yes then at least I could muster up some motivation for adding an UWP backend ;)

I know you don't have a very high opinion of UWP (I think I stumbled on the post you linked a few moths back), but at least I can confirm it allow hobbyist developers to run their code on the Xbox One via developer mode.
As the crazy person who made a Libretro frontend and ported a bunch of cores to UWP (so I think I understand the pain from a dev perspective), allow me to say this in defense of the platform: it does right by the user.
With a UWP app you no longer have to play Russian roulette with your system: apps are sandboxed and you get a list of required permissions at installation time + consent dialogs in most cases when accessing most sensitive things (like camera or microphone). No more apps sneakily adding kernel code is nice too.

One more thing: I think a good starting point for making an UWP implementation of sokol_app is here or you can use one of the Visual Studio templates for DirectX11 UWP apps.
While the link is a sample for a bigger toolkit, the hooks are minimal (this sample renders a triangle to screen and uses the toolkit for mouse/pad support) and it is made using pure C++ instead of C++/CX.
Both the sample and the VS templates handle management of the swapchain in response to window resizing and rotation.

@floooh I have gotten the basics of an UWP implementation of sokol_app in this repo (master branch).
Right now it only handles the basics of creating a window and event pump/render loop, setting up the Direct3D rendering context and interacting with the sokol_app render/init/cleanup callbacks.
What do you think so far?

Is this no longer good for merging? It was one of the next things I wanted to merge now that the UWP sokol_app.h stuff had been merged :D

...ah I see, CoInitializeEx was changed independently in sokol_audio.h to ignore the return code, is this all that's needed for making it work in UWP?

Nono, it’s still good. I just made a mistake yesterday when creating the other PR it seems.

This got closed since I made the mistake of force pushing your repo's master to my fork's master... forgetting this PR was from my fork's master.
I do not see a way of reopening this PR so I created #394 with the same code as the one I'm currently using.
Sorry for the trouble.


fix(include-media): fix include paths

:tada: This PR is included in version 4.1.4 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Preprocessing for Motion Denoising

Thanks for the great work! I tried using the motion denoising model on my data, but the results do not make sense. Is there any preprocessing needed for the data to run the optimization smoothly? I would really appreciate your help so that I can run the denoising on my data.
Here is my sample motion: sample_motion
I used this command to run the code:
python -m run.motion_denoising --config configs/subvp/amass_scorefc_continuous.py --file-path ./converted2amass.npy --noise-std 0.0
and changed the denoise function to only read my skeleton motion and run the optimization:
def denoise(config, args, model, data_file, out_path, std=0.04, verbose=False):
    device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu')
    sample_motion = np.load(data_file)
    joints3d = torch.from_numpy(sample_motion).to(device)

   # THE REST OF THE CODE HASN'T CHANGED
    batch_size = len(joints3d)
    #  load body model
    body_model = BodyModel(bm_path=args.bodymodel_path, model_type='smplx',
                           batch_size=batch_size, num_betas=10).to(args.device)

    if args.time_strategy in ['1'] or args.dataset == 'HPS':
        sds_weight = 0.5
    else:
        sds_weight = 1.0  # If you try to enlarge 't_max' or 't_fixed', reduce weight for converge.
    # create Motion denoiser layer
    smpl_mean_params = np.load(constants.SMPL_MEAN_PATH)
    rot6d_poses = torch.tensor(smpl_mean_params['pose'], dtype=torch.float32)
    axis_poses = rot6d_to_axis_angle(rot6d_poses.reshape(-1, 6)).reshape(-1)[None, 3:66].to(args.device) \
                 + torch.randn((batch_size, 63), device=args.device) * 0.01
    motion_denoiser = MotionDenoise(config, args, model, body_model=body_model,
                                    sds_weight=sds_weight,  # For axis setting 1e-1,
                                    batch_size=batch_size, out_path=out_path,
                                    pose_init=axis_poses)
    post_smooth = args.post_smooth
    if std <= 0.02:
        kwargs = {'iterations': 3, 'steps_per_iter': 40, 't_max': 0.2, 't_min': 0.05, 't_fixed': 0.1}
        smooth_args = {'post_smooth': post_smooth, 'window_size': 3, 'sigma': 2}
    elif std == 0.04:
        kwargs = {'iterations': 3, 'steps_per_iter': 60, 't_max': 0.25, 't_min': 0.05, 't_fixed': 0.1}
        smooth_args = {'post_smooth': post_smooth, 'window_size': 3, 'sigma': 2}
    elif std == 0.1:
        kwargs = {'iterations': 3, 'steps_per_iter': 80, 't_max': 0.15, 't_min': 0.05, 't_fixed': 0.1}
        smooth_args = {'post_smooth': post_smooth, 'window_size': 3, 'sigma': 2}
    else:
        raise NotImplementedError()
    kwargs.update(smooth_args)

    if args.file_path is not None:  # visualization for toy data
        verbose = True
        kwargs['vis'] = True

    motion_denoiser.optimize(joints3d, args.time_strategy, verbose=verbose, **kwargs)

This is one frame SMPL output that I am getting after the optimization process:

Hi there,
Thank you for reaching out and sharing your sample_motion data.
Upon reviewing your data, I noticed that it includes both translation and global orientation from the SMPL model. However, the code we provide only considers local poses using joints3d, which is why it fails to fit the data you supplied.
To improve this, you can modify the optimize method in the MotionDenoise class to include translation and global orientation parameters for the optimizer. You can reference the following line in the code: MotionDenoise.optimize method.
Additionally, when obtaining the final result, make sure to pass these two parameters for proper visualization: Final result visualization.
I hope this helps! Please let me know if you have any further questions or need additional assistance.


[BUG] Exporting UsersExport for model User throws an exception when a row has json value

Prerequisites

[ X] Able to reproduce the behaviour outside of your code, the problem is isolated to Laravel Excel.
[ X] Checked that your issue isn't already filed.
[ X] Checked if no PR was submitted that fixes this problem.

Versions

PHP version: 7.2
Laravel version: 5.7
Package version: 3.1

Description
The following exception is thrown:

This happens when one of my column of a row in database contains a json array value, if all rows have null on that column the export works fine.
Steps to Reproduce

Create a UsersExports and endpoint so you can  export and download all Users to any fileformat (ex: csv)
On the users database add column that accepts json.  Create a row/model with a non-null, non-empty, json array value for that column/field.
Try and export Users.

Expected behavior:
Exports correctly.
Actual behavior:
Throws exception
Additional Information

Could you perhaps share your JSON array and your DB schema? Thanks!

Columns cannot be arary's, we cannot insert them into the spreadsheet. You should use WithMapping(https://laravel-excel.maatwebsite.nl/3.1/exports/mapping.html) and tell the package what to do with the types column. Skip, format, ...

Okay is there any way to extend the normal wrapping and only map the type
array and let the others map by default ?
On Thu, 21 Feb 2019 at 12:07, Patrick Brouwers<EMAIL_ADDRESS>wrote:

Columns cannot be arary's, we cannot insert them into the spreadsheet. You
should use WithMapping(
https://laravel-excel.maatwebsite.nl/3.1/exports/mapping.html) and tell
the package what to do with the types column. Skip, format, ...
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Maatwebsite/Laravel-Excel/issues/2064#issuecomment-465959136,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADnym2dzLk2Cto68v6qBYDs8djq43Ki3ks5vPn4CgaJpZM4bGe-s
.

$columns = $row->attributesToArray();
$columns['types'] = ...

return $columns;

Thanks @patrickbrouwers

This is my database

What's your question, @Payetus ?

What's your question, @Payetus ?

Well @GlennM  asked for more info on my Database Schema so I reported it.
Would this not be solved by  a simple:
 is_array($object) ? $object->toString() : $object

Depends on how you want to display the types column. You could implode with a comma separated list.
$columns = $row->attributesToArray();
$columns['types'] = implode(', ', $columns['types']);

return $columns;

I meant to make an array guard in the package to avoid this exception when
having attribute with array in your model
On Thu, 21 Feb 2019 at 14:17, Patrick Brouwers<EMAIL_ADDRESS>wrote:

Depends on how you want to display the types column. You could implode
with a comma separated list.
$columns = $row->attributesToArray();
$columns['types'] = implode(', ', $columns['types']);
return $columns;
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Maatwebsite/Laravel-Excel/issues/2064#issuecomment-465995895,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADnymxAS4XtMp5v0JOI4VbPYmVhsFP2Bks5vPpxxgaJpZM4bGe-s
.

No plans on adding that, it's up to the user to determine how things should be formatted.

Next release will automatically json_encode those values. It's up to the user to determine how these values should be formatted. The json_encode is merely meant to make debugging this issue easier.

Sounds good


Better documentation of := vs <>

Type of issue: documentation

Impact: no functional change

Development Phase: request
Other information

I feel like I have been in several conversations lately about how confusing := and <> are. And I'm not even 100% confident that I could explain what each does in every scenario. This seems like something that a few Scastie examples + DecoupledIOs could "put to rest" and we could capture them as a cookbook or explanation on the website.
If the current behavior is a bug, please provide the steps to reproduce the problem:
N/A
What is the current behavior?
N/A
What is the expected behavior?
N/A
Please tell us about your environment:

N/A
What is the use case for changing the behavior?
Better documentation of an FAQ

This could be good for clarity. Based on my own reading of the documentation, here's what I believe:

:= is used for linking two wires together in a 'parallel' way similar to Verilog
<> does the same thing for a bundle of wires, automatically linking inputs to outputs

Maybe that's untrue, in which case I'd agree that improving the docs would be useful.

Hi Shorla, would be great to have you work on this!
I think a good way to tackle this issue would be to play around with a Scastie: https://scastie.scala-lang.org/qgcsppKCShmlyIOr8qudqQ
After reading up on Chisel Bundles and assignments on the website (by the way looks like this page is also missing a title):
https://www.chisel-lang.org/chisel3/docs/explanations/bundles-and-vecs.html
could try some different things  with <> and := , nested bundles like Decoupled in the Scastie and discuss them here

Hello, If I were to name this article, how do I go about it?  Sent from Mail for Windows 10 From: Megan WachsSent: Monday, October 11, 2021 5:04 PMTo: chipsalliance/chisel3Cc: Shorla; CommentSubject: Re: [chipsalliance/chisel3] Better documentation of `:=` vs `<>` (#2087) Hi Shorla, would be great to have you work on this!I think a good way to tackle this issue would be to play around with a Scastie: https://scastie.scala-lang.org/qgcsppKCShmlyIOr8qudqQAfter reading up on Chisel Bundles and assignments on the website (by the way looks like this page is also missing a title):https://www.chisel-lang.org/chisel3/docs/explanations/bundles-and-vecs.htmlcould try some different things with <> and := , nested bundles like Decoupled in the Scastie and discuss them here—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.

I created a pull request already after making the changes. but it is writing blocked or something.

okay. Thanks

Here are what I found out after trying the brain dump questions.

Does it matter the left-vs-right hand side? f1.io.x <> io.x? What is the difference between f1.io.x <> io.x and io.x <> f1.io.x? Is that an error, or does it give you the same result, or different verilog?

After swapping the right side to the left, i.e, f1.io.x <> io.x for io.x <> f1.io.x, the results for the verilog remained the same. no changes whatsoever.

What happens if we change the f1.io.x <> io.x to f1.io.x := io.x? What is different about the resulting verilog?

After replacing f1.io.x <>io.x with io.x := f1.io.x, the result also remained the same.
so, I got curious and added another question.  what if I swapped  f1.io.x := io.x for io.x := f1.io.x? what will happen?
this time, I got an error message. I guess that makes it a bug.
The error message is :
chisel3.internal.ChiselException: Connection between sink (PLink(IO in unelaborated Block)) and source (PLink(IO io_x in Filter)) failed @.parity: Sink is unwriteable by current module.
at ... ()
at Playground$Block.(main.scala:29)
at Playground$$anonfun$14.apply(main.scala:35)
at Playground$$anonfun$14.apply(main.scala:35)
at ... ()
at ... (Stack trace trimmed to user code only. Rerun with --full-stacktrace to see the full stack trace).
This goes to show a difference in the behaviour of the two functions. <> is  not direction sensitive, while := is direction sensitive.

Cool! I enhanced my example just a little bit to make sure the x and y are bidirectional (I added a ready in the opposite direction from the valid in the SimpleLink: https://scastie.scala-lang.org/IaGzEOzFS46wYqOlFJi6fg

Am I to try working around this new adjustment?

I tried to work on the third question but got stuck trying to add a wire. Here is the link to my scastie code: https://scastie.scala-lang.org/Shorla/jMke7SR5SE6MzRJNySEyMQ/6

Hi @Shorla , I see in your scastie you are using input and output, which are giving you compile errors. Try capitalizing those to Input and Output

I got this solved

Hi @Shorla , how can I best help you? Would love to have your help on this! Or, do you want to try a different issue? Let me know how I can help


Try to find other package to parse HTML on cloudflare

In this PR, using cheerio to parse HTML on cloudflare, but it was published 2 years ago and hasn't seen updates since that.
Try to find a better one.

I use linkedom in https://www.val.town/v/taras/markdown_download

I think linkedom will fail in Workers without access to document.

what do you mean, it works fine in my cf worker

Ah, cool.  I'm wrong then


Some problems with the Find plugin in master

After merging PR #13376 I found the following problems with the Find plugin in master:

The Find in Files action in the Search menu does nothing when Spyder is started with clean settings. That's because now it's associated to the Search button in its toolbar:

So it's clear why it does nothing: because there's no text to search by default. But in Spyder 4 that action was associated to the toggle action of the plugin, so it showed the plugin in case it was hidden (which is the default with clean settings).

All buttons in the Find toolbar are now QAction's, whereas in Spyder 4 they were QToolButton's. That doesn't allow us to remove their tooltips because QActions always have an associated tooltip. For instance, in PR #13376 I removed the tooltip of the Search button  because it was really unnecessary.

The last problem points to a really significant change (switching QToolButton's for QAction's). I don't understand its purpose because it makes things less flexible for us in master (like the above issue clearly shows).
@goanpeca, could you explain your rationale for this? Also, is it possible for us to revert to QToolButton's everywhere where they were used in Spyder 4?

The Find in Files action in the Search menu does nothing when Spyder is started with clean settings. That's because now it's associated to the Search button in its toolbar:

See https://github.com/spyder-ide/spyder/pull/13398

All buttons in the Find toolbar are now QAction's, whereas in Spyder 4 they were QToolButton's. That doesn't allow us to remove their tooltips because QActions always have an associated tooltip. For instance, in PR #13376 I removed the tooltip of the Search button because it was really unnecessary.

See https://github.com/spyder-ide/spyder/pull/13398

I don't understand its purpose because it makes things less flexible for us in master (like the above issue clearly shows).

That is how Qt works and is meant to be used. See https://doc.qt.io/qt-5/qaction.html

In applications many common commands can be invoked via menus, toolbar buttons, and keyboard shortcuts. Since the user expects each command to be performed in the same way, regardless of the user interface used, it is useful to represent each command as an action.

Actions can be added to menus and toolbars, and will automatically keep them in sync. For example, in a word processor, if the user presses a Bold toolbar button, the Bold menu item will automatically be checked.

Actions can be created as independent objects, but they may also be created during the construction of menus; the QMenu class contains convenience functions for creating actions suitable for use as menu items.

A QAction may contain an icon, menu text, a shortcut, status text, "What's This?" text, and a tooltip. Most of these can be set in the constructor. They can also be set independently with setIcon(), setText(), setIconText(), setShortcut(), setStatusTip(), setWhatsThis(), and setToolTip(). For menu items, it is possible to set an individual font with setFont().

Actions are added to widgets using QWidget::addAction() or QGraphicsWidget::addAction(). Note that an action must be added to a widget before it can be used; this is also true when the shortcut should be global (i.e., Qt::ApplicationShortcut as Qt::ShortcutContext).

Once a QAction has been created it should be added to the relevant menu and toolbar, then connected to the slot which will perform the action. For example:

Also, is it possible for us to revert to QToolButton's everywhere where they were used in Spyder 4?

I would not recommend it. Doing the way it is now, reduces work everywhere for users and developers. Anyway, see https://github.com/spyder-ide/spyder/pull/13398 which already fixes the issue.

I would not recommend it. Doing the way it is now, reduces work everywhere for users and developers and core developers.

Ok, no problem. Thanks for the detailed explanation!


Wallet API Fix: Update cancelled transactions status

Allen:
That’s why I said the v3 wallet could have a mismatched “confirmed” state for some txs that are cancelled when they are just going to become confirmed. The consequence is the tx is cancelled, but the tx state is not changed back to unconfirmed.

we need to fix 'confirm' feedback after cancelation of transaction in API calls and txs command

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior.
Expected behavior
A clear and concise description of what you expected to happen.
Required data

Node/Wallet/Miner log as text or screenshot
Config toml file or command line
OS: [e.g. Windows]
Rust Version
Cargo Version

Additional context
Add any other context about the problem here.

Searching the group I found the entire conversation and tried to reproduce it on Usernet:
I tried to perform the following steps described by Allen:
Allen: A confirmed tx cannot be cancelled. But you can cancel a tx before it becomes “confirmed”. So normally these txs will have “confirmed”: false. However I got several canceled tx (with txtype TxReceivedCancelled) have confirmed tag, which is abnormal I think.
In my environment, the transactions of both Receiver_Wallet and Sender_Wallet had the field confirmed? = false, I will try to run some more variations of this test tomorrow and if I have any progress I will try a correction.

Attempts to reproduce the bug
I was unable to reproduce the error in any of the cases mentioned.
I have tried to reproduce this error on Usernet in various ways, I have tried to run all tests manually and have not been successful in reproducing the error.
To be more accurate and make sure I didn't miss any points, I generated automated tests to execute the commands for me at the exact time I wanted. I have not been successful in reproducing this error.
In addition, at the end, I did a manual and forced test, I changed the code to wait a few seconds between the execution of the cancel command and the actual cancellation of the transaction by the code. Thus being able to cancel the transaction during the confirmation of the same. or shortly before or after too. Even in this case where I forced the wallet code to wait a few seconds, I could not reproduce this error.
Variations in tests
I basically tried doing the following variations manually and automatically:
Miner (2 possibilities):

On from the start of the test;
Off during test. Where it only started at the end of the attempt to confirm the transaction.

Method (3 possibilities):

http. I only used it with two wallets;
filet. I used it with two wallets and with only one, the one I sent was the same one I received;
self. In this method, I only used the wallet you sent.

Wallets (2 possibilities):

Only Sender, where it sent and received the transaction itself;
Sender and Receiver. in cases where I had transactions by http and file methods.

Cancellation options (3 possibilities):

Cancel only the transaction sent;
In this case, the fee for executing the send command is debited from the coins but the transaction does not finish. In no case, I have seen.

Cancel only the transaction received;
The transaction takes place normally, the money is debited from the wallet you sent and goes to the wallet you received.

The original transaction received is Received tx - Canceled and with status Confirmed = false and the money moved appears in the history in the form of another line, that is, it is as if I had received a "new" output.

Cancel both transactions.

Command order (4 possibilities):
We have the only command that is manual cancel. Confirmation happens automatically when the miner finds more blocks and sends them to the chain.

Execute the cancel command before committing the transaction
In this case, the transaction that was in the pool is removed from there as soon as the first block is generated after this cancellation. The transaction is not confirmed.

Execute the cancel command after committing the transaction
In this case, the system shows an error that makes it impossible to cancel because the transaction is already confirmed.

You can see this verification in the following command line inside the cancel function on file /epic-wallet/libwallet/src/internal/tx.rs :
if tx.tx_type != TxLogEntryType::TxSent && tx.tx_type != TxLogEntryType::TxReceived {
		return Err(ErrorKind::TransactionNotCancellable(tx_id_string))?;
	}
	if tx.confirmed == true {
		return Err(ErrorKind::TransactionNotCancellable(tx_id_string))?;
	}

Execute cancel command during the confirmation
To do this I needed to make that change I mentioned at the beginning where I changed the code to wait a few seconds trying to make the block confirm my transaction during the cancellation process.

Trying to force the transaction to have the status of confirmed = true and at the end also have the message that the transaction was canceled.
However, in this case, either the miner was stopped without being able to send the block to the chain because the transaction was canceled shortly before he was able to confirm it.
Or the transaction was done normally and the cancellation returned the error that it was impossible to cancel a committed transaction.
Combination of scenarios
The possible combinations of scenarios are the ones I mentioned above, however the Method depends on the amount of wallets I'm going to use and vice versa.
So if I used the self method, I would have to use only 1 wallet.
With the method being http I only used it with two wallets.
The file method was where I tested with one and two wallets.
Resulting in 4 possibilities for Method x Wallets.
So we have:
2 - Miner;
4 - Method x Wallets;
3 - Cancellation options;
4 - Command order.
resulting in 243*4 = 96 scenarios tested. Manually and automatically.
Conclusion
With all these scenarios tested and the code investigation done. We came to the conclusion that it is very difficult to reproduce this error.
With all this evidence I'm assuming this is a very unlikely error to happen. In addition to appearing to be just a visual error from what was reported on Telegram.
For these statements made, I will close this bug and in case anyone manages to reproduce or has evidence that it is something more serious than what I mentioned, I ask you to open it and demonstrate that you have such information.


Support for IPC / RPC

I'm using the Cmd layer to manager a hierarchy of processes, but have run into an issue with the interface when trying to implement some kind of basic IPC. In short, I need access to the ReadCloser and WriteCloser returned from exec.Cmd.Stdin() and exec.Cmd.Stdout().
Any thoughts on whether there could be a way to allow this in your library? Or maybe I'm missing something and it's already possible?
I'm more or less following this example: https://github.com/grd/go-ipc-example

Hi !
I see no reason for that example with go-IPC not to work. The Cmd is designed to be easy to use the output.
There are 3 ways of extracting the output from running Cmd instances, depending how you start the process: Buffered, Streaming, or both.
You can look at the tests in: https://github.com/ShinyTrinkets/overseer/blob/master/cmd_test.go , specifically TestCmdBothOutput and TestCmdOnlyStreamingOutput. I generally prefer the streaming option.
Be careful that once a Cmd is stopped, it cannot be started again.
Let me know if you have something specific that doesn't work.


BodyMovin Light is broken in 4.4.11+

bodymovin_light.js:5 Uncaught ReferenceError: ProjectInterface is not defined

I'm getting this error when trying to use bodymovin_light.js. It looks like it works up until 4.4.11. I'm not really sure how you build the light version, so debugging it is kind of difficult.
I pasted ProjectInterface from the regular bodymovin.js and it came up with another error, looking for HybridRenderer. So it seems like the light version is missing several components.
Thanks!

thanks! with the new effects, it broke.
Fixed and uploaded.

Looks like I'm getting
Uncaught ReferenceError: EffectsManager is not defined

now.

can you share the json file?

https://gist.github.com/mpeterson2/956deb157bda420e720313029b1a2fe3

Effects are not supported in the light version.
There seems to be a Tint effect in the pball1.png layer

Looks like removing the ef property made it work again. Thanks! Is there a list of features that do/don't work for the light version anywhere?

I've included a wiki page to detail it.
It only supports the svg renderer and I excluded the whole expressions and effects module.

Awesome, thanks! Gonna go ahead and close this then.


Question: GO-network(s) with hierarchy separation?

Hi,
I noticed that the current GO-network is constructed by using the overlap (Jaccard index) between genes over ALL GO-terms, regardless of GO-hierarchy (biological process, cellular component, molecular function).
This leads to. e.g isoforms having a very high score, since they naturally overlap in all 3 categories together. However, connections by pathways seem to be drowned out, at least in my example:
Even direct partners in the (well researched and basic) glycolysis¹ pathway do not make the cutoff value (0.1), like HK (e.g. HK1) and PGI .
However, you write you tried other networks in place of GO, like "protein-protein interaction network [21], a gene coessentiality network [41] or the gene co-expression network". So I would be interested in your take on this:
Do you think a separation of GO-networks by hierarchy (and maybe some filtering for term size) and the resulting highlighting of direct interaction partners would help the gene-gene transferability of predictions/perturbations?
Thank you!
PS: If you are interested in ~40% faster code (or a lot faster with joblib.Parallel) for the GO network generation, let me know. Can send a merge request.
¹https://en.wikipedia.org/wiki/Glycolysis

Thanks for your comment. We actually tested this out and indeed varying the GO-hierarchy did impact the predicted perturbation outcomes. In our case, the difference wasn't too significant but this may vary depending upon specific use cases and gene sets being perturbed.

@JulianRein you can also consider weighing terms by frequency -- I found that something like the following works a bit better in get_go:
from sklearn.feature_extraction.text import TfidfVectorizer

genes = gene2go.keys()
df = pd.DataFrame({'terms': [' '.join(v) for v in gene2go.values()]}, index=genes)

tfidf = TfidfVectorizer()

# Get GO term weights.
x = tfidf.fit_transform(df.terms)

# Pairwise weighted similarity.
df_sim = pd.DataFrame((x * x.T).todense(), index=genes, columns=genes).round(5).stack()

# Convert to the same format as `edge_list`; threshold may need to be different from 0.1.
tf_idf_edge_list = stacked[stacked > 0.1].rename_axis(('source', 'target')).reset_index(name='importance')

@giladmishne  Thanks, great idea. I was already removing large terms since they covered too much, but this is way better than a cutoff-filtering.


Usability with msg::disjoint_field

The msg::disjoint_field is very useful to me, but I'm going through the problems below and would be happy to make a PR with these changes:
Add access to the DWordIndex of the contained types
When making a message that uses only msg::field (and no msg::disjoint_field), it is normally easy to calculate the necessary message size, since it should be 1 + std::max({FieldsT::DWordIndex...}) (considering we start always from zero), when FieldsT is the template parameter pack of the message fields.
It's not easy, though, to perform this when using messages with msg::disjoint_field because the inner fields are not provided as a type alias and the fields variable is private.
Could a public type alias to FieldsT be provided to make this calculation possible? Or maybe a method that returns a list of DWordIndex of every type?
Add ValueType alias
Same situation as 1, but now for making templates that use the ValueType field. It is avaliable in msg::field but not in msg::disjoint_field, even though it is one of the template arguments.
Could a public alias to T, say, using ValueType = T be provided?

With the #320 merge, now msg::disjoint_field does not compile when part of a msg::message_base because it has no DWordExtent member. #321 fixes that.


drivers: modem: gsm_ppp: implement RSSI readout

Implement readout of RSSI prior to enabling PPP.
Unless GSM muxing is used, the RSSI can only be read outside the PPP session.
Therefore we read the RSSI after attaching, and prior to enabling PPP.
In order to get a valid RSSI, several (up to 10) readout attempts are done.
Signed-off-by: Hans Wilmers<EMAIL_ADDRESS>

This PR is now superseded by #35805. Unless we can merge these changes soon, it is totally fine for me to continue discussion on #35805 instead.

This PR has been delayed because 2.6 is still pending. After the 2.6 is released, we can then either go with this one or the newer version. I do not have preference here, you can decide which version is more preferred one.

This PR has been delayed because 2.6 is still pending. After the 2.6 is released, we can then either go with this one or the newer version. I do not have preference here, you can decide which version is more preferred one.

Thank you for the feedback. I actually prefer going over to the new version to make things simple.

Closing, as this PR is fully contained in new PR #35805.


feat(param-model): DEVX-164: Enable model detail view

This enabled the model detail view in the two column layout as per DEVX-164 customer request

Updated styles
New Preview:


replace pyemit with zeromq

Zeromq contains same major features as pyemit: from in-process event to inter-process/cross-network messaging

no plan to replace pyemit, but we have a plan to upgrade redis lib in pyemit.


fix(devtools): patch webrequest to fix devtools

Fix an incompatibility between electron 2.x and devtools by patching the electron webRequest handler.
See https://github.com/electron/electron/issues/13008#issuecomment-400261941
Fix #490

Tested ACK d4cb99f

utACK d4cb99f


Name for the project

"Simulador de Frenagem" is not a good name for a project. What you, guys, suggest?

UnBreak?

UnBrake

UnBrake

Yes! I wrote wrong.

Unbrake in English means stop braking too. In other words, accelerate. It seems a good name

UnBrake... it's funny and a liked

As most of contributors (@joaorobson, @icaropires, @Bumbleblo, @GabrielTiveron and @ViniciusBernardo) manifested favorable. It's decided!


Retrieve two value in dropdown error

Steps to Reproduce

...
...
...

Logs

Without any details/explanation, there's nothing we can do with this bug. If you still have an issue to report, please file a new bug and provide all the requested information.


silx.gui.utils.glutils: Fixed isOpenGLAvailable

Should fix issues with import when running isOpenGLAvailable. PR 3184 was apparently not enough.
It still needs testing.
Alternative can be to import subprocess lazily in def _runtimeOpenGLCheck(version)
Related to #3182

Ah ok i see.
But what is the part of the code relying on concurrent.futures?

Ah ok i see.
But what is the part of the code relying on concurrent.futures?

Oh i remember now... Was the relative import or our concurrent module. No luck.

Oh i remember now... Was the relative import or our concurrent module. No luck.

It doesn't fix the issue, that's a weird issue.

It doesn't fix the issue, that's a weird issue.

To me the good way to handle it is to use -m with the module name.
Relative modules will just be relative, as we expect.

To me the good way to handle it is to use -m with the module name.
Relative modules will just be relative, as we expect.

Here is traceback from a beamline
ERROR 2021-01-13 15:03:00,611 flint.output: Traceback (most recent call last):
ERROR 2021-01-13 15:03:00,611 flint.output:   File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/silx/gui/utils/glutils.py", line 37, in <module>
ERROR 2021-01-13 15:03:00,611 flint.output:     import subprocess
ERROR 2021-01-13 15:03:00,611 flint.output:   File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/subprocess.py", line 50, in <module>
ERROR 2021-01-13 15:03:00,611 flint.output:     import signal
ERROR 2021-01-13 15:03:00,611 flint.output:   File "/opt/bliss/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/silx/gui/utils/signal.py", line 32, in <module>
ERROR 2021-01-13 15:03:00,611 flint.output:     from silx.gui.utils import concurrent
ERROR 2021-01-13 15:03:00,611 flint.output:   File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/silx/gui/utils/concurrent.py", line 35, in <module>
ERROR 2021-01-13 15:03:00,611 flint.output:     from concurrent.futures import Future
ERROR 2021-01-13 15:03:00,611 flint.output:   File "/opt/bliss/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/silx/gui/utils/concurrent.py", line 35, in <module>
ERROR 2021-01-13 15:03:00,611 flint.output:     from concurrent.futures import Future
ERROR 2021-01-13 15:03:00,611 flint.output: ModuleNotFoundError: No module named 'concurrent.futures'; 'concurrent' is not a package

No idea why they don't complain anymore.

Here is traceback from a beamline
ERROR 2021-01-13 15:03:00,611 flint.output: Traceback (most recent call last):
ERROR 2021-01-13 15:03:00,611 flint.output:   File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/silx/gui/utils/glutils.py", line 37, in <module>
ERROR 2021-01-13 15:03:00,611 flint.output:     import subprocess
ERROR 2021-01-13 15:03:00,611 flint.output:   File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/subprocess.py", line 50, in <module>
ERROR 2021-01-13 15:03:00,611 flint.output:     import signal
ERROR 2021-01-13 15:03:00,611 flint.output:   File "/opt/bliss/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/silx/gui/utils/signal.py", line 32, in <module>
ERROR 2021-01-13 15:03:00,611 flint.output:     from silx.gui.utils import concurrent
ERROR 2021-01-13 15:03:00,611 flint.output:   File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/silx/gui/utils/concurrent.py", line 35, in <module>
ERROR 2021-01-13 15:03:00,611 flint.output:     from concurrent.futures import Future
ERROR 2021-01-13 15:03:00,611 flint.output:   File "/opt/bliss/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/silx/gui/utils/concurrent.py", line 35, in <module>
ERROR 2021-01-13 15:03:00,611 flint.output:     from concurrent.futures import Future
ERROR 2021-01-13 15:03:00,611 flint.output: ModuleNotFoundError: No module named 'concurrent.futures'; 'concurrent' is not a package

No idea why they don't complain anymore.

-m fixes the issue, thanks @vallsv for the idea.
There is still an issue when run through bootstrap.py though.

-m fixes the issue, thanks @vallsv for the idea.
There is still an issue when run through bootstrap.py though.

Root cause is here:

Import of silx.gui._glutils.OpenGLWidget in the script part (https://github.com/silx-kit/silx/blob/master/silx/gui/utils/glutils.py#L152):

if __name__ == "__main__":
    from silx.gui._glutils import OpenGLWidget

and import of silx.gui.utils.glutils in OpenGLWidget as usage of isOpenGLAvailable, so the test is actually using itself...

Root cause is here:

Import of silx.gui._glutils.OpenGLWidget in the script part (https://github.com/silx-kit/silx/blob/master/silx/gui/utils/glutils.py#L152):

if __name__ == "__main__":
    from silx.gui._glutils import OpenGLWidget

and import of silx.gui.utils.glutils in OpenGLWidget as usage of isOpenGLAvailable, so the test is actually using itself...

Updated with an altenative: copy glutils.py in a temporary folder before running it as a script.
From what I tested, it does not seems to change the duration of the test.
This avoids:

Running a script in the silx.gui.utils folder (which cause python's signal and concurrent packages to be overridden by those of silx.gui.utils)
Using -m which fails when run through bootstrap.py

I also added -s -S option to preserve as much as possible sys.path from calling process.
Still need to be tested on macos and windows

Updated with an altenative: copy glutils.py in a temporary folder before running it as a script.
From what I tested, it does not seems to change the duration of the test.
This avoids:

Running a script in the silx.gui.utils folder (which cause python's signal and concurrent packages to be overridden by those of silx.gui.utils)
Using -m which fails when run through bootstrap.py

I also added -s -S option to preserve as much as possible sys.path from calling process.
Still need to be tested on macos and windows

Any idea why the bootstrap is not working with -m? Souds like there is something weird with, or it just about our own protections?

Any idea why the bootstrap is not working with -m? Souds like there is something weird with, or it just about our own protections?

From my current understanding, bootstrap patches sys.path and this is patch is not done for the subprocess so you end-up with the root of the project in sys.path.
One option would be in bootstrap to change the current working directory when it is the root of the project, but that has other side-effects.
I'll still dig a bit, I am not happy with the temporary file, but for now it is what I found that works in most conditions.

From my current understanding, bootstrap patches sys.path and this is patch is not done for the subprocess so you end-up with the root of the project in sys.path.
One option would be in bootstrap to change the current working directory when it is the root of the project, but that has other side-effects.
I'll still dig a bit, I am not happy with the temporary file, but for now it is what I found that works in most conditions.

One last proposition (the best from my point of view): move glutils.py to glutils/__init__.py and run it as a script in the subprocess, so there is no conflict with what's in the script directory.
Works fine, no need for temporary file.
I added -s and -S python options to keep sys.path as it is in the calling process.
Ready for review.

One last proposition (the best from my point of view): move glutils.py to glutils/__init__.py and run it as a script in the subprocess, so there is no conflict with what's in the script directory.
Works fine, no need for temporary file.
I added -s and -S python options to keep sys.path as it is in the calling process.
Ready for review.

Sounds like a cheat, but it's fine for me.

Sounds like a cheat, but it's fine for me.

Yes, I would have preferred to use -m but it fails with bootstrap.py... unless we move the sources in a sub-folder (#3357)

Yes, I would have preferred to use -m but it fails with bootstrap.py... unless we move the sources in a sub-folder (#3357)


Add support for defining constants

Add support for defining constants, to prevent values from being repeated (e.g. deployment environment names, tags, etc).

This is done ... see !constant for details.


[Question] whisper vs. ort-wasm-simd-threaded.wasm

While looking into https://cdn.jsdelivr.net/npm/<EMAIL_ADDRESS>I can see a reference to ort-wasm-simd-threaded.wasm however that one never seem to be loaded for whisper/automatic-speech-recognition ( https://huggingface.co/spaces/Xenova/whisper-web ) while it always use ort-wasm-simd.wasm . I wonder if there is a way to enable or enforce threaded wasm and so improve transcription speed?

After testing for a bit, you're right! It never uses the threaded wasm files. Does this maybe help: https://github.com/microsoft/onnxruntime/issues/9681#issuecomment-968380663 ? I'll try play around with this.
cc'ing @fs-eire @josephrocca for some help too.

good spot! Simply adding:
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp

...will indeed invoke wasm-simd-threaded.wasm. However I do not see multiple workers spawned (as I would expect) nor any performance improvements.

an easy way to check is to open devtool on that page, and check if typeof SharedArrayBuffer is undefined.
if multi-thread features are available, ort-web will spawn [CPU-core-number / 2] (up-to 4) threads, if <ORT_ENV_OBJ>.wasm.numThreads is not set.
if <ORT_ENV_OBJ>.wasm.numThreads is set, use that number to spawn workers (main thread counts). setting to 1 will force disable multi-thread feature.

@josephrocca following is printed:
self.crossOriginIsolated -> true
env.backends.onnx.wasm.numThreads -> undefined
I have also tried to explicitly set numThreads to 4 but same result.
Something interesting to mention:

I use dev tools / sources / threads to observe running threads, where I see my index.html and my worker.js where transformers.js is running, nothing more reported until!...
...until a very last moment where transformers.js transcription finishes and then I can see 3 more threads appearing, I believe these has something todo with transformers running in threads (b/c these do not appear when I set numThreads=0), however I wonder .... why it appears so late? and why no performance difference?

env.backends.onnx.wasm.numThreads -> undefined

for onnxruntime-web, it's env.wasm.numThreads:
import { env } from 'onnxruntime-web';
env.wasm.numThreads = 4;

for transformers.js I believe it is exposed through different way

I believe @jozefchutka was doing it correctly:
env.backends.onnx.wasm.numThreads

I.e., env.backends.onnx is the onnx env variable

env.backends.onnx.wasm object exists env object... so I think its the right one...
please let me know if I can assist/debug any further

I've been able to do some more testing on this and I am not seeing any performance improvements either... 🤔 ort-wasm-simd-threaded.wasm is being loaded, but I don't think it's working correctly. @fs-eire am I correct in saying that if SharedArrayBuffer is detected, it will default to the number of threads available? So, even in this case, setting env.backends.onnx.wasm.numThreads (which is correct) would not be necessary.

I've been able to do some more testing on this and I am not seeing any performance improvements either... 🤔 ort-wasm-simd-threaded.wasm is being loaded, but doesn't seem to be working correctly. @fs-eire am I correct in saying that if SharedArrayBuffer is detected, it will default to the number of threads available? So, even in this case, setting env.backends.onnx.wasm.numThreads (which is correct) would not be necessary, and we should be seeing performance improvements either way.

The code is here:
https://github.com/microsoft/onnxruntime/blob/main/js/web/lib/backend-wasm.ts#L29-L32
this code run only once when trying to create the first inference session

Right, so we should be seeing a performance improvement by simply having loaded ort-wasm-simd-threaded.wasm?

Yes. if you see it is loaded but no worker threads spawn, that is likely to be a bug.

Yes, this is something mentioned above by @jozefchutka:

Something interesting to mention:

I use dev tools / sources / threads to observe running threads, where I see my index.html and my worker.js (which impots transformers.js), nothing else reported until!...
...until a very last moment where transformers.js transcription finishes and then I can see 3 more threads appearing, I believe these has something todo with transformers running in threads (b/c these do not appear when I set numThreads=0), however I wonder .... why it appears so late? and why no performance difference?

transformers.js does not do anything fancy when it comes to threading, so I do believe this is an issue with onnxruntime-web. Please let me know if there's anything I can do to help debug/test

@xenova Unless I misunderstand, you or @jozefchutka might need to provide a minimal example here. I don't see the problem of worker threads appearing too late (i.e. after inference) in this fairly minimal demo, for example:
https://josephrocca.github.io/openai-clip-js/onnx-image-demo.html
That's using the latest ORT Web version, and has self.crossOriginIsolated==true0. I see ort-wasm-simd-threaded.wasm load in the network tab, and worker threads immediately appear - before inference happens.

[0] Just a heads-up: For some reason I had to manually refresh the page the first time I loaded it just now - the service worker that adds the COOP/COEP headers didn't refresh automatically like it's supposed to.

if you use ort.env.wasm.proxy flag, the proxy worker will be spawn immediately. this is different worker to the workers created for multithread computation

Should we see performance improvements even if the batch size is 1? Could you maybe explain how work is divided among threads @fs-eire?

Here is a demo:
worker.js
import { env, pipeline } from "https://cdn.jsdelivr.net/npm/<EMAIL_ADDRESS>
env.allowLocalModels = false;
//env.backends.onnx.wasm.numThreads = 4;

const file = "tos.pcm";
const model = "Xenova/whisper-base.en";
const buffer = new Float32Array(await (await fetch(file)).arrayBuffer());
const pipe = await pipeline("automatic-speech-recognition", model);

const t0 = performance.now();
const result = await pipe(buffer, {
	chunk_length_s: 30,
	stride_length_s: 5,
	return_timestamps: true});

for(let {text, timestamp} of result.chunks)
	console.log(`${timestamp[0]} -> ${timestamp[1]} ${text}`);

console.log(performance.now() - t0);

demo.html
<script>
new Worker("worker.js", {type:"module"});
</script>

a script to generate .pcm file:
ffmpeg -i tos.mp4 -filter_complex [0:1]aformat=channel_layouts=mono,aresample=16000[aout] -map [aout] -c:a pcm_f32le -f data tos.pcm

changing value of env.backends.onnx.wasm.numThreads makes no difference in transcription performance of tested 1 minute long pcm.

Yes. if you see it is loaded but no worker threads spawn, that is likely to be a bug.

@fs-eire Any updates on this maybe? 😅

@jozefchutka Can you maybe test with @josephrocca's previous suggestion? env.backends.onnx.wasm.proxy=true

Edit: Oooh, unless this is something that specifically occurs when ORT Web is loaded from within a web worker? I haven't tested that yet, since I've just been using use the ort.env.wasm.proxy flag to get the model off the main thread "automatically".

Did you try not using a worker.js file, and just keeping all transformers.js logic in the UI thread (but still using proxy=true).

This is a version without my worker:
<script type="module">
import { env, pipeline } from "https://cdn.jsdelivr.net/npm/<EMAIL_ADDRESS>
env.allowLocalModels = false;
env.backends.onnx.wasm.proxy = true;

const file = "tos.pcm";
const model = "Xenova/whisper-base.en";
const buffer = new Float32Array(await (await fetch(file)).arrayBuffer());
const pipe = await pipeline("automatic-speech-recognition", model);

const t0 = performance.now();
const result = await pipe(buffer, {
	chunk_length_s: 30,
	stride_length_s: 5,
	return_timestamps: true});

for(let {text, timestamp} of result.chunks)
	console.log(`${timestamp[0]} -> ${timestamp[1]} ${text}`);

console.log(performance.now() - t0);
</script>

With this script, I can see 4 workers opened, however await pipeline() is never resolved and the script basically hangs on that line. Can you please have a look?

await pipeline() is never resolved

Are you sure it's not just downloading the model? Can you check your network tab?
I'll test this though.

@xenova same what I have observed

I just tried this with a simple app and works fine for me.
Let me try with transformers.js next.
As long you see ort-wasm-simd-threaded.wasm loading it should work.
For testing you can add
--enable-features=SharedArrayBuffer
to the chrome command line to rule out any COEP/COOP issue.

As long you see ort-wasm-simd-threaded.wasm loading it should work.

@guschmue It does seem to load this file when running this demo, but no performance improvements (all 3.7 seconds)

I am still using v1.14.0, so if something changed since then, I can update and check


bitcoindnotify: fix subtest closure in unit tests

A unit test flake from this build,
--- FAIL: TestHistoricalConfDetailsTxIndex (11.02s)
panic: runtime error: invalid memory address or nil pointer dereference
	panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x4 pc=0x7663b0]

goroutine 4 [running]:
testing.tRunner.func1.2({0x9bd860, 0xf796a0})
	/opt/hostedtoolcache/go/1.19.2/x64/src/testing/testing.go:1396 +0x24e
testing.tRunner.func1()
	/opt/hostedtoolcache/go/1.19.2/x64/src/testing/testing.go:1399 +0x39f
panic({0x9bd860, 0xf796a0})
	/opt/hostedtoolcache/go/1.19.2/x64/src/runtime/panic.go:884 +0x212
github.com/btcsuite/btcwallet/chain.(*BitcoindConn).Stop(0x4fc185?)
	/home/runner/work/go/pkg/mod/github.com/btcsuite/btcwallet@v0.16.6-0.[202](https://github.com/lightningnetwork/lnd/actions/runs/3710090005/jobs/6289289320#step:5:203)21208210930-6f3f55efb230/chain/bitcoind_conn.go:222 +0x30
testing.(*common).Cleanup.func1()
	/opt/hostedtoolcache/go/1.19.2/x64/src/testing/testing.go:1041 +0x11f
testing.(*common).runCleanup(0xc00016a9c0, 0xc0005cbae0?)
	/opt/hostedtoolcache/go/1.19.2/x64/src/testing/testing.go:1210 +0x95
testing.tRunner.func2()
	/opt/hostedtoolcache/go/1.19.2/x64/src/testing/testing.go:1440 +0x29
panic({0x9bd860, 0xf796a0})
	/opt/hostedtoolcache/go/1.19.2/x64/src/runtime/panic.go:884 +0x212
github.com/btcsuite/btcwallet/chain.(*BitcoindConn).NewBitcoindClient(0x0)
	/home/runner/work/go/pkg/mod/github.com/btcsuite/btcwallet@v0.16.6-0.20221[208](https://github.com/lightningnetwork/lnd/actions/runs/3710090005/jobs/6289289320#step:5:209)[210](https://github.com/lightningnetwork/lnd/actions/runs/3710090005/jobs/6289289320#step:5:211)930-6f3f55efb230/chain/bitcoind_conn.go:337 +0x51
github.com/lightningnetwork/lnd/chainntnfs/bitcoindnotify.New(0xc00016a9c0?, 0xf850a0, {0xc27780?, 0xc0015780f0}, {0xc27750?, 0xc0015780f0}, 0xc00056fec0)
	/home/runner/work/lnd/lnd/chainntnfs/bitcoindnotify/bitcoind.go:104 +0x1b3
github.com/lightningnetwork/lnd/chainntnfs/bitcoindnotify.setUpNotifier(0xc00016a9c0, 0xc0005ce0e0?, {0xc27780, 0xc0015780f0}, {0xc27750, 0xc0015780f0}, 0x1?)
	/home/runner/work/lnd/lnd/chainntnfs/bitcoindnotify/bitcoind_test.go:61 +0x85
github.com/lightningnetwork/lnd/chainntnfs/bitcoindnotify.testHistoricalConfDetailsTxIndex(0xc00016a9c0, 0x60?)
	/home/runner/work/lnd/lnd/chainntnfs/bitcoindnotify/bitcoind_test.go:124 +0x24a
github.com/lightningnetwork/lnd/chainntnfs/bitcoindnotify.TestHistoricalConfDetailsTxIndex(0x0?)
	/home/runner/work/lnd/lnd/chainntnfs/bitcoindnotify/bitcoind_test.go:109 +0x31
testing.tRunner(0xc00016a9c0, 0xb856a0)
	/opt/hostedtoolcache/go/1.19.2/x64/src/testing/testing.go:1446 +0x10b
created by testing.(*T).Run
	/opt/hostedtoolcache/go/1.19.2/x64/src/testing/testing.go:1493 +0x35f
FAIL	github.com/lightningnetwork/lnd/chainntnfs/bitcoindnotify

This is likely introduced from cac8f54a45, due to how the cleanup of the tests was changed. Previously the cleanup was run within the test function, now it's run when the whole testing.T finishes. Since the two sub tests share the same test closure, the second test can be affected by the first test, which might modify the bitcoind conn used in the test.

Maybe paralleltest is another linter we want to disable...

ah...yeah don't know how much we benefit from it, since the unit test is not our bottleneck timewise.

Hmm, looks like we're running into the same issue in TestInterfaces now.

@guggero This is fixed now btw.


iso format date and time doesn't work with the datetimefromisoformat parameter

It only appears to work with dates and screws up when you input a time. It was copied from the variable page example: https://docs.python.org/3/library/datetime.html#datetime.datetime.fromisoformat
Refer below:

This is probably because yet another character has to be added to the parsing regex

got solution for this in local commits, have solved the urgent usecase and will push proper solution on saturday


Issue with subscript not existing causing crash

Ive stumbled upon a case where my server returned a partially formed body that doesnt include a key.
I see no way in the api to safely access a subscript that may not exist.
Json line 65:                    json.jsonData = (jsonData as! [String: Any])[s]!
My code:
 .onJson { j in
            print(j)
            if j.stringified?.contains("script") != nil { // added to get around the crash
            $script.wrappedValue = j["script"].string
            } // added
        }

Id expect nil as opposed to a crash. I think thats what js would do, just return undefined for a non existing key instead of treating it as an error.
In my xp, though I use force unwraps , I nearly always end up reverting them.

Nice catch. I think we could include another subscript like:
j[optional: "script"]?.string

Would that work for you?

Your other option is to use Codable, which I think is preferable in most cases:
struct SomeData : Codable {
  let script: String?
}
AnyRequest<SomeData> {
  ...
}
.onObject { someData in
  $script.wrappedValue = someData.script
}

it should. im guessing the server just didnt encode that part.
I had just ran my app in catalyst so it was in a state it had not previously been in but kinda suprised as this is the first time seeing it and the state i expected it to be in, should have occurred before.
Though the cause is the server it seems like something to catch
Sent from my iPhone

On Apr 19, 2022, at 4:08 PM, Carson Katri @.***> wrote:

Your other option is to use Codable, which I think is preferable in most cases:
struct SomeData : Codable {
let script: String?
}
AnyRequest {
...
}
.onObject { someData in
$script.wrappedValue = someData.script
}
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.

I usually use coddle but Request had Json baked in so I just used it since it was just a normally two property object.


script fail when challenge url is redirected to https with self signed certificate

I ran into this bug while generation certificate for third party software that manage itself apache configuration and force redirection to https.
In this context, the first certificate generation fail because https cert is auto-signed.
letsencrypt politic about self-signed certs  (https://letsencrypt.org/fr/docs/challenge-types/) :

Our implementation of the HTTP-01 challenge follows redirects, up to 10 redirects deep. It only accepts redirects to “http:” or “https:”, and only to ports 80 or 443. It does not accept redirects to IP addresses. When redirected to an HTTPS URL, it does not validate certificates (since this challenge is intended to bootstrap valid certificates, it may encounter self-signed or expired certificates along the way).

I think acme_tiny should behave the same.
i did the following modification localy and post it here in case you want to re-use it !
acme.diff.txt

Don't use that patch (in its current form)! It disables certificate validation for all requests, including the ones to the CA.
If you want to work around this problem, disable certificate validation only for the check whether the challenge file is there, and not everywhere!

ty for the info, i will use it !

same happens with expired certificates. I think certificate validation should be ignored (boulder does) while checking if the challenge is there.
https://community.letsencrypt.org/t/virtualmin-lets-encrypt-web-based-validation-failed/117103?u=9peppe


Support one-to-many transforms

Currently transforms are one-to-one. It'd be useful if the transform implementation could return multiple values. For instance with AVA we'll want to cache static analysis of the test files.
There should also be an interface for accessing cached values, given the cache directory and the hash. Again in AVA the transform implementation writes source maps to disk, coordinating their location with the test worker which needs to read them. This could be done through caching-transform itself.
(Source maps should still be written to disk in order to play nice with source-map-support, but the precompiler could do that without having to coordinate with the worker.)
My proposal is to allow the transform() implementation to return an object. Keys can be used to access particular results, values must be strings or buffers. When called for an input that has already been cached a similar object can be returned.
Currently caching-transform is a factory for a transform function. We could add a get(hash, key?) method. Without the key the default result (string / buffer / object) is returned. With the key a specific value is returned. If there is no value for the hash or key, null is returned.
We could write a JSON object to disk, though that'd be tricky with binary data. It also means that getting a particular value would require the entire cache entry to be read into memory. Alternatively we could write a simple packing implementation that allows random access. (Tar would be an obvious solution, but existing implementations seem to be asynchronous, and as far as I can tell tar requires you to seek for individual files.) A final option is to write a "header" and individual results as separate files.

Tar would be an obvious solution, but existing implementations seem to be asynchronous

Maybe asar? It's async, but I guess we could do a PR adding a sync interface.

@sindresorhus asar looks good! Bit more advanced than our needs but pretty similar to what I had in mind.

It'd be nice though if we could store text data in the archive so you can still hack it a little. But at that point perhaps storing multiple files on disk is a better approach.

And of course if we use asar you could use that to unpack, edit, and repack…

I doubt asar will provide all the protections that graceful-fs does.
What if we just use file extensions, and enforce keys to be valid extensions:
node_modules/.cache
  key1.js
  key1.map
  key2.js
  key2.map
  key3.js
  key3.map

This is what we do in AVA now, but we could formalize it here.

It'd be nice though if we could store text data in the archive so you can still hack it a little.

Or just examine it. I actually do that pretty frequently when debugging AVA - just to make sure something hasn't gone haywire in a transform.

I doubt asar will provide all the protections that graceful-fs does.

Protections?

What if we just use file extensions, and enforce keys to be valid extensions:

I'd like to remove the extension option. Then if you return a string/buffer, we write to ${hash}.default. Other files are written to ${hash}.${key}. To avoid globbing we only support accessing entries by key (and hash).

Protections?

graceful-fs avoids write collisions.

I like the plan, maybe change extension to defaultExtension? I like that it is easy to examine the file in the cache.

graceful-fs avoids write collisions.

I assumed asar would create a buffer, which we could then write to disk.

I like the plan, maybe change extension to defaultExtension? I like that it is easy to examine the file in the cache.

I'm not sure why it should be configurable. If we're concerned about operating systems not knowing what to do with a .default extension we could use .txt.

I assumed asar would create a buffer, which we could then write to disk.

If that is the case, then I don't get the appeal. We want random access to individual components.

We want random access to individual components.

Sure, but you mentioned graceful-fs in the context of write collisions. Though I suppose it'll help with reads as well.
Anyway asar doesn't currently have a synchronous implementation so it'll be easier for us to lay out multiple files on disk.


nonlinear stepping routines in SCAN

exponential stepping in delay

see also #150

Would be cool to allow something like
def linlog(start, stop, numlogpts, numlinpts, switch,  negative=False):
    lin = np.linspace(start, switch, numlinpts+1)[:-1]
    log = np.logspace(np.log10(switch), np.log10(stop), numlogpts)
    out = np.concatenate((lin, log))
    if negative:
        out *= -1
    return out


add support for Reactions API

Fixes #356.
Change-Id: Iecc8d7d7c11a8ce9ed38c6d024683815495cb8b4

Thanks for considering and resolving the comments I've posted so far Glenn.
Apologies for a spread-over-long-amount of time review rather than all-at-once, but I'm discovering issues as I make progress on using this API to implement something (and no way to have drafts in GitHub). Consider the review a WIP until I send the last message saying so. :)
I've found an issue that should be fixed.
All the List* endpoints currently don't take any options, making it impossible to get anything but the first page of results. This is problematic for entries with huge number of reactions (e.g., https://github.com/golang/go/issues/15292#issue-148234131).
So, the List* methods should take an extra opt *ListOptions parameter and use it, to enable pagination to be controlled. E.g., similar to https://github.com/gmlewis/go-github/blob/a68a8707f3c18a3a47bb0975ca29a9239792dc01/github/activity_events.go#L88-L89.

Ok, finished reviewing. See new comments above, but aside from that, I don't see anything else, LGTM.


Breaks when using public path on the fly

If you are using a public path on the fly, then the window.__CSS_CHUNKS__ maps to an incorrect URL as the publicPath does not exist in the stats object.
https://webpack.js.org/configuration/output/#output-publicpath
https://webpack.js.org/guides/public-path/#on-the-fly
I think the solution would be to detect if the stats file has the publicPath and if not then babel-plugin-universal-import's getHref function should manually append the __webpack_public_path__. It would probably be even cleaner if webpack-flush-chunks never used the public path and left it entirely up to babel-plugin-universal-import to use the __webpack_public_path__ but that would be a breaking change.
Happy to submit a PR if this generally makes sense.

Hey, there, try setting clientStats.publicPath directly prior to calling flushChunks. That should handle it.


No such element: Unable to locate element: {"method":"css selector","selector":".next"}

I was not able to understand this issue. Would like to help me?
DevTools listening on ws://<IP_ADDRESS>:49170/devtools/browser/91092bb7-fd9b-493e-814e-fece11203277
2019-11-22 12:57:28,971 INFO 423    :main.py(34780) - Scraping up to 15 reviews.
2019-11-22 12:57:28,993 INFO 361    :main.py(34780) - Signing in to<EMAIL_ADDRESS>2019-11-22 12:57:38,056 INFO 342    :main.py(34780) - Navigating to company reviews
2019-11-22 12:57:49,113 INFO 286    :main.py(34780) - Extracting reviews from page 1
2019-11-22 12:57:49,160 INFO 291    :main.py(34780) - Found 10 reviews on page 1
2019-11-22 12:57:49,518 INFO 297    :main.py(34780) - Scraped data for "Growth through challenge"(Mon Mar 11 2019 08:15:39 GMT+0200 (Eastern European Standard Time))
2019-11-22 12:57:50,343 INFO 297    :main.py(34780) - Scraped data for "Coming to work here was the best decision ever."(Fri Aug 24 2018 20:34:04 GMT+0300 (Eastern European Summer Time))
2019-11-22 12:57:50,955 INFO 297    :main.py(34780) - Scraped data for "I am a buisness phone banker"(Thu Nov 21 2019 07:36:02 GMT+0200 (Eastern European Standard Time))
2019-11-22 12:57:51,531 INFO 297    :main.py(34780) - Scraped data for "Wells Fargo a fine place to work."(Wed Nov 20 2019 05:41:15 GMT+0200 (Eastern European Standard Time))
2019-11-22 12:57:52,044 INFO 297    :main.py(34780) - Scraped data for "Premier banker"(Tue Nov 19 2019 22:03:04 GMT+0200 (Eastern European Standard Time))
2019-11-22 12:57:52,559 INFO 297    :main.py(34780) - Scraped data for "Good Place"(Tue Nov 19 2019 10:37:48 GMT+0200 (Eastern European Standard Time))
2019-11-22 12:57:53,082 INFO 297    :main.py(34780) - Scraped data for "Great Environment"(Tue Nov 19 2019 13:48:19 GMT+0200 (Eastern European Standard Time))
2019-11-22 12:57:53,490 INFO 297    :main.py(34780) - Scraped data for "Amazing"(Tue Nov 19 2019 15:36:25 GMT+0200 (Eastern European Standard Time))
2019-11-22 12:57:53,877 INFO 297    :main.py(34780) - Scraped data for "Wonderful Environment to Grow and Learn"(Mon Nov 18 2019 19:29:21 GMT+0200 (Eastern European Standard Time))
2019-11-22 12:57:54,258 INFO 297    :main.py(34780) - Scraped data for "Very corporate but good job overall"(Mon Nov 18 2019 17:45:43 GMT+0200 (Eastern European Standard Time))
2019-11-22 12:57:54,294 INFO 326    :main.py(34780) - Going to page 2
Traceback (most recent call last):
File "main.py", line 465, in
main()
File "main.py", line 453, in main
go_to_next_page()
File "main.py", line 330, in go_to_next_page
'next').find_element_by_tag_name('a')
File "C:\Users\E20008699\AppData\Local\Continuum\anaconda3\lib\site-packages\selenium\webdriver\remote\webelement.py", line 398, in find_element_by_class_name
return self.find_element(by=By.CLASS_NAME, value=name)
File "C:\Users\E20008699\AppData\Local\Continuum\anaconda3\lib\site-packages\selenium\webdriver\remote\webelement.py", line 659, in find_element
{"using": by, "value": value})['value']
File "C:\Users\E20008699\AppData\Local\Continuum\anaconda3\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "C:\Users\E20008699\AppData\Local\Continuum\anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\E20008699\AppData\Local\Continuum\anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".next"}
(Session info: headless chrome=78.0.3904.97)

Hi all. I was able to fix it.
Please use this as paging_control.
`def more_pages():
paging_control = browser.find_element_by_css_selector('.eiReviews__EIReviewsPageContainerStyles__pagination.noTabover.mt')
next_ = paging_control.find_element_by_class_name('pagination__PaginationStyle__next')
try:
next_.find_element_by_tag_name('a')
return True
except selenium.common.exceptions.NoSuchElementException:
return False
def go_to_next_page():
logger.info(f'Going to page {page[0] + 1}')
paging_control = browser.find_element_by_class_name('pagination__PaginationStyle__pagination')
next_ = paging_control.find_element_by_class_name(
'pagination__PaginationStyle__next').find_element_by_tag_name('a')
browser.get(next_.get_attribute('href'))
time.sleep(1)
page[0] = page[0] + 1`


Key, passthrough not working on 32u4

I have a SpaceCat Launchpad that uses a pro micro, and I'm trying to get it to work with Keyplus. For some reason, the bottom right key isn't working. When I press the key, my computer sees it as pressing ctrl-alt-super-shift-AUDIO_VOL_UP. I know it isn't a hardware issue because it works with QMK. Here's my layout file:
# Launchpad

report_mode: auto_nkro

devices:
  "SpaceCat Launchpad":
    id: 0
    layout: "Launchpad"
    layout_offset: 0
    wireless_split: false
    wireless_mouse: false
    scan_mode:
      mode: col_row
      rows: [C6, B1, B3, D7]
      cols: [D2, F7]
      # maps how keys are physically wired, to how they appear visually
      matrix_map: [
        r0c0, r0c1,
        r1c0, r1c1,
        r2c0, r2c1,
        r3c0, r3c1,
      ]

layouts:
  launchpad:
    layers: [
      [ # Layer 0
        [ # Launchpad (device 0)
          F13, F14,
          F15, F16,
          MENU, AUDIO_MUTE,
          AUDIO_VOL_DOWN, AUDIO_VOL_UP,
        ]
      ]
    ]

When I try to use passthrough mode to debug it, I get this error:
Traceback (most recent call last):
  File "keyplus-cli", line 800, in <module>
    KeyplusCLI()
  File "keyplus-cli", line 790, in __init__
    command_list[args.command].run()
  File "keyplus-cli", line 105, in run
    self.task(args)
  File "keyplus-cli", line 222, in task
    kp_layout = kb.unpack_layout_data()
  File "/home/me/keyplus-0.3.1_pre4/host-software/keyplus/keyboard.py", line 551, in unpack_layout_data
    pin_map_data, ekc_table, layout_data = self._get_layout_data_sections()
  File "/home/benjamin/keyplus/keyplus-0.3.1_pre4/keyplus/host-software/keyplus/keyboard.py", line 495, in _get_layout_data_sections
    header_size += self.firmware_info.scanner_max_rows
AttributeError: 'KeyboardFirmwareInfo' object has no attribute 'scanner_max_rows'

When I click on "Error Codes" in the GUI, I see ERROR_EKC_OUT_OF_BOUNDS_ACCESS.
If I add another row (that doesn't exist in hardware) it fixes this problem.

This is also happening with the keyplus mini, so it isn't just atmega32u4.


Make +test only run arms starting with ++test-

My expectation was that this is how it worked, because the testing documentation mentions that testing arms start with ++test- (or ++check, not sure why). This isn't the case though, as adding a ++helper into the main core causes it to try running that as a test anyway and crashing.
This PR makes sure that only arms starting with ++test- are actually run when doing tests.

You probably expected this because I said that it did this. I said that it did this because I thought I implemented this.
Apparently I forgot. Sorry. You'll also want to run ++check- arms, which are quickcheck style tests.


Wondering if its possible to port the current 0.5.1 into 1.21

just as title said i wonder if its possible, while we waiting the proper updates that possibly made by Create (neo)forge team on 1.21+ that possibly also brings 0.5.2 or even 0.6 where we can just skip ahead

It's possible yes, but 0.5.1 will not be getting a port to 1.21.1 as the first version available for 1.21.1 will be 0.5.2, and create fabric will not diverge from create forge as it will just cause tons of merge conflicts later down the line

i see understandable, i guess we may get 1.22 before create(hopefully dont 🙏)


Fix Capstone build on Mac OS

Build capstone by calling make directly instead of make.sh. On Mac
OS, make.sh produces a universal binary, which rustc cannot handle.
Fixes #11

Capstone ends up getting built the same on Linux. The only difference is that now we call make directly instead of calling the make.sh script.

Isn’t that a huge difference ? Iirc, the make.sh script is very complicated and has lots of special cases and conditions, no?

Only if you cross compile. By default, it just picks the make binary. On
Mac OS, the script also adds flags so that a universal binary is built. I
could have used the lipo utility to extract the "thin" binary from the
universal binary, but that wastes time building Capstone for two
architectures (i386 and amd64).
On Oct 4, 2017 09:12, "m4b"<EMAIL_ADDRESS>wrote:
Isn’t that a huge difference ? Iirc, the make.sh script is very complicated
and has lots of special cases and conditions, no?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/capstone-rust/capstone-sys/pull/12#issuecomment-334208295,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFBYuCQp9GXwdIBBmmFhD4NF64xVorTsks5so66BgaJpZM4PqNxH
.

Ah k. Just curious what if we pick another target for cargo? I had a wasm version working some time ago and I’d like to see if that still works.

If you had an invocation that worked to build for another target, then that probably still works. However, there's (never?) been logic in the build.rs to compile the libcapstone for another target.
Currently, you would need to build libcapstone.so yourself and specify the use_system_capstone feature. I've haven't tested cross building, but perhaps we should test that. I could potentially see an issue where pkg-config complains that Capstone is not installed for the current architecture. We may also want to add a static_link_capstone feature that causes static linking, even when using the system capstone.
I believe that this is in general a tough problem. Given I'm using platform A and am targeting platform B, what commands do I run to build this C code? What is the correct C compiler? What special compile flags do I need?


Mirror signed release images from GCR to GHCR as part of release with Cloud Build.

Summary

Copy signed released image from GCR to GHCR using cosign cli copy command.
This will ensure the signature will be the same between the two registry.
@cpanato I had to plumb a new GITHUB_USER env var to allow docker auth to copy image from GCR to GHCR. Not sure if there is a better way or not. Please take a look.
Ticket Link

Fixes #421
Release Note

Signed release images will now be available in GitHub Container Registry

thank you for checking.

and the bot have the correct permissions :)


Fix SVG image strip winding order.

Originally reported by: Jason McKesson (Bitbucket: alfonse, GitHub: alfonse)

Positioning/StripWindingOrder.svg doesn't render correctly in FireFox.

Bitbucket: https://bitbucket.org/alfonse/gltut/issue/82

not an issue with Firefox 48.0 any more


More language support for Text Extractor

Description of the new feature / enhancement
Text Extractor to support more language so that it does not only works on English.
Scenario when this would be used?
When I need to extract some text that isn't English.
Supporting information
No response

For example:

Not even mentioning languages like Chinese - that just fails.

@ibin7777 could you please specify language(s) which you would like to support?

Chinese and Russian, sometime Japanese too.

Could you please check whether needed languages are in the list of OCR packs?
For that purpose, could you please run next command in powershell in administrator mode:
PS C:\Windows\system32> Get-WindowsCapability -Online | Where-Object{ $_.Name -Like'Language.OCR*' }

Name  : Language.OCR~~~zh-CN~<IP_ADDRESS>
State : Installed
Name  : Language.OCR~~~ru-RU~<IP_ADDRESS>
State : Installed
So yes, I guess they are there.
Also please bear with me for a question:
What is the plan for asking if certain OCR package is on my PC? Feels like a troubleshooting process rather than a feature implementation.
Don't get me wrong, not questioning the intensions, I'm just curious about the next move.

Thank you for your question.
If the language is installed, then OCR package is installed alongside with language (in case language is supported).
I think for the cases when it's not supported and OCR is missing, then we need at least to notify a user about it.
We already have discussion around it, will see how it develops.

Name  : Language.OCR~~~en-US~<IP_ADDRESS>
State : Installed

Name  : Language.OCR~~~ru-RU~<IP_ADDRESS>
State : Installed

Microsoft Windows 10.0.19043.2006
Microsoft PowerToys 0.62.0
Recognition of the Russian-language text does not occur. Instead of Cyrillic letters, Latin and numbers similar in style are copied.

@Korb, usually it happens if the input language is different.

@Korb, usually it happens if the input language is different.

thx

usually it happens if the input language is different.

Indeed, if, after activating Text Extractor, I change the input language from English (I have it by default) to Russian, the mixture of Russian and English is recognized correctly and almost without errors. It seems to me that this, the dependence on the input layout, in this case should be considered as a bug.

Thank you for your feedback.
Expected behavior in 0.62.0 PowerToys version is that input language is used as the language for recognition.
There is already issue regarding selecting input language https://github.com/microsoft/PowerToys/issues/20327

Thank you for your feedback. Expected behavior in 0.62.0 PowerToys version is that input language is used as the language for recognition. There is already issue regarding selecting input language #20327

Thanks for the effort.
Although I would like it to be able to manually change language in some way, but I guess it's good still for the next test run
Kudos for the devs!

Definitely needed. Not working with Bulgarian (this means Cyrillic, very close to Russian) either.

Actually it works with Bulgarian. However, there is an issue which should be considered a bug: When windows is set to maintain different keyboard input settings for each windows, when text extractor is launched it reverts back to English, which makes gibberish like text recognition.

Help to support vietnamese ocr. I'm a teacher. I need it very much. Thank you!

Windows really lacks the ability to select the interface language for each user application. How is it implemented in Google Android ("App languages. Only apps that support language selection are shown here" page):

Possible to add hebrew?


[iOS] Set correct app version string

Issue

close #401

Overview (Required)

I implemented to show correct app version.

Links

Screenshot

Before
After

@NakaokaRei
Thank you for fixing! I'll merge this 🙏🏼


Homepage

Great improvements. Check the  numbers in the "How it Works" section; it is not easy to know that those are numbers.


Update README and bastion SG

The bastion SG will close a ticket in Intel's trello. The README change I made a long time ago and apparently forgot to push.

+1