Provide own URL parser

It should allow returning full URL as string

There's no more need as current parsers was extended in https://github.com/awegrzyn/influxdb-cxx/pull/12


rake not found on use case with Bundler

I expected this project worked on Bundler, as I saw Gemfile on the project.
$ ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]

$ bundle install --path vendor/bundle

$ bundle exec rake -T
bundler: failed to load command: rake (/usr/local/ruby-2.7.1/bin/rake)
Gem::Exception: can't find executable rake for gem rake. rake is not currently included in the bundle, perhaps you meant to add it to your Gemfile?
  /usr/local/ruby-2.7.1/lib/ruby/2.7.0/bundler/rubygems_integration.rb:374:in `block in replace_bin_path'
  /usr/local/ruby-2.7.1/lib/ruby/2.7.0/bundler/rubygems_integration.rb:402:in `block in replace_bin_path'
  /usr/local/ruby-2.7.1/bin/rake:23:in `<top (required)>'

Do you have a reason not to do like this?
$ git diff
diff --git a/.travis.yml b/.travis.yml
index 0d92a15..9d2c642 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,4 +9,4 @@ rvm:
   - "2.6"
   - "2.7"
   - "ruby-head"
-script: rake
+script: bundle exec rake
diff --git a/abrt.gemspec b/abrt.gemspec
index 7b40c32..f3d33fa 100644
--- a/abrt.gemspec
+++ b/abrt.gemspec
@@ -28,6 +28,7 @@ Gem::Specification.new do |s|
     s.cert_chain = ["voxik-public_cert.pem"]
   end

+  s.add_development_dependency(%q<rake>)
   s.add_development_dependency(%q<rspec>, ["~> 3.5"])
 end

I already don't remember precisely, but I think that Travis is using Bundler to install dependencies. That is the only use case I have for Bundler. I don't see any other reason why it should be used to execute the test suite. If there is other way to install dependencies on Travis, I might consider removing Gemfile.

I don't see any other reason why it should be used to execute the test suite. If there is other way to install dependencies on Travis, I might consider removing Gemfile.

It's okay not to do it. The merit to use bundler is you can test abrt-ruby with the specific version or the latest version's rspec and rake, sharing developers the reproducing way through Gemfile relatively easiler. But the demerit for using Bundler might make the more complexity for this project.
I would close the ticket.


Is it possible to load and save weights?

Is it possible to load and save weights in addition to table data?

You can save and load the weights by putting them in a JSON file (see https://github.com/Caleydo/lineup.js/blob/master/demo/data/data_small.json). However, this is not yet integrated in the demo.

Marc, thanks for your reply. What is the best forum for discussion and general questions regarding Caleydo? Should I post to github, email..what is your preference?

Github is fine. We collect all framework related question about Caleydo web in the caleydo_web_container repo (https://github.com/Caleydo/caleydo_web_container/issues).


Add meta tags in scrolled

REDMINE-17778
Social sharing meta tags and meta tags
are rendered by paged in entry head. Same
can be used for scrolled
It adds the same helpers used for paged in scrolled
entry head
It also changes the lang attribute and reflect the entry
locale as in paged

Coverage remained the same at 99.193% when pulling d3f115897d0566b82844f2d59caf8b891935b039 on UsmanMuhammad:meta-tags into f51a288a5abe2df495ee644e80a64ff8b345a0b6 on codevise:master.


[1.11.x] Fixed #29182 -- Fixed schema table alteration on SQLite 3.26+.

Backport of c8ffdbe514b55ff5c9a2b8cb8bbdf2d3978c188f from master.
This is my take at backporting code from #10733 to the Django 1.11.x LTS series. I am aware of the security fixes only policy, but would highly appreciate if it will still make it in the next release.
The current situation is that once e.g. Heroku updates SQLite, all 1.11.x installations will break, making it effectively impossible to continue using it until the planned decommissioning date. Therefore, I think that this trivial fix warrants an exception to keep it working for everybody, who are in still the process of upgrading to the next LTS, but aren't done with it yet.

@timgraham @carltongibson any chance you would consider this for the next LTS release? Many thanks!

I'm not sure if your analysis is correct. Please check the discussion starting at https://github.com/django/django/pull/10733#issuecomment-456731434.

Thank you for the pointer @timgraham!
I've checked the discussion, and my understanding is that @charettes answer implies, that even if the code were to be backported, it wouldn't solve the issue, because the root cause of the problem is a different one.
However, applying the backport has taken care of the issue for me. My situations is as follows:

After SQLite upgrade, I was unable to load fixtures anymore. The stack trace is attached below.
I have re-created the DB completely, by removing the DB file and running migrate.
Thereafter I was still unable to load fixtures.

After applying the backport I was able to load fixtures again.
$ ./manage.py loaddata */fixtures/*.json
Traceback (most recent call last):
  File "/home/zaytsev/.cache/pypoetry/virtualenvs/django-insurance-api-py3.7/lib/python3.7/site-packages/django/db/backends/utils.py", line 62, in execute
    return self.cursor.execute(sql)
  File "/home/zaytsev/.cache/pypoetry/virtualenvs/django-insurance-api-py3.7/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py", line 326, in execute
    return Database.Cursor.execute(self, query)
sqlite3.OperationalError: no such table: insurance_definitions_producttype__old

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "./manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/home/zaytsev/.cache/pypoetry/virtualenvs/django-insurance-api-py3.7/lib/python3.7/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/home/zaytsev/.cache/pypoetry/virtualenvs/django-insurance-api-py3.7/lib/python3.7/site-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/zaytsev/.cache/pypoetry/virtualenvs/django-insurance-api-py3.7/lib/python3.7/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/zaytsev/.cache/pypoetry/virtualenvs/django-insurance-api-py3.7/lib/python3.7/site-packages/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/home/zaytsev/.cache/pypoetry/virtualenvs/django-insurance-api-py3.7/lib/python3.7/site-packages/django/core/management/commands/loaddata.py", line 69, in handle
    self.loaddata(fixture_labels)
  File "/home/zaytsev/.cache/pypoetry/virtualenvs/django-insurance-api-py3.7/lib/python3.7/site-packages/django/core/management/commands/loaddata.py", line 115, in loaddata
    connection.check_constraints(table_names=table_names)
  File "/home/zaytsev/.cache/pypoetry/virtualenvs/django-insurance-api-py3.7/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py", line 286, in check_constraints
    column_name, referenced_column_name,
  File "/home/zaytsev/.cache/pypoetry/virtualenvs/django-insurance-api-py3.7/lib/python3.7/site-packages/django/db/backends/utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/home/zaytsev/.cache/pypoetry/virtualenvs/django-insurance-api-py3.7/lib/python3.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/home/zaytsev/.cache/pypoetry/virtualenvs/django-insurance-api-py3.7/lib/python3.7/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/home/zaytsev/.cache/pypoetry/virtualenvs/django-insurance-api-py3.7/lib/python3.7/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/home/zaytsev/.cache/pypoetry/virtualenvs/django-insurance-api-py3.7/lib/python3.7/site-packages/django/db/backends/utils.py", line 62, in execute
    return self.cursor.execute(sql)
  File "/home/zaytsev/.cache/pypoetry/virtualenvs/django-insurance-api-py3.7/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py", line 326, in execute
    return Database.Cursor.execute(self, query)
django.db.utils.OperationalError: Problem installing fixtures: no such table: insurance_definitions_producttype__old

This patch doesn't qualify for a backport. You can continue discussion in one of support channels.


Activetly timeline and readme updates

Description
Improve the readme for the front end deployment

ur right it was 80 hours. bondor confirmed it.


Setting EthAccount's max_fee returns invalid signature

Initially brought up here by @EvolveArt.

Fixed in #381.


Fix the ui issue caused by horizontal scrolling in editor. (#108)

Now the code doesn't overlap with line number. However, the line number will be hidden if the line is too long. I'm not sure if this introduces a new issue.

I think @abinash-behera might have a better solution to this; /cc-ing him here.


[23] Add API Endpoint Documentation

Added swagger.

@maunga-et  Thanks for making the updates. The flake8 linter checks were not successful, so we need to address them. Please run flake8 against the backend directory and fix the errors it points out.

@maunga-et were you able to work on this?

Yes but all the changes are in the pull request above.

@maunga-et I fixed the lint errors. I'll merge this now. Thank you for working on it.


"TypeError: Cannot read property 'forEach' of undefined" when embedded object field is a reference

Overview of the Issue
Querying a schema field which is a reference and is a sub field of an embedded object fails graphql validation with error:
"errors": [
  "TypeError: Cannot read property 'forEach' of undefined"
]

The relevant parts of the stack trace of the internal graphql execution is:
  TypeError: Cannot read property 'forEach' of undefined

  - ProvidedNonNullArguments.js:61 Object.leave
    [react-starter-kit]/[graphql]/validation/rules/ProvidedNonNullArguments.js:6    1:22

  - visitor.js:312 Object.leave
    [react-starter-kit]/[graphql]/language/visitor.js:312:29

  - visitor.js:351 Object.leave
    [react-starter-kit]/[graphql]/language/visitor.js:351:21

  - visitor.js:227 visit
    [react-starter-kit]/[graphql]/language/visitor.js:227:26

  - validate.js:75 visitUsingRules
    [react-starter-kit]/[graphql]/validation/validate.js:75:22

  - validate.js:60 validate
    [react-starter-kit]/[graphql]/validation/validate.js:60:10

  - graphql.js:54 Promise.catch.error.errors
    [react-starter-kit]/[graphql]/graphql.js:54:51

  - es6.promise.js:193 new Promise
    [react-starter-kit]/[core-js]/modules/es6.promise.js:193:7

  - graphql.js:51 graphql
    [react-starter-kit]/[graphql]/graphql.js:51:10

  - gqlSchema.js:13 Object.<anonymous>
    D:/my-dev-path-here/build/webpack:/data/gqlSchema.js:13:1

Reproduce the Error
Steps to reproduce:

Create the following mongoose schema

var parentSchema = Schema({
  name: String,
  child: {
    description: String,
    childInner: { type: Schema.Types.ObjectId, ref: 'Child' }
  }
});

var childSchema = Schema({
  name: String
});

var Parent = mongoose.model('Parent', parentSchema);
var Child = mongoose.model('Child', childSchema);

export default [Parent, Child];

Create a graphql schema using graffiti-mongoose

const gqlScehma = getSchema(dbschema);

Execute the following query against the result schema

graphql(gqlScehma, `
  {
  parents {
    child {
      childInner {
        name
      }
    }
  }
}`)

Node version: 5.6.0 (but this also happens on older version)
Graffiti-Mongoose version: 5.2.0 (but happened in previous versions as well)
Related Issues
#3 Probably should have written the tests.
Suggest a Fix
The problem is a check done by the graphql runtime in:
src/validation/rules/ProvidedNonNullArguments.js -> ProvidedNonNullArguments()
This, checks that non-null args are supplied. The problem is that it always expects an 'args' field to exist on the fields checked by this method (even if empty)
...
fieldDef.args.forEach(argDef => {
...

For some reason - the embedded sub fields which are reference does not have an 'args' field. I suspect
this has to do with the getType() method in graffiti-mongoose's graffiti-mongoose/src/type/type.js.
There, on line 255 it is seen that the field definition is created without an args field.
See here
but on line 228 which handles the same case for array type of fields - it does.
See here
I tried adding an empty array as the `args' field there - it fixes the problem but fails some of the tests on the schema validation utils from garphql - so I assume that is not a good fix.
I have a PR with a failing test cases I can submit - but that would mean it will be failing until a fix is found. We can merge that to a failing branch if you like and try and analyze it there.
See my branch here for the changes
Thank you for your contribution!

I suspect this might be a bug in Graphql.js itself. since in the "type" docs of Graphql the "args" property of a field is optional. From here:
type GraphQLFieldConfig = {
  type: GraphQLOutputType;
  args?: GraphQLFieldConfigArgumentMap;
  resolve?: GraphQLFieldResolveFn;
  deprecationReason?: string;
  description?: ?string;
}

Should I open a bug in graphql?

@yoadsn looking at it

feel free to open the PR, I will try to fix the tests

After many hours of debugging-  I think I have found the problem - deep inside the type.js source code.
I will update later when I have a suggestion for a fix.

@yoadsn Thank you, I really appreciate!

Ok, For future reference here is a brief of the problem and how it was resolved.
Since ever graphql was memoizing access to the getFields() method of a GraphQLObjectType so that the calculation is stored internally on the _fields property and returned from that field if already calculated.
 getFields(): GraphQLFieldDefinitionMap {
    return this._fields || (this._fields =
      defineFieldMap(this, this._typeConfig.fields)
    );
  }

code here;
Now, graffiti-mongoose generates fields with reference and attaches the correct types to those fields in a big method getTypes() in type.js.
During that process in a specific in order to get the fields of a parent field of a reference field it uses the graphql getFields() method unlike how it does it for other types of fields (such as an array of reference fields).
parent = parent[segment].type.getFields();

code here
The parent variable is the internal _fields property of the GraphQLObjectType and a few row below it is modified (overridden) by the correct reference type field prepared before hand. That pre-made field does not have an empty args property and it overrides the correct value in _fields generated by graphql which did contain the args property.
Later on, when the schema and inside it that specific GraphQLObjectType object is used by graphql it checks for the existence of the args field. (which is a mistake since the spec does not require it - see above).
But since graphql assumed internal properties like _fields are under the library control - it is a reasonable invariant to assert.
The fix was to enumerate the fields using an external method which does not call the internal memoizing leaving the object "clean".
parent = getTypeFields(parent[segment].type);

This is how other fields were populated in other parts of that method.


[Breaking change] Use Either Error to represent BigInt creation errors

Closes #18
This ended up being a little more involved than I planned. Let me know if it's not what you had in mind. I'm not sure if Left Error adds enough value over Nothing to make the switch from Maybe.

Thank you!
I would like to keep the breaking changes minimal and would propose to use Maybe instead of Either Error for fromNumber. Also, we definitely don't want to change the type signature of fromInt - it can not fail.
I'd be open to a new set of functions (fromStringWithError, fromNumberWithError or similar names) that would return a Either Error BigInt instead of Maybe BigInt. But that should preferably be discussed first in a separate ticket / PR.

Ah, I forgot that Infinity is out of bounds for Int. Makes sense.

Switched it back to Maybe

I fixed the two little things. Let me know what you think about the comment regarding strings.

Thank you very much!


whitelist lock out

And I cant log in to the support portal because the support portal uses the whitelisting capability.

Expected content
Actual content
Link to page:

Expected content, that whitelisting would be ONLY for api access ONLY, not for account login and access. What happens if i login from using a new ISP? my ip would have been changed then.
This is a SEVERE security circle of logic that is not warned to us as a customer until AFTER we already locked ourselves out.
Please help ASAP.

@webbgroup - you can use this link to contact our support team - https://support.sendgrid.com/hc/en-us/requests/new#ipam-lockout


missing Spring dependency information on Getting started guide

i'm expecting to see on getting started guide as part of the Spring section how to add the Spring dependency.

Thanks for your feedback.
since we are using maven for handling dependencies, and score is already dependent on spring there is no need to declare this dependency manually.
you can check our example project for reference:
[Example project] (https://github.com/meirwah/test-slang-embedded)


Question about equation 5

In equation 5, you assume that $p_{\theta}(G^{t-1}|G^t)$ factorizes over nodes and edges independently. Is this assumption fair given that each $p_{\theta}(x_i|G^t)$ is the output of the graph transformer network, which uses all the other node/edge representations to estimate the output distribution for a single node?

Hello,
First, note that equation 5 corresponds to a model, and says nothing about the true denoising process.
In equation 5, we explain that we sample the node and edge types independently from the probabilities computed using the network predictions (which are a function of G^t). It does not imply that the probabilities themselves are independent.
In contrast, if the model was autoregressive, the values sampled at a node would impact the probabilities at other nodes. This is what is done in https://openreview.net/forum?id=98J48HZXxd5, for example.
Clement

On 17 Apr 2023, at 17:01, najwalb @.***> wrote:
In equation 5, you assume that $p_{\theta}(G^{t-1}|G^t) factorizes over nodes and edges independently. Is this assumption fair given that each $p_{\theta}(x_i|G^t)$ is the output of the graph transformer network, which uses all the other node/edge representations to estimate the output distribution for a single node?
—
Reply to this email directly, view it on GitHub https://github.com/cvignac/DiGress/issues/33, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEJOOTVAQX5K64EHH7AAITTXBVLL3ANCNFSM6AAAAAAXBKA5AI.
You are receiving this because you are subscribed to this thread.


Implicit withdrawals are now generated also on correct subprefix routing

Description of PR

What component(s) does this PR affect?

[X] Back-End (Database, Detection/Configuration/etc. Microservices)
[ ] Front-End (Flask, API, UI, etc)
[ ] Monitor (RIPE RIS, BGPStream RV/RIS/CAIDA, etc.)
[ ] Docs (incl. wiki)
[ ] Build System

Does the PR require changes on other components? If yes, please mark the components:

[ ] Back-End (Database, Detection/Configuration/etc. Microservices)
[ ] Front-End (Flask, API, UI, etc)
[ ] Monitor (RIPE RIS, BGPStream RV/RIS/CAIDA, etc.)
[ ] Docs (incl. wiki)
[ ] Build System

Related Issue

Resolves #438
Blocks #436 #437
Solution

The main logic of this PR is the following:

Assume we have an active hijack for prefix N/M (where N = network address and M = prefix length) .
Currently, we treat correct routing updates for N/M as implicit withdrawals for the monitor that saw both the hijack and the "healed" path.
With this adjustment, we also treat correct routing updates for either N_1/M+1 or N_2/M+1 (where N_1, N_2 the network addresses of the direct more specifics of the original prefix) as implicit withdrawals for the hijacked N/M.

Note that in a future issue we need to carefully account for what prefix space is currently healed; this PR is an approximation for direct more specifics advertised during the deaggregation process (it is OK to assume that subprefix routing done for the entire prefix space will result in the hijack being mitigated, even if we do not wait to see all subprefix announcements).
Type

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Docs update
[ ] None of the above

Checklist:

[X] I have read the contributing guide and my code conforms to the guidelines.
[ ] This change requires a change in the documentation.
[ ] I have updated the documentation accordingly.

Can you provide unittests for this part of the code? (with mocking redis)

@slowr I added the unit tests, just let me know if we have a good way of also simulating redis state on the fly (I tried mockredis but it does not create state as expected).

unit tests with mock redis exists also added.

Note that full partial withdrawal support will be implemented in 2.0.0 (issue #440)

LGTM! Only comment I have is for maybe moving the rules within the unit tests instead (have like a static function to set them inside the unit test itself or something)

Will be addressed in separate issue #441


Cannot read properties of null (DDSBackgroundMedia and DDSVideoPlayerContainer) - WebComponents

Engineering info:

Innovation Team engineer:
Innovation Team JIRA Ticket: https://jsw.ibm.com/browse/HC-2496
DPO consulting engineer: N/A

Description
Hello Everyone,
I met some issues with the ibm-dotcom-web-components and i'm asking for help.
After import my dds-video-player-container from the good file, i put the Kaltura Id of my video, and it didn't work and i got this error (image joined)
Is anyone got this problem ? It cannot read the dataset because the value just before is considered as "null"
FI : This web-component is in the DDSBackgroundMedia component.
Thanks in advance for your help guys !

Component(s) impacted
There is no render at all of the video container of the background media web-components.
Browser
Chrome
Carbon for IBM.com version
v1.16.0
Severity
Severity 2 = Aspects of design is broken, and impedes users in a significant way, but there is a way to complete their tasks. Affects major functionality, has a workaround.
Application/website
IBM intern website
Package
@carbon/ibmdotcom-web-components
CodeSandbox example
https://carbon-design-system.github.io/carbon-for-ibm-dotcom/canary/web-components/?path=/docs/components-video-player--default
Steps to reproduce the issue (if applicable)
import dds-background-media and dds-video-player-container in react app after downloading the good package.
Rename these tags like : DDSBackgroundMedia, in your imports.
It shouldn't work on the render.
Release date (if applicable)
This was released 2 days ago.
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate issues

Hey @Quentin-Macquart! Would you be able to provide a CodeSandbox example of the issue you're facing? It would be helpful so we can start narrowing down this issue, thanks!

@Quentin-Macquart, just wondering if you were able to get this fixed?

Hello @IgnacioBecerra, unfortunately i didn't have the time to review this since i made this post. I found another way of getting this by adding the component video-player with the kaltura ID.
I'll try to reproduce this error and i let you know,
Have a great day,

@Quentin-Macquart any chance you can reproduce in a codesandbox? Looking at the error in your screenshot, I can see where the code was failing, but I'm struggling to see why.
async _embedVideoImpl(videoId: string, backgroundMode = false) {
  const { ownerDocument: doc } = this;

  // Here we're creating a div with a specific ID
  const playerId = Math.random()
    .toString(36)
    .slice(2);
  const div = doc!.createElement('div');
  div.id = playerId;
  div.className = `${prefix}--video-player__video`;

  // Here we get the video player component and append that div
  const { _videoPlayer: videoPlayer } = this;
  if (!videoPlayer) {
    throw new TypeError('Cannot find the video player component to put the video content into.');
  }
  videoPlayer.appendChild(div);

  ...

  // Here we're getting that same div
  doc!.getElementById(playerId)!.dataset.videoId = videoId;
  const videoEmbed = doc!.getElementById(playerId)?.firstElementChild;
  if (videoEmbed) {
    (videoEmbed as HTMLElement).focus();
  }
  return embedVideoHandle.kWidget();
}

My best guess at this time is that the DDSVideoPlayer component either wasn't imported, or wasn't on the page, but if that was the case I'd have expected the type error we throw in that code block: "Cannot find the video player component to put the video content into."

I found another solution to add a video in leadspace. I tried to reproduced the error when you published your answer last time but it did not sucessed.


fix(#165): placeholder text color contrast

Description
Expected Behavior
Placeholder text for Search, Select, Textarea and Textfield components should comply with WCAG 2.1 AA contrast ratio requirements with a contrast ratio between the foreground text color and the background color or at least 4.5:1.
Actual Behavior
Currently, Coral-Spectrum uses var(--spectrum-global-color-gray-600);  from Spectrum-CSS, for the ::placeholder text color in Search, Select, Textarea and Textfield components, which results in placeholder text with a contrast ratio of 3:1, which does not comply with WCAG 2.1 AA contrast ratio requirements.
Spectrum-CSS includes a fix for this in v3.0.1, (see https://github.com/adobe/spectrum-css/commit/011ca5408ae5eb32bb55e1cf79c06e40171fd17c), updating Coral-Spectrum to use this version of Spectrum-CSS is not trivial.
A simpler suggested fix would be to change the value in Coral-Spectrum to use var(--spectrum-global-color-gray-700); to satisfy the requirement.
Reproduce Scenario (including but not limited to)
Steps to Reproduce

Go to https://opensource.adobe.com/coral-spectrum/examples/#textfield, https://opensource.adobe.com/coral-spectrum/examples/#textarea, https://opensource.adobe.com/coral-spectrum/examples/#select, https://opensource.adobe.com/coral-spectrum/examples/#clock.
Inspect the placeholder text element in the sub-dom for any of the enabled textfield examples that use placeholder.
Observe that the color specified in CSS for the placeholder element has a contrast ratio of 3:1, for the .coral-lightest theme it's rgb(149, 149, 149).

Browser name/version/os
Version 89.0.4389.114 (Official Build) (x86_64) on macOS
Coral Spectrum version
v4.10.16
Sample Code that illustrates the problem (use the Playground if possible)
Coral Spectrum Playground Example
Related Issue
#165
Motivation and Context
This fix addresses numerous color contrast accessibility issues identified in AEM.
How Has This Been Tested?
Tested using color contrast evaluation tools against example pages:

http://localhost:9001/examples/#select
http://localhost:9001/examples/#textfield,
http://localhost:9001/examples/#textarea
http://localhost:9001/examples/#clock
http://localhost:9001/examples/#search

Screenshots (if appropriate):
Current behavior:

Desired behavior:

Types of changes

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

Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.

@icaraps @CezCz : Please review


v3.0 - Value Converters aren't respected

When using ValueConversion in Entity Framework you're able to (according to the docs) retype your Model types before database conversion - for example, I could flatten a complex type, into a single string property - and EF should map using that remapped property.
However, it looks as though the type mapping used in Spanner doesn't support this - I'm noticing this behaviour specifically trying to remap a HashSet to a List so that the standard cloud spanner mappings to Array<string etc. take precedence. But if I use entity.Property(x => x.Prop).HasConversion - nothing is changed.
I have a branch of a fork where the tests fail - (there are some other test failures but I'm unsure whether that's a me issue or not - but the Scaffolding tests are showing the problem.): https://github.com/abbottdev/dotnet-spanner-entity-framework/tree/feature/hashset-tests
Or you can see the diff here:
https://github.com/googleapis/dotnet-spanner-entity-framework/compare/main...abbottdev:dotnet-spanner-entity-framework:feature/hashset-tests?expand=1
Environment details

Programming language:C#
OS: MacOS
Language runtime version: Net8.0
Package version: v3.0.0 (preview)

Steps to reproduce

Add a HashSet property to a EF mapped class:

    public partial class Album
  {
      public long SingerId { get; set; }
      public long AlbumId { get; set; }
      public string Title { get; set; }
      public virtual Singer Singer { get; set; }
      public HashSet<string> Awards { get; set; } = new HashSet<string>(); // new prop
  }

Add an Array type mapping to the SQL databases:

CREATE TABLE Albums (
AlbumId     INT64 NOT NULL,
Title       STRING(100) NOT NULL,
ReleaseDate DATE,
SingerId    INT64 NOT NULL,
Awards    ARRAY<STRING(256)> NOT NULL, -- this line
CONSTRAINT FK_Albums_Singers FOREIGN KEY (SingerId) REFERENCES Singers (SingerId),
) PRIMARY KEY (AlbumId);

Add the property to the DbContext with a Conversion function like so:

              entity.Property(a => a.Awards)
                  .HasConversion(
                      hashset => hashset.ToList(),
                      list => list.ToHashSet()
                  );

Try and run the tests using an emulator, and you receive exception No coercion operator is defined between types 'System.Collections.Generic.HashSet`1[System.String]' and 'System.Collections.Generic.List`1[System.String]'.

Example failing test:
  Failed Google.Cloud.EntityFrameworkCore.Spanner.IntegrationTests.QueryTests.CanUseOuterJoin [1 ms]
Error Message:
System.InvalidOperationException : No coercion operator is defined between types 'System.Collections.Generic.HashSet`1[System.String]' and 'System.Collections.Generic.List`1[System.String]'.
Stack Trace:

Thanks!

has the same issue when we converting enum to database Int value. Custom Conversion logic do not help. Keep getting an error "ArgumentException: Argument types do not match"
modelBuilder.Entity<TableName>()
                .Property(c => c.EnumType)
                .HasConversion<int>();

I struggled a bit with the docs @jhaEShauliuk - I found that a combination of EF 3.0, I think there's some type mappings missing somewhere. For example, for the Enum part I was able to get this working by doing the following:
modelBuilder.Entity<TableName>()
                .Property(c => c.EnumType)
                .HasConversion(new EnumToNumberConverter<EnumType, long>());

The key part was that if I used int instead of long it would fail. (Hope that helps you out along the way.)


JAV-252 grab coupon successfully

Changes Unknown when pulling 40de3c8937184a833a1995cf755ae09c728d5cc7 on command-service-core into ** on master**.


Warnings: :simple_one_for_one strategy is deprecated, please use DynamicSupervisor

I'm getting a couple of these warnings when starting up iex:
warning: :simple_one_for_one strategy is deprecated, please use DynamicSupervisor instead
  (elixir 1.10.1) lib/supervisor.ex:604: Supervisor.init/2
  (elixir 1.10.1) lib/supervisor.ex:556: Supervisor.start_link/2
  (stdlib 3.11.2) supervisor.erl:379: :supervisor.do_start_child_i/3
  (stdlib 3.11.2) supervisor.erl:365: :supervisor.do_start_child/2
  (stdlib 3.11.2) supervisor.erl:349: anonymous fn/3 in :supervisor.start_children/2

warning: :simple_one_for_one strategy is deprecated, please use DynamicSupervisor instead
  (elixir 1.10.1) lib/supervisor.ex:604: Supervisor.init/2
  (elixir 1.10.1) lib/supervisor.ex:556: Supervisor.start_link/2
  (stdlib 3.11.2) supervisor.erl:379: :supervisor.do_start_child_i/3
  (stdlib 3.11.2) supervisor.erl:365: :supervisor.do_start_child/2
  (stdlib 3.11.2) supervisor.erl:349: anonymous fn/3 in :supervisor.start_children/2

Erlang/OTP 22 [erts-10.6.4] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] [dtrace]
Elixir 1.10.1 (compiled with Erlang/OTP 22)

@fireproofsocks this should be fixed on master.

@joeapearson can we close this issue? Or, are you waiting for a confirmation from @fireproofsocks?

Confirmed: this no longer appears on master.


Remove Http2ConnectionState::continued_buffer

continued_buffer is not used at all
(cherry picked from commit e4a94b9cec7119c96fde1205611cb60ceed8428d)
Conflicts:
proxy/http2/Http2ConnectionState.h

Backport #3970 to 7.1.x

[approve ci clang-analyzer]

Is something changed in Clang-Analyzer build? All bugs on the report looks not related to this change.
https://ci.trafficserver.apache.org/clang-analyzer/github/4058/2018-08-03-002942-12286-1/

Ah, we can ignore the build errors and merge PRs against 7.1.x branch.


fix(cors): don't send ACAO header where a single origin(not regex) is configured

Summary
The CORS plugin currently always sets the ACAO header based on the plugin configuration if the configuration only has a single entry and contains only non-PCRE metacharacters. This behavior is first introduced in #2482 and doesn't seem to have any real impact on the functionality I think.
But this seems is not following the mozilla guidelines

Specifies an origin. Only a single origin can be specified. If the server supports clients from multiple origins, it must return the origin for the specific client making the request.

This fixes behavior by no longer sending an ACAO header in this case.
These changes seem reasonable to me, but happy to hear feedback.
Checklist

[x] The Pull Request has tests
[x] There's an entry in the CHANGELOG
[ ] There is a user-facing docs PR against https://github.com/Kong/docs.konghq.com - PUT DOCS PR HERE

Full changelog

don't send ACAO header where a single origin(not regex) is configured in case of non-matched.

Issue reference

Fix FTI-4745

Since this has been so long in a products, do we consider this as a fix. It seems like a potentially breaking change?
@hbagdi, @kikito?

I recall putting in a comment but I cannot see it here now.
I agree with Aapo that this can cause breakage, a large one because we put this in to be smart about this.

Please move this forward @hbagdi @kikito

I don’t like what we are currently doing, and I don’t like that we are not following the CORS standard. I would have zero concerns about doing this on a major release (4.0).
However, CORS is our most used plugin according to our stats. Making changes such as this on a minor release can be very problematic.
@ms2008 is it possible to fix the customer issue (missing port) without removing the "smartness" from the plugin? If there is, that would be my preferred way to do this.
While we decide this, can we give the customer a workaround? E.g. would it be possible to sidestep this problem by adding a "dummy" domain in the config?
To summarize, my proposed solution would be:

Give the customer a workaround if there's any
Close this PR and open a new one.
Add the port to the current "smart" code
Add a deprecation notice that puts a log line saying that this behavior is deprecated and will change in 4.0. Put a comment linking to this PR
Document this behavior (and the fact that it will change in 4.0) on the plugin docs page.
When we start implementing 4.0, we should be able to grep for deprecation deprecation notices, and be pointed to this PR.

I hope this helps.

@kikito I read the RFC and W3C specifications carefully, and I think the behavior of stripping the port part(if it is equal to the default value) is reasonable even though they are explicitly specified in the Origin request header.
I have tried to verify this behavior(stripping the default port) on Chrome and have determined if Chrome recognizes this behavior. Unfortunately, Chrome does not allow custom CORS requests for origin at all.
I still think this is an issue with the customer's own specific software and should be left up to them to fix(e.g. customize their own CORS plugin), not to change our behavior.

@kikito @hbagdi We do need to consider fixing this one in the future major release. Could we "freeze" this one and let it be ready for the coming major release.

Can this one be a feature candidate in 3.5? @hbagdi @ms2008

I think the concerns raised by Apao and Enrique are valid. Considering that it seems like a potentially breaking change and doesn't have any substantial impact on functionality, I lean towards closing this PR.


Make widget resizable

Make widget resizable

Closed as change is added into https://github.com/ARK-Builders/ARK-Rate/pull/131


Centering Bootstrap Tables?

Before opening:

Search for duplicate or closed issues
Read the contributing guidelines

Feature requests must include:

As much detail as possible for what we should add and why it's important to Bootstrap
Relevant links to prior art, screenshots, or live demos whenever possible

I have a bootstrap table that is 50% wide (using w-50 and p3) but is left aligned.  Is there a way to center the table while leaving the contents as left aligned?

Add class mx-auto


What about communicate between presenters?

I need show progressbar in parent fragment in case if child fragment has needed state (for example count elements in ListView).
To solve the problem it is necessary that the presenters were able to communicate. The MainPresenter should know about entities size in the ChildPresenter. Is it correct from the point of view MVP if the presenter will know about another presenter? And how this approach can be implemented in Clean Architecture?
====== Main =======

public interface MainView {
    void showLoading();
}

public class MainFragment implements MainView {

    ChildFragment childFragment;

    private void init(){
        childFragment = new ChildFragment();
        view.add(childFragment);
    }

    public void showLoading(){
        // show progressbar
    }

}

public class MainPesenter {
    public void showLoading() {
        getView().showLoading(); //show only if ChildPresenter has count > 0
    }
}

====== Child =======

public interface ChildView {
    void showList(List<Entity> entities);
}

public class ChildFragment implements ChildView {

    public void showList(List<Entity> entities) {
        //show list on UI
    }

}

public class ChildPresenter {

    List<Entity> entities;

    public void init() {
        entities = getEntities();
        getView().showList(entities);
    }

    public int getCount(){
        return entities.size();
    }

}

I was wondering the same thing.

So how this approach can be implemented in Clean Architecture? @ZherebtsovAlexandr

Not sure if this is the best way, but you can use LocalBroadcastReceivers
showLoading() will send a broadcast to the fragment, when the fragment receives the broadcast, you check the list size, and then issue another broadcast in which MainActivity is listening.
It's a lot of code for a simple thing, but hey, it isolates the view logic within the View layer.

I strongly discourage the "presenter knows about presenter" pattern since that increases coupling. A possible solution would be the use of a bus pattern, or as abovementioned, the use of LocalBroadcastReceivers

+1 for bus pattern. Basically what you want is to isolate everything in the View layer. So only your main fragment & child fragment know each other - not necessarily their presenters.
A tightly coupled approach would be for the MainFragment to call a method ChildFragment that requests to show loading.

I'd say Event Bus, or what I'm doing is putting an event bus in my domain layer... the event bus is just an Rx PublishSubject, so I'm not adding any more dependencies, but this allows my domain elements to communicate in a decoupled way. This is described a bit in this talk which is excellent by the way.

Personally i disagree the way many people choose event bus to solve this kind of problems
In my opinion if two presenters need to communicate each other then you should merge these two in just one single presenter. Remember that also communication of models object or states between two use cases is business logic so maybe the scope of the presenter is bigger than you thought initially.
Consider also that if you use collaborators in the right way then you don't need communication between presenters. Data should be provided by collaborators.
If no one of this solution satisfy your case then simply let the parent view implements an interface known by the child presenter, something like:
interface ProgressView {   void showWorkingState();   void showIdleState(); }
add this new interface as a second view of the child presenter. The main view will register itself as implementation of that interface.
In this way the view will be notified when a child fragment is working/idle and the view will notify then the presenter about it. The presenter will choose what to do.

IMHO, another layer of indirection is needed. For example:
public interface MainPresenter {
    void showLoading();
}

public interface ChildPresenter {
    void init();
    int getCount();
}

public class MainChildPresenter implements MainPresenter, ChildPresenter {

    private MainPresenter mainPresenter;
    private ChildPresenter childPresenter;

    public MainChildPresenter(MainPresenter mainPresenter, ChildPresenter childPresenter) {
        this.mainPresenter = mainPresenter;
        this.childPresenter = childPresenter;
    }

    public void showLoading() {
        // show only if ChildPresenter has count > 0
        if (childPresenter.getCount() > 0) {
            mainPresenter.showLoading();
        }
    }

    public void init() {
        childPresenter.init();
    }

    public int getCount(){
        return childPresenter.getCount();
    }
}

====== Main =======

public interface MainView {
    void showLoading();
}

public class MainFragment implements MainView {

    ChildFragment childFragment;
    MainPresenter presenter; // bind to MainChildPresenter

    private void init(){
        childFragment = new ChildFragment();
        view.add(childFragment);
    }

    public void showLoading(){
        // show progressbar
    }

}

public class MainPesenterImpl implements MainPresenter {
    public void showLoading() {
        getView().showLoading(); //show only if ChildPresenter has count > 0
    }
}

====== Child =======

public interface ChildView {
    void showList(List<Entity> entities);
}

public class ChildFragment implements ChildView {

    ChildPresenter presenter; // bind to MainChildPresenter

    public void showList(List<Entity> entities) {
        //show list on UI
    }

}

public class ChildPresenterImpl implements ChildPresenter {

    List<Entity> entities;

    public void init() {
        entities = getEntities();
        getView().showList(entities);
    }

    public int getCount(){
        return entities.size();
    }

}


Updates to enable e2e test for v1alpha2

Update test_runner.py to track new fields in version v1alpha2 for TFJob
Update simple_tfjob.jsonnet with new TFJob spec for v1alpha2

/assign @gaocegege
Related https://github.com/kubeflow/kubeflow/issues/852

This change is

/LGTM

/lgtm
/approve
Great thanks!

/retest

Fixed lint issues. @gaocegege Can you review again?

/lgtm

/retest


Enhancement: Font & Font Size option

What features would you like to see added?
I have some eyesight issues and I'd like the ability to set the font size of the interface.
If possible, I'd also like the ability to set the interface font (I have some more readable fonts I like to use). That might be a bit difficult, but atleast setting the font size would be chat!
More details
Be great to have a section in user settings somewhere.
Which components are impacted by your request?
No response
Pictures
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Sorry but this is not very customizable. Is zooming in on your browser not sufficient? I would recommend looking into editing the style sheet for this

The major problem with this approach is that upon zooming the left and right spacing stays the same, so you have a giant space on left and right and your words get large and mashed into the middle into a small column. It becomes a bit unreadable. Perhaps this spacing issue could be fixed.

Ok the font size is actually pretty doable as an option, I’m reopening this!

@danny-avila Can i work on this?


Difference between CLI install and normal install

It seems that via CLI the database password is required:

But via the web interface it installs without a database password.
Should the CLI modus be more restrictive than the web modus?

They should be the same. I'm not sure it matters which is which – is it our job to ensure that a database user  has as password?

I agree that they should be the same. I'm unsure about whether the password should be required or not. I can imagine that many development environments have database users without a password, for example. And, if a password were crucial, why wouldn't MySQL require us to use one?

Fixed in bdba6e3f24ec34a1cba4097da01177b448a7e20a (included in #6528).


Issue with k8s.io/docs/setup/independent/install-kubeadm/

This is a...

[ ] Feature Request
[X] Bug Report

Problem:
Last step  in before you begin section says:
set /proc/sys/net/bridge/bridge-nf-call-iptables to 1
On my fresh Ubuntu 16.04 (not 16.04.3) the folder /proc/sys/net/bridge was not available, but after installing Docker which is one of the next steps the setting was done automatically. SO maybe the step is too early in "before you begin"?
Proposed Solution:
Delay the check
set /proc/sys/net/bridge/bridge-nf-call-iptables to 1
after Docker installation
Page to Update:
http://kubernetes.io/docs/setup/independent/install-kubeadm/

Kubernetes Version: Documentation v1.8

1.kubeadm using cluster steup:
I has been tried to setup kubernetes on ubuntu 16.04 with kubeadm
Steps to setup:

Install a secure Kubernetes cluster on your machines
Install a pod network on the cluster so that application components (pods) can talk to each other
Install a sample  application (custom app) on the cluster

Prerequisites:
One or more machines running Ubuntu 16.04 or CentOS 7
1GB or more of RAM per machine (any less will leave little room for your apps)
Full network connectivity between all machines in the cluster (public or private network is fine)
Machine-1 —master
Machine-2 -worker1
Machine-3 -worker2
Etc…
Step -1:
Please proceed with executing the following commands based on your OS as root. You may become the root user by executing sudo -i after SSH-ing to each host.
Install Docker from Ubuntu’s repositories:
Sudo su -
apt-get update
apt-get install -y docker.io
(or) install Docker CE 17.03 from Docker’s repositories for Ubuntu or Debian:
apt-get update && apt-get install -y curl apt-transport-https
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
cat </etc/apt/sources.list.d/docker.list
deb https://download.docker.com/linux/$(lsb_release -si | tr '[:upper:]' '[:lower:]') $(lsb_release -cs) stable
EOF
apt-get update && apt-get install -y docker-ce=$(apt-cache madison docker-ce | grep 17.03 | head -1 | awk '{print $3}')
Step-2:
apt-get update && apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat </etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
Step-3:
apt-get install -y kubelet kubeadm kubectl kubernetes-cni
The above steps all are same to do all kubernete cluster AWS machines .
Step-4:
The step for do only in master node AWS instance
Use any one command:
The following command token not expire
kubeadm init --token-ttl 0
(Or)
use this token will be expire 24 houres
kubeadm init
Finally result look like this:
Your Kubernetes master has initialized successfully!
To start using your cluster, you need to run (as a regular user):
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
http://kubernetes.io/docs/admin/addons/
You can now join any number of machines by running the following on each node
as root:
kubeadm join --token fa7ff3.e26b3c59a0558f5b <IP_ADDRESS>:6443 --discovery-token-ca-cert-hash sha256:a0d5b66036199f700a3cbe86af34b9f623df93f28870e57dfbec75d6498df060
Step-5:
as a regular user means:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you could run this:
export KUBECONFIG=/etc/kubernetes/admin.conf
Step-6:Installing a pod network:
Choose any pod CNI & Install
flannel
Canal
Calico
Weave Net
Etc...
Here weave Net
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
export kubever=$(kubectl version | base64 | tr -d '\n')
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"
Once a pod network has been installed, you can confirm that it is working by checking that the kube-dns pod is Running in the output of kubectl get pods --all-namespaces. And once the kube-dns pod is up and running, you can continue by joining your nodes
kubectl get pods --all-namespaces
If your network is not working or kube-dns is not in the Running state, check out our troubleshooting docs
Step-7- Joining your nodes:
Open your all worker nodes in different terminals
Become root (e.g. sudo su -)
Copy & paste the master node init output token in your all worker nodes instance terminal
Like e.g.: kubeadm join --token fa7ff3.e26b3c59a0558f5b <IP_ADDRESS>:6443 --discovery-token-ca-cert-hash sha256:a0d5b66036199f700a3cbe86af34b9f623df93f28870e57dfbec75d6498df060
Output:
root@ip-192-168-1-198:~# kubeadm join --token fa7ff3.e26b3c59a0558f5b <IP_ADDRESS>:6443 --discovery-token-ca-cert-hash sha256:a0d5b66036199f700a3cbe86af34b9f623df93f28870e57dfbec75d6498df060
[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.
[preflight] Running pre-flight checks
[preflight] WARNING: hostname "ip-192-168-1-198" could not be reached
[preflight] WARNING: hostname "ip-192-168-1-198" lookup ip-192-168-1-198 on <IP_ADDRESS>:53: no such host
[discovery] Trying to connect to API Server "<IP_ADDRESS>:6443"
[discovery] Created cluster-info discovery client, requesting info from "https://<IP_ADDRESS>:6443"
[discovery] Requesting info from "https://<IP_ADDRESS>:6443" again to validate TLS against the pinned public key
[discovery] Cluster info signature and contents are valid and TLS certificate validates against pinned roots, will use API Server "<IP_ADDRESS>:6443"
[discovery] Successfully established connection with API Server "<IP_ADDRESS>:6443"
[bootstrap] Detected server version: v1.8.2
[bootstrap] The server supports the Certificates API (certificates.k8s.io/v1beta1)
Node join complete:

Certificate signing request sent to master and response
received.
Kubelet informed of new secure connection details.

Run 'kubectl get nodes' on the master to see this machine join.
Finally check your kubernetes cluster nodes in your master machine
kubectl get nodes
Output:
e.g.:
root@ip-192-168-1-120:~# kubectl get nodes
NAME               STATUS    ROLES     AGE       VERSION
ip-172-16-1-250    Ready         1m        v1.8.2
ip-172-16-1-254    Ready         2m        v1.8.2
ip-172-16-1-83     Ready         2m        v1.8.2
ip-192-168-1-101   Ready         3m        v1.8.2
ip-192-168-1-120   Ready     master    6m        v1.8.2
ip-192-168-1-198   Ready         3m        v1.8.2
ip-192-168-1-44    Ready         3m        v1.8.2
Step-8 : Dashboard Setup
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard.yaml
Granting admin privileges to Dashboard's Service Account:
Give master instance in root user in terminal run cmd
$ cat <<EOF | kubectl create -f -
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard
labels:
k8s-app: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:

kind: ServiceAccount
name: kubernetes-dashboard
namespace: kube-system
EOF

Start server
kubectl proxy --address <IP_ADDRESS> --accept-hosts '.*'
Dashboard can be loaded at http://localhost:8001/ui
Afterwards you can use Skip option on login page to access Dashboard.
Done!!!!


Email has bitcoinz:address but not as a hyperlink

Gmail doesn't recognise the bitcoinz: URL format, so email received isn't underlined and linkable.
Currently we have
bitcoinz:<address>
Recommendation:
Format the link text as <a href="bitcoinz:<address>">bitcoinz:<address>

I have tried URL formats with Gmail. It appears to handle only http and email hyperlinks. I have raised a suggestion with them.


use "GEM Suite" for repository name on README

This is a more concise name for the software package. Example usage in a sentence: "You can install the GEM Suite software package using the command pip install gem-suite"

Can you also update Installation guide?

Done


vue 2.7 rsbuild

Describe the bug
vue版本 2.7，在rsbuild中引入VueMacros报错如下

Reproduction
none
System Info
mac m1pro.
vue 2.7.16
rsbuild 0.7.2
chrome: latest

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

Please provide a minimal reproduction.
Thanks.

Why reproduction is required

It might be an issue with Rspack. I've reported it to their team.

thinks

The version of rsbuild/rspack is too low; 1.0.1-rc.5 works correctly.


Add queue

Hi @e1leet!
Thank you for contribution. Could you please also add some unit tests for Queue using stretchr/testify? I will add tests for hash set a bit later too.

@tomakado ok, I'll probably add tests tomorrow.

@tomakado I am very bad at writing tests. Take a close look to see if everything is ok. Text me later, I'll fix it

@e1leet thanks! I'll check today later or tomorrow

LGTM


fix(host-scanner): remove hostNetwork and hostPort parameters

Overview
This fix removes the hostNetwork and hostPort parameters from the host-scanner deployment, since we don't need them anymore.

/cc @dwertent @matthyx

I am not sure we still use this one... I thought we always use the internal one? @dwertent ?

@alegrey91 Please update the kubescape image version...

@matthyx You might be right, I'm checking this.


Add group ID to clipboard on click

Allow for users to click on the group id and send to clipboard

Allow for users to click on the group id and send to clipboard

Legit was just moments from posting that exact thing.

Great minds think alike haha


Floods of requests when no internet

If the GetPlaybackState call fails, it tries again. When there are network issues (ie no internet), this causes an unending loop. If this fails for more than 250ms, then the timer will fire again, causing it to be trying to run 2 infinite update loops in parallel. And this repeats until companion is spending all its time on getting a response.
https://github.com/bitfocus/companion-module-spotify-remote/blob/main/module.js#L268
Instead, it is probably sufficient to simply ignore a failed response. The timer will 'retry' in 250ms anyway. Alternatively, the retries should be rate limited a bit, and should block the timer firing again. The second option would be as simple as wrapping GetPlaybackState with debounce-fn set to run before, with a 100ms wait

Ah I'd theorized that this was possible but never was able to actually have it happen, I think the easiest solution would be to have the errorcheck function return to indicate whether it should try again or not since this will happen with every api call, not just the GetPlaybackState, it's just more obvious with that since it's called every 250ms.
I'll take a crack at fixing this in a few days when I have some spare time.


vpn extensions not working

example of an extension that is not working
(looks like it does, but your IP is not changed to the specified vpn country)
https://chrome.google.com/webstore/detail/free-vpn-for-chrome-vpn-p/majdfhpaihoncoakbjgbdhglocklcgno?hl=en

Hello , it's the bug still there ?


update many dependencies

and fix the broken bin/pegcoffee.coffee.

Hi @Dignifiedquire would be great if this could get merged

Thanks sorry for not reviewing earlier will try to merge soon

@dignifiedquire Hi! Thanks for creating this npm package! Any chance this gets to be merged? :)

Thank you and sorry for the delay

Well a whole year has passed and I assume dependencies got outdated once again.

@dignifiedquire Thanks! :)
@felixhao28 that's true. btw, I'm just started to hacking on the pegjs thingy.. if I decide to use it seriously, maybe I can lend my hand for the update... :)


Does not work with TARDIM?

To stop spawning of Zombie and Skelton in the dimension provided by TARDIM, what rule should I have to add?

Original: Curse Forge comment

The file location may be wrong. It means the datapack is not loaded correctly.


[NO-ISSUE] - Added boundingrect function to node

Implemented boundingRect function for roSGNode with zero-defaulted values
https://developer.roku.com/docs/references/brightscript/interfaces/ifsgnodeboundingrect.md

I'm fine with this, given that we have several other components with skeleton implementations. Can you also open a PR into roca to update the docs? Probably this one specifically: implementation-gaps.md

I think the comment that it is mostly complete is still accurate since I only implemented one out of ~7 methods from this interface. I have never seen the other methods used so I only implemented boundingrect.
Would you prefer I implement all of the methods or file an issue to complete the missing methods?


Collect stdlib benchmarks results

Closes #7598
Notable changes to the bench_download.py script:

Added new -s|--source parameter that can be either engine or stdlib.
Data is downloaded asynchronously, which makes it blazingly fast - downloading all the benchmarks for the last 2 months without cache takes 5 seconds.
Cache is not used by default.
Issues a warning if the user wants to download benchmarks that are expired according to the GH policy.

The default retention policy for all the artifacts is 90 days. Cannot be changed.

Use proper xml std library to parse the bench reports instead of regular expression matching.

Changes to the generated website:

Add "filter by date" functionality.
By default, displays only benchmarks for the last month on the charts.
Minor style tweaks

Issues a warning if the user wants to download benchmarks that are expired according to the GH policy.

The default retention policy for all the artifacts is 90 days. Cannot be changed.

If we need to, it is rather straightforward to add a step to the benchmark job that not only uploads the results as a GH artifact, but also as a file to S3 - we already have/had such functionality. On S3 we can store the results indefinitely, if we want to.

Issues a warning if the user wants to download benchmarks that are expired according to the GH policy.

The default retention policy for all the artifacts is 90 days. Cannot be changed.

If we need to, it is rather straightforward to add a step to the benchmark job that not only uploads the results as a GH artifact, but also as a file to S3 - we already have/had such functionality. On S3 we can store the results indefinitely, if we want to.

Upload to S3 would be very nice, that would solve a lot of problems. Do you know how to do that? Or refer me to the point when we used to do that?

Issues a warning if the user wants to download benchmarks that are expired according to the GH policy.

The default retention policy for all the artifacts is 90 days. Cannot be changed.

If we need to, it is rather straightforward to add a step to the benchmark job that not only uploads the results as a GH artifact, but also as a file to S3 - we already have/had such functionality. On S3 we can store the results indefinitely, if we want to.

Upload to S3 would be very nice, that would solve a lot of problems. Do you know how to do that? Or refer me to the point when we used to do that?

I've been writing this using the Github Actions a long time ago. I think we are still doing this, but I'm less familiar with the new Rust CI structure - I think https://github.com/enso-org/enso/blob/b8edf6a3582b35573dbd824ca04d21b39d4be910/build/build/src/aws.rs#L88-L123 may be a starting point but you may need to ask @mwu-tow for more details.

Issues a warning if the user wants to download benchmarks that are expired according to the GH policy.

The default retention policy for all the artifacts is 90 days. Cannot be changed.

If we need to, it is rather straightforward to add a step to the benchmark job that not only uploads the results as a GH artifact, but also as a file to S3 - we already have/had such functionality. On S3 we can store the results indefinitely, if we want to.

Upload to S3 would be very nice, that would solve a lot of problems. Do you know how to do that? Or refer me to the point when we used to do that?

I've been writing this using the Github Actions a long time ago. I think we are still doing this, but I'm less familiar with the new Rust CI structure - I think
https://github.com/enso-org/enso/blob/b8edf6a3582b35573dbd824ca04d21b39d4be910/build/build/src/aws.rs#L88-L123
may be a starting point but you may need to ask @mwu-tow for more details.

Thanks for the comments. I have created https://github.com/enso-org/enso/issues/7669 to track the results uploading. That would make the result processing much simpler.

When I run this script on my Ubuntu 22.04 I get:
$ python --version
Python 3.10.12
$ tools/performance/engine-benchmarks$ ./bench_download.py -s stdlib -b develop
Traceback (most recent call last):
  File "tools/performance/engine-benchmarks/./bench_download.py", line 908, in <module>
    asyncio.run(main())
  File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "tools/performance/engine-benchmarks/./bench_download.py", line 814, in main
    await get_bench_runs(since, until, branch, workflow_id)
  File "tools/performance/engine-benchmarks/./bench_download.py", line 429, in get_bench_runs
    async with asyncio.TaskGroup() as task_group:
AttributeError: module 'asyncio' has no attribute 'TaskGroup'

I assume this is caused by the attempt to download the results in parallel that is using "too advanced" features of Python for my Unbuntu 22.04. I'd prefer slower download, but greater portability.

Following patch makes the script work on my Python 3.10.2:
tools/performance/engine-benchmarks$ git diff
diff --git tools/performance/engine-benchmarks/bench_download.py tools/performance/engine-benchmarks/bench_download.py
index 55aa752df8..8ec3fb4d82 100755
--- tools/performance/engine-benchmarks/bench_download.py
+++ tools/performance/engine-benchmarks/bench_download.py
@@ -45,7 +45,6 @@ Dependencies for the script:
         - Used as a template engine for the HTML.
 """

-import asyncio
 import json
 import logging
 import logging.config
@@ -81,7 +80,7 @@ except ModuleNotFoundError as err:
 DATE_FORMAT = "%Y-%m-%d"
 ENGINE_BENCH_WORKFLOW_ID = 29450898
 """
-Workflow ID of engine benchmarks, got via `gh api
+Workflow ID of engine benchmarks, got via `gh api
 '/repos/enso-org/enso/actions/workflows'`.
 The name of the workflow is 'Benchmark Engine'
 """
@@ -92,7 +91,7 @@ since 2023-08-22.
 """
 STDLIBS_BENCH_WORKFLOW_ID = 66661001
 """
-Workflod ID of stdlibs benchmarks, got via `gh api
+Workflod ID of stdlibs benchmarks, got via `gh api
 '/repos/enso-org/enso/actions/workflows'`.
 The name is 'Benchmark Standard Libraries'
 """
@@ -297,7 +296,7 @@ def _read_json(json_file: str) -> Dict[Any, Any]:
         return json.load(f)

-async def _invoke_gh_api(endpoint: str,
+def _invoke_gh_api(endpoint: str,
                    query_params: Dict[str, str] = {},
                    result_as_text: bool = True) -> Union[Dict[str, Any], bytes]:
     query_str_list = [key + "=" + value for key, value in query_params.items()]
@@ -307,21 +306,18 @@ async def _invoke_gh_api(endpoint: str,
         "api",
         f"/repos/enso-org/enso{endpoint}" + ("" if len(query_str) == 0 else "?" + query_str)
     ]
-    logging.info(f"Starting subprocess `{' '.join(cmd)}`")
-    proc = await asyncio.create_subprocess_exec("gh", *cmd[1:],
-                                                stdout=subprocess.PIPE,
-                                                stderr=subprocess.PIPE)
-    out, err = await proc.communicate()
-    logging.info(f"Finished subprocess `{' '.join(cmd)}`")
-    if proc.returncode != 0:
-        print("Command `" + " ".join(cmd) + "` FAILED with errcode " + str(
-            proc.returncode))
-        print(err.decode())
-        exit(proc.returncode)
-    if result_as_text:
-        return json.loads(out.decode())
-    else:
-        return out
+    logging.info(f"Running subprocess `{' '.join(cmd)}`")
+    try:
+        ret = subprocess.run(cmd, check=True, text=result_as_text, capture_output=True)
+        if result_as_text:
+            return json.loads(ret.stdout)
+        else:
+            return ret.stdout
+    except subprocess.CalledProcessError as err:
+        print("Command `" + " ".join(cmd) + "` FAILED with errcode " + str(err.returncode))
+        print(err.stdout)
+        print(err.stderr)
+        exit(err.returncode)

 class Cache:
@@ -393,7 +389,7 @@ class FakeCache:
         return 0

-async def get_bench_runs(since: datetime, until: datetime, branch: str, workflow_id: int) -> List[JobRun]:
+def get_bench_runs(since: datetime, until: datetime, branch: str, workflow_id: int) -> List[JobRun]:
     """
     Fetches the list of all the job runs from the GH API for the specified `branch`.
     """
@@ -407,16 +403,16 @@ async def get_bench_runs(since: datetime, until: datetime, branch: str, workflow
         # Start with 1, just to determine the total count
         "per_page": "1"
     }
-    res = await _invoke_gh_api(f"/actions/workflows/{workflow_id}/runs", query_fields)
+    res = _invoke_gh_api(f"/actions/workflows/{workflow_id}/runs", query_fields)
     total_count = int(res["total_count"])
     per_page = 3
     logging.debug(f"Total count of all runs: {total_count} for workflow ID "
                   f"{workflow_id}. Will process {per_page} runs per page")

-    async def get_and_parse_run(page: int, parsed_bench_runs) -> None:
+    def get_and_parse_run(page: int, parsed_bench_runs) -> None:
         _query_fields = query_fields.copy()
         _query_fields["page"] = str(page)
-        res = await _invoke_gh_api(f"/actions/workflows/{workflow_id}/runs", _query_fields)
+        res = _invoke_gh_api(f"/actions/workflows/{workflow_id}/runs", _query_fields)
         bench_runs_json = res["workflow_runs"]
         _parsed_bench_runs = [_parse_bench_run_from_json(bench_run_json)
                               for bench_run_json in bench_runs_json]
@@ -426,15 +422,13 @@ async def get_bench_runs(since: datetime, until: datetime, branch: str, workflow
     query_fields["per_page"] = str(per_page)
     num_queries = math.ceil(total_count / per_page)
     parsed_bench_runs = []
-    async with asyncio.TaskGroup() as task_group:
-        # Page is indexed from 1
-        for page in range(1, num_queries + 1):
-            task_group.create_task(get_and_parse_run(page, parsed_bench_runs))
+    for page in range(1, num_queries + 1):
+        get_and_parse_run(page, parsed_bench_runs)

     return parsed_bench_runs

-async def get_bench_report(bench_run: JobRun, cache: Cache, temp_dir: str) -> Optional[JobReport]:
+def get_bench_report(bench_run: JobRun, cache: Cache, temp_dir: str) -> Optional[JobReport]:
     """
     Extracts some data from the given bench_run, which was fetched via the GH API,
     optionally getting it from the cache.
@@ -451,7 +445,7 @@ async def get_bench_report(bench_run: JobRun, cache: Cache, temp_dir: str) -> Op
     # There might be multiple artifacts in the artifact list for a benchmark run
     # We are looking for the one named 'Runtime Benchmark Report', which will
     # be downloaded as a ZIP file.
-    obj: Dict[str, Any] = await _invoke_gh_api(f"/actions/runs/{bench_run.id}/artifacts")
+    obj: Dict[str, Any] = _invoke_gh_api(f"/actions/runs/{bench_run.id}/artifacts")
     artifacts = obj["artifacts"]
     assert len(artifacts) == 1, "There should be exactly one artifact for a benchmark run"
     bench_report_artifact = artifacts[0]
@@ -466,7 +460,7 @@ async def get_bench_report(bench_run: JobRun, cache: Cache, temp_dir: str) -> Op
         return None

     # Get contents of the ZIP artifact file
-    artifact_ret = await _invoke_gh_api(f"/actions/artifacts/{artifact_id}/zip", result_as_text=False)
+    artifact_ret = _invoke_gh_api(f"/actions/artifacts/{artifact_id}/zip", result_as_text=False)
     zip_file_name = os.path.join(temp_dir, artifact_id + ".zip")
     logging.debug(f"Writing artifact ZIP content into {zip_file_name}")
     with open(zip_file_name, "wb") as zip_file:
@@ -683,7 +677,7 @@ def ensure_gh_installed() -> None:
         exit(1)

-async def main():
+if __name__ == '__main__':
     default_since: datetime = (datetime.now() - timedelta(days=14))
     default_until: datetime = datetime.now()
     default_cache_dir = path.expanduser("~/.cache/enso_bench_download")
@@ -808,27 +802,20 @@ async def main():
     """ Set of all gathered benchmark labels from all the job reports """
     job_reports_per_branch: Dict[str, List[JobReport]] = {}
     for branch in branches:
-        bench_runs: List[JobRun] = []
         for workflow_id in bench_source.workflow_ids():
-            bench_runs.extend(
-                await get_bench_runs(since, until, branch, workflow_id)
-            )
-        if len(bench_runs) == 0:
-            print(
-                f"No successful benchmarks found within period since {since}"
-                f" until {until} for branch {branch}")
-            exit(1)
+            bench_runs = get_bench_runs(since, until, branch, workflow_id)
+            if len(bench_runs) == 0:
+                print(
+                    f"No successful benchmarks found within period since {since}"
+                    f" until {until} for branch {branch}")
+                exit(1)

         job_reports: List[JobReport] = []

-        async def _process_report(_bench_run):
-            _job_report = await get_bench_report(_bench_run, cache, temp_dir)
-            if _job_report:
-                job_reports.append(_job_report)
-
-        async with asyncio.TaskGroup() as task_group:
-            for bench_run in bench_runs:
-                task_group.create_task(_process_report(bench_run))
+        for bench_run in bench_runs:
+            job_report = get_bench_report(bench_run, cache, temp_dir)
+            if job_report:
+                job_reports.append(job_report)

         logging.debug(f"Got {len(job_reports)} job reports for branch {branch}")
         if len(job_reports) == 0:
@@ -839,13 +826,15 @@ async def main():

         logging.debug("Sorting job_reports by commit date")

-        def _get_timestamp(job_report: JobReport) -> datetime:
+
+        def get_timestamp(job_report: JobReport) -> datetime:
             return datetime.strptime(
                 job_report.bench_run.head_commit.timestamp,
                 GH_DATE_FORMAT
             )

-        job_reports.sort(key=lambda report: _get_timestamp(report))
+
+        job_reports.sort(key=lambda report: get_timestamp(report))

         if create_csv:
             write_bench_reports_to_csv(job_reports, csv_output)
@@ -902,7 +891,3 @@ async def main():
     index_html_abs_path = path.abspath(site_path)
     print(f"The generated HTML is in {index_html_abs_path}")
     print(f"Open file://{index_html_abs_path} in the browser")
-
-
-if __name__ == "__main__":
-    asyncio.run(main())

@JaroslavTulach Fixed with https://github.com/enso-org/enso/pull/7599/commits/8484e6e99ec1cd009a10663d40f51ab2de3682c9 - asyncio.TaskGroup requires Python 3.10+. I replaced it with an explicit list of tasks and tested the script on python:3.7.16 Docker image, it should work on your side.
I don't want to give up on asynchronous fetching, since I have changed the behavior of --use-cache to be false by default on purpose. Furthermore, I experienced some cache inconsistency bugs, and it was difficult to catch them, and with asynchronous fetching, you can generate a website with results from the last 2 months under 20 seconds.


add resourceSet CR for AKS operator

https://github.com/rancher/backup-restore-operator/issues/81

This PR should be good to go now that https://github.com/rancher/backup-restore-operator/pull/80 has been merged.


Jav 88 jaxrs refactoring

this is based on https://github.com/ServiceComb/java-chassis/pull/49, please merge https://github.com/ServiceComb/java-chassis/pull/49 first

Coverage increased (+1.08%) to 83.072% when pulling 9dd5c9b507d52c688720f7dcb7398d4efd866570 on JAV-88_jaxrs_refactoring into<PHONE_NUMBER>6994701a63f6b92c18d3a15ab6a7f2 on master.

Coverage increased (+1.04%) to 83.039% when pulling 71f3ac59e060b9d2754d008152dfeeadad05f50a on JAV-88_jaxrs_refactoring into 908593188e1e0f1438ecc2fc4081bd1d1e52040e on master.


Clean-up XMPP handling code

Some clean-up to the XMPP, adding extra logging in the process. This should improve debuggability of XMPP related issues (as one was recently raised on the chat).

LGTM, thanks for picking up the slack (or in this case the xmpp ;)


Identify potential barcode k-mers

Barcodes should consist of a small set of k-mers with the same length and a very similar position-dependent frequency of occurrence within reads. From the motif enrichment function we will get a list of strings that are considered significantly enriched among the reads. Another function will also implement computing the position-dependent frequency of occurrence of a k-mer in a set of input reads. We will use these two pieces of information, as well as the reads themselves to identify a set of motifs of the same length that together are represented across a minimal fraction of the reads and therefore could represent library barcodes. Inputs:  set of motifs (of potentially different lengths), set of reads. The function will first construct position-dependent frequency distributions. These will be compared pairwise across motifs of the same length. The list of pairwise distances will be traversed from smallest to largest, until a maximum threshold is reached, building sets of k-mers of the same length and with similar position-dependent frequencies. The coverage of reads by each set will be determined. The k for which the coverage satisfies a min threshold is selected. If multiple k's satisfy the condition, the largest one is chosen.

Hello, I would like to work on this issue, if it is possible.
Best,
Elifnaz Celik

Thanks, go ahead!

Hello, I would like to work on this issue with Elifnaz
Ji Hoon

Go ahead, and please try to talk with each other.

It is okay with me, we can work together!

Closing this for now as we chose to implement a brute force algorithm for 3' adapter extraction for the meantime.


MI sample point histogram setting

ENH: Identify histogram min/max for UseSampledPointSet

When UseSampledPointSet is true (i.e. A sparse sampling point set is
explicitly requested), compute the joint histogram range for the fixed
image axis from those explicilty specified points.

If m_UseSampledPointSet is true, then *ONLY* the sparse sampled points
are used for analysis of the metric, and the fixed space intensity range
values will be fixed to those values identified in the sparse sampled
points.  The fixed masked value items are not relevant when the sparse
sampling is set.

The changes look good to me.
To nit pick about style. There has been criticism of using the C++ ternary operator. For this case it may be better, clearer, and shorter to use the std::min and std::max methods.


strconv: implement Errol algorithm to speed float64->decimal conversion

go version devel +15f2d0e Fri May 13 01:19:05 2016 +0000 linux/amd64
func BenchmarkAppendFloatLarge1(b *testing.B) { benchmarkAppendFloat(b,<PHONE_NUMBER>35.321e-320, 'e', -1, 64) }
func BenchmarkAppendFloatLarge2(b *testing.B) { benchmarkAppendFloat(b,<PHONE_NUMBER>35.3213e-320, 'e', -1, 64) }
func BenchmarkAppendFloatLarge3(b *testing.B) { benchmarkAppendFloat(b,<PHONE_NUMBER>35.322e-320, 'e', -1, 64) }

BenchmarkAppendFloatLarge1-48        5000000           276 ns/op
BenchmarkAppendFloatLarge2-48           2000         89589 ns/op
BenchmarkAppendFloatLarge3-48         500000           278 ns/op

320 times slower WAT?1!1
100 microseconds. Does it contact FFS (Float-Formatting Service)?

This is a corner-case of a corner-case - extremely unlikely to matter in real-world apps. We have large-exponent values (unlikely), and for the BenchmarkAppendFloatLarge2-48 we have a slow-path:
In genericFtoa, we end up calling bigFtoa which uses slow bignum arithmetic. In bigFtoa, the call to roundShortest fails to return quickly, and it proceeds doing the slow (but precise) binary-to-decimal mantissa conversion (ftoa.go:257ff).
Probably not worth spending much time on fixing this.

Also, strconv.AppendFloat(dst[:0],<PHONE_NUMBER>35.3213e-320, 'f', -1, 64) outputs just zeros, but still takes 100+ microseconds.

cc: @agl for input re: uses of float formatting for DoS attacks. I suspect this might not be unique to Go, and if so, what do other systems do?

It's an interesting algorithmic complexity attack. (There have been similar issues in the past.)
It's a bit of a sharp edge, but some values will probably always take a little longer to format. We could put effort into optimising this, but it probably makes the code complex in an already complex area. Perhaps it's worth a comment, but I'm not sure about more than that.

How many of these corner case numbers exist? If their number is small, maybe a static lookup table could work....

@nightlyone Hard to say without very careful (and difficult!) mathematical analysis.

Well, the fact that Dmitry found one (in a space of 2**64 elements) by fuzzing (I believe?) suggests that the number of slow values is probably not that small.

Basically all floating point printing algorithms use a fast path for most numbers and fall back to a slow path. Go's fast path is the Grisu3 algorithm, which fails for 0.5% of inputs. The fallback is to some slow decimal code that I wrote a long time ago. In practice this is fine. Grisu3 was basically state of the art when it was added here, I believe by @remyoudompheng .
Very recently a new paper came out that gets the fast path down to "all but 45 float64 values", which you can then handle with a table. See Andrysco, Jhala, and Lerner,
"[Printing Floating-Point Numbers: A Faster, Always Correct Method]"(https://cseweb.ucsd.edu/~lerner/papers/fp-printing-popl16.pdf), POPL 2016.
If someone wants to implement that, great, but I don't think it's a particularly high priority.

@rsc it seems that by the authors' own benchmarks, Errol is 2.4x slower than Grisu3. Does that seem like a reasonable tradeoff for strconv? (I ask because I'm thinking of working on this but I anticipate pushback if the change makes the 95.5% case more than twice as slow. Another alternative would be to use Errol as the Grisu3 fallback but that seems like a lot of code for printing floats.)

FWIW I have a one-line change that makes the slow path about 30% faster on Dmitry's number:
name                      old time/op  new time/op  delta
AppendFloat/Slowpath64-4  68.2µs ± 0%  49.2µs ± 0%  -27.88%  (p=0.000 n=16+13)

It doesn't fix the problem but it's better than nothing I guess:
https://go-review.googlesource.com/#/c/30099

@cespare Having good performance for the majority of cases can be critical for some users. In my applications I would not withstand a 2.4x slowdown (however using Go's code generation the ratio could turn out to be different). If I understand correctly Errol can remove the need for big number arithmetic entirely, so it could be a fallback to Grisu3 without so much code size inflation, and it would be quite useful because if 1 number out of 200 is 300 times slower to process, the impact is far from negligible.

@remyoudompheng Errol does not eliminate the need for big number arithmetic entirely.  For floating point numbers in the range [2^54, 2^131) it falls back to exact integer arithmetic.  The algorithm is actually basically the same as previous conversion algorithms except outside that range it uses double-double (2x float64) to calculate.  The double-double has enough precision except for a few enumerated cases that are looked up in a table.  The compute_digits algorithm in the paper for the shortest output produces the largest correctly rounded decimal in the rounding range, so that would need to be modified to produce the closest correctly rounded decimal.  Also, note that the paper does not contain any error analysis for float32.  I think these issues might indicate that Errol is not ready for inclusion in the standard library.
Figure 13(c) in the paper shows the fall back performance they are benchmarking Errol against and it shows ~ linear dependence on the floating point exponent.  Benchmarking the Go fall back, which I think is using the same Dragon4 algorithm, shows ~ quadratic dependence on the exponent.  So the current slow path should be able to speed up quite a bit.

Ryū: fast float-to-string conversion, presentation, github
Just came out and is simpler and faster than grisu3 (~3x in the paper's benchmarks).  It requires only integer operations, although for float64 it uses 128-bit integers that should be made more efficient by #24813  It also requires a few small lookup tables:
|Type   |  B0|  B1| #Entries| Total Memory|
-------------------------------------------
|Float32|  60|  63|       78|     624 Byte|
|Float64| 124| 124|      617|   9,872 Byte|

Since it is both simpler and faster, I would recommend investigating the ryu algorithm as the replacement for grisu3 instead of errol.

@remyoudompheng and I discussed this and he's going to work on creating the CLs for his implementation in strconv. I may help review the changes. I'm changing the assignment accordingly.

Status update:

I spent some time creating a library of iterators over numbers that are "very hard" to round (https://github.com/remyoudompheng/fptest). That is, numbers that you cannot format by doing simple fixed-precision arithmetic (Grisu3 is 64-bit, Errol is about 104-bit, Ryū is 128-bit). It is an implementation of Farey sequences in Go. It can detect nearly any mistake in rounding or a simple corruption in powers of 10 table (typically not detected by strconv test suite).
I prepared commits nearly ready for submitting CL. I will submit them soon.

ParseFloat : https://github.com/remyoudompheng/go/commit/c228d1c27a8764eea757b25281567ba1933e8a1e
FormatFloat (fixed digits) : https://github.com/remyoudompheng/go/commit/7080c0ca79615c6b0d6f26877ee2ee17d12222d0

Shortest formatting is not yet cleaned up.

Shortest formatting is now included and I added a fix to avoid all long divisions on 32-bit platforms (especially arm where performance was awful). ARM now gets performance gains as well.

Reading @rsc's comment on CL 170078, it looks like these changes were intended to be reviewed early-in-cycle for 1.15. @remyoudompheng is this still the case?


integration with thingsboard CE/PE

Hi
Would you publish a guide on how to integration with Thingsboard CE and PE?
For PE I guess using MQTT Integration and TBMQ Application Client , what about CE?

Hi, @t0mZ4 !
Indeed we will update our guides to show how to integrate the TB CE/PE with TBMQ.
You are correct about the TB PE (you can use DEVICE client as well, it depends on the use case). For instance, the MQTT node can be used in TB CE to publish messages to TBMQ.
Stay tuned for more updates.

hi @aistisdev ,
tb mqtt transport acts like a broker but does not provide the full support of broker functionality. So, by default, you will not be able to subscribe from TB CE to the TBMQ to receive messages. You can do this via integration using TB PE.
It could be as an option to write a custom rule node that could act as integration and would subscribe to specific topic filters.

Closing due to inactivity. Please, reopen with additional comments otherwise.


Changing color prop on svg element doesn't  trigger rerender

Bug
changing color prop on SVG element doesn't trigger a change to inherited colors.
Environment info

React native info output:
React Native Environment Info:
    System:
      OS: macOS 10.14.2
      CPU: (12) x64 Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
      Memory: 129.69 MB / 16.00 GB
      Shell: 5.3 - /bin/zsh
    Binaries:
      Node: 10.15.0 - ~/.nvm/versions/node/v10.15.0/bin/node
      Yarn: 1.13.0 - /usr/local/bin/yarn
      npm: 6.4.1 - ~/.nvm/versions/node/v10.15.0/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
    IDEs:
      Android Studio: 3.3 AI-182.5<IP_ADDRESS>14842
      Xcode: 10.1/10B61 - /usr/bin/xcodebuild
    npmPackages:
      react: 16.8.3 => 16.8.3
      react-native: 0.59.8 => 0.59.8
    npmGlobalPackages:
      react-native-cli: 2.0.1
      react-native-git-upgrade: 0.2.7

Library version: 9.5.1
Steps To Reproduce
Create SVG component with color prop
Have a child in svg using currentColor
Change the color prop

Describe what you expected to happen:

The child color to be updated to the new color

Reproducible sample code
https://snack.expo.io/r1yWWPAA4

I believe I'm having the same issue. I'm using react-native-svg-transformer so am not specifying the svg the same way but I have an svg that uses currentColor. I can change the colour that is ultimately rendered by changing the color style on the svg however if this changes at runtime the svg color does not update.
Did you find any workaround for this? At this stage I'm considering maintaining seperate versions of the svg file in both colors I need and switching between them which will be a PITA but I can't think of anything else.

I have a fix for this, I'll just need to test it first, will probably publish later today.

@njdancer I found a workaround but it is really hacky.
when I detect color prop change I render null instead of the component and then after 20 milliseconds, I rerender the svg with the new color.

Can you test the latest commit in the develop branch?

I was able to validate locally that it fixes the issue

@SergeyPanchenkoWeWork Thats cool. Does that cause a flicker because a single frame renders nothing? I just ended up duplicating the few svg's I needed in multiple colours which gives me a unique component reference for each colour. Because the files are exact duplicates I believe they won't take up extra space in the repo, only the final bundle. Looking forward to a proper fix though.
@msand Thanks for the quick turnaround. Great library! Keep up the great work.

Can confirm this issue. Not that I really need the feature but it drove me crazy not understanding why my storybook color knob didn't work :)
Simple workaround is key={color} to remount the SVG

@slorber That is a very elegant solution. Nice, Thanks.

@slorber This works great until expo update their dependency on react-native-svg. Thanks.


[Typo]: Replace words on the page titled "Your First Component“

Summary
Replacing words on the "Your First Component." page makes the technical document more rigorous
Page
https://react.dev/learn/your-first-component
Details
Reason for Change:
Replacing “lets” with “allows” provides a more formal tone, especially fitting for technical documentation.
Adding a comma in "rich, structured documents" enhances clarity by separating descriptive adjectives.
Screenshot of typo:

I would like to pick this issue

i have already done this issue #7270
---- Replied Message ----
| From | Harshit @.> |
| Date | 11/02/2024 12:17 |
| To | @.> |
| Cc | JZZICK @.>,
Author @.> |
| Subject | Re: [reactjs/react.dev] [Typo]: Replace words on the page titled "Your First Component“ (Issue #7269) |
I would like to pick this issue
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


Or should probably extend Product with Serializable

In 2.12 the standard library's Either and other similar classes now extend Product with Serializable:
https://github.com/scala/scala/pull/4355/files
It would probably be a good idea to apply the same change to Or, so that List(Good(1), Bad(1)) has a clean inferred type of List[Or[Int, Int]].
Useful links:

One of the related scala issues: https://issues.scala-lang.org/browse/SI-9173
Recent scala gitter discussion showing community interest in that change: November 25, 2015 3:09 PM

That's a great idea. Will do it.


Why do we need this library if console.log can also write to stackdriver?

PLEASE READ: If you have a support contract with Google, please create an issue in the support console instead of filing on GitHub. This will ensure a timely response.
Hi,
I am quite confused. I have an application deployed in GKE and i use winston to write to Console. I can get the logs in stackdriver.
So why do I need this library?

You don't need this library if the data console.log is sending is enough for you.
this library helps you send structured data to any log name in stackdriver which you might not get with only standard out. For example sending logs only related to purchasing to a "purchase" log


Cannot find documentation/examples of how to support wildcard subdomains

Below is what i have posted on  stackoverflow regarding this issue...
I have cors setup correctly in an ASP.NET Core web app. Im using the following package...
"Microsoft.AspNet.Cors": "6.0.0-rc1-final"

and here is the startup.cs snippet...
public virtual IServiceProvider ConfigureServices(IServiceCollection services)
{
	services.AddCors
	(
		options =>
		{
			options.AddPolicy
			(
				CORSDefaults.PolicyName,
				builder =>
				{
					//From config...
					var allowedDomains = new []{"http://aaa.somewhere.com","https://aaa.somewhere.com","http://bbb.somewhere.com","https://bbb.somewhere.com"};

					//Load it
					builder
						.WithOrigins(allowedDomains)
						.AllowAnyHeader()
						.AllowAnyMethod()
						.AllowCredentials();
				}
			);
		}
	);
}

This works great except that the list of subdomains to allow is growing fast and I want to allow all subdomains of "somewhere.com". Something like "*.somewhere.com". I cant seem to find any documentation on how to do this in the new ASP.NET Core (MVC6, ASP.NET5, VNext). All the docs/examples I'm finding that demonstrate how to do this are for earlier versions of MVC or WebApi. How can I achieve this in the new stack?

Submitted this pull request on the master branch...
https://github.com/aspnet/CORS/pull/76

/cc @kichalla @blowdart

I don't believe it is supported.

@blowdart - I think the question is should we support it... If I'm missing something can you provide more info?

I saw the PR. It feels wrong from a security perspective, the CORS spec doesn't mention wildcards at all, you ought to list all your domains, especially when you know someone will whitelist azurewebsites.net because they don't understand the risks.
However it does make everything easier, so from a user PoV it's a good thing.
Do rails et al support wildcards?

@blowdart, what if I wanted to provide an api only to azure users? Without this functionality I'm not sure how it could be done without some heavy initialization costs and data availability from Azure.

I have to admit, exposing a service that loosely fills me with a creeping horror, you might as well open to all, but I do take your point.
@rynowak we should support the scenario. Hopefully no-one would do *.com, but at that point you're shooting yourself in the foot I guess.

Given where we are in the product lifecycle I'm putting this on the backlog for now.
I do like this feature but we are working on product stabilization at this time and doing our best to minimize introducing new features.

Understood. I have a workaround in place
http://stackoverflow.com/questions/36877652/configure-cors-to-allow-all-subdomains-using-asp-net-core-asp-net-5-mvc6-vnex/36925805#36925805
that suits my needs so no pressure from me. Thanks for your time.
On Thu, May 5, 2016 at 10:00 AM, Eilon Lipton<EMAIL_ADDRESS>wrote:

Given where we are in the product lifecycle I'm putting this on the
backlog for now.
I do like this feature but we are working on product stabilization at this
time and doing our best to minimize introducing new features.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/aspnet/CORS/issues/75#issuecomment-217210829

@sjdirect thanks for understanding!

Would it be possible to make this more flexible by adding a Func<string, CorsPolicy, boolean> OriginFilter  to the CorsOptions as part of the AddCors extension method. Then in CorsService add
private bool IsOriginAllowed(string origin, CorsPolicy policy)
{
    return !string.IsNullOrWhiteSpace(origin) &&
                (policy.AllowAnyOrigin ||
                 policy.Origins.Contains(origin) ||
                 (_corsOptions.OriginFilter != null && _corsOptions.OriginFilter(origin, policy)));
}

By Then provide a default implementation of the wildcard subdomain origin matcher using code similar to that in @sjdirect's StackOverflow post. As I imagine most people would be looking to use this to add that behaviour. So in that case they could just do this when adding cors:
services.AddCors(options => options.OriginFilter = CorsOptions.SubdomainWildcardFilter);

Happy to put together a PR if this of interest.

Please just take a function, you don't need to worry about "security concerns" let developers to their thing.  Most know what is good and bad, but when they want to do the bad thing anyway, they will find away.  Why not make it straight forward here, wildcards are really common pattern, and if allow all, why not allow some?  I don't thing security even comes into play, if it did, we should probably remove the AllowAllOrigns from the library as well.

Agree with @mharthoorn in #89 that this should actually be applied on a per policy basis rather than for the entire CorsService

We will consider this for the next version.

We merged https://github.com/aspnet/CORS/pull/94, so closing this.


DOC: Move detailed description to the top of class documentation page

Closes #3666. Build in progress on blaster.
PR Checklist

[x] No API changes were made (or the changes have been approved)
[x] No major design changes were made (or the changes have been approved)
[x] Updated API documentation (or API not changed)

Below is a screenshot of how it looks like with this change. It might have some historic value in the far future. More importantly, if this PR is not merged today, I assume that the docs will be regenerated overnight using the master branch, so this screenshot can be used as a reference "new" style.

Point 1 addressed with force-push.
To test this, I hijacked the usual documentation build process, as no one had a documentation build setup ready. I though that the normal documentation would be built overnight, but I was wrong. The machine which build documentation does a git fetch, but it does not automatically check out master. I did that now, and kicked off a fresh doc build. It should finish in about an hour, and we will be back to the usual process.

You may find this repo and docker images useful:
https://github.com/InsightSoftwareConsortium/ITKDoxygen

For posterity, here is also the old style (before merging this PR):