Feature Request: Performance Summary View Widget

Problem:
In Argus View, identifying failed test results from the current week is challenging due to the large number of tests and runs. Users must also navigate into test run details to view failed result tables, making it difficult to grasp failures at a glance. Additionally, important tested versions can be buried in the results.
Proposed Solution:
A widget will be developed to simplify the view of weekly test results, emphasizing failures and presenting failure details upfront, without requiring the user to open test run details. It will also provide better visibility into both passed and failed tests.
Widget Features:

Sectioned View by SUT Version:

The widget will be divided into sections based on the System Under Test (SUT) version, such as Scylla, Scylla Manager, or Scylla Driver.
Each section will represent a version tested during the current week and will display test run results segregated into passed and failed lists.

Highlighting Missed or Unstarted Tests:

Tests that were not executed within the last 7 days or failed to start (e.g., due to infrastructure issues like AWS capacity) and have no SUT version assigned will be highlighted at the top of the widget.
These tests will be treated as failures and listed separately, outside of any SUT version section.

Test Run Lists:

Each SUT Version Section will contain test runs segregated into two lists:

Failed List: Displays all failed test runs and their failed result tables.
Passed List: Displays all successfully passed test runs.

Each test run in both lists will be clickable, allowing users to navigate to the detailed test run page if needed.
Each test run entry will show:

values of selected metrics in tabular form, with columns: result table name, and rest will be selected metrics names
The count of error events associated with that test run.
Failed result tables will be displayed (collapsed by default for passed tests, visible for failed tests).
of the error count and the failed result tables (collapsed by default).

Run Investigation Status:

Any test runs marked as "IGNORED" in their investigation status will be excluded from the analysis to avoid clutter.
Test runs that have failed result tables or error events but are manually marked as passed will still be listed in the passed list, with an indication

Widget Configuration:

Users can configure the widget by:

Setting a custom widget name.
Selecting which tests to monitor from the available test groups.
selected metric values (e.g. p99's, duration of repair etc.)

Widgets can be edited at any time to add/remove tests or change the name.

Out of Scope:

Looking back at results from previous weeks.
Showing detailed error events beyond the error count.
Configurable monitoring windows (default is 7 days).

refs: https://github.com/scylladb/qa-tasks/issues/1784

summary-widget.html.zip
@fruch please take a look basic layout (autogenerated, mostly showing just layout as how it will look in detail will change).

summary-widget.html.zip @fruch please take a look basic layout (autogenerated, mostly showing just layout as how it will look in detail will change).

looks like a good start, I would rather see it with less clicks failures should be open to begin with.

Yes, I was planning it.

It's kind of missing showing all the types (read/mixed/write) side by side.

Ok, I'll try that as I need to see if it will fit into screen width.
Still I'm not yet sure how to handle period for summary - hardcode 1 week, make it configurable, or just most recent jobs (which will be harder in case of partial rerun e.g. repeat mixed test).
Also I wonder if shouldn't support going back to previous summaries.

@roydahan @juliayakovlev, care to take a look ?

summary-widget.html.zip @fruch please take a look basic layout (autogenerated, mostly showing just layout as how it will look in detail will change).

looks like a good start, I would rather see it with less clicks failures should be open to begin with.

Yes, I was planning it.

It's kind of missing showing all the types (read/mixed/write) side by side.

Ok, I'll try that as I need to see if it will fit into screen width. Still I'm not yet sure how to handle period for summary - hardcode 1 week, make it configurable, or just most recent jobs (which will be harder in case of partial rerun e.g. repeat mixed test). Also I wonder if shouldn't support going back to previous summaries.

If we continue with direction of running release ontop the same jobs, we'll need also to filter only dev (or specific releases)
as for going back, it's something we are doing quite a lot with current google doc, one can argue the graph can help with that bit
I don't know if we want to take off the table yet...

@roydahan @juliayakovlev, care to take a look ?

If we continue with direction of running release ontop the same jobs, we'll need also to filter only dev (or specific releases)
as for going back, it's something we are doing quite a lot with current google doc, one can argue the graph can help with that bit I don't know if we want to take off the table yet...

So, after rethinking, idea is to add summary widget per release (upon adding widget configure which release to monitor - dev, enterprise-dev, 2024.2, 6.2 etc.).
Additionally, user will be able to scroll to previous tested versions back and forth (right-left arrows next to version, build date)
WDYT?


Microsoft.Bot.Builder.Integration.AspNet.Core/4.9.1

Type: Missing
Summary:
Microsoft.Bot.Builder.Integration.AspNet.Core/4.9.1
Details:
Package files point to MIT and is confirmed by meta data.
Resolution:
https://github.com/microsoft/botframework-sdk/blob/4.9/LICENSE
Affected definitions:

Microsoft.Bot.Builder.Integration.AspNet.Core 4.9.1

@capfei Please resolve this conflict. Thanks.

@AE49 resolved!


Site: Remove extra chars at main page

Features Predictable and Optimized have extra chars at ends of their descriptions.

Good eye, thanks!


endSong() crashes the game...

Describe your bug here.
Pretty self explanatory...
endSong() will sometimes crash and other times make it where you cant hit notes...
(exitSong() is fine tho)
The reason I'm making this is because whenever a song ends the game crashes with no error output and I'm confused...
Command Prompt/Terminal logs (if existing)
none :(

Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
Nothing changed. On 0.6.2 by the way.

please show your Lua script please

I'm more worried about it crashing at the end of a song but here...
a debug thing to end the song early
function onUpdate()
     if keyboardJustPressed("E") then
          endSong()
     end
end

I'm more worried about it crashing at the end of a song but here...
a debug thing to end the song early
function onUpdate()
     if keyboardJustPressed("E") then
          endSong()
     end
end

then add the
function on endSong()
end
because that will fix the crashing

use onEndSong()

use onEndSong()

Thats whats crashing the game tho...

HERE'S A TEMPORARY WORKAROUND!!!
-- if the song crashes put this in the scripts folder
function onUpdate()
	if getSongPosition() > songLength - 2 then
		exitSong()
	end
end

I'm more worried about it crashing at the end of a song but here...
a debug thing to end the song early
function onUpdate()
     if keyboardJustPressed("E") then
          endSong()
     end
end

then add the function onendSong() end because that will fix the crashing

You mean...
function onEndSong()
      return Function_Continue
end

?

I'm more worried about it crashing at the end of a song but here...
a debug thing to end the song early
function onUpdate()
     if keyboardJustPressed("E") then
          endSong()
     end
end

then add the function onendSong() end because that will fix the crashing

You mean...
function onEndSong()
      return Function_Continue
end

?

havent you see my reply
replace onEndSong with onendSong
that why its the opposite

Took me a minute to understand this but I think I've got it...
function onendSong()
      return Function_Continue
end

I now see no reason to keep this open...


[Question] Gorelic WrapHTTPHandler integration

Related to #192
I'm trying to use gorelic's agent.WrapHTTPHandler to monitor individual endpoints however I'm running into issues translating between the http.HandlerFunc and rest.HandlerFunc. I assume it should be possible/fairly easy however I'm still new to golang and not entirely familiar with interfaces and the like.... I would greatly appreciate an example of how to achieve this and I'll put in PR for the readme once I figure it out.  Thanks!

Hi,
The return value of api.MakeHandler() is a net/http Handler. Have you tried to give that value to gorelic's agent.WrapHTTPHandler ?

Hi ant0ine,
Currently I'm doing exactly that
router, err := rest.MakeRouter( 		rest.Get("/hb", hb), 		rest.Get("/section/item", thing.GetThings), 		rest.Get("/section/item/:id", thing.GetThing), 	) 	if err != nil { 		log.Fatal(err) 	} 	api.SetApp(router) 	http.ListenAndServe(port, agent.WrapHTTPHandler(api.MakeHandler()))
Perhaps the problem is on gorelic's side of things but what I would like to do is wrap thing.GetThings, thing.GetThing etc... individually in order to monitor which endpoints are failing etc... through newrelic's APM(which now I'm doubting whether or not gorelic is capable of). I see data come in through the NewRelic plugin page but nothing on APM.


Removed enforcer configure, updated index.md in "use" to show enforcer link

Looks like you have a broken link in the FAQ, otherwise LGTM.


Snowflake account number format is not always <account_number>..

Bug Description
Depending on where your snowflake instance is hosted, your account number may need to be entered in one of the following formats:

<account_number>.<region>.<cloud> eg xy12345.us-central1.gcp
<account_number>.<region> eg xy12345.ap-southeast-1
<account_number> eg xy12345

We currently suggest users use format 1:

When in fact this is not always correct. In particular for us-west-2 (US West Oregon), format 3 is required
Error Messages and Screenshots
If you use the wrong format, you will get a Network error. Could not reach Snowflake.
Workarounds
Try one of the above formats
Database:

[ ] Postgres
[ ] BigQuery
[x] Snowflake
[ ] Redshift
[ ] MySQL
[ ] SQLite
[ ] DuckDB
[ ] CSV
[ ] Other (please specify)

we could either change the placeholder text
eg to xy12345.us-central1.gcp or xy12345.ap-southeast-1 or xy12345
Or else drop in a link to the above snowflake docs page.

@archiewood Can I take up this?
Is this issue only has to do with updating the above text in the SnowflakeForm?

Yes, it's yours!
Yes updating the text to make it clearer is enough!

Ok. Good.
But once I start entering text in the field the placeholder will get hidden. Wouldn't it be better if we have it below the account name in a smaller text says (the format should be xy12345.us-central1.gcp or xy12345.ap-southeast-1 or xy12345) ?
What do you think?

Good point, though perhaps that’s enough when someone is looking at it the first time?
I probably wouldn’t show it below as that would be inconsistent with other fields.
You could include an info tag which when the user hovers over displays more information? (And perhaps a link to the snowflake docs?) There are some other examples of this in other connectors.
Client side validation is a cool idea too, but might be more effort than it’s worth. And we’d probably want to add validation to all the fields at once, so it didn’t feel inconsistent.
Up to you!

You could include an info tag which when the user hovers over displays more information? (And perhaps a link to the snowflake docs?) There are some other examples of this in other connectors.

This seems to be a good idea. Let me try it.


Bug: argument of type 'NoneType' is not iterable in mutation productChannelListingUpdate

What are you trying to achieve?
mutation productChannelListingUpdate. When executing the mutation, one of the fields breaks if value is null. I think it's either "removeChannels" or "removeVariants", not sure which tho, if not both.
Similar issue to #13512
Steps to reproduce the problem

query:

{
  "operationName": "ProductChannelListingUpdate",
  "query": "mutation ProductChannelListingUpdate($id: ID!, $input: ProductChannelListingUpdateInput!) {
  productChannelListingUpdate(id: $id, input: $input) {
    errors {
      field
      message
      code
    }
  }
}

",
  "variables": {
    "id": "UHJvZHVjdDoyMg==",
    "input": {
      "removeChannels": null,
      "updateChannels": [
        {
          "channelId": "Q2hhbm5lbDoy",
          "isAvailableForPurchase": true,
          "isPublished": true,
          "removeVariants": null,
          "visibleInListings": true
        }
      ]
    }
  }
}

What did you expect to happen?
Execute mutation without error due to a null in one of the variables.
Logs
errors: Some(
        [
            GraphQlError {
                message: "'NoneType' object is not iterable",
                locations: Some(
                    [
                        GraphQlErrorLocation {
                            line: 2,
                            column: 3,
                        },
                    ],
                ),
                path: Some(
                    [
                        Field(
                            "productChannelListingUpdate",
                        ),
                    ],
                ),
                extensions: Some(
                    IgnoredAny,
                ),
            },
        ],
    ),
    ```

### Environment

dashboard v3.14.4
core v3.14.2

Sentry logs: https://saleor.sentry.io/share/issue/a00047bb4ab04111ae9c654396b98978/
It crashes in this function where None is passed as values argument: https://github.com/saleor/saleor/blob/c17271564292662fd634a91e090d5049a44ff9c5/saleor/graphql/core/utils/init.py#L38

@maarcingebala I think the issue is in clean_channels. It should not have to call validators if no values are provided.

Yep, maybe it can be fixed at an earlier point. It would also be useful to fix the typing in these functions.


use latest test pipelinerun status in lifecycle visualization

Fixes

https://issues.redhat.com/browse/HAC-3484
Description

Integration test nodes should use the latest test pipeline run status in the lifecycle visualization.
Type of change

[x] Bugfix

Screen shots / Gifs for design review

How to test or reproduce?

Add a failing integration test - https://quay.io/repository/redhat-appstudio/example-tekton-bundle?tab=tags&tag=integration-pipeline-fail.
start a new build and wait for the build and test pipeline to complete
Then edit the integration pipeline to integration-pipeline-pass
start a new build again and wait for the build and test pipeline to complete
lifecycle visualization should show the latest succeeded pipeline status.

Unit tests
  useAppApplicationTestNodes
    ✓ should return integration test nodes (35 ms)
    ✓ should return failed status (9 ms)
    ✓ should return status from latest pipelinerun (10 ms)

Browser conformance:

[x] Chrome
[x] Firefox
[x] Safari
[ ] Edge

/lgtm

Rebased the PR.

/lgtm

/test test

/lgtm

/retest

/retest

/retest

/retest


[eventhub] - Move tracing spec to internal

Packages impacted by this PR
event-hubs
Issues associated with this PR
Fixes #21226
Describe the problem that is addressed by this PR
The tracing client test adds an internal reference; however, the test is still
not excluded during min/max due to the nesting of the tracing reference. That
will be fixed separately, but it also makes sense to make this an internal test
as it tests the internals of how we trace.
What are the possible designs available to address the problem? If there are more than one possible design, why was the one in this PR chosen?
Are there test cases added in this PR? (If not, why?)
N/A
Provide a list of related PRs (if any)
Command used to generate this PR: (Applicable only to SDK release request PRs)
Checklists

[x] Added impacted package name to the issue description.
[x] Does this PR need any fixes in the SDK Generator?** (If so, create an Issue in the Autorest/typescript repository and link it here.)
[x] Added a changelog (if necessary).

API change check for @azure/event-hubs
API changes are not detected in this pull request for @azure/event-hubs


Reasons for upcasting the logits dtype outside the kernel

Hello, thank you for this great work.
https://github.com/linkedin/Liger-Kernel/blob/acd82728207ebafad28d448640502c108901a967/src/liger_kernel/ops/fused_linear_cross_entropy.py#L69
https://github.com/linkedin/Liger-Kernel/blob/acd82728207ebafad28d448640502c108901a967/src/liger_kernel/ops/fused_linear_cross_entropy.py#L91-L96
I'm wondering if there are any reasons for upcasting/downcasting the logits dtype outside the kernel?
If I understand correctly, we already do fp32 upcast inside, so this op is redundant?
I just compare the outputs of the two versions, i.e., w/ and w/o the upcast, and found there's no precision loss if the above code r removed.

Thanks! We did the casting to stay consistent with huggingface behavior. But yes, i think we can do it inside. There is a PR doing this: https://github.com/linkedin/Liger-Kernel/pull/238.

found there's no precision loss if the above code r removed.
Curious how did you measure the loss?

Also, very impressive background.

@ByronHsu Hi, have you compared the final loss of FLCE with the naive counterpart?
I think chunking the input into several pieces might be problematic for very large V and relatively small H.
For example, if H=1024 and V=128*1024, the inv_factor would be 128. Since the accumulated dw are maintained in bf16/fp16, I’m uncertain if this could cause any issues.
It might be better to limit the maximum number of chunks. For instance, we could set inv_factor to be min(8, triton.cdiv(V/H)).

I've also found that for 128K vocab, 8 chunks can be faster, with the cost of nearly <1G additional mem.
This is my benchmarks on H100 using the scripts of https://github.com/sustcsonglin/flash-linear-attention/blob/main/benchmarks/benchmark_training_throughput.py:

V
Configuration
TPS (K)
GiB

32K
w/ chunk (V/H)
46.18
35.09

w/ chunk (4)
46.55
35.09

w/ chunk (8)
46.52
35.10

w/o chunk
46.13
39.21

128K
w/ chunk (V/H)
40.80
37.66

w/ chunk (4)
41.82
39.03

w/ chunk (8)
41.80
38.05

w/o chunk
41.12
56.05

UPDATE:
Just trained 3 370M models on 10B tokens of Fineweb-edu with 8K ctx length and 32K vocab
Below are the results. Superisingly, 8 chunks exhibits the best ppl. V/H=32K/1K=32 chunks performs worse than the others.

PPL $_\downarrow$

w/ chunk (V/H)
12.73

w/ chunk (8)
12.70

w/o chunk
12.71


Add prefix setting for posh-git default prompt.

Add Pesters tests for the prompt function.  Update docs for the new prefix and the fact that abbreviate home dir is disabled by default.

who's going to write a Markdown-to-PowerShell-help converter

It would be nice with the ANSI support if PowerShell could render basic markdown in the console.  But a converter would be nice too.  Take a look at the change.  I cleaned up the typos and tweaked the tests some more.  There were failing when I ran them from PowerShell where I already had a prompt/settings/posh-git loaded.  These changes make this scenario work although it leaves with the default posh-git prompt.


Seemingly Random Predictions

I have the following code to make a net with 4 inputs, one hidden layer, and 4 outputs. When I try to pull a prediction from the data after training, the values are always wildly different on every reload. Am I doing something wrong?
var layer_defs = [];
layer_defs.push({type:'input', out_sx:1, out_sy:1, out_depth:4});
layer_defs.push({type:'fc', num_neurons:4, activation:'relu'});
layer_defs.push({type:'regression', num_neurons:4});
var net = new convnetjs.Net();
net.makeLayers(layer_defs);

var my_data = [{"pages":[11,7,8,8],"quizzes":[1,0,0,1]},{"pages":[5,11,9,7],"quizzes":[0,1,0,1]},{"pages":[9,4,3,5],"quizzes":[1,0,0,1]}];

var trainer = new convnetjs.Trainer(net, {method: 'adadelta', l2_decay: 0.001,
                                    batch_size: 10});
for (var it = 0; it < 1000; it++) {
	for (var i = 0; i < my_data.length; i++) {
	  var x = new convnetjs.Vol(1,1,4,0.0); // a 1x1x2 volume initialized to 0's.
	  x.w[0] = my_data[i].pages[0];
	  x.w[1] = my_data[i].pages[1];
	  x.w[2] = my_data[i].pages[2];
	  x.w[3] = my_data[i].pages[3];
	  var y = new convnetjs.Vol(1,1,4,0.0);
	  y.w[0] = my_data[i].quizzes[0];
	  y.w[1] = my_data[i].quizzes[1];
	  y.w[2] = my_data[i].quizzes[2];
	  y.w[3] = my_data[i].quizzes[3];
	  trainer.train(x, y);
	}
}

var json = net.toJSON();
var str = JSON.stringify(json);
console.log("Net: " + str);
document.write("Net: " + str);

var testPages = [9,4,3,5];
var volPages = new convnetjs.Vol(1,1,4,0.0);
volPages.w[0] = testPages[0];
volPages.w[1] = testPages[1];
volPages.w[2] = testPages[2];
volPages.w[3] = testPages[3];

console.log(volPages);
var predicted_values = net.forward(volPages);
console.log("Prediction: " + predicted_values.w[0] + ", " + predicted_values.w[1] + ", " + predicted_values.w[2] + ", " + predicted_values.w[3]);
//should output something close to [1,0,0,1]

sounds like you're overfitting your dataset.
extrapolate new point may result different results, due the stochastic nature of neural networks.

I fixed the issue a couple weeks back. The issue was that the y in trainer.train(x, y); is not supposed to be a covnetjs.Vol. It should just be put in as an array of output values.


language get in the routing in a wrong way

Hi
Thanks for the hard work and this CMS. I have WAMP on my system and I run my web applications on that so when I have a symfony project named "MyProject" the address will be : <http://localhost/MyProject/web/app_dev.php> in the browser. The problem is when I try to see my first sulu project named "MySulu" and I enter <http://localhost/MySulu/web/app_dev.php> to the browser, it automatically add "/en" to the rout but in a wrong place like this: <http://localhost/en/MySulu/web/app_dev.ph> which I guess must be like this: <http://localhost/MySulu/web/app_dev.ph/en>
Thanks again

hmm i have no experiences with wamp (maybe @alexander-schranz can add his thoughts) are you able to add a "vhost" to your web-directory? can you post you webspace configuration and which version did you use.
ps: please use our issue template because there is at least clear that you should add your version (:

Hello @Kharestani,
Sulu have no environment specific php files app_dev.php or app.php. Their exists the website.php (for the website) and admin.php (for the backend) the Environment (dev) you need to set in your VHOST (SYMFONY_ENV) or directly in the PHP files.
I would recommend you to create a VHOST. Example for the VHOST you can find them here: http://docs.sulu.io/en/latest/book/getting-started/vhost.html#apache-2-2. The vhost need to web folder as root target.
A tutorial for wamp I found here https://john-dugan.com/wamp-vhost-setup/. When you created your vhost and the local domain point to your pc. You need to add the domain to your webspace (`app/Resources/webspaces/*.xml) to the portal url in the correct environment. Example can be found here: http://docs.sulu.io/en/latest/book/creating-a-basic-website/setup-a-webspace.html.

Hi
Thanks to @wachterjohannes and really sorry for not using the template.
and real thanks to @alexander-schranz  for the thorough explanation and step by step solution for this.
You all Rock!


Move resource_usage to roxy and use roxy's reboot

This PR is dependent on roxy's. This is referring to the branch of the roxy's PR but will be changed to refer to the roxy main when it is merged into the main.

@msk ,
When do users need to call request::handle_resource_usage?

Pending until aicers/roxy#86 is resolved and all the other projects (piglet, reconverge, and hog) have been converted to use roxy.

Pending until aicers/roxy#86 is resolved and all the other projects (piglet, reconverge, and hog) have been converted to use roxy.

Since aicers/roxy#86 has been resolved and the other projects need this version of oinq to implement their using roxy, @msk, would you proceed this?


Create view to populate cards

based on @kdumais111 frontend design, create view that populates accordingly.

From Katherine:
citydata = {“Bus”: {
        “Fall”: {
            “Weekdays”: {
                “TotalRiders”: 5000,
                “TotalRoutes”: 30,
                “AverageCommuteTime”: “45 minutes”
            },
            “Weekends”: {
                “TotalRiders”: 6000,
                “TotalRoutes”: 35,
                “AverageCommuteTime”: “50 minutes”
            }
        },
        “Winter”: {
                “Weekdays”: {
                “TotalRiders”: 5500,
                “TotalRoutes”: 32,
                “AverageCommuteTime”: “48 minutes”
            },
            “Weekends”: {
                “TotalRiders”: 5800,
                “TotalRoutes”: 33,
                “AverageCommuteTime”: “47 minutes”
            },
        },
        “Spring”: {
             “Weekdays”: {
                “TotalRiders”: 6200,
                “TotalRoutes”: 37,
                “AverageCommuteTime”: “52 minutes”
            },
                “Weekends”: {
                “TotalRiders”: 1,
                “TotalRoutes”: 2,
                “AverageCommuteTime”: “3 minutes”
            },
        },
        “Summer”: {
                         “Weekdays”: {
                “TotalRiders”: 4,
                “TotalRoutes”: 5,
                “AverageCommuteTime”: “6 minutes”
            },
                “Weekends”: {
                “TotalRiders”: 7,
                “TotalRoutes”: 8,
                “AverageCommuteTime”: “9 minutes”
            },
        }
    },
    “Train”: {
        “Fall”: {
            “Weekdays”: {
                “TotalRiders”: 50020,
                “TotalRoutes”: 320,
                “AverageCommuteTime”: “415 minutes”
            },
            “Weekends”: {
                “TotalRiders”: 60100,
                “TotalRoutes”: 315,
                “AverageCommuteTime”: “510 minutes”
            }
        },
        “Winter”: {
                “Weekdays”: {
                “TotalRiders”: 51500,
                “TotalRoutes”: 312,
                “AverageCommuteTime”: “418 minutes”
            },
            “Weekends”: {
                “TotalRiders”: 5100,
                “TotalRoutes”: 33,
                “AverageCommuteTime”: “417 minutes”
            },
        },
        “Spring”: {
             “Weekdays”: {
                “TotalRiders”: 62010,
                “TotalRoutes”: 317,
                “AverageCommuteTime”: “512 minutes”
            },
                “Weekends”: {
                “TotalRiders”: 11,
                “TotalRoutes”: 21,
                “AverageCommuteTime”: “31 minutes”
            },
        },
        “Summer”: {
                         “Weekdays”: {
                “TotalRiders”: 41,
                “TotalRoutes”: 51,
                “AverageCommuteTime”: “6 minutes”
            },
                “Weekends”: {
                “TotalRiders”: 71,
                “TotalRoutes”: 81,
                “AverageCommuteTime”: “91 minutes”
            },
        }}}


link logo to home page

I just swapped the order of the a and h1. ready for review -- needs a look in IE, but seems fine in most recent FF, Chrome, Safari


add error handling and boundary checking for window frames

Which issue does this PR close?
Closes #529
Closes #528
Rationale for this change

What changes are included in this PR?

add boundary case checking for window frames
remove stale window frame implementations in physical planner (possibly due to rebase error)

Are there any user-facing changes?

Codecov Report

Merging #530 (2f60903) into master (d5bca0e) will increase coverage by 0.04%.
The diff coverage is 83.67%.

@@            Coverage Diff             @@
##           master     #530      +/-   ##
==========================================
+ Coverage   76.03%   76.07%   +0.04%
==========================================
  Files         157      156       -1
  Lines       26990    26923      -67
==========================================
- Hits        20521    20483      -38
+ Misses       6469     6440      -29

Impacted Files
Coverage Δ

...sta/rust/core/src/serde/logical_plan/from_proto.rs
35.04% <0.00%> (-0.17%)
:arrow_down:

datafusion/src/physical_plan/mod.rs
78.70% <ø> (ø)

datafusion/src/logical_plan/window_frames.rs
87.87% <85.00%> (+1.27%)
:arrow_up:

datafusion/src/sql/planner.rs
84.85% <100.00%> (+0.23%)
:arrow_up:

Continue to review full report at Codecov.

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

Looks great @Jimexist -- thanks

yeah window functions are hard


Room - Workspace member is not automatically added to created room

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

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

Navigate to New Expensify app
In workspace settings - invite User B who has never interacted with the account you're logged in
Create Room on the Workspace from Step 2
Navigate to User B account

Expected Result:
Workspace member should be automatically added into the room
Actual Result:
Workspace member is not automatically added into the room
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/78819774/e6edaed0-818a-4a94-820e-99e9221612fd

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

View all open jobs on GitHub

@lanitochka17 Hey! I wasn't able to find the test case for this in TestRail to confirm the correct behaviour, could you link to that please? I'm not confident that the expectation here (that the workspace member will be automatically added to a created room) is correct, and want to check that. Thanks!

@lanitochka17 Bump on this request please!

@conorpendergrast Hello
The issue was found when following the steps: https://expensify.testrail.io/index.php?/tests/view/3794302
There is no way to add participants through the room, so all participants who are in the workspace are automatically added to the room. But I could be wrong

Thank you! I don't think workspace members will be added to the room by-default, but I can see where you would assume that! It's implied but not explicit, as the sub-text is "People in your workspace can find this room" rather than that they will added to the room.
The TestRail implies this (but again, it's not explicit), in saying:
8. Log in as the other workspace member that was added in step 1
9. Search the room name
10. Verify it's displayed in the search results
11. Tap on the room
12. Verify the room opens and you can access it as another member of the workspace
I'm 90% sure that workspace members should be able to find the new restricted room, but will not be added to it by default. So, I'll close this as not a bug for now - thanks for raising it!

@conorpendergrast  Hello
Thanks for the detailed explanation


USING AIRCRACK-NG IN KALI LINUX

Introduction
Wireless connectivity has become a norm nowadays. It's efficient in running some of the day-to-day activities. It's therefore important to ensure you have a secure WiFi connection. As a Pentester, Aircrack-ng is your tool.
Aircrack-ng is a network software suite consisting of a detector, packet sniffer, WEP and WPA/WPA2-PSK cracker, and analysis tool for 802.11 wireless LANs. It works with any wireless network interface controller whose driver supports raw monitoring mode you can use it to monitor WiFi security, capture data packets, and export them to text files for additional analysis. You can also use it to attack and crack WPA and WEP protocols
Reference
N/A

Good afternoon and thank you for submitting your article for publishing.
Your article has been entered into our queue and should be reviewed (and published pending any changes) as soon as a peer reviewer is finished with the ones in the queue before it. 🚀
Thank you.

@Wkd-Cyber
We're really looking for unique/original content, and based on the content provided, it seems that information that you intend to cover is already readily available through the documentation or via many other blog sites.
Could you please expand upon how your content will differ from what is already available through other websites and documentation? We lean towards content that offers an original viewpoint/approach around programming-centric topics.

Hi @hectorkambow
Different from the official documentation, this article is clear-to-follow-through with clear illustrations on how to install some of the crucial programs and major obstacles to avoid during the penetration testing process.
It uses the dictionary attack which generates greater results and has little limitations compares to other methods used eg PTW approach(Pyshkin, Tews, Weinmann) which can only crack 40 and 104 bit WEP keys.
Terms used are easy to understand and relevant examples simple to understand are used so that the reader can be able to follow through without any glitches even if he/she is a beginner in computer networking and programming. Thanks

This is a sensitive topic and Aircrack-Ng can be used by black hat hackers. Please feel free to suggest an alternate topic to explore. 🚀 @Wkd-Cyber


Support list of roleArns (instead of single roleARN)

When you have 5+ AWS accounts with ECS for example and you wish to pull cloudwatch metrics from all ECS clusters into prometheus with yace, it would be nice to have possibility to assume separate role for each one of those accounts.
Right now master branch of yace only supports one roleArn per job in discovery part or namespace in static section.
This pull request aims to do it without breaking backward compatibility.

Awesome thanks @jylitalo loving those big use case contributions :) Could you add some more docs about the usage of role arns? - Maybe a small section. I think it is pretty difficult for new users to understand when to choose what.
I think we should make it a breaking change (but fail during bootup if somebody still uses the old syntax). Or do you see any reason to keep the old config?

README.md has now small sections about when multiple roleArns can be useful.
Code has been changed in such manner that string to []string is breaking change.

Awesome thanks!


Polkit user agent is broken - makes GNOME shell recursively fail

This is not a deal-breaker issue, but for some reason pkexec is entirely broken, together with anything that uses polkit for authentication:

I believe this might be a SELinux issue? No idea.

Figured out what happened! /usr/lib/polkit-1 has 0755 permissions on containers and other stuff but specifically on my system it has a 0750 permission for some reason.

@hanthor might be interesting for you as well

Did not work :( still happening on latest achillobator build

It works on main, but achillobator breaks it. I wonder which package is making this happen

I fired up a vanilla centos iso install pf workstation and the perms on polkit looked the same as achillobator. So nothing obviously wrong.

Managed to discover what the hell was going on. systemd-container on centos has not been rebuilt for systemd.257 and downgrades the systemd package alongside it to 256-2, apparently, for some reason, downgrading and adding that package breaks the permissions during deployment and makes /usr/lib/polkit-1 have the 0750, polkitd permissions instead of 0755. I've sent a PR to rechunk and this will get fixed next build most likely.


WIP: Custom env names

Working to use the var.environments from 0-bootstrap (that is included in tfvars_globals) to allow the use of custom environment namings (and additional envs as required). This would allow an org to use something like nonprod instead of dev for example. I've switched the syntax of "is_default" for the environment objects to primary/secondary which would map to prod/dev (in the default vars). I will then use these envs in the other stages where things like prod or dev are currently hard coded.

Checklist

I applicable, I acknowledge that I have:

[x] Read the contributing guide
[x] Ran terraform fmt on all modified files
[x] Regenerated the relevant README.md files using tools/tfdoc.py
[ ] Made sure all relevant tests pass

Closing this, let's follow up on the discussion we had this week and open an ADR for this, with a plan on how to make envs dynamic in FAST.


ImportError: cannot import name Comicvine

I changed "PyQt4.Qt import QWidget, QGridLayout, QLabel, QLineEdit" to "PyQt5.Qt import QWidget, QGridLayout, QLabel, QLineEdit" in config.py and re-bundled the plugin zip file.
But now I receive:
calibre, version 2.68.0
ERROR: Unhandled exception: ImportError:cannot import name Comicvine
calibre 2.68 [64bit]  embedded-python: True is64bit: True
Windows-8-6.2.9200 Windows ('64bit', 'WindowsPE')
('Windows', '8', '6.2.9200')
Python 2.7.9
Windows: ('8', '6.2.9200', '', 'Multiprocessor Free')
Successfully initialized third party plugins: DeDRM (6, 5, 1)
Traceback (most recent call last):
File "site-packages\calibre\gui2\preferences\plugins.py", line 315, in add_plugin
File "site-packages\calibre\customize\ui.py", line 417, in add_plugin
File "site-packages\calibre\customize\ui.py", line 55, in load_plugin
File "site-packages\calibre\customize\zipplugin.py", line 195, in load
File "site-packages\calibre\customize\zipplugin.py", line 179, in load_module
File "calibre_plugins.comicvine.init", line 4, in
ImportError: cannot import name Comicvine

I've solved it just restarting calibre.
Look at post #44 http://www.mobileread.mobi/forums/showthread.php?t=213049&page=5
It seems it gets stuck with a previous cached file.


Minikube installation no longer requires a hypervisor

This is a...

[ ] Feature Request
[x] Bug Report

Problem:
You can use --vm-driver=none to use the bare host, but the docs say you need to install a hypervisor.
Proposed Solution:
A note akin to the one in https://github.com/kubernetes/minikube#requirements which suggests that for Linux, you can use Docker without a hypervisor. /cc @aaron-prindle who made that edit in https://github.com/kubernetes/minikube/commit/c169131970313ea4d579882cd6f24a0c63c83aff
Page to Update:
https://kubernetes.io/docs/tasks/tools/install-minikube/

/cc @Bradamant3 for minikube docs

As mentioned, on linux you can use minikube w/o a hypervisor by running the kubernetes components natively via --vm-driver=none.  It makes sense to update the install minikube page w/ that driver option.


String.is_subsequence_of is either broken or has a very misleading name

Godot version:
3.2
OS/device including version:
All versions
Issue description:
is_subsequence_of returns true is all characters from string A appear in string B, in the order in string A, but it doesn't care if characters not in A are interwoven. So:
"save5".is_subsequence_of("save35")
returns true.
This seemed like such an odd behaviour it feels like a bug? I suspect there's a chance this is actually intended behaviour, used as sort of a fuzzy search within the engine itself. I feel like if that's the case this should probably be renamed, or at least documented.
Steps to reproduce:
Above line of code should do the trick.

Instead of renaming or documenting - I've combined both of those suggestions, and overloaded that method with additional parameter, which allow you to specify, if you want to go without any gaps - check attached PR.

The name is not misleading, it's the correct behaviour for a subsequence. What you expected is a substring.
The docs should rather clarify the difference between substring and subsequence than "patching" it with an additional parameter.
IMO, creating a String.is_substring_of would be more clear than having this magic parameter

IMO, creating a String.is_substring_of would be more clear than having this magic parameter

I've modified my PR according to your request, I agree it's nicer to separate both of them.
BTW: didn't have ANY idea that 'substring', and 'subsequence' should be different in implementation (now I wonder, how it's being handled in various programming languages :smile: )

A separate is_substring_of method and a clarification on subsequence is a pretty good improvement. I will point out that this will still almost certainly end up with people misusing it, who simply didn't read the fine print. Maybe mathematicians use the word subsequence to mean a specific thing, but that doesn't define how language is used and understood by people outside of the field, which is the vast majority of Godot users. It's a question of UX not academics.
However, I certainly don't care about this small quirk enough to seriously champion further change, but I feel compelled to point out "That is still bad UX, but it's at least better than what it was."

This is an interesting case study in feature discoverability and (rather appropriately) fuzzy matching...
The ~four~ six(?) existing is_substring_of() methods
Funnily enough, currently for the String class in GDScript (without a is_substring_of() ) there are no less than  four ways to determine if one string is a substring of another (not including regular expressions):
    print("bar" in "foobarbaz") # True
    print("foobarbaz".find("bar") > -1) # True
    print("foobarbaz".match("*bar*")) # True
    print("bar".is_subsequence_of("foobarbaz")) # True

[Update: Oh, I missed the two count() variants. :D ]
And, three of them work as one might expect for non-continuous matches:
    print("orb" in "foobarbaz") # False
    print("foobarbaz".find("orb") > -1) # False
    print("foobarbaz".match("*orb*")) # False
    print("orb".is_subsequence_of("foobarbaz")) # True

And, for completeness:
    print("rbo" in "foobarbaz") # False
    print("foobarbaz".find("rbo") > -1) # False
    print("foobarbaz".match("*rbo*")) # False
    print("rbo".is_subsequence_of("foobarbaz")) # False

But which method is "most Godotic"? :)
Given GDScript's Python influence I suspect that the in form might be considered "most Godotic" but it's not even mentioned in the current String class documentation nor the GDScript basics . (Aside: in is also a difficult search term to use. :D )
Given that the only other method with sub in the name is substr() it's probably not surprising is_subsequence_of() gets used by mistake.
Suggestions

Documentation for in could be added to String class docs & GDScript basics tutorial.

It could be made more clear in is_subsequence_of() documentation that "subsequence" is not the same as  "substring".

FWIW I found the phrase "Gaps or interwoven characters" somewhat unclear (mostly the use of "interwoven" which isn't a particularly common term) and wonder if an alternate wording might be clearer.
The Wikipedia "Subsequence" page linked above expresses it as:

[A subsequence] can be derived from another sequence by deleting some or no elements without changing the order of the remaining elements

Which is a bit formal and not ideal...but made me wonder about something like (or more about "exact match" vs "inexact match"):

String A is a subsequence of String B if all the letters in String A are in String B and in the same order but not necessarily all next to each other.

However, I think it's less important to describe what a subsequence is than what it isn't (in relation to a substring) so something more like this might be appropriate (I think the mention of "fuzzy" searches in https://github.com/godotengine/godot/pull/37066 as a use case was a good idea):

Returns [code]true[/code] if this string is a subsequence of the given string.
Note: You probably want to find a substring so use [insert substring method/approach here].
A subsequence is not the same as a substring as it allows for non-exact matches which can be useful for "fuzzy" searches.

I'm undecided whether adding an additional is_substring_of() method is warranted but given code auto-complete, it enables discovery of the correct method more than documentation can.

Related links

The original commit for is_subsequence_of() provides some insight into the motivation behind adding the functionality: https://github.com/godotengine/godot/pull/5177

I encountered this issue while researching why help search seemed to be less helpful lately which led me to this commit which changed editor help search to use is_subsequence_of() for fuzzy matching:  https://github.com/godotengine/godot/pull/32043


childrenInteractive strange behavior or bug ?!

Expected Behavior
if REDSQUARE.interactive = true and REDSQUARE.childrenInteractive = false.
We should able to hover REDSQUARE, but not BLUESQUARE because they are childrens..
Current Behavior
if REDSQUARE.interactive = true and REDSQUARE.childrenInteractive = false.
BLUESQUARE interaction not emit, but also the parent REDSQUARE!?
The REDSQUARE should emit.
Steps to Reproduce
unComment line 29

PUBLIC TEST
https://www.pixiplayground.com/#/edit/U8XAqMp38kmY32oUpYOWy
CONTEXT USAGE
If we have parrent button container with sub Button container
Easily allow or disable sub button container.
But if i disable childrendInteractive on parent button, it also disable parent interactive.

interactiveChildren=false turn off interactive for children completely. that means pixi doesnt do that kindof computations: "ok, mouse over blue square but its switched off, so i shouldnt do anythying". Pixi will ignore the blue square, and see only red one, and mouse is above the red one!

thanks for your explain,i think it make sense for me i will test :)

We can close this, so for people want do similar stuff , i choose suggestion by @themoonrat .
Add this.hitArea  to all my initialise stuff also give more optimisation.
If you use pixi-display, just beware to also apply on children, because hitArea will not allow children interactive with pixi-display.
here solution i choose.
https://www.pixiplayground.com/#/edit/~RjosY9BJvpQ9yjFhrZjt
So i dont think is a pixi bug, but a bad interpretation of childrenInteractive  on container from my side.
Thanks all for the help.


make the Gentle introduction even gentler

There are several things that feel a little arbitrary in the Gentle Introduction notebook:

the use of single element lists for 'time varying' parameters in an infinite horizon model
the need to run updateIncomeProcess() after changing an income parameter

These seem like issues that could be smoothed over with a little more work on the design.

Drawing attention to the fact that some model inputs are "raw" and some are "constructed" is an important point, and I don't think we want to avoid it in the introductory notebook(s).


[QUESTION] LiteDB.Engine deprecated?

LiteDB version: 5.0.10 (nuget)
OS: Win10 64bit
.NET framework: 5
Hi,
I want to use the features of LiteDB.Engine in v5 but I can't access any of it's library. It is made private in the source code?

Do you mean .net5.0? Since there is no .netframework5. Do you have a test repo somewhere we can take a look at? To report a bug, I just created a .net5.0 project and added the LiteDB nuget package in version 5.0.10 - and it works

Hi, Sorry yes .net5.
Here are a couple of screenshots:

What method are you trying to call? .EnXXX?

Thanks @deccer for bearing with me.
We have some csv files that I want to put into a dataabse and thought i'd try out LiteDB for a proof of concept.
There is a stackoverflow question that asks how to do this with the following answer:
var json = JsonSerializer.Serialize(new BsonArray(db.Engine.Find("mycol")));

db.Engine.Insert("mycol", JsonSerializer.Deserialize(json).AsArray.ToArray());

So I was trying to follow this example - db.Engine.Insert
Unfortunately the documentation is not very good. I can see there are also System Collections and $file that mention you can do the follwoing: "SELECT $ FROM $FILE('customers.csv') reads the entire content from the CSV file."

I am not exactly sure what exactly it is you are trying to achieve, besides tossing csv data into litedb... but why dont you parse the csv into an object (an object which reflects whatever data you have in the csv per row) and then write those objects into a collection of litedb using var books = db.Collection<Book>(); books.Insert(book); ... if a row in the csv represents a book :) (was just an example)

Hi, I could do that, but why should I when there are (supposed) built-in methods to do this for me?

I have managed to do it without using Engine and used the CSVHelper package.
Here is the code for anybody else to import a csv file into LiteDB:
using System;
using System.IO;
using System.Collections.Generic;
using System.Globalization;
using LiteDB;
using TestDataGen.Poco;
using CsvHelper;
using CsvHelper.Configuration;
using System.Linq;

namespace TestDataGen
{
    class Program
    {
        // Get the working directory and project directory to store the DB
        private static readonly string workingDirectory = Environment.CurrentDirectory;
        private static readonly string projectDirectory = Directory.GetParent(workingDirectory).Parent.Parent.FullName;
        private static IEnumerable<StatementsTable> records; // A POCO class has been created sepreately in TestDatagen.Poco

        static void Main(string[] args)
        {

            string csvLocation = projectDirectory + @"\CSV\statements.csv";

           // Configure CSVHelper in case of missing heading or fields, if required
            var config = new CsvConfiguration(CultureInfo.InvariantCulture)
            {
                MissingFieldFound = null,
                HeaderValidated = null,
            };

            // Parse CSV file
            using (var reader = new StreamReader(csvLocation))
            using (var csv = new CsvReader(reader, config))
            {
                records = csv.GetRecords<StatementsTable>().ToList();
            }

            // Open the LiteDB (or create it if it doesn't exist)
            using (var db = new LiteDatabase(projectDirectory + @"\..\Data\TableData.db"))
            {
                // Get or Create the Statement Table collection instance
                var collStatement = db.GetCollection<StatementsTable>("statement");

                // Insert the CSV records into the collection
                collStatement.Insert(records);

             }
        }
    }
}


Updated system dependency

Updated system dependency

Coverage remained the same at 100.0% when pulling 5b05e0422040dd1a2160cb38fc6c2ea5475cf710 on squinones:php7-compat into 79ab145d17cb1d261026a83446150d02483d323c on aol:master.

Coverage remained the same at 100.0% when pulling e2193dc3fa0d51b923a12e3c7185a767ed1c9a37 on squinones:php7-compat into 79ab145d17cb1d261026a83446150d02483d323c on aol:master.


Adds the possibility to include metadata when loading the client

When loading the renderer client, it would be great to have the option to include a metadata to send to the AVTransport. The metadata could include several information, like title, cover image, description, and even subtitle.
I simply included a new option value called "metadata", that could be passed in the options object when calling the load function.

Thank you for accepting my merge! Following on this, could the version be bumped to 0.0.3?

And done

Awesome!


Running in docker without systemd

Hello,
I'm trying to run the install script in docker without systemd, but of course it fails as systemd is required. Is there any workarounds for this?
Thanks
### Tasks

The systemd dependency only exists so the log publisher runs at startup. It can likely just be removed.
What's your use case for running the publisher in docker in the first place? That'll help me come up with an idea for a solution for you.


Only last rule added to text field is checked

Describe the bug
A clear and concise description of what the bug is.
Given a VGSEditText instance, only the last in a set of multiple regex validations added using .addRule is used to validate the input's content.
To Reproduce
Steps to reproduce the behavior:

Create a VGSEditText instance: val editText = VGSTextEdit(...)
Create a rule that uses a regex to check that the input is 4 non-repeating digits:

 val vgsValidatorRepeating =
  VGSInfoRule.ValidationBuilder()
    .setRegex("^(?!0000|1111|2222|3333|4444|5555|6666|7777|8888|9999)\\d{4}\$")
    .build()

Create a rule that uses a regex to check that the input is 4 non-consecutive digits:

 val vgsValidatorConsec =
  VGSInfoRule.ValidationBuilder()
    .setRegex("^(?!0123|1234|2345|3456|4567|5678|6789|7890|0987|9876|8765|7654|6543|5432|4321)\\d{4}\$")
     .build()

Add the rules to your VGSTextEdit instance

editText.addRule(vgsValidatorRepeating)
editText.addRule(vgsValidatorConsec)

Input Repeating set of numbers eg: "1111", check input state, and see InputState.isValid = true
Input Consecutive set of numbers eg "1234", check input state and see InputState.isValid = false
Swap order of rules in step 4, and redo steps 6 and 7, but notice the validity is reversed.

Expected behavior
Both regex rules should be applied to the input and therefore, in this case, either a consecutive OR a repeating input should be invalid.
Environment (please complete the following information):

SDK Version [e.g. 1.7.0]
Android Version: [e.g. 12.0 \ Snow Cone]
Device: [e.g. Pixel 4 (Android Studio Emulator)]

@shaneboyar Thank you for your report. We currently working on this feature, and we will notify you soon.

@shaneboyar We have released a new version, 1.7.1, containing fixes related to your request. In the latest release we marked addRule as a deprecated function, so starting from v1.7.1 if you want to add a rule you need to call appendRule function, and if you want to replace rules you should use setRule/setRules.  Check release notes for more updates.

Updating to the new version now, thanks!

This appears to be working. Thanks!


rework Aro type and value system to use this InternPool data structure

I was thinking about sending a patch to Aro to test pilot this idea:
https://github.com/ziglang/zig/blob/21135387fb7c2dbaf70a72f2c97341e9c1307045/src/InternArena.zig
I have a hunch that it would provide the following improvements:

more convenient for Aro development
more convenient for Aro API user (zig)
improved performance, especially for a C compiler
reduced memory usage

Would such a patch be welcome, or would you recommend against it?

The type system especially is in a serious need of being redesigned but while using InternPool would give performance and memory usage improvements, it wouldn't directly solve the biggest pain point in the current system which is the complexity brought by Type.attributed and Type.typeof.

In case we do end up using this I started adding features on a branch https://github.com/ehaas/arocc/blob/interned-types/src/NewType.zig
I added variable-length encoding for u64 and an encoding for slices (e.g. function parameters). Using this interned type would also make it easy to do something like clang does where the const/volatile/restrict qualifiers are stored in the top 3 bits (also one bit is reserved for "this has extended qualifiers, look for the data elsewhere", but I haven't checked to see if those are ObjC / C++ specific). That means we can only have about 2**28 unique unqualified types but that should be enough for anyone.
Would still need to figure out Attribute storage, storage for strings (if we include them in the type e.g. record field names), and of course port everything to the new system.

Does C let you put const/volatile/restrict on non pointer types? If not, it would be possible to fold these flags into the enum tag, taking up 8 enum tags for pointer rather than 1.

I think it might be needed for typeof types e.g.
typeof(const int) *foo = 0;


Linux compatibility fixes by @cid0rz

terminal will pick bash/cmd based on os
panel toggle is ctrl + grave (`)

You should probably make it so that it will work on all Unix-like operating systems instead of only Linux. Also note that on some rare occasions, even bash might not be available on a Linux system. You should use the default shell the user uses instead. Perhaps something like this?
from os import environ
shell_executable = environ.get('COMSPEC') or environ.get('SHELL')

@tigran2008 this is a really good and much better approach here! the COMSPEC variable points to cmd.exe by default on windows NT systems, , and the SHELL points to /bin/bash in most cases for Linux systems. Not sure about the case of other UNIX-like operating systems.
Further plans are to include a terminal manager, to be able to open multiple terminals. For this, there should be a way to fetch the available shells too.


Fix wrong positional biases

In Transformer-XL the length of key sequence j is larger than that of query i due to memory. i.e., j = len(mem) + i
the keys in mem are past keys so the positional biases have to be shifted by len(mem) = j - i
This is correctly implemented in the causal lookahead mask.

Hi Taemin! You are absolutely right, I'm sorry about this bug :pray:


JwtRule supports allow_missing_or_failed

There are complex calling relationships between a large number of services. In the process of application authentication configuration, in order to prevent service damage caused by operation errors, a method is needed to temporarily tolerate authentication errors. The envoy allow_missing_or_failed api looks useful, I'm considering whether we should support this api, any suggestions ?
Affected product area (please put an X in all that apply)
[ ] Ambient
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[x] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Affected features (please put an X in all that apply)
[x] Multi Cluster
[] Virtual Machine
[ ] Multi Control Plane
Additional context

currently, valid and empty tokens are accepted, but invalid tokens are rejected

@wulianglongrd Is this implemented? I think it makes sense to have the API proposed with additional enum value that also says DONOT_ALLOW_IF_MISSING or some thing so that Jwt filter strictly validates the presence of JWT. Curious, why you closed this?

@wulianglongrd Is this implemented? I think it makes sense to have the API proposed with additional enum value that also says DONOT_ALLOW_IF_MISSING or some thing so that Jwt filter strictly validates the presence of JWT. Curious, why you closed this?

Thanks for the attention, this issue has been created for over a month, but it seems that the community is not interested in it

Sorry. I missed this. We hare interested in this feature as well. Our use case is we want to enforce jwt validation (not skip if it is missing or failed etc). Can you please reopen the API PR and add this support also?

I have re-opened, please take a look, thanks.

We have the same problem.

Can you describe your usage scenario and what problem you want to solve? Thanks.

Can you describe your usage scenario and what problem you want to solve? Thanks.

@wulianglongrd We originally have a RA to validate jwts. Currently, we want to allow some requests with jwts not from that issuer to bypass the RA and instead have them validated in services or by authz. However, from the current configured allow_missing rules, if a jwt is provided, it will be rejected by the RA before our validation logics.

@wulianglongrd Thanks for the info. The token that causes the failure cannot be validated by adding another JWT rules, and that token is required for our services. I also think tolerating the failure is reasonable.

We likely need to support
https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/jwt_authn_filter#requirementrule

@louiscryan Yes, we have submitted a PR https://github.com/istio/api/pull/2733, but it has not been merged yet.


Fix dotenv now.json option behaviour

https://github.com/zeit/now-cli/pull/301
Fixes the behaviour that was asked for in #300

🙏


Performance hit with many cores

Performance seems to decrease when using many cores. I am trying to run shake on a 64 cores machine, and each build rule seems to take much longer (3 times or more) than they to when I turn off parallelism by removing the -threaded option.
To investigate, I've tried building 4 targets using 64 cores. Each target can be run in parallel. I expected that I would see only 4 cores active only with htop. Instead, many (30-40) cores were being used. I'm taking it as a clue that the overhead comes from Shake spawning many threads (i.e. not just 1 thread per rule as I naively expected), and that the performance hit comes from them being divided among many cores. (I'm not familiar with how threads distribution on multiple cores plays with performance.)
Does my guess make any sense? If so, is there a way to control the distribution of threads on cores? I'm not quite sure how to approach this, but I'm thinking of something like: Do all of shake's internal book-keeping and machinery on a single core (or thread) to avoid the performance hit from dispatching many threads on many cores, but still dispatch individual build rules on other cores.
As recommended, I've used the options -threaded -rtsopts "-with-rtsopts=-I0 -qg -qb"

Oh dear - sadly I don't have 64 cores to test! What is your -j setting? -j64? Or -j4?

Instead, many (30-40) cores were being used.

Do you mean that 30-40 cores were being used simultaneously? Or over the course of an execution there are on average 4, but that they migrate between 40 cores.
Shake uses the GHC Haskell compiler. The way it works is the GHC runtime spawns N threads (equivalent to whatever you pass as -j), then treats the Shake threads as green threads a. Shake doesn't spawn all that many threads - but it isn't super careful about avoiding killing/respawning new threads if there is temporarily no work to do. Shake could spawn its threads with forkOn, which ties them to one OS thread, but I would hope GHC's scheduler is smart enough not to require that.
Are most of your Shake rules running external commands? If so, running without -threaded won't necessarily disable parallelism. Trying no -threaded and -j40 or similar might still get reasonable parallelism, while pinning GHC/Shake to only one thread.

My setting was -j64, and explicitly running shake passing 4 targets as command line arguments. The 30-40 cores were used simultaneously. Also probably important, each core wasn't being used at 100% but much less, around 50%.
These shake rules don't run external processes. They perform pure computations and write their results to files. Could it be that ghc takes advantage of the multiple cores to split computation between them in a way that is suboptimal, even though I don't use any parallelism/concurrency like Control.Parallel or Control.Concurrent?
I will run it with -j40 and the profiling options to watch for the number of threads created. Do you think it can help?

Do these 4 targets have dependencies? Do they have dependencies that fan out? If you pass -j64 and use a parallel need or similar Shake will take advantage of additional parallelism. Generally GHC won't use speculatively parallelism unless you explicitly ask for it.
If you run Shake with --timing what does the Pool finished line say? That should say how many threads the pool went through, and what was the peak number of threads Shake was using at one time.

The targets don't have any dependencies.
 It seems that only 7 threads were used, if I read it right? And the cpu usage was even less than I thought, less than 20%, very variable. Could it be that the threads keep bouncing from one core to another, resulting in the many cores being used only for a short time or below their maximum capacity? Could that reduce performance?
shakeArgsWith                     0.001s    0%
Function shake                    1.229s    0%
Database read                     0.035s    0%
With database                     0.002s    0%
Running rules                   254.683s   99%  =========================
Pool finished (7 threads, 5 max)  0.002s    0%
Total                           255.950s  100%
Build completed in 4:16m

  89,195,215,672 bytes allocated in the heap
          17,512 bytes copied during GC
         889,320 bytes maximum residency (1 sample(s))
         605,720 bytes maximum slop
           67612 MB total memory in use (0 MB lost due to fragmentation)

                                     Tot time (elapsed)  Avg pause  Max pause
  Gen  0         1 colls,     0 par    1.147s   1.606s     1.6061s    1.6061s
  Gen  1         1 colls,     0 par    0.221s   0.321s     0.3214s    0.3214s

  TASKS: 136 (1 bound, 135 peak workers (135 total), using -N64)

  SPARKS: 0 (0 converted, 0 overflowed, 0 dud, 0 GC'd, 0 fizzled)

  INIT    time    1.588s  (  0.117s elapsed)
  MUT     time  758.857s  (258.244s elapsed)
  GC      time    1.367s  (  1.927s elapsed)
  EXIT    time    0.027s  (  0.008s elapsed)
  Total   time  761.839s  (260.296s elapsed)

  Alloc rate    117,538,859 bytes per MUT second

  Productivity  99.6% of total user, 99.2% of total elapsed

gc_alloc_block_sync: 0
whitehole_spin: 0
gen[0].sync: 0
gen[1].sync: 0

real    4m25.686s
user    12m41.874s
sys     3m9.286s

I've just seen some improvement with the RTS option -qa, which tries to pin a thread to a core (https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/using-concurrent.html#rts-options-for-smp-parallelism). I'm guessing that the performance drop comes from threads bouncing between cores. I will test more and report here later.

So, indeed, running shake with +RTS -qa -RTS, I see 4 cores running at 100%. The 4 tasks with -j64 took more than 4min to be built without -qa. With it, it takes about 2 min.
Now, when I increase the number of rules to build, more than the 64 cores can handle, (say hundreds), I see those 64 cores being used but only at about 40%. I'm not sure where that may come from, probably not from threads load-balancing anymore. I am not sure that I'll investigate much further, but any idea is welcome.

It's worse than I thought. Running 4 of my jobs sequentially with -j1 runs faster than running them in parallel with -j4. (1min 42s vs 3min 48s). I'm completely confused, no idea where to go from there.
But it doesn't seem to be a problem with shake. I've tried with simple rules that just sum a very big list with foldl' (+) 0 [1..1e7] and write the result to files. Those rules behave well in parallel: it actually more efficient using 4 cores than 1. So the problem has to lie somewhere in the nature of the computations that I am doing, related to memory management or something like that. I think we can close this issue.

I'd recommend running with +RTS -s both ways around. That might shed light if one is doing more GC than the other.

Thanks, I'll look into it. I did what I probably should have tried to begin with, I ran those computations in parallel without shake, trying both Control.Concurrent and Control.Parallel, and the problem persists. It's obviously unrelated to shake, so I'm closing this issue. Thank you for your help!

Thanks for letting me know - good luck! If the solution you find is generally applicable let me know - I have a feeling other Haskell heavy shake users might hit it.


Updates to NAGL partial charge handling

Updates to the OpenFF toolkit NAGLToolkitWrapper have made using the NAGL GNN charge model easier than ever, and have provided newer versions of this charge model which are publically available. The polymerist wrappers on top of this are in need of a handful of updates in turn, namely:

[x] Deprecating the manual load of a GNNModel object in favor of openff.toolkit.utils.nagl_wrapper.NAGLToolkitWrapper

[x] Deprecating the auxiliary openff.nagl_models import

[x] Making the nagl dependency entirely optional, and adding an asserting for the presence of the openff.nagl package to those modules which require it
[x] Updating the required version of openff-nagl to 0.4.0 in conda dependencies

[x] Updating the default model used by the NAGL MolCharger subclass from RC2 to RC3

Resolved by #32


SDAM specification violation

Noticed a spec violation while reading through the source:
https://github.com/comtihon/mongodb-erlang/blob/master/src/mongoc/mc_monitor.erl#L63 -
This line violates the following part of the spec ("This value MUST be 500 ms, and it MUST NOT be configurable"):
https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring.rst#minheartbeatfrequencyms

Yes, got it. I'll fix.


install.sh fails to find https://registry.npmjs.org/com.ionic.keyboard on npmjs.org

Hi Stavros,
Trying to use supermodular, but not able to get it working properly following the instructions.

From root project directory, run npm install
From ./www run ./install.sh

Command fails with the following
/usr/local/lib/node_modules/ionic/node_modules/ionic-app-lib/lib/state.js:543
        throw 'Error executing "' + pluginCommand + '":\n' + output;
        ^
Error executing "cordova plugin add com.ionic.keyboard":
Error: Registry returned 404 for GET on https://registry.npmjs.org/com.ionic.keyboard

Loading "Gruntfile.js" tasks...ERROR
>> Error: Cannot find module 'cordova'
Warning: Task "platform:add:ios" not found. Use --force to continue.

Aborted due to warnings.
Loading "Gruntfile.js" tasks...ERROR
>> Error: Cannot find module 'cordova'
Warning: Task "build" not found. Use --force to continue.

Aborted due to warnings.

Looking for com.ionic.keyboard on npmjs.org shows that it no longer exists even though there is a listing there.  Searching for com.ionic.keyboard shows that it existed at one time, but it isn't clear if or what it may have been replaced with.
Of course the grunt commands fail as well, but that is a side affect of the install error.
Thanks,
John Gerken

If you check the README.md from the plugin (https://github.com/ionic-team/ionic-plugin-keyboard) you will understand why you get an error: not found. You have to use the 'cordova-plugin-ionic-keyboard' (found here https://github.com/ionic-team/cordova-plugin-ionic-keyboard). then it will work fine.


Create a new bundle without speech features and reduce the size for bundle

Feature Request
Is your feature request related to a problem? Please describe.
we are using the newest Bundle version 4.9.1 of the Webchat because we have to customize the chat due to our branding restrictions. We are using own webcomponents with react.
Therefore we cant use the CDN Bundle.
We build using npm and deploy on our axa.ch website. The generated bundle is now "compressed" > 570KB. Our Analytics, SEO and UC teams removed our bot from the website due to this heavy size. For sure we are also using other features too. But the webchat is far too big.
Issue: if we wanted to use the minimal CDN bundle we have to rewrite all the code and cant use our webcomponents built for this.
We are frustrated because the bundle is too big for an extensive use with own web-components. The library is great, but too big and it contains features which could be an add-on
The biggest issue is for our customer. Due to this size we are not allowed to use the chat on our most important pages and this is bad for the customer that want digital help.
Describe the suggestion or request in detail
Question: could you do a new bundle without the speech features because this library is using a lot of space. And introduce a plugin-architecture to be able to add new features if needed.

create a new bundle without speech library dependency and and allow to add speech as an add-on.

alternative solution: use the CDN minimal javascript version and we have to rewrite the whole code again. If we are not successful with styling we have to build our own webchat just using directline API.
Which I believe is not the idea of the inventor of this webhat library

[Enhancement]

@compulim can you take a look and comment?

What's your target size for gzipped JS? Our minimal bundle is 521 kB gzipped. Have you consider using code-splitting to load Web Chat on-demand?
We published stats.json. You can use Webpack Visualizer to see what's inside.
Web Chat is huge because we are a very complicated UI with huge customization options. You can consider rebuilding the UI by using our APIs and hooks. That would save you lots of time on business logics.
Breakdown for a numerous big contributors:

Required

DirectLineJS

The version of RxJS we use is huge (2.5% + 2.0% + 2.4%)

Markdown-It for internal use (2.3%)

We use Markdown-It for some localized strings with hyperlinks

Localization strings (2.3% + 2.3%)

We currently bundle 43 languages

Optional

Adaptive Cards (3.5% + 2.8%)
Cognitive Services Speech Services (8.3%)
Markdown + HTML sanitizer (1.8% + 5.3% + 0.2%)

The huge part (5.3%) goes to CSS sanitizer, postcss, which we don't exactly using it

hi @compulim  - thanks for the detailed feedback about our topic.
to your questions

I was told that it should be ~200K

i checked our stats.json and I see the following split:

all "blue circles" are from webchat component
all "red circles" are cognitive libraries and adaptive cards

here I have calculated the optinmizations without speech and the % part of webchat.js inside our component

question

how would you propose us to solve this issue? any options beside today?
shall we fork the library and remove speech, built and test it?
shall we start using directline API only?
are we able to remove the optional libs just with customizing webpack? I am not sure

thanks for a valuable input

we also saw that the total size of the library is now 180KB larger between version 4.6 and 4.9. we have upgraded now to your latest version

Can you switch to the minimal bundle (webchat-minimal.js), that entrypoint skipped loading Cognitive Services and Adaptive Card and will not add to your bundle size.
IIRC, you are using npm install to use Web Chat. Can you try out this?
- import ReactWebChat from 'botframework-webchat';
+ import ReactWebChat from 'botframework-webchat/lib/index-minimal';

This will use the minimal bundle: no Cognitive Services, no Adaptive Cards, no Direct Line Speech.
Let's check the bundle size after these and see if it works in your case.

Dear @compulim
thanks - we have tested it and there is no difference
I integrated 2 calls and 2 were not possible (different files)
`
import { connectToWebChat } from "botframework-webchat-component";
import { createStore, createDirectLine } from "botframework-webchat/lib/index-minimal";
import ReactWebChat from 'botframework-webchat/lib/index-minimal';
import { DirectLine } from "botframework-directlinejs";
import { DirectLine } from "botframework-directlinejs";
`
is there an issue with the "botframework-directlinejs"  and still importing all?
i will try to generate a stats.json

here is our size chart

and the details

there is no much difference

Could you investigate why Cognitive Services is still there when importing index-minimal?
In our Webpack.config.js, we build webchat-minimal.js out of index-minimal.ts. And when I look at our stats.json, I am not seeing Cognitive Services.

Red crosses: DirectLineJS-related
Purple cross: Markdown-It (used for localization, we could replace with a smaller lib, if any)
Yellow crosses: Localization and internationalization

here is our webpack.config.js
(had to zip it to upload)
webpack.config.zip

Let me try to build a new create-react-app project and see if I can repro it.

Do you need our webpack configurations json?

here is our webpack.config.js
webpack.config.zip

I am being tightened up on a new feature and hope to get something done this week. 🙇🏻♂

Hi @lorenz-haenggi-axa : fyi, this is still on the radar.

I created a minimal Webpack + Web Chat repo here to see how things work, without too much emissions, https://github.com/compulim/webchat-bundle-size-webpack.
By switching this line of code, src/index.js:3, I am able to switching between a full build and minimal build. For instance, full build include speech support and Adaptive Cards. While the minimal build include only minimal experience.
I am seeing Speech SDK being loaded when full bundle is selected, which produced a 11.8 MiB file.

But when minimal bundle is selected, it produced a
stats.zip
file size of 8.27 MiB only.

This is based on Web Chat 4.10.0, which was released yesterday.
I have attached the stats.json files for both build.
@lorenz-haenggi-axa could you study this and see why it differ in your build?

Thx @compulim - I will talk with our web pack specialist to see how we can fix our build.
This is great news.  And i will also use the newest version.

Thanks @lolo8304.

Hello @compulim, I have not red all the inputs and saw in detail your webpack build but have one question: Is your build export which have smaller size compatible with IE11?

hi @compulim  - we are working on the topic in this next sprint and would like to ask you if you have a short feedback to the question of @LucaMele ? he is one of our FE mastermind

Good to know, @lorenz-haenggi-axa.
Yes, everything need to be imported from /lib/index-minimal, otherwise, it will import the full version.
Let me know if you have any suggestions on reducing the package size. We love to make Web Chat smaller while maintaining a healthy feature set.


feat: Implement predator-prey flock environment

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks so much for this! I'll get reviewing it this week :smile:

Sorry, though I was merging into my main fork! Was just finishing up some final cleanup and then will open a PR from the main of my fork!

No worries! :smile:


Support for Bitmap like Redis Bitmap

Feature Request
Our usage scenario is to filter user_id in   Ad_exchange
Describe the feature you'd like:

Create a new bloom filter by adding a new item
Find out whether an item exists in the filter
Adding and checking multiple items

Teachability, Documentation, Adoption, Migration Strategy:
RedisBloom
RedisBloom Quick Start

@shijiaoming Thanks for the report!
We'll consider to support this feature.


Samarth

Microsoft authors of articles need to make updates through the private repository, so the updates can be staged and validated by current validation rules. After you review staging and fix all validation issues, you can add the sign-off comment to let the PR reviewers know the updates are ready to be merged.
It's easy to access the private repo version of your articles in GitHub. Just add -pr to the URL, as follows:
 Public repo URL: https://github.com/MicrosoftDocs/{docs-repo}
 Private repo URL: https://github.com/MicrosoftDocs/{docs-repo-pr}
We have closed this pull request. Please resubmit the updates through the private repo. For more information, see the contributor guide.

Docs Build status updates of commit 7e7d6d5:
:warning: Validation status: warnings

File
Status
Preview URL
Details

microsoft-community-training/whats-new-in-microsoft-community-training/2022/whats-new-in-may-2022.md
:warning:Warning
View
Details

microsoft-community-training/TOC.yml
:white_check_mark:Succeeded
View

microsoft-community-training/content-management/create-content/create-course-category/upload-content-to-a-course.md
:white_check_mark:Succeeded
View

microsoft-community-training/media/Enable PDF Download learner view v2.PNG
:white_check_mark:Succeeded
View

microsoft-community-training/media/Enable PDF Download learner view.png
:white_check_mark:Succeeded
View

microsoft-community-training/media/Full screen lesson.png
:white_check_mark:Succeeded
View

microsoft-community-training/media/Search Content Marketplace.png
:white_check_mark:Succeeded
View

microsoft-community-training/media/Separate page for certificates.png
:white_check_mark:Succeeded
View

microsoft-community-training/media/Upload SCORM.png
:white_check_mark:Succeeded
View

microsoft-community-training/settings/configurations-on-the-training-platform.md
:white_check_mark:Succeeded
View

microsoft-community-training/whats-new-in-microsoft-community-training/2022/whats-new-in-may-2022.md

Line 19, Column 1: [Warning: alt-text-bad-value - See documentation] Alt text 'upload scorm' is the same as the image file name. This redundancy adds no value for users of screen readers. For accessibility, add more descriptive alt text.
Line 35, Column 1: [Warning: alt-text-bad-value - See documentation] Alt text 'search content marketplace' is the same as the image file name. This redundancy adds no value for users of screen readers. For accessibility, add more descriptive alt text.
Line 41, Column 60: [Warning: file-not-found - See documentation] Invalid file link: '../../infrastructure-management/install-your-platform-instance/create-teams-app-for-your-training-portal.md/'.
Line 61, Column 1: [Warning: alt-text-bad-value - See documentation] Alt text 'full screen lesson' is the same as the image file name. This redundancy adds no value for users of screen readers. For accessibility, add more descriptive alt text.
Line 91, Column 1: [Warning: alt-text-bad-value - See documentation] Alt text 'separate page for certificates' is the same as the image file name. This redundancy adds no value for users of screen readers. For accessibility, add more descriptive alt text.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Deep State Redirect doesn't respect location:false

I have location: false set on a lot of my routes through ui-sref-opts or as on option on $state.go(). No matter what I try it the url does indeed change when the redirect is done. Even if I went to that deep state with no url change to begin with. Am I doing something wrong or is this by design?

It's not by design.  Before ui-router 0.2.18 or so, the options was not available in the $stateChangeStart event, so it wasn't even possible.
I'd love a PR to address this.  The relevant code is mostly here: https://github.com/christopherthielen/ui-router-extras/blob/1a3d7c01e62144fc0985a0a92c52f93ab270ff82/src/dsr.js#L105-L122


[WIP] Create UI base page

Resolves #2049.
This PR adds a UI base page and associated LESS styling file. The UI base page takes props that allows for the display of user information in a format that is visually distinct from the standard Homebrewery brew format.

I have been developing the Account information (from PR#2047) to identify and style elements that can be expected to be commonly used in the base UI Page.
This is the current state of the Account page:

This is achieved by passing the following data to the new UIPage:
<>

Account Information

Username:  {this.props.uiItems.username || 'No user currently logged in'}

Issued:  {this.props.uiItems.issued || '-'}

Google Information

Linked to Google:  {this.props.uiItems.googleId ? 'YES' : 'NO'}

	{this.props.uiItems.googleId ?
Brews on Google:  {this.props.uiItems.fileCount}
 : '' }

MongoDB Information

Brews on MongoDB:  {this.props.uiItems.mongoCount || '-'}

</>

When logged in with an account connected to Google:

When logged out:

This one's been sitting for a minute, so I've brought it up to the current master, and added all of the suggested fixes. Still not 100% about the best way to pass the data from AccountPage to the base UIPage, currently it's a list of React <></> elements, each list item is rendered into a dataGroup.

Changed the date format to something significantly more human readable:

Account not logged in to Google:

Still not 100% about the best way to pass the data from AccountPage to the base UIPage, currently it's a list of React <></> elements, each list item is rendered into a dataGroup.

Yeah, that is a little unusual but each datagroup is different enough there's not really a standard set of data to pass in. This might be fine as-is. I guess it depends on how much of the UIPage as a basepage should be handling common elements like generating headers, etc. and how much it should be handled as a special case by the AccountPage.
That does bring up a question though: Are all "UIPage"-type pages going to be the same "white page with dataGroup blocks?"

We also need to add a button to the User Nav dropdown to be able to reach this.

Added an Account button in the account menu (between Brews and Logout).

That does bring up a question though: Are all "UIPage"-type pages going to be the same "white page with dataGroup blocks?"

I mean, that's the idea, right? The idea being that in the future, we can just push a data object to it to for whatever reason we might have, without having to go through the whole process of creating an entirely new page from scratch.

I've added a couple of additional Nav bar items to the UI base page, to mirror the Home page Nav bar.

With the additional work done here, this PR will also fix #2043.

I mean, that's the idea, right? The idea being that in the future, we can just push a data object to it to for whatever reason we might have, without having to go through the whole process of creating an entirely new page from scratch.

Sorry, what I meant was is this UI layout too specific? For instance, it was suggested before that we should make a better Error page for when users try to access a deleted brew, and that Error Page could use this UI theme https://github.com/naturalcrit/homebrewery/issues/1924. Do we want the Error page to also be limited to  dataGroup boxes?
In other words, should we be limited to passing in an array of elements that must be displayed as white dataGroup boxes, or should we instead allow passing in a more custom set of contents (perhaps including some dataGroup blocks) and the UI page can just be a wrapper that provides the basic CSS, a title, nav bar, etc.?

I've modified how data is passed into the base UI Page, let me know what you think.

Yeah, I like this better. Anything left you want to add before I merge this? We don't have any navigation button to access the account page, but we can handle that in a different PR with this basepage ready.

I think it's good to go!

Ah good. I must have been stuck on an older copy. I'll merge this now. 🎉 💯


I do not see what is wrong with this code

[EDIT by guardrex to add the code styles]
My code has this... I cannot distinguish it from your suggested code.
app.MapGet("/qnas/{id}", (int pID) =>
{
    return new QuestionController().GetQNA(pID);
}).WithName("GetQNA");

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

ID: 0f5a19ea-2ba9-a36f-7fb6-61c39ef91b96
Version Independent ID: 0f5a19ea-2ba9-a36f-7fb6-61c39ef91b96
Content: ASP0005: Do not place attribute on method called by route handler lambda
Content Source: aspnetcore/diagnostics/asp0005.md
Product: aspnet-core
GitHub Login: @captainsafia
Microsoft Alias: riande

Hello @JohnKlineKurtz ...
pID doesn't match id. Did you try ...
app.MapGet("/qnas/{id}", (int id) =>
{
    return new QuestionController().GetQNA(id);
}).WithName("GetQNA");

I ended up with this for the .NET:
app.MapDelete("/qnas/{id}", (int id) =>
{
if (new QuestionController().DeleteQNA(id))
{
return Results.Ok(null);
}
else
{
return Results.Problem("Could not delete");
}
}).WithName("DeleteQNA");
It hink the problem was in my Angular... this finally worked:
deleteQuestion(pQ: Question): Observable<HttpResponse> {
var sURL = this.URLForQNAs + "/" + pQ.id;
console.log("Calling DELETE with " + sURL);
return this.http.delete<HttpResponse>(sURL, { observe: 'response' });
}

Ok ... glad u got it working.
Could you try something? Use that exact code on both ends, but change it back to where the route param doesn't match the method signature ...
app.MapDelete("/qnas/{id}", (int pID) =>
{
    if (new QuestionController().DeleteQNA(pID))
    {
        return Results.Ok(null);
    }
    else
    {
        return Results.Problem("Could not delete");
    }
}).WithName("DeleteQNA");

Run it ... see if it throws ... see WHAT exception it throws if it throws one.

Closing without the final checks as resolved by customer.


reactackle-checkbox calls props.onChange with object {value: checked}

I am using reactackle-checkbox in combination with mobx-react-form.
Mobx-react-form magically binds its own onChange handler to the inputs.
It expects the parameter to be just the value of the input. i.e. onChange (value) { .... }
In case of reactackle checkbox it calls the function with an object {value: checked}.
This leads to inconvenience in handling the form, since we have to add an extra line of code for each checkbox to read its value.
Is there a reason that props.onChange is called with an object?
Is it possible to add a change to improve this in the next major release?
https://github.com/bcrumbs/reactackle/blob/master/packages/reactackle-checkbox/src/Checkbox.js#L108-L118
  _changeCheckedState(checked) {
    if (isUndef(this.props.checked)) {
      this.setState({
        checked,
      });
    }

    this.props.onChange({
      value: checked,
    });
  }

@agraver Hey, Anton. Input components were designed to work with Booben(https://github.com/bcrumbs/booben) constructor. It may be improved in the next big release.


Change TokenBalance Amount type from string to ulong

Is it a good idea to change public string Amount { get; set; } into ulong (there is UiAmountString already if someone will need string)? Now I have to parse a string into ulong in my code.
/// <summary>
/// Represents the token balance of an account.
/// </summary>
public class TokenBalance
{
    /// <summary>
    /// The raw token account balance without decimals.
    /// </summary>
    public string Amount { get; set; }

    /// <summary>
    /// The number of base 10 digits to the right of the decimal place.
    /// </summary>
    public int Decimals { get; set; }

    /// <summary>
    /// The token account balance, using mint-prescribed decimals. DEPRECATED.
    /// </summary>
    [Obsolete("UiAmount is deprecated, please use UiAmountString instead.")]
    public decimal? UiAmount { get; set; }

    /// <summary>
    /// The token account balance as a string, using mint-prescribed decimals.
    /// </summary>
    public string UiAmountString { get; set; }
}

I'm not exactly sure of this but I think they are coming back formatted as an actual string so this would need a converter to be possible.
See: https://docs.solana.com/developing/clients/jsonrpc-api#token-balances-structure
I'm gonna dig into this

I think we could do something like adding two new properties, one for Amount that would convert it to ulong and another for UiAmountString to return it as either float or double. This way you wouldn't need to be fiddling around with more Json Converters etc. since these are values that are going to be needed a lot in wallet/tx contexts
It's just the naming of those new properties that would be tricky, idk if the following examples would be too verbose or not:
public ulong AmountUlong => Convert.ToUint64(Amount);
public double AmountUlong => Convert.ToDouble(UiAmountString);

Following up on this @aph5nt, I've checked in with @tiago18c and if you're down to implement these additions we're good with adding the following properties to this class in order to makes things easier and not have too much work with Converters while also keeping API fidelity high.
public ulong AmountUlong => Convert.ToUint64(Amount);
public double AmountDouble => Convert.ToDouble(UiAmountString);

yes, i will do it


64Drive/SummerCart64: Add C11 UB fix for va_start

When I compile UNFLoader on macOS with Apple Clang 12, I get the following compiler warnings
g++ -D LINUX -o UNFLoader main.cpp helper.cpp device.cpp debug.cpp device_64drive.cpp device_everdrive.cpp device_sc64.cpp Include/lodepng.cpp -lncurses -lftd2xx -lpthread -Wl,-rpath /usr/local/lib -L/usr/local/lib
device_64drive.cpp:93:22: warning: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Wvarargs]
    va_start(params, numparams);
                     ^
device_64drive.cpp:88:78: note: parameter of type 'u8' (aka 'unsigned char') is declared here
void device_sendcmd_64drive(ftdi_context_t* cart, u8 command, bool reply, u8 numparams, ...)
                                                                             ^
1 warning generated.
device_sc64.cpp:108:22: warning: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Wvarargs]
    va_start(params, numparams);
                     ^
device_sc64.cpp:89:152: note: parameter of type 'u8' (aka 'unsigned char') is declared here
  ...cart, u8 command, u8* write_buffer, u32 write_length, u8* read_buffer, u32 read_length, bool reply, u8 numparams, ...)
                                                                                ^
1 warning generated.

Looking at some answers on the internet, it looks like variadic arguments that have their size promoted can be undefined behaviour in the C standard. I was able to resolve these warnings by changing numparams from u8 to u32.
void device_sendcmd_sc64(ftdi_context_t* cart, u8 command, u8* write_buffer, u32 write_length, u8* read_buffer, u32 read_length, bool reply, u32 numparams, ...);
// ...
void device_sendcmd_64drive(ftdi_context_t* cart, u8 command, bool reply, u32 numparams, ...);

This this might not be an immediate issue, but I can imagine ironing out UB might help with debugging later.
I'm unable to compile/run this with the appropriate flashcarts, so I'd be hesitant to merge without testing.

I don't see any reason as to why u32 would mess anything up, because I don't think that value is ever sent to the flashcart (it's only so that the code can decide what data to append). I'll check tomorrow morning and, if everything's gucci, I'll merge.

Yeah, this works perfectly fine. Merging :>


Extra "*" when changing style + BOLD

To reproduce:

create pad with 2+ lines;
select all + apply Heading 1 style;
select all + apply BOLD;
select all + apply Normal style;

Result: first line is fine; the others have a "*" on the beginning. Tested here: https://beta.etherpad.org/p/lfp_star

One thing that I've noticed is that atext has a "*" marker on the beginning of every line when I apply a heading style !== Normal to them. Do you have any idea why this mark is added? Should it be?
The mark is removed most of the times, but for this specific scenario it is not.

After some investigation, this seems to be an issue on Etherpad core. See https://github.com/ether/etherpad-lite/issues/2772


flood all does not work

Version
List the versions of all flood packages you are using.
0.2.1
Platform
The output of uname -a (UNIX), or version and 32 or 64-bit (Windows)
Linux pop-os 6.2.6-76060206-generic #202303130630~1683753207~22.04~77c1465 SMP PREEMPT_DYNAMIC Wed M x86_64 x86_64 x86_64 GNU/Linux
Description
I'm using the CLI and I can't get to run tests with all flag. Using individual calls does work, i.e. flood eth_call
I tried this command:
flood all NODE1_NAME=<REDACTED> NODE2_NAME=<REDACTED> --rates 10 100 1000 --duration 30

I expected this to work, as it is shown in the help command:
examples:
    flood eth_getBlockByNumber localhost:8545
    flood eth_getLogs localhost:8545 localhost:8546 localhost:8547
    flood all client1=<IP_ADDRESS>:8545 client2=<IP_ADDRESS>:8546 --equality

Any news from this? It would be amazing to have a simple flood all localhost:8545 with relevant outputs.


[macOS export] Add notarization support.

Adds notarization support.
Adds validation of bundle id and signing / notarization options.

Thanks!


How to change font-size on mobile webpage?

The font-size on my mobile webpage looks so small , Can I change them?

I found the code below override the font-size I set in source/css/_variables/custom.styl
@media (max-width: 767px)
.posts-expand .post-body {
    font-size: 12px;
}

Can I change the font-size of .posts-expand .post-body to 14px in custom.styl ?

NexT is rebased into organization repo.
If you want new feature, fix, or support, create new in NexT v6.x repo (desirable in English).
There is instructions on English or Chinese how to update from v5.1.x to v 6.x
You also may read this for details.


Adding support for p5.48xlarge and p4de.24xlarge instance types and Fix for FsX monitoring

New GPU instance types added to the AWS instance family
Issue #, if available:
Description of changes:
Modified prometheus/prometheus.yml to add p4de.24xlarge and p5.48xlarge. These are new GPU instance types released by AWS.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

why do you need this?

@nicolaven - AWS has released new instance types and when I installed this tool, it did not pick up the p5 instances. Hence the need to include them.

We can't merge this with your branch. Please change.


change wiki edit link

when you explain entries the footer edit link

goes here ->
https://github.com/freecodecamp/freecodecamp/wiki
eg
https://github.com/freecodecamp/freecodecamp/wiki/waypoint-bring-your-javascript-slot-machine-to-life
but maybe should go here?
https://github.com/freecodecamp/wiki

I think it should link to FreeCodeCamp/Wiki

@dcsan i still confuse with the main usage/purpose of camperbot.

@brutalcrozt lets discuss about camperbot matters in FreeCodeCamp/camperbot

Closing as a wontfix.
https://github.com/FreeCodeCamp/camperbot/issues/103