Webpack and other bundler support

Seems like a lot of users want to use webpack with a number of the nodejs client libraries.
Threads where this comes up:

https://github.com/googleapis/nodejs-dialogflow/issues/390
https://github.com/googleapis/nodejs-dialogflow/issues/16
https://github.com/googleapis/nodejs-speech/issues/367
https://github.com/googleapis/cloud-trace-nodejs/issues/774
https://github.com/googleapis/nodejs-dialogflow/issues/551

Threads demonstrating use of fallback true:

using fallback=true with speech.

There are short-term and long-term plans for this.
The short-term solution is to make google-gax webpack'able by replacing all the gRPC specifics with grpc-fallback, which is, essentially, sending serialized protobuf to HTTP/1 endpoints. Our two interns, @libanodowa and @ramya-ramalingam, are working on this project. We expect it to be done some time this June/July.
The long-term solution is to use grpc-web library, which (unfortunately) is not compatible to grpc / @grpc/grpc-js in terms of the interface it provides, so plugging it into gax would not be that easy. @eoogbe is working on making grpc-web work for our use cases.

We've been able to support Webpack builds of google cloud libraries in ncc through the use of static analysis in our asset relocation loader (https://github.com/zeit/webpack-asset-relocator-loader), which should support both client and server use cases. We've been fixing bugs as we find them on the grpc libraries, and need to support this anyway.
If it would be useful to provide some examples of browser workflows with this approach we could gladly assist with this.

@guybedford :wave: would love to work with you to start adding some web examples over time.

@bcoe more than happy to share how we achieved this with ncc, and possibly even make our approach available to other webpack users, but it does involve an asset analysis running against all source code to determine the ".proto" references.
Having a fallback JSON-loading / browser bundling approach seems to make sense though architecturally for this project. Perhaps a simple "browser": { "./loader.js": "./loader-browser" } mapping in the package.json could fork between the loader for Node.js and browsers, switching between the binary and JSON formats appropriately. I think that's a well-enough established pattern to work for users, and might simplify the detections and code inclusions.

@alexander-fenster is there a thread you can link to here that demonstrates how to use the grpc-fallback, I know you documented this in another thread.

@bcoe For using it with Node.js and service account, just pass fallback: true in the client constructor and it will go on the fallback route without gRPC and will use require() to read the JSON proto file:
const client = new client.FooClient({fallback: true});

To use in non-Node setting, one cannot use service account and will need to use OAuth2 workflow. It can be done using the following code. It really depends on how your application works (if it's a website, or an Electron app, or something else), so I'm just showing the general idea of performing the OAuth2 workflow leaving the specifics behind (e.g. how to redirect the user to auth URI, how to extract the auth code from the query string, etc.)
The parameters client_id and client_secret should be obtained from Google Cloud Console.
const auth = require('google-auth-library');
const oauth2client = new auth.OAuth2Client(client_id, client_secret, callback_uri);
const authUrl = oauth2client.generateAuthUrl({
  access_type: 'offline',
  scope: [    // scopes for Dialogflow
    'https://www.googleapis.com/auth/cloud-platform',
    'https://www.googleapis.com/auth/dialogflow'
  ]
});
// redirect user to authUrl and wait for them coming back to callback_uri

// in callback_uri handler, get the auth code from query string and obtain a token:
const tokenResponse = await oauth2client.getToken(code);
oauth2client.setCredentials(tokenResponse.tokens);

// now use this oauth2client!
const sessionClient = new dialogflow.SessionsClient({ auth: oauth2client }); // <-- auth passed here

I am very new to development, so please forgive me if I'm overlooking the answer to this...
I am using the Google Drive api as a database of sorts to send json from an Electron application to the Drive, and then I need to retrieve that json in a web application. I'm having to do this due to the Electron application being used offline.
Since the web application uses webpack (using React and Redux), it won't let me pull the data from the Drive, without running the script that pulls the data independently (command line).
`ERROR in ./node_modules/google-auth-library/build/src/auth/googleauth.js
Module not found: Error: Can't resolve 'child_process' in 'C:\Users\SSC05\Desktop\Class\indecision\pid_web\node_modules\google-auth-library\build\src\auth'
@ ./node_modules/google-auth-library/build/src/auth/googleauth.js 16:24-48
@ ./node_modules/google-auth-library/build/src/index.js
@ ./node_modules/googleapis-common/build/src/index.js
@ ./node_modules/googleapis/build/src/googleapis.js
@ ./node_modules/googleapis/build/src/index.js
@ ./src/scripts/dataPull.js
@ ./src/routers/AppRouter.js
@ ./src/app.js
ERROR in ./node_modules/https-proxy-agent/index.js
Module not found: Error: Can't resolve 'net' in 'C:\Users\SSC05\Desktop\Class\indecision\pid_web\node_modules\https-proxy-agent'
@ ./node_modules/https-proxy-agent/index.js 5:10-24
@ ./node_modules/gaxios/build/src/gaxios.js
@ ./node_modules/gaxios/build/src/index.js
@ ./node_modules/google-auth-library/build/src/transporters.js
@ ./node_modules/google-auth-library/build/src/index.js
@ ./node_modules/googleapis-common/build/src/index.js
@ ./node_modules/googleapis/build/src/googleapis.js
@ ./node_modules/googleapis/build/src/index.js
@ ./src/scripts/dataPull.js
@ ./src/routers/AppRouter.js
@ ./src/app.js
ERROR in ./src/scripts/dataPull.js
Module not found: Error: Can't resolve 'readline' in 'C:\Users\SSC05\Desktop\Class\indecision\pid_web\src\scripts'
@ ./src/scripts/dataPull.js 3:15-34
@ ./src/routers/AppRouter.js
@ ./src/app.js
ERROR in ./node_modules/https-proxy-agent/index.js
Module not found: Error: Can't resolve 'tls' in 'C:\Users\SSC05\Desktop\Class\indecision\pid_web\node_modules\https-proxy-agent'
@ ./node_modules/https-proxy-agent/index.js 6:10-24
@ ./node_modules/gaxios/build/src/gaxios.js
@ ./node_modules/gaxios/build/src/index.js
@ ./node_modules/google-auth-library/build/src/transporters.js
@ ./node_modules/google-auth-library/build/src/index.js
@ ./node_modules/googleapis-common/build/src/index.js
@ ./node_modules/googleapis/build/src/googleapis.js
@ ./node_modules/googleapis/build/src/index.js
@ ./src/scripts/dataPull.js
@ ./src/routers/AppRouter.js
@ ./src/app.js`
This, of course, isn't going to work for the web application, because it needs to pull data from the Drive every time the site is visited.
I know this is a very specific situation, but I'm just not sure where to implement the 'fallback-route', or if that is even what needs to occur.
Again, please forgive me if this is basic knowledge.

Hi @ddittoPersevere, thank you for asking! It's possible to use the Drive library in your web application if you prepare a separate Webpack bundle by following these steps.  Please let us know if anything is unclear!

Hey @alexander-fenster, I'm trying to use googleapis/nodejs-bigtable on the express server of an angular universal project (which uses webpack). I've read this thread and many others related to it but couldn't understand what is the current status of googleapis nodejs client libraries support for webpack.
I tried using the loader @guybedford provided and it works great, but I guess it's not the official solution to this problem. So basically what I'm asking is:

Is there going to be an inherent webpack support in those libraries soon?
What is the team's suggested solution right now? is it @guybedford 's loader?

@omrib15 The webpack support across libraries works using the gRPC-fallback mode (enabled automatically if you're in browser, or can be enabled explicitly by passing { fallback: true } to a client constructor). This is the suggested solution. One thing that is different is the authentication. There are two options:

if you're in browser, you need to implement OAuth2 workflow and provide an authenticated instance of OAuth2Client from google-auth-library to the client constructor ({ fallback: true, auth: auth }).

if you're in Node or in any other environment that supports reading service account keys from the filesystem using Node-compatible fs, the regular Node.js authentication should just work for fallback mode.

When I say "it works", I mean that (a) it's implemented, and (b) we do have real users using it for different libraries, and (c) we are not going to break it or remove it, and (d) we consider the compatibility when we do semver releases.
Having that said, at this time this feature is considered experimental, that's why there is no official documentation yet. I'll be happy to provide you with any kind of support you might need - share your code and we'll try to figure out what's wrong.

How does it work with something like @google-cloud/kms where you create the client like
import {KeyManagementServiceClient} from "@google-cloud/kms";

const client = new KeyManagementServiceClient({...}); // I don't see  fallback: true here?

@alexander-fenster Thanks a lot for the support, I really appreciate it.
Up until recently, we have used bigtable for pure node projects. Now, we want to integrate it into our Angular Universal projects, to get our bigtable data for server side rendering. I will emphasise that No access to it will be made in the browser.
So, my plan is to create the bigtable client instance on our express server and inject it into angular server services (achieved by having different service implementation provided for server and browser). Note that the express server is built with webpack for internal reasons.
I first tried creating the client the way I did on our node projects:
const Bigtable = require('@google-cloud/bigtable'); const bigtableClient = new Bigtable({projectId: 'my-project-id'})
and got the runtime error:
`path.js:39
throw new ERR_INVALID_ARG_TYPE('path', 'string', path);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type number
at assertPath (path.js:39:11)
at Object.dirname (path.js:1268:5)
at Object. (.../dist/server.js:503027:36)
at webpack_require (.../dist/server.js:20:30)
at Object. (.../dist/server.js:502530:25)
at Object.defineProperty.value (.../dist/server.js:502790:30)
at webpack_require (.../dist/server.js:20:30)
at Object.defineProperty.value (.../dist/server.js:502451:16)
at webpack_require (.../dist/server.js:20:30)
at Object.defineProperty.value (.../dist/server.js:501408:22)
Tried creating the bigtable client with fallback set to true as you said:const bigtableClient = new Bigtable({fallback: true, projectId: 'my-project-id'})and without projectId:const bigtableClient = new Bigtable({fallback: true})`
but still got the same path.js error.
I also tried adding the same ignore rules as in bigtable's webpack.config and install null-loader. got a different error:
ERROR in<EMAIL_ADDRESS>Module parse failed: Unexpected end of JSON input while parsing near '' You may need an appropriate loader to handle this file type. SyntaxError: Unexpected end of JSON input while parsing near ''
Last, I tried @zeit/webpack-asset-relocator-loader, and It worked. The only change it made was relocating protobuf and protos dirs, along with operations.json and protos.json files in the dist folder. Couldn't really figure out why this worked.
I realise that using the fallback option is the suggested solution right now, but it not working for me with bigtable client.
Thanks again for helping me with this, using bigtable on our universal projects is really crucial to us and this compatabillity issue is the only thing holding it back.

@omrib15 Just to confirm, you're going to webpack the package with "target": "node" and the environment you're going to run it in will have a real Node.js environment (with http2 module), is that right?  If so, you don't need fallback, it should just work, but...
I was able to reproduce the problem you mentioned,
ERROR in<EMAIL_ADDRESS>Module parse failed: Unexpected end of JSON input while parsing near ''
File was processed with these loaders:
 * ./node_modules/null-loader/dist/cjs.js

The package.json file mentioned is pretty valid (can be parsed without any problems), I will try to dig deeper to see what the issue might be.

@alexander-fenster Yup, I webpack the file express server file (the only one who imports and instantiates Bigtable) with target: 'node' and then I run the wepacked file with node v10.13.0.

@alexander-fenster Thanks a lot for the support, I really appreciate it.
Up until recently, we have used bigtable for pure node projects. Now, we want to integrate it into our Angular Universal projects, to get our bigtable data for server side rendering. I will emphasise that No access to it will be made in the browser.
So, my plan is to create the bigtable client instance on our express server and inject it into angular server services (achieved by having different service implementation provided for server and browser). Note that the express server is built with webpack for internal reasons.
I first tried creating the client the way I did on our node projects:
const Bigtable = require('@google-cloud/bigtable');
// also tried import as part of my sanity check
const bigtableClient = new Bigtable({projectId: 'my-project-id'})

and got the runtime error:
path.js:39
    throw new ERR_INVALID_ARG_TYPE('path', 'string', path);
    ^

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type number
    at assertPath (path.js:39:11)
    at Object.dirname (path.js:1268:5)
    at Object.<anonymous> (.../dist/server.js:503027:36)
    at __webpack_require__ (.../dist/server.js:20:30)
    at Object.<anonymous> (.../dist/server.js:502530:25)
    at Object.defineProperty.value (.../dist/server.js:502790:30)
    at __webpack_require__ (.../dist/server.js:20:30)
    at Object.defineProperty.value (.../dist/server.js:502451:16)
    at __webpack_require__ (.../dist/server.js:20:30)
    at Object.defineProperty.value (.../dist/server.js:501408:22)

Tried creating the bigtable client with fallback set to true as you said:
const bigtableClient = new Bigtable({fallback: true, projectId: 'my-project-id'})
and without projectId:
const bigtableClient = new Bigtable({fallback: true})
but still got the same path.js error.
I also tried adding the same ignore rules as in bigtable's webpack.config and install null-loader. got a different error:
ERROR in<EMAIL_ADDRESS>Module parse failed: Unexpected end of JSON input while parsing near ''
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected end of JSON input while parsing near ''

Last, I tried @zeit/webpack-asset-relocator-loader, and It worked. The only change it made was relocating protobuf and protos dirs, along with operations.json and protos.json files in the dist folder. Couldn't really figure out why this worked.
I realise that using the fallback option is the suggested solution right now, but it not working for me with bigtable client.
Thanks again for helping me with this, using bigtable on our universal projects is really crucial to us and this compatabillity issue is the only thing holding it back.

Could you share your asset-relocator config?

if you're in Node or in any other environment that supports reading service account keys from the filesystem using Node-compatible fs, the regular Node.js authentication should just work for fallback mode.

What about GKE workload identity? When I set fallback: true I get an error that I need to provide auth

@RXminuS webpack config for the asset relocator is as mentioned in the readme:
module: {     rules: [       {         // For node binary relocations, include ".node" files as well here         test: /\.(m?js|node)$/,         // it is recommended for Node builds to turn off AMD support         parser: { amd: false },         use: {           loader: '@zeit/webpack-asset-relocator-loader',           options: {             // optional, base folder for asset emission (eg assets/name.ext)             outputAssetBase: 'assets',             // optional, restrict asset emissions to only the given folder.             filterAssetBase: process.cwd(),             // optional, permit entire __dirname emission             // eg const nonAnalyzable = __dirnamecan emit everything in the folder             emitDirnameAll: false,             // optional, permit entire filterAssetBase emission             // egconst nonAnalyzable = process.cwd() can emit everything in the cwd()             emitFilterAssetBaseAll: false,             // optional, a list of asset names already emitted or             // defined that should not be emitted             existingAssetNames: [],             wrapperCompatibility: false, // optional, default             // build for process.env.NODE_ENV = 'production'             production: true, // optional, default is undefined             cwd: process.cwd(), // optional, default             debugLog: false, // optional, default           }         }       }     ]   }

@omrib15 worked like a charm! Thank you ❤

@alexander-fenster  Hey, any updates on the issue?

No updates.  If there are, we'll happily post them!

@alexander-fenster hey, I have the same bug in https://github.com/googleapis/nodejs-speech/issues/489 when I run serve:ssr command. can you help me to fix this bug.
`  throw err;
^
Error: ENOENT: no such file or directory, open 'google/protobuf/api.proto'
at Object.openSync (fs.js:440:3)
at Object.readFileSync (fs.js:342:35)`
thank you

@alexander-fenster  Thank you for the example above. I am attempting to use this flow with Firebase using their SDK for Google OAuth2 following the documentation here (https://firebase.google.com/docs/auth/web/google-signin). Upon the user sign in I received "response.credential" and "response.user". Will I be able to authenticate a Google API with this information, or do I need to set up a custom back end Client. Thank you and please let me know if there is a more standard workflow.
Use case: Text-detection within a web app. Although there were MLKits for mobile, I was unable to find one for Web applications. Previously I have used cloud run with a service account to pass data, but due to file uploading and such, I think having a direct link to the API within my web app will reduce complexity and help with speech (no need to upload and then check).

@bcoe For using it with Node.js and service account, just pass fallback: true in the client constructor and it will go on the fallback route without gRPC and will use require() to read the JSON proto file:
const fooClient = new client.FooClient({fallback: true});

To use in non-Node setting, one cannot use service account and will need to use OAuth2 workflow. It can be done using the following code. It really depends on how your application works (if it's a website, or an Electron app, or something else), so I'm just showing the general idea of performing the OAuth2 workflow leaving the specifics behind (e.g. how to redirect the user to auth URI, how to extract the auth code from the query string, etc.)
The parameters client_id and client_secret should be obtained from Google Cloud Console.
const client = require('@google-cloud/foo'); // any GAPIC library

const auth = require('google-auth-library');
const oauth2client = new auth.OAuth2Client(client_id, client_secret, callback_uri);
const authUrl = oauth2client.generateAuthUrl({
  access_type: 'offline',
  scope: client.FooClient.scopes
});
// redirect user to authUrl and wait for them coming back to callback_uri

// in callback_uri handler, get the auth code from query string and obtain a token:
const tokenResponse = await oauth2client.getToken(code);
oauth2client.setCredentials(tokenResponse.tokens);

// now use this oauth2client!
const fooClient = new client.FooClient({ auth: oauth2client }); // <-- auth passed here

If the library detects it's running in a browser (has a window global object), it will follow the fallback route automatically (no need to pass fallback: true).

Using {fallback: true} in the constructor within node implementation gives a new error -->TypeError: fetch is not a function

@a281983 what environment are you attempting to run the @google-cloud/vision library in, would you be able to provide a code example that reproduces the issue you're seeing.

@a281983 What should happen is:  in Node, fetch will be taken from node-fetch, while in browser it will use window.fetch. Some corner cases might include Electron. How exactly do you use it?

Hi @alexander-fenster , I have a problem similar to the one @a281983 posted here.
I am using the @google-cloud/speech library and bundling an express app with webpack.
I had the proto error and fixed it by passing {fallback: true} to the constructor.
Right now I have the error UnhandledPromiseRejectionWarning: TypeError: fetch is not a function, which is triggered when in my code I execute the recognize function of the client. Here the related portions of my code:
// THIS IS THE CONFIG PASSED TO THE CONSTRUCTOR
authSTTConfig: {
        projectId: process.env.STT_PROJECT_ID,
        keyFilename: process.env.STT_KEY_FILENAME,
        fallback: true,
    }
//

...

class GCloudSpeechAPIv2 {
    constructor() {
        this.audioChunks = [];
        this.finalAudio = null;

        this.instanceSTT = new speech.SpeechClient(authSTTConfig);

        this.requestSTT = {
            // interimResults: true,
            config: cloudSTTConfig,
        };
    }

    async transcribeAudio() {
        this.requestSTT.audio = {
            content: this.finalAudio.toString("base64"),
        };

        // console.log("transcribeAudio");
        const [response] = await this.instanceSTT.recognize(this.requestSTT); // ERROR IS THROWN HERE
        const transcription = response.results
            .map((result) => result.alternatives[0].transcript)
            .join("");
        return transcription;
    }

...code continues

@en4letto If you pass {fallback: true}, the execution should go to node_modules/google-gax/build/src/fallback.js. There is just one fetch call there, could you add some console.log statements to see what kind of fetch is being called there? Should be window.fetch, not the one from node-fetch.

Thank you for these details! I will test if adding .default does not break any of the scenarios covered by CI, and can just release google-gax with this fix. If we are lucky it will happen early next week and so you won't need to make any hacks to temporary work around this.
Having said that - @en4letto can you tell us more about the environment you're running your code in? If this is an express app that runs with Node, why do you need to webpack it? Fallback mode was initially supposed to help run the code in browsers (where gRPC is not available), so I just want to understand your use case and maybe make some recommendations.

@alexander-fenster I am setting up a production environment in GCP. I'm using the managed instance groups, and I wanted the lowest startup time possible for the instances inside the node group.
The deploy is managed via Gitlab CI and the build job (npm install and webpack bundling) is done by a "service" instance (a simple compute engine VM outside of the groups).
I didn't want to move the node_modules folder between different VMs and I found a way to bundle the whole express app in a single JS file with webpack so that the instances inside the managed group only have to get this JS bundle and execute it with node.
Hope this is clear! If you have some reccomendations and suggestions I'll be happy to know them, as Node.js is not my specialty :)

Hey @alexander-fenster @en4letto,
is there an issue which I can follow for the google-gax node-fetch thing? Had no luck finding the right one. Trying to use the @google-cloud/recaptcha-enterprise package with the fallback option. We are bundling our node lambdas with webpack and running into this error.
Thanks in advance :)

@alexander-fenster confirming that I run across this fetch problem in an Electron environment, as you noted above

I was generally able to workaround webpack issues using { fallback: true } in client constructors with target: 'node' & { resolve: { mainFields: ['main'] } } (https://webpack.js.org/configuration/resolve/#resolvemainfields) in the webpack config. This also seems to work for other libs using gax.

The fix is coming to all the libraries that will stop using fs and will start using require to load the JSONs instead. It should help all of you folks who use webpack with target: 'node'. Stay tuned :)

@s-dschro any update on what exactly? :) This issue is a collection of various problems related to webpack and/or other bundlers. What is the exact error you have with @google-cloud/trace-agent?

@bcoe For using it with Node.js and service account, just pass fallback: true in the client constructor and it will go on the fallback route without gRPC and will use require() to read the JSON proto file:
const fooClient = new client.FooClient({fallback: true});

To use in non-Node setting, one cannot use service account and will need to use OAuth2 workflow. It can be done using the following code. It really depends on how your application works (if it's a website, or an Electron app, or something else), so I'm just showing the general idea of performing the OAuth2 workflow leaving the specifics behind (e.g. how to redirect the user to auth URI, how to extract the auth code from the query string, etc.)
The parameters client_id and client_secret should be obtained from Google Cloud Console.
const client = require('@google-cloud/foo'); // any GAPIC library

const auth = require('google-auth-library');
const oauth2client = new auth.OAuth2Client(client_id, client_secret, callback_uri);
const authUrl = oauth2client.generateAuthUrl({
  access_type: 'offline',
  scope: client.FooClient.scopes
});
// redirect user to authUrl and wait for them coming back to callback_uri

// in callback_uri handler, get the auth code from query string and obtain a token:
const tokenResponse = await oauth2client.getToken(code);
oauth2client.setCredentials(tokenResponse.tokens);

// now use this oauth2client!
const fooClient = new client.FooClient({ auth: oauth2client }); // <-- auth passed here

If the library detects it's running in a browser (has a window global object), it will follow the fallback route automatically (no need to pass fallback: true).

@alexander-fenster When trying the non-Node sample provided within a React app, I get this error message:
Module not found: Can't resolve 'http2' in ...
Any ideas what could be causing this?

@JJPell http2 only exists in Node.js and is used by gRPC transport.  In React app, try using fallback: true when you create an instance of the client, and set your bundler config to ignore http2.

How soon is the fix coming?

Hi I'm trying to use this package or https://github.com/google/google-api-javascript-client for using google tag manager on react-native, react-native has fetch and no window object, anyone has a working build configuration for it?

Hi I'm trying to use google cloud secret manager but this error keeps showing up whenever I try to import the SecretManagerServiceClient I tried following the documentation here but still can't make it run I also tried adding fallback: true to the constructor but it keep showing this error
./node_modules/tunnel-agent/index.js:6:12-28 - Error: Module not found: Error: Can't resolve 'https' in '/[file path]/node_modules/tunnel-agent'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "https": require.resolve("https-browserify") }'
        - install 'https-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "https": false }
       ```

       btw I am using angular 14.2.12 and using google cloud secret manager version 5.2.0

       Any help would be much appreciated thank you.


chore(ci): fix release tests command

What this PR does / why we need it:
When switching to running E2E tests instead of integration tests as the release gate, we missed one command to be changed: https://github.com/Kong/kubernetes-ingress-controller/commit/c6344be0ccf080010c9b422a53f0cf463dd52603
Failing job: https://github.com/Kong/kubernetes-ingress-controller/actions/runs/3732606321/jobs/6333473197

Which issue this PR fixes:
Part of #3199

@pmalek I've noticed one more issue, PTAL: https://github.com/Kong/kubernetes-ingress-controller/pull/3285/commits/9fb30c18478be90a11970f9aa5a82674e51daaea


homebrew formula for Lepton.app ?

Please consider adding a brew formula. One issue is that brew already has https://github.com/dropbox/lepton as lepton.

Ha-ha, it's hard to come up with a unique name .

https://github.com/Homebrew/brew/blob/master/docs/Formula-Cookbook.md

I think that Homebrew Cask is a better choice.
I can handle it, but I need a name that comply Homebrew Cask's rule. And this name can't be a duplicated with a homebrew formula. As @Fil said,  lepton has been taken.

What about lepton-app?

I thought about lepton-app，but I'm afraid that this name will be confused with dropbox's lepton.

@passerbyid
That's a good point.
We can put the homebrew/Homebrew Cask's instructions on README with the explicit name lepton-app . Users are likely to use homebrew/Homebrew Cask to install Lepton after the reading there, other than searching for our Lepton on homebrew directly.
For people trying to install Dropbox's Lepton, I don't think lepton-app would confuse them, since it's hard to associate Dropbox's Lepton with an app.

Okay, I have sent a pull request to homebrew-cask.
caskroom/homebrew-cask#30575

And this name can't be a duplicated with a homebrew formula.

 Additionally, the token (what you use to install) is derived from our token reference, to prevent duplicates. lepton-app would not be acceptable in this case.
The cask in https://github.com/caskroom/homebrew-cask/pull/30575 has been merged.

@vitorgalvao Thanks!

Thank you guys!

Do we need to send a new PR for each new release?

Do we need to send a new PR for each new release?

Yes. But if you use cask-repair it’s literally one command away, that you can run in any directory, or even as part as your deployment.
Run one (for installation and setup):
brew install vitorgalvao/tiny-scripts/cask-repair
cask-repair --help

Then whenever you update Lepton, you need only:
cask-repair -v {{new_version_here}} -b lepton

And it’ll do everything for you automatically, including submitting the PR.

@vitorgalvao Nice！Thanks for your explanation:)


feat(data-table): introduce data table

This change re-implements carbon-components style code temporarily for now, from the following reasons:

Many of the style rules are not supported by Sass @extend
There are some open questions in carbon-components style code, and fiddling with an alternate implementation may help solving those questions

Please see https://github.com/asudoh/carbon-custom-elements/blob/75cb84052984644ab4ad0bd0910982c5e6a8f686/src/components/data-table/README.md for the basic notion of how the data table in carbon-custom-elements is implemented. Please don't hesitate to bring up if there are any questions. Thanks!

Thank you @cal-smith for your thoughts! I focused on user interface primitices that achieved Carbon design of data table for now considering the complexity around the state management, especially with the combination of windowing/sorting and lazy-loaded data, but more thoughts on this topic would definitely be nice.
Wrt a11y, I looked for a way of keeping it accessible without using <table> given we cannot do <table id="bx-table">, and found https://www.w3.org/TR/wai-aria-practices/examples/table/table.html. Basically it's how the markup in this PR is structured.

Ah interesting ... from what I can see there, as long as we apply the correct roles (we do) we can match the native <table> semantics ... awesome!


missing "pack" qualifier in a few products

I noticed a few new products are missing the "Pack" qualifier and it makes them difficult to distinguish
ie
  0 - Duskmourn House of Horror Collector Booster
  1 - Duskmourn House of Horror Collector Booster Sample Pack
  2 - Duskmourn House of Horror Collector Booster Box

is 0 the box? or the pack? why does 1 get the Pack?
Would it be possible to make sure to tag/validate "Booster" as "Booster Pack"?

note that older product is fine
  0 - Eighth Edition Booster Pack
  1 - Ninth Edition Booster Pack
  2 - Fifth Edition Booster Pack


Ninja Builder

An experimental version of gftools.builder which uses ninja to orchestrate font builds instead of fontmake's top-level methods.
Currently only does the variable font bit; the real speedup is with the statics.

Building all Rubik targets with gftools-builder: 1m 52s.
Building all Rubik targets with gftools-builder-ninja: 23s.

I think you'll need to update requirements.txt and setup.py to include the new ninja dependency.

There is still some problem here with instance UFO filenames. Sometimes fontmake puts them into instance_ufo/ regardless of what's in the designspace file and sometimes it goes with the path in the designspace file, and I can't work out what happens when.

Just an update on this: I've used it to build hundreds of Noto fonts, and for that it works well. I haven't tracked down the issue with instance UFOs ending up in the wrong place, because I'm scrambling to get lots of fonts built and released and don't really have any bandwidth for anything else. If anyone wants to play with it, clone the googlefonts-project-template and try building that.

Hey, sorry to have complicated this PR. I really appreciate you taking a bit of time to respond to my questions!  Mine is a somewhat weird use case (it is also for Google Fonts, FWIW), so I can try to hack on it on my end if what I need isn't applicable to your projects. Thanks for all your great work here!

OK, I've fixed the stat table issue, but there's another problem, which is that sometimes glyphs2ufo produces a designspace file with instance filenames like this:
  <instances>
    <instance name="Texturina Thin" familyname="Texturina" stylename="Thin" filename="instance_ufos/Texturina-Thin.ufo">

(Note "instance_ufos".)
When you run fontmake -o ttf -i -m on that designspace, all the generated instances end up getting placed in instance_ufo/.
I don't know if that's a glyphsLib bug or a fontmake bug or both. (@anthrotype?) I suppose we could probably work around it by passing -n instance_ufo to glyphs2ufo, but it's a bit ugly.

Boggle
$ grep "ExtraLight" master_ufo/Texturina-Italic.designspace | grep 72pt
    <instance name="Texturina 72pt ExtraLight Italic" familyname="Texturina 72pt" stylename="ExtraLight Italic" filename="instance_ufo/Texturina72pt-ExtraLightItalic.ufo" stylemapfamilyname="Texturina 72pt ExtraLight" stylemapstylename="italic">

$ fontmake -o ufo -i -m master_ufo/Texturina-Italic.designspace
...
INFO:fontmake.font_project:Generating instance UFO for "Texturina 72pt ExtraLight Italic"
...

$ ls -al instance_ufo/Texturina72pt-ExtraLightItalic.ufo
ls: cannot access 'instance_ufo/Texturina72pt-ExtraLightItalic.ufo': No such file or directory

And another issue: if we have a .designspace file where there are instances but no filenames defined (e.g. the Roboto Serif designspace), I don't know how to work out what the eventual UFO file names will be. (We need those as targets, so we can then add rules to convert them to TTF.)

if there's an instance filename attribute, it is meant to be interpreted as relative to the directory of the .designspace file itself. So in your example above (where you grep'ed for "ExtraLight" in Texturina), the instance has filename="instance_ufo/Texturina72pt-ExtraLightItalic.ufo" but the designspace file is inside master_ufo/Texturina-Italic.designspace, so the generated instances are going to be in.. master_ufo/instance_ufo/... fontmake is following what it's told, some other tool might have set those instance filename attributes incorrectly (glyphsLib?).

if we have a .designspace file where there are instances but no filenames defined (e.g. the Roboto Serif designspace), I don't know how to work out what the eventual UFO file names will be.

I'm fixing that in https://github.com/googlefonts/fontmake/pull/102. If an instance does not have any filename attribute defined, we make up its name from the instance ufo's family/style name (similarly to how we make up the OTF/TTF output path from a UFO input). In addition to this, you will be able to pass --output-path if you are building one instance UFO (you know you can already filter which instance(s) to build with -i option which takes a regex matching instance.name attr). I hope that helps..

and you will also be able to pass --output-dir option to override in which directory the instance UFOs gets saved when building -i -o ufo

frustrating but in a good way 😉

Seems to be failing the builder tests. I put these in place so we don't cause regressions for The Type founders, #670

Thanks. It seems like it works for .glyphs and .designspace files but not for individual .ufos.

OK, apart from Windows which I'll disable because, well, Windows users shouldn't expect ~nice things~ shell syntax.

FWIW, when fiddling with filename attributes with designspaceLib, set the filename on .filename and set .path = None. This will stop dsLib from trying to be clever.

Is there any notes about switching to ninja-builder? How can I build now with what used to be --no-autohint argument?

The switch to ninja builder happened over a year ago, and we've moved to builder2 since then - sorry to leave you behind! Arguments should be moved into the config.yaml file, so you should add
autohintTTF: false
autohintOTF: false

to your config file.

Ah ok no worries, thank you!


Why is plugin exported?

Awesome job on Figma Plus.
I want to write a plug-in, but looking at boilerplate sample there are few things that are confusing:
export default class ExamplePlugin {

and
window.examplePlugin = new ExamplePlugin();

Are those exports actually used? If "export default " and "window.examplePlugin = " are removed, plug-in seem to work fine.
Is class also needed or was it added to simply contain everything to one instance?

@jackiecorn explained it on Spectrum: https://spectrum.chat/figma-plus/developers/is-it-possible-to-load-remote-plug-in~46f81b27-b6fe-4abb-9b42-c8e7c17f392a


Paused Class Missing

Expected behaviour
Plyr would have an additional class to plyr--playing and plyr--stopped of plyr--paused in order to differentiate between whether the video has been paused by the user or stopped automatically due to reaching its end.
Actual behaviour
Plyr only has two classes plyr--playing and plyr--stopped, plyr--stopped is applied when both the video is paused and has stopped.
Environment

Browser: Chrome
Version: 66.0.3359.139 (Official Build) (64-bit)
Operating System: macOS High Sierra
Version: 10.13.4

The weird thing is that the HTML5 media elements don't have the concept of stopped but I guess we can safely assume if the player is paused and currentTime is 0 then it's stopped.
I'll take a look.
BTW I'm originally from Portsmouth, just down the road. Small world! 👍

Weird, I've never realised that about HTML5 media.
The logic you suggested makes sense though, thanks for looking into it.
Nice! As am I actually, small world indeed 😎

By the sound of it, wouldn't that also toggle the class on if you pause it, and move the progress slider to 0:00?

Yep. It’d be effectively the same state. It’s probably why the standard API doesn’t support it.
Sam

On 5 May 2018, at 11:36 pm, friday<EMAIL_ADDRESS>wrote:
By the sound of it, wouldn't that also toggle the class on if you pause it, and move the progress slider to 0:00?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub, or mute the thread.

This should be resolved now in the latest version (v3.3.0)


Window insets misbehaving across android versions

Bug description
Window insets are behaving differently across android versions.
Use case- We want to show app content in full screen, so we hide the navigation bar and status bar using the following snippet.
WindowCompat.setDecorFitsSystemWindows(window, false)
requestWindowFeature(Window.FEATURE_NO_TITLE)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
    window.attributes.layoutInDisplayCutoutMode =
        WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
}
WindowInsetsControllerCompat(window, findViewById(R.id.parent)).apply {
    hide(WindowInsetsCompat.Type.systemBars())
    systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
}

After this, to reposition some of the UI elements below the status bar, we are using Modifier.statusBarsPadding().
This is working fine in Android SDK version 28 (Android 9).
But this is not working in Android SDK version 30 (Android 11).
If we log the LocalWindowInsets.current.statusBars.top, then it starts from its original value, and linearly decreases to 0. This can be seen in the screen-shots below.

As you can see in the above image, the emulator having Android SDK version 28 is working fine, but the emulator on the right having Android SDK version 30 is displaying both the texts at the same place. Modifier.statusBarsPadding() is not working in Android SDK version 30.
Code snippet for the Texts:
Text(modifier = Modifier, text = "Hello 1 $name!")
Text(modifier = Modifier.statusBarsPadding(), text = "Hello 2 $name!")

To solve this, we are storing the max value of LocalWindowInsets.current.statusBars.top, and keeping its max value in a local variable. See the following snippet,
val topBarPadding: Dp
    @Composable
    get() {
        var _topBarPadding by remember {
            mutableStateOf(0)
        }
        _topBarPadding = max(_topBarPadding, LocalWindowInsets.current.statusBars.top)
        return with(LocalDensity.current) { _topBarPadding.toDp() }
    }

This fixes the issue, now we can see the UI elements which have been given the padding of topBarPadding below the status bar.
Modifier.padding(top = topBarPadding)

Now both the emulators are having the same behaviour. Code snippet for both the emulators:
Text(modifier = Modifier, text = "Hello 1 $name!")
Text(modifier = Modifier.padding(top = topBarPadding), text = "Hello 2 $name!")

Please check this issue, keeping this hack in production is not an option.
Please find the activity code attached here.
Thanks.
Expected behaviour
On all Android versions, we should be able to set the status bar padding using Modifier.statusBarsPadding()

I was looking at something similar recently. Because you are animating out the status bar, I believe this is working as intended. I think you will need the cutout padding which was only recently added in https://github.com/google/accompanist/pull/696
It's not released yet I don't believe but you could build against the snapshot to try it out.


Resistance based (bi)furcation

Possible this already can be done with LinearLevelConnectors, but we need to confirm that we can accommodate bifurcations which are based on some sort of resistance

This indeed already works with LinearLevelConnectors, one Basin can connect to an artbitrary amount of other Basins. They can also be connected in a circle.


ACNA-1741 | Invalid Config Error

Description

aio-cli throws error of invalid credentials when validated against config schema
When api mesh service is added, it has a type of authorisation mechanism which only needs apikey (client id) NO client_secret key is required
At backend it throws error as it requires client_secret too

Related Issue
ACNA-1741
Motivation and Context
This is one of critical issues as it does not generate a app builder project
How Has This Been Tested?

Tested with Local repo linking between aio-cli-plugin-app and aio-cli
App builder project is generating without any error.

Screenshots (if appropriate):

Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] I have signed the Adobe Open Source CLA.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

@amulyakashyap09 Changes look good.
We will also need to add tests which validate API Mesh schema changes. Possibly a new test config in fixtures.

Done


Crash when use camera

Preconditions:

Instantiate TLPhotosPickerConfigure with parameter includeVideos: false
Take a picture from Camera
Crash

@tooszovski
Thank you.
There was a problem in PHPhotoLibraryChangeObserver(photoLibraryDidChange).

It's still crashing in performBatchUpdates method on self?.collectionView.insertItems(at: inserted.map { IndexPath(item: $0+addIndex, section:0) }) while using camera to load photo.


ImportError: cannot import name basestring

Getting this trying to run fontmake:
Traceback (most recent call last):
File "/Users/user/Library/Python/2.7/bin/fontmake", line 7, in
from fontmake.main import main
File "/Users/user/Library/Python/2.7/lib/python/site-packages/fontmake/main.py", line 19, in
from fontmake.font_project import FontProject
File "/Users/user/Library/Python/2.7/lib/python/site-packages/fontmake/font_project.py", line 41, in
from defcon import Font
File "/Users/user/Library/Python/2.7/lib/python/site-packages/defcon/init.py", line 10, in
from defcon.objects.font import Font
File "/Users/user/Library/Python/2.7/lib/python/site-packages/defcon/objects/font.py", line 6, in
from fontTools.misc.py23 import basestring
ImportError: cannot import name basestring

@joachimvu this is weird. It seems you are using an outdated version of fonttools.
can you paste here the output of pip list?
Try to upgrade fontmake and its dependencies to the current version, with python -m pip install --upgrade fontmake? Replace python with the name of the python interpreter you want to install fontmake to.


Fixed a typo in computeMultipleExpectations

K was initializing the diagonal matrix instead of I. Fixes issue #221

This looks like its failing travis due to Miniconda MD5 mismatch. @jchodera or @mrshirts would you know why that is occurring?

Continuum borked their Miniconda-latest-* md5 hashes. Switch devtools/travis-ci/install.sh from Miniconda-latest to Miniconda2-latest.

All tests are passing, this should be good to merge.

Thanks!


Add testSchemaCacheExtreme.

Q
A

Is bugfix?
❌

New feature?
✔

Breaks BC?
❌

Good work


Work on Google Cloud Storage integration (backend)

added function to fetch it as bytes as well as some example code for playing it


[17.09] update changelog for 17.09.0-ce-rc3

Signed-off-by: Andrew Hsu<EMAIL_ADDRESS>

LGTM


Add future.v2_errorBoundary flag

Adds future.v2_errorBoundary flag to opt into Remix v2 ErrorBoundary behavior

I gotta figure out what's going on with this TSC error in the build :/.  Can't seem to pull AppConfig in from remix-dev

I gotta figure out what's going on with this TSC error in the build :/.  Can't seem to pull AppConfig in from remix-dev

depending on if you're generating type defs, you'll need to delete the dist directory from remix-dev trash ./packages/remix-dev/dist


Automate Testing and Release Process

We should automate our release process in the same way we publish other NPM packages. We can configure a github action in the same way as as fastify-hmac
We should also add the test github action outlined in that same repo.

Added actions: pull request

Added actions: pull request

Example release workflow -> https://github.com/autotelic/fastify-hmac/blob/main/.github/workflows/release.yml
@matthew-charles-chan can probably help with this as well @meghein

Example release workflow -> https://github.com/autotelic/fastify-hmac/blob/main/.github/workflows/release.yml
@matthew-charles-chan can probably help with this as well @meghein


Check if local time is correct

https://github.com/drasyl/drasyl/tree/time-check

https://github.com/drasyl/drasyl/pull/424

bump


cannot install the package

When i try to install the package by npm install -s @marker.io/browser i get this error
The splatting operator '@' cannot be used to reference variables in an expression. '@marker' can be used only as an argument to a command. To reference variables in an      expression use '$marker'.
perhaps there is an alias that we can use to install the package without using "@"?
any help appreciated
`

Seems that you are using powershell. Can you try running npm install -s<EMAIL_ADDRESS>instead?


millet: 0.12.8 -> 0.12.9

Diff: https://github.com/azdavis/millet/compare/v0.12.8...v0.12.9
Changelog: https://github.com/azdavis/millet/blob/v0.12.9/docs/CHANGELOG.md
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[x] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 246914 run on x86_64-linux 1

2 packages failed to build:

millet
vscode-extensions.azdavis.millet

Result of nixpkgs-review pr 246914 run on x86_64-linux 1

2 packages failed to build:

millet
vscode-extensions.azdavis.millet

error: hash mismatch in fixed-output derivation '/nix/store/qrzi4l7an01kq4lybbkx03hxdz1cl9yq-source.drv':
         specified: sha256-iMVZ4qFUaoLy+luGjpOLcMo04lSP2/g6dNcuQRVk0/k=
            got:    sha256-PGB5sgYxiXYTj6O9SY/druDpNCf4O8HsivT8zhJM62M=
error: 1 dependencies of derivation '/nix/store/dsl9cx67ki6hdwpv72v2nnxb93irfhrl-millet-0.12.9.drv' failed to build
error: 1 dependencies of derivation '/nix/store/7g7681d2frbmf4c8bifkhi8vs1wai6vx-vscode-extension-azdavis-Millet-0.12.5.drv' failed to build
error: 2 dependencies of derivation '/nix/store/a529kpc3i91000c5h08w0lv34yg6dkgk-review-shell.drv' failed to build

seems like the hash changed upstream, they probably did a force push


make cia compatible with Python 3

Travis stalled, it seems. Can't rerun, not my repo :D

@martinpopel thanks! that worked!


cmd/go: -ldflags -X does not cause binary to be rebuilt

basically go install doesn't properly apply ldflags="-X  ..." if nothing within the code has changed. I expected it to properly apply the -X values regardless.
This was very unexpected for me and caused a bit of confusion given if I had a previously built binary without flags and then tried with flags nothing happened.
related to #18246
What version of Go are you using (go version)?
go version go1.7.3 linux/amd64
What operating system and processor architecture are you using (go env)?
go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/user/.golang/lib"
GORACE=""
GOROOT="/home/user/.golang/go"
GOTOOLDIR="/home/user/.golang/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build177725611=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"

What did you do?
go get bitbucket.org/jatone/gilo
cd $GOPATH/src/bitbucket.org/jatone/gilo
git checkout 0.2.3
mkdir bin
export GOBIN=$PWD/bin

What did you expect to see?
go install bitbucket.org/jatone/gilo/commands/...; ./bin/gilo --version
development
go install -ldflags="-X bitbucket.org/jatone/gilo.Version=$(git describe --tags)" bitbucket.org/jatone/gilo/commands/...; ./bin/gilo --version
0.2.3

What did you see instead?
go install bitbucket.org/jatone/gilo/commands/...; ./bin/gilo --version
development
go install -ldflags="-X bitbucket.org/jatone/gilo.Version=$(git describe --tags)" bitbucket.org/jatone/gilo/commands/...; ./bin/gilo --version
development

Work around
rm bin/*; go install bitbucket.org/jatone/gilo/commands/...; ./bin/gilo --version
development
rm bin/*; go install -ldflags="-X bitbucket.org/jatone/gilo.Version=$(git describe --tags)" bitbucket.org/jatone/gilo/commands/...; ./bin/gilo --version
0.2.3

output from go tool nm:
go tool nm bin/gilo | grep Version
744860 D bitbucket.org/jatone/gilo.Version

A workaround is to use go install -a.
The general problem is how could cmd/go detect whether it's necessary
to rebuild a program if only -gcflags and -ldflags is changed on command
line? Currently, cmd/go doesn't record the used gcflags and ldflags in
a binary. Recording gcflags and ldflags in all packages and binaries will
result in excessive rebuilds.

@minux Honest question: why are you concerned about excessive rebuilds?  Do you think that people often build with different -gcflags and/or -ldflags and do not expect the specified programs to be rebuilt?
I think this would be easy enough to fix by adding -gcflags and -ldflags to the build ID, but, of course, we should make sure that is the right thing to do.

Work on better caching will fix this. I have a prototype. Not for Go 1.9 but probably for Go 1.10.

I ran into this while adding versions to a cli tool. The best workaround I found was to run touch version/version.go && go install -ldflags etc..., which resulted in a ~2-3 second build time, as opposed to using go install -a which was ~12-15 seconds.
Looking forward to removing that workaround in Go 1.10 though.
One solution I previously tried was to put the version details in a version package with no imports/dependencies and run:
go install -a github.com/org/proj/version
go install github.com/org/proj

I thought the first go install would cache the result of the version package, and the second go install. It didn't seem to have that effect. Most likely I just don't understand how Go's build caching works.


PlatformMessages docs are sparse

https://docs.flutter.io/flutter/services/PlatformMessages-class.html
They should probably at least link to flutter.io https://flutter.io/platform-services/ or hello_services?  And could explain better what they're used for (or where to find docs which explain that).
@abarth @LarkAscending

I did a pass over these docs the other day, including adding a link as suggested above. Please file new bugs with more specific questions you'd like answered in the docs if it's still too sparse.


Discord crashes on startup [Bug]

Describe the Bug
Every time I start the Discord client with BetterDiscord, it loads all the plugins and themes and after a short amount of time it crashes with the YOU DIED screen.
To Reproduce
Start Discord with BetterDiscord, click on some server and then Discord crashes. Also, if you don't switch to another server before BetterDiscord loads all plugins, it crashes again and again everytime you start up Discord.
Expected Behavior
I expect Discord not to crash when I click on a server and when I start it.
Screenshots

Discord Version

if you use the betterbottags plugin, try disabling that as it can cause discord to crash

if you use the betterbottags plugin, try disabling that as it can cause discord to crash

Yip that was the issue with my crash, thanks for the suggestion.

Not a BetterDiscord issue.


Keywords

Keywords are analytically extracted from text.
Passing in a list of keywords that may be relevant to the text will consider those keywords in the extractions, and can boost the score of those keywords.

The TF-IDF part is a bit obscure, but code-wise looks fine. Only things needing fixing would be:

Automatic download of the spacy pipeline.
Calling nlp only once per call to extract_keywords.


Proposal - Better control for initialization

Idea of keywords for better controlling variables initialization.
Samples:
mustinit - Variable that must be initialized before used.
mustinit a = 1; // OK
a = 2; // OK

mustinit x;
f(x); // Error: 'x' is not initialized

mustinit x;
if(something) x = 1; else x = 2;
f(x); // OK

mustinit x;
if(something) x = 1;
f(x); // Error: 'x' may not be initialized

initonce - Variable that can be initialized only once and then cannot be changed. It doesn't require the variable to be initialized.
initonce a = 1; // OK
a = 2; // Error 'a' has been already initialized

initonce a;
a = 1; // OK
a = 2; // Error 'a' has been already initialized

def - Combination of mustinit and initonce - Variable that must be initialized but cannot be changed.
def a = 1; // OK
a = 2; // Error 'a' cannot be changed.

def x; // Error 'x' must be initialized

I have a situation where 'const' is too noisy.
Instead of
initonce a: number;
initonce b: number
initonce c: number;

if (x) {
 a=1;b=2;c=3;
} else {
 a=b=c=0;
}

I must use const:
const a = x ? 1 : 0;
const b = x ? 2 : 0;
const c = x ? 3 : 0;


Upload pixelmaps in the repository

Unlike all other maps that we use for our setup, the pixelmaps are taken from /data2 directories. This is not ideal for a couple of reasons in the standalone setup (e.g. portability, keeping track of changes, etc.) but also with respect to the CMSSW integration.
The easy solution would be to have these maps uploaded and then taken from relevant directories. It is preferable that this is done after PR #190 is merged, so that the changes are less and simpler.

Fixed in #204 and #208


How to enable network protection in Windows Server 2019

[Enter feedback here]
I ran the command "Set-MpPreference -EnableNetworkProtection Enabled" on Windows Server 2019 to enable network protection.
However, when I accessed the demo site (https://smartscreentestratings2.net ) it was not blocked. all the requirements for real-time protection, cloud-delivered protection, etc. are met.
Network protection also worked on Windows Server 2019 by running the following additional commands
Set-MpPreference -AllowNetworkProtectionOnWinServer 1
Set-MpPreference -AllowNetworkProtectionDownLevel 1
Set-MpPreference -AllowDatagramProcessingOnWinServer 1
Therefore, could you please add that the following command also needs to be executed in Server OS?

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

ID: 395141e8-be91-e226-24d7-dc136b8f9c5e
Version Independent ID: 012beed4-1fdb-4f59-9cc4-53ba5e2c8ea2
Content: Use network protection to help prevent connections to bad sites
Content Source: microsoft-365/security/defender-endpoint/network-protection.md
Product: m365-security
Technology: mde
GitHub Login: @denisebmsft
Microsoft Alias: deniseb

@KENJISHIRAKI Thank you for your feedback. We have made changes to the document via PR#https://github.com/MicrosoftDocs/microsoft-365-docs/pull/9419
Once the author approves, the changes will be live.
Thanks
Sri

@msbemba Thank you very much for the contribution and updating the documentation with PR. @KENJISHIRAKI Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


replace bcrypt hash with a working one

replace bcrypt hash with an appropriate value for the string "password"

lgtm, thanks!


Update ubuntu.yml

Im behind proxy so having trouble accessing provided keyserver.

@erikthorstenson Thanks for the PR. FYI Package was upgraded to v2.0 of .NET SDK and is using official microsoft urls for the keys and repos (microsoft.com). Let me know if you have problem with it.


feat: Add numeric enum support.

Add numeric enum support based on go/actools-numeric-enum-impl.
Add a new overloaded toBody method that support serializing request object to Json with numeric enums.

LGTM sinc i'll be OOO, but please resolve the field name quesiton first.

Added the fieldName argument to the overloaded method.


[Security] Security concerns and tips for securing DBaaS

Topic Suggestion
Security concerns and tips for securing DBaaS
Proposed title of article
Security concerns and tips for securing DBaaS
Proposed article introduction
Dealing with a DBaaS raises several security concerns, just as working with a traditional database system. When a database is moved to the cloud, the security threat landscape changes significantly. As the cloud presents its own vulnerabilities, security challenges on DBaaS are on a bigger scale.
Many providers such as GCP, AWS and Azure provide hosted databases that are efficient and quick to start with. While the providers take most of the responsibilities regarding the security, some steps must be taken by the user to tighten the databases fully. This guide will discuss some security concerns related to DBaaS, instruct the readers on how to properly secure their DBaaS, and mention some of the most important day 2 operations.
Key takeaways

DBaaS overview.
Why does the reader need to be concerned about securing DBaaS?
Tips for securing DBaaS.

Setting up proper authentication and authorization.
Whitelisting the IP addresses that can connect to the database instance.
Storing the connection credentials securely.

Day 2 operations.

Mention some of the “day 2 operations” related to DBaaS.

Article quality
This is a detailed guide that will pass value to readers. By going throw this article, readers will know security concerns regarding DBaaS and measures to take. It will also go through day 2 operations related to DBaaS.
References
Please list links to any published content/research that you intend to use to support/guide this article.
Conclusion
Finally, remove the Pre-Submission advice section and all our blockquoted notes as you fill in the form before you submit.
We look forwarding to reviewing your topic suggestion.
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

Thank you for your response and we thank you for submitting your topic. After some careful consideration it struck us that this topic may be a bit over saturated throughout other blog sites and official documentations as previously mentioned on your topic form by our content moderator.
We typically refrain from publishing content that is covered widely on the net or other blogs. As we're more interested in original, practitioner-focused content that takes a deeper dive into programming-centric concepts.


[Feature]: unauthorised gsheets datasource leads to failed queries

Is there an existing issue for this?

[X] I have searched the existing issues

Summary
In this funnel, we see a lot of drop-offs for gsheets query execution. One of the reasons is that the datasource is unauthorized, and subsequent query creation is futile. Example recording, watch from 1:30.

another example recording, watch from 1:20

another example recording

the user selected gsheets as datasource
attempted to authorize the datasource (but something happened, either they clicked NO on the popup or something else failed)
Now when they come back to the page, there is an error shown in red text: Datasource not authorized, but the user still proceeds to create a query which obviously does not run.

There are a few problems with this flow:

Is the error prominent enough for the user to understand that there is something fundamentally wrong with the datasource?
interestingly, in this recording (1:30 onwards), the user sees the error Datasource not authorized and attempts to click it several times - would it be a good idea to create a CTA here?
Should the creation of API be blocked until the datasource is correctly configured?
When a user proceeds to create a query with an unauthorized data source, they hit the brick wall very far away from the source of the error. These are the steps:
a. create query
b. select operation fetch many and entity sheet rows
c. attempt to expand the spreadhsheet dropdown - disaster. Here, the dropdown fails to load. Either the user gives up here, or attempts to run the query anyway with empty spreadsheet field, which is futile anyway, and none of this points the user to the actual problem that the datasource config itself is at fault.

Why should this be worked on?
Google Sheets datasource is frequently the first datasource used by new users because of less friction to set up some backend data. The problem above described above represents initial friction that the user faces when creating their app.

will be part of epic https://github.com/appsmithorg/appsmith/issues/17722


Merge hotfixed develop build to master

Coverage decreased (-0.4%) to 99.606% when pulling a9bce25e4e216a0fcdb4181cc7fe3b3372a822ac on develop into 430158dfb4d094e689c56a9baef0c18e94d7ab78 on master.


Private key normalized twice in schnorrGetExtPubKey

Private key normalized twice in schnorrGetExtPubKey method:

Direct normalization https://github.com/paulmillr/noble-curves/blob/main/src/secp256k1.ts#L118
Inside Point.fromPrivateKey method https://github.com/paulmillr/noble-curves/blob/main/src/secp256k1.ts#L119

https://github.com/paulmillr/noble-curves/blob/b1f50d936412320b7d8800352fc0768cb0b9b029/src/abstract/weierstrass.ts#L290

Yeah. Schnorr requires returning scalars (d). Scalars are produced by normalization. fromPrivateKey does normalization but does not return scalar.
Passing normalized scalar to the normalize function is fast and not a big deal.


[Key Vault Admin] Fixed bad reference in the readme

The readme had a bad reference in one of the samples.
@zzhxiaofeng Is this what you meant?
Fixes #11491

@sadasant Yes, it is.


add unirb

UNIRB website: http://www.unirb.edu.br/

Although the domain is .edu.br the email domain is .org.br

please provide the confirmation, the domain also belongs to the university or the link to the page, indicating the university uses the following domains for email.

obsolete, please reply to reopen


speakerDiarization method from audioAnalysis.py returning wrong array

I run speaker diarization and it returns
"
array([ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,
1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,
1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,
1.,  1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
1.,  1.,  1.,  1.,  1.,  1. ...])
"
my program is
"
import pyAudioAnalysis.audioSegmentation as aS
cls = aS.speakerDiarization("/Users/ivanazzari/Google Drive/speech_test/teste_bruno.wav",2, mtSize=2.0, mtStep=0.2, stWin=0.05, LDAdim=35, PLOT=False)
cls
"
and I would like it to return the seconds for later I cut them

Hi,
Were you able to resolve the diarization issue?
If I run your code, I get an error like this. I infact followed the comment that McKnightRider made in this link
https://github.com/tyiannak/pyAudioAnalysis/issues/145

Traceback (most recent call last):
File "exDia.py", line 2, in
cls = aS.speakerDiarization("/Users/sowmyar/Desktop/eguruStartUp/sampleAudioWav.wav", 2, mtSize=2.0, mtStep=0.2, stWin=0.05, LDAdim=35, PLOT=False )
File "/Users/sowmyar/Downloads/first-impressions-master/data/pyAudioAnalysis/audioSegmentation.py", line 703, in speakerDiarization
[Classifier1, MEAN1, STD1, classNames1, mtWin1, mtStep1, stWin1, stStep1, computeBEAT1] = aT.loadKNNModel(os.path.join("data","knnSpeakerAll"))
TypeError: 'NoneType' object is not iterable
*************8
Running the command line version according to wiki, generates only a graph with specified number of speakers. Is there any way to generate a separate wav file for every speaker?
python audioAnalysis.py speakerDiarization -i data/diarizationExample.wav --num 2

Your mtStep is 0.2, so the returned array is classified every 0.2 seconds. Every 0 or 1 means 0.2 seconds of your audio.

Set LDAdim=0, in the command line implementation that's what it is set to.

@Rasipuram As you wrote

Running the command line version according to wiki, generates only a graph with specified number of speakers

Where is this graph generated and saved . I am using mobaxterm and running the command on remote server but i only get a deprecated waring and  then program ends.
My output is
python audioAnalysis.py speakerDiarization -i data/_carl_3_1_16k.wav --num 2
/home/ubuntu/anaconda3/lib/python3.6/site-packages/matplotlib/__init__.py:1067: UserWarning: Duplicate key in file "/home/ubuntu/.config/matplotlib/matplotlibrc", line #2
  (fname, cnt))
/home/ubuntu/anaconda3/lib/python3.6/site-packages/matplotlib/__init__.py:1067: UserWarning: Duplicate key in file "/home/ubuntu/.config/matplotlib/matplotlibrc", line #3
  (fname, cnt))
/home/ubuntu/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/weight_boosting.py:29: DeprecationWarning: numpy.core.umath_tests is an internal NumPy module and should not be imported. It will be removed in a future NumPy release.
  from numpy.core.umath_tests import inner1d


Add a short small slab to MediumSlab headers if there's room?

On some architecture/pal combinations (e.g., PowerPC/Linux), pages are 64KiB and the MediumSlab headers are... not.  Despite 3d3b048776fd576c725a06bd8c4432c50abca81b, many size classes are going to leave a large, physically-backed region of wasted space between the MediumSlab header and its first contained allocation.  Perhaps we could fit a short slab in there as we do with the space between the Superslab header and its Slabs.

This is an interesting idea, but will complicate the allocator considerable on the dealloc path.  Particularly, for sized deallocations, where we won't know the meta-data layout without branching on whether this is a Medium slab or Super slab.
I guess we could design the Medium slab, to contain a Superslab like structure for the first few slabs, so that there isn't a branch. Then we can use those slabs if rounding dictates it makes sense.
I think given the complexity this would add I would like some data that it would have a useful impact on a platform.

Given the redesign, this no longer seems relevant.


Add Prettier eslint plugin

See #1008
This applies #1008 and fixes all linter errors.
It mostly was a seamless process (see command in #1008 to run prettier --fix), with minor additional fixes to clear out all errors.
Please skip thru to make sure there are no added files or any other strangeness.

unit test failing

Passing all tests


I get an error: The sourceMapTarget option has been removed ...

I get the following error and I am not sure how to fix it and if it really has to do with nathantreid:typescript-babel:
While processing files with nathantreid:typescript-babel (for target os.osx.x86_64):

   /Users/scharf/.meteor/packages/meteor-tool/.1.6.1_1.162ni0e.31l7++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/@babel/core/lib/config/validation/options.js:95:11:
   Using removed Babel 6 option: .sourceMapTarget - The `sourceMapTarget` option has been removed because it makes more sense for the tooling
   that calls Babel to assign `map.file` themselves.
   at buildUnknownError
   (/Users/scharf/.meteor/packages/meteor-tool/.1.6.1_1.162ni0e.31l7++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/@babel/core/lib/config/validation/options.js:95:11)
   at
   /Users/scharf/.meteor/packages/meteor-tool/.1.6.1_1.162ni0e.31l7++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/@babel/core/lib/config/validation/options.js:84:57
   at Array.forEach (<anonymous>)
   at validate
   (/Users/scharf/.meteor/packages/meteor-tool/.1.6.1_1.162ni0e.31l7++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/@babel/core/lib/config/validation/options.js:62:21)
   at loadPrivatePartialConfig
   (/Users/scharf/.meteor/packages/meteor-tool/.1.6.1_1.162ni0e.31l7++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/@babel/core/lib/config/partial.js:28:48)
   at loadFullConfig
   (/Users/scharf/.meteor/packages/meteor-tool/.1.6.1_1.162ni0e.31l7++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/@babel/core/lib/config/full.js:33:37)
   at
   /Users/scharf/.meteor/packages/meteor-tool/.1.6.1_1.162ni0e.31l7++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/@babel/core/lib/transform.js:26:33
   at _combinedTickCallback (internal/process/next_tick.js:131:7)
   at process._tickCallback (internal/process/next_tick.js:180:9)

My guess is that the problem is here
See also the meteor/babel-compiler

see https://github.com/babel/babel/pull/7500

I am using meteor 1.6.1, I think they have upgraded babel and fixed the problem for this version...

I really think, meteor should maintain typescript support

This issue was fixed some time ago, but I forgot to close it. Thanks for the report!


Reddit bot to warn for known dangerous flavors

The DIY ejuice subreddit is a popular discussion board for sharing recipes. Would be helpful for newbies, if a bot would read through posts and comments.
A short warning with a link to the safety app could help to steer users away from risky ingredients.

There would be negative backlash from users thinking that the bot is scolding them, so this is not something I'm willing to implement.


Outline every datum to be collected

Mark it up as YAML. Specify for each field whether it's required. Group like fields.
This is the paper form.

Done.


fix datetime locale issue

Fixes #1814
Cause
The %a in strptime depends on locale: https://docs.python.org/3.10/library/datetime.html#strftime-and-strptime-format-codes.
In https://github.com/instaloader/instaloader/blob/master/instaloader/instaloadercontext.py#L145, the request header specify the response locale to be en_US. If the client locale is not en_US, there could be value error in the datetime parsing like #1814.
Base on this stackoverflow, Python depends on the underlying C locale. So we cannot use envvar LC_ALL to overwrite the time format locale. Therefore, I decide to update the locale in runtime.

In https://docs.python.org/3/library/locale.html#background-details-hints-tips-and-caveats the documentation says

Initially, when a program is started, the locale is the C locale, no matter what the user’s preferred locale is.

Hence, strptime should work correctly in parsing the weekday names as required per HTTP protocol, regardless of the language settings.
That article goes on

It is generally a bad idea to call setlocale() in some library routine, since as a side effect it affects the entire program. Saving and restoring it is almost as bad: it is expensive and affects other threads that happen to run before the settings have been restored.

When the C locale is not en_US, python program will use wrong locale and the parsing will fail.
agree with you, thanks for point out the bad idea of use setlocale. I will try to come up with another solution and close this PR.


[Addition]: Almost 200HS - wallet: 12xTL1Sj2DRYsnKjEaWtT37Ju732s36dUZ2ZaobGP1hMQh4BxFM

Hotspot b58 Addresses
11qrUQPaL8tLGQT7RBGXnp9FbgmeEQ3EWpfKUTy7QC22iaVSeiS
112efvdArXogvEsag2UEtuq1PUnoZUgamyJRxPosAfHU2kj3uMDm
11LvFP4ZbK7NHTHDSGTY5cDk3GY6PWQgb9VE4cywnBmf26RYbey
112PeVEsawntYGwfxf9oLXijTmGih8Lg1gtRWWFhVQej35Ro9x22
11jSoaQgCzR8GyFfCQLzRVVCiCrw7Vh1fLP8Pt6iPt8KvZ59VZY
112RWxtWozFMQnmMCc4REks1tsnpcJSvPePQ15hoV1wFvaTGucQk
1127EUGiE7kHuWCJDwLAVVao8Lo977X1qfHyUWrPMci1SW5DoFGh
112WSew79Km5tsEVXEJf7H9t11GStuBCANoz9MWwCXpDuv3MwBmq
11dyTHqFYgAjGpNAX4JuSSwPiBmT3GsU2NK6g4swuzEWS5TXxi3
11uxsrgurBxTfzAzMsKEQbUmxChL8fhfAggm8oWHFhQDeNYcfu8
116idq7V3EzujyFxyt66KRMfSCRSEmUE9ygpayBqYnSpMd2kuUc
Discord Handle
sesfez#2003
Reason(s)
Please, check all other hotspots from that same wallet
This guy had an hotspot near me that was added to denylist Genuine Ash Oyster (11EL69CoRpctyBT1p9uiK7b25Njbc5e9fCbaK5QtiLzLWFQ9Kyn)
After checking, all his hotspots started working at the exact same time today +60 hotspots
Thank you for your work.

An hotspot from this account was added near mine, but it seemed fishy.
I analyzed its address with RSSI/SNR graphs and it does not follow a proper RSSI/SNR curve.
Also, there's a big repetition of the same RSSI values.
I then started analyzing other hotspots in the same wallet and all of them presented the same pattern.
I can't check a proper RSSI/Distance graph since the DeWi ETL does not have the challenge_receipts_parsed table yet.
But I'm fairly confident that most (if not all) of the hotspots in this account are not legit.
Also, they are all kerklink with 6dbi antenna? Doesn't mean anything, but it's also fishy.
A lot of them were also added at the same time is the past couple of days, which is also fishy.
@abhay


Refactor ui_utils.js::scrollIntoView

This function is very prone to errors: some small variations in different places can lead to errors especially when highlighting search results.
It has been added few years ago to fix:
https://github.com/mozilla/pdf.js/issues/1738
scrollIntoView moves the parent window when it should only scroll within the iframe.
So we could maybe only use element.scrollIntoView when the viewer is not in an iframe else find a better way to compute the scroll offset  (based on the page offset and on the position of the element within the page, ... something like that...).

Before attempting any further work on this method, I that we need to add a bunch of e.g. integration-tests such that we're able to better catch any regressions since this code is absolutely vital to the correct function of the viewer.


MINOR: additional kip-182 doc updates

@miguno, @mjsax, @bbejeck, @guozhangwang

retest this please

retest this please

merged to trunk


Call run_all in a thread gives AttributeError: module 'rules' has no attribute 'create_ruleset'

Hello,
I try to launch the server in a thread with the following code:
import threading
from durable.lang import *

class RuleThread(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        with ruleset('test'):
            @when_all(m.subject == 'World')
            def say_hello(c):t
                print('Rules says: Hello {0}'.format(c.m.subject))

    def run(self):
        run_all()

if __name__ == '__main__':
    rules = RuleThread()
    rules.start()

But it raises:
AttributeError: module 'rules' has no attribute 'create_ruleset'
Outside of a Thread class it works correctly
Did I miss something?

OK i got it: NEVER call a file rules.py
Sorry


Getting 500 Internal Server Error when logging in

Hi guys,
I'm trying to implement a log in  feature in my web application so users can access to their one drive accounts, using the OAuth 2.0 (https://dev.onedrive.com/auth/msa_oauth.htm#code-flow).
So, after receiving the authorization_code, I'm trying to request the access_token (step 2 on the diagram I posted above). And that's where the things are going wrong. For some reason that I don't know, in this step I'm always getting "500 Internal Server Error" message, no matter the parameters I send in the request.
I'm posting my code here, in nodejs.
var data = '{"code": "'+ code +'","grant_type" : "authorization_code","client_id" : "'+clientID+'","client_secret" : "'+clientSecret+'","redirect_uri" : "'+userINFO.redirect_uri+'"}';
                    var params = {
                        host: 'login.live.com',
                        path: '/oauth20_token.srf',
                        method: 'POST',
                        headers: {
                            'Content-Type': 'application/x-www-form-urlencoded'
                        }
                    };
                    var body = '';
                    var req = https.request(params, function (response) {

                        response.on('data', function (chunk) {
                            console.log('DATA');
                            console.log(chunk);
                            body += chunk;
                        });

                        response.on('end', function(){
                            console.log('END')
                            console.log('body ' + body);
                        });
                    });
                    req.write(data);
                    req.end();

Even if I pass wrong client id, or secret, the only error I get is "500 Internal Server Error".
This is my output:
DATA
< Buffer 35 30 30 20 49 6e 74 65 72 6e 61 6c 20 53 65 72 76 65 72 20 45 72 72 6f 72 >
END
body 500 Internal Server Error
I'm following the documentation, but I cannot manage a way to implement this.
Does anyone have any idea?
Thanks!

Can you use Fiddler or a similar tool to capture a trace of the HTTP traffic and attach that trace?

Closing due to lack of a reply. Feel free to reopen with more details.


Bounties

Allow player to set bounty on specific items (exlusive or not) or on a player life.

Your issues names are not descriptive enough, please don't spam and provide long descriptions


Inspector heap chart shows wrong memory  size

[Y] I have checked the FAQ, and issues and found no answer.

set vm -xmx2G but chart get 2.15G

I look through source code,The problem should be at the web js
for example,in this file "web/src/main/angular/src/app/core/components/inspector-chart/agent-jvm-non-heap-chart-container" at 130 line
    convertWithUnit(value: number): string {
        const unitList = ['', 'K', 'M', 'G'];

        return [...unitList].reduce((acc: string, curr: string, i: number, arr: string[]) => {
            const v = Number(acc);

            return v >= 1000
                ? (v / 1000).toString()
                : (arr.splice(i + 1), Number.isInteger(v) ? `${v}${curr}` : `${v.toFixed(2)}${curr}`);
        }, value.toString());
    }

It should be 1024，not 1000?

Pinpoint uses Memory MXBean API, so there is no problem at all.

https://docs.oracle.com/javase/7/docs/api/java/lang/management/MemoryMXBean.html

If you are curious about this, analyze the memory option of the jdk you are using.

@xllove-moon
Thanks for the report. I'll look into it.

@xllove-moon
'K' could be 1000 or 1024 depends on the context and the unit number should've been 1024 in the memory side.
I've corrected it through https://github.com/pinpoint-apm/pinpoint/pull/8592


Port to Python3. Changes numpy version requirement.

Adds a requirement.txt. Verified to run with this setup.
Numpy version is slightly different in python 3 however.
Changes prints to include brackets, removes imports, adds "encoding=utf-8" to all open commands instead of relying on reload(sys)

If required, can add code to dump the theano trained model output also.


Updates for issue #24

Looks like the last pull request needs some minor edits:
Hmm, this isn't minor to me :-) Anyway, with the caveat that I am not a programmer, I just use Julia to get some things done, I think I have more or less addressed most of below issues.
1. The functions seem to be very overtyped, assuming that everything is a Vector{Float64}, while users may want to use a different data structure. (Big data can oftentimes only be held in Float32, Float16, or more esoteric Float types.) The only thing we can assume is that anything passed will be an AbstractVector containing some kind of Real number. (Can't even assume they're Floats -- ForwardDiff's dual numbers aren't classed as floats since they're internally represented as a tuple of floats, so they're only a subtype of Real.)
I believe this is covered now.
2. We need a comparison function that takes PsisLoo objects as inputs, rather than just a vector of log-likelihoods. I think it would be good to have functions dealing with the case that the user passes either a variable number of PsisLoo objects (without an enclosing data structure), or a named tuple of PsisLoo objects (in which case the names of the objects should be used as the model names).
Done.
3. Looks like there's typos in the docstrings, and general formatting errors in the code. We should try and adhere to the Blue style guide from Invenia.
I am not very familiar with this guide. I've skimmed through it but not sure adhere in all aspects.
4. We should hold to the API for ParetoSmooth samples (e.g. using something similar to :loo_score instead of :elpd_diff). The names were chosen to be generic, so we can implement other score functions besides elpd later. There also seems to be some information missing, like differences in the effective number of parameters.
This update was unfortunate as I posted it for a couple of days before applying the change. I'm also not familiar where you ultimately would like to go with this package.
I hesitate to add the parameter penalty difference column as I used the calculation method from Statistical Rethinking and did not want to corrupt the MIT license.

Thank you so much @goedman !

@ParadaCarleton Your welcome. As always I learn something from these requests. In the end I struggled with 2 issues:
In addition to what I already mentioned on the parameter penalty, I’ve also been wondering how to do that with only PsisLoo objects. Otherwise, is that reason enough to carry the loglikelihood matrices along?
In a case like this, with 3 loo_compare methods I prefer to have a single doc entry, but that is probably a matter of preference.


Investigate if object rest works correctly in tests on master

I want to hold off releasing 0.7.0 until we figure out if this is an issue: https://github.com/facebookincubator/create-react-app/issues/892#issuecomment-253669786.
I would appreciate help trying to reproduce this in tests in master, and if it reproduces, a fix. I presume that the fix would include whitelisting destructuring transform regardless of Node version.

To provide more context:

We switched to using babel-preset-env for tests only in #878
However apparently spread/rest transform doesn't work without destructuring transform
We need to make sure spread/rest works on Node 6 in tests

I would be happy to help and could make a PR by tomorrow 😉

I have Node 6.7.0 installed. Checked out master and created a my-app project. Modified the App.test.js like so:
it('renders without crashing', () => {
  const obj = {
    a: 'a',
    b: 'b',
    c: 'c'
  };

  const { a, ...z } = obj;

  console.log(a);
  console.log(z);

  const div = document.createElement('div');
  ReactDOM.render(<App />, div);
});

Got a SyntaxError:
 FAIL  src/App.test.js
  ● Test suite failed to run

    /Users/jeffreyatw/Documents/repos/create-react-app/testo/src/App.test.js:12
      const { a, ...z } = obj;
                 ^^^
    SyntaxError: Unexpected token ...

      at transformAndBuildScript (node_modules/jest-runtime/build/transform.js:284:10)
      at process._tickCallback (internal/process/next_tick.js:103:7)

I imagine this is blocked by https://github.com/babel/babel/issues/4074

@gaearon will work on fixing it in babel next

Fixed in<EMAIL_ADDRESS>


Copy command is not working after upgrading Azure Storage explorer (1.30.2)

Preflight Checklist

[X] I have installed the latest version of Storage Explorer.
[X] I have checked existing resources, including the troubleshooting guide and the release notes.
[X] I have searched for similar issues.

Storage Explorer Version
1.30.2
Regression From
No response
Architecture
i86
Storage Explorer Build Number
No response
Platform
Windows
OS Version
Windows 10
Bug Description
Cannot copy files using Azure Storage explorer  after upgrading to the latest version . This working earlier with older version .

above is the error i am getting
Transfer of  to 'bitest99999," failed. O Items error: UnexpectedQuit (used SAS , disovery not
completed)
Steps to Reproduce

Copy file from Azure Storage explorer
Paste the file in destination folder

Actual Experience

Copy file from Azure Storage explorer
Paste the file in destination folder

Transfer of  to 'bitest99999," failed. O Items error: UnexpectedQuit (used SAS , disovery not
completed)
File is not copied from the source to destination folder
Expected Experience
No response
Additional Context
No response

@mppradeesh can you share the full AzCopy log with us? You can find it either in <your home directory>/.azcopy/<latest .log file (assuming the failure was the last AzCopy operation you did)>, or, simply reproduce the issue and look for "Go to AzCopy Log File" in the Activities panel. Then, once you've found the file, drag and drop it here in GitHub.

Good morning !   Here is the log file.
2023-08-07_072858_activity-log_21148.log

@mikecrepin

How are you accessing your container? Did you:

Sign in, list storage accounts under a subscription, find your storage account, access the container?
Attach the container?

Is this a non-Gen2 or Gen2 container?
What RBAC permissions do you have for the container/storage account/subscription?

Hello !
I access the container by Sign in, list storage accounts under a subscription, find your storage account, access the container.  Most of the container are used are even in the quick access part.
The container I'm try to use now is non-gen2.
How can I give you the RBAC permissions, where can I find that.
By the way, this functionality was working perfectly until the version 1.30.2 of the application.

@mikecrepin To view your RBAC roles, you can login to Azure Portal, navigate to the control panel of the storage account/blob container, open the "Access control (IAM)" and use "View my access" to see roles assigned to you.

Closing due to lack of reponse. This issue will no longer be actively monitored. If you still need help, we recommend reaching out to Azure support, via openeng a ticket in the Azure portal. Alternatively you can open a new issue here.


Sequence view for SMILES should just be the sequence string

Showing a SMILES sequence in the sequence view with position indices looks strange.  Should just show the string.

idk what smiles is


Feature/design UI

Design UI

In this branch, I have made the following changes:

Add main file destined to harbor the content of the main class for UI.
Add OS module in gemfile.
Implement main file with a very basic user interface to interact with the previously created classes.

Thank you for your kindly and productive feedback @rloterh. :1st_place_medal: :+1:


Bad SQL for wildcard search when columns are not enumerable

I got this error from https://dev.rebuildingakidney.org/~ashafaei/chaise/recordset/#2/Antibody:Antibodies:
409 Conflict
The request conflicts with the state of the server. column t0.Provenance does not exist
LINE 8: ...alog_Number") ~* 'abc'::text) OR (_ermrest.astext(t0."Proven...

(filing it here because Karl says ermrest should have given it a higher-level error).
https://dev.rebuildingakidney.org/ermrest/catalog/2/schema/Antibody/table/Antibody_Media_Files/column/Provenance/acl returns
{
  "enumerate": []
}

Actuallly, how was I able to make that REST call at all? Since no one (including me) has enumerate rights, shouldn't that have failed?

I need more info than this.  What was the actual REST query URL that had this error?  Can you give the original request URL?  It would also help to turn on SQL logging on the server and capture the whole SQL statement that raises this error.
I'm not sure which rest call you are referring to in your second question.  The catalog owner always has implicit rights to everything, even if ACLs are empty, so you'd be able to access that second ACL URL if you are an admin.  I get a 404 Not Found trying to access it as an anonymous user.

OK, it seems like the error comes from the use of the * pseudo column for a wildcard search.  I can reproduce the error with curl:
curl 'https://dev.rebuildingakidney.org/ermrest/catalog/2/entity/Antibody:Antibody_Media_Files/*::regexp::abc'

A fix for this is pushed to master.

@ljpearlman do you plan to confirm this fix in your own deployment?  if not, can you just close the issue?
I already confirmed it to my satisfaction in my own tests... and we can always reopen if a problem is encountered later.