fix: Fixes currentRow calculation logic in table(property pane)

Description
Problem
currentRow variable which is availabe in property pane of col settings - is not getting correct value during runtime if the table is sorted or filtered.
Root cause

We are considering processedTableData to get the currentRow.
This property is not updated during filtering and sorting, another property filteredTableData is updated instead.
We CANNOT use filteredTableData as it depends on primaryColumns property which we intend to update as well - this is leading to cyclic dependency during evaluations.

Solution
Since the problem is related to edit cases and given the constraints around using filteredTableData directly, we fixed the problem by adding a new property to editableCellValue object called __originalIndex__.

This property stores the index of the row being edited in processedTableData
On top of this change, the PR adds a migration for updating the current row binding in TableWidgetV2, ensuring accurate current row calculation and improving the functionality of the widget.
We also added unit test for migration changes.

Additionally, This pull request refactors the DSLs for TableWidgetV2 migration test cases to update the DSLs to separate folder, drastically reducing the file size to its core logic, improving the readability of the code.

We also updated relevant test cases to account for this change.

Testing plan
Fixes #34346
or
Fixes Issue URL

[!WARNING]
If no issue exists, please create an issue first, and check with the maintainers if the issue is valid.

Automation
/ok-to-test tags=""
:mag: Cypress test results

[!CAUTION]
If you modify the content in this section, you are likely to disrupt the CI result for your PR.

Communication
Should the DevRel and Marketing teams inform users about this change?

[x] Yes
[ ] No

/build-deploy-preview skip-tests=true

/build-deploy-preview skip-tests=true

/build-deploy-preview skip-tests=true

@coderabbitai review

/ci-test-limit

/build-deploy-preview skip-tests=true

/ci-test-limit

/ci-test-limit

/ci-test-limit runId=10386943359

/ci-test-limit runId=10386943359

/ci-test-limit runId=10386943359

/build-deploy-preview skip-tests=true


Make generated export Wasmtime bindings module public

This commit updates the Wasmtime export bindings module's visibility to public.
This makes it very convenient to directly use the generated module in a crate.
Signed-off-by: Radu M<EMAIL_ADDRESS>

Seems reasonable to me!


Implement merge

For combining two trees.
What to do with intervals "present in both"? I don't have a notion of id'ed intervals yet. For now, split merge and mergeDeduplicate, where mergeDeduplicate has an... Eq constraint on a (I think it's Eq for Set at least)

Closed initially by #9, if I want to work on performance I'll open a new issue.

"Make performance better" is unblocked by adding benchmarks in #13 / #12 -- merge is not surprisingly pretty rough:

Even for small inputs, the intrinsic slowness of how it works right now (foldl' insert) makes it more expensive to merge a 7 element interval index with a 3 element interval index than it is to construct a 10 element interval index. That's weird! I already know so much stuff about the 7/3 element interval indices! fromList timings should basically be an upper bound for merge, since in fromList I know literally nothing about the data, while in merge both operands are already indexed.


Licensing

What is this project licensed under? Nuget says MIT, but that’s only available for viewing if you decide to use that service.
Thank you!

Same license, MIT: https://github.com/null511/Jenkins.NET/blob/master/LICENSE

Licensed works, modifications, and larger works may be distributed under different terms and without source code.

You may use this library as needed, including commercial purposes, my only request is attribution. Thanks for reaching out.


feat(PL-2701): unify cue schema with values

Nice! What's left?

General comment: There is no description in the ticket, the PR, or the commit of what this change does. Can we write something down somewhere?


[BUG] Getting storage state with UTF-16 data fails

System info

Playwright Version: v1.40
Operating System: Windows 11
Browser: Chromium

Source code

[X] I provided exact source code that allows reproducing the issue locally.

Test file (self-contained)
using System.Threading.Tasks;
using Microsoft.Playwright;

using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync();
await using var context = await browser.NewContextAsync();
var page = await context.NewPageAsync();
await page.GotoAsync("https://www.close.com/");
await page.WaitForLoadStateAsync(LoadState.Load);
await context.StorageStateAsync();

Steps

[Run the test]

Expected
The storage state is fetched successfully.
Actual
Unhandled exception. System.Text.Json.JsonException: The JSON value could not be converted to System.String. Path: $.origins[0].localStorage[1].value | LineNumber: 0 | BytePositionInLine: 4436.
 ---> System.InvalidOperationException: Cannot read incomplete UTF-16 JSON text as string with missing low surrogate.
   at System.Text.Json.ThrowHelper.ThrowInvalidOperationException_ReadIncompleteUTF16()

The issue appears related to #2748, except that my problem is with storage state.

I tried to reproduce on Windows and macOS with .NET 8, but was not able to. In the snippet you provided was a typo with the goto method: goToAsync -> GotoAsync.
Does it repro with exactly the snippet from above?

Hi @mxschmitt sorry for the trouble, I've updated the snippet now (adding a page wait).

I was able to repro, thanks!


Tell Us What Your Translation Process is Like

In order for us to further develop the library, and meet all your translation needs, we'd love to learn what the translation process in your company is like.
For instance, here in Datorama, we use a local JSON file. Each developer adds keys to the file for any missing translations, where the value is the text in English. The developer then uses the keys in the various component templates.
For example:
// locale_en_US.json
"sandbox": {
  "copy-error": "Copy to sandbox is temporarily not available"
}

{{ 'sandbox.copy-error' | transloco }}

The file is sent once a month to translators, who return a translation file with the same keys, and the values translated into a different language.
// locale_es.json
"sandbox": {
  "copy-error": "spanish translation"
}

In our company, we need to provide more information to translators because some terms must be explained. We plan to add some description and suggest translator use Poeditor to translate

@zack9433 Thanks. Our translators also ask to add it. In our case, they want it to be added to the file itself.
{
  "copy-error": "value",
  "copy-error.comment": "explanation"
}

But this will increase the bundle size, so we move the comments to a separate file.

@NetanelBasal Is it possible this extra information which is for translator can remove at build time? By the way, I think angular i18n did a great job for improving translate file experience between developer and translator.

I think angular i18n did a great job for improving translate file experience between developer and translator.

@zack9433 can you elaborate more, please?

In my current project, I first write the translation keys in the teplate / in the typescript code. Then I'll use ngx-translate-extract to extract the keys into my 4 translation json files (de, en, es, fr).
I'll then enter a default-translation into the english json file and hand the 4 files over to the customer for translation.
So for us the extract tool is really a relief.

@ChristofFritz we'll add this tool soon.

@NetanelBasal I mean developer can output a file for poedit and translator rely on it to do their works. Our translator want to use a tool to help them.

Not necessarily related to translator / developer relationship, but what I've been doing with ngx-translate is that along my <feature>.module.ts (a "feature" being mostly a lazy loaded routed page, as I tend to provide already translated string to my common components intead of using translate directives / pipes instead them) I created <feature>.translations.ts, which is a module that I import in my <feature>.module.ts, this module
a) enables ngx-translate directive
b) merges its translations to the global scope, by using something the lines of
this._translate.setTranslation('cs', {
   pages: {
    about: CS // const containing all czech translations
  }
}, true);

After that you can do

basically the idea behind it that you don't lazy load your module and then lazy loading its translations, but you lazy load the module along with its translations.

If I understand you correctly you can easily do it with Transloco:
const routes: Routes = [
  {
    path: '',
    component: LazyComponent
  }
];

@NgModule({
  declarations: [LazyComponent],
  providers: [
    { provide: TRANSLOCO_SCOPE, useValue: 'admin-page' },
  ],
  imports: [CommonModule, RouterModule.forChild(routes), TranslocoModule]
})
export class LazyModule {}

This part will make sure we only load the admin-page/activeLang.json and everything inside the module will be scoped to admin-page translation:
<ng-container *transloco="let t;">

{{ t.title }}

</ng-container>

So t.title will be taken from the admin-page file.

Yeah the problem with that (my colleague which is trying transloco out will probably create an issue, as I'm on holidays), is that inside of your lazy component you might be using some common components, so scoping it all to "admin-pages" might be contraproductive, since you won't have the access to the common translations. But then again, I haven't had a chance to try it out, only talking about what's been reported to me.

I don't think this is a problem. Although we can create cleaner support for it, for now, you can use as many as you like:
<ng-container *transloco="let t">
  <ng-container *transloco="let admin; scope: 'lazy-page';">
    {{ t.title }}

{{ admin.title }}

  </ng-container>
</ng-container>

Depending on demand, we can add support for something like:
@NgModule({
  declarations: [LazyComponent],
  providers: [
    { provide: TRANSLOCO_SCOPE, useValue: ['admin-page', 'common'] },
  ],
  imports: [CommonModule, RouterModule.forChild(routes), TranslocoModule]
})
export class LazyModule {}

<ng-container *transloco="let t">>
   {{ t.common.title }}

{{ t.adminPage.title }}

</ng-container>

@fxck I look into your comment again, and it should work the same with Transloco:
this.translocoService.setTranslation('cs', {
   pages: {
    about: CS
  }
});

We're working about a built-in implementation to save you the boilerplate work.

I have just created a new ng app to play with transloco. Will drop my observations as I go, if you don't mind.
So far I have been using ngx-translate. Not sure what kind of difference transloco wants to make - so maybe my observations could be responded with "Hey, that's exactly what we find limiting and we do not want to take that path." Please excuse me if this is the case :) but since this issue is entitled "Tell us what you translation process is Like", I feel free to speak out :)
My first observation is how the translation files are organized. Transloco currently creates one file per language. I would say that in mid-sized apps this organization might be still too opinionated - users might want to split a language into some logical chunks. So far I have always been having en, fr as the name of the grouping folder, and then atomic json files, named like products.json, general.json and so on. The base name of the file was then corresponding to the first part in translation key, such as <button>{{ 'general.cancel' | translate }}</button>
Not sure how transloco is meant to load translations in big apps featuring many lazy-loaded modules - would the translations still reside in the main app assets or be loaded lazily along with the module? (an example would be a great thing to have!)

Transloco currently creates one file per language

Transloco doesn't force anything.

The base name of the file was then corresponding to the first part in translation key, such as {{ 'general.cancel' | translate }}

You need to write some code to make it work with ngx-translate, right? It's not magically appeared.

Not sure how transloco is meant to load translations in big apps featuring many lazy-loaded modules - would the translations still reside in the main app assets or be loaded lazily along with the module?

Everything will be lazy-loaded based on the current lang/scope, and will be merged into the active language.

You need to write some code to make it work with ngx-translate, right? It's not magically appeared.

Right. I am just describing my environment. You might want to consider it as an idea to allow a more split approach within one module and free users from writing custom loaders.

Everything will be lazy-loaded based on the current lang/scope, and will be merged into the active language.

That is cool!

We are aiming to save you the boilerplate work. You should only define the scope mapping, and we'll take care of the lazily loading and merging. For example:
{
  provide: TRANSLOCO_CONFIG,
  useValue: {
    scopeMapping: {
     'admin-page': 'admin'
    }
    ...
  }
}

Then, when you define the admin-page scope in a lazy load module:
@NgModule({
  declarations: [LazyComponent],
  providers: [
    { provide: TRANSLOCO_SCOPE, useValue: 'admin-page' },
  ],
  imports: [CommonModule, RouterModule.forChild(routes), TranslocoModule]
})
export class LazyModule {}

It will load the scoped module for you, and will make the translation value available under the admin key:
<ng-container *transloco="let t;">

{{ t.admin.keyFromAdminFile }}

</ng-container>

{{ 'admin.keyFromAdminFile' | transloco }}

@fxck @moniuch would love to hear your opinion about the upcoming feature:
https://github.com/ngneat/transloco/issues/24#issuecomment-524056486

@fxck I looked into your comment again, and it should work the same with Transloco:
this.translocoService.setTranslation({
   pages: {
    about: CS
  }
}, 'cs');

We're working about a built-in implementation to save you the boilerplate work.

Should this work with the currently release version? Because it doesn't seem to, not sure if I'm doing something wrong.
I'm getting NullInjectorError: No provider for InjectionToken TRANSLOCO_LOADER!, which I think I shouldn't even need when I'm providing translations manually, right?


[WARN] Dobot Magician is not connected.

Hi,
I am trying get our Dobot Magician running with ROS2 based on your code and instructions. The installation with Ubuntu 22.04 and ROS2 Humble went well, all the projects have been build successfully. Would be great to have the Dobot working with ROS 2.
However, when running the final command to bring all the dobot services up, I end up with the message "Dobot Magician is not connected." This then basically kills all the services.
The Dobot is definitely connected and running, the "lsusb" command shows it and the check in the bring_up service is successful.
I have attached the log from running:
ros2 launch dobot_bringup dobot_magician_control_system.launch.py
Any ideas where to start looking for the errors?
I am wondering where actually the tty serial port to be used is defined. Can you point me to the position in the code?
Thanks and best regards!
Log output:
[INFO] [launch]: All log files can be found below /home/se/.ros/log/2024-02-08-10-50-51-113632-se-XPS-15-9570-51377
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [set_tool_null-1]: process started with pid [51386]
[INFO] [launch.user]: Loading tool parameters.
[set_tool_null-1] [WARN] Dobot Magician is not connected.
[ERROR] [set_tool_null-1]: process has died [pid 51386, exit code 1, cmd '/home/se/magician_ros2_control_system_ws/install/dobot_bringup/lib/dobot_bringup/set_tool_null --ros-args'].
[INFO] [ros2 launch dobot_diagnostics alarms_analyzer.launch.py-2]: process started with pid [51404]
[INFO] [launch.user]: Starting the diagnostics module.
[INFO] [gripper_server-3]: process started with pid [51407]
[INFO] [launch.user]: Gripper control service started.
[INFO] [suction_cup_server-4]: process started with pid [51409]
[INFO] [launch.user]: Suction Cup control service started.
[gripper_server-3] [WARN] Dobot Magician is not connected.
[suction_cup_server-4] [WARN] Dobot Magician is not connected.
[ERROR] [gripper_server-3]: process has died [pid 51407, exit code 1, cmd '/home/se/magician_ros2_control_system_ws/install/dobot_end_effector/lib/dobot_end_effector/gripper_server --ros-args'].
[ERROR] [suction_cup_server-4]: process has died [pid 51409, exit code 1, cmd '/home/se/magician_ros2_control_system_ws/install/dobot_end_effector/lib/dobot_end_effector/suction_cup_server --ros-args'].
[INFO] [ros2 launch dobot_homing dobot_homing.launch.py-5]: process started with pid [51433]
[INFO] [launch.user]: Starting homing service.
[INFO] [launch.user]: Loading homing parameters.
[ros2 launch dobot_homing dobot_homing.launch.py-5] [INFO] [launch]: All log files can be found below /home/se/.ros/log/2024-02-08-10-50-54-432747-se-XPS-15-9570-51435
[ros2 launch dobot_homing dobot_homing.launch.py-5] [INFO] [launch]: Default logging verbosity is set to INFO
[ros2 launch dobot_homing dobot_homing.launch.py-5] [INFO] [homing_server-1]: process started with pid [51436]
[ros2 launch dobot_homing dobot_homing.launch.py-5] [INFO] [homing_params.yaml-2]: process started with pid [51438]
[ros2 launch dobot_homing dobot_homing.launch.py-5] [homing_server-1] [WARN] Dobot Magician is not connected.
[ros2 launch dobot_homing dobot_homing.launch.py-5] [ERROR] [homing_server-1]: process has died [pid 51436, exit code 1, cmd '/home/se/magician_ros2_control_system_ws/install/dobot_homing/lib/dobot_homing/homing_server --ros-args'].
[INFO] [ros2 launch dobot_kinematics dobot_validate_trajectory.launch.py-6]: process started with pid [51441]
[INFO] [launch.user]: Strating trajectory validator service.
[INFO] [launch.user]: Loading kinematics parameters.
[ros2 launch dobot_kinematics dobot_validate_trajectory.launch.py-6] [INFO] [launch]: All log files can be found below /home/se/.ros/log/2024-02-08-10-50-56-442042-se-XPS-15-9570-51443
[ros2 launch dobot_kinematics dobot_validate_trajectory.launch.py-6] [INFO] [launch]: Default logging verbosity is set to INFO
[ros2 launch dobot_kinematics dobot_validate_trajectory.launch.py-6] [INFO] [trajectory_validator_server-1]: process started with pid [51452]
[ros2 launch dobot_kinematics dobot_validate_trajectory.launch.py-6] [INFO] [axis_limits.yaml-2]: process started with pid [51454]
[ros2 launch dobot_kinematics dobot_validate_trajectory.launch.py-6] [trajectory_validator_server-1] pybullet build time: Feb  8 2024 10:07:21
[INFO] [ros2 launch dobot_motion dobot_PTP.launch.py-7]: process started with pid [51466]
[INFO] [launch.user]: Starting PointToPoint action server.
[INFO] [launch.user]: Setting speed and acceleration values.
[ros2 launch dobot_motion dobot_PTP.launch.py-7] [INFO] [launch]: All log files can be found below /home/se/.ros/log/2024-02-08-10-50-58-474538-se-XPS-15-9570-51468
[ros2 launch dobot_motion dobot_PTP.launch.py-7] [INFO] [launch]: Default logging verbosity is set to INFO
[ros2 launch dobot_motion dobot_PTP.launch.py-7] [INFO] [PTP_server-1]: process started with pid [51469]
[ros2 launch dobot_motion dobot_PTP.launch.py-7] [INFO] [PTP_motion_params.yaml-2]: process started with pid [51471]
[ros2 launch dobot_motion dobot_PTP.launch.py-7] [PTP_server-1] [WARN] Dobot Magician is not connected.
[ros2 launch dobot_motion dobot_PTP.launch.py-7] [ERROR] [PTP_server-1]: process has died [pid 51469, exit code 1, cmd '/home/se/magician_ros2_control_system_ws/install/dobot_motion/lib/dobot_motion/PTP_server --ros-args'].
[ros2 launch dobot_homing dobot_homing.launch.py-5] [homing_params.yaml-2] Node not found
[ros2 launch dobot_homing dobot_homing.launch.py-5] [ERROR] [homing_params.yaml-2]: process has died [pid 51438, exit code 1, cmd 'sleep 5;ros2 param load /dobot_homing_srv /home/se/magician_ros2_control_system_ws/install/dobot_homing/share/dobot_homing/config/homing_params.yaml'].
[INFO] [ros2 launch dobot_homing dobot_homing.launch.py-5]: process has finished cleanly [pid 51433]
[ros2 launch dobot_kinematics dobot_validate_trajectory.launch.py-6] [INFO] [axis_limits.yaml-2]: process has finished cleanly [pid 51454]
[ros2 launch dobot_motion dobot_PTP.launch.py-7] [PTP_motion_params.yaml-2] Node not found
[ros2 launch dobot_motion dobot_PTP.launch.py-7] [ERROR] [PTP_motion_params.yaml-2]: process has died [pid 51471, exit code 1, cmd 'sleep 5;ros2 param load /dobot_PTP_server /home/se/magician_ros2_control_system_ws/install/dobot_motion/share/dobot_motion/config/PTP_motion_params.yaml'].
[INFO] [ros2 launch dobot_motion dobot_PTP.launch.py-7]: process has finished cleanly [pid 51466]
[INFO] [state_publisher-8]: process started with pid [51535]
[INFO] [launch.user]: Dobot state updater node started.
[INFO] [launch.user]: Dobot Magician control stack has been launched correctly
[state_publisher-8] [WARN] Dobot Magician is not connected.
[ERROR] [state_publisher-8]: process has died [pid 51535, exit code 1, cmd '/home/se/magician_ros2_control_system_ws/install/dobot_state_updater/lib/dobot_state_updater/state_publisher --ros-args'].

Nevermind, figured it out. After restarting the computer the ttyUSB0 port was the correct one. Works fine now.
Thanks for the great project!


Terminal cursor displaced after minimize

Lapce Version
0.3.1
System information
Windows 11
Describe the bug
If the content viewer has a file or tab opened of which the contents are taller than the view height, then you minimize the window, the cursor of the terminal will be in te wrong location.
Additional information
Before minimizing:

After minimizing and opening:

After typing:

Based on the small flickering of the window upon opening it, i think it might have something to do with a re-drawing of the element. As it only seems to be happening when you press the minimize button and not when activating another window, it might have something to do with a state change when ghe minimizing happens.
Is it alright if i pick up the issue and see if i can fix it?

Is it alright if i pick up the issue and see if i can fix it?

Feel free to try fixing it!
You'd want to look at lapce-app/src/terminal/view.rs and probably the wheel_scrollfunction interminal/data.rs`, since it seems like some issue with scroll changing but possibly not getting sent to the terminal? Unsure.

Thank you! I'll get started on it in a few days and i will keep you updated! Great work on the editor by the way. It seems to run smoothly and i can only imagine the amount of time and effort to get to this point

I found out that when the application is minimized, the view buffer of the window only shows a small portion of the titlebar. This can be seen for a split second when you open the application.

This caused the terminals size to become 0 or less, causing it to move the cursor to the incorrect location. When the window is opened, the terminal is resized again and the cursor is moved again, causing it to render at the wrong location.
Is the scaling of the application intentional to save performance? As this is a pretty minor bug i want to make sure the fix will not break more important components.

I'm unsure as to the answer here. It might be something done in floem?

I am not sure myself to be honest. I'm looking into it, but if it is something caused by floem it might have to take the problem upstream.

On Windows, minimize means resize. We need a patch for the WM_SIZE event in the upstream winit crate.
See:

Why do minimized windows have an apparent size of 160×31?

WM_SIZE message
https://github.com/rust-windowing/winit/issues/2015

Thank you kindly! I will see if i can get some kind of workaround

It seems the only way to really stop the cursor from displacing is to keep the width and height of the element when there is a drastic change in the size or to check for the exact size the window is when minimized, but this seems quite hacky an unreliable. I am not entirely sure how to proceed, but i think trying to solve the problem in lapce itself might not be a great idea. I'll keep the issue opened for a while to see if anyone else has some ideas, but i will close the issue soon

(The issue should remain open even if we can't fix it right now — thank you for trying at it! — because it would still be a bug)
I think ideally this is something fixed, or given a workaround, in floem. So we could have a change in our winit fork to support this.

Good point. I didn't know lapce used a custom winit fork, I'll give it a go

After some diffing i found out that while there is a resize event taking place when minimizing, it does not seem to be manually called. The winit crate seems to simply set a flag to the window and windows does the rest. Even if i could capture the minimizing event and bypass the size change somehow, the bug still happens when the window is made very small.
The only solutions i can think of are a minimum size or bypassing the size setting when checking the percentage of window scaling. Both solutions don't seem reliable. If anyone has any ideas i am glad to try them, but for now i am not sure how to proceed.

I created a PR for winit https://github.com/lapce/winit/pull/6 to fix the issue when minimizing. But it doesn't work when manually resizing to a small size.
I believe that's a bug in ConPTY, as window terminal, vscode integrated terminal, and alacritty have similar issues.
https://github.com/microsoft/terminal/issues?q=is%3Aissue+is%3Aopen+label%3AProduct-Conpty+resize


Capture multiple videos

Is it possible to start/stop the capture multiple times using CCapture.js?
Whenever I call capturer.start() I get these errors:
Uncaught Error: Width and height must be set prior to rendering
Uncaught TypeError: Cannot redefine property: currentTime
Is there a fix around this?

There isn't a way to do that right now, you'd have to re-create the capturer.
I can look into adding a .reset() method so it cleans up and lets another capture session ready.

Yes that would be great!

Well, an ugly fix for this would be to use a try catch around:
Object.defineProperty( HTMLVideoElement.prototype, 'currentTime', { get: hookCurrentTime } )
Object.defineProperty( HTMLAudioElement.prototype, 'currentTime', { get: hookCurrentTime } )
Its definitely not the best solution but it seems to work...

Well, an ugly fix for this would be to use a try catch around:
Object.defineProperty( HTMLVideoElement.prototype, 'currentTime', { get: hookCurrentTime } )
Object.defineProperty( HTMLAudioElement.prototype, 'currentTime', { get: hookCurrentTime } )
Its definitely not the best solution but it seems to work...

It does work, yes. What I've been toying with is only hooking what's needed, so if you're not using HTMLVideoElement or HTMLAudioElement, it won't be a problem resetting the capturer; and if you're using them ... well, you can't go back without reloading. it looks like it works so far.

How to reset capturer?

+1 How to reset capturer? I tryed capturer = null, but it not work

Yes, adding a try catch works well for me:
try{
Object.defineProperty( HTMLVideoElement.prototype, 'currentTime', { get: hookCurrentTime } )
Object.defineProperty( HTMLAudioElement.prototype, 'currentTime', { get: hookCurrentTime } )
}catch(e){
console.log(e);
}

@TiagoSilvaPereira more exactly? how to use try catch to reset the capturer

Oh， @TiagoSilvaPereira I see your way, and just work for me, too. Thx.

Hey guys @TiagoSilvaPereira, @aleen42, @spite having a bit of a problem reseting the capturer for a gif capture-download from canvas element. The first time works fine but the second time I call start() I get the "Cannot redefine property: currentTime" error. Tried:

Creating a new capturer every time and calling start()
Creating a new capturer every time and doing the hook suggested above
Keeping the same capturer and calling start()
Keeping the same capturer and doing the hook suggested above

Can any of you please explain how to reset the capturer for successive downloads in the same session?
Thanks

I think the hook solution above is creating a problem for gif captures no matter if you define a new capturer or not. I removed the mentioned hook from the source code and now it works fine.

@axaq if you don't need to sync to a video or audio element, you can comment out this whole block: https://github.com/spite/ccapture.js/blob/master/src/CCapture.js#L719

@axaq, I have a application that uses CCapturer to make successive downloads of generated videos and GIFs. The solution I encountered is use the hook above, using the same instance of capturer. The application is: http://app.rapidmockup.net
If you want, I can show my version of the code, but the unique update I remember that I made in the code is the try-catch cited above (and that as I see, is now natively added in the CCapturer.js).

@axaq, firstly, go to the library and find the following snippet in the file CCapture.js:
function _init() {
	_log('Capturer start');

	_startTime = window.Date.now();
	_time = _startTime + _settings.startTime;
	_performanceStartTime = window.performance.now();
	_performanceTime = _performanceStartTime + _settings.startTime;

	window.Date.prototype.getTime = function() {
		return _time;
	};
	window.Date.now = function() {
		return _time;
	};

	window.setTimeout = function(callback, time) {
		var t = {
			callback: callback,
			time: time,
			triggerTime: _time + time
		};
		_timeouts.push(t);
		_log('Timeout set to ' + t.time);
		return t;
	};

	window.clearTimeout = function(id) {
		for (var j = 0; j < _timeouts.length; j++) {
			if (_timeouts[j] == id) {
				_timeouts.splice(j, 1);
				_log('Timeout cleared');
				continue;
			}
		}
	};

	window.setInterval = function(callback, time) {
		var t = {
			callback: callback,
			time: time,
			triggerTime: _time + time
		};
		_intervals.push(t);
		_log('Interval set to ' + t.time);
		return t;
	};

	window.clearInterval = function(id) {
		_log('clear Interval');
		return null;
	};

	window.requestAnimationFrame = function(callback) {
		_requestAnimationFrameCallbacks.push(callback);
	};

	window.performance.now = function() {
		return _performanceTime;
	};

	function hookCurrentTime() {
		if (!this._hooked) {
			this._hooked = true;
			this._hookedTime = this.currentTime || 0;
			this.pause();
			media.push(this);
		}
		return this._hookedTime + _settings.startTime;
	};
}

And then, add additional code in the end of the _init function:
try {
	Object.defineProperty(HTMLVideoElement.prototype, 'currentTime', { get: hookCurrentTime })
	Object.defineProperty(HTMLAudioElement.prototype, 'currentTime', { get: hookCurrentTime })
} catch (err) {
	_log(err);
}

Then, it should work when you init the object.

Hey @aleen42 and @TiagoSilvaPereira. Thanks for the responses guys. Actually that hook works great for the video captures but if you do gif capture it encounters the "Cannot redefine property: currentTime" error for the second successive capture (or more specifically when you call start() method for the second time). The solution is to remove that hook if you are not using video or audio element as @spite also mentioned. May be a condition can be added to the base to control this. Again, thanks for all the quick responses.

I did add the hook code to the _init of the ccapture.js code.
I'm getting this error:
InvalidStateError: Failed to execute 'stop' on 'MediaRecorder': The MediaRecorder's state is 'inactive'. Error: Failed to execute 'stop' on 'MediaRecorder': The MediaRecorder's state is 'inactive'.     at CCStreamEncoder.save (http://localhost:88/Scripts/capturer/CCapture.js:419:28)     at Object._save [as save] (http://localhost:88/Scripts/capturer/CCapture.js:907:22)  .... .....
What is the reason here?

I'm initializing the capturer once during the session in the browser
I do start the capturer once after I want to start it
during the captures I want to save some captures during the process in my app as a movie video file
this is only possible once.....

Do I have to init the capturer every movie again?

Probably need a setter also for currentTime because when I try to set currentTime after I have initialized capturer I get the following error:
Cannot set property currentTime of #<HTMLVideoElement> which has only a getter
I think this might work to define a set function also, but what would be the right value?
Object.defineProperty( HTMLVideoElement.prototype, 'currentTime', {
    get: hookCurrentTime,
    set: function(value) { /* Need code here */}
} )

Thanks in advance!

Is there a solution now? Still getting the error. I'm using CCapture together with p5.js. Recording once works fine.

I'm downloading a tar of png . I've tried commenting out the entire block as @spite & @axaq mentioned.
I see Timeout set to 250 after calling .start() again on the capturer and nothing happens.
Do we have a solution for this yet?


feat: add support for sass glob import

Description
close #6042

Additional context

What is the purpose of this pull request?

[ ] Bug fix
[x] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the Commit Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[x] Ideally, include relevant tests that fail without this PR but pass with it.

@ygj6 we talked about the PR in the last meeting but it seems that sass glob import is an extension and not supported by default in sass, no? This should be implemented by a plugin in that case

@ygj6 we talked about the PR in the last meeting but it seems that sass glob import is an extension and not supported by default in sass, no? This should be implemented by a plugin in that case

Thanks for your discussion! You are right, I will close this PR 😃

I kinda need this -- anyone knows any plugin to support scss glob imports?


Add an additional plan to ups-broker

Add a second plan to the ups-broker. And allow plan updates with the ups-broker service. I found this useful when validating my changes in #1536.

LGTM assuming CI is happy


Running tests and examples on Windows

native on Windows
by cross-compilation using nix

Me and @cleverca22 ran tests on Windows. The test was successful and we confirmed that it does work.
@cleverca22 is also trying to add this test as one of the test cases on hydra CI.


opendp seg fault on Caravel DFFRAM module

Hello,
I have an segmentation fault violation during the detailed placement phase while using DFFRAM from caravel under USE_CUSTOM_DFFRAM macro with 256 mem words. The log says that the def output file was successfully written but I have observed that the file is not fully written. The flow then moves on to placement check and ends with a segmentation fault and exit error code 1. The error log and opendp log are attached here.
opendp.log
error.log
The resultant placement def file is attached here for your reference.
DFFRAM.placement.def.gz
I am using RC4 with relevant open_pdk and skywater tags based on the flow. It is the same for both local docker image and efabless/openlane:rc4 docker image. The config, pdn and pin order files are same as those present in caravel.
I am sure the DFFRAM verilog file in caravel wasn't implemented as is in the macro posted. Verilog wise, the pass mux might be the root of all problems, the way it is implemented.  But I am posting this issue here because the placement def file output is more puzzling to me. The Replace def file in temp directory is written fully. Why is the def file not being completely written and how is the flow deciding that it has been successfully written and proceeding to placement checks? Kindly let me know if you are able to replicate this issue. I am unable to figure out why this behavior is being exhibited.
Thank you.

@diecaptain: Can you share the setup that you used (src + config.tcl) in order for us to try and replicate that error?
P.S: For future reference, rc4 is not completely compatible with caravel (in terms of the pdk version and some minor features).

@agorararmard The source files are here:
DFFRAM : https://github.com/efabless/caravel/blob/release/verilog/rtl/DFFRAM.v
DFFRAM Building Block : https://github.com/efabless/caravel/blob/release/verilog/rtl/DFFRAMBB.v
Definition File : https://github.com/efabless/caravel/blob/release/verilog/rtl/defines.v
Config file : https://github.com/efabless/caravel/blob/release/openlane/DFFRAM/config.tcl
pdn file : https://github.com/efabless/caravel/blob/release/openlane/DFFRAM/pdn.tcl
pin order file : https://github.com/efabless/caravel/blob/release/openlane/DFFRAM/pin_order.cfg
I was of the opinion that the only missing part is IO cells from the sky130A PDK. Do I use a different commit for the PDK and Open_PDKs to have similar standard cells and lef files apart from IO cells? I moved to RC4 yesterday and so far have come across differences between synthesized netlist and routed netlist resulting in massive LVS net difference and net count mismatches but haven't found time to look at the reason yet. I was happy with RC3 but the non interactive mode was not merging macro lef files provided through EXTRA_LEFS so was running interactively by doing it using add_lefs script, adding obstructions during floorplanning and then placing macros between global placement and IO placement. I saw a recent commit regarding macro placement support and decided to move. Though I am yet to reach that part. DFFRAM was my first test with RC4 after a clean spm run and have come across this issue.
I can confirm this issue is popping up only because of how pass mux is implemented in the DFFRAM building block. This goes away if it is commented out or replaced with a mux with one input connected to lo and select bit set to lo or hi and by letting yosys optimize it away. I will try and open an issue in caravel regarding the verilog part where its better suited. However it would be nice to know why opendp exhibits this behavior. This is not a huge problem anyway, so I request you to look at this in your spare time.
Thank you.

@diecaptain: I was unable to reproduce the opendp issue locally. I tried master rc4 as well as develop and both worked fine up to routing (I didn't check what happens after).
To answer your question, Caravel is using the latest skywater-pdk and open_pdks. However, Regenerating the blocks in Caravel won't go smoothly for you (it is still a work-in-progress). Also, they are developed using the openlane develop branch which is continuously changing. There should be a new release of OpenLANE as soon as the finalized caravel chip is out.

@agorararmard Thank you for your time. I just found it interesting that this happened.
I am just trying to utilize Caravel as a base now to understand why it is designed the way it is and make an inference. It is interesting. I look forward to finalized caravel chip.
I will close this issue now.


Support for multipart resources.

Support for multipart resources.

@roll this is already supported unless I am missing something?

@georgeslabreche
This means having an individual resource split into a few parts:

data-part1.csv -> headers/row1/row2
data-part2.csv -> row3/row4/etc

http://frictionlessdata.io/specs/data-resource/#data-in-multiple-files

This is the lowest priority feature from specs-v1 from the whole work.

@roll IteratorChain saved the day!
https://commons.apache.org/proper/commons-collections/javadocs/api-2.1.1/org/apache/commons/collections/iterators/IteratorChain.html
Is it OK that we have to explicitly set a base path for the Resource object if the datapackage is using relative file paths?

@georgeslabreche
Great!
Base path is even a part of the reference - https://github.com/frictionlessdata/implementations#datapackage
I think in Python/JavaScript now we use current directory as a default base path.

@roll so current directory as in the directory where in the file system the library is residing or  the directory where the app using the library is residing? I'm not 100% convinced this is the best approach, with java at least, because of the potential different possibilities where that library will end up. I'm not yet sure which path is retrieved when using something like System.getProperty("user.dir"); from within the library when it is invoke by some other Main application. Hmm.

@georgeslabreche
Can't say for Java but the idea that user has a working directory with e.g. datapackage.json. So instead of pushing him to write something like this package = Package('descriptor.json, base_path='.')` other libs just use current working directory.

@roll I will test behaviour in Java to make sure I use the proper way of getting the working directory in a predictable manner.


Adding PMD and FindBugs static code analysis.

Type of PR

[ ] Documentation changes
[x] Code changes
[ ] Test changes
[ ] CI-CD changes
[ ] GitHub Template changes

Purpose of PR
Adding PMD and FindBugs static code analysis.
Review notes
Issues Closed or Referenced

Closes #116  (this will automatically close the issue when the PR closes)

Closing this PR do to failing CICD. Open a NEW PR now that CICD changes have been commited


How do I get the real fee of the transaction

Hello, I got the block data through the get_block interface of the block, which contains some information of the transaction body. I found that I can only get the max_fee, and sometimes the actual fee of transaction is smaller than the max_fee. I want to get the exact fee, what should I do?
I read the interface of get_fee, which requires end_point and fio_address, I tried with the error 'No such FIO address', I don't quite understand. Is there a way to get the real fee of a transaction through transaction hash or other block interfaces?

FIO Address is FIO8iPiMWognLyWoiwMqG1cTufzKb8xafUGXDQwaPDfio2hY83Bk5 or rvwtjriizg31? Haven't find any short address with @, https://fio.bloks.io/account/rvwtjriizg31

get_fee is the way to go. The FIO Crypto Handle (FIO Address) parameter is only required for endpoints actions that require a FIO Address as a parameter. For the endpoints where , if the user has "bundles" remaining, the cost will be zero (when a user acquires a FIO Address, they get 100 bundles that can be used to "pay" for some transactions).
These might help:
https://developers.fioprotocol.io/pages/api/fio-api/#post-/get_fee
https://developers.fioprotocol.io/docs/fio-protocol/fio-fees
Here is an example call:
curl -s -XPOST https://fio.blockpane.com/v1/chain/get_fee -d '{
"end_point": "transfer_tokens_pub_key"
}'

Thanks for the reply, I tried to use the get_fee api but can not get the fee I want.
For example, in this transaction https://fio.bloks.io/transaction/86de9d5323f27da81cb01a719b7df6851450e988a42bb6aaeec1117e3fc06800, It costs 0.866597229 FIO, but I can only get the maxFee which is 0.868837959 FIO , how can I get the right fee 0.866597229 FIO?

Thanks for the additional detail. Looks like this could be a bug. Assigned and tracking in Jira as: https://fioprotocol.atlassian.net/browse/BD-3657

Ok, then I'll wait for it

@Wangmmx I have been trying to reproduce internally and on Testnet. Note that there is some variability of fees on the chain due to the design of fee calculation. Block producers set a "multiplier" to their fees to make sure that fees to not get too out of line as the price of FIO changes. More information on how BPs set fees is here:
https://developers.fioprotocol.io/docs/bp/fee-setting
Because of this you may want to add 10% to the max_fee if you are pulling the fee from get_fee to account for possible short term volatility.  Honestly, this should only rarely happen where the fee changes between the time get_fee is called and the transaction happens.
Can you try again and see if you are still seeing the issue with get_fee?

No new comments for several months. Closing.


Requirement of l0 development

Can you provide the minimum requirements of the project?

Do you mean system requirements like cpu & memory?

You are right.

Depends on the cluster size. A single instance of L0 or L1 validator requires a minimum of 0.5 vCPU and 1GiB of memory to start and up to 2 vCPU and 4GiB to operate. If there are not enough system resources to operate, you may get OutOfMemory errors or a lack of responsiveness of an instance. The setup that's prepared to run with Skaffold starts 2 clusters, totaling to 5 instances so it may take up to 10 vCPU and 20 GiB of memory in total.

Thank you. I ask this because when I run scaffold dev command, it return error related to not enough cpus to run it


i can fig but it no change

RenderBox was not laid out: RenderPhysicalShape#a47a5 relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 1927 pos 12: 'hasSize'
i  dont know fix,i need your help

fig ->fix

@wintersawcher
When opening an issue, please try to provide all or some of the information indicated in the template.

Issue Template
If you are looking for support, please check out our documentation
or consider asking a question on Stack Overflow:
- https://flutter.dev/
- https://api.flutter.dev/
- https://stackoverflow.com/questions/tagged/flutter?sort=frequent

If you have found a bug or if our documentation doesn't have an answer
to what you're looking for, then fill our the template below. Please read
our guide to filing a bug first: https://flutter.dev/docs/resources/bug-reports

Steps to Reproduce

Please tell us exactly how to reproduce the problem you are running into.

Please attach a small application (ideally just one main.dart file) that
reproduces the problem. You could use https://gist.github.com/ for this.

If the problem is with your application's rendering, then please attach
a screenshot and explain what the problem is.

1. ...
2. ...
3. ...

Please tell us which target platform(s) the problem occurs (Android / iOS / Web / macOS / Linux / Windows)
Which target OS version, for Web, browser, is the test system running?
Does the problem occur on emulator/simulator as well as on physical devices?

Target Platform:
Target OS version/browser:
Devices:

Run your application with `flutter run --verbose` and attach all the
log output below between the lines with the backticks. If there is an
exception, please see if the error message includes enough information
to explain how to solve the issue.

Run `flutter analyze` and attach any output of that command below.
If there are any analysis errors, try resolving them before filing this issue.

Finally, paste the output of running `flutter doctor -v` here.

Closing this issue, since no information has been provided.
Thank you.
Also, looking at the error log you provided, it seems to be similar to https://github.com/flutter/flutter/issues/45458.


export missing DragCancelEvent from types

https://github.com/clauderic/dnd-kit/issues/313

This PR is not based on the master branch


some Chinese words translation error

URL of codelab
https://developer.android.google.cn/codelabs/basic-android-kotlin-compose-first-program?hl=zh-cn#4
In which task and step of the codelab can this issue be found?
in title "您的第一个Kotlin程序"
Step 5
Describe the problem
there is a translation error
"完成相同"
it should be "完全相同"
Steps to reproduce?

Go to...
Click on...
See error...

Versions
Android Studio version:
API version of the emulator:
Additional information
Include screenshots if they would be useful in clarifying the problem.

Hi @aghao
Thank you for writing in and bringing this to our attention.
It has been reported to our localization team so it can be addressed.
Hope you are enjoying the course!
Regards.


Removed the TO UI menu docs, and documented equivalent TP functionality

What does this PR (Pull Request) do?

[x] This PR is not related to any Issue

Removed the "Traffic Ops Menu" section of the old Traffic Ops UI docs, and documented the equivalent parts of Traffic Portal.
Which Traffic Control components are affected by this PR?

Documentation

What is the best way to verify this PR?
Build and read the documentation. There are no tests for the documentation.
The following criteria are ALL met by this PR

[x] I have explained why tests are unnecessary
[x] This PR includes documentation
[x] An update to CHANGELOG.md is not necessary
[x] This PR includes any and all required license headers
[x] This PR does not include a database migration
[x] This PR DOES NOT FIX A SERIOUS SECURITY VULNERABILITY

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4253/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4379/


Issue 145

Hi @dgruano this fixes your example of #145, and I think it should work for all cases. There are not many lines changed, so if you can have a look to double-check things make sense, it would be great!

Hi @manulera . Like you said in #145, I think the issue was with the assembly trying to find homology with the 5' overhang strand. I think it makes sense, but I will give it a closer look.


[BEAM-14073] [CdapIO] CDAP IO for batch plugins: Read, Write

Cdap package contains an io-connector for CDAP sources and sinks.
CdapIO is the primary class used in working with the connector in a pipeline. It contains static PTransform classes that represents reads/writes within the I/O (e.g. Read, Write).

CdapIO.<~>read() method method starts constructing a CdapIO.Read transform, it receives a type parameters<~> that specify the output type for CDAP source.
The Read class implements an interface similar to the builder pattern and has simple withX() methods for passing configuration and other settings needed before start reading from CDAP source:

withCdapPluginClass() - pass a source/sink plugin class marked with CDAP @Plugin annotation. (e.g. ZendeskBatchSource.class)
withPluginConfig()- pass a corresponding PluginConfig object (e.g. ZendeskBatchSourceConfig.class)
withKeyClass() - specify the key class for the output (e.g. NullWritable.class)
withValueClass()- specify the value class for the output (e.g. StructuredRecord.class)

Inside the .withCdapPluginClass() method, the CdapPlugin object is constructed. CdapPlugin object contains the following information about CDAP plugin:

Bounded/Unbounded
Input/Output
BatchContextImpl object for stubbing some CDAP-specific behavior
Format / Key / Value classes needed for filling Hadoop Configuration object
T cdapPluginObj for performing prepareRun() call before reading

The following steps are performed in the Read.expand() method:

Validating that all configs and other obligatory fields are set
Call CdapPlugin.prepareRun() method before reading (see javadoc)
Construct the needed Read transform depending on whether the CdapPlugin is bounded / unbounded:

For bounded sources HadoopFormatIO.<K, V>read() method is called passing filled Hadoop Configuration object.

For unbounded sources SparkReceiverIO.<~>read() method is called.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

What is the next step on this PR?

@aaltay We closed this PR due to many conflicts with the master branch.
These changes were migrated to the new one where we've also implemented unit tests.
[CdapIO] CDAP IO for batch plugins: Read, Write.


chore: update pkg.json

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Spawning entities fails continually with JournalFailureException when PreparedStatement initialization fails

scala: 2.13.12
pekko: 1.0.1
pekko-persistence-cassandra: 0.0.0-1120-5b7555fe-SNAPSHOT
CassandraJournal caches Future[PreparedStatement] with lazy val.
It caches failed Future[PreparedStatement] when PreparedStatement initialization fails.
https://github.com/apache/incubator-pekko-persistence-cassandra/blob/7741ba0ab3be3ab0c132dcfc866d14c25e2c08de/core/src/main/scala/org/apache/pekko/persistence/cassandra/journal/CassandraJournal.scala#L117-L152
The failure can occur when the app starts where Cassandra or the network is unstable.
The broken cache makes it fail to read events from the Journal continually.
[2023-10-02 06:43:27,936] [ERROR] [com.example.Counter$] [system-pekko.actor.default-dispatcher-14] [] - Supervisor StopSupervisor saw failure: Exception during recovery. Last known sequence number [0]. PersistenceId [example2], due to: Exception during recovery. Last known sequence number [0]. PersistenceId [example2], due to: Query timed out after PT0.5S
org.apache.pekko.persistence.typed.internal.JournalFailureException: Exception during recovery. Last known sequence number [0]. PersistenceId [example2], due to: Exception during recovery. Last known sequence number [0]. PersistenceId [example2], due to: Query timed out after PT0.5S
        at org.apache.pekko.persistence.typed.internal.ReplayingEvents.onRecoveryFailure(ReplayingEvents.scala:278)
        at org.apache.pekko.persistence.typed.internal.ReplayingEvents.onJournalResponse(ReplayingEvents.scala:211)
        at org.apache.pekko.persistence.typed.internal.ReplayingEvents.onMessage(ReplayingEvents.scala:109)
        at org.apache.pekko.persistence.typed.internal.ReplayingEvents.onMessage(ReplayingEvents.scala:84)
        at org.apache.pekko.actor.typed.scaladsl.AbstractBehavior.receive(AbstractBehavior.scala:93)
        at org.apache.pekko.actor.typed.Behavior$.interpret(Behavior.scala:283)
        at org.apache.pekko.actor.typed.Behavior$.interpretMessage(Behavior.scala:239)
        at org.apache.pekko.actor.typed.internal.InterceptorImpl$$anon$2.apply(InterceptorImpl.scala:67)
        at org.apache.pekko.persistence.typed.internal.EventSourcedBehaviorImpl$$anon$1.aroundReceive(EventSourcedBehaviorImpl.scala:222)
        at org.apache.pekko.actor.typed.internal.InterceptorImpl.receive(InterceptorImpl.scala:95)
        at org.apache.pekko.actor.typed.Behavior$.interpret(Behavior.scala:283)
        at org.apache.pekko.actor.typed.Behavior$.interpretMessage(Behavior.scala:239)
        at org.apache.pekko.actor.typed.internal.InterceptorImpl$$anon$2.apply(InterceptorImpl.scala:67)
        at org.apache.pekko.actor.typed.internal.SimpleSupervisor.aroundReceive(Supervision.scala:141)
        at org.apache.pekko.actor.typed.internal.InterceptorImpl.receive(InterceptorImpl.scala:95)
        at org.apache.pekko.actor.typed.Behavior$.interpret(Behavior.scala:283)
        at org.apache.pekko.actor.typed.Behavior$.interpretMessage(Behavior.scala:239)
        at org.apache.pekko.actor.typed.internal.adapter.ActorAdapter.handleMessage(ActorAdapter.scala:141)
        at org.apache.pekko.actor.typed.internal.adapter.ActorAdapter.aroundReceive(ActorAdapter.scala:117)
        at org.apache.pekko.actor.ActorCell.receiveMessage(ActorCell.scala:590)
        at org.apache.pekko.actor.ActorCell.invoke(ActorCell.scala:557)
        at org.apache.pekko.dispatch.Mailbox.processMailbox(Mailbox.scala:280)
        at org.apache.pekko.dispatch.Mailbox.run(Mailbox.scala:241)
        at org.apache.pekko.dispatch.Mailbox.exec(Mailbox.scala:253)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Caused by: org.apache.pekko.persistence.typed.internal.JournalFailureException: Exception during recovery. Last known sequence number [0]. PersistenceId [example2], due to: Query timed out after PT0.5S
        at org.apache.pekko.persistence.typed.internal.ReplayingEvents.onRecoveryFailure(ReplayingEvents.scala:278)
        at org.apache.pekko.persistence.typed.internal.ReplayingEvents.onJournalResponse(ReplayingEvents.scala:201)
        ... 27 common frames omitted
Caused by: com.datastax.oss.driver.api.core.DriverTimeoutException: Query timed out after PT0.5S
        at com.datastax.oss.driver.internal.core.cql.CqlPrepareHandler.lambda$scheduleTimeout$1(CqlPrepareHandler.java:164)
        at io.netty.util.HashedWheelTimer$HashedWheelTimeout.run(HashedWheelTimer.java:715)
        at io.netty.util.concurrent.ImmediateExecutor.execute(ImmediateExecutor.java:34)
        at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:703)
        at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:790)
        at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:503)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:829)

We can reproduce the problem with the following sample project.

pekko-persistence-cassandra-prepared-statement-cache-issue.zip.

@danischroeter @nvollmar I did some investigation of the history of why the lazy vals were introduced in CassandraJournal and the 2 of you were involved in the changes. (https://github.com/akka/akka-persistence-cassandra/issues/816)
It seems that we need retry when the Future[PreparedStatement] ends up in failed state.

@danischroeter @nvollmar I did some investigation of the history of why the lazy vals were introduced in CassandraJournal and the 2 of you were involved in the changes. (akka/akka-persistence-cassandra#816)
It seems that we need retry when the Future[PreparedStatement] ends up in failed state.

The solution would be pretty easy then, i.e. change to def?

@mdedetrich the problem code used defs but were changed to lazy vals to fix issues - see the conversation in https://github.com/akka/akka-persistence-cassandra/issues/816. We may be better off trying to introduce code that recovers from failure than reverting to defs. But it's worth considering both approaches.

I'm going to press on with the 1.0.0 release and add this as a known issue in the release notes. Hopefully, we should be able to release a patch in the next few weeks that fixes this issue.

@pjfanning
Thank you for addressing the issue.
I'll see if your PR (#106) can fix my problem.

@negokaz LazyFutureEval is designed to fix the issue where a lazy val stores a failed future. A def won't store a failed future. I'm not fully against changing those defs that you highlighted but I think that could be treated as a separate issue. In my mind, changing those defs is a potential performance optimisation.


[DO NOT MERGE] Build step by step pages

https://trello.com/c/I7BkEdQz/522-build-pages-for-step-by-step-in-collections-publisher

I've just added the content changes Jon and me did yesterday.
I still cannot save the base path (now renamed "slug" in the UI), I always get an error that it's invalid. I tried several variations (starting or ending with slash or not). Is there any specific rule I need to follow? If yes, that should be made explicit in the UI.

I have removed every reference to anything which wasn't implemented yet or wasn't implemented properly (like the preview). I couldn't remove ae648e17921f764dce0d6a8f26cab6851097cc36 from the git history because that contains other things than just adding the preview page, despite its commit message.

I noticed that adding or editing a nav and editing a step all show a success feedback message, but adding a new step doesn't. Is that intentional?

I've added a feedback message when a new step gets created (in the "add step pages" commit).

I've fixed the tests and squashed a few of the last commits

Looks good @sihugh , thanks for fixing those tests!

I've just added the latest design changes as well and cleaned up the git history so everything that belongs together is in one commit.

I've also just moved the 'partials' from the partials folder into the existing 'shared' folder into a new 'steps' subfolder. I think it makes more sense as that is the place where there already are a few shared partials.
I'm happy with all the frontend stuff.


Added a cypher processor and made some structural changes to builder

Ok so this ended up being heavier than I thought. Let me go ahead and give you the bad news first:

[x] I completely broke the orient processor with my changes. Figured you could have a look and correct things faster than me here.
[ ] We have a bit of a (big) structural issue in query building. Neo and Gremlin allow (and for some actions require) a combination of select, update, create. Which is not something we can currently do.
[ ] Right now BaseBuilder has some level of sugar syntax (where() for example) we should move this down to Builder. The association of Bag::X and string versions should probably go down as well. I've done some of this but not all.
[ ] I've made some changes in this direction but I think there are more: Builder sugar should allow users to simplify how they pass the data to the methods, not allow them to add different types of information. An example here is update() that could take both data and a target, this really complicates the API and code. For a more intuitive use we should only allow one "type" of information in different sugared formats. (Don't know if I'm making sense)

Now here's what this PR has:

[x] I removed BaseBuilder::target() as it was ambiguous. In the same line of thought Bag::$target now refers to the element type (Vertex via Bag::ELEMENT_VERTEX or Edge via Bag::ELEMENT_EDGE). I kept target as the name but we can change this.

[x] Introduced a Builder::type() method to define the type.

[x] labels are now to be set in Bag::$where and Bag::$data  with a key of Bag::ELEMENT_LABEL. The processors will have to translate this where row to the appropriate language spec (I think only orientSQL will need special care here).

[x] Introduced Builder::label() to automate this.

[x] IDs are now to be set inBag::$where and Bag::$data with a key of Bag::ELEMENT_ID. The processors will have to translate this where row to the appropriate language spec (I think only orientSQL will need special care here).

[x] Changed Builder::record() to reflect this.

[x] Changed how ordering worked. We had only one ordering direction for all ordered fields. Now you set order values via Builder::orderBy('field', Bag::ORDER_ASC) (default), and the Bag stores this information as [['field1', Bag::ORDER_DESC],['field2', Bag::ORDER_ASC]]. I had to remove some of the sugar for this, we can discuss how to sugar this new signature.
I removed Bag::$orderAsc in the process as well as the Builder::asc() and Builder::desc() methods.

[x] Changed BaseBuilder::update() to only accept data. Target info should be added via record, from, label, into, etc.

[x] Added Bag::COMPRATOR_IN for array scenarios.

[x] Added Bag conjunctions for XOR and NOTscenarios.

[x] removed the src/Graphs folder and references to the no longer needed ID class.

[x] made Bag::$data consistent. It should now always be a double array regardless of the number of elements [['data'=>'here']] or [['data'=>'here'],['more'=>'here']]. It's the Builder's job to ensure the bag has the correct format now, not the processor's job to figure out what the format is.

[x] Renamed BaseBuilder::create() to BaseBuilder::insert() to simplify the API. This way people checking the BuilderAPI don't have both methods show up with different signatures (less confusing).

[x] Added a couple of processor tests around handling edges instead of vertices. This is way incomplete but we can make this better in one of the upcoming code coverage PRs we'll be doing.

[ ] Changed some parts of the documentation to reflect some of these changes

Let me know if you see anything outrageous!

I am happy to fix orient tests. I know orient pretty well, so that shouldn't be a problem. May I assume that all the Neo tests work as it is?

Yes they all work. Only orient processor and integration tests fail (and one driver test that should auto fix once the processor is up to date)

Alright, this all looks good, but I do have a few questions/counter-proposals/challenges/discussion-thingies. I will pull this tomorrow and try to get the orient processor up to snuff and really dig into each of the above, then respond a chunk at a time.
I really like the direction this is going. I do have to say that I agree the BaseBuilder should be as straight forward and rigid as possible, but it is important to me that Builder be able to be used fluently. Code that tells a story is just easier to manager.

As a reminder we can close #50 once we've agreed here.

Alright, I've been fighting with travis and coveralls, and finishing up another deadline. The rest of my week is (more-less) freed up for this. I'd love to get to 0.3 or really close sometime Sunday, as I leave town for a week on Sunday night.
That said, here are some of my initial impressions about this PR.

I've already checked off the items I'm totally onboard with.
Fixing the orient tests should be no problem
This moves getCommand() and getScript() to the BaseBuilder, but BaseBuilder has no inherent awareness of a processor. We had originally said the BaseBuilder does NO processing, only manipulates the Bag. I don't mind BaseBuilder processing, but that should be reflected throughout, i.e. in the constructor, getters, setters, fields, etc. If you agree, I can do this easily. If not, what justification was there for this?
I don't understand why where() should be moved to Builder. That, to me, isn't sugar, its necessary. BaseBuilder isn't abstract, we should be able to use BaseBuilder for the entire process, even if it is verbose and unable to process into Commands or Scripts.
Can you give me an example of when select, update, and create would be used in a single operation? Are you talking about sub-queries?

$builder
   ->update($data)
   ->where(new Builder()->select()->from()->where('user', 'username'));

In either case, Orient allows for SQL Batching, which is how I handle transactions, anyway. I don't think this will be a problem.
I'm sure I'll have more questions as I dig into the tests. For now, I'm making changes in a local branch. It'll probably be best if I issue a PR against this branch instead of pushing directly.
On some side notes: I've run into more complications with gremlin-server but I'm hunting down stack traces now. This time its while installing the hadoop dependencies.
I've also setup Travis and executed the first build, which actually failed for some of the jobs but not others. You can see at https://travis-ci.org/spider/spider/branches.

I have issued a pr to bring orient into this pr. I didn't touch anything except orient and the integration tests, with the exception of updating a few incompatible signatures.
This is more-less ready, but I'd still like to discuss the items I mentioned.

This moves getCommand() and getScript() to the BaseBuilder, but BaseBuilder has no inherent awareness of a processor. We had originally said the BaseBuilder does NO processing, only manipulates the Bag. I don't mind BaseBuilder processing, but that should be reflected throughout, i.e. in the constructor, getters, setters, fields, etc. If you agree, I can do this easily. If not, what justification was there for this?

Yes I agree. I'm not sure what thought process led to not including the processors initially but they should be part of baseBuilder.

I don't understand why where() should be moved to Builder. That, to me, isn't sugar, its necessary. BaseBuilder isn't abstract, we should be able to use BaseBuilder for the entire process, even if it is verbose and unable to process into Commands or Scripts.

I think where() should be in BaseBuilder in it's initial version (no handling of sugar). We can then override it in Builder to add support for sugar syntax (and convert it before sending it to parent::where())

Can you give me an example of when select, update, and create would be used in a single operation? Are you talking about sub-queries?

No (or at least not on the surface, maybe it can be fixed with subqueries). One such example would be selecting two nodes to create an edge between them. But you can imagine way more complex scripts that mutate the graph during traversal (many neural network user cases would need this).

On some side notes: I've run into more complications with gremlin-server but I'm hunting down stack traces now. This time its while installing the hadoop dependencies.

Let me know if you need any help.

I've also setup Travis and executed the first build, which actually failed for some of the jobs but not others.

I pushed a correction for this, it now passes (I didn't give neo4j enough time to init before trying to change the password)

PS I am almost done with a PR that moves all Query tests to integration, covers the full api (I think), and tests Neo as well. I should have it ready tomorrow morning. After that, this will probably be ready to merge.

Alright, I track with everything above and agree totally. Not sure what to do about single operation CUD queries. Orient has batch SQL, so that should work pretty well on that end. What did you have in mind?

I'm not really sure at this point. I was thinking of doing something along the lines of taking a language grammar.. say the following cypher grammar:
MATCH ...
OPTIONAL MATCH ...
WHERE ...
ORDER BY ...
LIMIT ...
CREATE ...
SET ...
RETURN ...

Break it down into common sections like say:

SELECT = MATCH & OPTIONAL MATCH
WHERE = WHERE
ORDER = ORDER BY
LIMIT = LIMIT
GROUP BY = Something the processor would have to translate since there is no cypher equivalent
INSERT = CREATE
UPDATE = SET
PROJECTIONS = RETURN

Store them separately and independently of each other and then piece them together according to the grammar layout.
In that sense we would have :

SELECT that contains type information (V or E)

...  (skipping the self explanatory ones)

INSERT would contain all information about what elements we're creating (V or E), how many of each and that's it (depending on how you look at it an insert could be a creation of element and then an update of said element.
This would be transparent to the user (insert would still work like it currently does) we would just store it differently. INSERT would have the info mentioned above and somehow linked to the corresponding data in UPDATE

UPDATE would contain the current $data. That is, fields and their new values (whether it be for creation or update)

PROJECTIONS is the same as currently. It can be populated as it currently works.

The thing is. This can become very tedious. Maybe it's best that we decide on how to write a simple query that selects two vertices and places an edge between them.
Here's one suggestion:
$builder->select('c')->where(['a.name'=>'marko', 'b.name'=>'chris']) // builder understands we're getting two sets a and b
        ->limit(2)
        ->insert(['c.type' => Bag::ELEMENT_EDGE]) // new c element
        ->update('c')->withData($data)

I don't like this for many reasons but man am I at a loss trying to figure something better out. Well hopefully this gets the ball rolling. We should probably open an issue for this.

The other thing I can think about is that these mutating traversal scenarios often depend heavily on traversal logic and should probably require using a TraversalBuilder. In which case we could "say screw this" on the Builder layer, and keep it simple. the above and some other simple scenarios could be accomplished via:
$builder->insert()->type(Bag::ELEMENT_EDGE)
        ->withData([
            'outV'=>(new Builder)->select()->where(['name'=>'marko']) ,
            'inV'=>(new Builder)->select()->where(['name'=>'chris']),
            Bag::ELEMENT_LABEL=>'friend'
        ])

A few points here in response and kinda related.

So, are you suggesting a Bag layout along the lines of:
class Bag {
     $command; // same as now
     $insert = [
            Bag::ELEMENT_OUTV=>$builderInstanceToBeProcessed, // Using a sub-select
            Bag::ELEMENT_INV=>$AnotherBuilderInstanceToBeProcessed, // Using a sub-select
            Bag::ELEMENT_LABEL=>'friend'
     ],
     $data = [[]]
}

Because I like that separation.
I also like using dot notation whenever we can. It just makes sense.

I had figured we could (in our next iteration) embed instances of Builder inside Bag and then Processor could do a simple type check and process into a Command to be inserted into the parent command.
Also, we should introduce a simple insertEdge() at the BaseBuilder level to make explicit when we are creating relationships. All other RUD operations can use the standard.
// insertEdge($label, $from, $to, $properties = [], $direction = '')

$baseBuilder->insertEdge(
    'is_following',
    new Builder()->select->from('users')->where(['username', Bag::EQ, 'chris'])->limit(1),
    new Builder()->select->from('users')->where(['favorite_color', Bag::EQ, 'purple'),
    [
        'date_followed' => 8/20/2015,
        'weight' => .5
    ],
    Bag::DIRECTION_OUT
);

Now, chris is follow everyone whose favorite color is purple.
Which could obviously be sweetened at the Builder level and dispatched at the Query.

I was thinking about the Traversal Builder, and I think our best option is actually to follow Orient's lead in this case. They added a TRAVERSE command to standard SQL:
TRAVERSE * FROM #10:1234
SELECT FROM ( TRAVERSE friends FROM #10:1234 WHILE $depth <= 3 ) WHERE $depth >= 1
SELECT $path FROM ( TRAVERSE out FROM V WHILE $depth <= 10 )
In many cases, though, SELECT works much faster than TRAVERSE:
SELECT out('follow').out('follow') FROM TwitterAccounts
Though, in our case, I don't know if I like mixing the imperative/declarative aspects. Tread carefully.
For spider, what if we simply included the Traversal Builder as a dependency of the Builder or Query. This allows the user to not worry which builder to instantiate or configuring two builders. The user simply: $query->traverse()->match()->out()->out()->go().
I like the idea of using Cyphers terms for traversals, they seem clearer. But that may confuse the issue.
That would also allow us to inject the standard builder into the Traversal Builder and perform subselects in a similar way that Orient does.
Get all the friends up to the third level of depth.
In OrientSQL:
TRAVERSE friends FROM (SELECT FROM person WHERE username = 'dylan') WHILE $depth <= 3
`$query->traverse()->start(
    new Builder()->select()->from('person')->where(['username', Bag::Equal, 'dylan'])
)
    ->while(['depth', Bag::LE, 3])
    ->all();

Or with sugar:
`$query->traverse(
            'select', ['from' => 'person', 'where' => ['username', 'dylan']]
     )
    ->while(['depth', '<=', 3])
    ->all();

Which could probably be sweetened further.

Well now that I've had a good night's sleep and thought about it some more. We might be able to get away with it without changing Bag.
If we decide to go with :
$builder->insert()->type(Bag::ELEMENT_EDGE)
        ->withData([
            Bag::ELEMENT_OUTV=>(new Builder)->select()->where(['name'=>'marko']) ,
            Bag::ELEMENT_INV=>(new Builder)->select()->where(['name'=>'chris']),
            Bag::ELEMENT_LABEL=>'friend'
        ])

Then we will end up with a Bag that contains other Bag elements, all of which function like the current Bag. I also think that this scenario is better than having Builder inside Bag (the Processor shouldn't know what to do with a Builder. And it has the advantage of being a good way of easily implementing nested queries (aka traversals in a declarative way).
With that said, the traversal scenarios that are more complex might require that separation of logic (but maybe we should worry about that when we get there)

As far as Traversals go (imperative kind) we should probably use gremlin as a basis as.. well that's the reference language for these kinds of operations.
There's going to be a lot of thinking required here. For instance, your example of while looping doesn't specify what actions to loop. Also the mix of imperative and declarative style commands won't really work. Here's an example:
$builder->traversal()->start(/* ... */)->repeat((new Builder)->traversal()->both())->times(3) // or ->until( <some bool clause> )

In this case is (new Builder)->traversal()->both() a correctly formatted Bag? Going to be tricky.

I really like that insert data. We need to add properties to it, but that's just a fourth key.
I feel like that logic should be in the BaseBuilder and then abstracted further in the Builder. Somewhere, I would like $query->createEdge($label, $from, $to, $direction, $properties) which can be translated into your logic and stored in the bag. We could also try connect() and relate(), which I've seen in other libraries.
But all of this is for the next iteration, yes?
For imperative traversals, model after gremlin. I was saying for declarative traversals, we can mix in some Cypher as needed. But again, that is the next cycle.
I'd like to focus on what needs to be done to merge my other pr into this and this into develop. Then cleanup and release 0.3. Prune branches and issues. If we can get that far by the end of the week, when I leave town for a few days, my team can start to integrate this into the app we are developing while I'm gone. Real world testing, even if limited.

Yeah those are all for the next iteration imo. This is good to go


Add end dates for MetOp-A AMSU-A AVHRR ASCAT

Implement changes for #66 - prepare for MetOp-A decommissioning
in mksi/sidb

turn off MetOp-A AMSU-A and AVHRR in active_channels.tbl
add end date for MetOp-A AMSU-A AVHRR HIRS MHS in available_channels.tbl
turn off ch 14 iuse=4 in iuseClass-4_channels.tbl
turn on MetOp-B and NOAA 19 AVHRR

turn off MetOp-A ASCAT (kx=290, satid 4) in gmao_global_convinfo.txt
Using 20210918/12z as transition date (as tested in f5721_metop)

Oh, I mistyped that  - I have to watch it with these late night edits.  What I meant to say is that MetOp-A ASCAT is removed and replaced with MetOp-B ASCAT (not AVHRR).  Since we do not have a time dependent convinfo configured yet - the switch to MetOpB ASCAT affects all dates, so it is non-zero-diff.
The "observation-configuration" was a label I added because I have been doing a lot of edits of the observation database where for dates prior to an observation change the assimilation was zero-diff and after the change the assimilation would not be zero-diff.  And, because these have been changes for recent events assimilation tests like the X-experiments would not yet be affected because they are still before the effective dates.  Except, of course, for this case as I noted above.
Per Matt's note there are specific labels for the label check and 'observation configuration' is not one of the required ones.


42 | Trapping Rain Water | Java | Python

Title - 42. Trapping Rain Water
What will change -
Type of Issue -
Please add/delete options that are not relevant.

[x] Adding New Code
[] Improving Code
[] Improving Documentation
[] Bug Fix

Programming Language
Please add/delete options that are not relevant.

[x] Python
[] C++
[x] Java
[] SQL

Self Check

Ask for issue assignment and wait to get assigned to it before making Pull Request.
Add your file in the proper folder
Clean Code and Documentation for better readability
Add Title and Description of the program in the file

:star2: Star it :fork_and_knife:Fork it :handshake: Contribute to it!
Discord server ✉ - https://discord.gg/CXksGdn
Happy Coding,

Assign to me!

[x] Assigned to @Shrirang97

Can I write a C++ code for the same problem? Should I raise another issue or can you assign me to the same and I contribute?

@SankethGB you can raise another issue. Just check that it doesn't already exist


Use fungible token traits in alliance pallet

Replaces the ReservableCurrency trait bound on the Currency associated type for pallet_alliance::Config with fungible::BalancedHold.
Related to #8285 and #8453.
I may have jumped the gun here as the logic for BalancedHold::slash_held is different from ReservableCurrency::slash_reserved, so we may instead have to fix that first.

In general I think moving to these traits is a good thing. However, there are some runtime features that interact with reserved/slashed assets, e.g. https://github.com/paritytech/cumulus/pull/1433/files, that we're quite far into testing locally and on Westend. I'd prefer to launch the Collectives chain using the balances as they are now because we have high confidence that they are safe. Then we can give this more attention, auditing, and testing and migrate to it in an upgrade.


ngModelController $parsers, $formatters... and $validators  ?

Hello,
I would like to use ngModelController's $parsers, $formatters, and why not $validators properties....
I can do a pull request, but I want to know what you think...
I thought about a sf-form-processor="form" directive.
The directive will look into form.$parsers, form.$formatters and form.$validators to fill the ngModelController.$xxxxx
Perhaps this directive should merge the schemaValidate directive... ?

Oooooh yeah parsers seems to be a nice thing to expose. Also the very nice $asyncValidators could really be useful for "checking if the username is already taken". I'm not making any promises time wise ;)  but its a good idea!

I migrated to react, I don't like the idea of angular 2... But good luck with your nice project.
Then I will not PR this :)
Regards.


Revert not-sending empty label values once upstream is fixed

Revert workaround https://github.com/oasislabs/oasis-core/pull/2898 which disabled sending empty metrics labels once upstream https://github.com/prometheus/pushgateway/issues/344 is fixed.

Push Gateway issue:
https://github.com/prometheus/pushgateway/issues/344
And client_golang issue with potential fix (i.e. encode empty value as base64):
https://github.com/prometheus/client_golang/issues/750
Once the latter is fixed, calling pusher.Grouping("key", "") should work.

Fixed upstream. Will land in v1.6.1, waiting for the release.


Increase WASM_BINDGEN_THREADS_MAX_MEMORY to 65536

Summary
I'd love to be able to use 4gb of memory, but am not managing to get it to work, either in the wasm binary or in the generated bindings.
Feels like I'm nearly there, but haven't quite managed to figure it out and a bit stumped. Sorry to bother and thanks for building all this amazing stuff, any pointers would be super appreciated!
Additional Details
I was processing some beefy medical images in the browser and running into memory issues. I've managed to get threads working with the parallel-raytracing example, which is absolutely amazing thanks! Using the config and flags from parallel-raytracing, I can see that rustc generates a wasm binary that is expecting some shared memory with 1GB max capacity:
wasm-objdump --details --section=import target/wasm32-unknown-unknown/release/a_fancy_library.wasm | grep memory
I found the cheeky WASM_BINDGEN_THREADS_MAX_MEMORY env var in the cli-support crate here, but it wouldn't seem to work when I exported WASM_BINDGEN_THREADS_MAX_MEMORY=65536, either in the bindings or any wasm transformation.
On the wasm generation side of things, I found the "-z stack-size=1048576" in wasm32_base.rs, but this seems to be the initial 1M (or 16 64kb pages) allocation, rather than the maximum...? Even though the generated binary has an initial 17 pages...
Next actions might be:

somehow find the magic compiler/linker flag that makes everything work
use walrus to edit the generated wasm binary after the fact?
write some hacky bash/xxd script to change the number in the binary, and sed -i '' 's/maximum:16384/maximum:65536/' pkg/a_fancy_library.js in the bindings... 👎

I have a feeling there is some hard reason why the default isn't at least 2GB and up to 4GB, perhaps performance, or portability across browsers? If not, I'd be delighted to work on this feature and submit a PR if someone could point me in the right direction!

If this env var doesn't work that's likely just a bug in wasm-bindgen's thread transformation pass right now. Shouldn't be too hard to fix hopefully!

Awesome thanks peeps! In that case I'll have a crack at fixing it

Sweet, @alexcrichton I found this little gem that you wrote 2 years ago! I thus discover that link-arg is a thing, and the wasm now generates with 4GB:
$ export RUSTFLAGS='-C target-feature=+atomics,+bulk-memory -C link-arg=--max-memory=4294967296'
$ cargo build --lib --release --target wasm32-unknown-unknown -Z build-std=std,panic_abort
$ wasm-objdump --details --section=import target/wasm32-unknown-unknown/release/segmentation_volume.wasm | grep memory

 - memory[0] pages: initial=17 max=65536 shared <- env.memory

Now just have to figure out the bindings side with the thread transformation pass...

 Amazing, so in summary for anyone reading this in future, you just have to add -C link-arg=--max-memory=4294967296 to your RUSTFLAGS if you'd like the maximum 4GB of memory. Thanks again for taking a look at this Alex and Crimson!


Fix 05-clock timing fuzzer

In radiant 3.0 signal cannot drive DCC's CLKI and CE at the same time, even if these are 2 different instances of this primitive.
This was solved by moving ctrl signals to r[21:24].
Get_source was broken when DCS where used. DCS calls get_source twice using up 2 extra clock signals.
This introduced undefined r[21] and r[22] signals, which were conneced by default to GND_net.
Signed-off-by: Maciej Dudek<EMAIL_ADDRESS>

Ping @gatecat

@gatecat I think you may be Interested in this PR. It fixes some issues with clock timing fuzzer.


Compile all script

Write and add a compile all script that automatically generates all PDFs for the sheets inside a selected folder.
Pseudocode:
for each file in folder:
    modify .tex file to get the correct sheet number
    compile .tex file
    rename created PDF

powershell script done with commit: a584fc17d6ea0d46c9fa2b3bf2b144101f8d1b2a

Done with commit: e22a1674a5aace86a47f6a48795a3ecc0972a727


Missing documentation on assigning markers (and annotations)

Hey, streamlit_ace is great stuff.
I am having issues though making the "markers" option do anything.  Am I correct to think that it takes a list of dicts looking like
{'startRow': 1, 'startCol': 0, 'endRow': 302, 'endCol': 0, 'className': 'red', 'type': 'text'}
And "red" needs to be defined as CSS class via st.markdown()?
If not, how does it work?
Thanks

Hi, did you figure it out? Seems like the problem comes from the fact that streamlit components are rendered inside iframes, so any <style> tags defined outside it (such as using st.markdown() will not affect the components in any way. I have yet to find a solution to this problem, though...


Build the UI for Concave bonds smart contracts

UI must be connected to the Сoncave implementation of Ubiquity bonds
Replace the content on the current bonds page

You can assign this to me.

You can assign this to me.

@codeawayaks You commented on 20+ GitHub issues that you want to take it.
One developer should solve one bounty at a time to minimize blocking other developers to effectively move forward.
Which 1 bounty do you want to take?

Hi Serg,
We are a company. We have multiple devs. We can take more than one. That’s
the reason, I asked for many. If that’s a problem, can you assign a
significantly bigger bounty to us.
Regards,
Amit
On Wed, 28 Sep 2022 at 12:18 AM, Serg Feldman @.***>
wrote:

You can assign this to me.
@codeawayaks https://github.com/codeawayaks You commented on 20+ GitHub
issues that you want to take it.
One developer should solve one bounty at a time to minimize blocking other
developers to effectively move forward.
Which 1 bounty do you want to take?
—
Reply to this email directly, view it on GitHub
https://github.com/ubiquity/ubiquity-dollar/issues/263#issuecomment-1259915521,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZW7E2IA3VVZMLCJNPDQOT3WAM6RPANCNFSM6AAAAAAQQIATXQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Regards,
Amit Kumar
CEO
https://spirinova.dev

Hi Serg, We are a company. We have multiple devs. We can take more than one. That’s the reason, I asked for many. If that’s a problem, can you assign a significantly bigger bounty to us. Regards, Amit
On Wed, 28 Sep 2022 at 12:18 AM, Serg Feldman @.> wrote: You can assign this to me. @codeawayaks https://github.com/codeawayaks You commented on 20+ GitHub issues that you want to take it. One developer should solve one bounty at a time to minimize blocking other developers to effectively move forward. Which 1 bounty do you want to take? — Reply to this email directly, view it on GitHub <#263 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AZW7E2IA3VVZMLCJNPDQOT3WAM6RPANCNFSM6AAAAAAQQIATXQ . You are receiving this because you were mentioned.Message ID: @.>
-- Regards, Amit Kumar CEO https://spirinova.dev

@codeawayaks At the moment this Bounty System is for individual developers - Web3 enthusiasts.
As a company, you can send the proposal with your prices to<EMAIL_ADDRESS>

Is this still available or already assigned to anybody else?

@DevSCNinja This bounty is available. It is quite a complex task that requires coordination with a few developers.
At the moment, I am not ready to assign it to you.
Please, try to effectively solve bounties with 100 USDC price.

Ok @sergfeldman.
By the way this 100 USDC bounty https://github.com/ubiquity/ubiquity-dollar/issues/283 is solved with me.
What do you think of it?

Hi @sergfeldman.
This 100 USDC bounty https://github.com/ubiquity/ubiquity-dollar/issues/283 was solved with me.
What do you think of it?

Hey @sergfeldman, this https://github.com/ubiquity/ubiquity-dollar/issues/164 is the only 100$ bounty.
And other bounties are more than 200$ and I am not sure if you are ready or not.
Please help me and I will try my best to solve it.

@DevSCNinja @mastercodechef As I understand these 2 GitHub accounts belong to the same person.
My thoughts about the #283

The initial project setup was done only after the help from other developers.
A pull request with a correct solution to the issue was not provided by you. It turned out that the issue was solved earlier by another developer.

It would not have turned out unless my contribution.

We're working with ApeSwap now


[wip]add device io stat metrics

What type of PR is this?

What this PR does / why we need it:
There are some metrics like iobusy/ioread/iowrite. They are  originated from /proc/diskstats (their filed numbers are 13, 4, 8 respectively).
These metrics are like counter type in prom. Thus they need to be rated over time.
Which issue(s) this PR fixes:
Special notes for your reviewer:

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.baojiangnan.bjn seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Some tests had been done as follows:

@sun-yuliang @waynepeking348 It seems there are some problems with the CI environment. Please help rerun the Unit Test. I'm unable to do it.


Linux galllery tasks fail on pre-build apk from another task

This is part of https://github.com/flutter/flutter/issues/103542, which is migrating gallery tests to build+test model.
We have validated the separation logic works as expected: we can build the apk first (save the apk in a specific location), and run the test separately based on the pre-build apk. But this works only when running the test based on the apk build from the same task.
For example:
Task flutter_gallery__transition_perf:

build step: dart bin/test_runner.dart test -t flutter_gallery__transition_perf --task-args build --task-args "application-binary-path=/tmp" builds apk to /tmp/app-profile.apk.
test step: dart bin/test_runner.dart test -t flutter_gallery__transition_perf --task-args test --task-args "application-binary-path=/tmp" succeeds based on the pre-build apk.

However, if we are running the test step of another task (say: flutter_gallery__transition_perf_e2e) based on the apk from above task flutter_gallery__transition_perf. It fails (this is based on the draft PR):
[flutter_gallery__transition_perf_e2e] [STDOUT] stdout: Running "flutter pub get" in flutter_gallery...                  1,927ms
[flutter_gallery__transition_perf_e2e] [STDOUT] stdout: Installing ../../../../../../../../tmp/app-profile.apk...          13.9s
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: VMServiceFlutterDriver: Connecting to Flutter application at http://<IP_ADDRESS>:56135/DzJgkSacTP0=/
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: VMServiceFlutterDriver: Isolate found with number:<PHONE_NUMBER>529479
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: VMServiceFlutterDriver: Isolate is paused at start.
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: VMServiceFlutterDriver: Attempting to resume isolate
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: VMServiceFlutterDriver: Connected to Flutter application.
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: Unhandled exception:
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: DriverError: Error in Flutter application: Uncaught extension error while executing request_data: Null check operator used on a null value
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #0      main.<anonymous closure> (file:///Users/keyonghan/Documents/work/flutter/dev/integration_tests/flutter_gallery/test_driver/transitions_perf.dart:49)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #1      CommandHandlerFactory._requestData (package:flutter_driver/src/common/handler_factory.dart:224)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #2      CommandHandlerFactory.handleCommand (package:flutter_driver/src/common/handler_factory.dart:165)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #3      FlutterDriverExtension.handleCommand (package:flutter_driver/src/extension/extension.dart:437)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #4      FlutterDriverExtension.call (package:flutter_driver/src/extension/extension.dart:368)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #5      BindingBase.registerServiceExtension.<anonymous closure> (package:flutter/src/foundation/binding.dart:856)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: <asynchronous suspension>
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr:
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr:
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #0      VMServiceFlutterDriver.sendCommand (package:flutter_driver/src/driver/vmservice_driver.dart:325:7)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: <asynchronous suspension>
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #1      FlutterDriver.requestData (package:flutter_driver/src/driver/driver.dart:551:39)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: <asynchronous suspension>
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: #2      integrationDriver (package:integration_test/integration_test_driver.dart:76:29)
[flutter_gallery__transition_perf_e2e] [STDOUT] stderr: <asynchronous suspension>
[flutter_gallery__transition_perf_e2e] [STDERR] Task failed: Executable "/Users/keyonghan/Documents/work/flutter/bin/flutter" failed with exit code 1.
[flutter_gallery__transition_perf_e2e] [STDERR]
[flutter_gallery__transition_perf_e2e] [STDERR] Stack trace:
[flutter_gallery__transition_perf_e2e] [STDERR] package:flutter_devicelab/framework/utils.dart 94:3        fail
[flutter_gallery__transition_perf_e2e] [STDERR] package:flutter_devicelab/framework/utils.dart 363:5       _execute
[flutter_gallery__transition_perf_e2e] [STDERR] ===== asynchronous gap ===========================
[flutter_gallery__transition_perf_e2e] [STDERR] dart:async                                                 _CustomZone.registerBinaryCallback
[flutter_gallery__transition_perf_e2e] [STDERR] package:flutter_devicelab/framework/framework.dart 274:26  _TaskRunner._performTask.<fn>
[flutter_gallery__transition_perf_e2e] [STDERR] package:stack_trace                                        Chain.capture
[flutter_gallery__transition_perf_e2e] [STDERR] package:flutter_devicelab/framework/framework.dart 273:11  _TaskRunner._performTask
[flutter_gallery__transition_perf_e2e] [STDERR] package:flutter_devicelab/framework/framework.dart 166:43  _TaskRunner.run

From the build args, I didn't find any difference between these two tasks, but I guess I am missing something. /cc @zanderso Do you have any insight about this issue? The expected behavior is all these gallery tasks could run test step successfully based on a pre-built APK from any of these tasks.

This is WAI. Closing.


textarea validation

When using textarea input, the validator does not detect change like other types.
For example, if a validate that the input is not empty, when I "reject()" the error appears correctly but when I start typing the error does not disappear. Then, when confirm is clicked, the error disappears but ".then" is not executed. You have to click it again to finally "submit".
Here there is a jsfiddle with the example: https://jsfiddle.net/vieraleonel1/cmqn7s8c/2/

Thank you @vieraleonel for reporting this issue!
Fixed in v4.0.9


Avatar not being updated | Unhandled Exception: type 'Null' is not a subtype of type 'int' in type cast

The "_getFluttermojiProperty()" method in FluttermojiController is throwing a CastError, this happens when getting the emoji options, the first click to add a property to the avatar, so the FluttermojiCircleAvatar keeps showing the indicator, I tried to see whether it could my issue, but closely followed your example on the pub. dev.
I have both the FluttermojiCircleAvatar, The customizer and the save widget on one page, and added the controller to dependency injection, I think this is something to look into. I like the simplicity of this plugin. Thanks for the work!

Attached is an image of the stack, Thanks.

same problem