UnhandledPromiseRejectionWarning: TypeError: Right-hand side of 'instanceof' is not an object

With "node-fetch": "2.6.0" and "node-fetch-cookies": "1.4.2" the issue does not exist. With either "node-fetch": "2.6.1" or "node-fetch-cookies": "1.5.0" the below issue happens.
(node:34956) UnhandledPromiseRejectionWarning: TypeError: Right-hand side of 'instanceof' is not an object
    at fetch (C:\Users\Michael Hobbs\WebstormProjects\exa\exa-event-service\node_modules\node-fetch-cookies\src\index.mjs:40:29)
    at ExaBot._fetch (C:\Users\Michael Hobbs\WebstormProjects\exa\exa-event-service\src\ExaBot.js:89:25)
    at ExaBot._login (C:\Users\Michael Hobbs\WebstormProjects\exa\exa-event-service\src\ExaBot.js:103:30)
    at Object.<anonymous> (C:\Users\Michael Hobbs\WebstormProjects\exa\exa-event-service\src\index.js:17:8)
    at Module._compile (internal/modules/cjs/loader.js:1137:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
    at Module.load (internal/modules/cjs/loader.js:985:32)
    at Function.Module._load (internal/modules/cjs/loader.js:878:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47

package for reference
{
  "name": "exa-event-service",
  "version": "0.1",
  "dependencies": {
    "esm": "^3.2.25",
    "express": "^4.17.1",
    "ioredis": "^4.17.3",
    "morgan": "^1.10.0",
    "node-fetch": "2.6.0",
    "node-fetch-cookies": "1.4.2",
    "socket.io": "^2.3.0"
  },
  "browserslist": [
    "last 1 Chrome versions"
  ],
  "scripts": {
    "start": "node src/index",
    "test:exaBot": "node src/exaBot.test.js"
  }
}

You're using nodejs 11.14 or 11.15, right? I noticed that the CI for 11.14 failed yesterday, but the CI also auto-releases when just one of the three tests succeed. That's a bit stupid, but that's how it went.
The problem is, that node-fetch 2.6.x is CJS and that importing CJS modules doesn't completely work in nodejs 11:
import nodeFetch from "node-fetch";
console.log(nodeFetch);
// { [Function: fetch] isRedirect: [Function], Promise: [Function: Promise] }

As you can see, nodeFetch doesn't provide exports like Headers or Request here, only the exported functions are available. That's why Headers is undefined at instanceof.
At this point I'm not quite sure what I can do to fix this.

In the container using 'FROM node:12.13.0' and on my dev workstation, I have v12.18.3. Normally I don't run the project directly on the dev workstation but did so to troubleshoot this issue. We first saw the issue in production after pushing out a minor update. Once I realize it was an issue in a library and not the changes I had made I did testing on my local workstation to pin down the issue. After locking the libs to  "node-fetch": "2.6.0" and "node-fetch-cookies": "1.4.2" by removing the '^' from them and pushing that out to the pipeline/rebuilding/deploying the issue went away in prod. We will be moving to Node 14 once it goes LTS. This project is still in MVP stage so sadly testing did not catch this issue.

I think your import statement is wrong.
node-fetch/lib/index.mjs
export default fetch;
export { Headers, Request, Response, FetchError };

I think you should use
import nodeFetch, {Headers}  from "node-fetch"

See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import
I'm by no means an expert or import as been using require for years 😄

I think your import statement is wrong.
I think you should use
import nodeFetch, {Headers}  from "node-fetch"

See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import

Yes, you would be correct if node-fetch was an ES module. It uses import/export, but it doesn't have .mjs file extensions or "type": "module" in its package.json, so nodejs views it as CommonJS (the classic require()/module.exports system).
Thus, when trying to import nodeFetch, {Headers} from "node-fetch" I get the following error:
import nodeFetch, {Headers} from "node-fetch";
                   ^^^^^^^
SyntaxError: The requested module 'node-fetch' is expected to be of type CommonJS, which does not support named exports. CommonJS modules can be imported by importing the default export.
For example:
import pkg from 'node-fetch';
const {Headers} = pkg;
    at ModuleJob._instantiate (internal/modules/esm/module_job.js:97:21)
    at async ModuleJob.run (internal/modules/esm/module_job.js:136:20)
    at async Loader.import (internal/modules/esm/loader.js:179:24)

I also tested node-fetch-cookies with both, 12.13.0 and 12.18.3 locally. It works fine for me with both versions. I can only reproduce your error with node 11.14.0 or 11.15.0. I really don't know what's going on on your end.
Can you put a console.log(nodeFetch) in the index.mjs of node-fetch-cookies and send me the output?

This is what I see in node_modules/node-fetch/package.json
{
  "name": "node-fetch",
  "version": "2.6.0",
  "description": "A light-weight module that brings window.fetch to node.js",
  "main": "lib/index",
  "browser": "./browser.js",
  "module": "lib/index.mjs",
  "files": [
    "lib/index.js",
    "lib/index.mjs",
    "lib/index.es.js",
    "browser.js"
  ],
...

console.log(nodeFetch) with "node-fetch": "^2.6.0" and "node-fetch-cookies": "^1.4.2"
$ node src/index
[Function: fetch] {
  isRedirect: [Function],
  Promise: [Function: Promise]
}

Based on the above discussion I was able to fix the issue by modifying index.mjs in node-fetch-cookies
import nodeFetch, {Headers, Request, Response, FetchError} from "node-fetch";
import CookieJar from "./cookie-jar.mjs";
import Cookie from "./cookie.mjs";
import {paramError, CookieParseError} from "./errors.mjs";

// const {Headers, Request, Response, isRedirect, FetchError} = nodeFetch;
const {isRedirect} = nodeFetch;

package.json
{
  "name": "exa-event-service",
  "version": "0.1",
  "dependencies": {
    "esm": "^3.2.25",
    "express": "^4.17.1",
    "morgan": "^1.10.0",
    "node-fetch": "^2.6.0",
    "node-fetch-cookies": "^1.4.2",
    "socket.io": "^2.3.0"
  },
  "browserslist": [
    "last 1 Chrome versions"
  ],
  "scripts": {
    "start": "node src/index",
    "test:exaBot": "node src/exaBot.test.js"
  }
}

node -v v12.18.3
I also realized I never pointed out I am importing node-fetch-cookies with esmImport
const CONFIG = require('./config.js')
const esmImport = require('esm')(module)
const {CookieJar, fetch} = esmImport('node-fetch-cookies')

I also realized I never pointed out I am importing node-fetch-cookies with esmImport

Ah, so that is why we're getting different results. Thanks for the heads up!
An explanation of the problem can be found here: https://stackoverflow.com/a/62319801/4780052
Also related:
https://github.com/standard-things/esm/issues/880
https://github.com/nodejs/node/issues/33795
Couldn't find a satisfying solution that allows both, nodejs and std/esm import, yet.

Since 14.5.1 is now LTS, I dropped support for nodejs versions < 14.13 in a new major release 2.0.0, which resolves this issue.


[5.8] Send LogoutOtherDevices event when request is made.

This would allow developers to manages other authentications to react to this request
such as Passport, where the application may choose to revoke all users access_token etc.
Signed-off-by: Mior Muhammad Zaki<EMAIL_ADDRESS>

Merged.


add non linear attention following https://arxiv.org/abs/2309.08586

curves matching for cases of xformers softmax attention and softmax attention going throught the custom attention code path

relu^2 with alpha = 1 and sequence length scalar determined by max sequence length or avg sequence length approaching the standard softmax setting. for context, this is an 11M param model trained for 220M tokens. larger runs planned for future dates, but probably not blocking this PR


Documentation improvements

Apply syntax highlighting to code examples and explain purpose of rainbow-delimiters.setup.

Note that the syntax highlighting has been added now, so unless you really want to reword some of the above in the docs, this pull request doesn't really change anything now.


OSRA427 - Integration tests for CRUD in Admin Users functionality

The aa functionality have a delete link for admin users. In hq that link doesn't exist, thus I'm not testing that.
This PR is mainly a refactor of three files: admin_user_authentificatio_spec.rb, create_admin_user_spec.rb and edit_admin_user_spec.rb into crud_admin_user_spec.rb.
JIRA activity: https://osraav.atlassian.net/browse/OSRA-427

please rebase and leave a comment here too

I have forgot to do this. I'll try to do it this weekend. Sorry.

Running my tests locally without problem. Semaphore doesn't like Consuelo lol (Consuelo is a Spanish name) :P

haha, yes, I see. Forgot to add some escaping on' again :)
I'll fix that

oh no, you need to rebase this again. It has conflicts after I merged the other PR

Cool. I'll do it this night. :+1:


have_attributes attribute detail is missing when passed to another matcher

In #668, the have_attributes matcher was improved so that the actual attribute values are used in the diff.  This is particularly important when the inspect output of the object does not include the attribute values.
However, the issue from #667 remains when you pass have_attributes (or an alias) to another matcher. Consider this spec:
RSpec.describe "have_attributes" do
  example "using `have_attributes` directly" do
    expect(1).to have_attributes(:__id__ => 4)
  end

  example "passing `an_object_having_attributes` to another matcher" do
    expect([1, 2]).to match [
      an_object_having_attributes(:__id__ => 4),
      an_object_having_attributes(:__id__ => 5)
    ]
  end
end

Running that produces two failures:
  1) have_attributes using `have_attributes` directly
     Failure/Error: expect(1).to have_attributes(:__id__ => 4)
       expected 1 to have attributes {:__id__ => 4} but had attributes {:__id__ => 3}
       Diff:
       @@ -1,2 +1,2 @@
       -:__id__ => 4,
       +:__id__ => 3,

  2) have_attributes passing `an_object_having_attributes` to another matcher
     Failure/Error: expect([1, 2]).to match [
       expected [1, 2] to match [(an object having attributes {:__id__ => 4}), (an object having attributes {:__id__ => 5})]

The failure from the first spec clearly shows that the value of __id__ was that did not match.  The failure from the 2nd spec doesn't show that at all, which is annoying because it's hard to tell why the match failed without that information.

@myronmarston I'll start to think off a general solution for have_attributes matcher

Any ideas what output we'd like to have when passing to another matcher, i.e. 2nd example?
Would something like this be good (...but had attributes {:id => 3}):
2) have_attributes passing `an_object_having_attributes` to another matcher
     Failure/Error: expect([1]).to match [
       expected [1] to match [(an object having attributes {:__id__ => 4} but had attributes {:__id__ => 3})]

@nellirx That would certainly be an improvement. Would you like to hack on it?

Would you like to hack on it?

yes please, thanks


Add Basic Transformers

Related to #158. I think below transformers are useful.

min / max scaling (scaling inputs to [0, 1] using min/max)
normalize (each rows are rescaled to have the same norm)
standardize (transform to zero-mean and unit-variance)

Quite a few of these already exist.
I'd welcome a PR to add a normalized transform :)

ah, haven't noticed. gr8:)

I am going to close this @sinhrks . Feel free to reopen an issue for the normalize transformer.


Router.onBeforeAction AccountsTemplates.ensureSignedIn

My home page is protected with ensureSignedIn.  If the user is already logged in and goes to the home page, the login screen flashes before the home loads.  How do I prevent this?  I don't want to see the login screen at all if the user is already logged in.

Router.onBeforeAction(AccountsTemplates.ensureSignedIn, {
    except: ['app-storage','resetPwd','atResetPwd']
});
Router.configure({
    layoutTemplate: 'masterLayout',
    loadingTemplate: 'loading',
    notFoundTemplate: 'pageNotFound',
    yieldTemplates: {
        navbar: {to: 'navbar'},
        footer: {to: 'footer'},
        leftMenu: {to: 'leftMenu'},
        rightMenu: {to: 'rightMenu'}
    }
});

Router.map(function() {

    this.route('home', {
        path: '/',
        template: 'grid'
    });

Yeah, I can reproduce this, that's a bug :(
Might it be that this line should also check Meteor.loggingIn?

Glad you were able to reproduce.  Thanks!
When do you think a fix would be included in the Meteor package?
Don

I'd be glad if you could play a bit with this and create a PR.
I just have very little spare time and I already have a number of things to test for the next release.
But I'll see what I can do...
Tnx!

I'd like to try.  What do I do in order to make the change and how do I get an version of the package to test it in my app?  I'm not familiar with working on community projects like this. But, I want to help where I can.
Thanks,
Don

When I click New Pull Request, the green button is grayed out.  How to I request client.js to edit this line?

Hei @doubletaketech,
lets have a look at Working Locally
Let me know if you need more help.

I think I've found a little trick to manage this...
In any case you'd better add another hook like this before the one using ensureSignedIn:
Router.onBeforeAction(function () {
  if (Meteor.loggingIn()) {
    this.render('loading');
    this.renderRegions();
  } else {
    this.next();
  }
}, {
  only: ['home']
});

Tnx!

@splendido's solution works great for me.

@micahalcorn do you mean the fix committed or the additional onBeforeAction hook?

Thank you.  Is this new version available via meteor update?

Yep! Version 1.7.0

I've updated to 1.7.1 and I still see the login screen flash before home page loads.
If I add your extra hook, with loading, then it works fine.
Thank you!  Appreciate your great work!
Don

...ok, I'll try to debug this a little more.
Tnx!

...I've eventually did it:
see e9ee6d27c23377f66badb55b9dc74824a012ed21 and Content Protection

I updated to 1.8 and replaced my previous code with
Router.plugin('ensureSignedIn', {
    except: ['app-storage', 'atSignIn', 'atSignUp', 'atForgotPassword']
});

but I get this error ...						      ^
Error: No plugin found named "ensureSignedIn"
at Function.Router.plugin (packages/iron:router/lib/router.js:394:1)
at app/routes.js:36:8
when attempting to run the app.
Thanks,
Don

mmmm, I've just realized I defined it for the client only...
Are you by any chance setting it on the server side?

my routes.js is available to both.
I wrapped it with isClient and it works great! No more login flash.   Great job!
Thank you!
if(Meteor.isClient){
    Router.plugin('ensureSignedIn', {
        except: ['app-storage', 'atSignIn', 'atSignUp', 'atForgotPassword']
    });
}

I'll move the definition to be available on both sides...
I'm glad it's working properly now :)
Thank you for the heads up!

May I ask if you could make some animated gifs comparing the before and after the plugin?
...it might be a good idea to post this comparison somewhere within some post ;-)

...reasoning a bit more, there's no point to have the same plugin working 'server-side' where Meteor.loggingIn() and meteor.user() are nto available.
Do you think a fake definition on the server-side would be enough to get no complains and permit to define routing on both sides?

From my learning experience with Meteor last year, they tended to recommend that one routes.js be available to both client and server. Especially since Iron-Router has the "where" to designate something as a server route.
So, anything you can do to make it "idiot proof" for people like me, the less issues will be posted. :) If faking doesn't cost you anything, then do it.  But, you may be able to just handle this in your docs reminding people that is client-side only plugin.
So, you are wanting to compare before and after.  Do you mean before, when the login prompt used to appear ... and after, when it no longer appears?
 ;-)
You're right about the good practice to declare routes both sides, this is why I think we should fix this issue.
The problem is that the ensureSignedIn logic works good on the client but the same code cannot run on the server because of some missing part of UserAccounts which are shipped to the client only.
...for example there's no AccountsTemplates.state on the server side.
At the same time, there's no point for a plugin like this to be executed on the server side, since there's no way to check which user is requesting a particular route.
So my proposal is to create an empty plugin for the server side so to get the code running there as well (without getting any error...) hence permitting IR stuff definition on both sides.
I'll try to publish a patch tomorrow.
...and yep, the request for the comparison was for before/after the plugin ;-)

I've just answered this question by @fardeemmunir on SO


Merge with frovedis::words.

Currently getting this while trying to run:
[VE] ERROR: signalHandler() Interrupt signal 11 received
[VH] [TID 75855] ERROR: unpack_call_result() VE exception 11

[VH] [TID 75855] ERROR: _progress_nolock() Internal error on executing a command(-4)
0x600fffe00000
0x60000001d588 -> (null)
0x60000001d330 -> (null)
[VH] [TID 75855] ERROR: freeBuff() rv=2
[VH] [TID 75855] ERROR: freeBuff() rv=2
[VH] [TID 75855] ERROR: freeBuff() rv=2
[VH] [TID 75855] ERROR: freeBuff() rv=2
[VH] [TID 75855] ERROR: freeBuff() rv=2

is this expected right? I will put back to Draft

I thought I fixed it. I'll double check here.

Disabled the exchange bit, and also fixed the equivalence. Will merge as now everything passes.


Remove unused catalog.Interface

The current interface only adds a layer of maintenance.
For partial capabilities the code that uses the Catalog should extract specific capabilities as interface.

LGTM. Just to make sure, since you trust that there won't be any other catalog implementations in the foreseeable future, you feel comfortable to delete the interface?

trust there will be no other, also we can always extract interface as needed.


Add Documentation

fixes #10

Add documentation to README and models
Add search to region picker example

@nashfive Thoughts?


Outbound calls not correlated with the right step

Related issue: https://github.com/step-security/harden-runner/issues/133
Calls to coveralls.io:443 and sonarcloud.io:443 not correlated with the right steps, and so not included in the recommended policy

This is fixed in the insights API


Optimize AnimationMixer with new BitSet class.

This optimization went a bit out of scope as it adds a new BitSet class we've recognized we could use in different places. For example, the D3D12 driver currently relies on implementing this structure manually (@RandomShaper will recall that we needed to fix it in his PR as well).
The optimization is fairly straightforward and shouldn't cause any behavior differences as long as the BitSet class is implemented correctly, which I added some tests to verify that (although they might not be very extensive).
There's two problems with the function and it causes a non-negligible amount of allocations if the project uses a lot of animation trackers:

It uses a CoW Vector which always must be allocated from scratch and gets elements added as they're processed.
It uses a linear search on the vector to find if an index was added to the Vector.

Both of these are pretty straightforward to solve by using the BitSet instead on TLS so allocation is only performed when it needs to increase the capacity once and retains the contents across multiple function calls. The second problem is resolved by decreasing the complexity of the linear lookup to a single index and mask check by using the BitSet.
I do believe we should benchmark this one properly, so I'm interested in hearing if @Calinou or someone else in charge of benchmarks has a good test case for this.

Does this limit the number of processes to 32 or 64 for multiplexing in a single frame? We would need to make sure there are no use cases that exceed that. If it exceeds that, we may need to be able to combine multiple bitSets.

Does this limit the number of processes to 32 or 64 for multiplexing in a single frame? We would need to make sure there are no use cases that exceed that. If it exceeds that, we may need to be able to combine multiple bitSets.

This BitSet is flexible, it doesn't have a size limit.

I do believe we should benchmark this one properly, so I'm interested in hearing if @Calinou or someone else in charge of benchmarks has a good test case for this.

We don't have animation benchmarks in https://github.com/godotengine/godot-benchmarks yet, so I suppose we need to benchmark a more minimal comparison between the old manual approach and using BitSet. This likely means writing a microbenchmark and running it in main/main.cpp.

I was getting deja vu but I realized I'd added equivalent in 3.x since 3 years ago for portals

Add that one to the pile of "things I accidentally did that lawnjelly already did in 3.x". 😄

Don't worry if this is neater I'll likely backport it to replace the old one, as long as it runs fast. :+1:

There's been a twitter thread about at least 500 characters animating. Each with at least like 50+ bone tracks

Also bear in mind sometimes it is worth having fixed size bitset class (e.g. by template, or passing in the data to use) to avoid dynamic allocation and use stack instead.

Yup, the std bitset is actually fixed size and allows a lot of paths to be skipped to skip the heap allocation. The one I took for inspiration here is basically QBitArray. We could probably just have another template with a fixed size that uses a primitive type to offer further optimizations if needed if the max size can be known ahead of time.

Rebased and added @lawnjelly's suggestion for inline.

It's no longer possible to merge this PR as it needs to be re-evaluated against the changes done in master. Conceptually speaking, it can no longer work as the logic was changed to keep track of hashes instead of indices, requiring a different optimization altogether.

It's no longer possible to merge this PR as it needs to be re-evaluated against the changes done in master. Conceptually speaking, it can no longer work as the logic was changed to keep track of hashes instead of indices, requiring a different optimization altogether.
However, we can probably salvage the BitSet class if we're interested on it.

Ah, ya. Looking at the new implementation, I think the performance will be as bad as before, but we can't apply the BitSet optimization anymore (unless we want a bitset that covers all uint32_ts).
Based on the description of https://github.com/godotengine/godot/pull/94716 it sounds like we can't go back to indexing by blend_idx either.
I'll close this as salvageable as we might find another use for the Bit Set class


Updated the JavaCommon parser to deal with constructor-implementation conflicts

-Adjusted JavaCommon to deal with implementations of classes as constructor arguments.
-Added a test to JavaCommonTests to test the new functionality.
Contributor Checklist:

[x] I have created a new test or updated the unit tests to cover the new/changed functionality.
[x] I have updated master/src/CHANGES.txt directory (and read the README.txt in that directory)
[x] I have updated the appropriate documentation

Coverage decreased (-0.3%) to 78.752% when pulling 1d947b99536bdaf906cabc634d88a5fd99c521a2 on MatthewMarinets:JavaParserFix into 992aeebe3d54dedc0123344e9ccdbe9b411ef78f on SCons:master.

Are these bugs related:
https://github.com/SCons/scons/issues/2771
https://github.com/SCons/scons/issues/2742
https://github.com/SCons/scons/issues/2548
https://github.com/SCons/scons/issues/2359
https://github.com/SCons/scons/issues/1849
https://github.com/SCons/scons/issues/1594
If any or all are fixed by your changes it'd great to mark these issues closed.
(apologies for a long list but at quick glance they seemed possibly related)

Keep in mind that when I look at the bugs, I can only really comment on JDK 1.8. I'm still fairly new to Java and don't have the means or the know-how to test different Java versions.
#2771
I can't reproduce the issue. With both test cases, the output.class files match between what javac outputs, what my version of the Java() emitter outputs, and what the old version of the Java() emitter outputs. At least for JDK 1.8, this doesn't seem to be an issue at all.
actual = new = old
#2742
I didn't look at this one too hard; it had more to do with the Jar() builder than the Java() builder from what I can understand. Mostly unrelated
For most of my company's build I use a Jar-based workaround to Java emitter problems. I get all my class files in one build action, put them in the same directory, and jar the entire directory. I add an explicit dependency of the jar on the sources, so whenever a source file changes, javac kicks in and its all rejarred even if the only change was in class files SCons couldn't find. This workaround is still necessary, because I'm aware that there are still a few anonymous inner class files that SCons doesn't pick up, but I don't know what causes that. The main purpose of my change was to avoid having SCons expect files that would never be build, as that would cause unnecessary rebuilds and I couldn't find any other workaround for that.
#2548
This seems to be exactly the bug I ran into. This one is the one that's fixed.
Just to be sure I ran the example test case in the post. actual = new != old
#2359
This seems to be a duplicate of #2548 . Fixed
actual = new != old
#1849
Bug seems unrelated, I couldn't reproduce the issue
actual = new = old
As for the patch, I'm pretty sure I touched some of the code mentioned in the comments thread. In particular, line 246 of my new JavaCommon.py is what does it:
"self.outer_state._getAnonStack().pop()"
I had to move around the management of the anonStack to get it to work properly. Essentially, the old version would only do any kind of stack management if it was in OuterState; if it smelled like an anon class was coming, it would add it to the stack and wait until it was sure about the anon class to pop it back off. This caused a bug because it was possible to queue up 2 or more anon classes within a constructor, and it would only pop the stack once, locking you into having an extra item in your stack. I fixed this by letting ScopeState pop items off the anon class stack whenever a ScopeState was popped off the parser state stack. Hence, these anon classes could be queued up properly.
TL;DR: The proposed solution in this bug report caused another, more nuanced bug. I fixed it (I think).
#1594
This one is still broken. This might actually be the minimal case for one of the other issues I was never able to find.
actual != (new = old)
Sidenote: I agree with electricalan in this thread, that SCons really isn't great at languages with unpredictable intermediate files. I outlined the workaround I've been using above in my response to #2742 , and I've found another workaround using the inline action execs with "${}". It's doable, easy even with the right helper functions, but it isn't pretty.
Or maybe it is, and I just never found out how to do it.
Sorry for the long response time, I had the page open and didn't notice that I needed to refresh.
-Matthew

Thanks for taking the time to review all those.
Very much appreciated.
No worries about response time. We're all volunteers here. :)


Bad perfomance after upgrading from vis 4.17 to timeline-plus

Hi,
After upgrading from vis.js version 4.17 to timeline-plus we got really bad perfomance. We have about 450 groups and 3000 items in them. I started to investigate what had changed and managed to pin it down to that something had changed between vis 4.17 and 4.18. So after a diff of these two versions i noticed that the following code had been removed from updateItemsInRange in Group.js
      if (!this.isVisible && this.groupId != "__background__") {
        for (var i = 0; i < oldVisibleItems.length; i++) {
          var item = oldVisibleItems[i];
          if (item.displayed) item.hide();
        }
        return visibleItems;
      }

If i put this code back the perfomance is back to normal but im not sure that this does not affect something else.
I also noticed that without the code we get alot of style recalculations and layouts.
Would it be possible to put this code back in timeline-plus or does this affect something else?

Can you tell me where exactly was this snippet? in what function in which row?

The snippet should be put at line 814 in Group.js.
In vis.js 4.17 it was at line 505 in Group.js

Checkout v2.2.4
I've fixed the issue by returning the piece of code that was erased.
It was erased originally for an issue with a previous version of visjs and was later fixed differently in timeline-plus.

Ok, thanks. Will try it out and get back to you.

Works perfectly! thanks for the help!


Add a /?draw option

Let users specify whether chart should be drawn on page load. Maybe have default linked to whether the controls are visible?

Why wouldn't you want the chart to draw?

@samussiah Right now the default behavior is to wait until the user clicks render. Saves us from loading unneeded libraries if user is going to tweak stuff. Once we deal more rigorously with onDestroy cleanup, I think it makes sense to draw by default, but for now, going to leave default as false.

closed in #86


Feedback on IAM role creation

Following up on @Fsero's nice work from https://github.com/kubernetes-incubator/kube-aws/pull/607. So far it's mostly been exactly what we need. I hit a couple of doc issues I think we should improve:

cluster.yaml mentions {"AWS::StackName"}-{"AWS::Region"}-yourManagedRole a couple of times but this was changed in https://github.com/kubernetes-incubator/kube-aws/pull/607 to not include the stack name. I think the recommendation should be to include the stack name otherwise we end up with fairly generic eu-west-1-poolname-role role names.
The validation for the character limit is still in place prefixed with stack name - see here
It was not totally obvious to me at first that the role names get exported from the node pool stacks as well as the root stack. The exports from the node pools look like k8s-dev-PoolName-Y1WKSC7JU6JS-WorkerIAMRoleArn but the one from the root looks like k8s-dev-NodePoolPoolNameWorkerIAMRoleArn which is obviously easier to reference
There's warnings to not use the documented settings as below but the settings recommended don't seem to work (both controller and worker settings under iam seem to not do anything:

WARN: worker.nodePools[].managedIamRoleName is deprecated and will be removed in v0.9.7. Please use worker.nodePools[].iam.managedRoleName instead
WARN: controller.managedIamRoleName is deprecated and will be removed in v0.9.7. Please use controller.iam.managedIamRoleName instead

Then one question for @Fsero - given that with an export we can reference the ARN of the worker pool roles, what does overriding the unique ID name of the actual role provide? I'd assume any references would use the ARN export and not reference the name directly.

I think I answered my own question from the final part of the above. Even if the exported role name is consistent, AWS still produces an error if the underlying ARN changes and another stack depends on the exported name. I wonder if they will change that behaviour at some point so it can be a bit more dynamic.

Hi @c-knowles! Thanks for your comments :)
Let us review them one by one

cluster.yaml mentions {"AWS::StackName"}-{"AWS::Region"}-yourManagedRole a couple of times but this was changed in #607 to not include the stack name. I think the recommendation should be to include the stack name otherwise we end up with fairly generic eu-west-1-poolname-role role names.

About the mentions on cluster.yaml that is a bug (i probably introduced that so sorry about that) and should be fixed. However about including the stack name i disagree, if we include the stack name with the current cloudformation structure a role will be like MyCluster-$RANDOMIDFROMCFN-eu-west-1-poolname-role which will not be stable and not predictable.
As you commented later you can use ImportValue in Cloudformation to retrieve role name as long as you are in the same region. I use kube2iam in my kube-aws cluster and i have applications that assumes a role in other region than the cluster is deployed, because kube2iam need to trust the kube-aws cluster's role i need it predictable since i cannot retrieve role name using import value (target role is in other region)
however i will not argue against change the naming scheme to {"AWS::NestedStackName"}-{"AWS::Region"}-$NAME that will generate roles like MyCluster-eu-west-1-$NAME

The validation for the character limit is still in place prefixed with stack name - see here

yes, that should be addressed. If you like my proposal of changing the scheme for {"AWS::NestedStackName"}-{"AWS::Region"}-yourManagedRole i can modify the validation for that scheme or at the very least just check the length.

It was not totally obvious to me at first that the role names get exported from the node pool stacks as well as the root stack. The exports from the node pools look like k8s-dev-PoolName-Y1WKSC7JU6JS-WorkerIAMRoleArn but the one from the root looks like k8s-dev-NodePoolPoolNameWorkerIAMRoleArn which is obviously easier to reference

Do you prefer that we dropped exports in nested stacks and we only leave the exports in the root stack?
i consider this also a bug since as you said k8s-dev-NodePoolPoolNameWorkerIAMRoleArn it's easier to reference.

There's warnings to not use the documented settings as below but the settings recommended don't seem to work (both controller and worker settings under iam seem to not do anything: WARN: worker.nodePools[].managedIamRoleName is deprecated and will be removed in v0.9.7. Please use worker.nodePools[].iam.managedRoleName instead

That warning message is outdated from a previous revision, it should say worker.nodePools[].iam.name i consider that also a bug.

given that with an export we can reference the ARN of the worker pool roles, what does overriding the unique ID name of the actual role provide? I'd assume any references would use the ARN export and not reference the name directly.

My use case is related to trust kube-aws cluster roles in other regions where i cannot use directly the export.
@c-knowles great job uncovering this edge cases and some bugs, i'm happy to fix them :)

@Fsero Thanks for you reply. Ah, I need to clarify - by stack name I actually meant the kube-aws root stack name which is just the clusterName from cluster.yaml. I definitely understand why you don't want it to vary and agree with you so we are saying the same thing I think. The problem I encountered is that if the user names the role pool-a it ends up with a particular generic IAM role name which will conflict if they have multiple clusters in the same account/region.
If we change to NestedStackName, then my assumption is that the role name in cluster.yaml could be just worker-role and then we'd end up with an IAM role of k8s-dev-PoolA-worker-role assuming the cluster name is k8s-dev and the pool name is pool-A.

Do you prefer that we dropped exports in nested stacks and we only leave the exports in the root stack?

I don't mind either way, even just updating the docs markdown to be explicit would be fine I think. If you consider it a bug then we should drop the nested exports probably if that's possible.

given that with an export we can reference the ARN of the worker pool roles, what does overriding the unique ID name of the actual role provide? I'd assume any references would use the ARN export and not reference the name directly.

Understood, I also found the parts of the AWS docs that talk about them binding to the underlying user ID of the principals when allowing the assume role, here. In our case, I'm not keen to bind a stack that is external to the k8s cluster to the exact user IDs created by AWS in the k8s stack. I'm not sure if you found a solution for that? Assuming I wish for kube-aws to manage it's own role, I found no decent solution due to AWS not allowing principal wildcards (I understand there's a privilege escalation path here, just in our case it's an entirely separate account so the risk is minimal).


Roll Flutter Engine from 6e09ee14e244 to 6de8127713bc (36 revisions)

Roll Flutter Engine from 6e09ee14e244 to 6de8127713bc (36 revisions)
https://github.com/flutter/engine/compare/6e09ee14e244...6de8127713bc
2023-10-25<EMAIL_ADDRESS>[Impeller] Cache location in metadata. (flutter/engine#46640)
2023-10-25<EMAIL_ADDRESS>Roll Skia from<PHONE_NUMBER>fa to fb979d0ce053 (1 revision) (flutter/engine#47324)
2023-10-25<EMAIL_ADDRESS>[Windows] Introduce FlutterWindowsViewController (flutter/engine#47242)
2023-10-25<EMAIL_ADDRESS>Roll Skia from 773abacc1581 to<PHONE_NUMBER>fa (2 revisions) (flutter/engine#47322)
2023-10-25<EMAIL_ADDRESS>Roll Dart SDK from 73fa7b3e048a to 7745c140d1fe (1 revision) (flutter/engine#47321)
2023-10-25<EMAIL_ADDRESS>Cleanup Dart package dependencies a bit (flutter/engine#47306)
2023-10-25<EMAIL_ADDRESS>Roll Skia from d511fa1f1533 to 773abacc1581 (1 revision) (flutter/engine#47312)
2023-10-25<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from SOv1RJmbyDByvud8D... to kNdyn03p28H7VeMcd... (flutter/engine#47313)
2023-10-25<EMAIL_ADDRESS>Roll Fuchsia Linux SDK from vX5n99OIWgLX6bObI... to zTq0jH2Y3Fl0uUUSa... (flutter/engine#47309)
2023-10-25<EMAIL_ADDRESS>Roll Skia from<PHONE_NUMBER>cd to d511fa1f1533 (1 revision) (flutter/engine#47308)
2023-10-25<EMAIL_ADDRESS>Missed linter argument comment violations (flutter/engine#47310)
2023-10-25<EMAIL_ADDRESS>[Impeller] Remove use of FML_DISALLOW_ macros in Impeller. (flutter/engine#47307)
2023-10-25<EMAIL_ADDRESS>Adds lint for checking argument commments (flutter/engine#47305)
2023-10-25<EMAIL_ADDRESS>Roll Dart SDK from 2791495ed583 to 73fa7b3e048a (1 revision) (flutter/engine#47304)
2023-10-25<EMAIL_ADDRESS>Roll Skia from 4848dd9b5dab to<PHONE_NUMBER>cd (2 revisions) (flutter/engine#47302)
2023-10-25<EMAIL_ADDRESS>Roll Skia from 788eafdcf70d to 4848dd9b5dab (1 revision) (flutter/engine#47301)
2023-10-25<EMAIL_ADDRESS>Roll Skia from 5c315b761a24 to 788eafdcf70d (1 revision) (flutter/engine#47300)
2023-10-25<EMAIL_ADDRESS>Roll Skia from 18ad006ec7f9 to 5c315b761a24 (1 revision) (flutter/engine#47299)
2023-10-25<EMAIL_ADDRESS>Roll Dart SDK from 57661d5dbc1e to 2791495ed583 (1 revision) (flutter/engine#47298)
2023-10-25<EMAIL_ADDRESS>Roll Skia from 9537c25509ea to 18ad006ec7f9 (1 revision) (flutter/engine#47297)
2023-10-25<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from YqSO1OByhoexFJSCr... to SOv1RJmbyDByvud8D... (flutter/engine#47296)
2023-10-25<EMAIL_ADDRESS>Roll Skia from d51d3bcbcacd to 9537c25509ea (1 revision) (flutter/engine#47295)
2023-10-25<EMAIL_ADDRESS>Roll Skia from f98fc9536c43 to d51d3bcbcacd (1 revision) (flutter/engine#47294)
2023-10-25<EMAIL_ADDRESS>Roll Fuchsia Linux SDK from tqukMrdJ6j-845-57... to vX5n99OIWgLX6bObI... (flutter/engine#47293)
2023-10-25<EMAIL_ADDRESS>Roll Skia from 0d4fcf388a6f to f98fc9536c43 (1 revision) (flutter/engine#47292)
2023-10-24<EMAIL_ADDRESS>[Impeller] Update shader compilation pipeline documentation to detail multi-arch archives. (flutter/engine#47289)
2023-10-24<EMAIL_ADDRESS>Roll Skia from 076a9dd0094f to 0d4fcf388a6f (2 revisions) (flutter/engine#47290)
2023-10-24<EMAIL_ADDRESS>OpenGL <4.x does not support stencil-only formats, so delete the TODO (flutter/engine#47286)
2023-10-24<EMAIL_ADDRESS>[Impeller] Unconditionally dither in gradient shader fragments. (flutter/engine#46746)
2023-10-24<EMAIL_ADDRESS>Roll Skia from f491209e969d to 076a9dd0094f (1 revision) (flutter/engine#47285)
2023-10-24<EMAIL_ADDRESS>[Impeller] Add support for multi-rendering-backend fat shader archives. (flutter/engine#47278)
2023-10-24<EMAIL_ADDRESS>Roll Skia from 502277be15cf to f491209e969d (1 revision) (flutter/engine#47281)
2023-10-24<EMAIL_ADDRESS>Roll Dart SDK from 360370ff93b0 to 57661d5dbc1e (1 revision) (flutter/engine#47280)
2023-10-24<EMAIL_ADDRESS>Migrated away from UnmodifiableUint8ListView (flutter/engine#47276)
2023-10-24<EMAIL_ADDRESS>Roll Skia from bc90585b0dd4 to 502277be15cf (1 revision) (flutter/engine#47277)
2023-10-24<EMAIL_ADDRESS>Reland "Use a single OffscreenCanvas for rendering in CanvasKit (#45744)" (flutter/engine#47241)
Also rolling transitive DEPS:
fuchsia/sdk/core/linux-amd64 from tqukMrdJ6j-8 to zTq0jH2Y3Fl0
fuchsia/sdk/core/mac-amd64 from YqSO1OByhoex to kNdyn03p28H7
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC aaclarke@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
...

Commit queue failed; closing this roll.


Util file bower_components/intl-tel-input/build/js/utils.js not installed with bower

With jQuery 3.1.1, first using ng-intl-tel-input 1.4.0 and then 2.0.0 the error is
intlTelInputUtils is not defined. Formatting and validation will not work.

Error is the same with "intl-tel-input": "~9.0.14" and11.0.4

When working, bower had installed into index.html bower_components/intl-tel-input/lib/libphonenumber/build/utils.js - which is now removed. I've manually added the new file location  bower_components/intl-tel-input/build/js/utils.js which fixes the issue.

Going to file this with intl-tel-input in case it's an issue there.

same issue with me but i can not add bower files manually  as using gulp to inject the bower files. what is the solution?

To be fair, it seems to be in the hundreds of kilobytes. Maybe not worth it, at least not for my usecase. That said, this library is next to useless without it so it should definitely be bundled.

Now I am using international-phone-number which adds the additional plugin bit only issue is you need to copy flag.png in your images file and write a custom css for that like

I'm seeming to have (at least) a similar issue, where it seems like it doesn't load the script, or the script comes and is executed, but it is failing to notice it.
I've initialized the directive like so:
ngIntlTelInputProvider.set({
    autoHideDialCode: true,
    nationalMode: false,
    utilsScript: "/bower_components/intl-tel-input/build/js/utils.js",
});

It's pointing to the right place for the utils file, and (at least to a certain extent), it seems like some validation is happening, but it's still giving the warning in the console intlTelInputUtils is not defined. Formatting and validation will not work.
Looking at the Network tab, I see the utils.js file loading, and it's loading with the right file.  The directive doesn't seem to notice it, though.
Is there a service that goes along with this that I can try using the loadScript method that the plugin uses instead?


[1.10.2] Feature Request

Hello,
Would it be possible to add a height-expand button to the grids for players with large screens.   It would mean less scrolling.
AE2 hand a similar feature, a button along the left side panel, it doubled the height of the screen.
BTW: I like the new textures.   Great work.
Regards

thanks for the compliment, however this is a duplicate of #130


File version not right?

Download:
https://github.com/Kethku/neovide/releases/download/0.6.0/neovide.exe
And i got:
0.5.0
Download:
https://github.com/Kethku/neovide/releases/download/0.5.0/neovide.exe
And i got:
0.4.0

I think @Kethku forgot to bump the version, how are you getting the version?

:( yeah that seems likely

yup just confirmed that the cargo.toml reports the wrong version. I will update it in a commit so that master is up to date, but will wait to publish a new release until we have a sufficient reason. (this may come quickly given reported font bugs)

This is fixed


updated package.json

@gabhi hi and thanks for the PR. was this in response to a bug you found or were you just doing general maintenance?

@maxogden I was doing general maintenance.


Add token filters to recurringDonationsByUserId webservice

related to #1398
@MohammadPCh

recurringDonationsByUserId

You can pass  finishStatus if you want( if you don't pass the default value is [false])

const result = await axios.post(
    graphqlUrl,
    {
      query: fetchRecurringDonationsByUserIdQuery,
      variables: {
        userId: donor.id,
        finishStatus: [true],
      },
    },
    {},
  );

  * You can pass  filteredTokens if you want( if you don't pass the default value is [] and we return all tokens)

const result = await axios.post(
  graphqlUrl,
  {
    query: fetchRecurringDonationsByUserIdQuery,
    variables: {
      userId: donor.id,
      filteredTokens: ['DAI', 'USDC'],
    },
  },
  {},
);

* recurringDonationsByProjectId
* You can pass  finishStatus if you want( if you don't pass the default value is [false])

  const result = await axios.post(
  graphqlUrl,
  {
    query: fetchRecurringDonationsByProjectIdQuery,
    variables: {
      projectId: project.id,
         finishStatus: [true, false],
    },
  },
  {},
);

Is it ok?

@mohammadranjbarz Thanks, It looks good to me


Long running issue.

If I run botkit for 2-3hrs it stops working and my bot logs out of slack. Any idea?

Hi there, experienced same issue here this morning. First time form me, node was working all seemed fine but my bot was disconnected from the only Slack account it was connected to. Dunno when it disconnected though.

Same here. Bot disconnects from slack, but the process is still running. Does someone have any leads on what the problem might be?

I ran into the same/similar issue although my bot was timing out due to issues with the proxy that it is behind.  I found a solution and can submit a pull request for it shortly.  If you look at the Slack documentation on the real time messaging, they suggest sending a ping "every few seconds".
Here is the relevant portion of the docs...

Ping and Pong
Clients should try to quickly detect disconnections, even in idle periods, so that users can easily tell the difference between being disconnected and everyone being quiet. Not all web browsers support the WebSocket ping spec, so the RTM protocol also supports ping/pong messages. When there is no other activity clients should send a ping every few seconds. To send a ping, send the following JSON:
{
    "id": 1234, // ID, see "sending messages" above
    "type": "ping",
    …
}

No idea what could cause that, but I've implemented a rudimentary ping solution do detect a disconnection and reboot the bot then:
  // pings and pongs that tests if bot still connected to Slack
  keepAlive: function (team, bot) {
    var that = this;

    if (!this._pongs[team.token]) {
      this._pongs[team.token] = [];

      (function (team, bot) {
        bot.rtm.on('pong', function (resp) {
          that._pongs[team.token].pop();
        });
      })(team, bot);
    }

    setTimeout(function () {
      if (that._pongs[team.token].length >= (that.config.pings_unack_tresshold || 3)) {
        that.controller.logger.error('ping_not_responding', team);

        return that.restart(team);
      }

      bot.rtm.ping();
      that._pongs[team.token].push(true);

      that.keepAlive(team, bot);
    }, this.config.pings_interval_ms || (30 * 1000));
  },

Hope that helps, dunno if I could submit a PR to integrate that natively into botkit. WDYT?
Best

Ah, posted at the same moment @petemichel77 did not see your answer before mine.
I've tried the "Slack" way, but no way for me to get a pong answer :( I then chose to use the websocket ping/pong native implementation in my case above.

@guillaumepotier Mine is pretty basic so far and it is probably better to use the native ws implementation.
I simply was using the bot.rtm.send() and sending a message of type ping.  The pong comes back in the on message handler.
I'll test yours out with my proxy and see how it works.  Thanks for this

@guillaumepotier using the native ws ping method seems to work for my case of being behind a proxy.  I didn't use your code verbatim, but the ping method works pretty well.

I had this issue and thought that updating to the latest version would correct it, but I still found that it was happening. After some debugging I realized that it was disconnecting silently after a pong response took too long, and that it was not attempting to reconnect because connection retries are disabled by default.
I suggest adding some logging to make it clear when and why a disconnection has happened, and that perhaps connection retries should be enabled by default (although a log line could go a long way towards realizing this is something that needs to be turned on).

Yes, it seems like retries should be on by default. We'll consider this for an upcoming release!

For others having this issue, note that you can also register a handler for the rtm_close event. So, for instance, if enabling retry isn't what you want to do, you might do something like:
controller.on('rtm_close', function() {
  //Do something - eg log it, or maybe process.exit();
});

In my case, I have a process manager that will restart the process if it detects it died, but your use case my differ. Just wanted to highlight that you have some options for closer control here.

@anyonecancode can you provide more detail when you say "I have a process manager that will restart the process if it detects it died"?
I'm using PM2 in the most basic way to keep our Node app up on Heroku. Are you saying I could also use this to also re-connect RTM session? Ideally if you have some example code, that would be really helpful.

Sure -- in my use case, I actually am using Spotify Helios to deploy my script inside of a docker container.
Helios will restart your container if it dies, and docker containers die if the main process inside them stops. So the flow ends up looking like this:
Detect rtm_close, call process.exit() - > Causes docker container to stop -> Causes helios to restart container (and hence my node script).
I haven't used PM2 so can't speak to that, but generically I'm forcing my app to stop running if it notes a bad state (eg lack of connection), and relying on my deployment tool to restart my app when it detects it stops running.

Thanks! I see now what you mean.
Sundeep
On Fri, Nov 18, 2016 at 12:39 PM Philip Schweiger
<
mailto:Philip Schweiger<EMAIL_ADDRESS>
wrote:

a, pre, code, a:link, body { word-wrap: break-word !important; }
Sure -- in my use case, I actually am using
https://github.com/spotify/helios
to deploy my script inside of a docker container.
Helios will restart your container if it dies, and docker containers die if the main process inside them stops. So the flow ends up looking like this:
Detect
rtm_close
, call process.exit() - > Causes docker container to stop -> Causes helios to restart container (and hence my node script).
I haven't used PM2 so can't speak to that, but generically I'm forcing my app to stop running if it notes a bad state (eg lack of connection), and relying on my deployment tool to restart my app when it detects it stops running.
—
You are receiving this because you commented.
Reply to this email directly,
https://github.com/howdyai/botkit/issues/104#issuecomment-261593200
, or
https://github.com/notifications/unsubscribe-auth/ACQWbWx0SeQ-qKtpzsZbBfCUobArtvw_ks5q_eK-gaJpZM4HLh73
.


GH-41402: [CI] [R] Update our backwards compatibility CI any other R 4.4 cleanups

Rationale for this change
Keep up with the state of the world, ensure we are maintaining backwards compatibility.
What changes are included in this PR?
Add missed versions to our backwards compatibility, ensure we're running on R 4.4 elsewhere
Are these changes tested?
By definition.
Are there any user-facing changes?
No.

GitHub Issue: #41402

@github-actions crossbow submit test-r-arrow-backwards-compatibility

@github-actions crossbow submit -g r

@github-actions crossbow submit test-r-offline-maximal

@github-actions crossbow submit test-r-versions

@github-actions crossbow submit test-r-offline-maximal

I fixed the maximal offline build, it was checking for docs and we were purposefully not biulding them. This looks to be a slight change in behavior of 4.4.0 where no docs at all and then testInstalledPackage fails. We could look into this separately and report upstream, but it's also pretty niche.

@github-actions crossbow submit test-r-linux-valgrind

The valgrind cleanup I made probably will not fix the valgrind build (If I'm reading the output correctly, there's still a possible leak). But it will get rid of the silly failures where NAs are sometimes transformed into NaNs
https://stat.ethz.ch/pipermail/r-devel/2021-April/080683.html
So is an improvement (in that the failures are fewer), but might not be enough to have that be green.

Ooops, also caught that using the old rhub devel images are stuck in December:
* using R Under development (unstable) (2023-12-26 r85738)

I'll bump those to be the new "containers" approach: https://r-hub.github.io/containers/

@github-actions crossbow submit test-fedora-r-clang-sanitizer test-r-rhub-debian-gcc-devel-lto-latest

@github-actions crossbow submit test-r-clang-sanitizer test-r-rhub-debian-gcc-devel-lto-latest

@github-actions crossbow submit test-r-clang-sanitizer test-r-rhub-debian-gcc-devel-lto-latest

@github-actions crossbow submit test-r-clang-sanitizer test-r-rhub-debian-gcc-devel-lto-latest

@github-actions crossbow submit -g r

@github-actions crossbow submit test-fedora-r-clang-sanitizer

@github-actions crossbow submit test-r-rhub-debian-gcc-devel-lto-latest test-r-rhub-ubuntu-release-latest

@github-actions crossbow submit test-r-rhub-ubuntu-release-latest test-r-rhub-debian-gcc-devel-lto-latest test-r-linux-valgrind

@github-actions crossbow submit r-binary-packages

Should we also bump the minimum version of R in the DESCRIPTION? Based on the removal of the str2lang backport, we require at least 3.6 now? That said, str2lang is only used if you call quantile() in summarize(), so not practically an issue for most.

Yeah, I'll bump to 4.0 in the DESCRIPTION. I get we could have 3.6 there but I would rather pull out our random backports than have a lower (unsupported) version there.

@github-actions crossbow submit r-binary-packages test-r-linux-valgrind

@github-actions crossbow submit r-binary-packages

Wow, this balloned, thanks @jonkeane! A minor thing we can do in a follow up imo is dropping the centos7 builds as libarrow is dropping support for that too #41395 (or maybe we can do it in that PR).

@github-actions crossbow submit r-binary-packages
@jonkeane I added the fix for the upload job just so we can potentially merge this if we want to get it into 16.1. Hope that's ok!

I'm happy for it to merge now. There are a few follow ons but I think those would be better separately!
Thanks for the fix for the binaries

@jonkeane it looks like openssl is still not being picked up correctly so we probably need to look at that again. I think this is also caused by the change to the gh macos runners, I think I manually installed the cran openssl there... I will open an issue.


IT-3492: Remove resource name

If the update causes a resource replacement, I would expect it to cancel running jobs. Did we use the name to prevent that from happening?

If the update causes a resource replacement, I would expect it to cancel running jobs. Did we use the name to prevent that from happening?

@xschildw , @jesusaurus not sure, but see this thread with @zaro0508 and I : https://sagebionetworks.slack.com/archives/CEFQD0KU1/p1707431159671579?thread_ts=1707179392.118219&cid=CEFQD0KU1.


Let's include an option to activate/deactivate printing to the console

@JasperLS

yes, the code can be transferred to your local machine and be run in Py - however, it may require custom enviroment set-ups, and you need to download all required files (as they are downloaded in our script).
By the way, the scene detect issue is fixed. All options except for the object detection should work now. I will continue to fix the object detection asap.

thank you for your response.
I run the code on my local machine. I'm able to obtain all of the results except the visual variance result.I'm not sure if it's a problem with my modified code. Is it possible for me to send you my modified code and ask you to assist me in troubleshooting the issue?
 Thank you for everything!
 Enjoy yourself!
------------------ 原始邮件 ------------------
发件人:                                                                                "JasperLS/Understanding_Videos_at_Scale"                                                                                @.>;
发送时间: 2021年11月8日(星期一) 晚上11:43
@.>;
<EMAIL_ADDRESS>主题: Re: [JasperLS/Understanding_Videos_at_Scale] Let's include an option to activate/deactivate printing to the console (#1)
yes, the code can be transferred to your local machine and be run in Py - however, it may require custom enviroment set-ups, and you need to download all required files (as they are downloaded in our script).
By the way, the scene detect issue is fixed. All options except for the object detection should work now. I will continue to fix the object detection asap.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

Had the same issue. Updating the scenedetect package to a version >0.6.0 fixed it for me

Had the same issue. Updating the scenedetect package to a version >0.6.0 fixed it for me

fixed it for me too.


fix: add padding to oauth app forms

Prior to this change, the spacing cut off the border on the x-axis. This change makes a little space, so the border highlighting appears all the way around.
Issue: https://github.com/otto8-ai/otto8/issues/612

@ryanhopperlowe I was triaging issues, and I thought this one would be straightforward enough for me to take care of so you could focus on other things.


README references missing docs/sql.txt

title

We were playing around with tj docgen parser when it wasn't ready. Now its in a usable state but i didn't had the time to finish it. See https://github.com/tami5/sql.nvim/pull/9

#9 is merged


Featured request, polish badwords

https://en.wikipedia.org/w/index.php?title=Wikipedia:Sandbox&action=edit&oldid=671804402

Sure, Starting BWDS to generate bad words

https://gist.github.com/Ladsgroup/cc22515f55ae3d868f47#file-plwiki

Still waiting on a native speaker to help us out here: https://meta.wikimedia.org/wiki/Research:Revision_scoring_as_a_service/Word_lists/pl


Simplify run script

The run_analysis.sh script has become a bit too complicated because it's trying to process command line arguments and then forward them to the analysis binary. This leads to a lot of complicated spaghetti logic
It would simplify things a lot if we could just make it pass the command line args directly to the analysis binary without processing them.

Fixed by #500


Fetch organisation and dataset metadata from the registry

This should probably be done via the background page (though I don’t think that’s actually necessary since there’s no cross-origin restriction).

Done in b45841695a45e69672b9a847dd677a372cc42478 and 04521e2.


It seems api_server is misconfigured.

After setting up trains Docker image together with trains package in my local library, I keep getting issues when I'm trying to connect to trains api server.
Specifically, after running
docker-compose
The following error message can be found in the console:
trains-apiserver |     raise ConnectionError(e, request=request) trains-apiserver | requests.exceptions.ConnectionError: HTTPSConnectionPool(host='updates.trains.allegro.ai', port=443): Max retries exceeded with url: /updates (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f390d528da0>: Failed to establish a new connection: [Errno -2] Name or service not known',))
When I try to import Task from trains, no error until I run this:
task = Task.init(project_name="my project", task_name="my task")
Resulting in the following error message:
`InsecureRequestWarning: Certificate verification is disabled! Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
Traceback (most recent call last):
File "C:\ProgramData\Miniconda3\envs\jurica\lib\site-packages\trains\backend_api\session\session.py", line 545, in _do_refresh_token
return resp["data"]["token"]
KeyError: 'data'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "", line 1, in
File "C:\ProgramData\Miniconda3\envs\jurica\lib\site-packages\trains\task.py", line 260, in init
reuse_last_task_id,
File "C:\ProgramData\Miniconda3\envs\jurica\lib\site-packages\trains\task.py", line 1009, in _create_dev_task
log_to_backend=True,
File "C:\ProgramData\Miniconda3\envs\jurica\lib\site-packages\trains\task.py", line 112, in init
super(Task, self).init(**kwargs)
File "C:\ProgramData\Miniconda3\envs\jurica\lib\site-packages\trains\backend_interface\task\task.py", line 81, in init
super(Task, self).init(id=task_id, session=session, log=log)
File "C:\ProgramData\Miniconda3\envs\jurica\lib\site-packages\trains\backend_interface\base.py", line 129, in init
super(IdObjectBase, self).init(session, log, **kwargs)
File "C:\ProgramData\Miniconda3\envs\jurica\lib\site-packages\trains\backend_interface\base.py", line 34, in init
self._session = session or self._get_default_session()
File "C:\ProgramData\Miniconda3\envs\jurica\lib\site-packages\trains\backend_interface\base.py", line 103, in _get_default_session
secret_key=ENV_SECRET_KEY.get(),
File "C:\ProgramData\Miniconda3\envs\jurica\lib\site-packages\trains\backend_api\session\session.py", line 144, in init
self.refresh_token()
File "C:\ProgramData\Miniconda3\envs\jurica\lib\site-packages\trains\backend_api\session\token_manager.py", line 95, in refresh_token
self._set_token(self._do_refresh_token(self.__token, exp=self.req_token_expiration_sec))
File "C:\ProgramData\Miniconda3\envs\jurica\lib\site-packages\trains\backend_api\session\session.py", line 552, in _do_refresh_token
'Is this the TRAINS API server {} ?'.format(self.get_api_server_host()))
ValueError: It seems api_server is misconfigured. Is this the TRAINS API server http://localhost:8008 ?`
I have set up the trains.conf file to contain the following:
`# TRAINS SDK configuration file
api {
# API server on port 8008
api_server: "http://localhost:8008"
  # web_server on port 8080
  web_server: "http://localhost:8080"

  # file server on port 8081
  files_server: "http://localhost:8081"
  verify_certificate: False

}`
As I am behind a corporate proxy, I set that up and that should be working fine.
Is the issue on my side, maybe due to DNS or is there another explanation?
Much appreciated!

Hi @bmartinn
OK so I tried deleting the trains.conf file (I'm on Windows so the trains.conf file was in C:\Users\Name\trains.conf). Then I ran the trains-init which resulted in following
This was the last line of trains-apiserver after starting the docker:
trains-apiserver |
trains-apiserver | During handling of the above exception, another exception occurred:
trains-apiserver |
trains-apiserver | Traceback (most recent call last):
trains-apiserver |   File "/opt/trains/server/updates.py", line 96, in _check_updates
trains-apiserver |     response = self._check_new_version_available()
trains-apiserver |   File "/opt/trains/server/updates.py", line 54, in _check_new_version_available
trains-apiserver |     config.get("apiserver.check_for_updates.request_timeout_sec", 3.0)
trains-apiserver |   File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 75, in get
trains-apiserver |     return request('get', url, params=params, **kwargs)
trains-apiserver |   File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 60, in request
trains-apiserver |     return session.request(method=method, url=url, **kwargs)
trains-apiserver |   File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 533, in request
trains-apiserver |     resp = self.send(prep, **send_kwargs)
trains-apiserver |   File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 646, in send
trains-apiserver |     r = adapter.send(request, **kwargs)
trains-apiserver |   File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 516, in send
trains-apiserver |     raise ConnectionError(e, request=request)
trains-apiserver | requests.exceptions.ConnectionError: HTTPSConnectionPool(host='updates.trains.allegro.ai', port=443): Max retries exceeded with url: /updates (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f2f0dbce128>: Failed to establish a new connection: [Errno -2] Name or service not known',))
Then after I ran tha trains-init showing that it actually is repsonsive:
trains-apiserver | [2020-02-04 09:38:53,043] [8] [INFO] [trains.service_repo] Returned 200 for users.get_preferences in 5ms trains-apiserver | [2020-02-04 09:38:53,116] [8] [INFO] [trains.service_repo] Returned 200 for users.get_current_user in 6ms trains-apiserver | [2020-02-04 09:38:53,122] [8] [INFO] [trains.service_repo] Returned 200 for projects.get_all_ex in 9ms trains-apiserver | [2020-02-04 09:38:53,123] [8] [INFO] [trains.service_repo] Returned 200 for auth.get_credentials in 2ms trains-apiserver | [2020-02-04 09:38:53,214] [8] [INFO] [trains.service_repo] Returned 200 for server.report_stats_option in 1ms trains-apiserver | [2020-02-04 09:38:54,999] [8] [INFO] [trains.service_repo] Returned 200 for auth.create_credentials in 7ms
After I pasted the code from the generated access key:
api {     web_server: http://localhost:8080     api_server: http://localhost:8008     credentials {         "access_key" = "GF3TDJGA2PXZPYHU1DN1"         "secret_key" = "0LZeLYtm8#3p!SeigF=Jr6+JYD6hJUXrSqy^oZSt+uLmna9Ydf"     } }
I got this in the console:
`TRAINS SDK setup process
Please create new trains credentials through the profile page in your trains web app (e.g. http://localhost:8080/profile)
In the profile page, press "Create new credentials", then press "Copy to clipboard".
Paste copied configuration here:
api {
web_server: http://localhost:8080
api_server: http://localhost:8008
credentials {
"access_key" = "GF3TDJGA2PXZPYHU1DN1"
"secret_key" = "0LZeLYtm8#3p!SeigF=Jr6+JYD6hJUXrSqy^oZSt+uLmna9Ydf"
}
}
Detected credentials key="GF3TDJGA2PXZPYHU1DN1" secret="0LZe***"
API Host configured to: [http://localhost:8008]
Port 8008 is the api port. Replacing 8080 with 8008 for Web application
Web Application Host configured to: [http://localhost:8080]
File Store Host configured to: [http://localhost:8081]
TRAINS Hosts configuration:
Web App: http://localhost:8080
API: http://localhost:8008
File Store: http://localhost:8081
Verifying credentials ...
Exception: It seems api_server is misconfigured. Is this the TRAINS API server https://demoapi.trains.allegro.ai ?
Error: could not verify credentials: key=GF3TDJGA2PXZPYHU1DN1 secret=0LZeLYtm8#3p!SeigF=Jr6+JYD6hJUXrSqy^oZSt+uLmna9Ydf
Enter user access key:`
After which I put the same key and secret in and got the same error  api_server is misconfigured.
It seems there is some communication error but I cannot put my finger on it...

Hi @Zeko403 , my apologies for the delay, this thread somehow slipped away from me.
It seems there is a bug in the message print, it printed the default "https://demoapi.trains.allegro.ai" instead of the localhost:8008 (which will be promptly fixed in the next RC),
But the real question is why the credentials failed to verify with the API server onhttp://localhost:8008
This is actually consistent with the original post where it crashed with:
line 545, in _do_refresh_token
return resp["data"]["token"]
KeyError: 'data'

The reason the trains-init is suggesting it might be that the "api_server is misconfigured." is because the "data" field is missing on the returned request from the API server.
I suspect it might be the mongo docker. Could you verify that all docker services are working correctly ? Please execute:
$ docker ps
It should list all 6 containers with equal uptime (If one is misbehaving, it will either not be listed or uptime will be a few seconds since it will constantly restart):
CONTAINER ID        IMAGE                                                  COMMAND                  CREATED             STATUS              PORTS                                           NAMES
2d7820ab0fd3        allegroai/trains:latest                                "/opt/trains/wrapper…"   6 weeks ago         Up 17 minutes       8008/tcp, 8080-8081/tcp, <IP_ADDRESS>:8080->80/tcp   trains-webserver
9fc6acc64930        allegroai/trains:latest                                "/opt/trains/wrapper…"   6 weeks ago         Up 17 minutes       <IP_ADDRESS>:8008->8008/tcp, 8080-8081/tcp           trains-apiserver
8d944ba0ac80        redis:5.0                                              "docker-entrypoint.s…"   6 weeks ago         Up 17 minutes       <IP_ADDRESS>:6379->6379/tcp                          trains-redis
b6af7111e3eb        allegroai/trains:latest                                "/opt/trains/wrapper…"   6 weeks ago         Up 17 minutes       8008/tcp, 8080/tcp, <IP_ADDRESS>:8081->8081/tcp      trains-fileserver
4f9b7db06115        docker.elastic.co/elasticsearch/elasticsearch:5.6.16   "/bin/bash bin/es-do…"   2 months ago        Up 17 minutes       <IP_ADDRESS>:9200->9200/tcp, 9300/tcp                trains-elastic
3ed89332e232        mongo:3.6.5                                            "docker-entrypoint.s…"   2 months ago        Up 17 minutes       <IP_ADDRESS>:27017->27017/tcp                        trains-mongo

Hi again @bmartinn thanks for helping out
The output i get is pretty similar to what you expected:
$ docker ps
CONTAINER ID        IMAGE                                                  COMMAND                  CREATED             STATUS              PORTS                                           NAMES
0dac9c9577d4        allegroai/trains:latest                                "/opt/trains/wrapper…"   13 days ago         Up 34 seconds       8008/tcp, 8080-8081/tcp, <IP_ADDRESS>:8080->80/tcp   trains-webserver
cd7084d0a728        allegroai/trains:latest                                "/opt/trains/wrapper…"   13 days ago         Up 35 seconds       <IP_ADDRESS>:8008->8008/tcp, 8080-8081/tcp           trains-apiserver
4ef8fd7195f3        docker.elastic.co/elasticsearch/elasticsearch:5.6.16   "/bin/bash bin/es-do…"   13 days ago         Up 35 seconds       <IP_ADDRESS>:9200->9200/tcp, 9300/tcp                trains-elastic
ba92219c5993        allegroai/trains:latest                                "/opt/trains/wrapper…"   13 days ago         Up 35 seconds       8008/tcp, 8080/tcp, <IP_ADDRESS>:8081->8081/tcp      trains-fileserver
580b2c5d6e35        redis:5.0                                              "docker-entrypoint.s…"   13 days ago         Up 35 seconds       <IP_ADDRESS>:6379->6379/tcp                          trains-redis
e7da6389deae        mongo:3.6.5                                            "docker-entrypoint.s…"   13 days ago         Up 35 seconds       <IP_ADDRESS>:27017->27017/tcp                        trains-mongo

Hi @Zeko403,
This is very strange... It seems the mongodb container is up and running...
Can you please try entering the following cURL commands and sharing their output?
$ curl http://localhost:8008/server.info
$ curl -u GF3TDJGA2PXZPYHU1DN1:0LZeLYtm8#3p\!SeigF=Jr6+JYD6hJUXrSqy^oZSt+uLmna9Ydf http://localhost:8008/auth.login

The first call should simply display the server version and build, while the second one attempts to obtain a token based on the user credentials you shared in a previous post on this thread.

Hi @bmartinn and thanks for still helping out.
I tried calling curl for both links but I get no response whatsoever, then I updated curl to the newest version, still the same.
For curl.exe http://google.com I get
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE>

301 Moved

The document has moved
here.

So I tried adding "-v" in addition
curl.exe http://google.com -v
* Uses proxy env variable http_proxy == "my_proxy_link"
*   Trying <IP_ADDRESS>:80...
* Connected to "my_proxy_link" (my_proxy_ip) port of_my_proxy (#0)
> GET http://google.com/ HTTP/1.1
> Host: google.com
> User-Agent: curl/7.69.0-DEV
> Accept: */*
> Proxy-Connection: Keep-Alive
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 301 Moved Permanently
< Location: http://www.google.com/
< Content-Type: text/html; charset=UTF-8
< Date: Mon, 24 Feb 2020 08:33:18 GMT
< Expires: Wed, 25 Mar 2020 08:33:18 GMT
< Cache-Control: public, max-age=2592000
< Server: gws
< Content-Length: 219
< X-XSS-Protection: 0
< X-Frame-Options: SAMEORIGIN
<
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE>

301 Moved

The document has moved
here.

* Connection #0 to host "my_proxy_link" left intact

So I am not sure if there is something wrong because I am using a proxy, I did set up the proxy in the docker as described.
Interestingly, when I just try to look up http://localhost:8008/server.info in my browser
I get this :
{"meta":{"id":"32a9a6aab76d42218af7e597d53cac88","trx":"32a9a6aab76d42218af7e597d53cac88","endpoint":{"name":"server.info","requested_version":"2.6","actual_version":"1.0"},"result_code":200,"result_subcode":0,"result_msg":"OK","error_stack":""},"data":{"version":"0.13.0","build":"262","commit":""}}

Hi @Zeko403 , I think you just pointed to the problem, the proxy server configuration is not picked unless you are running with Admin privileges.
Could you run the python script with elevated Admin privilege? (You can start an elevated Admin cmd.exe shell, and execute the python script there)

Hi @bmartinn
I tried running Docker, cmd docker-compose -f docker-compose-win10.yml up and cmd curl http://localhost:8008/server.info with Admin rights ending up with the same result as above.
in addition, running trains-init also with admin rights gives the same error as before the Exception: It seems *api_server* is misconfigured. Is this the TRAINS API server https://demoapi.trains.allegro.ai ?
Nowhere have I configured the TRAINS API server to point to https://demoapi.trains.allegro.ai, so I don't know where this link is coming from.
I get the feeling that server api keeps looking at the https://demoapi.trains.allegro.ai instead of localhost:8080 to communicate with the webserver even when I am using the trains-init command.
I generated a new key on webserver and then called trains-init and got the following messages:
trains-init
TRAINS SDK setup process

Please create new trains credentials through the profile page in your trains web app (e.g. http://localhost:8080/profile)
In the profile page, press "Create new credentials", then press "Copy to clipboard".

Paste copied configuration here:
api {
    web_server: http://localhost:8080
    api_server: http://localhost:8008
    credentials {
        "access_key" = "ABAVVQVDZYH4TIEQS0J5"
        "secret_key" = "hR!9iSgffacQ3BLY+pTl@kZo8fzA63JwGqwaEWUgt3jB1pIbfw"
    }
}
Detected credentials key="ABAVVQVDZYH4TIEQS0J5" secret="hR!9***"
API Host configured to: [http://localhost:8008]
Port 8008 is the api port. Replacing 8080 with 8008 for Web application
Web Application Host configured to: [http://localhost:8080]
File Store Host configured to: [http://localhost:8081]

TRAINS Hosts configuration:
Web App: http://localhost:8080
API: http://localhost:8008
File Store: http://localhost:8081

Verifying credentials ...
Exception: It seems *api_server* is misconfigured. Is this the TRAINS API server https://demoapi.trains.allegro.ai ?
Error: could not verify credentials: key=ABAVVQVDZYH4TIEQS0J5 secret=hR!9iSgffacQ3BLY+pTl@kZo8fzA63JwGqwaEWUgt3jB1pIbfw
Enter user access key:

Why is there a message Port 8008 is the api port. Replacing 8080 with 8008 for Web application if I added the web_server: http://localhost:8080 and api_server: http://localhost:8008 ?

I get the feeling that server api keeps looking at the https://demoapi.trains.allegro.ai instead of localhost:8080 to communicate with the webserver even when I am using the trains-init command.
and
Why is there a message Port 8008 is the api port. Replacing 8080 with 8008 for Web application if I added the web_server: http://localhost:8080 and api_server: http://localhost:8008 ?

Apologies @Zeko403 , this was a bug with the information printed in trains-init (just the print, not the actual values). It is fixed in the latest trains package, you can upgrade with:
pip install trains==0.13.3
Here is a recap of what I understand so far:

Host OS Windows 10
trains-server running on the Host Windows 10 machine with Docker App
Windows browser can access "http://localhost:8080" (the TRAINS web app)
Windows browser can access "http://localhost:8008" (the TRAINS api server)
Running shell cmd.exe with user credentials cannot access the api server
Running shell cmd.exe with Admin credentials can access the api server

Is the above correct?

Here is a recap of what I understand so far:

Host OS Windows 10
trains-server running on the Host Windows 10 machine with Docker App
Windows browser can access "http://localhost:8080" (the TRAINS web app)
Windows browser can access "http://localhost:8008" (the TRAINS api server)
Running shell cmd.exe with user credentials cannot access the api server
Running shell cmd.exe with Admin credentials can access the api server

Is the above correct?

Correct,
Correct,
Correct, I use that to generate and add users credentials
Yes, but in the browser for only http://localhost:8008/ I get
{"meta":{"id":"100f122cce19428c80762296f6d93f77","trx":"100f122cce19428c80762296f6d93f77","endpoint":{"name":"","requested_version":1.0,"actual_version":null},"result_code":400,"result_subcode":0,"result_msg":"Invalid request path /","error_stack":null},"data":{}}
and when I use http://localhost:8008/server.info I get
{"meta":{"id":"631ffc54e9aa47ad874d728b8042391c","trx":"631ffc54e9aa47ad874d728b8042391c","endpoint":{"name":"server.info","requested_version":"2.6","actual_version":"1.0"},"result_code":200,"result_subcode":0,"result_msg":"OK","error_stack":""},"data":{"version":"0.13.0","build":"262","commit":""}}

When I call curl http://localhost:8008/server.info as you mention in 5. and 6. with and without admin rights I get the same as in the browser(s)
{"meta":{"id":"70fb185bf1d54d27aa200204b20b4137","trx":"70fb185bf1d54d27aa200204b20b4137","endpoint":{"name":"server.info","requested_version":"2.6","actual_version":"1.0"},"result_code":200,"result_subcode":0,"result_msg":"OK","error_stack":""},"data":{"version":"0.13.0","build":"262","commit":""}} C:\WINDOWS\system32>

I suspect this is the proxy forwarding ...
Could you please run the following python code and post the result:
import requests
requests.get('http://localhost:8008/server.info').text

it seems you are most likely right, the output is pretty long, but it is a response from the proxy server saying that the request is blocked due to invalid server IP.
I got in touch with our IT service regarding this issue, so we set up the system environment variable (NO_PROXY = localhost) to not go via proxy for localhost. The same is configured in the Docker settings and manual proxy settings are set up too.

hmmm, accessing localhost should not go through the proxy, this is why it took so long to debug ...
Out of curiosity , what happens when you execute:
import requests
requests.get('http://<IP_ADDRESS>:8008/server.info').text

I agree it shouldn't, especially after both browser and curl can access the same link.
The response for <IP_ADDRESS>:8008/server.info is the same as for the localhost
Maybe it is a problem with the requests package? It somehow bypasses the NO_PROXY settings set up in the system environment maybe?

Hurray!! :confetti_ball:
I guess the localhost was resolved by your system, and hence the proxy settings were added, while <IP_ADDRESS> is a direct loopback IP , so by definition, no proxy.
Okay, so all you need to do is configure trains with :
api {
    web_server: http://<IP_ADDRESS>:8080
    api_server: http://<IP_ADDRESS>:8008
    files_server: http://<IP_ADDRESS>:8081
    credentials {
        "access_key" = "ABAVVQVDZYH4TIEQS0J5"
        "secret_key" = "hR!9iSgffacQ3BLY+pTl@kZo8fzA63JwGqwaEWUgt3jB1pIbfw"
    }
}

Yes, only with the added line you mentioned it worked.
Regarding your test request this is the following output (a good one :))
>>> import os
>>> os.environ['no_proxy'] = '*'
>>> os.environ['NO_PROXY'] = '*'
>>> import requests
>>> requests.get('http://<IP_ADDRESS>:8008/server.info').text
'{"meta":{"id":"b6e93a900b6149a1b0c8d84fd30f419d","trx":"b6e93a900b6149a1b0c8d84fd30f419d","endpoint":{"name":"server.info","requested_version":"2.6","actual_version":"1.0"},"result_code":200,"result_subcode":0,"result_msg":"OK","error_stack":""},"data":{"version":"0.13.0","build":"262","commit":""}}'

Another weird thing is that the localhost:8080/profile has different users than the <IP_ADDRESS>:8080/profile, but both result with the same error after pasting the generated generator file after invoking trains-init in the console.

Okay we might have a solution:

In your shell cmd.exe set the following set no_proxy=<IP_ADDRESS> && set NO_PROXY=<IP_ADDRESS>
Open your browser http://<IP_ADDRESS>:8080 and create new credentials
Execute trains-init from the same shell, and set it with the newly generated credentials:

api {
    web_server: http://<IP_ADDRESS>:8080
    api_server: http://<IP_ADDRESS>:8008
    files_server: http://<IP_ADDRESS>:8081
    credentials {
        "access_key" =
        "secret_key" =
    }
}

:crossed_fingers:

Dude @bmartinn that worked!
Got the response now:
`Verifying credentials ...
Credentials verified!
New configuration stored in C:\Users\engineer\trains.conf
TRAINS setup completed successfully.`
I will now try the trains-agent and see if I can get it up and running
Thank you very much for all your help so far!

:rocket: Awesome !!!

Just to confirm, everything is up and running now after some extensive testing.

In your shell cmd.exe set the following set no_proxy=<IP_ADDRESS> && set NO_PROXY=<IP_ADDRESS>

has enabled normal communication between all the servers. Thanks again for all your help!


Added it_it as language for platform captions

Old system only allowed a single start form for each module. Now multiple, ordered forms can be assigned depending on a login role. Inherited roles are also considered.
The old module start form stays as fallback option.

Closed by accident, should be merged.


Create ferocitylootlogger

We are doing a bingo event and using the plugin Adam made for sending web hooks to Discord. This is just an addition in that we can allow the user to enter a list of items to also send if they don't meet the GP threshold

Changed the plugins property in runelite-plugin.properties to 'com.ferocitylootlogger.FerocityLoggerPlugin' which should be the correct path. Thanks Nightfirecat for your help!

Your config group should be unique to your plugin so it does not conflict with others.

Closing this PR as it is inactive.


This happened while trying to scan my network from Raspbian on a Pi 4

Scanning local network for Tuya devices...
Traceback (most recent call last):
File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/shane/.local/lib/python3.7/site-packages/tinytuya/main.py", line 48, in
tinytuya.wizard(color)
File "/home/shane/.local/lib/python3.7/site-packages/tinytuya/init.py", line 1479, in wizard
devices = deviceScan(False, 20)
File "/home/shane/.local/lib/python3.7/site-packages/tinytuya/init.py", line 1139, in deviceScan
client.bind(("", UDPPORT))
OSError: [Errno 98] Address already in use

OK so I figured that bit out on my own.. I had to Stop the HASS container.. now to figure out why this is:
[Dog Run Lights] - <IP_ADDRESS> - No Response
I can Ping the IP, I can control the device (On/Off) from HA and the Tuya app.. I get the same output from Raspbian on my Pi and my Win10 laptop.  The tuya app shows good network connectivity..

HASS was likely configured to open the UDP port 6666 for listening so the OS would not allow tinytuya to open it as well.
No response can indicate an invalid key.  What do you get with python -m tinytuya scan ?  Also, did you use the wizard (python -m tinytuya wizard) to grab the device LOCAL_KEY?
One other suggestion: make sure you are using the latest version of tinytuya (1.1.1):
pip install --upgrade tinytuya

I just did the upgrade to tiny tuya and still get the same result from "python -m tinytuya wizard"  I'll show you the piped result of the scan method:
Polling local devices...
←[0m←[32m[Dog Run Motion Sensor] - ←[0m←[97m←[2m0 - ←[0m←[91m←[1mError: No IP found←[97m←[0m
←[0m←[32m[Front Door Sensor] - ←[0m←[97m←[2m0 - ←[0m←[91m←[1mError: No IP found←[97m←[0m
←[0m←[32m[Bedroom Strip Left] - ←[0m←[97m←[2m<IP_ADDRESS> - ←[0m←[91m←[2mNo Response
←[0m←[32m[Bedroom Strip Right] - ←[0m←[97m←[2m<IP_ADDRESS> - ←[0m←[91m←[2mNo Response
←[0m←[32m[Dog Run Lights] - ←[0m←[97m←[2m<IP_ADDRESS> - ←[0m←[91m←[2mNo Response
←[0m←[32m[Bedroom TV Strip] - ←[0m←[97m←[2m<IP_ADDRESS> - ←[0m←[91m←[2mNo Response
←[0m←[32m[Den Lamp 1] - ←[0m←[97m←[2m<IP_ADDRESS> - ←[0m←[91m←[2mOff←[0m←[97m←[2m - DPS: {'1': False, '11': 0}
←[0m←[32m[Den Lamp 3] - ←[0m←[97m←[2m<IP_ADDRESS> - ←[0m←[91m←[2mOff←[0m←[97m←[2m - DPS: {'1': False, '11': 0}
←[0m←[32m[Den Lamp 2] - ←[0m←[97m←[2m<IP_ADDRESS> - ←[0m←[91m←[2mOff←[0m←[97m←[2m - DPS: {'1': False, '11': 0}
←[0m←[32m[Den Light 4] - ←[0m←[97m←[2m<IP_ADDRESS> - ←[0m←[91m←[2mOff←[0m←[97m←[2m - DPS: {'1': False, '2': 'white', '3': 62, '4': 0, '5': '1b07000010ff1b', '6': '00ff0000000000', '7': 'white', '8': 'ffffff03ff003e8', '9': 'ffff5001ff0000', '10': 'ffff0505ff000000ff00ffff00ff00ff0000ff000000'}
←[0m←[32m[Outside Light 4] - ←[0m←[97m←[2m<IP_ADDRESS> - ←[0m←[97m←[1mOn←[0m←[97m←[2m - DPS: {'1': True, '2': 255}
←[0m←[32m[Den Lights 6] - ←[0m←[97m←[2m<IP_ADDRESS> - ←[0m←[91m←[2mOff←[0m←[97m←[2m - DPS: {'1': False, '2': 'white', '3': 255, '4': 0, '5': '1b07000010ff1b', '6': '00ff0000000000', '7': 'ffff500100ff00', '8': 'ffff8003ff000000ff000000ff000000000000000000', '9': 'ffff5001ff0000', '10': 'ffff0505ff000000ff00ffff00ff00ff0000ff000000'}
←[0m←[32m[Den Lights 5] - ←[0m←[97m←[2m<IP_ADDRESS> - ←[0m←[91m←[2mOff←[0m←[97m←[2m - DPS: {'1': False, '2': 'white', '3': 255, '4': 0, '5': '1b07000010ff1b', '6': '00ff0000000000', '7': 'ffff500100ff00', '8': 'ffff8003ff000000ff000000ff000000000000000000', '9': 'ffff5001ff0000', '10': 'ffff0505ff000000ff00ffff00ff00ff0000ff000000'}
←[0m←[32m[Dimmer-Switch] - ←[0m←[97m←[2m<IP_ADDRESS> - ←[0m←[91m←[2mNo Response
←[0m←[32m[Outside Light 2] - ←[0m←[97m←[2m0 - ←[0m←[91m←[1mError: No IP found←[97m←[0m
←[0m←[32m[Outside light 1] - ←[0m←[97m←[2m0 - ←[0m←[91m←[1mError: No IP found←[97m←[0m
←[0m←[32m[Outside Light 3] - ←[0m←[97m←[2m0 - ←[0m←[91m←[1mError: No IP found←[97m←[0m
←[0m←[97m←[1m

←[97m←[0mSaving device snapshot data to snapshot.json

**←[0m←[32m[Bedroom Strip Left] - ←[0m←[97m←[2m<IP_ADDRESS> - ←[0m←[91m←[2mNo Response** this is what I don't get.. it was pulling before then stopped..

It does see some of your devices and is pulling back the data points, but a few errors as you noted:

No IP found - tinytuya tries to determine the IP address by listening to UDP traffic from the devices.  Naturally, if the device is unplugged it wont find the IP address.  Otherwise,  if the network is noisy you may need to have it wait longer by specifying a larger wait time (e.g. python -m tinytuya scan 30).  In some cases, I've seen Tuya devices stop broadcasting in which case a power cycle was required to have them announce again (firmware upgrades sometime help this)

No Response - I have seen this happen in two cases:  1) If you have the SmartLIfe app open, some devices will not allow a connection - closing the app can help.   2) The device uses a CONTROL command instead of the QUERY command to pull back data (seem a bit wrong but I have seen this) and for some reason, most of the devices have an ID string length of 22 instead of the standard 20.

Can you provide the output of a scan in addition to the wizard output to see if the "No Response" devices have an ID length of 22?   Also, I notice the color escape sequences in our output, are you using Windows "Command Prompt" or the "Powershell" terminal?  For Command Prompt (or if you are just piping output via RPi, Mac, Linux), you can use the -nocolor option to remove the color formatting escape sequences:
python -m tinytuya scan -nocolor

TinyTuya (Tuya device scanner) [1.1.1]
[Loaded devices.json - 17 devices]
Scanning on UDP ports 6666 and 6667 for devices (15 retries)...
Scanning... |
Den Lights 6 [Valid payload]: <IP_ADDRESS>
ID = 04434570b4e62d4c855b, Product ID = MQbuNaeaHJPSW5SC, Version = 3.1
Status: {'1': True, '2': 'white', '3': 255, '4': 0, '5': '1b07000010ff1b', '6': '00ff0000000000', '7': 'ffff500100ff00', '8': 'ffff8003ff000000ff000000ff000000000000000000', '9': 'ffff5001ff0000', '10': 'ffff0505ff000000ff00ffff00ff00ff0000ff000000'}
Scanning... /
Den Light 4 [Valid payload]: <IP_ADDRESS>
ID =<PHONE_NUMBER>f3eb606f00, Product ID = MQbuNaeaHJPSW5SC, Version = 3.1
Status: {'1': True, '2': 'white', '3': 62, '4': 0, '5': '1b07000010ff1b', '6': '00ff0000000000', '7': 'white', '8': 'ffffff03ff003e8', '9': 'ffff5001ff0000', '10': 'ffff0505ff000000ff00ffff00ff00ff0000ff000000'}
Scanning... -
Outside Light 4 [Valid payload]: <IP_ADDRESS>
ID = 50260100cc50e34998dd, Product ID = er62DNOUD6LiAJ3a, Version = 3.1
Status: {'1': True, '2': 255}
Scanning...
Den Lights 5 [Valid payload]: <IP_ADDRESS>
ID =<PHONE_NUMBER>7d3a198b34, Product ID = MQbuNaeaHJPSW5SC, Version = 3.1
Status: {'1': True, '2': 'white', '3': 255, '4': 0, '5': '1b07000010ff1b', '6': '00ff0000000000', '7': 'ffff500100ff00', '8': 'ffff8003ff000000ff000000ff000000000000000000', '9': 'ffff5001ff0000', '10': 'ffff0505ff000000ff00ffff00ff00ff0000ff000000'}
Scanning... |
Scanning... /
Den Lamp 3 [Valid payload]: <IP_ADDRESS>
ID = 40383726dc4f22e76454, Product ID = 6sV9KTLJQdb0INPB, Version = 3.3
    Status: {'1': True, '11': 0}
Scanning... -
Bedroom Strip Right [Valid payload]: <IP_ADDRESS>
ID = eb13e86690453773d8a2vt, Product ID = keys8pj5xkq8cmrm, Version = 3.3
    Status: {'20': False, '21': 'colour', '22': 1000, '23': 0, '24': '00fe03e801f4', '25': '000e0d0000000000000000c80000', '26': 0}
Scanning...
Bedroom TV Strip [Valid payload]: <IP_ADDRESS>
ID = eb644bae8f2d4c7242d1ft, Product ID = keys8pj5xkq8cmrm, Version = 3.3
    Status: {'20': False, '21': 'colour', '22': 1000, '23': 0, '24': '00fe03e801f4', '25': '000e0d0000000000000000c80000', '26': 0}
Scanning... |
Dog Run Lights [Valid payload]: <IP_ADDRESS>
ID = eb33b396ab9c8b109fizhk, Product ID = keys8pj5xkq8cmrm, Version = 3.3
    Status: {'20': False, '21': 'colour', '22': 1000, '23': 1000, '24': '00ee00c40323', '25': '05646401000003e803e800000000646401007803e803e80000000064640100f003e803e800000000646401003d03e803e80000000064640100ae03e803e800000000646401011303e803e800000000', '26': 0}
Scanning... /
Dimmer-Switch [Valid payload]: <IP_ADDRESS>
ID = 60558167f4cfa2072386, Product ID = tebc75erlgslgpn5, Version = 3.3
    No Stats for <IP_ADDRESS>: Unable to poll
Scanning... -
Den Lamp 1 [Valid payload]: <IP_ADDRESS>
ID = 53350301dc4f22d9a157, Product ID = 6sV9KTLJQdb0INPB, Version = 3.3
    Status: {'1': True, '11': 0}
Scanning...
Den Lamp 2 [Valid payload]: <IP_ADDRESS>
ID = 05200285dc4f22c83e12, Product ID = 6sV9KTLJQdb0INPB, Version = 3.3
    Status: {'1': True, '11': 0}
Scanning... |
Scanning... /
Scanning... -
Scanning...
Scanning... |
Scanning... /
Scanning... -
Scanning...
Scanning... |
Scanning... /
Scanning... -
Scanning...
Scanning... |
Scanning... /
Scanning... -
Scan Complete!  Found 11 devices.

I have 3 lights unplugged (outside light 1 2 3) so I get it not pulling data, everything else is plugged in

TinyTuya (Tuya device scanner) [1.1.1]
[Loaded devices.json - 17 devices]
Scanning on UDP ports 6666 and 6667 for devices (15 retries)...
Scanning... |
Outside Light 4 [Valid payload]: <IP_ADDRESS>
ID = 50260100cc50e34998dd, Product ID = er62DNOUD6LiAJ3a, Version = 3.1
Status: {'1': True, '2': 255}
Scanning... /
Den Lights 5 [Valid payload]: <IP_ADDRESS>
ID =<PHONE_NUMBER>7d3a198b34, Product ID = MQbuNaeaHJPSW5SC, Version = 3.1
Status: {'1': True, '2': 'white', '3': 255, '4': 0, '5': '1b07000010ff1b', '6': '00ff0000000000', '7': 'ffff500100ff00', '8': 'ffff8003ff000000ff000000ff000000000000000000', '9': 'ffff5001ff0000', '10': 'ffff0505ff000000ff00ffff00ff00ff0000ff000000'}
Scanning... -
Den Lights 6 [Valid payload]: <IP_ADDRESS>
ID = 04434570b4e62d4c855b, Product ID = MQbuNaeaHJPSW5SC, Version = 3.1
Status: {'1': True, '2': 'white', '3': 255, '4': 0, '5': '1b07000010ff1b', '6': '00ff0000000000', '7': 'ffff500100ff00', '8': 'ffff8003ff000000ff000000ff000000000000000000', '9': 'ffff5001ff0000', '10': 'ffff0505ff000000ff00ffff00ff00ff0000ff000000'}
Scanning...
Den Light 4 [Valid payload]: <IP_ADDRESS>
ID =<PHONE_NUMBER>f3eb606f00, Product ID = MQbuNaeaHJPSW5SC, Version = 3.1
Status: {'1': True, '2': 'white', '3': 62, '4': 0, '5': '1b07000010ff1b', '6': '00ff0000000000', '7': 'white', '8': 'ffffff03ff003e8', '9': 'ffff5001ff0000', '10': 'ffff0505ff000000ff00ffff00ff00ff0000ff000000'}
Scanning... |
Scanning... /
Den Lamp 3 [Valid payload]: <IP_ADDRESS>
ID = 40383726dc4f22e76454, Product ID = 6sV9KTLJQdb0INPB, Version = 3.3
Status: {'1': True, '11': 0}
Scanning... -
Bedroom Strip Right [Valid payload]: <IP_ADDRESS>
ID = eb13e86690453773d8a2vt, Product ID = keys8pj5xkq8cmrm, Version = 3.3
Status: {'20': False, '21': 'colour', '22': 1000, '23': 0, '24': '00fe03e801f4', '25': '000e0d0000000000000000c80000', '26': 0}
Scanning...
Bedroom TV Strip [Valid payload]: <IP_ADDRESS>
ID = eb644bae8f2d4c7242d1ft, Product ID = keys8pj5xkq8cmrm, Version = 3.3
Status: {'20': False, '21': 'colour', '22': 1000, '23': 0, '24': '00fe03e801f4', '25': '000e0d0000000000000000c80000', '26': 0}
Scanning... |
Bedroom Strip Left [Valid payload]: <IP_ADDRESS>
ID = ebe817ae915f4013674rh4, Product ID = keys8pj5xkq8cmrm, Version = 3.3
Status: {'20': False, '21': 'colour', '22': 1000, '23': 0, '24': '00fe03e801f4', '25': '000e0d0000000000000000c80000', '26': 0}
Scanning... /
Dog Run Lights [Valid payload]: <IP_ADDRESS>
ID = eb33b396ab9c8b109fizhk, Product ID = keys8pj5xkq8cmrm, Version = 3.3
Status: {'20': False, '21': 'colour', '22': 1000, '23': 1000, '24': '00ee00c40323', '25': '05646401000003e803e800000000646401007803e803e80000000064640100f003e803e800000000646401003d03e803e80000000064640100ae03e803e800000000646401011303e803e800000000', '26': 0}
Scanning... -
Dimmer-Switch [Valid payload]: <IP_ADDRESS>
ID = 60558167f4cfa2072386, Product ID = tebc75erlgslgpn5, Version = 3.3
No Stats for <IP_ADDRESS>: Unable to poll
Scanning...
Den Lamp 1 [Valid payload]: <IP_ADDRESS>
ID = 53350301dc4f22d9a157, Product ID = 6sV9KTLJQdb0INPB, Version = 3.3
Status: {'1': True, '11': 0}
Scanning... |
Den Lamp 2 [Valid payload]: <IP_ADDRESS>
ID = 05200285dc4f22c83e12, Product ID = 6sV9KTLJQdb0INPB, Version = 3.3
Status: {'1': True, '11': 0}
Scanning... /
Scanning... -
Scanning...
Scanning... |
Scanning... /
Scanning... -
Scanning...
Scanning... |
Scanning... /
Scanning... -
Scanning...
Scanning... |
Scanning... /
Scanning... -
Scanning... \
Scan Complete!  Found 12 devices.

Thanks!  I'm probably missing something obvious, but is there still a problem?  It looks like you are getting a response for your devices:
Bedroom Strip Left [Valid payload]: <IP_ADDRESS>
ID = ebe817ae915f4013674rh4, Product ID = keys8pj5xkq8cmrm, Version = 3.3
Status: {'20': False, '21': 'colour', '22': 1000, '23': 0, '24': '00fe03e801f4', '25': '000e0d0000000000000000c80000', '26': 0}

That looks like a RGB Color light.  Here are the details for those DPS values:
https://github.com/jasonacox/tinytuya#version-33---light-type-rgb
If you are interested, here is an example script on how to control an RGB light: https://github.com/jasonacox/tinytuya/blob/1f4644c78682f0cfded21b7b38fa9fee04341501/examples/bulb.py#L1-L118

I figured it all out days ago.. sorry I should have updated.

Awesome!  Thanks for the note.  I'll close this issue.


delta plus 12/1/15

https://github.com/ga-dc/curriculum/issues/527

https://github.com/ga-dc/curriculum/issues/524


Switching tabs using cmd+arrows no longer works

In iTerm2 I´m able to switch to the next or previous tab using cmd+arrow left/right.
I´m pretty sure this was working already when using version 0.6. but currently it´s not working anymore.

https://github.com/zeit/hyperterm/releases#the_unexpected
https://github.com/zeit/hyperterm/pull/217#discussion_r72173465
That's the new default, and there is currently no way to change this 😕

Ok thanks, did not notice that.

command+alt+left arrow -> move Left
command+alt+right arrow -> move Right

No way to override this in preferences? Trying shifting from iTerm2, really enjoying hyper, but the Cmd-Left / Cmd-Right is deeply ingrained.

All keymaps can be modified now: https://hyper.is/#keymaps

cmd+[ switches to the left
cmd+] switches to the right
Provided by @chabou answer above.


reusable-crowdsale: Add view modifier to buyTokensPostHook

According to checks effects interactions pattern, state transition should not follow interaction with other contracts.
BaseCrowdsale has 2 hooks for buyTokens. After verifying condition with validPurchaes() function, buyTokensPreHook is invoked before token generation. After the generation, buyTokensPostHook is invoked. buyTokensPostHook should change contract state according to above pattern.
We should add view modifier to buyTokensPostHook functions, and merge all state changing logic into buyTokensPreHook functions.

solved https://github.com/Onther-Tech/tokyo/commit/1bb5eb66bb2825844347c3f7cc18f01a1e003768