Set up eslint with prettier

I have tried to retain @fauna-brecht configuration where possible.
The prettier rules are the same as before and eslint rules.
I wanted to get it passing first so I changed a few rules to warning.
Minor issues are fixed in the next commit.
The .eslintrc.js file contains some more annotation about next steps.
Use npm run fmt to run eslint and prettier.
Let me know what you think. This is just how I would set it up but some
things are debatable ;)

Noteworthy: For me the tests don't pass, but they did not pass before either.
npm run test

><EMAIL_ADDRESS>test
> ava -T 200s --fail-fast

  ✖ isPlainObject is not a function

that function seems to be coming from lodash but that's as far as I have traced it.

Brecht has the project set at tabWidth: 4

Thanks for the suggestions, I'll look into it om Monday since I had quite a
busy day. I agree it's needed, I typically am keen on setting this up
whenever I star a repo and somehow didn't for this one ;)
On Fri, Mar 12, 2021, 20:57 Paul Paterson @.***> wrote:

Brecht has the project set at tabWidth: 4
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/fauna-brecht/fauna-schema-migrate/pull/17#issuecomment-797719625,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANPL4RMXKRRI3SKOP4NM7RLTDJPZLANCNFSM4ZCWSLXQ
.

Brecht has the project set at tabWidth: 4

I literally copied the prettier config out of .eslintrc.js in the master branch, I don't know where tabWidth would have been set, but either way that can be added easily.

Noteworthy: For me the tests don't pass, but they did not pass before either.
npm run test

><EMAIL_ADDRESS>test
> ava -T 200s --fail-fast

  ✖ isPlainObject is not a function

that function seems to be coming from lodash but that's as far as I have traced it.

I'm guessing you just went back to master but did not drop the node_modules folder when you say that it didn't work before either. It seems to be introduced by the libraries that were introduces for linting which is surprising but that seems to be the case. I run the tests when I push and the tests are ran automatically in GitHub actions as well so am certain that they ran before. After installing the extra dependencies it no longer worked. When going back to master and dropping node_modules it worked again so I'm guessing a library conflict.

Hey,
went through it, changed some minor things and made sure that tests run (at least on my end they do).
https://github.com/fauna-brecht/fauna-schema-migrate/tree/pullrequest%2317
Changed:

removed yarn comment, until now we don't use yarn.
went further and added eslint-config-standard which is what I typically use
ignored dist completely, is there a reason we would lint built files?
resolved a number of errors and warnings

We do have a number of warnings still on 'any' and 'explicit return types'. The 'any' were meant to save time, custom types that are currently used can use some love overall, but I currently don't have time to go through all of this since I'm juggling many things at once. I'm overall ok with these rules but wouldn't like contributors to be bombarded with warnings, so I'm considering ignoring those entirely for now. Thoughts?

Thanks.
My bad on the yarn stuff, I usually use yarn and didn't think twice when I copied it :D
Testing on my machine is still a bit weird and throwing errors but that's on me. It runs fine inside a node:14 container
About the remaining any etc. issues:
I kind of dislike ignoring them globally because that just allows new anys to be introduced.
Maybe ignoring them on a per line basis and create an issue to keep track of fixing them? That's not really a perfect solution but the best I got.

I kind of dislike ignoring them globally because that just allows new anys to be introduced.
Maybe ignoring them on a per line basis and create an issue to keep track of fixing them? That's not really a perfect solution but the best I got.

I personally don't feel that strongly about 'any' for small projects since I tend to limit typing to where it actually helps me. Since I see many pull requests incoming which means I'm no longer working alone. Then it definitely makes sense to have stronger typing. Adding ignores everywhere is also introducing work of course. Currently, I can't prioritize improving the code in such a way over my other tasks. Let's just keep an issue open and keep the warnings for now.

Sure sounds good.
Do you want to just merge your branch and delete mine? Or how would you move forward with this?

Should be merged via the other pull request but was not detected by github


JsonConverter Deserializing Polymorphic List and ModelState Error Context

Description
When using a Polymorphic JsonConverter on a list of objects in a request to an Asp.Net Core Web app ModelStateValidation for properties of the objects in that list lose their context.  For example if i have an object Person and that object has a property Friends which is a List, if I set the Gender enum to an invalid enum value when using  JsonConverter i get a response like:
{
    "gender": [
        "The input was not valid."
    ]
}
but if you take the JsonConverter off of the model you get:
{
    "friends[0].gender": [
        "The input was not valid."
    ]
}

I tried to place JsonConverters in the AddJsonOptions extension method on IServiceCollection, or directly on the model with the same result, not that I expected it to change.
To Reproduce

Using this version of ASP.NET Core 2.1 or 2.2
Open the solution contained inside of the Stuffies.zip file.
Hit Debug
Make a request via postman or whatever tool you like and post to https://localhost:5001/api/values.
using the following json:

{
	"name":"Bob Jones",
	"gender":"Male",
	"friends":[
		{
			"name":"Steven",
			"gender":"cat"
		}
	]
}

You'll see that the context of the response exists in the response: friends[0].gender
Now go into the ValuesController and uncomment the Attributes on the Person class
Debug again and do the same Post
See the differences in the previously mentioned responses between when you add or remove the Attributes from the Person class.  Now the response will have : gender without the context.

Expected behavior
I expected the response to have the context on the ModelState error.
Screenshots/Sample Project
If applicable, add screenshots to help explain your problem.

Stuffies.zip

Hi. It looks like this is a question about how to use ASP.NET Core. While we do our best to look through all the issues filed here, to get a faster response we suggest posting your questions to StackOverflow using the asp.net-core-mvc tag.


Update the introduction for 2.0 migration doc

This is a requested change from Chris, to lead with the positive/common case first.

@iujames done: https://appcues.github.io/appcues-ios-sdk/documentation/appcueskit/2.0migrationguide/


Fix linting image build failure due to PEP 668

Pip had a check enabled that fails the install due to packages being managed by the OS.
The added flag ignores this check.
Otherwise, the build fails with:
11.85 × This environment is externally managed
11.85 ╰─>
11.85     The system-wide python installation should be maintained using the
11.85     system package manager (apk) only.
...
11.85 note: If you believe this is a mistake, please contact your Python
  installation or OS distribution provider. You can override this, at the risk
  of breaking your Python installation or OS, by passing
  --break-system-packages.
11.85 hint: See PEP 668 for the detailed specification.

Error can be seen in latest linting jobs, e.g. https://github.com/submariner-io/shipyard/actions/runs/7129355323/job/19507164695?pr=1497#step:3:325


[fix] finalizers to not contain the apiVersion

What this PR does / why we need it: This changes the finalizers to not have the api version in the finalizer string in line with other CAPI providers.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
TODOs:

[x] squashed commits
[ ] includes documentation
[ ] adds unit tests
[x] adds or updates e2e tests

Changes look good to me. I can approve once the go-analyze tests are fixed and PR is rebased.

will this break any resources with the older finalizers or will it gracefully switch to the new finalizer?

will this break any resources with the older finalizers or will it gracefully switch to the new finalizer?

I mention this in the special notes above that this doesn't gracefully cut over in the interest of keeping the code clean, hence the [breaking] tag

LGTM. Can we reduce the cognitive complexity or skip it so that this check doesn't break on main branch?


Single quote in a HTML comment and Vue's class object syntax breaks windicss

Describe the bug
Vue class object syntax breaks windicss, if the key of the object contains a quotation mark (') AND there's an HTML comment with an odd number of the same quotation mark
<!-- We've used an odd single quote in this comment, and below -->
<div :class="{ 'active': true }">
  Stuff here
</div>
<div class="bg-blue-100">
  More stuff here
</div>

These lines do not need to be after each other.
There are no errors, a background class (bg-blue-100) gets generated but without any declarations, so just an empty rule
.bg-blue-100 {}
Versions

vite-plugin-windicss: 0.16.0-beta.13
windicss 3.0.0-beta.6
vite: 2.2.4

Additonal Context
This isn't an actual Vue project, it's a simple HTML page, with the entire vue library directly loaded as a direct dependency, though I doubt that matters.
Attributify is not enabled. But the same happens even if it is.

Ahm, nice catching. But it's actually a bit tricky and I don't have a decent solution right now that comes to my mind. Maybe we can strip out the comments before doing the extractions, but still maybe not solve the problem completely.
Would like to know if anyone have some better ideas. Thanks.

Assuming you're not extracting class names from comments to begin with, I think that would likely work.
The only problem I can think of is that people could be using comments to whitelist class names.

An we also have the problem to proper detect comments. <!-- --> /* */ should be fine, but // could something be overkill without a parser 🥲

I looked at the code. There are extractors for classes and for tags. Is there a reason we couldn't only look for classes inside the tags?


[Bug] Error creating CodeBuild

Hello , I am attempting to deploy the AWS Service Workbench but getting the error that CodeBuild failed at custom setup.
I tried researching and found the following error attached.  Please advise how i can resolve.

Hi @ebrahim989, can you provide a screenshot of the parameters for your moham stack?
Based on the stack structure present in your screenshot, this looks like an outdated/no longer supported version. We recommend using the most recent release of SWB (v5.2.0).

Thank you @kpark277 . I used the default parameters as i was trying to test deployment. Where can i find the latest version v5.2.0 ?

Source code for v5.2.0 can be found here.
Please let us know if you run into a similar issue with v5.2.0.

Thank you @kpark277 . Where do i find the CloudFormation template for 5.2.0 ?

I am using the CloudFormation template from here: https://docs.aws.amazon.com/solutions/latest/service-workbench-on-aws/automated-deployment.html

v5.2.0 no longer has one collective template for all of Service Workbench. We recommend using scripts/environment-deploy.sh as seen in the installation guide.

Thank you , much appreciated.

Hello @kpark277 , I seem to be hitting this erro:
Credentials Error --------------------------------------
CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1
at IncomingMessage. (/root/service-workbench-on-aws/node_modules/.pnpm/aws-sdk@2.1015.0/node_modules/aws-sdk/lib/util.js:904:34)
at IncomingMessage.emit (events.js:412:35)
at IncomingMessage.emit (domain.js:475:12)
at endReadableNT (internal/streams/readable.js:1333:12)
at processTicksAndRejections (internal/process/task_queues.js:82:21)
 For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.

Hi @ebrahim989, please go through the AWS CLI configuration process on your machine. The deployment script depends on AWS profile credentials linked in your main/config/<stage>.yml file.

Thank you @SanketD92! Are you saying that I should deploy via EC2 instance? Could you elaborate a little bit more please? Your guidance is appreciated.

It's up to you where you want to deploy from, but the system you choose needs to have the right permissions to the main AWS account (if you were trying to deploy from your local machine/laptop, you would need to set up AWS CLI).
The installation guide provides step by step instructions for installation, and suggests creating a Cloud9 instance or an EC2 Linux instance in the main account for deployment.

Thank you @SanketD92. I have used the EC2 installation guide and using the ssh to deploy the scripts and that's how I got the error. Should I install aws cli on the Linux machine?

Please check if the EC2 instance already has AWS CLI configured. If it is, you would find AWS profiles listed in these files:
~/.aws/config and ~/.aws/credentials. If not, then you would need to configure AWS CLI on the machine.
Also check what permissions the EC2 instance role has. For deployment purposes, we suggest the deploying AWS profile has admin privileges.

Thank you @SanketD92 I will give that a try tomorrow and get back to you with an update.

Hello @SanketD92 , I seem to be getting the following error after attempting to deploy (I added full permissions to EC2 and created added the aws profile:

I am now getting this error while using Cloud9:
Stack with id dev-va-sw-preDeployment does not exist
Could you please assist ? @SanketD92 @kpark277

This is the last error i am getting whille using Cloud9 Deployment method, could you kindly help:
Stack with id dev-va-sw-preDeployment does not exist
Could you please assist ? @SanketD92 @kpark277

It seems to be related to this error:
Resource handler returned message: "Uploaded file must be a non-empty zip (Service: Lambda, Status Code: 400, Request ID: )" (RequestToken:, HandlerErrorCode: InvalidRequest)

Hello @SanketD92 @kpark277 , My latest error is:
Serverless Error ---------------------------------------
The security token included in the request is invalid

This is via the Cloud9 Deployment. I keep getting the error:
Serverless Error ---------------------------------------
The security token included in the request is invalid

It seems your temporary credentials might have expired. Please try with active temporary credentials.

I used the EC2 option and got everything operational. For some reason the Cloud9 kept giving me security token issue.


Core styles: update default colors

Ionic version:  (check one with "x")
(For Ionic 1.x issues, please use https://github.com/ionic-team/ionic-v1)
[ ] 2.x
[ ] 3.x
[x] 4.x
Our current colors:

The new colors (per @bensperry):

In code form for easy copy pasta:
$primary:         #3880ff;
$secondary:       #0cd1e8;
$tertiary:        #f4a942;
$success:         #10dc60;
$warning:         #ffce00;
$danger:          #f14141;
$light:           #f4f5f8;
$medium:          #989aa2;
$dark:            #222428;

This is something that I need to do, but I'd like to wait on this one: https://github.com/ionic-team/ionic/issues/13986

Latest colors for v4:
$primary:         #3880FF;
$secondary:       #0CD1E8;
$tertiary:        #7044FF;
$success:         #10DC60;
$warning:         #FFCE00;
$danger:          #F04141;
$light:           #F4F5F8;
$medium:          #989AA2;
$dark:            #222428;

This has been completed in core :tada:


Document recover lost jobs task

Documents the new lost jobs recovery task introduced in https://github.com/alphagov/email-alert-api/pull/1318.
https://trello.com/c/JD9CohHz/356-incident-action-automatically-requeue-content-changes-and-messages-that-have-been-lost

closed in favour of https://github.com/alphagov/govuk-developer-docs/pull/2655.


Optionally display the message in native windows for linux + windows

This is a 🙋 feature
Description
GUI applications cant display the message on the terminal so I have added a native message box so they can use human-panic.
I have added a flag to Metadata to enable/disable this.
The x11 implementation is based on the SDL ShowSimpleMessageBox
source code:
https://github.com/spurious/SDL-mirror/blob/master/src/video/x11/SDL_x11messagebox.c
Non-ascii characters aren't working on the linux implementation, no idea whats up with that.
Mac OS is left unimplemented as I don't have access to such a machine.
I added an example instead of a test because I cant see a way to test this.
Scope
This may not fit it into the scope of this project, due to:

Extending the scope to GUI applications.
Lots of unsafe code which is especially undesirable in a panic handler.

This feature is something I need, so if this change doesn't fit into this project I will need to maintain a fork.
Questions
Maybe I should hide this behind a compile time feature so x11-dl or winapi aren't needlessly pulled in for CLI apps?
Checklist

[x] tests pass
[x] documentation is changed or added

Semver Changes
Major change
Screenshots
Linux (i3 wm)

Windows

Looks like I am rustfmt'ing wrong. Will have to look into it tomorrow.

I really like this conceptually! I think like @spacekookie said having this as a separate struct / module inside this repo would be great! I agree having this be opt-in would probably be preferred.
Something I'm not entirely convinced of is adding feature flags just for the gui. I feel it isn't great user experience; changing runtime behavior based on a setting inside Cargo.toml makes it quite hard to spot differences. Also it seems I'm not the only one that feels this way about feature flags.

Something I'm not entirely convinced of is adding feature flags just for the gui. I feel it isn't great user experience; changing runtime behavior based on a setting inside Cargo.toml makes it quite hard to spot differences. Also it seems I'm not the only one that feels this way about feature flags.

imo adding extra dependencies for non-GUI people seems undesirable.  If we agree on that, then its a matter of how to handle it.

Feature Flags
Separate crate

Any others?

@epage edge cases aside, I don't think that the amount of data that's stored on disk is a bottleneck. During compilation unused methods are removed anyway, making the resulting binary only include the code that's used.
So unless this is proving to be a tremendous amount of extra data (like >= 1gb extra stored on disk), I don't think we should shape the API around that constraint.
Actually thinking about it: perhaps if we have a feature flag that's enabled by default, we can get the best of both worlds? Both a convenient way of choosing which method to use, and a flag to trim any overhead for disk-constrained development environments.

@yoshuawuyts I don't think that letting a feature flag determine runtime behaviour is a bad thing at all. There are plenty of crates to do this and considering that only a small minority of people will want to use the GUI feature of this crate, making it anything other than opt-in would be irresponsible.
We don't know what application build pipelines exist out there and adding a dependency which is absolutely not installed on headless system runs the risk of breaking a lot of user setups.
In my opinion this is important when it comes to keeping this change a minor (1.1.0 instead of 2.0.0). And I'd feel very uncomfortable giving my OK to merging it otherwise.

Wow, I didn't expect the response to be so positive! :D
Thanks for the feedback.
I think I've addressed all the issues that have been brought up.
I've opted to use a gui feature to toggle the window on/off at compile time.
I didn't want to enable it by default then toggle off because:

Most people are going to be making CLI apps in rust. (probably)
Enabling a feature to remove a feature is unintuitive.

I have put no thought into the naming of the feature, feel free to bikeshed all you want, I dont really care what its called.
I've run out of time again for today, I'll have to look into rust-fmt tomorrow.

Those changes look good!
Although did you know you can make an example depend a feature flag?
[[example]]
name = "window"
required-features = ["GUI"]

This might be less overkill than adding a whole new toml for a test

I think this case is similar to #7. My comment here: https://github.com/rust-clique/human-panic/issues/7#issuecomment-382132348
You are currently in a panicing program, so running any large amount of code might lead to interesting problems. Anything leading to another panic with abort the program immediately. For example, a panic might crash a thread and the thread owner is set up to handle panics - and abort will interact with that handler.
I would recommend forwarding to an external program in all cases. This program could handle automated submission, display of a window, etc, and - that's the best feature - can panic by itself, a condition that human_panic can then handle and log.

I'm not sure what the issue with the abort is?
The window display occurs after the regular functionality (dump to file + message to stderr).
Is it because it wont free some sort of OS resource used in windowing? I don't really know much about this sort of thing.
The issue with an external program is it seems annoying to setup for the devs.
Would the setup for that look like:

bat/sh script to run the real program, then the human-panic-follow-up-helper program
only call the human-panic-follow-up-helper  program if the real program returns an error value
human-panic-helper program which checks the tmp folder for the most recent panic dump

Also would using catch_unwind instead of set_hook avoid this issue?

Turns out the rustfmt issue was because I did cargo install rustfmt ages ago and forgot about it, which was overriding the modern rustfmt-preview component I was trying to use.
All feedback except skades feedback has been addressed.

I'm not sure what the issue with the abort is? The window display occurs after the regular functionality (dump to file + message to stderr). Is it because it wont free some sort of OS resource used in windowing? I don't really know much about this sort of thing.

The issue with abort is that the program immediately quits. No cleanup will happen and no further panic handling will take place, including the handling that the host program has set up. (including potential catch_panic).

The issue with an external program is it seems annoying to setup for the devs.

You can ship a reference implementation, that can be amended to the developers needs. If - for example - the form and function of your feature doesn't match the developers expectations, they'd have to fork human_panic instead, which I'd call more annoying. This is the reason why I've drawn a parallel to the automated submission feature, which has a similar orientation.

Would the setup for that look like

bat/sh script to run the real program, then the human-panic-follow-up-helper program
only call the human-panic-follow-up-helper program if the real program returns an error value
human-panic-helper program checks the tmp folder for the most recent panic dump

The rough setup for this is that the crashing program does nothing else but execute the error handling program with a defined set of parameters instead. It only has to be in path.
human-panic-helper --dump-file /tmp/1232313.dump

Also would using catch_unwind instead of set_hook avoid this issue?

Using catch_panic has wider implications, it breaks catching assumptions of clients and requires the user to wrap all code paths with it, more specifically, it will not catch panics that are caught before the human_panic handler runs.

First off, thank you @rukai for wanting to upstream your solution! Sorry for taking a week to write this comment, this totally slipped through the cracks.
I'm pretty surprised to see this as a feature for human-panic, to be honest. Not that I disagree with the idea per-se, but GUI programming is usually quite different from CLI apps (what this crate currently targets) and there are way more frameworks and differences between OSs to consider.
Another potential issue I can see is that people might expect this crate -- if it were to add OS-specific GUI features -- to also use the OS-specific error reporting. And there are a lot of implementations of that. But all this does right now is to write a log file (whose path is rather cryptic and hard to find by hand).
Thus, I agree with @skade that a pluggable interface might be more useful than the current solution.

What are your thoughts on if I instead submit a PR that checks for an external program in the same directory named something like human-panic-helper. If it exists run it, if it doesn't exist then close.

Thinking about this some more, could running an external program result in privilege escalation? i.e. if the program is run in a directory without a helper program, then if a user has write access to the directory the program is in but not the actual program. Then they can create the helper program and then their code will be executed on a panic? Or is write access such a strong requirement that this doesn't matter?

First off, thanks for all the time put into responding to this PR.
I wouldn't have been able to get to this point without your feedback.
I'm going to go ahead and close this PR as I believe both creating a window and running external programs is out of scope of human-panic.
Different projects will have different needs for this sort of thing. So I think once a project gets to the point of running external programs, the project is better off building their own panic handler.
In case someone stumbles upon this PR and wants to implement a gui panic handler or external handler for their project:

I have moved the message box code into a separate crate: https://github.com/rukai/simple-message-box
I have implemented an external panic reporting program for my game: set the hook to call external program and external program


Todo List

updater.go scheduling efficiency
zerocopy in smux and kcp-go
WriteBatch in kcp-go

Maybe priority_queue can be used. https://golang.org/pkg/container/heap/
Maybe you can find solution by searching with these two keywords, mmap sendfile
I have no idea yet.


Disable automatic MDC field creation

Hi,
I have a problem with this appender. I created the following appender configuration:
<GELF name="gelfAppender" server="XXX.XXX.XXX.XXX" port="XXX" hostName="myHost">          <PatternLayout pattern="%msg%n"/>          <!-- Additional fields -->          <KeyValuePair key="Sourcename" value="mySourceName"/>          <KeyValuePair key="Class" value="Application"/>          <KeyValuePair key="Vendor" value="myVendor"/>          <KeyValuePair key="APP_Name" value="myAppName"/>          <KeyValuePair key="APP_Stage" value="myStage"/>       </GELF>
In the application some MDC fields are set. Now I see in Graylog that all MDC fields have automatically been created in the DB. Is there a possibility to disabled that? In your documentation I don't see an attribute for that.
There is a project under https://github.com/mp911de/logstash-gelf that offers an attribute "IncludeFullMdc" for that.

@szerhusenBC In Log4j 2.x, the old MDC is called ThreadContext, and the respective setting for this appender is includeThreadContext.

Thank you for the fast response!


Improve code coverage for new feature or code change in kernel

Is your enhancement proposal related to a problem? Please describe.
There are some new feature or code change after zephyr 2.5 release, and some of those code will also need to be covered. So there will be some more testcase work on this, list below:
Code change list:
demand paging:  kernel/mmc.c
device: kernel/device.c
scheduler: kernel/sched.c
Describe the solution you'd like
Need to development/improvement the test case for component mentioned above.
Describe alternatives you've considered
The line/function/branch code coverage reach 100%.
Additional context
Also need to check whether the documentation is also updated to fit those new feature or code changing.

After discussing, we think this is generic, code coverage should be done and does not need an extra enhancement here, so we close it.


github link to stellar docs rather than stellar

Preview is available here:http://developers-pr95.previews.kube001.services.stellar-ops.com


Lambda function refactor

New approach to make lambda functions more flexible and work with complex predicates

Coverage remained the same at 100.0% when pulling d8051a674a4db83c64df3e1c55cb3fc83eae930b on subpx:master into ffa60a58f8aef723369ef1cdbe3e02f1edeef208 on devnixs:master.

Thanks for your help!


Help to use Vertex Texture Fetching

now I have a texA would use in VS, and a texB use in PS.
I have tried declaration like :
SAMPLER2D(texA, 0);    // in VS
...
SAMPLER2D(texB, 0);    // in PS
...
while in C++ using
setTexture(0, hUniformA, ...);
setTexture(0, hUniformB, ...);
unfortunatly, it didn't work.
I also tried to use different stageSlots(0), but failed.
How should I use it correctly with vertex texture fetching?

Slot values are shared between stages. texA, 0 and texB, 1, and then assign texture slots 0, and 1 from C++.

It works now, thanks a lot


Lenovo Smart Clock possible wrong model name in the library

I am using Lenovo Smart Clock with Google Assistant as pictured above - and I am not sure if it is the same as the one in PowerCalc's library [google didn't helped], but maybe different production series broadcast different names?
log entry:
2022-11-13 13:39:14.801 ERROR (MainThread) [custom_components.powercalc.sensors.power] media_player.clock: Skipping sensor setup: Model not found in library (manufacturer: LENOVO, model: Lenovo Smart Clock)

library entry: Smart Clock with Google Assistant

@CloCkWeRX Do you know if this is the same device as you have and provided the measurements for?
If so, we can just add "Lenovo Smart Clock" as an alias in model.json

@pejotigrek that looks a lot like mine.
https://www.thegoodguys.com.au/lenovo-smart-clock-with-google-assist-black-za4r0040au is my specific one; or something very visually similar.
I added it under the general naming to avoid any conflicts with
https://www.jbhifi.com.au/products/lenovo-smart-clock-2-grey

(An alias seems appropriate/sensible)

@pejotigrek that looks a lot like mine. https://www.thegoodguys.com.au/lenovo-smart-clock-with-google-assist-black-za4r0040au is my specific one; or something very visually similar.
I added it under the general naming to avoid any conflicts with https://www.jbhifi.com.au/products/lenovo-smart-clock-2-grey
https://www.lenovo.com/au/en/smart-devices/smart-clock/ is the main site; which calls it a "Smart Clock with Google Assistant"

I've got the very same one, but white ;)
I guess that the entry/alias in library should be filled with info that can be read from the device, and not what is on the site/box exactly - this is the info used for automatic entity creation. correct me if I'm wrong @bramstroker.

Fixed with #1303
Will be in next release.


fix regex expression issue

got issue like below
oar -r 4.12.25 image-consistency-check -n 2269
2023-07-17T10:48:08Z: INFO: check image consistency check job status according  to job id:2269
2023-07-17T10:48:11Z: INFO: quay.io/openshift-release-dev/ocp-release:4.12.25-x86_64
2023-07-17T10:48:11Z: ERROR: https://mastern-jenkins-csb-openshift-qe.apps.ocp-c1.prod.psi.redhat.comjob/image-consistency-check/2269 version is not [4.12.25], please provide correct job id

the regex expr to parse release version from pull spec has problem
oar -r 4.12.25 image-consistency-check -n 2269
2023-07-17T10:59:03Z: INFO: check image consistency check job status according  to job id:2269
2023-07-17T10:59:07Z: INFO: image-consistency-check job: 2269 status is: In Progress

/assign @wewang58
/cc @emmajiafan

/lgtm

/retitle OCPQE-17516 fix regex expression issue


Add keys/values/subtractByKey

In this PR, the keys, values and subtractByKey methods are implemented.

Looks great, thanks for the contribution @jcollado


Inline bots support

It would be nice to have inline bots support, introduced in January 2016 in the Telegram API

New branch: https://github.com/unreal4u/telegram-api/tree/inlineBots

merged https://github.com/unreal4u/telegram-api/tree/inlineBots to master


Added sweeps for number of qubits

Added parameter --num_qubits which allows users to specify either a linear or logarithmic sweep for the number of qubits in run_ft.py and run_bv.py based on user specifications.

 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.


Performance drop after loading a pretrained model.

I am training the model on 1k dataset and decided to split the training into a few so that in each only 10 epochs is processed (I need to share the cluster). By doing so I experienced a drop in WER after the last epoch from one training (WER < 15%) and the first epoch from the next training (WER > 17%) where I load the model from the last epoch of the previous training. In the second training the WER got down to 12.8% but then when third training was started, the WER after first epoch was 14.4%. I tried disabling batch sorting in the first epoch when a pretrained model is loaded, but it didn't help. What can be the cause of this problem?

@maciejkorzepa Have you been able to get the WER% down to 15? If so, do you mind sharing your weights?

Sure. https://drive.google.com/drive/folders/0BwyHNzMwVsM-SXdpdlduTlVTT2c?usp=sharing
WER should be around 12%.

@maciejkorzepa thank you! Sorry, but do you also mind sharing the network architecture that you used? I assume you used 1280 Hidden nodes, 7 layers, and Traditional RNN Bidirectional?

I didn't make a single change in the architecture, so I am using the default sizes.

Been on a bit of a hiatus but am back now! @maciejkorzepa thanks so much for this, I'm going to download and just check the model. Did you just do the librispeech set up, and then hit th Train.lua without modifying parameters? Did you run into any inf costs? What hardware did you run this on?

Actually, I changed some parameters and code. I used for training everything apart from test-clean and test-other. 12% error rate was achieved on test-clean. I got -inf costs almost in each epoch. But as WER kept going down, I didn't think it was a big problem. As for the parameters, maxNorm was set to 100. I ran on 2xK80 with batch size 64. One epoch took almost 8 hours. The change in the code I made was decreasing the batchsize for a few hundred last utterances, as they are some considerably bigger than the rest. So instead of setting batch size ~30-40 for whole training which would reduce the speed of training, I just changed to smaller batch size (24) in the end of an epoch (this is needed for the first epoch when the data is sorted). In DS2 paper, Baidu mentions how they handle long utterances leading to out of memory errors:

and sometimes very deep networks can exceed the GPU memory capacity when processing long utterances. This can happen unpredictably, especially when the distribution of utterance lengths includes outliers, and it is desirable to avoid a catastrophic failure when this occurs. When a requested memory allocation exceeds available GPU memory, we allocate page-locked GPU-memory-mapped CPU memory using cudaMallocHost instead. This memory can be accessed directly by the GPU by forwarding individual memory transactions over PCIe at reduced bandwidth, and it allows a model to continue to make progress even after encountering an outlier.

This solution allows to use much bigger batch size and thus speed up the training. I am wondering whether implementing this in your model would be feasible.
On the other hand, I found that increasing batch size is not desirable when it comes to WER. The smaller the batch size is, the more noisy the gradients are which results helps in getting out from local minima. I did some tests on LibriSpeech 100h and as far as I remember, for batch size 75, the WER stabilized at 58%, for batch size 40 at 52% and for batch size 12 at 42%. I didn't try decreasing the batch size with 1000h as 8h per epoch was already long enough for me :)

@maciejkorzepa you're awesome thanks so much for this!
Honestly the issue here is Torch isn't as memory efficient (especially the RNNs) as Baidus' internal code. But as you said, it's still trainable just takes forever.
I'll download the model and do some checks/update documentation. Are you fine with me using this as the pre-trained network for Librispeech? I do have an LSTM based network training which is much smaller but its hovering around ~20 WER, a WER of 12 is awesome!

@SeanNaren Sure, go ahead! I think I might be able to use 4xK80 for the training soon, I might then try reducing the batch size and see if WER can get any lower...

@maciejkorzepa Sorry, I have a question. I was trying to load your weight but it scored a 99% WER on the test-clean. Are there specific parameters that you used on test.lua?

@nn-learner Maybe your input spectrograms were processed with different parameters? I used:
-windowSize 0.02 -stride 0.01 -sampleRate 16000 -processes 8 -audioExtension flac
I actually didn't manage to run Test.lua due to some error (I don't remember what it was exactly), but my project group tried to run Predict.lua with some samples from test-clean and most of transcriptions were perfect and only a few had some very minor errors (e.g. 'I have' instead of 'I've'), so I assumed that ~12% WER calculated during validation in Train.lua was realistic.

@maciejkorzepa  on what basis did you choose maxNorm as 100?. I went through maxNorm paper (http://www.jmlr.org/proceedings/papers/v28/pascanu13.pdf)  . They mention to take average norm across many updates and choose half or ten times the value of average norm . So, I just wanted to know did you take average norm for 1 complete epoch or multiple epochs and  then went on to take 100 as maxNorm  (though multiple epochs does not make sense because the weights would be tuned to the data and the norm would be less) or did you try different  values for maxNorm and 100 worked out.

@suhaspillai To be honest, I set it to 100 after reading posts from issue #51 and I haven't tried other values since then.

OKay.Thanks

If I am trying to get this eventually working with live audio recordings, do you think its a good idea to add noise to the data and train it again?

@shantanudev, it is a good idea to insert noise into your training data and train on this, however the repo doesn't currently support this.


Cannot read property 'mainModulePath' of undefined

Failed to activate the dev-tools-dark package
Cannot read property 'mainModulePath' of undefined
[Enter steps to reproduce:] 1. ... 2. ... Atom: 1.18.0 x64 Electron: 1.3.15 OS: Ubuntu 16.04.1 Thrown From: dev-tools-dark package 0.5.0 ### Stack Trace Failed to activate the dev-tools-dark package At Cannot read property 'mainModulePath' of undefined TypeError: Cannot read property 'mainModulePath' of undefined at Object.activate (/packages/dev-tools-dark/lib/dev-tools-themes.js:57:69) at Package.module.exports.Package.activateNow (/usr/share/atom/resources/app/src/package.js:253:25) at /usr/share/atom/resources/app/src/package.js:225:38 at Package.module.exports.Package.measure (/usr/share/atom/resources/app/src/package.js:99:21) at /usr/share/atom/resources/app/src/package.js:218:32 at Package.module.exports.Package.activate (/usr/share/atom/resources/app/src/package.js:215:40) at PackageManager.module.exports.PackageManager.activatePackage (/usr/share/atom/resources/app/src/package-manager.js:645:40) at /usr/share/atom/resources/app/node_modules/settings-view/lib/package-manager.js:519:35 at exit (/usr/share/atom/resources/app/node_modules/settings-view/lib/package-manager.js:128:22) at triggerExitCallback (/usr/share/atom/resources/app/src/buffered-process.js:338:17) at /usr/share/atom/resources/app/src/buffered-process.js:359:17 at Socket.<anonymous> (/usr/share/atom/resources/app/src/buffered-process.js:220:15) at emitOne (events.js:101:20) at Socket.emit (events.js:188:7) at Pipe._handle.close [as _onclose] (net.js:493:12) ### Commands 2x -4:13 tree-view:show (atom-workspace.workspace.scrollbars-visible-always) -4:02.3.0 core:paste (input.hidden-input) 2x -3:53.9.0 dev-tools-themes:settingsView (input.hidden-input) -2:56.6.0 window:toggle-dev-tools (div.panels-item) -2:50.5.0 core:confirm (input.hidden-input) -1:05.8.0 dev-tools-themes:settingsView (a.) ### Non-Core Packages atom-autocomplete-php 0.25.6 atom-beautify 0.30.1 atom-runner 2.7.1 atom-shell-commands 1.5.0 dev-tools-dark 0.5.0 file-icons 2.1.7 git-control 0.9.0 language-groovy 0.7.0 node-debugger 1.10.1 php-debug 0.2.4 php-server 0.7.0 script 3.15.0 svn 0.0.13 tabs-to-spaces 1.0.3 trailing-spaces 0.4.0 turbo-javascript 1.4.0 xml-formatter 0.11.0

Just after instalation it complain that atom was not up to date. But update not fix it. Uninstall and install package not helped.

it is https://github.com/agustif/dev-tools-dark/ but it direct to that site for issues.


over-indented match arm

Looks like a straight-up bug and I don't see why it would happen.
     match (ppm, opt_uii) {
-        (PpmSource(s), _) => {
-            // Silently ignores an identified node.
-            let out: &mut Write = &mut out;
-            s.call_with_pp_support(sess, Some(ast_map), box out, |annotation, out| {
-                debug!("pretty printing source code {:?}", s);
-                let sess = annotation.sess();
-                pprust::print_crate(sess.codemap(),
-                                    sess.diagnostic(),
-                                    krate,
-                                    src_name.to_string(),
-                                    &mut rdr,
-                                    out,
-                                    annotation.pp_ann(),
-                                    true)
-            })
-        }
+            (PpmSource(s), _) => {

This is fixed in 0.8.3. Output:
    match (ppm, opt_uii) {
        (PpmSource(s), _) => {
            // Silently ignores an identified node.
            let out: &mut Write = &mut out;
            s.call_with_pp_support(sess, Some(ast_map), box out, |annotation, out| {
                debug!("pretty printing source code {:?}", s);
                let sess = annotation.sess();
                pprust::print_crate(sess.codemap(),
                                    sess.diagnostic(),
                                    krate,
                                    src_name.to_string(),
                                    &mut rdr,
                                    out,
                                    annotation.pp_ann(),
                                    true)
            })
        }
    }


Use Apalache 0.25.10 by default

Closes: #224

Usually the apps keep old data. They provide something like atomkraft data clear to wipe it necessary.

If not (which seems to be the case), then we should remove any old versions before downloading a new one.
For the moment I will keep the older versions. This has the advantage for us of quickly changing versions if we want to test something, without downloading. I will add to the CLI a command to clean the data, as Rano suggested.


Implement initiateMultipleValidatorExits

resolves #1761

Keep initiateValidatorExit for backward reference, it's the same to the spec
Implement initiateMultipleValidatorExits which loop through validator array inside state only 1 time
Spec test goes through initiateMultipleValidatorExits

closing this in favor of #1816   as I think the bigger issue is we loop through validators array in other flows too


Add transcript timestamps and download

Changes

Added "Download" button to export conversation transcript as CSV
Added timestamps display for each message in transcript
CSV includes timestamp, participant role (Agent/User), and message text
Updated transcript UI to show timestamps below each message
Fixed message merging logic to preserve original timestamps

Implementation Details

CSV export handles quote escaping and uses ISO date for filename
Timestamps use 24-hour format with HH:mm:ss
Preserved backward compatibility by making timestamp optional in Transcription interface
Enhanced message merge logic to maintain chronological accuracy

Testing

[x] Verify CSV download contains all messages with correct timestamps
[x] Confirm timestamps display correctly in UI
[x] Test message merging with multiple rapid messages
[x] Validate CSV formatting with messages containing quotes/special chars

Chat Transcript

Chat CSV

@bcherry  I built this for myself and thought it might be something other folks would like. Glad to take a turn on it if it's something you're interested in merging, but not quite the way you like it.
Thanks!


tls_construct_server_key_exchange:internal error / tls_process_server_certificate:length mismatch

We're running into an issue in OpenSSL 1.1.1+ where we're trying to change the key/cert based on SNI and ALPN (the code worked with previous releases). For compat with earlier OpenSSL versions we're using SSL_set_SSL_CTX. The issue only seems to happen when the original context is not TLS 1.3. If the server uses TLS1.3 then everything seems to work out....
The server side reports:

starttls: error:141EC044:SSL routines:tls_construct_server_key_exchange:internal error

Client side reports:

140620744139200:error:1416F09F:SSL routines:tls_process_server_certificate:length mismatch:../ssl/statem/statem_clnt.c:1848:

Test case here: https://gist.github.com/james-callahan/7f021533ad20ed107938885f2304b43e#file-test-server-lua

Can you output the full error data (line number) on the server? There're multiple internal error paths in tls_construct_server_key_exchange. The client is just complaining about bad syntax. The messages don't quite match, which is odd, but if the server tripped over itself producing an adjacent message, that's probably the root problem.

Can you output the full error data (line number) on the server?

I'm not sure why, but there is no line number printed.

That corresponds to this code:
https://github.com/openssl/openssl/blob/1708e3e85b4a86bae26860aa5d2913fc8eff6086/ssl/statem/statem_srvr.c#L2736-L2749
This is a "should never happen" error. My guess is s->s3->tmp.cert->privatekey has ended up being NULL due to something SNI related when it shouldn't be.
If I understand what you wrote you are changing the key/cert by using SSL_set_SSL_CTX. What callback are you using to do that?
Based on the line number for this error it seems you are using 1.1.1 rather than 1.1.1a? It might be worth trying 1.1.1a as there have been numerous defect fixes  - it would be good to rule  those out as a cause for this.

If I understand what you wrote you are changing the key/cert by using SSL_set_SSL_CTX. What callback are you using to do that?

ALPN via SSL_CTX_set_alpn_select_cb (please see the test case in the initial report)

Based on the line number for this error it seems you are using 1.1.1 rather than 1.1.1a? It might be worth trying 1.1.1a as there have been numerous defect fixes - it would be good to rule those out as a cause for this.

Will try when I'm at work on monday

1.1.1a has the same error. It now occurs at ../ssl/statem/statem_srvr.c:2751

ALPN via SSL_CTX_set_alpn_select_cb (please see the test case in the initial report)

Oh, sorry - somehow missed that. Does this patch help?
diff --git a/ssl/statem/statem_srvr.c b/ssl/statem/statem_srvr.c
index e7c11c4bea..791c030fb8 100644
--- a/ssl/statem/statem_srvr.c
+++ b/ssl/statem/statem_srvr.c
@@ -2258,6 +2258,17 @@ WORK_STATE tls_post_process_client_hello(SSL *s, WORK_STATE wst)
                     goto err;
                 }
                 s->s3->tmp.new_cipher = cipher;
+
+                /*
+                 * Call alpn_select callback if needed.  Has to be done after SNI and
+                 * cipher negotiation (HTTP/2 restricts permitted ciphers). In TLSv1.3
+                 * we already did this because cipher negotiation happens earlier, and
+                 * we must handle ALPN before we decide whether to accept early_data.
+                 */
+                if (!tls_handle_alpn(s)) {
+                    /* SSLfatal() already called */
+                    goto err;
+                }
             }
             if (!s->hit) {
                 if (!tls_choose_sigalg(s, 1)) {
@@ -2277,6 +2288,10 @@ WORK_STATE tls_post_process_client_hello(SSL *s, WORK_STATE wst)
         } else {
             /* Session-id reuse */
             s->s3->tmp.new_cipher = s->session->cipher;
+            if (!SSL_IS_TLS13(s) && !tls_handle_alpn(s)) {
+                /* SSLfatal() already called */
+                goto err;
+            }
         }

         /*-
@@ -2299,16 +2314,6 @@ WORK_STATE tls_post_process_client_hello(SSL *s, WORK_STATE wst)
             /* SSLfatal() already called */
             goto err;
         }
-        /*
-         * Call alpn_select callback if needed.  Has to be done after SNI and
-         * cipher negotiation (HTTP/2 restricts permitted ciphers). In TLSv1.3
-         * we already did this because cipher negotiation happens earlier, and
-         * we must handle ALPN before we decide whether to accept early_data.
-         */
-        if (!SSL_IS_TLS13(s) && !tls_handle_alpn(s)) {
-            /* SSLfatal() already called */
-            goto err;
-        }

         wst = WORK_MORE_C;
     }

Does this patch help?

It now fails with error:14201076:SSL routines:tls_choose_sigalg:no suitable signature algorithm from ssl/t1_lib.c:2716

I think this would be the right fix? https://github.com/openssl/openssl/compare/master...james-callahan:7660-alpn_select-cert-change
I'd PR it but I'm having trouble writing a test for it.

I bumped into this as well, while trying to write a Python server to do something similar.  I removed my SNI and info callbacks, and still ended up getting the same error.  Just an ALPN callback that calls SSL_set_SSL_CTX.

(@glyph and I already chatted out-of-band, but for posterity.)
Calling SSL_set_SSL_CTX in the ALPN callback is kinda iffy because that happens after parameter negotiation. HTTP/2's opinions on TLS cipher suites mean you want those resolved first, so you can take that into account. But if you've resolve cipher suites, you're past the point of no return w.r.t. changing certificates and such.
The ClientHello callback is probably best if you want to treat ALPN as a funny SNI.

The ClientHello callback is probably best if you want to treat ALPN as a funny SNI.

As noted in my original post: we are trying to be consistent across OpenSSL 1.0.2 and OpenSSL 1.1.1.
1.0.2 did not have a client hello callback.

The version 1.1.1 is not supported anymore. Closing.


Failed to initialize a channel.

What is the output link of /viaversion dump?
[ViaVersion] Could not paste ViaVersion dump to Hastebin
java.io.IOException: Server returned HTTP response code: 403 for URL: http://hastebin.com/documents
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840) ~[?:1.8.0_101]
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441) ~[?:1.8.0_101]
at us.myles.ViaVersion.commands.defaultsubs.DumpSubCmd$1.run(DumpSubCmd.java:64) [ViaVersion-1.0.3.jar:?]
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71) [server.jar:git-Spigot-21fe707-e1ebe52]
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53) [server.jar:git-Spigot-21fe707-e1ebe52]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_101]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_101]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_101]
Are you using any additional software like BungeeCord? If so, what software and version? (Please list your plugins as well)
I am using Waterfall version Build 99, Spigot 1.8.8 (With fixed /timings command)
Plugins:

AuthMe (My own created, nothing to do with AuthMe on spigot - just the name)
TimedRestart (My own created, for restarting server at certain time)
MySQL (My own API for mysql connection)
ReloadServer (My own plugin for loading plugins from different location than /plugins, ViaVersion is normally loaded on start from /plugins)

How does this error happen? login? Using an item?
You can't join the server, kicked with this error message: https://ctrlv.cz/shots/2017/02/12/4eRS.png
Is there an error in the console? Use pastebin.com. Is there a kick message?
Log of the server: http://pastebin.com/Hssp4QXP
Kick message: https://ctrlv.cz/shots/2017/02/12/4eRS.png

Consider first updating the version to latest, otherwise do any of your plugins do anything with minecraft's server connection?

Maybe, in AuthMe plugin is function for switching server on Waterfall (BungeeCord) by PluginMessaging.

Error log from new version (1.0.4): https://hastebin.com/agugeyedis.bash
Dump: https://hastebin.com/oqogaqinal.vbs

@dobrac That doesn't look like the output from /viaver dump, also might be worth just trying with just viaversion see if it works and add plugins.

It is output from the console, because the command can't be run, it writes this error on that time, when error happens. I can't test it without plugins, that would be nonsense, but the error doesn't happen all times, when I restart it, it can dissapear.

Here is viaversion dump, when the server is running normally: https://gist.github.com/f0124e0bb929a1975fb743ba01523ffe

@dobrac Something is causing it to lock up and I can't work it out from this end because you're using custom plugins, hence the suggestion. I don't think it's particularly hard to copy the server and try it locally or what but that, of course, depends on your configuration.

I think, you don't understand me, the error happens only sometimes and it happens from the start. I don't know, how to test it without plugins, because I can't reproduce the bug.

I can show you the sources of the plugins, but I don't want to publish them anywhere. Maybe, if you have some secret communicator, I can show you the sources via TeamViewer or something simillar.

@dobrac I've had a review of the error and the code in ViaVersion and it might be in relation to players joining before ViaVersion has fully loaded, do you have a full startup log for the error? Does a player try to connect?

In the first message is log of the server startup, here is it again: http://pastebin.com/Hssp4QXP
Actually it is possible, it happens, when servers restart during the day, and people are joining it at high rate. Auths and Lobbys are most used servers with 1000 players online.

If you could try, https://ci.viaversion.com/job/ViaVersion/140/, it would be appreciated. It should now fallback to default Minecraft behaviour if ViaVersion doesn't know everything when they connect.

Thank you, I will try it. I will write here results as soon as spossible.

I tryied it now, while players are trying to connect and it is looking good. I will write in few days after testing, if the same bug will happen again. (If it will happen earlier, I will write then)

@dobrac Thanks :)

I have to say sadly, that it didn't solve the issue :(
Here is the log: https://hastebin.com/zelomofufe.bash

Do you still get this issue? Have you tried with different setups?

If you still get this error could you try latest dev build & request reopen with the error (the old screenshot went away)
Kind regards


Clean period for application

Check and clean application after clean period duration.

https://github.com/laoshanxi/app-mesh/commit/06039be65d67e91e89b1272a1f1c5568eca71351


Create pt_br.json

Tried to make a joke, didn't work. So I just made this one translation more literal.

Thank you for making this translation, I'll put it out in the next update. Sorry for taking so long to do so,

Oh, and I should mention that this translation is slightly out of date, should it be updated I will try to be much more responsive with patching it.


Button links in global Pull requests / Issues pages are messed up

Links to reproduce: Pull requests, Issues. Then click either the Commented or Yours button.
You can see in the screenshot that the href attributes of the original buttons (Created, Assigned, Mentioned and Review requests in the Pull requests page) don't have a space (+) after the archived:false attribute.

This is what it loads if I press one of them:

And this is how it looks with the extension disabled:

I have version <IP_ADDRESS>7 of the extension.
Great work on the project. Keep it up! :)

This was probably introduced in #1883 because if I disable the global-discussion-list-filters the buttons aren't there anymore, and the links are correct.

Indeed, this is due to: const queryRegex = new RegExp((^|\s)?${query}(\s|$)?);, which drops both surrounding spaces when it’s later used in a .replace

That's right, droping one side of the regexp fixes it. There is also an issue in how the is:issues parameter is added for the Issues page (it should be is:issue singular). Here's a possible patch:
diff --git a/source/features/global-discussion-list-filters.tsx b/source/features/global-discussion-list-filters.tsx
index 9147821..7cf3145 100644
--- a/source/features/global-discussion-list-filters.tsx
+++ b/source/features/global-discussion-list-filters.tsx
@@ -5,7 +5,7 @@ import {getUsername} from '../libs/utils';

 function init() {
     const defaultQuery = 'is:open archived:false ';
-    const type = location.pathname === '/issues' ? ' is:issues' : ''; // Without this, the Issues page also displays PRs
+    const type = location.pathname === '/issues' ? ' is:issue' : ''; // Without this, the Issues page also displays PRs
     const links = [
         ['Commented', `commenter:${getUsername()}`],
         ['Yours', `user:${getUsername()}`]
@@ -17,7 +17,7 @@ function init() {
         const link = <a href={`?${url}`} class="subnav-item">{label};

         // Create regex for current query, including possible spaces around it, to drop it in .replace()
-        const queryRegex = new RegExp(`(^|\\s)?${query}(\\s|$)?`);
+        const queryRegex = new RegExp(`${query}(\\s|$)?`);
         const isCurrentPage = queryRegex.test(new URLSearchParams(location.search).get('q'));

         // Highlight it, if that's the current page

I was gonna say that “the space is there for a reason and it can’t be dropped” but there’s no valid situation where the leading space matters (because wowcommenter:bfred-it isn’t a valid query)
So you can open a PR with that

We could also substitute it with a word boundary character (\b) if you're concerned about this. I'll play with it a little bit more and submit a PR once it's ready.

That’s how it was at some point but that also matches user:bfred in user:bfred-it when used after

That’s how it was at some point but that also matches user:bfred in user:bfred-it when used after. The space is the right separator to use, but it shouldn’t also be dropped from both sides.

This is also happening with the current code given that the separators around the query are optional in the regex, given that it's using ?. I've put together a PR that fixes this as well: #1926.
I finally wound up using split + filter + join to remove the query parameter, and it seems to be working well. Thanks for the guidance!


DETECT AU_MEDICARE

As defined by Microsoft-supported entities, the AU_ Medicare number is a unique identifier issued by the Australian Government that enables the cardholder to receive rebates for medical expenses under Australia's Medicare system. Detecting and protecting this type of information is vital because money is involved. In addition, it is also essential that we protect medical privacy. A rebate is a partial refund to someone who has paid too much money. In this scenario, you are entitled to the money because it's yours; therefore, if it gets into the wrong hands, it would be highly detrimental because now this would be considered theft. The AU_Medicare number is a "particular combination of numbers, or letters and numbers, on the card that is applicable only to that person as a person covered by that card." As we know, personally identifiable information is very sensitive, standing alone or in combination with other information, which will identify one unique person. We can detect this if it is 11 digits and follows the format below.
The format is as follows:
Identifiers that may be represented in this namespace include the 11 digit Individual Medicare Card Number and the 10 digit Medicare Card Number.
No OID has been registered for this namespace.
The format of the value of the identifier is 10 or 11 characters, made up of:
8 digits (Medicare card)
the ninth character (the checksum) is a digit
the tenth character (the issue number) is a digit
the eleventh character (the individual reference number) is optional and if included a digit
Source: https://microsoft.github.io/presidio/supported_entities/
Source:https://namespaces.digitalhealth.gov.au/id/medicare-number/index.html#:~:text=The format of the value,issue number)%20is%20a%20digit

@rebekahrobin you need to assign this to yourself, add your team label, and sprint-1 milestone

Hi @claesmk sorry about that. Changes have been fixed. Enjoy your Sunday

Great information and explanation of the AU_Medicare number as well as the consequences concerning rebates were the P.I.I to fall into the wrong hands.


[CHALLENGE SUBMISSION] Challenge 8

Please provide the following information for your submission:
What is your name? (First, Last)
Gabor Gulyas
Where is your GitHub Repo ?(With your challenge solution)
https://github.com/Bhawk90/25days-of-serverless/tree/master/day-8
What Challenge is this for? (Challenge number between 1 and 25)
8
(Optional) Anything else we should know? e.g., language used, location, blog post?
Azure Functions, Azure Table Storage, SignalR and Blazor Web App. I've extended the application with not just showing a status, but a list of open incidents ;)

From all of us on the Cloud Advocacy team at Microsoft, thank you @Bhawk90 for creating this issue!
Have a Happy Holiday season!

THANK YOU FOR YOUR #25DaysOfServerless SUBMISSION
We checked out your repository and are thrilled to say your solution is now listed in our Hall of Fame
Thank you for your contributions!
This issue is now resolved! 🎉


More tweaks

I believe this PR was supposed to go into the develop branch. I'm closing this PR.


Cost differences Azure Cosmos Mongo v3.x and v4

We heard about different Cost differences  between Azure Cosmos Mongo v3.x and v4.
However, there is no specific documentation available.   Can you able to share if any such documentation available ?
If not, please point where we can find details,

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

ID: decbcc41-4077-7618-23d6-fe3accda4970
Version Independent ID: fd8e3621-ffe1-2845-6dbd-fe984e788920
Content: Plan and manage costs for Azure Cosmos DB
Content Source: articles/cosmos-db/plan-manage-costs.md
Service: cosmos-db
GitHub Login: @SnehaGunda
Microsoft Alias: sngun

@anumalasri The RU/s charge or the cost of operations for both versions is the same. We don't have any cost comparison content because the total cost depends on your workload type and the type of queries you are running. The 4.x offers better performance & offers efficient storage & query performance.

#please-close


Tic-Tac-Toe game on DAY-25

Added Tic-Tac-Toe game on Day-25 of the 50_days_50_web_project.Its a simple game

@AnantAgarwaL11 Always update the fork repo and then merge a new PR take care from next time
Good work
Please drop your email id here or in discord

Kudos to you @AnantAgarwaL11


Measure effect of making CORE_GetTick() inline

100 bytes in one 28K projects, 0 bytes in another 14K project.
Shelved for now.


Concurrent in-memory benchmark in C++

Hi,
I am trying to get this concurrent in-memory benchmark work. It works with a single thread but queries fail when I use multiple threads. Any help is appreciated.
The inserts happen in do_inserts  function concurrently. Queries follow the inserts, in do_queries.
Code:
#include <time.h>
#include <thread>
#include <immintrin.h>
#include <tmmintrin.h>
#include <openssl/rand.h>
#include <unistd.h>
#include <chrono>
#include <random>
#include <algorithm>

#include "core/faster.h"
#include "device/null_disk.h"

using namespace std::chrono;
using namespace FASTER::core;

//vectors of key/value pairs in the table and not in the table
std::vector<std::pair<uint64_t, uint64_t>> in_table, not_in_table;

/// This benchmark stores 8-byte keys in key-value store.
class Key {
 public:
  Key(uint64_t key)
    : key_{ key } {
  }

  /// Methods and operators required by the (implicit) interface:
  inline static constexpr uint32_t size() {
    return static_cast<uint32_t>(sizeof(Key));
  }
  inline KeyHash GetHash() const {
    return KeyHash{ Utility::GetHashCode(key_) };
  }

  /// Comparison operators.
  inline bool operator==(const Key& other) const {
    return key_ == other.key_;
  }
  inline bool operator!=(const Key& other) const {
    return key_ != other.key_;
  }

 private:
  uint64_t key_;
};

/// This benchmark stores an 8-byte value in the key-value store.
class Value {
 public:
  Value()
    : value_{ 0 } {
  }

  Value(const Value& other)
    : value_{ other.value_ } {
  }

  Value(uint64_t value)
    : value_{ value } {
  }

  inline static constexpr uint32_t size() {
    return static_cast<uint32_t>(sizeof(Value));
  }

  friend class ReadContext;
  friend class UpsertContext;
  friend class RmwContext;

 private:
  union {
    uint64_t value_;
    std::atomic<uint64_t> atomic_value_;
  };
};

/// Class passed to store_t::Read().
class ReadContext : public IAsyncContext {
 public:
  typedef Key key_t;
  typedef Value value_t;

  ReadContext(uint64_t key)
    : key_{ key } {
  }

  /// Copy (and deep-copy) constructor.
  ReadContext(const ReadContext& other)
    : key_{ other.key_ } {
  }

  /// The implicit and explicit interfaces require a key() accessor.
  inline const Key& key() const {
    return key_;
  }

  // For this benchmark, we don't copy out, so these are no-ops.
  inline void Get(const value_t& value) { }
  inline void GetAtomic(const value_t& value) { }

 protected:
  /// The explicit interface requires a DeepCopy_Internal() implementation.
  Status DeepCopy_Internal(IAsyncContext*& context_copy) {
    return IAsyncContext::DeepCopy_Internal(*this, context_copy);
  }

 private:
  Key key_;
};

/// Class passed to store_t::Upsert().
class UpsertContext : public IAsyncContext {
 public:
  typedef Key key_t;
  typedef Value value_t;

  UpsertContext(uint64_t key, uint64_t input)
    : key_{ key }
    , input_{ input } {
  }

  /// Copy (and deep-copy) constructor.
  UpsertContext(const UpsertContext& other)
    : key_{ other.key_ }
    , input_{ other.input_ } {
  }

  /// The implicit and explicit interfaces require a key() accessor.
  inline const Key& key() const {
    return key_;
  }
  inline static constexpr uint32_t value_size() {
    return sizeof(value_t);
  }

  /// Non-atomic and atomic Put() methods.
  inline void Put(value_t& value) {
    value.value_ = input_;
  }
  inline bool PutAtomic(value_t& value) {
    value.atomic_value_.store(input_);
    return true;
  }

 protected:
  /// The explicit interface requires a DeepCopy_Internal() implementation.
  Status DeepCopy_Internal(IAsyncContext*& context_copy) {
    return IAsyncContext::DeepCopy_Internal(*this, context_copy);
  }

 private:
  Key key_;
  uint64_t input_;
};

/// Context to delete a key when unit testing.
class DeleteContext : public IAsyncContext {
 private:
  Key key_;

 public:
  typedef Key key_t;
  typedef Value value_t;

  explicit DeleteContext(const Key& key)
    : key_{ key }
  {}

  inline const Key& key() const {
    return key_;
  }

  inline static constexpr uint32_t value_size() {
    return Value::size();
  }

 protected:
  /// The explicit interface requires a DeepCopy_Internal() implementation.
  Status DeepCopy_Internal(IAsyncContext*& context_copy) {
    return IAsyncContext::DeepCopy_Internal(*this, context_copy);
  }
};

/// Key-value store, specialized to our key and value types.
using store_t = FasterKv<Key, Value, FASTER::device::NullDisk>;

uint64_t ct;

double elapsed(high_resolution_clock::time_point t1, high_resolution_clock::time_point t2) {
	return (duration_cast<duration<double>>(t2 - t1)).count();
}

void do_inserts(std::vector<std::pair<uint64_t, uint64_t>>& v, uint64_t start, uint64_t n, store_t *table) {
  auto callback = [](IAsyncContext* ctxt, Status result) {
    assert(result == Status::Ok);
  };

  table->StartSession();
  for(uint64_t i = start; i < start + n; ++i) {
    UpsertContext context{ v[i].first, v[i].second };
    table->Upsert(context, callback, 1);
  }
  table->CompletePending(true);
  table->StopSession();
}

void do_queries(std::vector<std::pair<uint64_t, uint64_t>>& v, uint64_t start, uint64_t n, bool positive, store_t *table) {
  auto callback = [](IAsyncContext* ctxt, Status result) {
    assert(result == Status::Ok);
  };
  table->StartSession();
  for(uint64_t i = start; i < start + n; ++i) {
    ReadContext context{ v[i].first };
    Status result = table->Read(context, callback, 1);
    if((result == Status::Ok) != positive) {
	    ct++;
	    if(positive)
		    printf("False negative query\n");
	    else
		    printf("False positive query\n");
	    exit(0);
    }
  }
  table->StopSession();
}

void do_removals(std::vector<std::pair<uint64_t, uint64_t>>& v, uint64_t start, uint64_t n, store_t *table) {
	auto callback = [](IAsyncContext* ctxt, Status result) {
		assert(result == Status::Ok);
	};
  table->StartSession();
	for(uint64_t i = start; i < start + n; ++i) {
		DeleteContext context{ v[i].first };
		Status result = table->Delete(context, callback, 1);
		if (result != Status::Ok) {
			printf("Failed delete\n");
			exit(0);
		}
	}
  table->CompletePending(true);
  table->StopSession();
}

//void do_mixed(std::vector<std::pair<uint64_t, uint64_t>>& v, uint64_t start, uint64_t n, store_t *table) {

	//for(uint64_t i = start; i < start + n; ++i)
		//if(table.contains(v[i].first)) {

			//table.erase(v[i].first);
		//} else table.insert(v[i].first, v[i].second);
//}

int main (int argc, char** argv) {
	if (argc != 3) {
		fprintf(stderr, "Specify the log of the number of slots in the table and the number of threads to use.\n");
		exit(1);
	}

	uint64_t tbits = atoi(argv[1]);
	uint64_t threads = atoi(argv[2]);
	uint64_t N = (1ULL << tbits) * 0.95;

  	store_t table { (1ULL << tbits),<PHONE_NUMBER>4, "" };

	srand(time(NULL));

	//Generating vectors of size N for data contained and not contained in the tablea
	uint64_t *vals = (uint64_t*)malloc(N * 2 * sizeof(uint64_t));
	RAND_bytes((unsigned char *)vals, sizeof(*vals) * N * 2);
	uint64_t *other_vals = (uint64_t*)malloc(N * 2 * sizeof(uint64_t));
	RAND_bytes((unsigned char *)other_vals, sizeof(*other_vals) * N * 2);
	for (uint64_t i = 0; i < N * 2; i += 2) {
		in_table.push_back({vals[i], vals[i + 1]});
		not_in_table.push_back({other_vals[i], other_vals[i + 1]});
	}

	printf("INSERTIONS\n");

	uint64_t splits = 19;

	N -= N % splits;
	while(in_table.size() % (2 * splits * threads)) {
		in_table.pop_back();
		not_in_table.pop_back();
	}

	uint64_t size = N / splits / threads;
	ct = 0;

//	exit(0);

	high_resolution_clock::time_point t1, t2;

	t1 = high_resolution_clock::now();

	std::vector<std::thread> thread_list;
	for(uint64_t i = 0; i < splits; ++i) {

		//t1 = high_resolution_clock::now();

		for(uint64_t j = 0; j < threads; j++)
			thread_list.emplace_back(do_inserts, std::ref(in_table), (i * threads + j) * size, size, &table);
		for(uint64_t j = 0; j < threads; j++)
			thread_list[j].join();

		//t2 = high_resolution_clock::now();

		//printf("%f\n", size * threads / elapsed(t1, t2));
		thread_list.clear();
	}

	t2 = high_resolution_clock::now();
	printf("%f\n", N / elapsed(t1, t2));

	printf("Percent of failed inserts: %f\n", ((double)ct) / N);
	printf("Total inserts: %ld\n", N);

//	exit(0);

	printf("\nQUERIES\n");

	std::mt19937 g(__builtin_ia32_rdtsc());
	std::shuffle(in_table.begin(), in_table.end(), g);

//	exit(0);

	uint64_t val;
	t1 = high_resolution_clock::now();

	ct = 0;

	for(uint64_t i = 0; i < threads; ++i)
		thread_list.emplace_back(do_queries, std::ref(not_in_table), i * N / threads, N / threads, false, &table);
	for(uint64_t i = 0; i < threads; ++i)
		thread_list[i].join();

	t2 = high_resolution_clock::now();
	printf("Negative queries: %f /sec\n", N / elapsed(t1, t2));
	printf("Error rate: %f\n", ((double)ct) / N);
	thread_list.clear();

//	exit(0);

	t1 = high_resolution_clock::now();

	ct = 0;

	for(uint64_t i = 0; i < threads; ++i)
		thread_list.emplace_back(do_queries, std::ref(in_table), i * N / threads, N / threads, true, &table);
	for(uint64_t i = 0; i < threads; ++i)
		thread_list[i].join();

	t2 = high_resolution_clock::now();
	printf("Positive queries: %f /sec\n", N / elapsed(t1, t2));
	printf("Error rate: %f\n", ((double)ct) / N);
	thread_list.clear();

//	exit(0);

	printf("\nREMOVALS\n");

	std::vector<std::pair<uint64_t, uint64_t>> removed, non_removed;

	for(uint64_t i = 0; i < N / 2; ++i) removed.push_back(in_table[i]);
	for(uint64_t i = N / 2; i < N; ++i) non_removed.push_back(in_table[i]);

	shuffle(removed.begin(), removed.end(), g);
	shuffle(non_removed.begin(), non_removed.end(), g);

	t1 = high_resolution_clock::now();

	ct = 0;

	for(uint64_t i = 0; i < threads; ++i)
		thread_list.emplace_back(do_removals, std::ref(removed), i * N / 2 / threads, N / 2 / threads, &table);
	for(uint64_t i = 0; i < threads; ++i)
		thread_list[i].join();

	t2 = high_resolution_clock::now();
	printf("Removals: %f /sec\n", (N / 2) / elapsed(t1, t2));
	printf("Number of failed removals: %ld\n", ct);
	printf("Percent of failed removals: %f\n", ((double)ct) / (N / 2));
	thread_list.clear();

	shuffle(removed.begin(), removed.end(), g);

	t1 = high_resolution_clock::now();

	ct = 0;

	for(uint64_t i = 0; i < threads; ++i)
		thread_list.emplace_back(do_queries, std::ref(removed), i * N / 2 / threads, N / 2 / threads, false, &table);
	for(uint64_t i = 0; i < threads; ++i)
		thread_list[i].join();

	t2 = high_resolution_clock::now();
	printf("Negative queries after removals: %f /sec\n", N / elapsed(t1, t2));
	printf("Error rate: %f\n", ((double)ct) / (N / 2));
	thread_list.clear();

	t1 = high_resolution_clock::now();

	ct = 0;

	for(uint64_t i = 0; i < threads; ++i)
		thread_list.emplace_back(do_queries, std::ref(non_removed), i * N / 2 / threads, N / 2 / threads, true, &table);
	for(uint64_t i = 0; i < threads; ++i)
		thread_list[i].join();

	t2 = high_resolution_clock::now();
	printf("Positive queries after removals: %f /sec\n", N / elapsed(t1, t2));
	printf("Error rate: %f\n", ct * 2 / (double)N);
	thread_list.clear();

/*
	printf("\nMIXED WORKLOAD, HIGH LOAD FACTOR\n");

	for(uint64_t i = 0; i < N; ++i) in_table.push_back(not_in_table[i]);

	shuffle(in_table.begin(), in_table.end(), g);

	t1 = high_resolution_clock::now();

	for(uint64_t i = 0; i < threads; ++i)
		thread_list.emplace_back(do_mixed, std::ref(in_table), i * 2 * N / threads, 2 * N / threads);
	for(uint64_t i = 0; i < threads; ++i)
		thread_list[i].join();

	t2 = high_resolution_clock::now();
	printf("Mixed operations at high load factor: %f /sec\n", 4 * N / elapsed(t1, t2));
	thread_list.clear();*/
}

Output:
$ numactl -N 1 -m 1 ./main 26 1
INSERTIONS
3269896.343091
Percent of failed inserts: 0.000000
Total inserts: 63753417

QUERIES
Negative queries: 11241313.049951 /sec
Error rate: 0.000000
Positive queries: 5784638.906902 /sec
Error rate: 0.000000

REMOVALS
Removals: 3719529.748754 /sec
Number of failed removals: 0
Percent of failed removals: 0.000000
Negative queries after removals: 24142069.168804 /sec
Error rate: 0.000000
Positive queries after removals: 12307129.761754 /sec
Error rate: 0.000000

$ numactl -N 1 -m 1 ./main 26 2
INSERTIONS
5530393.533658
Percent of failed inserts: 0.000000
Total inserts: 63753417

QUERIES
Negative queries: 22931525.994402 /sec
Error rate: 0.000000
False negative query
Segmentation fault (core dumped)

$ numactl -N 1 -m 1 ./main 26 4
INSERTIONS
8419470.173530
Percent of failed inserts: 0.000000
Total inserts: 63753417

QUERIES
Negative queries: 42938471.121069 /sec
Error rate: 0.000000
False negative query

Can you try using the code in branch cc-lmhc? We haven't merged that yet but some bugs are fixed there.  Also tagging @kkanellis who had been working on CC recently.

Hi @badrishc ,
I tried the cc-lmhc branch and still seeing a seg fault while querying for items that are inserted. Is there documentation to understand the CC API?
I have written this benchmark by looking at other benchmarks and tests in the CC directory.
Is this the right way to perform inserts using multiple threads? Because queries work when using a single thread.
  auto callback = [](IAsyncContext* ctxt, Status result) {
    assert(result == Status::Ok);
  };

  table->StartSession();
  for(uint64_t i = start; i < start + n; ++i) {
    UpsertContext context{ v[i].first, v[i].second };
    table->Upsert(context, callback, 1);
  }
  table->CompletePending(true);
  table->StopSession();
}

We have a detailed benchmark program here: https://github.com/microsoft/FASTER/blob/master/cc/benchmark-dir/benchmark.cc
Does that not work for you?

Yes, benchamark.cc works on the master branch. And I have tried to write my own drive code looking at the benchmark.cc.
But there's probably something missing in my driver code.
From what I understand, to perform multi-threaded inserts, you start a session and then perform upserts. Every thread then performs completePending and then stop the session.
Is there documentation to understand what these API calls mean? I would appreciate any help to understand what's missing from my driver code that I have pasted in the initial comment.
Thanks!

Upon a brief, comparison, you seem to be missing the periodic thread refresh in the do_query loop. Threads need to call refresh for the epoch periodically. See benchmark.cc for example, and our research paper for details w.r.t. epoch protection.
      if(idx % kRefreshInterval == 0) {
        store->Refresh();
        if(idx % kCompletePendingInterval == 0) {
          store->CompletePending(false);
        }
      }

Hi @badrishc , I tried this. It is still giving me seg fault when I am using 4 threads.

I cannot run your code as it seems to be working only on non-Windows. You can try to debug and put breakpoints to see what is the source of the crash.


Timer sum double

This is the continuation of:
https://github.com/rackerlabs/blueflood/pull/440
Chinmay asked for some changes, and Tilo asked me to do them while she is at Rax.io for the week.
The only part of this PR that still needs to be reviewed is this:
https://github.com/rackerlabs/blueflood/commit/24ecd6ed98ca559830c8937c6a7da48d050ae681

Coverage decreased (-0.08%) to 52.76% when pulling 24ecd6ed98ca559830c8937c6a7da48d050ae681 on timer-sum-double into 7937a0bd4136e22340664ae2bb2a0b76a96865e7 on master.

Coverage decreased (-0.06%) to 52.78% when pulling be58173ac520987ea2ce1f014af55b1bfc83173f on timer-sum-double into 7937a0bd4136e22340664ae2bb2a0b76a96865e7 on master.

+1


glvd: implement minimum viable triage feature

for glvd, we need a way to set a state for cves that hides them from the default view
there are many old cves that are technically vulnerable, but in practice they are either fixed or not considered as an actual vulnerability.
we need some sort of triage feature. this requires changes to the database, and it requires some sort of writable api (so far our api is read-only on purpose to avoid having to deal with authn/authz)

related: https://github.com/gardenlinux/glvd-contrib/commit/d815419b86804dac49b9cea3b52a26f56bb74d3b

Related:
Add a wrapper script to run the triage more easily:

https://github.com/gardenlinux/glvd-triage-cli/commit/4b1e554402981d49ea39e2983fd985d6a7ea7457
https://github.com/gardenlinux/glvd-triage-cli/commit/9034fb9fcf2f47aff9aaeca322443064bbd54caf

Local test setup

https://github.com/gardenlinux/glvd-triage-cli/commit/c1f0dd58392c517e1b0cee5fdc6bd6d2caa60fc0
https://github.com/gardenlinux/glvd-triage-cli/commit/49f458029a1f5c21b150dff61b6c3170ab8337c0


env: ruby_executable_hooks: No such file or directory

$ BUNDLE_GEMFILE=.fastlane/Gemfile.fastlane bundle exec fastlane -h
env: ruby_executable_hooks: No such file or directory

$ sudo gem install executable-hooks --bindir /usr/local/bin
Ignoring sqlite3-1.3.11 because its extensions are not built.  Try: gem pristine sqlite3 --version 1.3.11
Building native extensions.  This could take a while...
ERROR:  Error installing executable-hooks:
        ERROR: Failed to build gem native extension.

    current directory: /Library/Ruby/Gems/2.0.0/gems/executable-hooks-1.3.2/ext/wrapper_installer
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby -r ./siteconf20170825-49278-rus3tb.rb extconf.rb
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1381:in `initialize': Operation not permitted - /usr/bin/ruby_executable_hooks (Errno::EPERM)
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1381:in `open'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1381:in `block in copy_file'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1380:in `open'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1380:in `copy_file'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:477:in `copy_file'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:394:in `block in cp'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1558:in `block in fu_each_src_dest'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1574:in `fu_each_src_dest0'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1556:in `fu_each_src_dest'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:393:in `cp'
        from /Library/Ruby/Gems/2.0.0/gems/executable-hooks-1.3.2/lib/executable-hooks/wrapper.rb:52:in `install_from'
        from extconf.rb:18:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/executable-hooks-1.3.2 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-16/2.0.0/executable-hooks-1.3.2/gem_make.out

This looks like an issue with your ruby installation, rather than anything to do with Bundler specifically?

@segiddins, don't know. Maybe someone from here knows.
Is bundle using ruby_executable_hooks from PATH?

That's a gem that I think inserts itself into the executable shims that RubyGems creates, you can try running gem pristine --all --only-executables to regenerate those shims from scratch

@segiddins, anyway it's not a bundler issue. Made an issue here:
https://github.com/rvm/executable-hooks/issues/24
Also, prestine doesn't support --bindir:
https://github.com/rubygems/rubygems/issues/1997
Thank you!


Linux: Make GTK go dark as well following org.freedesktop.appereance setting

Use case

Install a Linux distro with GNOME
Run GNOME Wayland
Change to dark theme via gnome-settings (not via tweaks)
See that app goes dark, but CSD titlebar does not

org.freedesktop.appereance setting key is a key that expects the app/toolkit handle dark/light behavior, GTK does not do this and its not the Desktop Environments job to set a dark GTK theme, so GNOME doesn't do that.
Screencast dari 2023-09-25 01-12-36.webm
Other places where this behaviour is as expected

Chromium
Firefox
Libadwaita apps
Libhandy apps
LibreOffice
Qt with the QGnomePlatform plugin
Qt with the QGTKTheme plugin

Proposal
Make GTK select dark theme when org.freedesktop.apperance is set to prefer-dark, similarly when it is set to prefer-light

Hello! How do I get this counter app?

https://github.com/flutter/flutter/issues/92261
ah found underlying issue

Thanks for the update. Labeling this as a proposal for team's input and attention.

cc @robert-ancell

Tested here with the default flutter app (i.e. flutter create foo) and the title bar changes to match the system theme. The title bar is 100% rendered by GTK, so Flutter doesn't have any control of the colour used.
It seems like there must be something different in your environment / GTK or application that is stopping this from occurring. Things that might be worth trying:

Running the default flutter app.
Building a trivial GTK application to check if that is any different.
Trying your app in a different Linux (e.g. via a VM).

@robert-ancell Sorry I am late, I had been busy.
May I know what Distro you has been using?
The new dark theme setting that is supported by GNOME, does not in anyway, change GTK theme settings. It is expected that apps/frameworks listen to this new setting, that is the org.freedesktop.appereance setting to setup everything themselves.

so Flutter doesn't have any control of the colour used.

This is exactly the issue. Going back to the "setup everything themselves" part, GTK does not do this as a framework, GTK devs expect other apps or frameworks that extend on GTK to do this, i.e GNOME's libhandy forg GTK 3 and GNOME's libadwaita for GTK 4. If you see Flutter changing Wayland titlebar CSD (Flutter as a wayland client on GNOME), that's an unsupported Ubuntu downstream

Screencast dari 2023-10-11 18-45-25.webm

So issue here is twofold

Flutter doesn't listen to org.freedesktop.appereance, so it itself doesn't go dark : https://github.com/flutter/flutter/issues/92261
GTK doesn't go dark


Add Authorization in Kubernetes Hardening Guide

This is Authorization Section of Kubernetes hardening guide which has been under discussion in SIG-Security-Docs https://github.com/kubernetes/sig-security/issues/30 .

@aj11anuj Thanks, I've made some changes by checking with grammarly.

/remove-lifecycle stale

@divya-mohan0209 Yeah I'm currently working on the Resource Limits topic for the Hardening Guide. Thanks for the pointing out the Kubernetes style guide . I will make the changes in this doc according to it.

Hello @ashish493, checking in on the updates for the PR. Is this still being worked upon?

Hi @divya-mohan0209
Yeah, I've made the changes locally and will update this PR within this weekend. Sorry for the delay, was occupied in the release for my company.

Thanks @reylejano for reviewing, I've updated the changes according to it.
@divya-mohan0209 I've updated the content according to Kubernetes style guide.

@ashish493 : Please could you advise if you're able to address the suggestions made by @sftim in this review?

@divya-mohan0209 need some more time for those changes. We have sig-security-docs meeting this thursday. I will ask for some help for proceeding further. After that I will update my progress here.

@ashish493 What's the plan for this PR moving forward? Does it require more refinement, is it ready for review (pending review comments), or are we at the stage where this can be closed?

@dipesh-rawat Yeah, it needs a little refinement. I couldn't give much time to it because of some personal issues. I will definitely try to do it soon. If it comes to a point where I won't be able to do it, then I will definitely pass this on to sig-security-docs for further enhancement.

@ashish493 Thank you for your efforts! Since there has been no progress on this PR, I'll be closing it out. In the event that you'd like to pass it on to SIG Security Docs and reopen it, please feel free to do so whenever you have the bandwidth.
/close


Add output format options to the mpg123 decoder

Relevant issue: https://github.com/TooTallNate/node-lame/issues/52
Previous PR: https://github.com/TooTallNate/node-lame/pull/83
First call mpg123_format_none to clear the output format table, then call mpg123_format to set the output format based on the option parameter of the Decoder constructor.
Encoding table: https://github.com/TooTallNate/node-lame/blob/master/deps/mpg123/src/libmpg123/mpg123.h.in#L348-L388
mpg123_format_none: https://www.mpg123.de/api/group__mpg123__output.shtml#ga931ca238347de394901c3baa13e7a8f8
mpg123_format: https://www.mpg123.de/api/group__mpg123__output.shtml#gadad5794afc300a997e517dbe397dc2c7
Inspired by: https://sourceforge.net/p/mpg123/mailman/message/25123550/

Looks great!

I think this means we don't have instantiate and format a new instance of Speaker every time.
We should be able to create one instance with the fixed format given to the lame decoder output.


Impl AsRef<[u8]> for Hrp

In our project we would like to have direct access to the internal buffer of the Hrp struct rather than going through the ByteIter first. Thanks.

I think I would prefer a dedicated as_bytes() -> &[u8] method and a dedicated as_str() -> &str method, rather than using the AsRef trait.
The reason is that I don't think it's obvious that the HRP type should have [u8] as its AsRef target. I think users could just as easily expect the target to be str. So we shouldn't use the trait, we should use explicit method names.

I'm fine with that :+1:

Can you close this in favour of #145?


Use Swagger UI as http client

This may be useful for hands-on debugging and manual registration.

Added to v1.0.0-beta.5:

Link to Swagger UI on service root http endpoint
Proxy openapi specs and appending server basepath


Updated example in readme (2.0.0rc7 compatibility)

Addresses #127

We can't currently support external PRs, so I've pulled in these changes (and added more on top of them) in #131


EDA figures + code

Many figures are get cut between pages in the PDF document, which makes it hard to read. Also, it would be helpful to summarize all the EDA, and at least connect the main findings between each plot. There are many figures so this would be helpful.

Thanks @abaghela, agreed. The PDF was a last resort because the figures were too large to be previewed as .md file in GitHub D:
@syadk I think these issues will be addressed in the pared-down version you are creating based on what we discussed in the lab. Hopefully the smaller EDA document can be exported as a markdown file instead of a PDF.

@syadk also, based on this feedback I think you should replace the current EDA notebook with the updated one you create.

@sbabicki I created a .py script that saves the two figures we discussed as png's. I assumed that the 5th script (Mo) would produce the markdown/notebook with a small description of what the images are showing (which I'll provide him). Let me know if I've misunderstood what my script 3 should be doing


PXD009219, KeyError: ['IbaqNorm']

PXD009219, KeyError: ['IbaqNorm'] when running compute_ibaq.py

If you pass the --normalize it will work, @WangHong007 problably would be good to make the IbaqNorm optional depending on the parameter --normalize.

Fixed.