Update BlinkWithoutDelay.ino example

Moved from https://github.com/arduino/Arduino/pull/7239 by @codetheorist

Remove unused ledPin constant
Make comments more natural language
Change if/ese statement to demonstrate shorthand variable flipping

From @cousteaulecommandant on 2018-02-22
I think that, although the code becomes more compact and simple, it also becomes less explicit and deviates from the typical Arduino code.  Keep in mind that this is an example and thus needs to be easy to understand and modify.

Remove unused ledPin constant

I don't think this is a good idea.  Sure, you could just use the macro every time instead of assigning it to a constant, but then if you want to change the pin you use you have to change EVERY line where it appears and risk forgetting one of them; it's better practice to define the pin at the beginning so that it can be modified easily.

Change if/else statement to demonstrate shorthand variable flipping

I think this is not the point of this example; better to leave it as an explicit "if it's low then set it high, otherwise set it low" and leave the usage of ! to another example.
Also I'd say HIGH and LOW are not to be interpreted as true and false boolean values in Arduino, but rather as two abstract pin states (which just happen to be defined as 1 and 0, but that's an implementation detail that isn't even in their documentation).  Think of them as an enum.

Make comments more natural language

This part was good in my opinion (except for the Constants won't change/Variables will change part; I think it's useful to specify that distinction since they're part of what's being explained here).

PS: I forgot to mention, but it seems that you removed the newline at the end of the file.  Although C++ allows it and Arduino might be fine with that, it's better practice to always have your text files ending in a newline (for example it's illegal not to do so in C).

From @DRSDavidSoft on 2018-02-22
@codetheorist With the introduction of LED_BUILTIN, I thought this example should have been modified according to your edit. However, as @cousteaulecommandant already pointed out, that' not the point of the example.
However, as a better coding pattern for amateurs, I'd appreciate if @codetheorist still somehow makes its way to the examples.

From @cousteaulecommandant on 2018-02-22
I disagree.  Although LED_BUILTIN is a useful macro for referring to the built-in LED, I'd rather keep it this way, since this macro refers to a specific LED whereas the constant intends to refer to "whichever LED the design uses".  It's not really redundant since both refer to different concepts ("LED used in this program" vs "LED built into board").
Personally I strongly believe it's better practice to define all constants that will be used in the application in a single place near the beginning (as constants or as macros, which may or may not refer to other macros).  I have found that it eventually simplifies modifying the program later.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Fixed incorrect name of the Debugging menu

@julesra : Thanks for your contribution! The author(s) have been notified to review your proposed change. @pbarnettms

Hi sorry my bad, I am building a Unity3D C# project but it is being built as a VS C++ project, I didn't realize this. My change doesn't apply for C# in this case, it can be discarded.


SegmentTree to Data Structures

Segment Tree is a very useful data structure which helps perform various operation in logarithmic time. A bottom-up implementation of segment tree is done and it answers queries of sum, min, max over a range.

Very elegant implementation.

Added changePriority feature in priority queue, it works in amortized constant time. The priority queue implementation is done from scratch.

@forgotter I think it would be better to push this change into another branch, and open a new pull request just for it.

Yeah, I should have done it that way. Thanks :).

@juanplopes Hey, Is there a way to revert back to previous point. Or should I delete the fork and re-fork and then create branches for individual additions and create a pull request for each of them? Thanks for your help, I am just getting started with Github.

Sure, I'll try to refactor the code with function and operator.
Make sure not to reassign values to passed parameter.
About ans variable, it's just the answer for the given function in the asked range, i mean totalSum while summing, minValue while minimum over range and maxValue while maximum over range.
Yeah, forgot to add test file. Will add in next PR.
P.S. Should I work in linux to get rid of CLRS issue?

I tried to merge getMin, getMax and getSum but seems like it can't be done. Since each of them performs a different function on different tree, the code can't be reduced but will only increase the overhead by a function call.
Actually, most of time, we are only interested in performing one of functions in entire range, i.e. either min or max or sum. Maybe something like implement a segment tree class and then extending it to SumSegmentTree, MinSegmentTree and MaxSegementTree can be done.

Perhaps you can do something like that (didn't test it, may contain syntax errors):
  aggregate(from, to, where, initialValue, aggregateFn) {
    let ans = initialValue;
    for (from += this._size, to += this._size + 1; from < to; from >>= 1, to >>= 1) {
      if (from % 2 == 1) ans = aggregateFn(ans, where[from++]);
      if (to % 2 == 1) ans = aggregateFn(ans, where[--from]);
    }
    return ans;
  }

  /**
  Return the sum of all elements in the range [from, to]
  */
  getSum(from, to) {
    return aggregate(from, to, this._elementsSum, 0, (a, b) => a + b);
  }

  /**
  Return the minimum of all elements in the range [from, to]
  */
  getMin(from, to) {
    return aggregate(from, to, this._elementsMin, Number.MAX_SAFE_INTEGER, Math.min);
  }

  /**
  Return the maximum of all elements in the range [from, to]
  */
  getMax(from, to) {
    return aggregate(from, to, this._elementsMax, Number.MIN_SAFE_INTEGER, Math.max);
  }

Quite an implementation I'd say. Perfect use of lambda functions.  There's only one typo where[--to] instead of where[--from], Thanks for code.
What do you think of different implementation of each of individual function, separate classes for each of Min, Max and Sum. Since mostly only one of function needs to be performed on a range.  In current implementation, the complexity of modify is 3*(log(n)), by implementing it in form of separate classes, it'd be around (log(n)) and also only one array would be required for storage compared to three as with current implementation.
When I implementing it initially, my only thoughts were to put users to ease while using it, but now I think that It'd be better to do it in form of separate classes.

The Travis-CI build fails pointing no such path exists. What should be the path in the test-file?

@felipernb The current implementation looks fine to me. I have tried to include all suggested changes, maybe add more comments explaining function if required.
Everything seems to be working. sonar-scanner fails in Travis-CI, please check it out.

Thanks for the contribution and sorry for the delay. Merging now!


Error in Importing SAS Key

Hi Team,
We have setup a landscape where we use SAP’s SLT system (a realtime table replication system) in order to replicate data into Azure Event Hub and store it on the storage as avro files for further processing.
The SAP SLT is tracking all the changes made to tables, i.e. Insert, Update or Delete statement, and is running on the SAP Application Layer. And we have a lot of customers who is eager to get their SAP data into Azure in realtime and perform various analytics and ML afterwards.
It is actually working pretty well for all the tables we have worked on from SAP ECC system.
However, we have an issue when we are using parallel jobs. Either parallel jobs for a single table or parallel jobs for multiple tables.
With SLT we are getting all the table changes and we then generate relevant json files that are sent to the Event Hub.
Multiple tables are being transferred into the same event hub (we normally have 200-600 tables we need to replicate), as we have changes to many tables in SAP all the time.
If I force SLT to only use 1 job to move table change to Event Hub, it is working fine. But then we see a delay in the processing as the system only process 1 table at a time.
But, as soon as we define i.e. 4 parallel jobs to move changes from 50 tables to the Event hub, we get errors when getting the SAS token.
The error message is: Error in Importing SAS Key
And we think the issue is coming from some of the programs you deliver:
We are sending data using zcl_adf_service_eventhub method send.
"Sending Converted SAP data to Azure Eventhub
CALL METHOD lr_eventhub->send
EXPORTING
request        = <l_json>-json  "Input XSTRING of SAP Business Event data
"request        = lv_json_xstring  "Input XSTRING of SAP Business Event data
it_headers     = lt_response_headers  "Header attributes
IMPORTING
response       = lv_response       "Response from EventHub
ev_http_status = lv_http_status.   "Status
…
**Here it tries to get the token.
CLASS: ZCL_ADF_SERVICE_EVENTHUB.
method SEND.
…
TRY.
get_sas_token( EXPORTING iv_baseaddress = gv_uri
RECEIVING rv_sas_token  = lv_sas_token ).
CATCH zcx_adf_service INTO lcx_adf_service.
lv_msg =  lcx_adf_service->get_text( ).
MESSAGE lv_msg TYPE 'I'.
ENDTRY.
…
**First step is to decode sign
CLASS: ZCL_ADF_SERVICE_EVENTHUB.
method GET_SAS_TOKEN.
…
DEFINE encrypt_key.
decode_sign( receiving rv_secret = lv_sas_key ).
…
** get connection encryption from memory
CLASS: ZCL_ADF_SERVICE.
METHOD decode_sign.
DEFINE decode_key.
**Import internal table as a cluster from INDX
IMPORT tab  = lt_enveloped_data[]
FROM DATABASE zadf_con_indx(zd)
TO lw_indx
ID lv_srtfd.
  IF NOT lt_enveloped_data[] IS INITIAL.

…
** does it’s thing correcrly.
…
ELSE.
**Raise Exception
RAISE EXCEPTION TYPE zcx_adf_service
EXPORTING
textid       = zcx_adf_service=>error_import_sas_key
interface_id = gv_interface_id.
ENDIF.
So the issue seems to be that the lt_enveloped_data[] has not been retrieved from the memory.
Either it is being updated from another process with an incompatible memory area and then is unable to find it.
Or it is a timing issue where it is momentarily being updated.
When running a table in 4 parallel process, we sometimes get very fare into the process before it fails. E.g. 750 portions with 3 failed portions with this error after around 500 packages.
I guess this suggest it is some sort of timing issue.
Do you know how we might be able to work around this issue?
Thanks a lot for the great tools we can use to move SAP data to Azure!

how does the above issue relate to abapGit, abapGit is a git client, we do not provide free consulting for Azure products
and please dont cross post, https://github.com/microsoft/ABAP-SDK-for-Azure/issues/48#issuecomment-1014482110

Hi,
thanks for letting me know, it was a little unclear for me where the most logical place was to put the issue.
I will close this Issue here and create a new one at the mentioned location.

Issue moved.


fix(node): don't stall during (re-)registration of flaky nodes

Cherry pick the node status fix from the develop branch and adds a fix for registration delays.

fix(node): node status overridden with stale status (cherry-picked)
Instead of using a copy of the node to reload, use the node itself with a grpc locked client to
update the nodes when the registry is polling mayastor.
Extra:
To clarity, in the client operations, pass the grpc client down to the update operations to that its
use is explicit rather than implicit. Added a TODO to allow us to use different timeouts for the
list operations without having to reconnect the gRPC client.
Use more getters rather than accessing fields directly

fix(node): don't stall during registration of flaky nodes
Make sure the node is alive and loaded before adding it to the configuration.
todo: handle concurrent registrations for the same node_id -> subsequent ones should probably be
ignored until the first one completes.

bors try

bors try

bors merge

bors cancel

bors merge


Default language for application

Hello, thanks for this project it's perfect.
I just have a request :) Is it possible to configure the html lang="<%= htmlWebpackPlugin.options.defaultLanguage %>"
in node_modules/app-framework/client/index.ejs ?

Should be found in app/config.json.


Google cloud functions - Unable to access private npm repositories

Expected
When deploying typescript google cloud functions, private npm repository pacakges are accessible

What happens
Google cloud is not able to access the private packages because the .npmrc file with a valid read-only token to be uploaded to the function's repository.

Why
This is not available today for pulumi-gcp as  codePathOptions.extraIncludePaths not currently supported in GCP.

Steps to reproduce:

Setup typescript pulumi gcp project
Create new http google function referring to a private package:

import {parseText} from '@org/private_package';

import * as gcp from '@pulumi/gcp';

let greeting = new gcp.cloudfunctions.HttpCallbackFunction("hello", {
  callback: (req, res) => {
    // Change this code to fit your needs!
    res.send(parseText(`Greetings from ${req.body.name || 'Google Cloud Functions'}!`));
  },
  codePathOptions: {
    extraIncludePaths: ["./.npmrc"],
  },
});

export let url = greeting.httpsTriggerUrl;

pulumi up

Logs:

Diagnostics:
  gcp:cloudfunctions:Function (hello):
    error: Plan apply failed: 1 error occurred:
        * creating urn:pulumi:gcp-functions-test::stackname::gcp:cloudfunctions:CallbackFunction$gcp:cloudfunctions/function:Function::hello: Error waiting for Creating CloudFunctions Function: Error code 3, message: Build failed: {"error": {"canonicalCode": "INVALID_ARGUMENT", "errorMessage": "`gen_package_lock` had stderr output:\nnpm ERR! code E404\nnpm ERR! 404 Not Found<EMAIL_ADDRESS>ERR! A complete log of this run can be found in:\nnpm ERR!     /builder/home/.npm/_logs/2019-05-15T17_44_52_086Z-debug.log\n\nerror: `gen_package_lock` returned code: 1", "errorType": "InternalError", "errorId": "F28126B7"}}

  pulumi:pulumi:Stack (stackname):
    error: update failed

I'm actually surprised this ran without erroring earlier.  We have this code right now:
    if (codePathOptions.extraIncludePaths.length > 0) {
        throw new pulumi.ResourceError("codePathOptions.extraIncludePaths not currently supported in GCP.", codePathOptions.logResource);
    }

That said, we should just support this.  I'll try to et to this asap.

any updates?

this is a blocker for us!


Need Help for Query

This is simple json array.
{
results: [
  {
    id: 1,
   name : "Luki",
   breed: "Pit Bull",
   type: "Medium"
 },
{
    id: 2,
   name: "Atom",
   breed: "Alaskan",
   type: "Large"
 },
{
    id: 3,
   name: "Lola",
   breed: "Husky",
   type: "Medium"
 },
{
    id: 4,
   name: "Luna",
   breed: "Pom",
   type: "Small"
 }
  ]
}

I want to retrieve only id and name where type="Medium" like this
{
results: [
  {
    id: 1,
   name : "Luki"
 },
{
    id: 3,
   name: "Lola"
 },
  ]
}

In aws-sdk i can use projectionExpression like this
var params = {
      TableName : Dog,
      ProjectionExpression: "id, name",
      KeyConditionExpression: "#type = :type",
      ExpressionAttributeNames:{
          "#type": "type"
      },
      ExpressionAttributeValues: {
          ":type": "Medium"
      }
  };
var docClient = new aws.DynamoDB.DocumentClient();
docClient.query(params, function(err, data) {
  if (err) {
        console.log("Unable to query. Error:", JSON.stringify(err, null, 2));
    } else {
       console.log("GetQuery succeeded:", JSON.stringify(data, null, 2));
    }
});

How could i retrieve by using dynamoose? Please Help me.

{
 uid: 123,
 address: [
      {zip: "100036"},
      {zip: "100035"}
   ]
}

I want to query in zip code. In MongoDB i can use MulitKey Index  like {"address.zip" : "100036"} and aws-sdk can also use like this.  How could i use this operation in dynamoose? Thanks.

I don't think dynamoose will support query nested attributes.  It should but that functionality has never been added.  PR anyone?

Hi. Can i use ref in dynamoose? For Example
This is Category Schema
const dynamoose = require('dynamoose');
var Schema = dynamoose.Schema;

var CategorySchema = new Schema({
  name : { type: String, unique: true, lowercase : true}
});

module.exports = dynamoose.model('Category', CategorySchema);

I want to refer category id to product schema like this
const dynamoose = require('dynamoose');
var Schema = dynamoose.Schema;

var ProductSchema = new Schema({
  category : { type: Schema.Types.ObjectId, ref : 'Category'},
  name: String,
  price: Number,
  image: String
});

module.exports = dynamoose.model('Product', ProductSchema);

Does dynamoose support refer to other table? Thanks.

No.  You would have to do it manually.

I think it would be cool to have a "generated attribute" type, where the data in the attribute can be populated by the response of a function, similarly to how the validation routine works.
It would have to be smart enough to wait for a callback or process a promise, though.
@PaingSoe93 I did a similar thing to what you're wanting, but it had to be done in the logic of the controller, not the model.
Product.get(id, (err, product) => {
  if (!product) { /* no product found */ }
  else {
    Category.get(id, (err, category) => {
      if (!category) { /* no category found */ }
      else {
        product.category = category
      }
    })
  }
})

I'm confident that this code can (and should) be cleaner, but it works.

Thanks @troyswanson. I'll try.


fixes #31; SerJson generates trailing , when serializing struct with Option

This PR moves the compile-time computation of the last index to runtime, as we only know the available fields then.
Adding the "," will be done when adding the next field, because we never know if we are currently processing the last field or not.

Thanks!

Publish 0.1.26 with this fix


Typo was corrected

No issue number, just saw a typo on a page

It's ok :) noticed that while copying and thought that it would be nice to tell you )
Great article btw! helps a lot)


Made -q and -b bam_readcount flags user definable

Modified ./pvacseq/bam_readcount.cwl and all upstream dependencies to optionally accept -q (minimum mapping quality) and -b (minimum base quality) flags. Should close issue #214

I wasn't sure about defining defaults- we commented on this in /genome/docker-cle#76. At the moment, there are default values to simplify logic in that PR's python script. One of these default values was already present in the script (-b=20) before my PR, and is different from the default value within the actual tool (-b=0), so I left it as 20 to avoid breaking/changing old workflows that used this.


llvm: enable default targets

Some languages support cross compilation out-of-the-box by leveraging the default targets in llvm. As an example, I am packaging zig. It is a core and expected feature of the language, to be able to create binaries for other architectures.
I am testing out a forked llvm where I just removed the specified TARGETS and used the defaults, and will report back if that works. If it does, I'd appreciate the same in the default build on llvm.

Hey, I am currently working on building zig for my languages repo here.
I worked with the bootstrap repo of zig, an upstream bug needs to be opened as suggested here to make it so you can build zig with no modifications to llvm
Also this should have been opened on the kisslinux/repo repo as that one houses llvm,

@mmatongo : Did you have success to build zig on KISS yet? There is currently work on a wayland wiki article intersecting zig.
https://github.com/kiss-community/wiki/pull/5/files#diff-85d242737d2b3a139617365af85cec5f1c8b1ca201508428d6f99f9fa1bb7b00R206


new kalman filter on quadcopter for altitude hold

Main Changes
New Kalman Filter to include data for Barometer and GNSS altitude. this will be used for altitude control.
Tests
This branch still needs to be tested.

@alphaville @Runway27 this PR is ready for review

@alphaville @ejb-11 @Runway27  are we happy for this to be merged?


InkSplash and InkHighlight shouldn't be special

Previously, these classes where in material.dart, which meant they could
access private interfaces in that library. This patch moves them out
into their own files so that they need to play by the rules of the
public API.
Fixes #5969

@Hixie @HansMuller

Looks like these classes are self-owning too... Oops.
What ensures that they go away if the tree between their referenceBox and the Material changes?
Anyway, LGTM. Thanks for doing this. It doesn't look like it was as bad as I feared, which is good. I tried doing it a few months ago and had trouble with it for some reason.

It's not quite so bad as that.  They're owned by the InkResponse, which is the object that calls new on them.  The InkResponse disposes them when it deactivates, which is pretty sensible.


Date Picker display breaks with user defined CSS

Describe the bug
A clear and concise description of what the bug is, and the conditions when it occurs.
How to reproduce
https://stackblitz.com/github/clane/clarityTest2/tree/master/clarity-test-app

Open one of the date picker examples and note its vertical position on the screen
Run the following JavaScript in the console to set the CSS styles to increase text-spacing

(function() {
//launch it on your page and look to make sure that the text is able to resize in their containers
var style = document.createElement('style');
style.type = 'text/css';
//style.appendChild(document.createTextNode());
document.head.appendChild(style);
style.sheet.insertRule('*{line-height:1.5 !important; letter-spacing: 0.12em !important; word-spacing: 0.16em !important;}', style.sheet.cssRules.length);
style.sheet.insertRule('p{margin-bottom: 2em !important;}', style.sheet.cssRules.length);
})();

Observe that the vertical position of the date picker has changed.

Expected behavior
Prevent the DatePicker from moving as a result of the user setting the following CSS properties.
Line height (line spacing) to at least 1.5 times the font size;
Spacing following paragraphs to at least 2 times the font size;
Letter spacing (tracking) to at least 0.12 times the font size;
Word spacing to at least 0.16 times the font size.
Additional notes

This seems to occur only if you apply the changes when the date picker is open and then apply the styling changes.
@chlane will retest this and evaluate if there is something we should do or not.

While the issue is could be severe when it occurs, it is more logical for the user to apply the text spacing styles before opening the date picker. If they do that this issue will not occur. Now that the behavior is noted, I think this issue can be closed with no further action.


Create Search Endpoint, API and Gateway connections, connect the created endpoint with Search component

Description
Component
The search component exists, but it is not connected to any endpoint :

The goal of this issue is to implement the backend functionality for the search endpoint and connect it to the search bar component
Endpoint
RequestModel
POST /api/search
body: {
	type: 'DID' | 'RSE' | 'Rule' | 'Any'
  query: string
}

ViewModel
{
  did: DID[]
  rse: RSE[]
  rules: Rule[]
}

With the help of #308


Project ID required even if running script from Compute Engine

var datastore = require('@google-cloud/datastore')();
The line above used on compute engine (not app engine) will still throw the error below -
[Error: Sorry, we cannot connect to Google Cloud Services without a project ID. You may specify one with an environment variable named "GCL
OUD_PROJECT". See https://googlecloudplatform.github.io/google-cloud-node/#//docs/guides/authentication for a detailed guide on creating an
authenticated connection.]
Yet in the documentation it says -

If you are running your app on Google Compute Engine, you won't need to worry about supplying connection configuration options to @google-cloud/datastore— we figure that out for you.

That is not the case.
To reproduce create a google Compute engine instance and run a node.js script without a supplied project ID it will fail.

Thanks for reporting. Which version of @google-cloud/datastore are you running?

I'm seeing this today on App Engine Flex.
Error: Sorry, we cannot connect to Google Cloud Services without a project ID. You may specify one with an environment variable named "GCLOUD_PROJECT". See https://googlecloudplatform.github.io/google-cloud-node/#//docs/guides/authentication for a detailed guide on creating an authenticated connection.

But I have an environment variable set for GCLOUD_PROJECT=myproject. This was working fine on January 3rd when I last deployed. But it is blocking me from deploying today.
Note that I'm still on "google-cloud": "0.41.2". Will upgrading to the latest solve this or is it a bug in App Engine Flex?

I was on gcloud 138.0.0, but I found this:
139.0.0 (2017/01/11)
  Breaking Changes
- (Google App Engine) Flexible deployments now skip files matching `node_modules` and `.git` by default, but no longer skip other hidden files by default. Standard deployments are not changing.

We're using https://github.com/motdotla/dotenv for our ENV variables and we use .env and .env-prod files that were apparently being stripped out of our container by the builder service in 138.0.0.
I tried again with gcloud 139.0.0 and we're able to deploy our app again. Though this doesn't seem like it will resolve the OP's issue unfortunately :(

This also happens on non app or compute engine environments with >= 0.45.1. Downgrading to 0.45.0 resolves the issue.
const Gcloud = require('google-cloud')({
  keyFilename: Config.GCLOUD.KEYFILE
});

@stephenplusplus any ideas?

Looking into now, sorry for the delay!

@HighNoonSolutions I haven't been able to reproduce on GCE. I set up a micro box, installed Node, and tried against both<EMAIL_ADDRESS>and<EMAIL_ADDRESS>@michaelfreund Using<EMAIL_ADDRESS>locally (non-GAE or GCE) didn't throw for me.
I must be failing to mimic both of your environments in some way, so please share anything else I can do to reproduce. In general, be sure that you're starting from a clean node_modules directory and un- and then re-install google-cloud or any of the sub-modules you might be using, so you're getting the latest copies.

@stephenplusplus completely removed and reinstalled node modules. I still get the same error. If I output the error message from https://github.com/GoogleCloudPlatform/google-cloud-node/blob/b1c6b210106bb064b0662173e2dbcd41ad211f89/packages/common/src/util.js#L355 I can see a Maximum call stack size exceeded.

Hey @michaelfreund, did you find a fix fox this? We're experiencing the same problem

@arbesfeld this may have been resolved with a recent change. Please try upgrading to<EMAIL_ADDRESS>

Unfortunately this didn't fix it. We are using projectID like this:
import makeGcloud from 'google-cloud';

const gcloud = makeGcloud({
  projectId: 'my-project',
});
const bigtable = gcloud.bigtable()

While we are also running in App Engine. Would this be expected to work?

@stephenplusplus Is this a release blocking issue? It looks like several users have encountered it.

This is one where I have to think in environments it's not working, it's because of some stale dependencies. We have released 0.48.0-- could anyone still experiencing this please try rm -rf node_modules where applicable and re-installing this new version?
@bjwatson If there are still problems, I will need someone to help test in GAE (@jmdobry maybe?)

@stephenplusplus Will this be a problem with future updates? Or is this a one-time cost?

What do you mean?

Once user run rm -rf node_modules and re-install, should they be done with this issue forever and ever?

I hope so! I was never able to pin down exactly what was causing this issue, so I have to hope that it was corrected by a related change that shipped in 0.47.0. If it does correct itself by a fresh upgrade, then no further work by the user is necessary.

Ok, thanks. I dropped this priority to P1. Let's close it in another week if we don't hear any other complaints about this.

Getting this with 0.48.0 on App Engine nodejs runtime.
var gcloud = require('google-cloud')({   projectId: 'my-project-id-here',   keyFilename: './keyfile.json' });
Log error when trying to access gcs bucket:

"Error: Sorry, we cannot connect to Cloud Services without a project ID. You may specify one with an environment variable named "GCLOUD_PROJECT". See https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/authentication for a detailed guide on creating an authenticated connection."

Thanks @mixmatch. I'm about to kick off a publish-fest. At the end of it, we'll have<EMAIL_ADDRESS>and hopefully you can test for us again.

The publish fest is over-- I believe everyone should be covered now if you un- and re-install the latest dependencies that you need. Let us know if there are still any issues.

I am still having the same problems on 0.49.0 after doing a clean uninstall and reinstall. Downgrading back to 0.45.0 resolves this issue.
`var google_cloud = require('google-cloud')({
projectId: 'PROJECT',
keyFilename: 'KEYFILE.json'
});
var gcs = google_cloud.storage();
var bucket = gcs.bucket('SOURCE-BUCKET');
var dest_bucket = gcs.bucket('DESTINATION-BUCKET');
`

What environment are you running in @xyk2?

Apologies should have included that earlier - Node 6.10.0 on Mac OSX 10.11.6 using restify.
var restify = require('restify');
var server = restify.createServer({
	name: 'ffmpeg-runner'
});

google_cloud = require('google-cloud')({
	projectId: 'PROJECT-ID',
	keyFilename: 'keys/KEYFILE.json'
});

gcs = google_cloud.storage();
dest_bucket = gcs.bucket('BUCKET_NAME');

server.get('/download', download);
server.get('/upload', upload);

function download(req, res, next) {
	dest_bucket.file('sandbox/index.m3u8').download({destination: 'index.m3u8'}, function(err) {
		if(err) return console.log(err);

		res.send("Download successful");
		console.log("Download successful");
	});
}

function upload(req, res, next) {
	dest_bucket.upload('index.m3u8', {destination: 'sandbox/index.m3u8'}, function(err, gFileObj) {
		if(err) return console.log(err);

		res.send('Upload successful');
		console.log('Upload successful');
	});
}

server.listen(8080, function() {
	console.log('%s listening at %s', server.name, server.url);
});

The code where the error occurs is in the restify upload handler. When there is a GET request /download, the file downloads fine from GCS. The upload handler throws the Error: Sorry, we cannot connect to Cloud Services without a project ID.. The same upload code works when placed outside the Restify handler though, so I may be missing something very stupid...

Actually, I think that was exactly what I needed to see the problem. We have been iterating over a larger object than I believe we should be. I'm putting a fix through and I think we'll all be happier people after it thanks to you 👍

PR sent in #2100.


get note on readme that localstack test python requirements

localstack also seems to have a Java dependency too.

localstack supports both Python 2 + 3 and has a dependency on Java 8: https://github.com/localstack/localstack#requirements


Add Khadas VIM3 support

Add sound configuration for Khadas VIM3. Currently only HDMI supported.
This requires access to device tree in sysfs.

That will not work because it's mask by docker. We Can pass the machine type over env

Yes I realized, that is why I set it to draft :sweat_smile:
We could also enable device tree access for Audio with a Supervisor upgrade I guess? Add-ons have that as an option. Not sure what is better/easier.

Hm, I see there is currently not a easy way to access the firmware directory in its default location. /proc/device-tree symlinks to /sys/firmware/devicetree/base and /sys/firmware/` directory is in a hard-coded mask list since years: https://github.com/moby/moby/commit/8b1772c86b20d06ae6bd8ccf4b20f6df4cd86b62
We support non-native location with this pull request: https://github.com/home-assistant/supervisor/pull/519
It seems that a bind mount to a different location works, but the symlink /proc/device-tree can't be changed, so whereever we bind mount it would be non-standard :(

New version using sound device id from sysfs.


Update DG

Changes

Fix grammar in DG
Update diagrams

Related Issues/ PRs

Fixes #114

Codecov Report

Merging #266 (e6df71a) into master (8e2a398) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #266   +/-   ##
=========================================
  Coverage     66.05%   66.05%
  Complexity      751      751
=========================================
  Files           131      131
  Lines          2604     2604
  Branches        261      261
=========================================
  Hits           1720     1720
  Misses          768      768
  Partials        116      116

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Add education hostname

Context
Custom domain for test environment needs education hostname variable.
This commit adds the variable to parameter file.
Trello card
https://trello.com/c/c51eKhIk

 Create custom domains


Migration to the latest Bevy API of 0.11

much as the title says the beginning of migration to the latest bevy api is needed. additionally, it would be excellent to develop a consistent workflow of updating in step with each bevy release.

related issues:

[ ] #10
[ ] #7

I am guessing this is no longer maintained. Is there interest in a fork to bring it up to date?

I just have never been able to make some time to keep up with it but I would love to transfer ownership of the project to someone else or for a fork to take off

I was indeed interested in making some terminal arcade games using bevy for a personal project. I would be more than willing to help out with new ownership or on a fork.

I will spend some time this weeke and see about at least updating it to Bevy and going from there. I did see @ecrax had a fork that looks to have been at least partially updated.

Oh yeah, I totally forgot about this. As far as I can remember, there was some weirdness to one of the examples. But everything else (should) be working fine (I hope). Feel free to use my fork as a reference, or even copy it entirely :).

Very cool! I will take a look at your fork 💯

Any updates?

ah that's right, no progress yet.
but this does remind me it is something i wanted to work on, thanks!

Migrated to bevy 0.12: https://github.com/ecrax/bevy_crossterm/pull/2


Flaky optimism p2p::can_sync test

A recent merge queue run failed in a way that indicates we have something flaky in p2p::can_sync:
https://github.com/paradigmxyz/reth/actions/runs/9007839847/job/24748566483
The important logs:
2024-05-08T20:09:21.442257Z ERROR reth_node_builder::launch::common: Failed to build global thread pool: ThreadPoolBuildError { kind: GlobalPoolAlreadyInitialized }
2024-05-08T20:09:26.441518Z ERROR reth_node_builder::launch::common: Failed to build global thread pool: ThreadPoolBuildError { kind: GlobalPoolAlreadyInitialized }
2024-05-08T20:09:44.902706Z ERROR blockchain_tree: Reverting canonical chain failed with error: OptimisticTargetRevert(88)

We might need something lazy for the thread pool, or it might have to do with launching multiple nodes? Have not debugged this in depth
The error is thrown here:
https://github.com/paradigmxyz/reth/blob/d46774411fee0802f4390e4f04b7184cdcdb3ea2/crates/node/builder/src/launch/common.rs#L110-L126

we can simply remove the error log here

we can simply remove the error log here

The test is timing out though, so we need to do something else to fix the test probably

This is because you can't have more than one threadpool per process, I ran into this with one of the benchmarks we hadn't kept up to date, too. Not entirely sure what the best way to circumvent this is

Actually the flake might be more related to
2024-05-08T20:09:44.902706Z ERROR blockchain_tree: Reverting canonical chain failed with error: OptimisticTargetRevert(88)

But I still need to repro

Yeah reading the threadpoolbuilder docs, it returns an error but does not mention anything about it being fatal or stalling, so should be ok: https://docs.rs/rayon/latest/rayon/struct.ThreadPoolBuilder.html#method.build_global

@joshieDo do you mind taking a look at this? I haven't run into this in a while though, so it may just be difficult to repro

Still an issue https://github.com/paradigmxyz/reth/actions/runs/9506077502/job/26202446729?pr=8808


Odd line break in expense summary title

When I'm editing the expense it looks like this:

But on the summary it looks like this:

This might be related to my PR from last week - I'll have a look.


fix Error: Cannot find module 'plugin-error'

https://github.com/JamesHemery/gulp-append-prepend/issues/7

I'm sorry i've forgotten update package.json after PR #6
Thanks you for update.


[Task]: [flink] EncodedValueComparator can use serialzed bytes for deterministic Coders

What needs to happen?
EncodedValueComparator enforces deserialization of serialized bytes for key comparison. This can be avoided for deterministic Coders.
Issue Priority
Priority: 3 (nice-to-have improvement)
Issue Components

[ ] Component: Python SDK
[ ] Component: Java SDK
[ ] Component: Go SDK
[ ] Component: Typescript SDK
[ ] Component: IO connector
[ ] Component: Beam YAML
[ ] Component: Beam examples
[ ] Component: Beam playground
[ ] Component: Beam katas
[ ] Component: Website
[ ] Component: Spark Runner
[X] Component: Flink Runner
[ ] Component: Samza Runner
[ ] Component: Twister2 Runner
[ ] Component: Hazelcast Jet Runner
[ ] Component: Google Cloud Dataflow Runner

Hi can you assign it to me. I'd like to work on this issue

.take-issue

@je-ik I'd like to contribute to this issue if it's still open. I went over the issue description but I wasn't able to understand where exactly the de-serialization is enforced and also how to determine if the bytes were encoded by a deterministic coder. Can you please guide me?

Hi @kirupha2000 , the current implementation of mentioned EncodedValueComparator seems correct to me now. Closing this.


Contention

We read and write from the schedule every single dequeue and enqueue. Thus, multi-threaded applications which are trying to read and write to these queues in every thread will have some seriously high amounts of retrying. Currently, I'm in the process of running benchmarks on the cases that I expect this implementation to do quite well in, then I will post those results here. Then, I will make a benchmark for the number of writes we can achieve with many threads. Then, I am going to try to improve the latter one while retaining the improvements of the former (which do seem to be, more or less, as expected).
Afterwards, I'm thinking of basing the implementation off of https://github.com/haskell/stm/pull/12/files, so maybe @treeowl would like to contribute a few words here.

Wow, the throughput on this is truly horrible. Numbers imminent.

Running a throughput test for 2 threads...
Queue:
Observed 11952323 writes
Observed 11893828 reads
TQueue:
Observed 13823711 writes
Observed 13799242 reads
Queue reads - TQueue reads: -1905414
Queue writes - TQueue writes: -1871388
Running a throughput test for 4 threads...
Queue:
Observed 11938974 writes
Observed 9590628 reads
TQueue:
Observed 23506492 writes
Observed 23506194 reads
Queue reads - TQueue reads: -13915566
Queue writes - TQueue writes: -11567518
Running a throughput test for 8 threads...
Queue:
Observed 10032808 writes
Observed 6983014 reads
TQueue:
Observed 21854963 writes
Observed 21854237 reads
Queue reads - TQueue reads: -14871223
Queue writes - TQueue writes: -11822155
Running a throughput test for 16 threads...
Queue:
Observed 7433225 writes
Observed 6611199 reads
TQueue:
Observed 19778491 writes
Observed 19778000 reads
Queue reads - TQueue reads: -13166801
Queue writes - TQueue writes: -12345266
Running a throughput test for 32 threads...
Queue:
Observed 7553271 writes
Observed 5927508 reads
TQueue:
Observed 15592534 writes
Observed 15448899 reads
Queue reads - TQueue reads: -9521391
Queue writes - TQueue writes: -8039263
Running a throughput test for 64 threads...
Queue:
Observed 7105295 writes
Observed 6846840 reads
TQueue:
Observed 13252947 writes
Observed 13069567 reads
Queue reads - TQueue reads: -6222727
Queue writes - TQueue writes: -6147652
Running a throughput test for 128 threads...
Queue:
Observed 6693465 writes
Observed 6012856 reads
TQueue:
Observed 15233959 writes
Observed 11691045 reads
Queue reads - TQueue reads: -5678189
Queue writes - TQueue writes: -8540494
Running a throughput test for 256 threads...
Queue:
Observed 7814738 writes
Observed 7533772 reads
TQueue:
Observed 17618587 writes
Observed 17616279 reads
Queue reads - TQueue reads: -10082507
Queue writes - TQueue writes: -9803849

Sorry, I'm having trouble understanding what you're comparing to what. Which implementation is terrible?

Oh, I'm sorry. These are the benchmarks of my current implementation :) I actually just realized I hadn't turned on -O2 so I am rerunning these, but they should only be worse. I am planning to rewrite it using the two schedule invariant you came up with once I get this next set of results to compare to.

My current implementation is terrible cause writes and reads always have contention. The only case I do better on is the worst-case for TQueue.

Here, I'll tag you in the PR that actually has the tests.


How to use with ssh password?

Is it possible to use a password in ssh automation?

Right now it is not possible. As we use openssh under a hood at will require to type password for every command. We right now in process of rewriting webpod to Go, and it will be possible to use passwords with webpod in near future.

Thank you, @antonmedv, for the quick response. It would be great to have that feature. Currently, I am selecting tools for project testing, and this is a blocker. I am eagerly waiting the new version. And many thanks for your fantastic suite of utilities.
I wonder, is it possible to integrate Node-ssh or ssh2 into the Webpod with password authentication before the Go version is released?

Yes, it is possible, but we don’t have a capacity to do it right now.

For those waiting for SSH with username/password support to be released, you can use the following module in the meantime.
import { NodeSSH } from 'node-ssh';
import { readFileSync } from 'node:fs';
import { homedir } from 'node:os';
import { join as pathJoin } from 'node:path';
import config from './config.json' with { type: 'json' };

const { host, username, password } = config;
const sshFolderPath = pathJoin(homedir(), '.ssh');
const publicKeyPath = pathJoin(sshFolderPath, 'id_rsa.pub');

/**
 * Copy user's public key to authorized_keys on remote server.
 * "~/.ssh" folder and "authorized_keys" file will be created if don't exist.
 * @returns bool
 */
const connectAndCopyKey = async () => {
  const ssh = new NodeSSH();

  try {

    await ssh.connect({ host, username, password }); // Connect to the SSH server using username/password
    console.log('Connected to SSH server');
    const publicKey = readFileSync(publicKeyPath, 'utf8'); // Read the local SSH public key
    await ensureSshDirectoryExists(ssh); // Ensure ~/.ssh directory exists, create it if not
    await ensureAuthorizedKeysFileExists(ssh); // Ensure authorized_keys file exists, create it if not
    await copyAuthorizedKey(ssh, publicKey); // Copy public key to authorized_keys on remote server if not already there

  } catch (err) {
    console.error('Error connecting or copying SSH key:', err);
    return false;
  } finally { ssh.dispose(); } // Close the SSH connection

  return true;

}

async function ensureSshDirectoryExists(ssh) {

  const { stdout: lsOutput } = await ssh.execCommand('ls -la ~'); // Check if ~/.ssh directory exists, create it if not
  if (lsOutput.includes('.ssh')) return;

  await ssh.execCommand('mkdir -p ~/.ssh');
  await ssh.execCommand('chmod 700 ~/.ssh');
  console.log('Created ~/.ssh directory on remote server');

}

async function ensureAuthorizedKeysFileExists(ssh) {

  const { stdout: lsOutput } = await ssh.execCommand('ls ~/.ssh'); // Check if authorized_keys file exists, create it if not
  if (lsOutput.includes('authorized_keys')) return;

  await ssh.execCommand('touch ~/.ssh/authorized_keys');
  await ssh.execCommand('chmod 600 ~/.ssh/authorized_keys');
  console.log('Created authorized_keys file on remote server');

}

const copyAuthorizedKey = async (ssh, publicKey) => {

  const { stdout: authorizedKeysContent } = await ssh.execCommand(`cat ~/.ssh/authorized_keys`); // Check if the public key already exists in authorized_keys
  if (authorizedKeysContent.trim().includes(publicKey.trim())) return;

  await ssh.execCommand(`echo '${publicKey}' >> ~/.ssh/authorized_keys`); // Append the public key to the remote server's authorized_keys
  console.log('Public key copied to authorized_keys on remote server');
}

export default connectAndCopyKey;


feat(aws-fargate-eventbridge): new construct

Issue #694, if available:
Description of changes:
Create a construct that links a Fargate Service to Amazon EventBridge
Should create a VPC or accept an existing VPC
Should create a Fargate Service or accept an existing service
Should create a new event bus or accept an existing event bus
Should grant the service IAM permission to write to the bus
Should set up environment variables in the service that identify the function in the construct code so the container can write to the bus
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
fixes #694

AWS CodeBuild CI Report

CodeBuild project: githubautobuild-for-cdk-v1
Commit ID: c81772273f11a0650597f3ea9c183cf4082459c5
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: githubautobuild-for-cdk-v2
Commit ID: c81772273f11a0650597f3ea9c183cf4082459c5
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: githubautobuild-for-cdk-v1
Commit ID: 56561b79132124d923b08c2fb5fd8858425261a0
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: githubautobuild-for-cdk-v2
Commit ID: 56561b79132124d923b08c2fb5fd8858425261a0
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: githubautobuild-for-cdk-v2
Commit ID: c20f146fda22eb749d32b2259b798804be112853
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: githubautobuild-for-cdk-v1
Commit ID: c20f146fda22eb749d32b2259b798804be112853
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: githubautobuild-for-cdk-v2
Commit ID: db2bfdd5a47ed6bd4e7a687adc236ab1f01b70cc
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: githubautobuild-for-cdk-v1
Commit ID: 45aa5ac9963e4e0d816795df9655b24888819757
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


Floating script editor losing focus on save

Godot version
v4.1.rc3
System information
Godot v4.1.rc3 - Windows 10.0.19045 - Vulkan (Compatibility) - NVIDIA GeForce GTX 1650 (NVIDIA; <IP_ADDRESS>40) - AMD Ryzen 3 3100 4-Core Processor (8 Threads)
Issue description
When writing on a floating script editor on a secondary display, saving the script file via ctrl+s causes the floating editor window to lose focus, making the primary Godot window focused, requiring manually switching to the floating window again.
Steps to reproduce
Make the script editor window floating, and move it to another display. Write a trivial script file, and hit ctrl+s.
Minimal reproduction project
N/A

This also happens for me on macOS Ventura and v4.1.stable.official.
I have both the main editor window and the floating code editor window on a single monitor, both maximized.
When I use Cmd+S to save the script, the main editor window immediately steals focus and covers the floating code editor window.

Duplicate of #78672 ?


Used Node.js 18 for GitHub actions.

Is it worth using 20? https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/

Is it worth using 20? https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/

18 is the latest LTS, that's why I chose it. But I don't mind using 20 instead.

Given this image, I vote 20 which will be supported for longer than 18.

I vote for 20 too.

Updated :+1:

Thanks y'all for reviews :rocket:


Additional Completion Screen/Message

Is your feature request related to a problem? Please describe.
This is not related to a problem, but rather just user experience enhancements
Describe the solution you'd like
For a successful build, it would be nice to have SYM flip to a final screen with custom messaging informing the user that a build has been successful. Presently, SYM have a status message at the bottom notifying the user that the build has been completed, and then they may interact with he completion button (wait/exit/restart/etc). Instead, SYM should show a final page, void of the policy array list, with final messaging to the user. This will give admins the ability to add additional messaging such as "You must restart your system to enable XYZ." or something as simple as "Thank you for completing the build, for additional resources, please go to ABC or Self Service"
Describe alternatives you've considered
I thought of simply calling a brand new Dialog window, but then I'd run the risk of having it pop up even when there are policy failures, so dropped that idea.
Additional context
Full Disclosure - a colleague asked me if there were additional completion options for SYM as we work. After typing up this ticket I realized that I'm essentially asking for a copy of Jamf's macOS Onboarding Setup Complete Screen....

Thanks for the FR, @tonyyo11

Thanks, @drtaru, for pointing out Removing a list.

That's it! Thanks. This is closed.
Edited the script beginning at line 2025 of version 12.7 and was able to do exactly what I wanted to accomplish.
Added two new lines, one with dialogUpdateSetupYourMac "list: hide" and another with dialogUpdateSetupYourMac "message: <message>"


Missing Changelog

I went looking for an easy way to view changes made to this project and noticed there is no changelog. I'd be more than happy to add a PR that includes a CHANGELOG but wanted to see if that's something you'd want added since that'd alter your releasing workflow a tad.
Let me know!

Github 'releases' provides a rough equivalent/alternative. Reference https://github.com/hadolint/hadolint-action/releases

Unfortunately the items listed there are pretty vague, but yeah that's certainly an option. This has sat for some time with no input until today. I'll close.


Popover closes unexpectedly

Example:
http://plnkr.co/edit/dMWd7KRHjaoOZWXyYvE5?p=preview

When I click on "today" the popover closes unexpectedly.
When I select a date the calendar closes, again I select a new date in the same calendar and closes unexpectedly the popover. This happens when I select twice dates in the same calendar.

Reference: https://github.com/angular-ui/bootstrap/issues/5305#issuecomment-173965779

@BartoGabriel, please do not use the issues forum for support-related requests.  Rather, please follow the instructions here as support-related questions are best served by and for the community.  The issues forum is reserved for bugs.  Thanks.
The problem is you are using a datepicker inside a popover and you've specified outsideTrigger as the close trigger, which is happening when you click on the datepicker since it's outside the popover.  Your best bet is to use none and then use the popover-is-open property to manually close it based on the datepicker popup's is-open property.

@icfantv It is not normal behavior. For example if you select the date from 01/03/2016 three times, the component is closed.
Why it is closed at the third time and not in the first?

While I agree that this is not normal behavior, it does not change the fact that you're not using the combination of the two correctly.  Because of this latter statement, I'm not sure it makes any sense for the developers to spend time investigating why this is occurring.  Investigation into issues can be quite time consuming and we would like to reserve it for issues that are more clearly library bugs.
I'm happy to reopen this but it's probably going to be a very low priority.  What are your thoughts?

I spoke with the dev team and we think we believe we have a relatively easy fix which would involve stopping event propagation on the buttons in the datepicker so that events don't leak out from the component (making it isolated).
That said, you still want to change your trigger on the popover because even if we do that, you're still going to run into issues with the buttons that lie outside the popover boundaries.

This is looking like a pretty big change since nearly all the templates will need to change as well as the datepicker code as well.  This is not trivial.

I agree that the priority should be low, and the error is not urgent. I do not think it worthwhile to make many changes just for this error.
On the other hand, it does not take into account the limits of the popover as you say. For example, if you click on the June 2, it has the same behavior as clicking on a date which is within the borders of popover.

I'm going to schedule this for 1.2 - I think this is pretty important to fix, but one can temporarily fix this by wrapping the datepicker usage like this
<div ng-click="$event.stopPropagation()">
  <input uib-datepicker-popup ng-model="foo">
</div>

@wesleycho thank you very much.
Following the example in case anyone ever need with the current version.
http://plnkr.co/edit/V5lzRCMUJCBerTzQ18pU?p=preview


As a developer using the iOS SDK, I should be able to use non-JSON formats and encryption.

Relevant issues

Encryption https://github.com/blockstack/blockstack-ios/issues/11

Related to #12


http2: migrates metadata_encoder_test.cc away from direct usage of nghttp2

Signed-off-by: Biren Roy<EMAIL_ADDRESS>Part of addressing https://github.com/envoyproxy/envoy/issues/23596.
Commit Message: Migrates metadata_encoder_test.cc away from direct usage of nghttp2.
Additional Description:
Risk Level: low
Testing: ran the unit tests locally
Docs Changes:
Release Notes:
Platform Specific Features:

/assign @diannahu
/assign @RyanTheOptimist

/assign @bencebeky

FYI spell check failed:
./test/common/http/http2/metadata_encoder_test.cc:97:    // nghttp2_session_callbacks_del(callbacks);

Run tools/spelling/check_spelling_pedantic.py to check or fix it.

/assign @KBaichoo
This one's ready, as soon as it has a deps review.


Allow installer.py to be loaded as a module

Don't run main() if we run import installer from another script. This allows us to use this file as a library.

hi, this is performed in the latest installer/script via the branch main. see: https://github.com/corelight/ecs-templates/blob/488214b061a279ba65ffc72079ae980d0be5204e/corelight_ecs.py#L1098


[ci] add gitlab

The PR configures CI/CD for the repo.
cc https://github.com/paritytech/ci_cd/issues/582

LGTM


Implement wlr-foreign-toplevel-management-unstable-v1

This is a proof-of-concept implementation of https://github.com/swaywm/wlr-protocols/pull/26
Provides the basic wlroots implementation, rootston glue and a simple example client.

@emersion Thanks for the review.
I updated the code to address (most) of the issues. I'll squash commits again when this is deemed ready for merging.

Once again thanks for the reviews @emersion
I squashed things together and fixed the last issue we know of.

Thanks!


Message ports are non-functional objects in sandbox environments with contextIsolation

I noticed that running scripts/code.sh --__sandbox yields the following error:
ERR port.start is not a function: TypeError: port.start is not a function
Debugging this where we receive the MessagePort from main process, I see an empty object:

This indicates to me that message ports do not survive when exposeInMainWorld is used from contextBridge
@deepak1556 have you heard about this?

Yes, I can see the port being send over just fine when contextIsolation: false.

It looks like https://github.com/electron/electron/issues/27024 is relevant and the new docs around this topic have a sample what we need to do: https://github.com/electron/electron/blob/059ef6d20bfd323c97da9e07357782d4703d5dd7/docs/tutorial/message-ports.md#communicating-directly-between-the-main-process-and-the-main-world-of-a-context-isolated-page

via https://github.com/microsoft/vscode/commit/f5ac4f42cc25b96531b73c8d34375a00406ddb2f
@deepak1556 fyi if you want to review. I am using the postMessage solution now even when contextIsolation: false to ensure we selfhost on the same solution.
//cc @Tyriar @meganrogge this code will be relevant to you once the renderer talks to the terminal via message ports.


shaka player 2.1.3 not playing dynamic manifest

we are trying to play a clear DASH content with shaka 2.1.3 and we are facing issues.
<?xml version="1.0" encoding="UTF-8"?> <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="dynamic" availabilityStartTime="2017-06-17T10:40:35Z" publishTime="2017-06-17T10:40:44Z" minimumUpdatePeriod="PT12S" timeShiftBufferDepth="PT3600S" minBufferTime="PT12S"> <Period id="0" start="PT0S">   <AdaptationSet mimeType="audio/mp4" lang="de" segmentAlignment="true" startWithSAP="1">     <SegmentTemplate presentationTimeOffset="0" timescale="10000000" initialization="seg_$RepresentationID$_init.mp4" media="seg_$RepresentationID$_t$Time$.mp4">       <SegmentTimeline>         <S d="20480000" t="14976960060809000"/>         <S d="20480000"/>         <S d="19200000" t="14976960101769000"/>         <S d="20480000" t="14976960120969000"/>         <S d="20480000"/>         <S d="19200000" t="14976960161929000"/>         <S d="20480000" t="14976960181129000"/>         <S d="18766222" t="14976960201609000"/>         <S d="20480000" t="14976960220375222"/>       </SegmentTimeline>     </SegmentTemplate>     <Representation id="audio512_0" bandwidth="200000" codecs="mp4a.40.2"></Representation>   </AdaptationSet>   <AdaptationSet mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">     <SegmentTemplate presentationTimeOffset="0" timescale="10000000" initialization="seg_$RepresentationID$_init.mp4" media="seg_$RepresentationID$_t$Time$.mp4">       <SegmentTimeline>         <S d="20000000" t="14976960060009000"/>         <S d="20000000"/>         <S d="20000000"/>         <S d="20000000"/>         <S d="20000000"/>         <S d="20000000"/>         <S d="20000000"/>         <S d="20366222" t="14976960200009000"/>         <S d="20000000" t="14976960220375222"/>       </SegmentTimeline>     </SegmentTemplate>     <Representation id="video_0" bandwidth="1760000" width="720" height="400" codecs="avc1.4D401F" scanType="progressive"></Representation>   </AdaptationSet> </Period> </MPD>
our server supports only one period. It cannot maintain context of the period delivered to various clients, meaning it cannot remember the presentation time offset for that period particularly to each client.
So we have tried to support multi periods. The idea is to have 5 periods in the manifest each for 12secs,
MPD refresh time is 12s, so when the MPD refresh happens we expect the first period to disappear and a new period to be appended in the end. MPD with multi period support is mentioned below. But even with this update we see that the shaka player is complaining in this error.
if ((currentPeriod.startTime + reference.endTime < availabilityStart) ||       (currentPeriod.startTime + reference.startTime > availabilityEnd)) {     shaka.log.v1(logPrefix,                  'segment is not available:',                  'currentPeriod.startTime=' + currentPeriod.startTime,                  'reference.startTime=' + reference.startTime,                  'reference.endTime=' + reference.endTime,                  'availabilityStart=' + availabilityStart,                  'availabilityEnd=' + availabilityEnd);     return null;   }
Can you kindly help us here. Mainly let us know if there is any other way around without multi period support or is this approach to multi period correct ? what should we correct to make shaka player understand our MPDs.
  Your first Period starts at PT1497696260S, this means that it should appear that far from the start of the presentation.  For live streams, the presentation starts at the availabilityStartTime, so that means that your first Period starts 47 years in the future.  Your handling of presentationTimeOffset and segment times look correct, but you need to adjust the Period start times so they are in the presentation correctly.  (or you could adjust the availabilityStartTime to be that far in the past)

Hi
Thanks for your detailed analysis, now we have modified the availabilityStartTime as relevant to content presentation time and now content playing well

We are glad we were able to help.  Thanks for letting us know that the problem is now resolved.


Are adaptation layers SIL-4 precertified?

Sorry if this is noted in the documents, but I can't seem to find it anywhere. Are the adaptation layers pre-certified? Specifically the POSIX layer on ThreadX, and the BSD layer on NetXDuo.

Hi @sdelcore , adaptation layers are not part of certification.

Closing


Can Plugin specify a different language for TranslateR?

English is not my first language, but I want to only use English in files.
sometimes comments need to be translated in English, but Plugin default language not.
so I tried nmap <silent> <Leader>r <Plug>TranslateR -l en, but it didn't work.
What should I do?

Use  nmap <silent> <Leader>r :TranslateR -l en<CR>

Besides, the visual mode keymap is
vmap <silent> <Leader>r :<C-u>TranslateR -l en<CR>

Thank you for your quick reply.
but the problem remains unresolved.
No different from the default mapping.

What's the text you want to translate?

" Leader>r 替换光标下的文本为翻译内容
:TranslateR -l en works not shortcut keys.

It's wired. nmap <silent> <Leader>r :TranslateR -l en<CR>works normally on my laptop.

<Leader>r

visual mode <Leader>r

command line

I check :map, mapping has no change. so nmap doesn't work.
nmap , :echo "hello"<CR> works well.

What's your vim/nvim version?

I check :map, mapping has no change. so nmap doesn't work.

What does that mean?

right. nmap doesn't work.

VIM - Vi IMproved 8.1 (2018 May 18, compiled May 18 2018 18:36:07)
MS-Windows 32-bit GUI version with OLE support
Included patches: 1

an another plugin warns me about key conflicts, even if I use nmap.

an another plugin warns me about key conflicts, even if I use nmap.

So you mapped <Leader>r to two different commands?

It also works on nvim-qt on Windows. But not sure about vim8. I will also test on vim8 on Windows when I have free time

no, if I nmap <silent> <Leader>tr :TranslateR -l en<CR> , mapping \tr exists, default mappings also exists.
if I nmap <silent> <Leader>r :TranslateR -l en<CR>, nothing happend.
but now, I find nmap <silent> <Leader>tr :TranslateR -l en<CR> works.
so nmap only can't change default mappings

if I nmap  r :TranslateR -l en, nothing happends.

Type :nmap <Leader>r and see which command it was mapped to.

Hmmm, so it works with other mappings except <Leader>r? If yes, don't use <Leader>r, use another mapping instead.

yeah, for now, thank you whatever

不客气的


Service not being run on successful config check.

When the config check is successful it isn't running the service call I've told it to do.
If I understand the readme correctly, I should be able to do this, and it should turn my sofa lamp off if the config check goes through successfully.

{
  "service": "light.turn_off",
  "service_data": {
    "entity_id": "light.livingroom_sofalamp"
  }
}

When I run this, it puts the successful check in my persistent notifications but doesn't ever turn off the sofa lamp.

Hello,
I have the same issue.
Kind regards,
Bart

Fixed in latest commit https://github.com/custom-components/config_check/commit/bcaeacc0542502b4ed3c37579d4d3c342b563cf0#diff-bf55903d57be6c1cafb921d77e588138L44


Setup testing with pytest

The problem the component solves
Once mailbag is minimally functional, it will need automated tests to help us maintain it over time. We want both tests for the program as a whole, as well as test for individual components. You should add a tests directory and start creating some unit tests.
Relevant part of mailbag spec?
N/A
Type of component

[x] Core
[ ] Input
[ ] Attachments
[ ] Derivatives conversion
[ ] Reporting/Exporting
[ ] GUI
[ ] Distribution

Expected contribution

[x] Pull Request
[ ] Comment with proposed solution

Major challenges or things to keep in mind

addressed with #59


Check ASN1_OBJECT_new result

Found by Linux Verification Center (linuxtesting.org) with SVACE.
CLA: trivial

This issue exists since branch-3.2

This pull request is ready to merge

Merged to the master and 3.2 branches. Thank you for your contribution.


Generic git env var validations and repository

Issue #, if available:
Description of changes:
This PR makes a few changes:

Renames git variables to use Passphrase instead of Password to avoid ambiguity & maintain consistency with git terminolgy
Adds repository URL for the generic git repo to the e2e test environment variables
Adds validations to ensure that the known hosts and private key file environment variables are set

Testing (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


Suggest using the forge approved module for gpg

I propose we swap the exec being used for gpg key management with a module.
This module would probably do the trick.  It can handle the key import as well as installing gpg, if needed.
https://forge.puppetlabs.com/golja/gnupg

We may need to get a fact added to that module that indicates if gpg is installed.
Other than that, It looks like it can provide the same functionality.

It's a bit tricky because I don't think gpg should be installed in this module.
So maybe it is just a matter of documentation to add to the readme "install gpg and this key before rvm" or conditionals to check if the gpg module is present

I agree about installing gpg.  It should not be installed by this module, if not present already.
I suggest removing the gpg.pp class and adding to the readme to use the above mentioned module, if you want to install gpg.
However, I do think it is appropriate to add the key, if gpg is detected, to prevent rvm from failing.
I suggest depending on the above mentioned module to manage this as opposed to the current exec...
If you agree, I can submit a patch to https://forge.puppetlabs.com/golja/gnupg that includes a fact for detecting if gpg is installed.

I also think it might be nice if managing the key was optional, and had a param to turn it off...

I have added facts for gnupg detection.
https://github.com/n1tr0g/golja-gnupg/pull/8/files

Hey guys I am joining the party :+1:
So yeah if you want to make your module dependent on mine and you think it will make it work better,  I am happy to add the new facters.

GPG Should, in fact, be installed by the "gnupg" module, and the keys should also be managed by the "gnupg" module. A module should do one thing and do it well. "This" module should not be trying to determine if gpg is installed and if so, managing the key. I would recommend just requiring the "gnupg" module and installing gpg on any platform that is supported by it. It is a GOOD THING :)

I don't think this module should install gpg nor call the gnupg module to install it. It is not required by RVM and it should be defined at a host level, not here.
Now about adding the gpg key, I'm not sure whether this module should install it, or just document how to do it with the gnupg module.

On second thought, I agree with @carlossg. This module should document the use of the "gnupg" module to install the necessary keys. It should not be doing any GPG management itself.

I agree that the RVM module should not install gpg and that the README should document the use of the gnupg module.  I am torn on the key management, however.  I could be OK with the RVM module managing it or not.
I could see a separate class that manages the key optionally and the default is to not include the class or wrap it in a param.  A good example of this is the elasticsearch module which offers to install java for you with the puppet labs module.  It is off by default and you must install the java module yourself as it is not a dependency in the metadata.json.
elasticsearch example:
https://github.com/elastic/puppet-elasticsearch/blob/master/README.md#java-installation
https://github.com/elastic/puppet-elasticsearch/blob/master/manifests/init.pp#L326

I have added an initial implementation in the gnupg branch

merged


crash db pull sqlserver

Hi Prisma Team! The following command just crashed.
Command
db pull
Versions

Name
Version

Platform
windows

Node
v18.12.1

Prisma CLI
4.9.0

Engine
ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5

Error
Error: Error in migration engine.
Reason: [libs\sql-schema-describer\src\mssql.rs:341:30] called `Result::unwrap()` on an `Err` value: "Couldn't parse default value: `create default [ZERO] as 0\r\n\r\n`"

Please create an issue with your `schema.prisma` at
https://github.com/prisma/prisma/issues/new

@yakanet Could you please send us a schema dump of the database, and the MsSQLVersion?

Hey @yakanet, could you please help us with the missing information? Without your help, we will not be able to fix this issue. Looking forward to your reply.

Hey @yakanet, I am closing this issue as we did not hear back from you. Just ping us and we can re-open it when we have the missing information. Thanks!


More jemalloc changes

Modified build.sh and Makefile to support building on the Ubuntu 12.04 docker image [still WIP to clean these up]
The native bindings now support [with tests] the case where a native pointer from malloc/realloc is larger than signed long max value in java

LGTM


Deployment

Deployment
User Story
As a boot camp teacher,
I want to see the week 5 challenge in a public URL,
so I can score the work done.
Acceptance Criteria

It's done when the final code is deployed to a public URL in GitHub Pages.
It's done when the repo and live site URLs are submitted to the teacher.

Live Site URL: https://technoveltyco.github.io/bootcamp-week5-challenge/


Invisible call to dvipng?

Thanks for building this add-on. I'm trying to run this with xelatex, since I need to use the fontspec package and pdflatex won't support that.
Here's my custom toolchain:
latex.pngCommands = [
    ["xelatex", "-interaction=nonstopmode", "tmp.tex"],
    ["pdfcrop", "--margins", ".5 .5 .5 .5", "tmp.pdf", "tmp.pdf"],
    ["convert", "-trim", "-density", "600", "-resize", "50%", "tmp.pdf", "tmp.png"]
]
latex.svgCommands = [
    ["xelatex", "-interaction=nonstopmode", "-no-pdf", "tmp.tex"],
    ["dvisvgm", "--no-fonts", "-Z", "2", "tmp.xdv", "-o", "tmp.svg"]
]

When I attempt to Preview the card, it fails, giving this output:
Error executing dvipng.
Generated file: C:\Dropbox\BERKEL~1\AppData\Local\Temp\anki_temp\tmp.tex
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018/W32TeX) (preloaded format=xelatex)
 restricted \write18 enabled.
entering extended mode
(./tmp.tex
LaTeX2e <2018-04-01> patch level 4
(c:/texlive/2018/texmf-dist/tex/latex/standalone/standalone.cls
Document Class: standalone 2018/03/26 v1.3a Class to compile TeX sub-files stan
dalone
(c:/texlive/2018/texmf-dist/tex/latex/tools/shellesc.sty)
(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/ifluatex.sty)
(c:/texlive/2018/texmf-dist/tex/generic/oberdiek/ifpdf.sty)
(c:/texlive/2018/texmf-dist/tex/generic/ifxetex/ifxetex.sty)
(c:/texlive/2018/texmf-dist/tex/latex/xkeyval/xkeyval.sty
(c:/texlive/2018/texmf-dist/tex/generic/xkeyval/xkeyval.tex
(c:/texlive/2018/texmf-dist/tex/generic/xkeyval/xkvutils.tex
(c:/texlive/2018/texmf-dist/tex/generic/xkeyval/keyval.tex))))
(c:/texlive/2018/texmf-dist/tex/latex/standalone/standalone.cfg)
(c:/texlive/2018/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(c:/texlive/2018/texmf-dist/tex/latex/base/size12.clo))
(c:/texlive/2018/texmf-dist/tex/latex/varwidth/varwidth.sty))
(c:/texlive/2018/texmf-dist/tex/latex/base/inputenc.sty

Package inputenc Warning: inputenc package ignored with utf8 based engines.

) (c:/texlive/2018/texmf-dist/tex/latex/amsfonts/amssymb.sty
(c:/texlive/2018/texmf-dist/tex/latex/amsfonts/amsfonts.sty))
(c:/texlive/2018/texmf-dist/tex/latex/amsmath/amsmath.sty
For additional information on amsmath, use the `?' option.
(c:/texlive/2018/texmf-dist/tex/latex/amsmath/amstext.sty
(c:/texlive/2018/texmf-dist/tex/latex/amsmath/amsgen.sty))
(c:/texlive/2018/texmf-dist/tex/latex/amsmath/amsbsy.sty)
(c:/texlive/2018/texmf-dist/tex/latex/amsmath/amsopn.sty))
(c:/texlive/2018/texmf-dist/tex/latex/fontspec/fontspec.sty
(c:/texlive/2018/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
(c:/texlive/2018/texmf-dist/tex/latex/l3kernel/expl3.sty
(c:/texlive/2018/texmf-dist/tex/latex/l3kernel/expl3-code.tex)
(c:/texlive/2018/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def)))
(c:/texlive/2018/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
(c:/texlive/2018/texmf-dist/tex/latex/base/fontenc.sty
(c:/texlive/2018/texmf-dist/tex/latex/base/tuenc.def))
(c:/texlive/2018/texmf-dist/tex/latex/fontspec/fontspec.cfg)))
(c:/texlive/texmf-local/tex/latex/local/allowligatures/allowligatures.sty)
(c:/texlive/2018/texmf-dist/tex/latex/xcolor/xcolor.sty
(c:/texlive/2018/texmf-dist/tex/latex/graphics-cfg/color.cfg)
(c:/texlive/2018/texmf-dist/tex/latex/graphics-def/xetex.def))
No file tmp.aux.
(c:/texlive/2018/texmf-dist/tex/latex/amsfonts/umsa.fd)
(c:/texlive/2018/texmf-dist/tex/latex/amsfonts/umsb.fd) [1] (./tmp.aux) )
Output written on tmp.pdf (1 page).
Transcript written on tmp.log.
tmp.dvi: No such file or directory
This is dvipng 1.15 Copyright 2002-2015 Jan-Ake Larsson

I can't figure out where the call to dvipng is coming from, since I've not included such a command in the toolchain I've set up at the top.
I've tried this with the convert command, both as standalone command and with a fully-characterized address. Neither works, and the error is the same.
$ where convert
C:\Program Files\ImageMagick\ImageMagick-7.0.7-Q16-HDRI\convert.exe
C:\Windows\System32\convert.exe

I've tried this with the ImageMagick magick command as well, both as standalone command and with a fully-characterized address. Neither works, and the error is the same.
$ where magick
C:\Program Files\ImageMagick\ImageMagick-7.0.7-Q16-HDRI\magick.exe

When I select the Create scalable images with dvisvgm option on the cards, everything previews just fine...but then the .svg files don't render on my Android (running Android 5.0.2). So then I'm back to trying to make .PNGs

Dear T.Slade,
thanks for reporting. I can only recommend ways to track down the problem, as I'm not firm with how Anki works on Windows. I recommend:

Find out, where Anki stores the temporary files it generates while processing Latex (in Linux, they are stored at /tmp/anki/
Use these files to manually run the toolchain you set up; step by step
If the problem still occurs here, this is most definitely neither a problem in Anki nor in this plugin.

I'd be happy to learn how this works out for you.
On a Side Note
Consider having a look at MathJax. I ended up using it on Anki Desktop and Mobile alike and am not using neither PNG nor SVG latex any more.
Franz

Franz - thank you for the quick response, and the troubleshooting recommendations. Indeed, I have always been able to execute the LaTeX compilation from the command line within Anki's tmp folder. That's actually been part of my confusion, because regardless of whether I run convert or magick + various parameters, it always compiles perfectly.
However, when I attempt to compile via Anki, dvipng gets called, despite the configurations listed above. Also, when running "convert", "-trim", "-density", "600", "-resize", "50%", "tmp.pdf", "tmp.png" from within Anki, I routinely get errors that -density is not a recognized option or flag. Since I don't get those errors when running from the CLI, I've assumed that it's something Anki is introducing...that maybe it's intercepting my commands / altering my configurations somehow.
Thank you for the MathJax suggestion. I've started playing with it a bit, and really like it. Certainly it seems to work more quickly out of the box (using these instructions) than a whole LaTeX toolchain. One quick question for you: when I use MathJax, entering the entire expression to be rendered on a single line works great. e.g.,:
\[F(x) = \begin{cases} x^2 ~,~~ 0 \leq x \leq 2 \\ 0 ~, ~~ otherwise \end{cases}\]

renders as expected.
However, entering the expression as a multi-line composition - as I would using LaTeX, so the code structure aligns somewhat with the semantics of the expression - causes the rendering to fail. The following snippet does not compile:
\[
F(x) =
\begin{cases}
x^2 ~,~~ 0 \leq x \leq 2 \\
0 ~, ~~ otherwise
\end{cases}
\]

Is that just a permanent limitation of MathJax? Googling around, I can't seem to tell. But if you could recommend a workaround, I'd be most appreciative.
Also, I noticed when reviewing the card type that the scripts I entered to load MathJax (per that link above) seemed to have disappeared from the template...but the card still rendered properly. Is the disappearance of that code expected?

Dear TSSlade,
unfortunately, right now I have no time to dig deeper into this.
That dvipng gets called although not being listed in the toolchain is indeed weird. Are you positive, that the specified toolchain is actually used at all? If you put some static / dummy output commands there, such as
latex.pngCommands = [
    ["cp", "/some/dummy/image.png", "tmp.png"]
]

Will the dummy pics appear or will Latex or something latex-related still be called?
With regards to MathJax: It's good to hear that you're getting to grips with it, but I won't provide any further support to that end.

Closing due to inactivity.


Vanilla javascript example

Hello, I'm trying to use this package to have my website communicate with my arduino sketch. On desktop chrome I have it working with USB Web Serial from 'navigator'. However in Android this is not made available.
This is where this lib comes useful.
I have found the old demo.html file and the dist/serial.js. However it shows me only the USB_VID/PID I can't get the send/receive function to work.
Would it be possible to share an example on how to use this library?
I like jquery, but plain vanilla javascript would be very helpful.
I have never used .ts files, but if know this is the way to use this lib, I'm open to learn that file format as well. (or at least how this concept is working).
Thanks in advance.

If you're using vanilla JavaScript (rather than building your app with a bundler that can import the NPM module, do this:

Awesome, that works!
At least for 99.9% of the cases.
After a while(some seconds) I got an error:
NetworkError: Failed to execute 'transferIn' on 'USBDevice': A transfer error has occurred.
I have quite some data coming in over the CDC UART, but I have not seen this on a desktop with navigator.serial.
Any hints?

Open chrome://device-log on the device to see the low-level USB error message. It may also be helpful to collect a bug report from the device in order to look at the kernel log. when running on a phone it's possible there are novel issues like insufficient power to reliably run the device.

Thanks for your prompt answer!
Yeah, I understand it is a different beast...
See here the device-log:

Sorry, the screenshot shows a little big... also note that I got the 'transferIn' error only once on my webpage. It disconnects.
When the error arrives on my web-page, it is displayed in textarea, the datetime was "2023/11/21 11:17:06.862"

This made me realize I need to supply the bottom of that page....

Some other datapoints:
1] I'm trying to discern what happens on the MCU-side. After the error message appears, I clear the device-log, then I reload the page(app), and re-connect to the serial port, while keeping the MCU in the USB port of the phone. This works correctly, until that error appears again. Therefore I believe the MCU keeps running in case of that event. (Also I need to sent something to the MCU before it sends on a regular basis something back).
2] I have tried to send less often (every 2 seconds), but that does not help either.
3] I don't know how big the data-chunks are that the MCU is sending over, is there a limit?

I think the issue is that the Linux kernel imposes a limit on the total size of outstanding USB transfers in order to limit the amount of kernel memory that is consumed. It's not about how much data the device is sending but how much the page is asking for at once. If it ends up creating too many transferIn() calls or specifies too large a transfer size then you'll get this error. As written the polyfill should only be issuing one transferIn() call at once (having multiple would be a nice performance optimization) and the transfer size is based on the desiredSize reported by the ReadableStream, which comes from the bufferSize parameter passed in when opening the port. What do you have this set to?

I guess you mean this parameter:
https://developer.mozilla.org/en-US/docs/Web/API/SerialPort/open#buffersize
I'm trying to increase it, I was using the default, which is 255 bytes, but I can confirm my chunks are larger!
I keep you posted.

Okay here it is:
I have increased the bufferSize to 10000 ==> after first datachunk received, it failed
Then I changed it to 32 ==> similar results as before
Then I changed it to 5000 ==> it failed after the 2nd datachunk.
Note: A datachuck is 4635 bytes long.
Is there something I can do in the webpage, to always empty the buffer; and thus buffer it inside the browser in stead of inside the kernel?

Is there something I can do in the webpage, to always empty the buffer; and thus buffer it inside the browser in stead of inside the kernel?

USB is a pull-based transport rather than a push-based transport. This means that the device never sends data unless asked. So data can't get buffered in the kernel. The site asks for N bytes of data, the kernel sets aside N bytes of memory and starts asking the device for data. When it gets some that completes the transaction and the data is sent to the site. If the device sent more than N bytes that's called a "babble" error and doesn't seem to be the problem you're seeing here.
The "out of memory" error is the kernel complaining that the sum of all the transfers Chrome has requested is greater than an internal limit it has set. Given how the polyfill is implemented this should't happen because there's only ever one IN transfer requested at a time and the size is based on the requested buffer size, which you've said is very small.
My best guess of what's going on here is that there is a bug in the polyfill causing it to not wait for each transfer to complete and is instead submitting lots of transfers at once. The larger the buffer size the more quickly that will cause problems. Either that or you are also trying to send a very large chunk of data to the device.
To debug further you'll need to put some debug logging into the polyfill itself to understand when and how often it is calling transferIn(). You can rebuild the library by checking out this repository and running,
npm install   # One-time setup
npm run build # Generates dist/serial.js

This is again very helpful!
I have build the dist/serial.js
And have since I have no console.log, I added a div on the page and updated the serial.js file as follows:
            try {
                let elem = document.querySelector('#console');
                my_counter = my_counter + 1;
                let local_counter = my_counter;
                elem.innerHTML = elem.innerHTML + "
START["+local_counter.toString()+"]: chunkSize: "+chunkSize.toString()+" -- this.endpoint_.endpointNumber: "+this.endpoint_.endpointNumber.toString()+"
";
                const result = await this.device_.transferIn(this.endpoint_.endpointNumber, chunkSize);
                elem.innerHTML = elem.innerHTML + "RESULT["+local_counter.toString()+"]: "+result.status+"
";
                if (result.status != 'ok') {
                    controller.error(`USB error: ${result.status}`);
                    this.onError_();
                }
                if ((_a = result.data) === null || _a === void 0 ? void 0 : _a.buffer) {
                    elem.innerHTML = elem.innerHTML + "DATA["+local_counter.toString()+"]: byteOffset: "+result.data.byteOffset.toString()+" | byteLength: "+result.data.byteLength.toString()+"
";
                    const chunk = new Uint8Array(result.data.buffer, result.data.byteOffset, result.data.byteLength);
                    controller.enqueue(chunk);
                }

Note that my_counter is a global variable, while local_counter has a scope only for within the function.
Now, I must say that my knowledge about await and asynch programming is limited. So I hope you can make sense of the log it has generated. (see below)

console:
START[1]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[1]: ok
DATA[1]: byteOffset: 0 | byteLength: 38
START[2]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[3]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[2]: ok
DATA[2]: byteOffset: 0 | byteLength: 2
START[4]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[5]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[3]: ok
DATA[3]: byteOffset: 0 | byteLength: 109
START[6]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[7]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[4]: ok
DATA[4]: byteOffset: 0 | byteLength: 1
START[8]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[9]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[5]: ok
DATA[5]: byteOffset: 0 | byteLength: 2
START[10]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[11]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[6]: ok
DATA[6]: byteOffset: 0 | byteLength: 1
START[12]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[13]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[7]: ok
DATA[7]: byteOffset: 0 | byteLength: 1
START[14]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[15]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[8]: ok
DATA[8]: byteOffset: 0 | byteLength: 1
START[16]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[17]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[9]: ok
DATA[9]: byteOffset: 0 | byteLength: 24
START[18]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[19]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[10]: ok
DATA[10]: byteOffset: 0 | byteLength: 1
START[20]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[21]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[11]: ok
DATA[11]: byteOffset: 0 | byteLength: 1
START[22]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[23]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[12]: ok
DATA[12]: byteOffset: 0 | byteLength: 2
START[24]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[25]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[13]: ok
DATA[13]: byteOffset: 0 | byteLength: 2
START[26]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[27]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[14]: ok
DATA[14]: byteOffset: 0 | byteLength: 1
START[28]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[29]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[15]: ok
DATA[15]: byteOffset: 0 | byteLength: 1
START[30]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[31]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[16]: ok
DATA[16]: byteOffset: 0 | byteLength: 1
START[32]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[33]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[17]: ok
DATA[17]: byteOffset: 0 | byteLength: 1
START[34]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[35]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[18]: ok
DATA[18]: byteOffset: 0 | byteLength: 1
START[36]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[37]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[19]: ok
DATA[19]: byteOffset: 0 | byteLength: 1
START[38]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[39]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[20]: ok
DATA[20]: byteOffset: 0 | byteLength: 2
START[40]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[41]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[21]: ok
DATA[21]: byteOffset: 0 | byteLength: 1
START[42]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[43]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[22]: ok
DATA[22]: byteOffset: 0 | byteLength: 2
START[44]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[45]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[23]: ok
DATA[23]: byteOffset: 0 | byteLength: 1
START[46]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[47]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[24]: ok
DATA[24]: byteOffset: 0 | byteLength: 1
START[48]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[49]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[25]: ok
DATA[25]: byteOffset: 0 | byteLength: 1
START[50]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[51]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[26]: ok
DATA[26]: byteOffset: 0 | byteLength: 1
START[52]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[53]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[27]: ok
DATA[27]: byteOffset: 0 | byteLength: 1
START[54]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[55]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[28]: ok
DATA[28]: byteOffset: 0 | byteLength: 1
START[56]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[57]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[29]: ok
DATA[29]: byteOffset: 0 | byteLength: 2
START[58]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[59]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[30]: ok
DATA[30]: byteOffset: 0 | byteLength: 1
START[60]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[61]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[31]: ok
DATA[31]: byteOffset: 0 | byteLength: 1
START[62]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[63]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[32]: ok
DATA[32]: byteOffset: 0 | byteLength: 1
START[64]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[65]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[33]: ok
DATA[33]: byteOffset: 0 | byteLength: 1
START[66]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[67]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[34]: ok
DATA[34]: byteOffset: 0 | byteLength: 1
START[68]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[69]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[35]: ok
DATA[35]: byteOffset: 0 | byteLength: 2
START[70]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[71]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[36]: ok
DATA[36]: byteOffset: 0 | byteLength: 1
START[72]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[73]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[37]: ok
DATA[37]: byteOffset: 0 | byteLength: 1
START[74]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[75]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[38]: ok
DATA[38]: byteOffset: 0 | byteLength: 1
START[76]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[77]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[39]: ok
DATA[39]: byteOffset: 0 | byteLength: 55
START[78]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[79]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[40]: ok
DATA[40]: byteOffset: 0 | byteLength: 161
START[80]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[81]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[41]: ok
DATA[41]: byteOffset: 0 | byteLength: 1
START[82]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[83]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[42]: ok
DATA[42]: byteOffset: 0 | byteLength: 1
START[84]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[85]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[43]: ok
DATA[43]: byteOffset: 0 | byteLength: 1
START[86]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[87]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[44]: ok
DATA[44]: byteOffset: 0 | byteLength: 2
START[88]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[89]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[45]: ok
DATA[45]: byteOffset: 0 | byteLength: 1
START[90]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[91]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[46]: ok
DATA[46]: byteOffset: 0 | byteLength: 1
START[92]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[93]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[47]: ok
DATA[47]: byteOffset: 0 | byteLength: 1
START[94]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[95]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[48]: ok
DATA[48]: byteOffset: 0 | byteLength: 1
START[96]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[97]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[49]: ok
DATA[49]: byteOffset: 0 | byteLength: 1
START[98]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[99]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[50]: ok
DATA[50]: byteOffset: 0 | byteLength: 1
START[100]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[101]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[51]: ok
DATA[51]: byteOffset: 0 | byteLength: 2
START[102]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[103]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[52]: ok
DATA[52]: byteOffset: 0 | byteLength: 1
START[104]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[105]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[53]: ok
DATA[53]: byteOffset: 0 | byteLength: 1
START[106]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[107]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[54]: ok
DATA[54]: byteOffset: 0 | byteLength: 3
START[108]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[109]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[55]: ok
DATA[55]: byteOffset: 0 | byteLength: 2
START[110]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[111]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[56]: ok
DATA[56]: byteOffset: 0 | byteLength: 2
START[112]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[113]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
RESULT[57]: ok
DATA[57]: byteOffset: 0 | byteLength: 2
START[114]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2
START[115]: chunkSize: 5056 -- this.endpoint_.endpointNumber: 2

As you can see it looks like there are more than one entry into the transferIn function...
Not sure what the next steps should be...

Hey reillyeon, Many thanks for your help!
I have tried to isolate the issue by making a small web-page demonstrator for web-serial (both -api and -polyfill).
Have a look here: https://github.com/karelv/web-serial-example and here https://karelv.github.io/web-serial-example/
It seems to keep working, meaning I need to review my more complex project, I guess.
Note: when use the serial.js with my_counter & local_counter, it still indicates there are several transferIn called at the same time.

Actually it still happens... (it takes just whole lot longer!)

Let's close this one, I will make another ticket, as the example script is clear:
https://github.com/karelv/web-serial-example


Slider default value

https://jsfiddle.net/c8x5xh4c/
When the $scope.refreshSlider(); is commented out I cant set the default value for slider with ng-init.
Any ideas why this is happening?

Try to put the condition into the model:
rz-slider-model="hesevalue == undefined ? hesevalue = 1 : hesevalue = hesevalue"

Seems to work (default value has been set) but when using the slider it gives an error

Why don't you set the model value in the JS file?

@ValentinH I have many dynamic templates / form controls, so having the logic inside the template would be easier for me.

Ok here is a quite dirty workaround:wrap the slider inside a div and do the ng-init on the div: https://jsfiddle.net/koof9g6q/

:+1: :+1:


Deploy updated npm version?

Hi all!
Thanks for building this awesome tool. I was wondering if it would be possible to do a deploy to npm to get the fix merged here: https://github.com/Nordstrom/serverless-artillery/issues/100
Thanks!

Hey @bsouthga!
Thanks for your interest!
We're working diligently to validate the work we've done to add monitoring mode as well as the JSON only output features. Hoping to deliver soon.
Stay tuned! 😄

Finally published in 0.4.0. Closing.