npm WARN deprecated<EMAIL_ADDRESS>1.2.0 should have been a major version bump

I am getting "npm WARN deprecated<EMAIL_ADDRESS>1.2.0 should have been a major version bump" whenever i try to create a new Angular Application.I have refered this "ng new error #11219". But my node and npm version are 10.5.0 and 6.1.0 and i am using windows version 10 (64-bit). Below is the error i am getting
$ ng new my-app
CREATE my-app/angular.json (3548 bytes)
CREATE my-app/package.json (1310 bytes)
CREATE my-app/README.md (1022 bytes)
CREATE my-app/tsconfig.json (384 bytes)
CREATE my-app/tslint.json (2805 bytes)
CREATE my-app/.editorconfig (245 bytes)
CREATE my-app/.gitignore (503 bytes)
CREATE my-app/src/environments/environment.prod.ts (51 bytes)
CREATE my-app/src/environments/environment.ts (631 bytes)
CREATE my-app/src/favicon.ico (5430 bytes)
CREATE my-app/src/index.html (292 bytes)
CREATE my-app/src/main.ts (370 bytes)
CREATE my-app/src/polyfills.ts (3194 bytes)
CREATE my-app/src/test.ts (642 bytes)
CREATE my-app/src/assets/.gitkeep (0 bytes)
CREATE my-app/src/styles.css (80 bytes)
CREATE my-app/src/browserslist (375 bytes)
CREATE my-app/src/karma.conf.js (964 bytes)
CREATE my-app/src/tsconfig.app.json (194 bytes)
CREATE my-app/src/tsconfig.spec.json (282 bytes)
CREATE my-app/src/tslint.json (314 bytes)
CREATE my-app/src/app/app.module.ts (314 bytes)
CREATE my-app/src/app/app.component.html (1141 bytes)
CREATE my-app/src/app/app.component.spec.ts (989 bytes)
CREATE my-app/src/app/app.component.ts (207 bytes)
CREATE my-app/src/app/app.component.css (0 bytes)
CREATE my-app/e2e/protractor.conf.js (752 bytes)
CREATE my-app/e2e/src/app.e2e-spec.ts (302 bytes)
CREATE my-app/e2e/src/app.po.ts (208 bytes)
CREATE my-app/e2e/tsconfig.e2e.json (213 bytes)
npm WARN deprecated<EMAIL_ADDRESS>1.2.0 should have been a major version bump

<EMAIL_ADDRESS>install C:\Users\lenovo\documents\angular\my-app\node_modules\node-sass
node scripts/install.js

Downloading binary from https://github.com/sass/node-sass/releases/download/v4.9.0/win32-x64-64_binding.node
Download complete
Binary saved to C:\Users\lenovo\documents\angular\my-app\node_modules\node-sass\vendor\win32-x64-64\binding.node
Caching binary to C:\Users\lenovo\AppData\Roaming\npm-cache\node-sass\4.9.0\win32-x64-64_binding.node

<EMAIL_ADDRESS>postinstall C:\Users\lenovo\documents\angular\my-app\node_modules\node-sass
node scripts/build.js

Binary found at C:\Users\lenovo\Documents\angular\my-app\node_modules\node-sass\vendor\win32-x64-64\binding.node
Testing binary
Binary is fine

<EMAIL_ADDRESS>postinstall C:\Users\lenovo\documents\angular\my-app\node_modules@angular\cli
node ./bin/ng-update-message.js

npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
added 1114 packages from 1285 contributors and audited 21861 packages in 265.928s
found 13 vulnerabilities (9 low, 4 high)
run npm audit fix to fix them, or npm audit for details
warning: LF will be replaced by CRLF in .editorconfig.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in .gitignore.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in README.md.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in angular.json.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in e2e/protractor.conf.js.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in e2e/src/app.e2e-spec.ts.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in e2e/src/app.po.ts.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in e2e/tsconfig.e2e.json.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in package-lock.json.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in package.json.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/app/app.component.html.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/app/app.component.spec.ts.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/app/app.component.ts.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/app/app.module.ts.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/browserslist.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/environments/environment.prod.ts.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/environments/environment.ts.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/index.html.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/karma.conf.js.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/main.ts.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/polyfills.ts.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/styles.css.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/test.ts.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/tsconfig.app.json.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/tsconfig.spec.json.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/tslint.json.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in tsconfig.json.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in tslint.json.
The file will have its original line endings in your working directory.

the same warning here

The same.

Hi while installing Angular CLI: 6.0.8 globally in my system i am getting below npm warn.Did anyone got the same?Is this is the reason why i am getting npm WARN deprecated<EMAIL_ADDRESS>1.2.0 should have been a major version bump while creating new angular application.
$ npm install -g @angular/cli
C:\Users\lenovo\AppData\Roaming\npm\ng -> C:\Users\lenovo\AppData\Roaming\npm\no           de_modules@angular\cli\bin\ng

<EMAIL_ADDRESS>postinstall C:\Users\lenovo\AppData\Roaming\npm\node_module           s@angular\cli
node ./bin/ng-update-message.js

npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules@an           gular\cli\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@           1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}           )

<EMAIL_ADDRESS>added 248 packages in 63.666s

the same

same error i'm getting

I am getting the same error since a couple of days. doesn't look like someone found a resolution :(

I guess, I am facing the same error: npm WARN deprecated<EMAIL_ADDRESS>1.2.0 should have been a major version bump

Actuall, looks like this is just a warning.
Its either that I just had to wait for the installation - Or - Upgrading node to the latest version helped I guess.

Guys, that's not an error. That's a warning.

npm WARN deprecated<EMAIL_ADDRESS>1.2.0 should have been a major version bump
npm WARN notice [SECURITY] ws has the following vulnerability: 1 high. Go here for more details: https://nodesecurity.io/advisories?search=ws&version=1.1.2 - Run npm i npm@latest -g to upgrade your npm version, and then npm audit to get more info.
npm WARN notice [SECURITY] debug has the following vulnerability: 1 low. Go here for more details: https://nodesecurity.io/advisories?search=debug&version=2.3.3 - Run npm i npm@latest -g to upgrade your npm version, and then npm audit to get more info.
npm WARN notice [SECURITY] debug has the following vulnerability: 1 low. Go here for more details: https://nodesecurity.io/advisories?search=debug&version=2.2.0 - Run npm i npm@latest -g to upgrade your npm version, and then npm audit to get more info.
npm WARN notice [SECURITY] debug has the following vulnerability: 1 low. Go here for more details: https://nodesecurity.io/advisories?search=debug&version=2.3.3 - Run npm i npm@latest -g to upgrade your npm version, and then npm audit to get more info.
npm WARN notice [SECURITY] debug has the following vulnerability: 1 low. Go here for more details: https://nodesecurity.io/advisories?search=debug&version=2.3.3 - Run npm i npm@latest -g to upgrade your npm version, and then npm audit to get more info.
npm WARN notice [SECURITY] parsejson has the following vulnerability: 1 high. Go here for more details: https://nodesecurity.io/advisories?search=parsejson&version=0.0.3 - Run npm i npm@latest -g to upgrade your npm version, and then npm audit to get more info.
npm WARN notice [SECURITY] tunnel-agent has the following vulnerability: 1 moderate. Go here for more details: https://nodesecurity.io/advisories?search=tunnel-agent&version=0.4.3 - Run npm i npm@latest -g to upgrade your npm version, and then npm audit to get more info.

getting error while creating a project in angular js?
how cn this be resolved

Even when I try to skip this warn and start a server for a project I got some another errors.

Guys those are just warning and not errors..
Your application will work irrespective of those warning.
Use ng serve -o to run your application, it should work fine..

Looks like no one having the answer for that error.... And of course i'm getting the same error....

It's true that it's only a warning but my npm install is taking a ridiculous amount of time to complete.

it's my first app in angular, but the warning dont generate problems in the future?

the same.

Similar warning. I hope it doesn't affect the app later

should I abort with ctrl-C ?

@da45 if you want to skip your command - use Ctrl+C
Also get the same warning. Looks like this package is required by some jest or another packages

I faced similar problem. It was solved after clearing npm cache.
npm cache clean --force.
This should help

@feyex i am still getting the same warning :npm WARN deprecated<EMAIL_ADDRESS>1.2.0 should have been a major version bump.

the same

the same

ditto
C:\Users\blake\Documents\Code\Angular>npm cache clean --force
npm WARN using --force I sure hope you know what you are doing.
You have to appreciate the humor emanating from the npm development staff.
I realize this is just a warning, but it is also a distraction. Why is this warning appearing, will there be any ramifications if the warning is ignored, why is there not a more descriptive message referring to a URL where one can glean more information when determining whether or not to ignore the warning! Yes some warnings are just annoying distractions that can be ignored, but sometimes they also cause minor/major issues that result in wasted time and resources when not addressed up front.
My guess is the warning can be ignored, similar to this warning I am also getting when creating a new Angular :
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
Also spent some time on one thread regarding this fsevents issue and finally came to the conclusion that the warning should not be displayed when running ng on Windows, but then again I could be wrong.
Yes warnings are warnings, but they also cause a lot of grief that could be avoided by simply performing a few more checks in the code producing the warning or by providing a more descriptive response action.
Just my 2 cents worth...:)

the same

go to cmd and type :

try
https://npm.runkit.com/istanbul-lib-hook

do anyone have answer for that question.I am facing problem project is not getting created because of that error

npm WARN deprecated<EMAIL_ADDRESS>1.2.0 , it is just a warning.
try:
$ npm audit fix
I have installed Angular CLI: 6.1.2 not problem in my project
$ node -v
v10.6.0
$ npm -v
6.1.0
$ tsc -v
Version 3.0.1

Just as @blakeguitar has said, it is just a warning. After running npm cache clean --force, try serving your angular project. It should work perfectly.
it worked perfectly.
thanks

try this  : npm i istanbul-lib-hook then npm i

As previously mentioned, that is nothing but an warning , make sure your npm as well as your CLI  is up to date then you should be fine.

i used cmd and run it as administrator then run the following command
"npm install -g istanbul"
works like magic

Closing as it's a third party issue which has been solved.


Erorr when starting app

** (Mix) Could not start application sentix: Sentix.Application.start(:normal, []) returned an error: shutdown: failed to start child: :exec
    ** (EXIT) bad return value: 'Port program /home/ciokan/Projects/_build/dev/lib/erlexec/priv/x86_64-unknown-linux-gnu/exec-port with SUID bit set is not allowed to run without setting effective user!'

@ciokan are you running as root?
I'm coming back to this project tomorrow as there are some incompatibilities I need to fix with Erlang 19, so I'll try figure out what's causing this issue.
I'm actually planning to move away from :exec due to things like this.

I'm not running as root though I tried running it as root to see if there's any difference.

@ciokan what's your setup? OS/Erlang/Elixir versions etc?

@ciokan ok pretty sure I narrowed this down; upstream broke it with a change on their end. I just need to make the dependency a little stricter on versioning - will have a fix for you to try shortly.

No worries mate..just learning elixir myself by trying to replace a python app.

@ciokan wanna try use the version in master and see if it works?


[USM] GoTLSAttachPID: do not error out on already registered binary

…as an error

What does this PR do?

This PR changes the GoTLSAttachPID helper to not error out on already registered binaries. This error can cause tests depending on it to fail if the process monitor attaches the probes before the helper has time to do so. Since the caller of this function wants to ensure the binary is attached, this error should be ignored.
Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


How to use with react-rails

We have a Rails 4 project that's currently using react-rails and rails-assets.org to manage front-end dependencies. We don't have any NPM modules.
Anyone have any idea how to use Draft.js in this type of environment? Would be nice to avoid browserify if possible. React and ReactDOM are already present thanks to react-rails.

cc @zpao @spicyj

If you install draft-js from npm, you should be able to use the compiled files from dist/ which are also available here:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Make sure you have React, ReactDOM, and Immutable exposed as globals.

Ah okay, looks like that worked. Thanks!

hi guys,
could you please be a bit more explicit :) ?
would really need to use draftJS but cannot find any easy tutorial to get it installed on a rails app.
thanks a lot!
Adrien

Should we use browserify for this ? or without it we can implement ?

You can use browserify but that's up to you and your packaging needs. Otherwise as Ben mentioned you can use something like npmcdn to get the dist files with just a <script> tag, just like you would do with any other external resource.

Tried using in my rails app with the following code for the react component file. Using react-rails gem as well.
import React from 'react';
import ReactDOM from 'react-dom';
import {Editor, EditorState} from 'draft-js';
import 'draft-js/dist/Draft.css';

class MyEditor extends React.Component {
  constructor(props) {
    super(props);
    this.onChange = (editorState) => this.setState({editorState});
  }

  state = {
    rootElement: null,
    editorState: EditorState.createEmpty()
  }

  render() {
    return (
      <Editor editorState={this.state.editorState} onChange={this.onChange} />
    );
  }
}

export default MyEditor
and using this to render in rails view:
<%= react_component("MyEditor") %>
Still don't see anything in my view as a result.


Update dependencies

Today we use this dependencies:
"devDependencies": {
    "electron-prebuilt": "^0.37.4",
    "google-closure-compiler-js": "^20160828.0.1",
    "gulp": "^3.9.1",
    "gulp-clean": "^0.3.2",
    "gulp-minify-css": "^1.2.4",
    "gulp-rename": "^1.2.2",
    "jshint": "^2.9.3",
    "vinyl": "^1.2.0" // 2.2.0
  },
  "dependencies": {
    "node-notifier": "^4.6.1" // 5.2.1
}

We can update almost all of them
We can update almost all of them, but it's important to keep our project "safe" (tip: npm audit) :)
I suggest to update for this versions:
gulp-clean: 0.4.0
gulp-minify-css: ? // This package has been deprecated
gulp-rename: 1.4.0
jshint: 2.9.6
vinyl: 2.2.0

For other dependencies can use NCU package to verify this.

I am working on this!

It's your, good luck o/

@r33beers No


Object.observe is obsolete with ES6. Try to find a solution with Proxy

Object.observe(resources.links.actions.resources[actionId].data, function (changes) {
       ^

TypeError: Object.observe is not a function
at C:_Utilisateur\Project\ObjectIn\webofthings.js\plugins\corePlugin.js:70:
12
at arrayEach (C:_Utilisateur\Project\ObjectIn\webofthings.js\node_modules\l
odash\internal\arrayEach.js:15:9)
at Object. (C:Utilisateur\Project\ObjectIn\webofthings.js\node
modules\lodash\internal\createForEach.js:15:9)
at CorePlugin.observeActions (C:_Utilisateur\Project\ObjectIn\webofthings.j
s\plugins\corePlugin.js:69:5)
at CorePlugin.start (C:_Utilisateur\Project\ObjectIn\webofthings.js\plugins
\corePlugin.js:30:26)
at initPlugins (C:_Utilisateur\Project\ObjectIn\webofthings.js\wot-server.j
s:50:14)
at createServer (C:_Utilisateur\Project\ObjectIn\webofthings.js\wot-server.
js:12:3)
at Object. (C:_Utilisateur\Project\ObjectIn\webofthings.js\wot.j
s:2:1)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Module.runMain (module.js:575:10)
at run (node.js:348:7)
at startup (node.js:140:9)

Found that https://github.com/anywhichway/proxy-observe , but seem too heavy

Thanks franckOL. We actually did see that this was deprecated and started experimenting with alternatives. Will report on our findings and hopefully provide a patch soon. For now, the ideal is to stick with the current Node LTS: 4.X which still supports Object.observe().

Hi, What about the pull request.

Sorry about that Franck, we missed the PR. This is really simple and great. I just accepted the PR, thanks a lot!

Reopening as the new Node LTS is now 6 we'll be looking into this.

Running the latest commit in master as of today. Still seeing the Object.observe is not a function issue.

Hi Guys ! Any solution to this problem ? I am going through chapter 7 of webofthings, and I am stuck because of this Object.observe problem when i try to execute the wot.js

Hi guys, we have tested a number of solutions but haven't found a totally nice and simple one yet, we are still working on it but meanwhile I would stick to Node 4.X which supports Object.observe(). (you can install several version of node with NVM)

Any update on this?

Maybe we should work on some suggestions in the community to get them
started. The following may be a useful tutorial to get started.
https://www.bitovi.com/blog/long-live-es6-proxies
On Sat, Jul 1, 2017 at 3:12 PM, logivity<EMAIL_ADDRESS>wrote:

Any update on this?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/webofthings/webofthings.js/issues/3#issuecomment-312415991,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACxalq47R2T3BTiH2RWKw5cQDOMlLpW7ks5sJfFVgaJpZM4Je5gQ
.

Thanks for the ping and sorry for being so incredibly slow on that one. We had a fix (see PR) but there were a few weird behaviours. I'll get back to it asap but feel free to help. I'll start with a look at the link thanks for that.

Hello, @domguinard, i see some evolution on W3C draft on WOT specification, also what is your advice . may be we can use ==> https://github.com/thingweb/node-wot ?

@domguinard We had some previous discussion about the use of ES6 proxies. Another alternative would be the use of event emitters of which I am trying to become more familiar. Any thoughts on this approach?

Hi all, very new to this dev stuff. so dont mind my silly question.
i get this, when 'possibly' using the newest version of Chrome to debug a Mobile device. which i think is on an older version of chrome wrapped in an Industrial Browser.
when using command 'navigator.appVersion.match(/.*Chrome/([0-9.]+)/)[1]' in the dev console with the remote browser connected i get the dev console version. so at this point i cannot interrogate what version of chrome/ind browser. To see if it is a version compatibility issue.
my current plan and its not a great one. is to download and install Chrome from a random guess age in the past and keep downloading older ones until it works. ( i dont like this fix)
Any ideas ?

Hi all, thank you very much for the ideas exposed here. I personally have tries to implement the examples of chapter 7 using nest.js as a server.  During the implementation, we also found the deprecated method Object.observer().
To overcome this problem, I created a proxy variable to watch for changes in the object. Inside the proxy, I created an event emitter to  send an event to the socket connection to perform the send operation to the WebSocket client:
const myEvent = new EventEmitter();
const proxyResource = new Proxy(resourcesJson, {
    get: function(target, prop) {
      console.log({ type: 'get', target, prop });
      myEvent.emit('ws-wot');
      return Reflect.get(target, prop);
    },
    set: function(target, prop, value) {
      console.log({ type: 'set', target, prop, value });

      return Reflect.set(target, prop, value);
    }
  });

One more change to be performed is on the plugins that require to change the proxy variable directly in order to reflect the change over the object:
private simulate(): void {
        this.interval = setInterval(() => {
            proxyResource.pi.sensors.pir.value = !this.model.value;
            this.showValue();
        }, this.localParams.frequency);
        this.logger.log(`Simulated sensor ${this.pluginName} sensor Started!`);
    }

Last step os to establish the WebSocket gateway is formed by a function in charge of accepting connections. Once the WS client connected is able to get data streams from the server once the data is generated.
@WebSocketGateway( { transports: ['websocket'] })
export class EventsGateway /*implements OnGatewayConnection, OnGatewayDisconnect*/{

  @WebSocketServer() server: Server;
  private logger = new Logger(EventsGateway.name);

  handleConnection(client: any, ...args: any[]) {
    this.logger.log(`New Connection:${args [0]}`);
    //this.logger.log(inspect(client))
    this.logger.log(inspect(args[0].url))
    const url = args[0].url;
    this.logger.log(inspect(url));

    client.send('Listening data...');

    myEvent.on('ws-wot', ()=>{
      this.logger.log('Event acquired');
      client.send(JSON.stringify(this.selectedResource(url)));
    });

  }
...

For your consideration, the complete example is here

Hi there,
Maybe not the best solution, but some idea for a simple one.
I used the own resources.json as a simple database.
In the plugin I used readFile and a setInterval to check the value with some frequency.
Then on the actuator router, I used readFile and writeFile to update the value on the json according to the PUT value of the call.
Just another idea.


Add QM9 dataset

add qm9 dataset #402

We should also consider adding the XYZ files into some templates. For this, we would need to update the sampling code to consider XYZ as identifier and then do something like https://gist.github.com/kjappelbaum/a5f855945582c3f00c4bb245e5432bfe
In data_clean would either be a column with the XYZ file or a filepath to the file.
Then we would read this, wrap this into a standardized block and you can have the same kinds of templates.
But, importantly, we might now also resolve the influence of changes in the geometry..
Let's keep this for another PR, but it would be a very useful addition!


Great projects

Just want to say it is great that you write down your thoughts on learning neovim! Starred :)

Thank you very much, it's still work in progress, planning on "releasing" soon.


DotNet Credential should be scoped to a valid region when using CloudFront KeyValueStore

Describe the bug
Error: "Credential should be scoped to a valid region" when attempting to read keys from the CloudFront KeyValueStore.
Might be related to #1097 in the JS AWS-SDK
Expected Behavior
As per AWS CLI, the keys/values are returned from the KeyValueStore
Current Behavior
c# Exception with the Message "Credential should be scoped to a valid region"
Reproduction Steps
The following c# code dementrates the issue. Checked kvarn using AWS CLI and results return as expected.
`
BasicAWSCredentials creds = new BasicAWSCredentials(aws_access_key, aws_secret_key);
        AmazonCloudFrontKeyValueStoreConfig config = new();
        config.SignatureVersion = "v4"; //Tried with and without
        config.RegionEndpoint = RegionEndpoint.USWest1; //Region of the provided keys

        AmazonCloudFrontKeyValueStoreClient kvs = new(creds, config);

        ListKeysRequest request = new()
        {
            KvsARN = kvarn,
            MaxResults = 10
        };

        try
        {
            var result = await kvs.ListKeysAsync(request);
        }
        catch (Exception ex)
        {
            var msg = ex.Message; //Credential should be scoped to a valid region.
        }

`
Possible Solution
Maybe something with signing as per #1097 in the JS AWS-SDK
Additional Information/Context
No response
AWS .NET SDK and/or Package version used

Targeted .NET Platform
.NET Core .8
Operating System and version
Windows 11

@genifycom This is a bug on our side. The CloudFront KeyValueStore service uses SigV4a for signing and our automations systems didn't pick that up and is signing with SigV4 which causes the error you are seeing. We will work to get this addressed so it uses SigV4a.
If you need an immediate work around you can subclass AmazonCloudFrontKeyValueStoreClient and override the CreateSigner to force SigV4a. Below is an example.
public class AmazonCloudFrontKeyValueStoreClientWithSigV4a : AmazonCloudFrontKeyValueStoreClient
{
    public AmazonCloudFrontKeyValueStoreClientWithSigV4a(AWSCredentials creds, AmazonCloudFrontKeyValueStoreConfig config)
        : base(creds, config) { }

    public AmazonCloudFrontKeyValueStoreClientWithSigV4a(AmazonCloudFrontKeyValueStoreConfig config)
        : base(config) { }
    protected override AbstractAWSSigner CreateSigner()
    {
        return new Amazon.Runtime.Internal.Auth.AWS4aSignerCRTWrapper();
    }
}

Since this is using SigV4a you also need to include the AWSSDK.Extensions.CrtIntegration NuGet package for your project.

Thanks so much!

@genifycom The release is completed, please update CloudFrontKeyValueStore nuget package to v3.7.300.28
I've tested it with the same code that you provided which didn't work before this release.

Don't forget to add NuGet AWSSDK.Extensions.CrtIntegration v3.7.300 as a dependency for CloudFrontKeyValueStore v3.7.300.28 otherwise this will not work.
Thanks

I tested with Windows and everything is fine. Under Android (MAUI Android) however
result = await kvs.ListKeysAsync(request); //Gives "The type initializer for 'Aws.Crt.NativeAPI' threw an exception"
The call stack shows nothing useful.
Using the latest:
	<PackageReference Include="AWSSDK.CloudFrontKeyValueStore" Version="3.7.301.11" />
	<PackageReference Include="AWSSDK.Extensions.CrtIntegration" Version="3.7.300.1" />

Oh, I think this is an issue with the CRT library, as far as I know it doesn't support .NET bindings on Android / IOS.
We have a separate issue with the same root cause (https://github.com/aws/aws-sdk-net/issues/2126), I'll close this one and also follow up on the aws-crt-dotnet repo (https://github.com/awslabs/aws-crt-dotnet/issues/90).


⚠ Heritage of Faith Christian Church - Gold Coast has degraded performance

In 0c66097, Heritage of Faith Christian Church - Gold Coast (https://heritageoffaith.com.au) experienced degraded performance:

HTTP code: 200
Response time: 7118 ms

Resolved: Heritage of Faith Christian Church - Gold Coast performance has improved in a05cd9a.


FastPaginate on collection aggregation

on our project, we would like to use this library completely but we are doing collection aggregation and currently you don't support this, is it possible to do this? or should we continue using paginate() for collections?

i've got this type of errors

It doesn't make sense to fastPaginate a collection, since you've already got all the records. There isn't even a paginate method on a collection, so I don't think there should be a fastPaginate.

See also https://github.com/hammerstonedev/fast-paginate/issues/23

Hello @aarondfrancis  , thank you for your quick answer, but there is indeed a paginate method on the collections currently

but you are right that there is no need for fastpaginate as the requests have already been made, thank you for your time and sorry for the stupid question

Hmm that's weird. I'm looking in the source code and I'm not seeing a paginate method.

 I wondered where that was coming from. Thank you for reporting back!


Scoring Log previews

There is a small amount of code to show logs from algorithm results.  We should do this for score algorithm results, too.
Currently, log files are opened in binary mode and at least sometimes throw an error.  This should be fixed.
Additionally, it is possible logs could be really long.  If so, it would be best to only show the last ~100 kb of the log and print a message that we are only showing the end of the log.  There is already a download link for the full file.
This should be done with a general function for showing text files so we can use the same code in both places.

Ideally, for large files, the internal function could show either the beginning or the end of long files.  This would allow reusing such a function to give a preview of results files if we know they are text.

Currently, the log preview is generated via
log = '\n'.join(obj.log.readlines())

but since this is a binary file, it doesn't work.  It doesn't address the other issues, but changing this to
log = '\n'.join(obj.log.open('rt').readlines())

would work, though log = ob.log.open('rt').read() would be a shorter way to do the same thing.


sshnp v5.0.x if connection drops can leave stty in odd state

Describe the bug
The stty settings are changed as the sshnp is run but if the session crashed or terminates it can leave the stty is a un sane state.
Steps to reproduce

Connect to a machine using sshnp
wait for a timeout or kill the process from another session perhaps
not that commands do not have the  character so things look odd
connect to the machine again and the behavour persists
run stty sane things look fine
log off
things of client are still odd
run stty sane on client
things back to normal

Expected behavior
everything remains sane !
Screenshots
cconstab@iotdevice01:~/sshnp$ Connection to localhost closed by remote host.
cconstab@tarial sshnp %
cconstab@tarial sshnp %
cconstab@tarial sshnp %
cconstab@tarial sshnp % sshnp -f @cconstab -t @ssh_1 -h @rv_am  -d iot_device01
2024-01-29 18:37:00.557853 : Resolving remote username for user session
                                                                       2024-01-29 18:37:01.469293 : Resolving remote username for tunnel session
          2024-01-29 18:37:01.469608 : Fetching host and port from srvd
                                                                       2024-01-29 18:37:04.984349 : Sending session request to the device daemon
          2024-01-29 18:37:05.741698 : Waiting for response from the device daemon
                                                                                2024-01-29 18:37:07.262416 : Received response from the device daemon
                 2024-01-29 18:37:07.263310 : Creating connection to socket rendezvous
                                                                                2024-01-29 18:37:07.342179 : Starting tunnel session
    2024-01-29 18:37:08.417122 : Starting user session
                                                      Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-92-generic x86_64)

                                                                                * Documentation:  https://help.ubuntu.com
                             * Management:     https://landscape.canonical.com
                                                                               * Support:        https://ubuntu.com/advantage

                                                                                System information as of Tue Jan 30 02:37:08 AM UTC 2024

                                                   System load:            0.0
                                                                                Usage of /:             43.7% of 31.32GB
                                                                                Memory usage:           16%
                 Swap usage:             0%
                                             Processes:              124
                                                                          Users logged in:        1
                                                                                IPv4 address for ens18: <IP_ADDRESS>
     IPv6 address for ens18: ::4467:a0ff:fe43:8788

                                                   * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
                                                                                just raised the bar for easy, resilient and secure K8s cluster deployment.

                                                                         https://ubuntu.com/engage/secure-kubernetes-at-the-edge

                                                                                Expanded Security Maintenance for Applications is not enabled.

                                                        51 updates can be applied immediately.
                                                                                To see these additional updates run: apt list --upgradable

                  1 additional security update can be applied with ESM Apps.
                                                                            Learn more about enabling ESM Apps service at https://ubuntu.com/esm

          Last login: Tue Jan 30 02:37:09 2024 from <IP_ADDRESS>
cconstab@iotdevice01:~$
cconstab@iotdevice01:~$
cconstab@iotdevice01:~$
cconstab@iotdevice01:~$
cconstab@iotdevice01:~$ ls
a.a             attalk  Colin-snippets   pnp         sshnp                sshnp.old.1  startlosant.sh
                                                                                at_nautel_snmp  AWS     dosshnoports.sh  psshd       sshnp-linux-x64.tgz  sshnp.tgz    ubuntu-22.04.2-live-server-amd64.iso
                                                                                at_talk         bob     drop             sshnoports  sshnp.old            startaws.sh  ubuntu-22.04.2-live-server-amd64.iso1
                                                                                cconstab@iotdevice01:~$ stty sane
cconstab@iotdevice01:~$
cconstab@iotdevice01:~$
cconstab@iotdevice01:~$
cconstab@iotdevice01:~$
cconstab@iotdevice01:~$ ls
a.a             attalk  Colin-snippets   pnp         sshnp                sshnp.old.1  startlosant.sh
at_nautel_snmp  AWS     dosshnoports.sh  psshd       sshnp-linux-x64.tgz  sshnp.tgz    ubuntu-22.04.2-live-server-amd64.iso
at_talk         bob     drop             sshnoports  sshnp.old            startaws.sh  ubuntu-22.04.2-live-server-amd64.iso1
cconstab@iotdevice01:~$
cconstab@iotdevice01:~$
cconstab@iotdevice01:~$
cconstab@iotdevice01:~$
logout
cconstab@tarial sshnp % ls
LICENSE		at_activate	debug		headless	srv		sshnp		systemd
                                                                                README.md	config		docker		install.sh	srvd		sshnpd
                                                      %                                                                               cconstab@tarial sshnp % stty sane
cconstab@tarial sshnp % ls
LICENSE		at_activate	debug		headless	srv		sshnp		systemd
README.md	config		docker		install.sh	srvd		sshnpd
cconstab@tarial sshnp %

Smartphones

sshnp v5.0.1

Were you using an atApplication when the bug was found?
No response
Additional context
No response

Is this resolved @cconstab ?

Still get odd state.if sshnp looses connection
Loose
And have to type
'stty sane'


Add new multi multi data test cases with multiple input variables

Adds Multi-Multi data test cases
close https://github.com/byte-physics/igor-unit-testing-framework/issues/213

Review:
da3fa091 (Add structure and test case prototype function for multi-multi-data tests, 2022-09-08)
Jeep.
f9c54c45 (Adapt tagWave creation to store mmData generator tags with unique dimLabel, 2022-09-08)
Hmm.
77bbfc7f (Add data generator function validity check for mmData Generators, 2022-09-09)
+    FUNCREF TEST_CASE_PROTO_MD fTCmmd = $fullFuncName
+    if(UTF_FuncRefIsAssigned(FuncRefInfo(fTCmmd)))
+        dgenList = CheckFunctionSignatureMDgen(procWin, fullFuncName)
+        return 0
+    endif
+

Newline before this block.
Note to self: CheckFunctionSignatureTC now aborts with an empty generator wave.
62021e62 (Added constants for mode for multi data test cases, 2022-09-09)
Nice find.
9cbaa389 (Add MMD TestCase setup and Call, 2022-09-09)
Does GetMMDataState store GetMMDFuncState waves? If yes the documentation should say so.
ea31c6d9 (Add test case suffix for MMD test cases, 2022-09-09)
+        if(index < genSize)
+            mdFunState[i][%INDEX] = num2istr(index)
+            break
+        else
+            mdFunState[i][%INDEX] = num2istr(0)
+        endif
+    endfor
+
+    return i == numVars
+

That is difficult to follow. How about
for(...)
  [...]
  if(index < genSize)
    mdFunState[i][%INDEX] = num2istr(index)
    return 0
  endif

  mdFunState[i][%INDEX] = num2istr(0)
endfor

  return 1
End

instead?
58d91183 (Introduce StrConstant for test case suffix separator, 2022-09-09)
Okay.
5a181942 (Change GetFunctionTagWave to allow upto numLines tags, 2022-09-09)
Nice.
5ffaab41 (Call data generator only once for MMD test cases, 2022-09-09)
Yes!
4e78d987 (Check MMDataGen tags for correct variable names, 2022-09-12)
+                testRunData[tdIndex][%TAP_SKIP] = num2istr(TAP_IsFunctionSkip(fullFuncName) | markSkip)

Logical or instead for clarity?
c0ee0ce9 (Mark TC with zero sized data generator for SKIP, 2022-09-12)
Juup.
8e9bd0e9 (Rename Dimlabel of TestRunData from TAP_SKIP to SKIP, 2022-09-12)
Unrelated change:
-            ExecuteHooks(TEST_SUITE_BEGIN_CONST, s.procHooks, s.juProps, procWin, procWin)
+            ExecuteHooks(TEST_SUITE_BEGIN_CONST, s.procHooks, s.juProps, procWin, procWin, s.i)

6e21fedc (Count test suite numbers correctly for JUNIT output, 2022-09-12)
Nice find!
3b11806a (Evaluate SKIP in junit as skipped test case, 2022-09-12)
Good!
b9146587 (Replace tap_caseCount with loop index, move into ExecuteHooks function, 2022-09-12)
+1
35c81385 (Determine previousProcwin locally from previous TestRunData index, 2022-09-12)
Should be part of #262 and squashed into the commit introducing previousProcWin.
6e230e8b (Prefer s.i over i in index variable usage in main loop, 2022-09-12)
Okay.
7bda0d56 (Fix: Abort check after MD TC loop was missing, 2022-09-12)
Should be part of #262 and squashed into the commit introducing the bug.
14886829 (Rename tap_skipCase to skip, 2022-09-12)
Should be part of 3b11806a.
9b886b23 (Fix: get wGenerator reference correctly after reentry for tcSuffix, 2022-09-12)
Please squash that into the commit introducing the bug.
7815869b (Add tests for Multi-Multi-Data Test Cases, 2022-09-09)
Can you add these tests to Various.ipf? I would like to reserve VTTE.ipf for test assertion checks.
And can you also verify that the data generator functions are only called once?
3e6a37dd (Add documentation for new feature and changed behavior, 2022-09-12)
+If the TAP directive to skip a test case was placed then the test case is also
+treated to be skipped when JUNIT is enabled.

I think this not desired but can be presuaded otherwise.
+       int64 i3
+      int64 i4
+   EndStructure
+

Wrong indentation.
+If Multi-Multi-Data test cases are combined with functions with background activity the reentry function must have the same
+declaration.
+

declaration -> signature.
change fastest

-> changes

I think this PR also closes #158.

Logical or instead for clarity?

I think a boolean OR is correct here because effectively TAP_IsFunctionSkip() returns a boolean and markSkip is also a boolean and both boolean flags are of the same type "skip".
Should we have some recommendation in the coding convention when to prefer logical ORs?

LGMT.


Adds support for hierarchical roles wildcard '%'

Hierarchical roles in Mesos use the character % as a wildcard to grant permissions to sub roles. This requires IAM abstraction to also encode the character when communicating with Bouncer.
In order to verify the encoded of % is correct, I ran the following script:
import urllib.parse

print(urllib.parse.urlencode({'test':'%'})) # yields: 'test=%25'

@mellenburg can you please give it a look at this?

The IAM does not allow for RIDs that contain the percent character.
$ curl -X PUT -i  --header "Content-Type: application/json" --data '{"description":"lol"}'     localhost:8101/acs/api/v1/acls/dcos:mesos:%25
HTTP/1.1 400 Bad Request
Server: gunicorn/19.6.0
Date: Mon, 27 Nov 2017 10:57:17 GMT
Connection: close
content-type: application/json; charset=UTF-8
vary: Accept
content-length: 115

{"title": "400 Bad Request", "description": "Invalid resource ID: dcos:mesos:%", "code": "ERR_INVALID_RESOURCE_ID"}

Let's talk :).

We need another character for the Meoss hierarchies


v1/card

GET /card
GET /card/:uuid
POST /card
DELETE /card/:uuid

I don't see this filled out with Kysely


[BottomNavigation] Warning: React does not recognize the showLabel prop on a DOM element.

[BottomNavigation] Warning: React does not recognize the showLabel prop on a DOM element.

[x] This is a v1.x issue (v0.x is no longer maintained).
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior
It shouldn't show warning when user tries to use property showLabel or showLabels in bottomNavigation or BottomNavigationAction
Current Behavior
React throwing warning since camelcase attribute is used on dom element
Steps to Reproduce (for bugs)

https://codesandbox.io/s/z235kk70p4

Use BottomNavigationAction inside BottomNavigation
Provide showLabel attribute true
check Chrome Console
There will be warning

Your Environment

Tech
Version

Material-UI
v1.0.0

React
v16.3.2

browser
Latest Chrome

etc

Please provide a full reproduction test case. This would help a lot 👷 .
A live example would be perfect. This codesandbox.io template may be a good starting point. Thank you!

Ok one thing i haven't mentioned above is BottomNavigationAction isn't a direct child of BottomNavigation in my case, there is div inside BottomNavigation, i needed to group icons on left , center and right , hence i added divs to group them.
like this
      <BottomNavigation >
        <div className={styles.leftIcons}>
          <BottomNavigationAction
            label="Back"
            showLabel={true}
            onClick={this.handleBackButtonClick}
          />
        </div>
      </BottomNavigation>

BottomNavigationAction isn't a direct child of BottomNavigation in my case

@shahzad31 In this case, you need to forward the properties from the <div> element to the BottomNavigationAction element. https://material-ui.com/guides/composition/#wrapping-components

it dose not matter if you pass showLabels or showLabel that error will generated any way, even if I pass the props on ButtonNavigationAction.
and also showLabel={true} or showLabel="true" not working.

I had similar issue with components like
const StyledUnitsList = styled(List)<{ showBackground?: boolean }>((props) => ({
  backgroundColor: props.showBackground ? '#f2f2ff' : 'transparent'
}));

whenever I did
const StyledUnitsList = styled(List, {
  shouldForwardProp: (prop) => prop !== 'showBackground',
  name: 'StyledUnitsList'
})<{ showBackground?: boolean }>((props) => ({
  backgroundColor: props.showBackground ? '#f2f2ff' : 'transparent'
}));

error was gone.

any new update on this ?

hey
its probably because the div inside the BottomNavigation
the BottomNavigation need to have only BottomNavigationAction as children and no other components
if you used the div for styles maybe you can give that class for the BottomNavigation and no need this div.
good luck


Retablishing application shortcut badges

There used to be badges on the application shortcut (or at least some code exist to this purpose).
Let's make it work again.

It might just be an issue when using the nova home launcher. To be confirmed.


AZ CLI for DNS Proxy in Firewall Policy

Resource Provider
NFVRP
Description of Feature or Work Requested
dnsSettings is added a new property on firewall policy.
Servers, EnableProxy,RequireProxyForNetworkRules are added as subproperties.
Minimum API Version Required
05-01-2020
Swagger Link
https://github.com/Azure/azure-rest-api-specs/pull/9461
Target Date
June 5

add to S171

@ishaniGupta27 Is the feature added since API 2020-05-01? The swagger haven't got merged into master branch yet. Could you make sure the Azure:network-may-release be ready?

There was a small update on above swagger Pr...
https://github.com/Azure/azure-rest-api-specs/pull/9609
In summary, we need to include fqdns to network rule in policy,


Performance test

Added a simple performance test. There is a slight performance dip on basic records, but it's fairly modest.
Averages are needed here because otherwise v8 gets too good at optimizing things, or memory usage can become a confounding factor.
Average Untracked 10 @ 200 :: 61.7 per iteration
Average Tracked 10 @ 200 :: 83.7 per iteration
If there are future regressions this would be a reasonable baseline.
The models here are simple to avoid overhead incurred by dependancies.

The evented mixin has been deprecated because of the performance hit taken by using hooks like ready() and pals.  In addition, even when silenced, deprecations have a non-trivial performance impact.
Prior to this PR, those hooks were being set whether the model was being actively tracked or not, causing a significant performance hit, at least in Ember 3.14+.
This PR makes it so this overhead is no longer incurred on every single model regardless of its tracking status. It also reduces the deprecations to only those that are activated for tracking.
End result is that it appears that performance is significantly improved.


Fix nova routes

Started a draft to fix issue #36

Host: '_'
     ├─  GET /heartbeat (my_first_nova, my_first_nova_router:-routes/1-fun-0-/1)
     └─  GET / (my_first_nova, my_first_nova_main_controller:index/1)

routes(_Environment) ->
    [#{prefix => "",
      security => false,
      routes => [
                 {"/", fun my_first_nova_main_controller:index/1 , #{methods => [get]}},
                 {"/heartbeat", fun(_) -> {status, 200} end, #{methods => [get]}}
                ]
      }].


Docs: Adds CiliumPodIPPool Special Purpose Selectors

Adds usage of CiliumPodIPPool special purpose selectors to the BGP Control Plane documentation.
Fixes: #28335

@harsimran-pabla thanks for the review and feedback. Can you clarify your statement b/c that sounds like a bug? I would expect exportPodCIDR to be required to advertise ciliumnode.spec.ipam.podCIDRs[]. If you describe is expected behavior, then the API docs should be updated.
Thoughts @YutaroHayakawa @rastislavs

@harsimran-pabla thanks for the review and feedback. Can you clarify your statement b/c that sounds like a bug? I would expect exportPodCIDR to be required for advertising ciliumnode.spec.ipam.podCIDRs[]. If you describe is expected behavior, then the API docs should be updated.
Thoughts @YutaroHayakawa @rastislavs

I was referencing to https://github.com/cilium/cilium/issues/28632#issuecomment-1776434166
I think @gandro  is also considering setting ciliumnode.spec.ipam.podCIDRs[] to be empty when using multi-pool ipam mode.
Having an incorrect value in ciliumnode.spec.ipam.podCIDRs[] is a bug, however, we do need to document what is the correct way to advertise the default pool when multi-pool ipam mode is used.
I don't want to derail this PR, we can open another issue to document default pool advertisement with BGP/mulit-pool ipam.

/test

Is the change relevant to any previous version among the supported branches (1.12/1.13/1.14)? If yes, can you please label the PR for backport accordingly?

A back port is not required for this change since the documented feature was added post 1.15.


Client.exists method returns true without existing database

Hi!
Thank you for great job with this crate! It's really helpful & I'm intensively using it in the production.
I've observed that method exists returns true even if database does not exists.
I'm attaching the screenshot from the debugger. As you see - somewhere deep inside http::status::StatusCode is 404, but method returns true.

Thanks for pointing this out!
This issue has been fixed in the 0.8.33 release.

I'm really impressed with reaction time.
I've tested the correction & everything works well! Love it!


Provide stand-alone MNE-Python installers

This is currently a WIP carried out at https://github.com/hoechenberger/mne-installers
Would be great to get this tested & ready for MNE-Python 1.0

Related issue: https://github.com/conda/constructor/issues/471

I just tested the stand alone installer on my Intel Mac and it worked perfectly. I was able to run the fNIRS tutorial including obtaining the 3D plots.

Windows installers are now also tested on CI, next step is to get a person to run this on their computer ;)

Will test this with Guillaume on Wednesday

@hoechenberger when you get a chance, could you open a PR to MNE-Python to show how you would change the installation docs? That way people can look at the updated instructions and try them out (substituting the current prerelease executable names for the final versions) and we can also work on getting the wording right.

I will work on revised install docs tomorrow.

@hoechenberger are we good to go here, other than Dipy + Python 3.10 if we can get it? I say we wait a few more days to see if they do cut a release, but ultimately the existing dipy + 3.9 works fine

Yes, sorry, I'm behind schedule with the updated docs. But the installer seems to work. I do have a list of things I'd like to improve in the future but there are no blockers. I've tested it on Intel Macs and on Linux, and @GuillaumeFavelier has tested it on Windows 10. I'll test on an M1 Mac this Friday (yes, I know, I've promised to do this for weeks now), but I don't expect any issues.

@larsoner If you want to give it a try: See the assets provided here: https://github.com/hoechenberger/mne-installers/releases/tag/v1.0.0-pre5

@hoechenberger it looks like there has been some dipy activity moving them closer to release, so it would be good to work on the updated instructions soon

on my todo for tomorrow!

@larsoner Would you be available for a review on Monday? Still WIP at my end but I think Monday I will have something to share :)

Yep

FYI Dipy 1.5 is out! https://pypi.org/project/dipy/1.5.0/

😱😱😱

Just a reminder that, as part of this, we should update https://github.com/hoechenberger/mne-installers/blob/main/README.md to hopefully just point people to https://mne.tools/dev/install/index.html


Added 50 move draw rule, fixing #7

This fixes #7 by adding a capture flag to the move history and checking the last 50 moves against that. This capture flag should simplify #12 as well.

Hi @Natycat33, thanks for the PR, I'll review it and let you know if it can be merged :+1: At first glance two things that I want to check:

The Board.is_draw_by_fifty_moves method technically is O(1), but there should probably be a faster method (probably involving keeping track of captures / pawns in the Board?) than checking the 50 last moves each iteration of the game. The chess engine currently is slow enough as is :smiley:
Does the algorithm.ReversibleMove context manager class (required for Minimax look-ahead) work well with the introduced 50 move rule check (I believe it should, currently, due to resetting the move_history).

The algorithm.Minimax class currently only checks for draw by repetition, this could probably be improved by introducing a Board.is_draw() method that checks all types of draws implemented by the Board class (this way the Minimax class does not have to deal with Board internals or be coupled too much to the Board public interface).

Done with the review. I realise this is asking for quite some changes. Feel free to only fix the basic issues (or more if you would like). As this repo is very much still a work in progress (the v1.0.2 is not quite properly semantic :smiley: ), I would be happy to take care of some of the larger design issues myself in the future. Again, thanks for the PR 👍

Thanks for taking the time to review. I fixed all the minor issues you mentioned.
For the is_draw() method you mentioned, this is a bit tricky with stalemates, at least as it's currently being handled. I'm not sure the best way to implement this.
As far as optimizing by keeping track of the last pawn/capture goes, I think it does add complexity for a very minimal benefit. The check only looks at the move history when there is over 50 moves, and generally the number of iterations will be significantly less than 50. It might be worth reworking this in the future once other optimizations have been made, but I think it's a bit premature now.

@Natycat33 thanks for the fixes! Merged :+1:


Re-enable user homedirectory size reporter on our clusters

We removed it in https://github.com/2i2c-org/infrastructure/pull/2973/ considering it could have been responsible for the disk size explosion. It was not, and the disk size explosion has since been fixed (see https://github.com/2i2c-org/infrastructure/issues/2930). So let's re-enable this slowly.

I saw that a pod ran OOM:
  Warning  OOMKilling  22m   kernel-monitor  Memory cgroup out of memory: Killed process 4106305 (dirsize-exporte) total-vm:146020kB, anon-rss:129604kB, file-rss:7564kB, shmem-rss:0kB, UID:1000 pgtables:344kB oom_score_adj:999

# kubectl top pod -A | grep dirsize

aup                               shared-dirsize-metrics-84b5c854d8-vnqks                          1m           105Mi
climatematch                      shared-dirsize-metrics-84b5c854d8-hx2kv                          8m           103Mi
dask-staging                      shared-dirsize-metrics-84b5c854d8-8qsj9                          1m           24Mi
demo                              shared-dirsize-metrics-84b5c854d8-9p6vk                          1m           18Mi
imagebuilding-demo                shared-dirsize-metrics-84b5c854d8-29zs5                          1m           13Mi
mtu                               shared-dirsize-metrics-84b5c854d8-vpbqh                          1m           13Mi
neurohackademy                    shared-dirsize-metrics-84b5c854d8-lvk8h                          12m          112Mi
ohw                               shared-dirsize-metrics-84b5c854d8-hvdqz                          9m           109Mi
staging                           shared-dirsize-metrics-84b5c854d8-6hjkr                          1m           62Mi
temple                            shared-dirsize-metrics-84b5c854d8-29t6p                          3m           110Mi
ucmerced                          shared-dirsize-metrics-84b5c854d8-h422t                          2m           89Mi

Current resource requests:
    resources:
      limits:
        cpu: 50m
        memory: 128Mi
      requests:
        cpu: 10m
        memory: 16Mi

I figure we should increase the request to 128Mi and the limit to 256Mi or similar, what do you think @yuvipanda?

Thanks for catching that, @consideRatio. Opened https://github.com/2i2c-org/infrastructure/pull/3122

This was enabled on september 10, and there's basically no real change in disk space usage:


Minor changes to the block overview template

Often my pool is at 101% because thats just luck, however bright red makes users often think something is wrong
I'd say up to 115% make it orange, its less worrying.

Maybe dropping red altogether isn't a bad idea. After all there is nothing bad about it, that's just how mining works.

It wouldn't be a bad idea, although I'm not sure what to replace it.
Green and orange look a bit odd, and no colours makes the page look more dull.

I think this is okay. < 115% means orange, above red. Merging =)


Not really a bug, but a feature req

Not sure if this is intent and part of design.  When you scroll down in the wallet to view transactions, it collapses the balance and hides it and shows only transactions, that's fine but when you try and use the scroll wheel to go back up and view the balance again you cannot, you have to click the arrow to un-collapse it. Some users might find it a bit annoying, even if its "just a click"

Hey, @nrhs05 we took into consideration your request and already added it to our sprints at the v2 development of Pali.
So expect updates as we release the new versions!


[SCH] Add Aetherflow to Tracked Cooldowns

Just a small changed to add Aetherflow to the tracked cooldowns section.

Hey, thanks for the commit! We require a change log entry in the /parser/<JOB>/index.ts file for any updates / bug fixes that change job logic, and you'll need to upload an avatar to /src/data/avatar and add yourself to the /src/data/CONTRIBUTORS.ts file. If you have any questions, please feel free to drop by our Discord and tag yourself with the Developer role.


Wrong indentation level for sleep function

https://github.com/PacktPublishing/Practical-Python-Programming-for-IoT/blob/0717e92b6c645d4c97ef32d25ad7d46af1ab2c38/chapter02/dweet_led.py#L98
Hey, this line should be indented one more level, or it will never sleep for those two seconds.

Thanks for letting me know. I've fixed the indentation and pushed the change.


Pythran twice as slow compared to native numpy when filling numpy array

Background
We have a function were we cannot use numba as `int()` is not supported yet. Hence we were excited to try pythran! :). This really sped up our code, however, when we perform NumPy operations, such as filling an array, native Numpy is significantly faster. This seems counterintuitive so I wonder whether we are missing something here.

Pythran much slower when we fill numpy arrays
For ease, I also created a google colab notebook here where I put all the code.
Generate some testdata
import random
random.seed(10)
np.random.seed(10)
def test_str():
    arr  = np.random.randint(10000, size=10000000)
    sign = np.random.choice(['+','-'], size=10000000)
    return ' '.join(["{}{}".format(a,b) for a,b in zip(arr, sign)])

The native numpy function
def test1(l):
  numbers = np.array([int(k[:-1]) for k in l.split(' ')])
  signs = np.array([(k[-1] == '+') for k in l.split(' ')]) * 2 - 1
  N = len(numbers)
  arr = np.empty(shape = (N, 3), dtype = np.int64)
  arr[:, 0] = numbers
  arr[:, 1] = signs
  arr[:, 2] = np.arange(N)
  return arr

The Pythran function
Just the same function but with the pythran export :)
%%pythran
#pythran export test2(str)
import numpy as np
def test2(l):
  numbers = np.array([int(k[:-1]) for k in l.split(' ')])
  signs = np.array([(k[-1] == '+') for k in l.split(' ')]) * 2 - 1
  N = len(numbers)
  arr = np.empty(shape = (N, 3), dtype = np.int64)
  arr[:, 0] = numbers
  arr[:, 1] = signs
  arr[:, 2] = np.arange(N)
  return arr

TIMING
ts = test_str()
%timeit test1(ts)
%timeit test2(ts)
1 loop, best of 3: 5.84 s per loop
1 loop, best of 3: 13.7 s per loop

Pythran is MUCH faster when we skip the array filling
def test3(l):
  numbers = np.array([int(k[:-1]) for k in l.split(' ')])
  signs = np.array([(k[-1] == '+') for k in l.split(' ')]) * 2 - 1
  N = len(numbers)
  arr = np.empty(shape = (N, 3), dtype = np.int64)

and:
%%pythran
#pythran export test4(str)
import numpy as np
def test4(l):
  numbers = np.array([int(k[:-1]) for k in l.split(' ')])
  signs = np.array([(k[-1] == '+') for k in l.split(' ')]) * 2 - 1
  N = len(numbers)
  arr = np.empty(shape = (N, 3), dtype = np.int64)

1 loop, best of 3: 6.01 s per loop
The slowest run took 6.42 times longer than the fastest. This could mean that an intermediate result is being cached.
100 loops, best of 3: 6.51 ms per loop

Interestingly, when we add a single fill to the end of the above functions, e.g. arr[:,0] = numbers Pythran will be slower again. Any idea why this occurs? are we missing something?

Keep in mind that pythran does lazy evaluation: when something isn't needed, it's just not computed. In your case, (test4) since signs are not used anywhere, they're not computed by pythran. I'm assuming you're also returning arr otherwise pythran will just skip everything! :)
If you add return(arr,signs), then you force signs to be computed. This way the only difference between test4 and test2 is the filling of arr.

Keep in mind that pythran does lazy evaluation: when something isn't needed, it's just not computed. In your case, (test4) since signs are not used anywhere, they're not computed by pythran. I'm assuming you're also returning arr otherwise pythran will just skip everything! :)
If you add return(arr,signs), then you force signs to be computed. This way the only difference between test4 and test2 is the filling of arr.

@jeanlaroche thanks for the quick response! Indeed then we get:
1000 loops, best of 3: 516 µs per loop
1000 loops, best of 3: 867 µs per loop

So pythran is slower but it's not the array filling, so guess we cannot speed this up with pythran?

@jeanlaroche thanks for the quick response! Indeed then we get:
1000 loops, best of 3: 516 µs per loop
1000 loops, best of 3: 867 µs per loop

So pythran is slower but it's not the array filling, so guess we cannot speed this up with pythran?

Also, you could use numpy.sign()... I'm not sure if I understand what you're doing, but I guess signs is supposed to contain +1 or -1 depending on the sign of numbers, correct?

Also, you could use numpy.sign()... I'm not sure if I understand what you're doing, but I guess signs is supposed to contain +1 or -1 depending on the sign of numbers, correct?

@jeanlaroche  the S=l.split(' ') didn't do much, you're right regarding the signs however the numbers column should not contain them anymore. So 234+ should be 234 in numbers, and + in signs

@jeanlaroche  the S=l.split(' ') didn't do much, you're right regarding the signs however the numbers column should not contain them anymore. So 234+ should be 234 in numbers, and + in signs

Oh, I see, the signs are after the numbers. I missed that.

Oh, I see, the signs are after the numbers. I missed that.

I confirm that it has nothing to do with the creation of the last array ("fill"), which seems fast with Pythran.
import random
import numpy as np
from transonic import boost
from transonic.util import timeit_verbose as timeit

random.seed(10)
np.random.seed(10)

def make_str():
    arr = np.random.randint(10000, size=1000)
    sign = np.random.choice(["+", "-"], size=1000)
    return " ".join(["{}{}".format(a, b) for a, b in zip(arr, sign)])

def parse0(l: str):
    tmp = l.split(" ")
    numbers = np.array([int(k[:-1]) for k in tmp])
    signs = np.array([(k[-1] == "+") for k in tmp]) * 2 - 1
    N = len(numbers)
    arr = np.empty(shape=(N, 3), dtype=np.int64)
    arr[:, 0] = numbers
    arr[:, 1] = signs
    arr[:, 2] = np.arange(N)
    return arr

def parse_nofill(l: str):
    tmp = l.split(" ")
    numbers = np.array([int(k[:-1]) for k in tmp])
    signs = np.array([(k[-1] == "+") for k in tmp]) * 2 - 1
    return numbers, signs, np.arange(len(numbers))

parse0_pythran = boost(parse0)
parse_nofill_pythran = boost(parse_nofill)

ts = make_str()

glo = globals()

norm = timeit("parse0(ts)", globals=glo)
timeit("parse0_pythran(ts)", norm=norm, globals=glo)
timeit("parse_nofill(ts)", norm=norm, globals=glo)
timeit("parse_nofill_pythran(ts)", norm=norm, globals=glo)

gives
parse0                           :     1 * norm
norm = 0.000348 s
parse0_pythran                   :   1.4 * norm
parse_nofill                     : 0.989 * norm
parse_nofill_pythran             :   1.4 * norm

I confirm that it has nothing to do with the creation of the last array ("fill"), which seems fast with Pythran.
import random
import numpy as np
from transonic import boost
from transonic.util import timeit_verbose as timeit

random.seed(10)
np.random.seed(10)

def make_str():
    arr = np.random.randint(10000, size=1000)
    sign = np.random.choice(["+", "-"], size=1000)
    return " ".join(["{}{}".format(a, b) for a, b in zip(arr, sign)])

def parse0(l: str):
    tmp = l.split(" ")
    numbers = np.array([int(k[:-1]) for k in tmp])
    signs = np.array([(k[-1] == "+") for k in tmp]) * 2 - 1
    N = len(numbers)
    arr = np.empty(shape=(N, 3), dtype=np.int64)
    arr[:, 0] = numbers
    arr[:, 1] = signs
    arr[:, 2] = np.arange(N)
    return arr

def parse_nofill(l: str):
    tmp = l.split(" ")
    numbers = np.array([int(k[:-1]) for k in tmp])
    signs = np.array([(k[-1] == "+") for k in tmp]) * 2 - 1
    return numbers, signs, np.arange(len(numbers))

parse0_pythran = boost(parse0)
parse_nofill_pythran = boost(parse_nofill)

ts = make_str()

glo = globals()

norm = timeit("parse0(ts)", globals=glo)
timeit("parse0_pythran(ts)", norm=norm, globals=glo)
timeit("parse_nofill(ts)", norm=norm, globals=glo)
timeit("parse_nofill_pythran(ts)", norm=norm, globals=glo)

gives
parse0                           :     1 * norm
norm = 0.000348 s
parse0_pythran                   :   1.4 * norm
parse_nofill                     : 0.989 * norm
parse_nofill_pythran             :   1.4 * norm

Hi folks, and thanks @rickbeeloo for reporting. The problem lies in the support of string in pythran, which leaves a lot of room for optimization. I played with your code yesterday evening and managed to get a decent speedup, let me test the optimizations and release a bug fix!

Hi folks, and thanks @rickbeeloo for reporting. The problem lies in the support of string in pythran, which leaves a lot of room for optimization. I played with your code yesterday evening and managed to get a decent speedup, let me test the optimizations and release a bug fix!

Aaah so it was a problem with the string and not the array - sorry for that!
@serge-sans-paille cool! Excited for that :)

Aaah so it was a problem with the string and not the array - sorry for that!
@serge-sans-paille cool! Excited for that :)

Can you confirm #1708 fixes your issue?

Can you confirm #1708 fixes your issue?

Can I install this using pip install git+https://github.com/serge-sans-paille/pythran.git? I installed it using that line and put the same test code in this colab but I don't see much difference, am I missing something?

Can I install this using pip install git+https://github.com/serge-sans-paille/pythran.git? I installed it using that line and put the same test code in this colab but I don't see much difference, am I missing something?

@serge-sans-paille I commented a bit too quick so edited it now (just so you get the notification :) )

@serge-sans-paille I commented a bit too quick so edited it now (just so you get the notification :) )

I think you can try the branch feature/fast-str-chr (PR https://github.com/serge-sans-paille/pythran/pull/1710).
For example like that: pip install git+https://github.com/serge-sans-paille/pythran.git@feature/fast-str-chr.

I think you can try the branch feature/fast-str-chr (PR https://github.com/serge-sans-paille/pythran/pull/1710).
For example like that: pip install git+https://github.com/serge-sans-paille/pythran.git@feature/fast-str-chr.

With master:
parse0                           :     1 * norm
norm = 0.000348 s
parse0_pythran                   :   1.4 * norm
parse_nofill                     : 0.989 * norm
parse_nofill_pythran             :   1.4 * norm

With feature/fast-str-chr
parse0                           :     1 * norm
norm = 0.000356 s
parse0_pythran                   : 0.301 * norm
parse_nofill                     : 0.986 * norm
parse_nofill_pythran             :  0.31 * norm

Pythran is no longer slower than CPython & Numpy!

With master:
parse0                           :     1 * norm
norm = 0.000348 s
parse0_pythran                   :   1.4 * norm
parse_nofill                     : 0.989 * norm
parse_nofill_pythran             :   1.4 * norm

With feature/fast-str-chr
parse0                           :     1 * norm
norm = 0.000356 s
parse0_pythran                   : 0.301 * norm
parse_nofill                     : 0.986 * norm
parse_nofill_pythran             :  0.31 * norm

Pythran is no longer slower than CPython & Numpy!

Yesss same for me!
5.74 ms ± 12 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
3.07 ms ± 27.7 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

Amazing :) thanks!!

Yesss same for me!
5.74 ms ± 12 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
3.07 ms ± 27.7 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

Amazing :) thanks!!


Operators as Functions vs. this

o = a: 1, b: 2, f: -> <[a b]> .map (@.)
o.f!

currently compiles to:
var o;
o = {a: 1,b: 2, f: function(){
  return ['a', 'b'].map(function(it){
    return this[it];
  });
}};
o.f();

I believe a more useful semantics would be to implicitly bind this, as if I wrote:
o = a: 1, b: 2, f: -> <[a b]> .map ~> @[it]
o.f!

which compiles to:
var o;
o = {a: 1,b: 2, f: function(){
  var this$ = this;
  return ['a', 'b'].map(function(it){
    return this$[it];
  });
}};
o.f();

IIRC there are other situations where some expression has this implicit this binding semantics -- it felt so natural I forgot which ;)

Ah I recalled. A list comprehension has implicit this binding.
a = [this.f .. for arr] .filter g

compiles to:
var a;
a = (function(){
  var i$, x$, ref$, len$, results$ = [];
  for (i$ = 0, len$ = (ref$ = arr).length; i$ < len$; ++i$) {
    x$ = ref$[i$];
    results$.push(this.f(x$));
  }
  return results$;
}.call(this)).filter(g);

That's really not the same, because the closure we're generating is really an implementation detail.

That's really not the same

True.
Back on operators as functions: I can imagine code relying on unbound this, so a breaking change would likely be impossible. Alternatively, is it possible to have a bound version?

Let's move this to #634 :-).