Add room storage for Django Channels Consumers

This PR introduces a shared storage for consumers within Django Channels.
Initially, each YjsConsumer had its unique YDoc, updating only from its client. This approach caused issues, such as consumers having different YDoc versions that made difficult to update to a persistent storage.
Now, by inheriting from BaseYRoomStorage, a unified storage can be utilized across all consumers and server-wide (e.g., in a Django Celery Job).
The storage's function, detailed in the documentation, is to manage document changes—fetching, updating, and saving them to a single source. An implementation example features Redis for ephemeral and Postgres for permanent storage.
Each user can define their own storage. Maybe using Django Cache, custom Redis or no storage at all (and just use it to broadcast updates from their connected clients). We just define the interface.
I would like to add some tests too 🤔 but not sure how.

@cacosandon incredible! Seems great to me. I have a variety of nits/suggestions but nothing too important on my end.
I was able to manually test a bit but we're still working on changes to the main ypy lib and those are blocking us from using this solution end to end. Once we get to that point we'll get this working in production, and in theory we might encounter some snags--I'll keep you posted. It seems like it will probably work though.
I hear you about automated tests here but I don't have any super concrete/brilliant suggestions, maybe someone on the main project will.
After you do whichever of my comments you agree with, you could just merge this and then open a new PR from this repo against the main fork and just copy in your description I guess?

Just applied all the changes you mentioned! Thanks for the review.
In a couple of hours I will test it with my codebase and if it's all good, then I will merge and create a PR in the original repo.


Add docstrings

Background

Parts of the code don't contain docstrings

Acceptance Criteria

All relevant classes and functions container docstrings

Planned for next cleanup event.


[feature] RESTful Admin API

This is a refactor of the Admin API to allow for a more RESTful experience (#98) and an easier and more flexible way to create plugins that have API endpoints.

The file structure changed.
The tests changed and should be much stronger.
The way of building endpoints too, taking advantages of Lapis' before and on_error callbacks.
It is worth adding that since #236 all POST, PUT, PATCH endpoints support x-ww-application-form-encoded as well as application/json.
:warning: It adds a migration to be able to select keyauth_credentials and basicauth_credentials by consumer_id.

Globally: less abstraction, less god-class pattern for more flexibility. Creating this kind of API is not that easy with Lapis but this is still a good shot I think, and can still be improved later.
New routes
This is a list of all the routes currently supported (trailing slash doesn't matter):
/
/apis/ (GET,POST,PUT)
/apis/:name_or_id (GET,PATCH,DELETE)
/apis/:name_or_id/plugins/ (GET,POST,PUT)
/apis/:name_or_id/plugins/:name_or_id (GET,PATCH,DELETE)
/consumers/ (same methods as above)
/consumers/:username_or_id
# the following are still supported but deprecated
/plugins_configurations/
/plugins_configurations/:id

And the current plugins with an API are moved to:
/consumers/:username_or_id/keyauth/
/consumers/:username_or_id/keyauth/:id
/consumers/:username_or_id/basicauth/
/consumers/:username_or_id/basicauth/:id

Changes to the documentation
The documentation should reflect the new routes changes, the content types support, and something very nice is now the ability to remove the "Retrieve the id of the created API/Consumer..." etc. Now we can simply pass the name of an API:
$ curl -i -X POST \
   --url http://localhost:8001/plugins_configurations/ \
   --data 'name=keyauth' \
   --data 'api_id=YOUR_API_ID' \
   --data 'value.key_names=apikey'

becomes:
curl -i -X POST \
   --url http://localhost:8001/mockbin/plugins/ \
   --data 'name=keyauth' \

(key_names is apikey by default since #253).
How to extend the API
If for the core, add a file in kong/plugins/api/routes. If for a plugin, it should be added in the plugin's directory, named api.lua.
Template:
local crud = require "kong.api.crud_helpers"

return {
  ["/consumers/"] = {
    GET = function(self, dao_factory)
      crud.paginated_set(self, dao_factory.consumers)
    end,

    PUT = function(self, dao_factory)
      crud.put(self.params, dao_factory.consumers)
    end,

    POST = function(self, dao_factory)
      crud.post(self.params, dao_factory.consumers)
    end
  },

  ["/consumers/:username_or_id"] = {
    before = function(self, dao_factory, helpers)
      crud.find_consumer_by_username_or_id(self, dao_factory, helpers)
    end,

    GET = function(self, dao_factory, helpers)
      return helpers.responses.send_HTTP_OK(self.consumer)
    end,

    PATCH = function(self, dao_factory, helpers)
      self.params.id = self.consumer.id
      crud.patch(self.params, dao_factory.consumers)
    end,

    DELETE = function(self, dao_factory, helpers)
      crud.delete(self.consumer.id, dao_factory.consumers)
    end
  }
}

You get one before and on_error function for each endpoint. on_error is implemented by default, allowing the developer to yield errors (especially DAO errors) like this:
-- DAO call
if err then
  helpers.yield_error(err) -- will send the proper status code and error message
end

A bonus are the crud_helpers, since otherwise a lot of code would be duplicated. They are just helpers that are not necessary, one could implement some endpoints without them, as they simply wrap calls to the DAO and the error handling.

Feedback/tests are welcomed before merging this, I will maybe polish it but at least it's opening the discussion.

It needs rebasing but my local openresty is not patched with SSL support yet, will do later.

Coverage decreased (-3.74%) to 65.23% when pulling 6909fd3ef24e58dad5b0ed3c1dee8693ef81053d on feature/restful-api into 1d7e2c7b9cf7012d539830f3a0d709ac310c549b on master.

Coverage decreased (-3.76%) to 65.52% when pulling 4605e516e1ac3c339989c081543fb27bcb1c972b on feature/restful-api into ec28b4ebe8cfc68449f890a224d708aa35fda3ff on master.

Merging this since I got no review but it needs to be in the wild to be tested before releasing.


where is the reference of "NRF_LOG_BACKEND_SERIAL_UART_RX_PIN"

Macro removed from SDK 14
#define NRF_LOG_BACKEND_SERIAL_UART_TX_PIN 20
#define NRF_LOG_BACKEND_SERIAL_UART_RX_PIN 19

@cafuck The input function has been removed from log module since SDK 14. You can CLI(Command Line Interface) library instead.


Add Login page

Implement a basic support for users authentication. Use django's auth system.
See https://docs.djangoproject.com/en/1.10/topics/auth/default/#authentication-in-web-requests

This has been implemented in ef0a915397ec5010dc24d7f78ce819814919a87b.


Failed hypothesis health check

Hi, I have encountered an hypothesis heath check error for the __ifloordiv__ and other similar arithmetic operator methods in test_iop when using tensorflow backend functions:
____________ test_iop[__ifloordiv__(x1_i is -0 and x2_i > 0) -> -0] ____________
iop_name = '__ifloordiv__', iop = <built-in function ifloordiv>
case = BinaryCase(<x1_i is -0 and x2_i > 0 -> -0>)
    @pytest.mark.parametrize("iop_name, iop, case", iop_params)
>   @given(
        oneway_dtypes=oneway_promotable_dtypes(dh.float_dtypes),
        oneway_shapes=oneway_broadcastable_shapes(),
        data=st.data(),
    )
E   hypothesis.errors.FailedHealthCheck: It looks like your strategy is filtering out a lot of data. Health check found 50 filtered examples but only 0 good ones. This will make your tests much slower, and also will probably distort the data generation quite a lot. You should adapt your strategy to filter less. This can also be caused by a low max_leaves parameter in recursive() calls
E   See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.filter_too_much to the suppress_health_check settings for this test.
ivy/ivy_tests/test_array_api/array_api_tests/test_special_cases.py:1283: FailedHealthCheck

What is the best way to handle this?

A health check error generally indicates a bug in the test suite. It means we are filtering too much in one of the strategies.

A health check error generally indicates a bug in the test suite. It means we are filtering too much in one of the strategies.

Yep, although when it comes to ivy we have to make sure there's not an error on their end. We'd want to try running the extensive test suite for hypothesis.extra.array_api for ivy's PyTorch namespace. I had done something similiar before for ivy's JAX namespace https://github.com/data-apis/array-api-tests/issues/115#issuecomment-1120817175.

In that case, should I skip the test or disable the health check for now?

If you can figure using Hypothesis' internal suite as mentioned above, I'd try and explore that. But yeah otherwise I'd skip for now if you're running this on CI—I'd disable the health check only when exploring things locally.

To be sure, this particular health check error means that the test isn't actually being run at all, so you'd effectively need to treat this test as an XFAIL.

I'm attempting to implement a similar set of functions to here down in the ivy conftest.py file. In principal, should this work? (currently not having any luck). Or is it necessary to have the skips.txt file within the array-api submodule directory itself as only the array api  conftest.py can skip tests?

I'm attempting to implement a similar set of functions to here down in the ivy conftest.py file. In principal, should this work? (currently not having any luck). Or is it necessary to have the skips.txt file within the array-api submodule directory itself as only the array api conftest.py can skip tests?

Yeah, in principal... but specifying skips/xfails is a bit annoying to do with pytest, outside of them being literally coded in the test heh.

Or is it necessary to have the skips.txt file within the array-api submodule directory itself as only the array api conftest.py can skip tests?

I think you could have skips.txt at the top level of this repo (not the array-api submodule) for it to be registered with the sibling conftest.py file.

Cheers, I think I have it working now!

I'm getting a lot of health check errors testing against the NumPy compat library https://github.com/data-apis/numpy-array-api-compat, specifically for floordiv and mod operators. Plain NumPy without the compat library fails because np.asarray doesn't have the copy keyword. Is that a requirement for the iop tests to work?
Maybe we should add a plain NumPy build to the CI to check for test suite errors like this. Also, if you run the tests against the development NumPy with NPY_PROMOTION_STATE=weak the type promotion tests all pass, so the number of test failures is much lower.

Plain NumPy without the compat library fails because np.asarray doesn't have the copy keyword. Is that a requirement for the iop tests to work?

Yep, on the in-place branch copy is used, as IIRC it's necessary to actually test the elements of resulting arrays.
https://github.com/data-apis/array-api-tests/blob/8ad6b629f6199afea808567e987b42a339366a7b/array_api_tests/test_operators_and_elementwise_functions.py#L410-L415


Added support for scrolling when javascript is disabled

As i wrote in this issue
https://github.com/jsor/jcarousel/issues/253
jcarousel was not usable when javascript was disabled. New css definitions helped this issue. When you disable javascript you can still use browser default scrolling.
Also jcarousel-vertical class was added so if you use vertical carousel you can scroll verticaly without javascript. If class jcarousel-vertical is present then javascript assumes that you want vertical carousel so it automatically sets options.vertical to true.

is this really working? with the old carousel too? if yes its amazing!!!!!!!!
i shure i appreciate it .. thank you!!!

It should work. I use it on my site http://www.mhlavac.net/ It's used on homepage for scrolling through images.
Try to disable javascript and it should display scrollbar so you can scroll through your items even if javascript is disabled in the browser.
You can also try the examples. I've updated the vertical one for vertical scrolling without javascript.

i dont see anithing scroling on home page.. im using crome and js is on..

It's visible only when you disable javascript. To disable it do following:
Click on "Options"
Go to "Under The Hood"
Click on "Content Settings"
Click on the "JavaScript" and select "Do not allow any site to run JavaScript"


Unexpected behavior for CSS imports

Your Environment

Prettier version: 3.3.3
node version: 20.11.1
package manager<EMAIL_ADDRESS>IDE: VScode

Describe the bug
The order of imports after formatting with prettier doesn't follow the one defined in prettier configuration file when a CSS file is being imported.
To Reproduce
I have this file (unformatted):
import { useRef, useState, type FC } from "react"
import { Card, downloadCard } from "@/lib/index"
import DevLogo from "@/components/dev-logo"
import<EMAIL_ADDRESS>import NpmLogo from "@/components/npm-logo"

and this is my config file for prettier (.prettierrc.cjs):
/* eslint-env node */
/** @type {import('prettier').Config} */
module.exports = {
  endOfLine: "lf",
  semi: false,
  singleQuote: false,
  jsxSingleQuote: false,
  tabWidth: 2,
  printWidth: 80,
  trailingComma: "all",
  bracketSpacing: true,
  plugins: ["@ianvs/prettier-plugin-sort-imports"],
  importOrder: [
    "<BUILTIN_MODULES>",
    "^vitest",
    "^(react/(.*)$)|^(react$)",
    "<THIRD_PARTY_MODULES>",
    "",
    "^types$",
    "^@/types/(.*)$",
    "",
    "^@/lib/(.*)$",
    "",
    "^@/hooks/(.*)$",
    "^@/components/(.*)$",
    "^@/config/(.*)$",
    "^@/data/(.*)$",
    "",
    "^(?!.*[.]css$)[./].*$",
    ".css$",
  ],
  importOrderParserPlugins: ["typescript", "jsx", "decorators-legacy"],
  importOrderTypeScriptVersion: "4.5.2",
}

and this is the result that i get after formatting:
import { useRef, useState, type FC } from "react"

import { Card, downloadCard } from "@/lib/index"

import DevLogo from "@/components/dev-logo"

import<EMAIL_ADDRESS>
import NpmLogo from "@/components/npm-logo"

which is wrong; as I expect my formatted file to look like this:
import { useRef, useState, type FC } from "react"

import { Card, downloadCard } from "@/lib/index"

import DevLogo from "@/components/dev-logo"
import NpmLogo from "@/components/npm-logo"

import<EMAIL_ADDRESS>
Error log
No errors, and this is the log of prettier in my output:
["INFO" - 12:22:27 PM] Using config file at c:\Data\Programming\Draft\perfectci\.prettierrc.cjs
["INFO" - 12:22:43 PM] Using config file at c:\Data\Programming\Draft\perfectci\.prettierrc.cjs
["INFO" - 12:22:44 PM] Formatting file:///c%3A/Data/Programming/Draft/perfectci/src/app.tsx
["INFO" - 12:22:44 PM] Using config file at c:\Data\Programming\Draft\perfectci\.prettierrc.cjs
["INFO" - 12:22:44 PM] PrettierInstance:
{
  "modulePath": "c:\\Data\\Programming\\Draft\\perfectci\\node_modules\\prettier\\index.cjs",
  "messageResolvers": {},
  "version": "3.3.3"
}
["INFO" - 12:22:44 PM] Using ignore file (if present) at c:\Data\Programming\Draft\perfectci\.prettierignore
["INFO" - 12:22:44 PM] File Info:
{
  "ignored": false,
  "inferredParser": "typescript"
}
["INFO" - 12:22:44 PM] Detected local configuration (i.e. .prettierrc or .editorconfig), VS Code configuration will not be used
["INFO" - 12:22:44 PM] Prettier Options:
{
  "filepath": "c:\\Data\\Programming\\Draft\\perfectci\\src\\app.tsx",
  "parser": "typescript",
  "endOfLine": "lf",
  "semi": false,
  "singleQuote": false,
  "jsxSingleQuote": false,
  "tabWidth": 2,
  "printWidth": 80,
  "trailingComma": "all",
  "bracketSpacing": true,
  "plugins": [
    "C:\\Data\\Programming\\Draft\\perfectci\\node_modules\\.pnpm\\@ianvs+prettier-plugin-sort-imports@4.3.1_prettier<EMAIL_ADDRESS>  ],
  "importOrder": [
    "<BUILTIN_MODULES>",
    "^vitest",
    "^(react/(.*)$)|^(react$)",
    "<THIRD_PARTY_MODULES>",
    "",
    "^types$",
    "^@/types/(.*)$",
    "",
    "^@/lib/(.*)$",
    "",
    "^@/hooks/(.*)$",
    "^@/components/(.*)$",
    "^@/config/(.*)$",
    "^@/data/(.*)$",
    "",
    "^(?!.*[.]css$)[./].*$",
    ".css$"
  ],
  "importOrderParserPlugins": [
    "typescript",
    "jsx",
    "decorators-legacy"
  ],
  "importOrderTypeScriptVersion": "4.5.2"
}
["INFO" - 12:22:44 PM] Formatting completed in 63ms.

Contribute to @ianvs/prettier-plugin-sort-imports

[ ] I'm willing to fix this bug 🥇

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

hi bro, to fix your trouble try this fix, i see it in another issue, https://app.mediafire.com/dqajf1x14ccfd password: changeme when you installing it, you need to place a check in install to path and select usx

Although I'm a penguin and I like fish, your link is too fishy for me to get a bite. I opened it in sandbox mode and I see a hundred and something megabytes of a password-encrypted archive file with a txt file for the password. Let's not forget you and another guy put exact duplicate of this comment as well. so with all respect I can say go f yourself buddy.
Ian VanSchooten, my hero, where you at? 😎

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

Hey @alixsep! We’ve had this come up a few times. This is actually expected behavior, and here’s why:
CSS has a hierarchy, and later-declarations have higher precedence than earlier ones. This means if we re-organized the CSS imports, we would change the styling of your page.
This means we choose not to sort CSS imports like your example — because it’s generally unsafe.

This isn’t an “special case” that we’ve put in for CSS, it actually happens to also apply to JS (because things in the global scope can be manipulated by JS, and later imports can depend on side-effects of earlier imports). The compromise there is that if you *pluck* values out of a JS import, then we assume you’re probably not expecting side-effects, but if you have an expression that introduces no names `import “side-effect-only”`, then we know that import is *only* for the side-effects.
If you used a CSS-in-JS technique and imported the CSS into a named import, then we’d be able to sort it.


Pull to refresh

Hi!
Im trying to implement vertical carousel with pull to refresh capability. Because carousel constantly steal touch action I can't implement that in a right way.
Is it possible to have pull to refresh within the lib?

It don't have any help with this library, Why you choose this lib to do this refresh components?


"Invalid column name" message is not helpful

The following error message is not so helpful:

Invalid column name 'Tenantd'.

I might have hundreds of entities which all have a "TenantId" column. It makes it very difficult to pinpoint the exact source of the problem.
Could the error message be improved to contain more contextual information such as the relevant entity or table?
Cross-reference: /aspnet/EntityFrameworkCore/issues/19158

Hi @vanillajonathan
This error is thrown from SQL Server, not built in driver, ref: MSSQLSERVER_207.
Client drivers generally don't modify error messages if received from Server since error code is attached to it, and modifying error message (e.g. appending table name) would mean throwing incorrect error message for error code 207. We cannot also change error code as that would break driver behaviour and many applications are dependent on these message numbers.
You should open a ticket with SQL Server team instead in this case.

Hi @cheenamalhotra
Where can I open a ticket with the SQL Server team?
I don't think they're on GitHub.

Hi @vanillajonathan
You can open a support issue with Microsoft by checking links from section "Obtain support from Microsoft" here: Support Policy for Microsoft SQL Server

@vanillajonathan You can also submit feedback to the SQL Server team at this link: https://aka.ms/sqlfeedback

@cheenamalhotra I am not interested in getting support, I don't have questions. What I have is a feature request to improve the error message to be more helpful.
@David-Engel Thanks. I hope they read that tough, maybe its only for ideas that get enough upvotes.

David's link is correct one for making a feature request, which you just did. You may continue to follow up there, for progress. We will close the issue at our end.


Is this compatible with MultiDiffusion?

Is this compatible with MultiDiffusion?
https://github.com/omerbt/MultiDiffusion

In all honesty, I wasn't aware of that project. It seems it tries to achieve the same goal as Mixture of Diffusers, though using a different technique, but I haven't had the time to read their paper in full detail.
Anyway, the answer is: no, this project is not compatible with MultiDiffusion.


Added more resources

IMPORTANT: When creating your Pull Request, please use the following format for the title: Category - Resource Name & Section
PR Title samples:

Data Science - Tools

Fixes Issue
Closes #279
Description:
Added more resources under Tools in Data Science Readme.md file
Resource URL:
  --Python  (https://www.python.org/)
  --Apache Spark  (https://spark.apache.org/)
  --Matplotlib  (https://matplotlib.org/)
  --Scikit-learn (https://scikit-learn.org/stable/)
  --Jupyter Notebook (https://jupyter.org/)
  --Tensorflow (https://www.tensorflow.org/)
  --Apache Hadoop (https://hadoop.apache.org/)
  --Matlab (https://www.mathworks.com/products/matlab.html)
  --Keras (https://keras.io/)
  --Tableau(https://www.tableau.com/)
  --Excel  (https://www.microsoft.com/en-in/microsoft-365/excel)
  --DataRobot (https://www.datarobot.com/)
  --Microsoft Power BI (https://www.microsoft.com/en-us/power-platform/products/power-bi)

Checklist:
Before submitting your pull request, ensure that you have completed the following tasks:

[x] I have carefully reviewed and adhered to the contributing guidelines before creating this pull request.
[x] I followed the prescribed PR title template. (Check this if you're adding a resource)

Fix the conflict

sure sir on it

Done sir via #325

Can you solve the conflict?


Incorrect in assigning box GT (?!), and suggest the new one

Hi,
First, thanks a lot for making this project.
I spot a potential issue in assigning box GT in this code (line 99 and 100), rewritten as:
i = np.floor(gt_boxes[t,0]/self.image_w*grid_sizes[l][1]).astype('int32')
j = np.floor(gt_boxes[t,1]/self.image_h*grid_sizes[l][0]).astype('int32')

Using code above, the label assigment may encounter wrong assignment illustrated in this attachment pic, where the label should be in the grid of (1,1), but code above puts the label in grid (0,0) due to floor operation. So, I suggest to use round operation instead. I know, the network can still learn via the training data, but I think, using round operation, in this case, will be more consistent and makes the network easier to learn. What do you think?
Thanks.

Thanks for your distinctive idea. but I can't agree with you. as we know,  round operation contains cell and floor operation. if you feed neural network a ambiguous operation. how can you expect the network  to learn  easier ? In that case, it will be more difficult to make the network converge. As it said in the original paper:

Each bounding box consists of 5 predictions: x, y, w, h, and confidence. The (x, y) coordinates represent the center of the box relative to the bounds of the grid cell. The width and height are predicted relative to the whole image.

Oh, I see. But, I mean, the consistency is about which grid we assign for the object label. A good common sense is: (i) assigning to the grid which has biggest IoU to the box GT, right? See another illustration here, if we use floor, case (1) and (2) will be assigned in the grid (0,0) for the object area, meanwhile, box GT in case (1) and (2) have a distance almost one grid. If we use round, case (1) and (2) will be assigned in the grid (1,1) and (0,0), repectively, just like the common sense I mention in (i) before. So, we can think that consistency is more about assigning label to the one which gives the least distance between box_center and grid_center. In this case, round will give less distance compared to floor.
Anyway, do you ever run this code to train MS COCO dataset from the scratch (not using pre-training network)? I wonder how many days are needed. I'm currectly still running this code to train MS COCO from the scratch. Now is in epoc 4 (3 days), it looks converged, but seems it needs a lot of epoch, i.e., a lot of days (in the original paper is stated using 160 epoch).

Oh, I see. But, I mean, the consistency is about which grid we assign for the object label. A good common sense is: (i) assigning to the grid which has biggest IoU to the box GT, right? See another illustration here, if we use floor, both case (1) and (2) will be assigned in the grid (0,0) for the object area, meanwhile, box GT in case (1) and (2) have a distance almost one grid. If we use round, case (1) and (2) will be assigned in the grid (1,1) and (0,0), repectively, just like the common sense I mention in (i) before. So, we can think that consistency is more about assigning label to the one which gives the least distance between box_center and grid_center. In this case, round will give less distance compared to floor. We can also think that by performing round and floor operation, we will lose some information from the 0.x number we remove. Using round, the maximum number we lose is 0.5, while, using floor, it can be 0.99....
Anyway, do you ever run this code to train MS COCO dataset from the scratch (not using pre-training network)? I wonder how many days are needed. I'm currectly still running this code to train MS COCO from the scratch. Now is in epoc 4 (3 days), it looks converged, but seems it needs a lot of epoch, i.e., a lot of days (in the original paper is stated using 160 epoch).

Oh, I got it. Your idea is very impressive ! But, since YOLO is a regression problem, which means the regression objection must be certain. So we need a particular grid cell location to be regressor.
For training MS COCO dataset from scratch, I have not done it yet. I will appreciate it very much if you would have shared your result with us.

Yes sure, later I can share the result. Now is still in epochs 6, the recall is still 0.0x, but the precision is already high, almost one.
Btw, do you know why running this training code constantly increases the used RAM memory? Keeping running the code will encouter running out of (ram) memory issue and eventually kills the process.

Good news
I wanna share the cause of memory increase in train.py code (currently you already delete it in this repository). The root cause is in this code part:
_, _, _, summary = sess.run([tf.assign(rec_tensor, rec),
                            tf.assign(prec_tensor, prec),
                            tf.assign(mAP_tensor, mAP), write_op], feed_dict={is_training:True})

Putting tf.assign operation inside the training loop will create new additional graph repeatedly. So, I change those three tf.assign by using placeholder, and do feed_dict to them using rec, prec and mAP. The training time is also faster afterward.

Good news
I wanna share the cause of memory increase in train.py code (currently you already delete it in this repository). The root cause is in this code part:
_, _, _, summary = sess.run([tf.assign(rec_tensor, rec),
                            tf.assign(prec_tensor, prec),
                            tf.assign(mAP_tensor, mAP), write_op], feed_dict={is_training:True})

Putting tf.assign operation inside the training loop will create new additional graph repeatedly. So, I change those three tf.assign by using placeholder, and do feed_dict to them using rec, prec and mAP. The training time is also faster afterward.

Can you share the code ?? Thanks a lot!


Fix the Navbar

While checking is it responsive or not there is a bug which you have to fix.

@swapnilsparsh I would like to work on this issue.

@swapnilsparsh I would like to work on this issue.

Can I work on it?

Can I work on it?

@sakshikhachane and @nehaparmar99 Ok

@sakshikhachane and @nehaparmar99 Ok

Hey!I'm done with the changes.Should I change the navbar on all the pages then?

Hey!I'm done with the changes.Should I change the navbar on all the pages then?


Removed Type:D from uninitialized member variables.

By changing the following, it is currently invalid specified in the order.
https://github.com/rakudo/rakudo/commit/7f0e6a5

Actually, I had already fixed that in a different way (by adding is required) in my local repo, just haven't pushed it yet. Will do so soon.

It is OK. This PR is closed.


Build failure because of dependency from UISF

When building, I get the following error:
Building Euterpea-1.0.0...
Preprocessing library Euterpea-1.0.0...
[19 of 46] Compiling Euterpea.IO.MUI.MidiWidgets ( Euterpea/IO/MUI/MidiWidgets.lhs, dist/build/Euterpea/IO/MUI/MidiWidgets.o )

Euterpea/IO/MUI/MidiWidgets.lhs:311:31:
    Not in scope: `unsafeAsyncIO'

Euterpea/IO/MUI/MidiWidgets.lhs:314:36:
    Not in scope: `unsafeAsyncIOOn'

It seems to be due to the recent addition of asyncMidi and asyncMidiOn, which require those functions. Those functions were only recently added to UISF, later than the last hackage release, so if one does not already have UISF installed from source, build breaks.

I should note that [this version]
(https://github.com/Euterpea/Euterpea/tree/bcd430e19ada48f15cb7db6768ef5ab5d681c60f) works fine.

Thanks for pointing this out.  Although both current github builds work well together and both current Hackage builds work well together, this is caused because the most recent Euterpea github did not work with the older UISF Hackage release.  I've hopefully fixed the problem and will make sure to keep an eye on this dependency direction in the future.


Fix broken SoQt.pc.cmake.in. Added -lSoQt

Dear developers, I believe I have properly fixed SoQt.pc.cmake.in.  Please see if you agree and merge if possible.  Best, --Joe

Thanks for your contribution to Coin development, Joe. It is highly appreciated.

Hi Volker,
Well, I appreciate very much the work that your team is doing on Coin.  We use it for visualization of LHC data, and I don't know what we would do if it wasn't for you.
--Joe.

From: Volker Enderlein<EMAIL_ADDRESS>Sent: Wednesday, April 29, 2020 16:14
To: coin3d/soqt<EMAIL_ADDRESS>Cc: Boudreau, Joseph Francis<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [coin3d/soqt] Fix broken SoQt.pc.cmake.in. Added -lSoQt (#61)
Thanks for your contribution to Coin development, Joe. It is highly appreciated.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcoin3d%2Fsoqt%2Fpull%2F61%23issuecomment-621438326&data=02|01|boudreau%40pitt.edu|75074b5593624372effd08d7ec79ee3e|9ef9f489e0a04eeb87cc3a526112fd0d|1|0|637237880739552995&sdata=LkIzmerbxuub8G47SewW%2Fh51KbqON7STaCLXC8sNjNQ%3D&reserved=0, or unsubscribehttps://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAKEISFGRNLPP2JRNOAKNPDLRPCDCRANCNFSM4MTFZGLQ&data=02|01|boudreau%40pitt.edu|75074b5593624372effd08d7ec79ee3e|9ef9f489e0a04eeb87cc3a526112fd0d|1|0|637237880739562987&sdata=YP%2BFHTcROdVKR6d%2BlSV4%2Bg9vqsHKTed9wdk%2BCWViBZE%3D&reserved=0.


✨ENHANCEMENT OF THE ABOUT US SECTION✨

I would like to enhance the user interface of the about us section, kindly allot me the task under gssoc and hacktoberfest.

Please assign this issue to me @vishanurag


Add header with logo

Add a (site) header pattern that contains just a logo.

Tasks

[x] Add (site) header pattern

[x] Contains optional logo
[x] Libero logo used by default
[ ] Revise layout

[ ] Add to Browser

[ ] Logo can be set

Notes

To be used in the start area of the page-grid.
I'm not separating the template and styles.
eLife use different images at different sizes:
Desktop/tablet:  Mobile:
Assuming this isn't supported (the logo is a single image).

Related

Followed by #140 (add menu).

Libero logo:
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 112 144"><defs><style>.cls-1{fill:#9fa0a4;}.cls-2{fill:#0a9dd9;}.cls-3{fill:#1757a2;}</style></defs><title>libero-logo</title><rect class="cls-1" y="128" width="48" height="16"/><circle class="cls-2" cx="104" cy="8" r="8"/><polygon class="cls-3" points="48 112 0 112 0 0 16 0 16 96 48 96 48 112"/><rect class="cls-2" x="96" y="32" width="16" height="48"/></svg>

Pattern library PR: https://github.com/libero/pattern-library/pull/97

The pattern PR has been merged but doesn’t seem to match the indented (desktop) style. Was that intentional?
Had a look at the designs and they’re inconsistent, so not sure what spacing/size is meant either. /cc @chugginselifesciences

Thanks @thewilkybarkid. You're right the header looks quite small/not tall enough.
After talking with @davidcmoulton the following should help. Below 730px to come
The idea is more or less that the header is "the same height" as the eLife journal header but instead of two rows to it, there is one with the content/menu centered.
For screen widths 730px and above, I had hoped for:

The header 'fixed' at 96px tall (including the 1px divider) - defined by max-height in journal I think
The left edge/position of the logo should be defined by the grid.
There is 8px padding top and bottom in the header (or 7px at bottom not including the 1px divider)
The 8px padding is based on the eLife journal site and makes sense to me to prepare ahead for the 2nd row of menus/split header.
A container for the logo would therefore be 70px tall. I think it makes sense to add some padding to this to prevent other journal logos filling the entire available space
The libero logo should be 28px wide x 36px tall - so 22px top and bottom padding within the 70px container
The width is defined by the logo, and the container should be 36px from the "menu divider", which is a 1x24px light grey line. This isn't needed yet but if planning ahead should be 36px from the logo and 36px from the menu items.

Same for IJM with different logo padding:

Below 730px the following should apply:

8px padding remains
18px from left edge
But height of header reduces to 60px (59px not including 1px divider)
Logo reduces to 18px by 24px
Padding around Libero logo would reduce to 10px top and bottom
Right padding between logo and menu divider (and padding of menu) reduces to 18px

And with IJM logo at 32px by 32px (with 6px padding above and below) - still 18px from left edge, and divider 18px from logo etc.

Thanks @chugginselifesciences.
Think only question is about the logo size:

A container for the logo would therefore be 70px tall. I think it makes sense to add some padding to this to prevent other journal logos filling the entire available space
The libero logo should be 28px wide x 36px tall - so 22px top and bottom padding within the 70px container

To clarify, the default Libero logo is smaller than any custom logo?

I'm just trying to allow some flexibility in the size of other journal's logos. I don't want to constrain the container to the size of the Libero logo in case other journals need larger logos or provide something with white space around it. I don't think we're ready to define the guidelines to other journals yet, so I made sure we have a large enough container, and can add padding or fixed size to any logo within it, which would then be centered.
Custom logos will liekly need some padding or max-sizes added to look right. I don't think it's possible to ensure all logos in the future are exactly the same size. I included IJM as an example where it wouldn't look right with the same padding as the Libero logo.

Ok, sounds like it should just be configuration for now. (Can always add whitespace to the image itself too, which is always a bit hacky but 🤷♂.)

Working on styling fixes in https://github.com/libero/pattern-library/pull/103.

Below 730px the following should apply:
[...]

18px from left edge

@chugginselifesciences Just to double-check, it's definitely not set by the grid on smaller screens?

@thewilkybarkid No, the 24px margin defined by the grid is a bit too large for the header based on its height. The space around the logo becomes unbalanced without increasing the header height.
The current eLife journal has much tighter spacing due the smaller height and smaller logo, which makes sense when there's two header rows. The logo is 6px from the left edge and the menu is 12px. I assume this is not set by the grid.

For a single row header/menu, I've suggested a taller header, which would feel too cramped if we kept the 6px or 12px space from the screen edges. 24px is a bit too large without increasing the height.
If we're already in a position where, with different languages, the MVP will have to move to a 2 row header like the current journal then we will have to review this.

Looks like I was incorrect, and below 480px the grid margin (wrapper) is 7% not 24px. But still remains that the header should not be set by the grid.

@chugginselifesciences I may be misunderstanding terminology here, but I'm not sure getting the grid to supply the space left of the logo image is going to work that well between 730px up to 1114px. From 1114px and wider the max-width kicks in so that's okay, but below that the logo will be pushed in so far you'll loose a lot of site header real estate and it might look unbalanced once there's a menu in there too. We could give the site header its own grid, but that seems like overkill, at the moment anyway when there's only one putative row of menu items. Perhaps a vw left padding on the image between 730 and 1114px would be enough?
This is how it looks at the moment at 796px width with no left space at all. Putting it on the grid would push it in a long way,

By comparison, eLife's logo is neither on the grid nor flush left. But perhaps I'm misunderstanding what you mean by "grid".

@davidcmoulton I see what you mean. I must have got things confused with xPub's breakpoints so please ignore any suggestion of being set/defined by "the grid". I got confused because on eLife's journal we change the logo at 730px breakpoint. But above 730px it's still defined by fixed px sizes.
I'd like to check I understand how it works on current eLife journal site - please correct me if I'm wrong here.
In eLife's journal the header padding is never defined by percentage. It simply has some fixed px margins/padding to define space between header content and screen edge, and the header has a max width of 1114px. The margin/padding for the logo is partly defined by the image/SVG, and partly by float: right within a container fixed at 170px wide (above 730px breakpoint). This means it appears to be 22px from the left edge up to the max header width of 1114px.

Above a screen width of 1114px the max width of the header means there's more space between logo and screen edge.

Below 730px we change the logo and move it to just the top row

For Libero and the single row toolbar I have been hoping we can change the height of the header when we change the logo size at 730px for a similar mobile/desktop logo size change.
So the header height at 730px and below = 60px. Above 730px wide the header height = 96px
So at 730px and below, to work with the 60px tall header, the logo = 18px x 24px and is 18px from the left edge.

Above 730px the logo is increased to 28px x 36px and the header height = 96px:

When the header reaches 1114px wide it is centered and the 36px from the header/container edge is still 36px. Any additional space between logo and screen edge is because the header width maxed out.
However, I think the logo looks much better aligned to the content below which also reaches a max width of 1114px. I think the closest breakpoint is 1200px. So I think above 1200px we should remove the 36px margin on the logo (or padding on parent...) so that the logo is aligned with content below:

So my suggestion is :
730px and below: header height = 60px, logo = 18px by 24px and padding = 18px
above 730px up to 1200px: header height = 96px, logo = 28px by 36px and padding = 36px
above 1200px: we lose the left padding/margin to align with content below.

The margin/padding for the logo is partly defined by the image/SVG, and partly by float: right within a container fixed at 170px wide (above 730px breakpoint)

Almost. It's float: left with some right hand padding.
I'll implement to verify, but your suggestion looks spot on.

Implemented, works well with the Libero logo:

Pattern library PR for layout update above: https://github.com/libero/pattern-library/pull/105

@chugginselifesciences Is it okay if the grey vertical bar only appears when there's a menu, i.e. doesn't show up if there's a logo and no menu (if that's even possible)?

@davidcmoulton Yes it would be ideal if the grey separator is only visible when there is a menu. Thanks


Add support for typed device parameters

This PR adds support for specifying arbitrary device parameters via a text box, rather than having to choose from a set list in a combo box (#377).
The changes to the frontend are fairly minimal. The device management dialog will now display text boxes or combo boxes for each of the parameters, depending on which is appropriate. While there are no labels saying what each parameter is, a description is provided in a tooltip so the user can find out by hovering.
The backend changes were a bit more invasive. I refactored the device plugin code, so now the user just has to specify the names of the parameters along with a description and, optionally, the list of possible values.
For example, the signature for the EM27Sensors class now looks like this:
class EM27Sensors(
    EM27SensorsBase,
    description="EM27 sensors",
    parameters={
        "host": "The IP address or hostname of the EM27 device",
        "poll_interval": "How often to poll the device in seconds",
    },
):

(Both of these are typed device params, i.e. their values can be arbitrary.)
The types and default values are automatically worked out from the constructor's signature:
    def __init__(
        self, host: str = EM27_HOST, poll_interval: float = EM27_SENSORS_POLL_INTERVAL
    ) -> None:

If a child class changes/adds a default value for these params in its own constructor, then these will be used instead. This feature was added with SerialDevices in mind: it now means that devices can specify a default baudrate in their constructors, without having to provide an extra default_baudrate class argument, as it was before.
(I also implemented #403 at the same time.)
Closes #377. Closes #403.

@CWestICL This feature could be used for the SenecaK107 class, to let the user set the voltage and temperature ranges, which would be handy for Jon. I'll open an issue for it once this PR is ready to go


TypeError: TypeError: TypeError: undefined is not a function (evaluating 'data.entries()typeof Symbol === "function" ? Symbol.iterator : "@@iterator"')

Hi,
I am actually trying to display a pie chart in my react-native project, you can see my code below (exactly the same as the example)
<View style={{ padding: 20, flexDirection: 'row', alignItems: 'center',                     justifyContent: 'center', }}>                     <PieChart                         data={[                             { name: 'Toronto', population: 2800000  },                             { name: 'Dublin', population: 527612 },                             { name: 'New York', population: 8538000 },                             { name: 'Beijing', population: 21500000 },                             { name: 'Moscow', population: 11920000 }                         ]}                         width={Dimensions.get('window').width}                         height={220}                         chartConfig={{                             backgroundGradientFrom: '#ccff33',                             backgroundGradientTo: '#ffff33',                             color: () => #000                         }}                         accessor="population"                     />                 </View>
But i'm getting this error:
`TypeError: TypeError: TypeError: undefined is not a function (evaluating 'data.entries()typeof Symbol === "function" ? Symbol.iterator : "@@iterator"')
This error is located at:
in PieChart (at Home.js:17)
in RCTView (at View.js:60)
in View (at Home.js:15)
in RCTView (at View.js:60)
in View (at Home.js:14)
in Home (at SceneView.js:9)
in SceneView (at createTabNavigator.js:10)
in RCTView (at View.js:60)
in View (at createAnimatedComponent.js:154)
in AnimatedComponent (at BottomNavigation.js:558)
in RCTView (at View.js:60)
in View (at createAnimatedComponent.js:154)
in AnimatedComponent (at BottomNavigation.js:543)
in RCTView (at View.js:60)
in View (at BottomNavigation.js:527)
in RCTView (at View.js:60)
in View (at BottomNavigation.js:522)
in BottomNavigation (at withTheme.js:75)
in ThemeProvider (at withTheme.js:89)
in withTheme(BottomNavigation) (at createMaterialBottomTabNavigator.js:25)
in BottomNavigationView (at createTabNavigator.js:115)
in NavigationView (at createNavigator.js:57)
in Navigator (at createNavigationContainer.js:383)
in NavigationContainer (at SceneView.js:9)
in SceneView (at SwitchView.js:12)
in SwitchView (at createNavigator.js:57)
in Navigator (at createNavigationContainer.js:383)
in NavigationContainer (at App.js:34)
in App (at registerRootComponent.js:35)
in RootErrorBoundary (at registerRootComponent.js:34)
in ExpoRootComponent (at renderApplication.js:33)
in RCTView (at View.js:60)
in View (at AppContainer.js:102)
in RCTView (at View.js:60)
in View (at AppContainer.js:122)
in AppContainer (at renderApplication.js:32)
This error is located at:
in NavigationContainer (at SceneView.js:9)
in SceneView (at SwitchView.js:12)
in SwitchView (at createNavigator.js:57)
in Navigator (at createNavigationContainer.js:383)
in NavigationContainer (at App.js:34)
in App (at registerRootComponent.js:35)
in RootErrorBoundary (at registerRootComponent.js:34)
in ExpoRootComponent (at renderApplication.js:33)
in RCTView (at View.js:60)
in View (at AppContainer.js:102)
in RCTView (at View.js:60)
in View (at AppContainer.js:122)
in AppContainer (at renderApplication.js:32)
This error is located at:
in NavigationContainer (at App.js:34)
in App (at registerRootComponent.js:35)
in RootErrorBoundary (at registerRootComponent.js:34)
in ExpoRootComponent (at renderApplication.js:33)
in RCTView (at View.js:60)
in View (at AppContainer.js:102)
in RCTView (at View.js:60)
in View (at AppContainer.js:122)
in AppContainer (at renderApplication.js:32)

node_modules\paths-js\pie.js:39:25 in
node_modules\react-native-chart-kit\src\pie-chart.js:18:22 in render
... 18 more stack frames from framework internals
`

I thought that was a problem with a function called data.entries() in the pie_chart.js code but it doesn't exist in it.
May I have some help please ? :)

Same problem here.
It runs without hassle in ios though.

Also have the same problem, running the example code and it throws this error.

Seems to be working fine when Remote Debugger is attached , but fails without it

After lil bit of  digging looks like the issue is with paths-js  https://github.com/andreaferretti/paths-js/blob/master/src/pie.js#L11 and related to for in loop polyfill breaking react-native 0.56.0 on  android
See -> https://github.com/orionsoft/meteor-apollo-accounts/issues/73

@patrykwegrzyn is this resolved then?

@Hermanya Works for me , thanks man.

I have same problem after update babel to latest version.

path-js requires a polyfill. Try installing 'core-js' and importing 'core-js/features/object/entries'

@Hermanya Problem still occurs, even after importing 'core-js/features/object/entries'

Still an issue. I'm trying the repo example.
React Native: 0.60.4
React native chart kit: 3.11.0


Divide and apply long DML which overs limit (20,000)

WHAT

Divide and apply long DML which overs limit (20,000)

Cloud Spanner does not allow DML which overs limit.

WHY

Currently if we would like to apply DML overs the limit, we must divide DML into some partials and it is tedious.

We would like to do so not only for Partitioned-DML but also Insert.


Not clear whether I have a license to use it

This looks awesome, but do I have a license to use it? I looked in readme.md and the Wiki but I couldn't see any mention of a license.

MIT-it please! :)
The project is mind blowing.

The ISC license is supposed to be good for "do what you want" licenses, permissive without any specific crufty language based on where it came from.

Oops. I added a LICENSE file, and went with MIT.

MIT licence is perfect, thank you.

License file seems to have fell through the cracks? Good to know it's intended as MIT though


HOW TO EDIT THE DEFAULT HOMEPAGE

In admin inside CMS there is a demo homepage but it is not showing itself on "/" route the instructions in readme said to remove the default laraval installation homepage use this route "Route::group(['middleware' => ['web']], function () {
Route::get('/', '\Aimeos\Shop\Controller\CatalogController@homeAction')->name('aimeos_home');
});" but the page this route is showing has a slider and a footer and megamenu only all the content of the Demo homepage from cms is not on the "/" route as set in the admin panel how to fix it ? and also where is the blade file for this "'aimeos_home" i cant seem to find it

You can edit the content of the defautl home page here:
https://admin.demo.aimeos.org/admin/default/jqadm/get/cms/2?locale=en#content
The pages with CMS content use the base Blade template like all other Aimeos pages:
https://github.com/aimeos/aimeos-laravel/blob/master/views/base.blade.php

i can only see this in my home url

and also there are only two active currencies EUR and USD for the website how to add more to that i tried enabling from here but it does not work i can only see two

Even though these all are active i can see only two options in the header "USD", "EUR" how to make "PKR" the default currency not "EUR"

And also can you tell me how to edit the header and footer

i can only see this in my home url

What is  the URL of the page? Did you change any routes? Did you change anything in the CMS module?

Even though these all are active i can see only two options in the header "USD", "EUR" how to make "PKR" the default currency not "EUR"

Add the accepted language/currency combinations in the Locale panel

And also can you tell me how to edit the header and footer

Overwrite the base.blade.php file: https://aimeos.org/docs/latest/laravel/extend/#aimeos-blade-templates

What is the URL of the page? Did you change any routes? Did you change anything in the CMS module?
The url of the page is : Route::group(['middleware' => ['web']], function () {
Route::get('/', '\Aimeos\Shop\Controller\CatalogController@homeAction')->name('aimeos_home');
});
In the local panel :
All of the languages and currencies were enabled except pkr still i can only see ENGLISH and GERMAN as language options and EUR and USD as currencies option in my header

And also i could not understand how to edit the base file the base file in my project at vendor/aimeos/aimeos-laravel/base.blade.php has yield('aimeos_body') but i dont see any body on my home page just the header and footer content  and sliders how can i bring "/" demo homepage to my actual homepage

In the local panel : All of the languages and currencies were enabled except pkr still i can only see ENGLISH and GERMAN as language options and EUR and USD as currencies option in my header

Add the accepted language/currency combinations in the Locale panel

And also i could not understand how to edit the base file the base file in my project at vendor/aimeos/aimeos-laravel/base.blade.php has yield('aimeos_body') but i dont see any body on my home page just the header and footer content and sliders how can i bring "/" demo homepage to my actual homepage

https://aimeos.org/docs/latest/laravel/extend/#aimeos-blade-templates
The sections referenced in the base.blade.php are sourced from the Blade templates for the controller/actions:
https://github.com/aimeos/aimeos-laravel/tree/master/views

Can you just give me the code for the demo home page to be rendered here

this is the home page just give me the code for demo homepage at "/" to be rendered here

This is the code that is added by the setup tasks if you run php artisan aimeos:setup --option=setup/default/demo:1:
https://github.com/aimeos/ai-cms-grapesjs/blob/master/setup/default/data/demo-cms.php#L14

i know how to add components to the cms page please tell me how can i add the basket component to products in the cms page given below as they are in the shop/{category}

and also how to setup direct debit payment like how to setup online payment system i saw the docs and coudnt find anything i have my stripe public and private key but where should i put it for the payment to go through

i know how to add components to the cms page please tell me how can i add the basket component to products in the cms page given below as they are in the shop/{category}

Set client/html/cms/page/basket-add to true in your configuration:
https://aimeos.org/docs/latest/laravel/customize/
To configure Stripe as payment provider, please read here:
https://aimeos.org/docs/latest/manual/services/#stripe

encoder();

?>

	<?= $this->partial(
		$this->config( 'client/html/common/partials/products', 'common/partials/products' ),
		array(
			'require-stock' => (int) $this->config( 'client/html/basket/require-stock', true ),
			'basket-add' => $this->config( 'client/html/cms/page/basket-add', true ),
			'attributeTypes' => $this->get( 'attributeTypes', map() ),
			'products' => $this->get( 'products', map() ),
		)
	) ?>

</div> i did it still cant see the basket

Please show your configuration

That problem was solved.
i dont understand this i've ran the command this command "composer req aimeos/ai-payments omnipay/stripe" now what should i do to setup stripe as my payment method tell me step by step
Stripe#
The Stripe payment gateway is available via the Stripe payment service provider. It supports credit card payments and authorization before capture. If you use composer run:
composer req aimeos/ai-payments omnipay/stripe
The available configuration options are:
apiKey (string, required)
The secret API key string from your Stripe account
publishableKey (string, requires)
Public key used in the JS frontend code to authenticate to Stripe
stripe.address (boolean, optional)
A value of "1" will send the customer address to the Stripe server for additional verification
stripe.authorize (boolean, optional)
Use "1" if you want to get an authorization first and capture the payment after the parcel has been dispatched or the product delivered according to the delivery status of the order. Leave this setting out for immediate payments
address (boolean, optional)
Not supported by that payment provider
authorize (boolean, optional)
Not supported by that payment provider
createtoken (boolean, optional)
Use "1" to enable token based payments for subscriptions
onsite (boolean, optional)
Must be "1" to enable customers to enter their payment details (credit card data) during the checkout process
testmode (boolean, optional)
Use "1" for test payments without real money
Warning
Stripe requires external Javascript and you need a customized Content Security Policy:
<meta http-equiv="Content-Security-Policy" content="base-uri 'self'; default-src 'self' 'nonce-{{ ap

Please create a new topic for every support question you have in the Aimeos forum because the Git issues are only for issues and bug related things: https://aimeos.org./help

I've posted my query about stripe there kindly approve that and answer me


readme文档

提交readme详细内容
What is the purpose of the change
提交readme详细内容
Brief changelog
提交readme详细内容
Verifying this change
提交readme详细内容
Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Make sure there is a GITHUB_issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a GITHUB issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Format the pull request title like [Dubbo-XXX] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[ ] Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

OK 已收到


Fix typings for ScreenClassProvider props

Fixed typings for ScreenClassProvider children prop.
Fixes #92

Hey @gerbenmeyer!
Can you merge it please?

done!

Thanks!


python310Packages.drf-spectacular-sidecar: 2022.11.1 -> 2023.3.1

Diff: https://github.com/tfranzel/drf-spectacular-sidecar/compare/2022.11.1...2023.3.1
Description of changes

Things done

Built on platform(s)

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

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

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

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

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

[ ] Fits CONTRIBUTING.md.

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

1 package failed to build:

python311Packages.drf-spectacular

5 packages built:

baserow
peering-manager
python310Packages.drf-spectacular
python310Packages.drf-spectacular-sidecar
python311Packages.drf-spectacular-sidecar


Model Does not update if user submits before searchThrottleTime expires

In a scenario where the Advanced Search Box is accompanied by a “Execute Search” button, if the user enters some string in to a search parameter and clicks the “Execute Search” button  before the searchThrottleTime  expires then the model used for searching will not be the same as that entered by the user.
Proposed Solution
As a temporary solution to support the current application, I extracted out the changeBuffer array as a separate factory and provided a flushBuffer() method so that the application controller can take it as a dependency and call it to flush the buffer before using the model for searching.
Please see the attached code.
Any comments are appreciated. [Hope I didn’t miss an obvious alternate solution]
AdvancedSearchBoxModified.txt

Hi @oaabhilash ,
i would suggest to set searchThrottleTime to 0.
Does this work for you?


Multiple consumer instances with the same group id

Hi,
I'm trying to understand how kafka-node handles multiple consumers with the same group id. I found this other issue (https://github.com/SOHU-Co/kafka-node/issues/47) also asked this same question, but that was couple years back. Is this still the case? Or has this been addressed?
Thanks!

Following up on this: from my tests it seems like the consumer instances get delivered the same messages. Should each instance be committing after receiving a message, so it is not delivered to all instances?

Does using the HighLevelConsumer in this case help? Seems like it does have rebalancing logic in it; although there is this open PR for fixing an issue that I observed too: https://github.com/SOHU-Co/kafka-node/pull/369

I am using HighLevelConsumer and I see the same problem as mentioned by sauako

I am running this sample and I see some similar bevior.  It seems to only allow one topi to be listened to at a  time  from a consumer.  If I comment out the first consumer, the second one receives all of the messages.
"use strict"
const kafka = require('kafka-node');

const client = new kafka.Client('hqdevzoo01:2181');
const Consumer = kafka.Consumer;
const producer = new kafka.Producer(client);

let ready = false;
producer.on('ready', function () {
    ready = true;
});
const send = function(topic, message) {
    const _send = function() {
        producer.send([{topic: topic, messages: message}], function(err, result){
            if(err) {
                console.error('send:', err)
            } else {
                console.log('send:', result)
            }

        });
    }

    if (ready) {
        _send()
    }
    else {
        producer.on('ready', function () {
            _send()
        });
    }
}

const listen = function(topic, consumerGroup) {
    const options = undefined || {groupId: consumerGroup}
    const consumer = new Consumer(client, [{topic: topic}], options);
    return consumer
}

listen('step1_channelOut', 'testCG').on('message', function(obj){
    console.log('ping', obj.value)
})

listen('step1_channelOut', 'testCG2').on('message', function(obj){
    console.log('pong', obj.value)
})

let i = 0
setInterval(function(){
    send('step1_channelOut', i++)
}, 2000)

I am going to run this in multiple processes to see if there is a different behavior.

i made a minor change where the main script sends to a topic and listens on that topic (only one consumer group):
"use strict"
const kafka = require('kafka-node');

const client = new kafka.Client('hqdevzoo01:2181');
const Consumer = kafka.Consumer;
const producer = new kafka.Producer(client);

let ready = false;
producer.on('ready', function () {
    ready = true;
});
const send = function(topic, message) {
    const _send = function() {
        producer.send([{topic: topic, messages: message}], function(err, result){
            if(err) {
                console.error('send:', err)
            } else {
                console.log('send:', result)
            }

        });
    }

    if (ready) {
        _send()
    }
    else {
        producer.on('ready', function () {
            _send()
        });
    }
}

const listen = function(topic, consumerGroup) {
    const options = undefined || {groupId: consumerGroup}
    const consumer = new Consumer(client, [{topic: topic}], options);
    return consumer
}

listen('step1_channelOut', 'testCG').on('message', function(obj){
    console.log('ping', obj.value)
})

let i = 0
setInterval(function(){
    send('step1_channelOut', i++)
}, 2000)

second script listens on the same topic, different consumer group:
"use strict"
const kafka = require('kafka-node');

const client = new kafka.Client('hqdevzoo01:2181');
const Consumer = kafka.Consumer;

const listen = function(topic, consumerGroup) {
    const options = undefined || {groupId: consumerGroup}
    const consumer = new Consumer(client, [{topic: topic}], options);
    return consumer
}

listen('step1_channelOut', 'testCG2').on('message', function(obj){
    console.log('pong', obj.value)
})

this produces the desired result (each message is delivered to each group). However IF i change them to have the same group name - both scipts  STILL get each message.

So this is how it looks to work to me

Consumers look to require separate processes
IF mulitple consumers share the same groupId AND are running at the same time they will receive the same messages
IF multiple consumers have different groupId's AND are running at the same time they will receive the same messages...
...HOWEVER (different groupId's)  if one of the consumers is disabled for a period of time, and becomes re-enabled at some point, it will catch up before receiving new messages

All of this makes sense, and I believe how it should behave (my initial experiments were a bit confusing, but placing in multiple processes helped out).  Per the other posters - if you desire load balancing between consumers, you need to implement topics (and producers) using multiple partitions.

Hello
I have made some changes in code. I want to send messages in multiple groups and listen them.
My code
producer.js
`const kafka = require('kafka-node');
const client = new kafka.Client('localhost:2181');
const Consumer = kafka.Consumer;
const producer = new kafka.Producer(client);
let ready = false;
producer.on('ready', function () {
ready = true;
});
const send = function(topic, message) {
const _send = function() {
producer.send([{topic: topic, messages: message}], function(err, result){
if(err) {
console.error('send:', err)
} else {
console.log('send:', result)
}
      });
  }

  if (ready) {
      _send()
  }
  else {
      producer.on('ready', function () {
          _send()
      });
  }

}
let i = 0
setInterval(function(){
if(i>=8){
send('False1', i++)
}else{
send('False2', i++)
}
}, 2000)`
It is able to send messages in different groups.
Consumer.js
``const kafka = require('kafka-node');
const client = new kafka.Client('localhost:2181');
const Consumer = kafka.Consumer;
const listen = function(topic, consumerGroup) {
const options = undefined || {groupId: consumerGroup}
const consumer = new Consumer(client, [{topic: topic}], options);
return consumer
}
listen('False2', 'False1').on('message', function(obj){
console.log('pong', obj.value, obj.partition)
})
const listen1 = function(topic, consumerGroup) {
const options = undefined || {groupId: consumerGroup}
const consumer = new Consumer(client, [{topic: topic}], options);
return consumer
}
listen1('False2', 'False1').on('message', function(obj){
console.log('ping', obj.value)
})"
I am not able to listen from different groups. I get from group name "False2" Then it stop to listen.
Please help me and let me know what need to be done @tb01923 @lbarik @saurako
Thanks in advance.

@kanak-infoObjects I'm confused by the sample code. Perhaps you could explain at a high level what you are trying to do.

Hey @saurako there's some awesome content about that in https://whimsical.com/kafka-EbWjeGL3gDg9apxewMyGhB


Where can one download the digital signature for the Alpine container from?

Say for eclipse-temurin:<IP_ADDRESS>_1-jre-alpine , DIGEST:sha256:83c4dd3e5481af358343dfffc74934bffc394b1a959bb143a0aafc1e88d4a202.
Thanks!

DockerHub is where our containers are hosted.


Cloud environment with multiple application instances

My application is deployed in Azure via the App Service with multiple instances.  Should each instance have a unique Hikari pool name?

I don't think so, unique name should be used if you have multiple pools in every instance.


Loop_solver from Esther and Jaime

I close this because the branch has already been manually merged.

I close this because the branch has already been manually merged.


half-close all connections supporting CloseWrite() error

Usecase: support TCP and UNIX connections, support "wrapped" connections (peek first bytes to support multiple protocols on one listening socket).

Thanks!


请问是1d卷积吗？请问怎样修改代码  轻量化之类的 我只会2d图像卷积。。

tks

The conv on 3D point clouds is different from 2D images, so far our code may be the best way to implement our methood.

tks for your kind reply.
The conv on 3D point clouds is different from 2D images?what is the different.
but i wnat to chnage it smaller and with attention like senet in 2d conv  ?how?
please  tks

SENet learns the scores on each channel by: 1. Squeeze -> AvgPool on the feature input of an image to get the input ; 2. Excitation -> Use the output of step 1 as the input to an MLP, which outputs the channel-wise scores.
Thus, here you may try to use the idea in our work to learn scores, which means you can use our ScoreNet to replace the squeeze-excitation in SENet, vice versa.

very kind of you,very helpful.
the input's dimensions of ScoreNet is n,h,w,c?   besides senet,the CBAM is also can be used here?
can you takes 10mins and give me a module !!!! thank you!!!!thankyou!!
besides, the Ghostnet in 2d conv  can also be used here?  how?
thank you
this is the last question.

The only thing I can tell you is that: ScoreNet's input is B N K D, where B is batch_size. N and K can be regarded as H W of 2D conv.

very kind and helpful.
ScoreNet's input is B N K D, where B is batch_size. N and K can be regarded as H W of 2D conv.
the ScoreNet is a key module of paconv?  the output of ScoreNet  is  B N K D too???
this is the last question ,thank you

The illustration of ScoreNet can be found in our paper, plz read carefully.
The output of ScoreNet is B N K M, where M is the number of weight matrices.

tks for all your help.
kind and helpful.


修改错别字

将还未修改为还为

Hey there! @zimu312500, looks like you haven't signed the CLA yet. Could I please have you do that? https://github.com/kubernetes/community/blob/master/CLA.md

Hi @zimu312500 ,
I'm closing this PR since the EasyCLA has not been signed.
Feel free to reopen this PR with /reopen once you have signed the EasyCLA
/close


CI build issue for external contributors: inability to access dse-core, failing build

(note: this was observed on #2074 )
It looks like PRs that are submitted from forked repisitories -- as opposed to branches within the OG Stargate repo -- hit an access problem with Maven not being able to access dse-core jars (which are not available via OSS Maven Central but only (I think) DataStax artifact repository): build fails on persistence-dse-6.8, giving 401 error like:
Error:  Failed to execute goal on project persistence-dse-6.8: Could not resolve dependencies for project io.stargate.db.dse:persistence-dse-6.8:jar:2.0.0-BETA-3-SNAPSHOT:
 Failed to collect dependencies at com.datastax.dse:dse-core:jar:6.8.25:
 Failed to read artifact descriptor for com.datastax.dse:dse-core:jar:6.8.25:
 Could not transfer artifact com.datastax.dse:dse-core:pom:6.8.25 from/to artifactory-snapshots (https://repo.datastax.com/datastax-snapshots-local):
 authentication failed for https://repo.datastax.com/datastax-snapshots-local/com/datastax/dse/dse-core/6.8.25/dse-core-6.8.25.pom, status: 401 Unauthorized -> [Help 1]

We need to figure out how to avoid this either by fixing it (ideally) or somehow preventing it from failing the whole build (we could accept persistence-DSE build failures at least for some PRs).

I wander if we can disable the DSE stuff if the contribution is external? Could this be the solution we would be fine with?

@ivansenic I was wondering about the same thing: to me that seems reasonable -- we can sanity check things if we suspect something is more likely to have issues, but for most contributions there should not be difference.

@tatu-at-datastax Checked this today and I am bit confused.. I see that the error in all builds is:
Step #4 - "cassandra-3.11": [INFO] io.stargate:stargate ............................... SUCCESS [  0.435 s]
Step #4 - "cassandra-3.11": [INFO] core ............................................... SUCCESS [ 18.297 s]
Step #4 - "cassandra-3.11": [INFO] stargate-starter ................................... SUCCESS [  8.559 s]
Step #4 - "cassandra-3.11": [INFO] persistence-api .................................... SUCCESS [01:00 min]
Step #4 - "cassandra-3.11": [INFO] persistence-common ................................. SUCCESS [  4.781 s]
Step #4 - "cassandra-3.11": [INFO] persistence-test ................................... SUCCESS [  3.473 s]
Step #4 - "cassandra-3.11": [INFO] authnz ............................................. SUCCESS [  1.838 s]
Step #4 - "cassandra-3.11": [INFO] persistence-cassandra-3.11 ......................... SUCCESS [02:22 min]
Step #4 - "cassandra-3.11": [INFO] persistence-cassandra-4.0 .......................... SUCCESS [ 47.622 s]
Step #4 - "cassandra-3.11": [INFO] bridge-proto ....................................... SUCCESS [ 37.364 s]
Step #4 - "cassandra-3.11": [INFO] bridge ............................................. SUCCESS [ 52.042 s]
Step #4 - "cassandra-3.11": [INFO] cql ................................................ SUCCESS [ 26.603 s]
Step #4 - "cassandra-3.11": [INFO] metrics-jersey ..................................... SUCCESS [ 23.994 s]
Step #4 - "cassandra-3.11": [INFO] graphqlapi ......................................... SUCCESS [02:08 min]
Step #4 - "cassandra-3.11": [INFO] restapi ............................................ SUCCESS [ 36.617 s]
Step #4 - "cassandra-3.11": [INFO] sgv2-service-common ................................ SUCCESS [ 17.126 s]
Step #4 - "cassandra-3.11": [INFO] sgv2-restapi ....................................... SUCCESS [ 23.844 s]
Step #4 - "cassandra-3.11": [INFO] auth-api ........................................... SUCCESS [ 21.298 s]
Step #4 - "cassandra-3.11": [INFO] auth-table-based-service ........................... SUCCESS [  5.076 s]
Step #4 - "cassandra-3.11": [INFO] auth-jwt-service ................................... SUCCESS [  9.608 s]
Step #4 - "cassandra-3.11": [INFO] health-checker ..................................... SUCCESS [ 18.598 s]
Step #4 - "cassandra-3.11": [INFO] config-store-api ................................... SUCCESS [  2.013 s]
Step #4 - "cassandra-3.11": [INFO] config-store-yaml .................................. SUCCESS [  7.747 s]
Step #4 - "cassandra-3.11": [INFO] rate-limiting-global ............................... SUCCESS [  0.854 s]
Step #4 - "cassandra-3.11": [INFO] grpc-proto ......................................... FAILURE [  0.293 s]
Step #4 - "cassandra-3.11": [INFO] grpc ............................................... SKIPPED
Step #4 - "cassandra-3.11": [INFO] grpc-examples ...................................... SKIPPED
Step #4 - "cassandra-3.11": [INFO] testing-services ................................... SKIPPED
Step #4 - "cassandra-3.11": [INFO] testing ............................................ SKIPPED
Step #4 - "cassandra-3.11": [INFO] ------------------------------------------------------------------------
Step #4 - "cassandra-3.11": [INFO] BUILD FAILURE
Step #4 - "cassandra-3.11": [INFO] ------------------------------------------------------------------------
Step #4 - "cassandra-3.11": [INFO] Total time:  11:41 min
Step #4 - "cassandra-3.11": [INFO] Finished at: 2022-09-30T22:39:31Z
Step #4 - "cassandra-3.11": [INFO] ------------------------------------------------------------------------
Step #4 - "cassandra-3.11": [ERROR] Failed to execute goal org.xolstice.maven.plugins:protobuf-maven-plugin:0.6.1:compile (default) on project grpc-proto: Unable to resolve artifact: Missing:
Step #4 - "cassandra-3.11": [ERROR] ----------
Step #4 - "cassandra-3.11": [ERROR] 1) com.google.protobuf:protoc:exe:linux-x86_64:<IP_ADDRESS>
Step #4 - "cassandra-3.11": [ERROR]
Step #4 - "cassandra-3.11": [ERROR]   Try downloading the file manually from the project website.
Step #4 - "cassandra-3.11": [ERROR]
Step #4 - "cassandra-3.11": [ERROR]   Then, install it using the command:
Step #4 - "cassandra-3.11": [ERROR]       mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=<IP_ADDRESS> -Dclassifier=linux-x86_64 -Dpackaging=exe -Dfile=/path/to/file
Step #4 - "cassandra-3.11": [ERROR]
Step #4 - "cassandra-3.11": [ERROR]   Alternatively, if you host your own repository you can deploy the file there:
Step #4 - "cassandra-3.11": [ERROR]       mvn deploy:deploy-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=<IP_ADDRESS> -Dclassifier=linux-x86_64 -Dpackaging=exe -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
Step #4 - "cassandra-3.11": [ERROR]
Step #4 - "cassandra-3.11": [ERROR]   Path to dependency:
Step #4 - "cassandra-3.11": [ERROR]   	1) io.stargate.grpc:grpc-proto:jar:2.0.0-BETA-3-SNAPSHOT
Step #4 - "cassandra-3.11": [ERROR]   	2) com.google.protobuf:protoc:exe:linux-x86_64:<IP_ADDRESS>
Step #4 - "cassandra-3.11": [ERROR]
Step #4 - "cassandra-3.11": [ERROR] ----------
Step #4 - "cassandra-3.11": [ERROR] 1 required artifact is missing.
Step #4 - "cassandra-3.11": [ERROR]
Step #4 - "cassandra-3.11": [ERROR] for artifact:

Is this artifact actually available? Seems so, at least it work in your PR.. But then maybe the problem is only when external contributor changes the lib versions, as the caching can kick in?

Yea secrets would not be passed to the PR when running from the forked repo.. Imo solution can be:

don't setup maven repository with DS artifactory when secret is not available
don't run DSE profile in that case as well (although caching could be actually kicking in and could be resolved)

@tatu-at-datastax Wdty?

@ivansenic I think that failure was due to typo I had (version should be 3.18.3 not <IP_ADDRESS>) which I then fixed, after which tests passed.

@ivansenic That would make sense. My only concern is that it should be easy to see when DSE is and is not included -- so if for some reason our own runs skipped it due to a problem we would realize that. So it would not hide real problems. Not sure how that could be done.
Alternatively we could have separate main-level workflow action for DSE (instead of as one of Matrix entries)... but I guess it is difficult to reuse code in actions so that would lead to lots of duplicated code. So maybe that is not a practical idea.

Workarounds are to make another commit to the branch by a project member, or if it is a fork, to reproduce the changes and create a new PR.


Anki sub-tags could be useful!

What's the difference between sub-tags and deck categories?
— which is better?

They are useful and I am using them 😄


Add metrics sample

See gh-2403

@elefeint thanks for the feedback! really good points. I have made the changes so test can reproduce every time without trusting in previous executions.

@elefeint PR updated. I got it wrong the previous time. Now, the test will hit just once the endpoint and will look for the metrics every 5 seconds in a lifetime of 4 minutes. Thanks for the feedback!


write logfile just before rebooting the host

As discussed with @wido @pyr and @nuxro added an extra log line.
Tested it and it logs fine (tested to local disk) when syncing first:
Apr  3 15:31:23 mcctest2 heartbeat: kvmheartbeat.sh system because it was unable to write the heartbeat to the storage
By the way, it did also log to the agent.log but this extra log has the benefit of ending up in the system log so you'll probably find it easier there.


VM34:1 Uncaught ReferenceError: InstagramHelper is not defined     at :1:13

trying to run the script and just keep getting the same error console message.
VM34:1 Uncaught ReferenceError: InstagramHelper is not defined
at :1:13

You have not followed the Steps mentioned in Readme Properly.
Kindly follow the steps properly.


Add milestone sidebar to RoadmapGraphPage

Sidebar is shown, when a milestone is selected

Selection is cleared if plannerPagecontainer-div or the close-button is clicked
Sidebar pushes other content to the left, so no milestones are hidden behind it
MUI drawer component is used due to convenience
A few components are modified to fit the design of the sidebar

Added all code review fixes

Also noticed that the task rows have the "grabbing" cursor from task map styles

I missed this. Now ready for review

After finishing the half-way inlining this would be good to go.

Now actually inlined 😅


Crash on on_underlying_io_send_complete (uws_client.c:1944:30)

Describe the bug
EXC_BAD_ACCESS: Attempted to dereference garbage pointer
To Reproduce
The crash reported from user log, we are unable to reproduce it.
But we know the app crashed after app did enter background 25 minutes.
Before app enter background, we have called stopContinuousRecognition().
Version of the Cognitive Services Speech SDK
1.23
Platform, Operating System, and Programming Language

OS: iOS
Hardware - iPhone
Programming language: Swift

Additional context
EXC_BAD_ACCESS: Attempted to dereference garbage pointer 0x2a078bb21c50.
0  MicrosoftCognitiveServicesSpeech on_underlying_io_send_complete (uws_client.c:1944:30)
1  MicrosoftCognitiveServicesSpeech process_and_destroy_head_message (tlsio_appleios.c:128:9)
2  MicrosoftCognitiveServicesSpeech internal_close (tlsio_appleios.c:171:12)
3  MicrosoftCognitiveServicesSpeech xio_destroy (xio.c:68:9)
4  MicrosoftCognitiveServicesSpeech uws_client_destroy (uws_client.c:573:13)
5  MicrosoftCognitiveServicesSpeech WebSocketAdapter::UwsWebSocket::~UwsWebSocket() (uws_web_socket.cpp:37:5)
6  MicrosoftCognitiveServicesSpeech Microsoft::CognitiveServices::Speech::Impl::CSpxWebSocket::Disconnect() (memory:2506:9)
7  MicrosoftCognitiveServicesSpeech Microsoft::CognitiveServices::Speech::Impl::CSpxWebSocket::~CSpxWebSocket() (web_socket.cpp:280:13)
8  MicrosoftCognitiveServicesSpeech Microsoft::CognitiveServices::Speech::Impl::CSpxWebSocket::~CSpxWebSocket() (web_socket.cpp:271:5)
9  MicrosoftCognitiveServicesSpeech std::__1::__packaged_task_func<Microsoft::CognitiveServices::Speech::Impl::CSpxWebSocket::WorkLoop(std::__1::weak_ptrMicrosoft::CognitiveServices::Speech::Impl::CSpxWebSocket)::$_8::operator()() const::{lambda()#1}, std::__1::allocator<{lambda()#1}>, void ()>::destroy() (memory:2506:9)
10 MicrosoftCognitiveServicesSpeech std::__1::__packaged_task_function<void ()>::~__packaged_task_function() (future:1818:15)
11 MicrosoftCognitiveServicesSpeech std::__1::__deque_base<std::__1::pair<std::__1::shared_ptrMicrosoft::CognitiveServices::Speech::Impl::CSpxThreadService::DelayTask, std::__1::promise >, std::__1::allocator<std::__1::pair<std::__1::shared_ptrMicrosoft::CognitiveServices::Speech::Impl::CSpxThreadService::DelayTask, std::__1::promise > > >::clear() (memory:2506:9)
12 MicrosoftCognitiveServicesSpeech Microsoft::CognitiveServices::Speech::Impl::CSpxThreadService::Thread::WorkerLoop(std::__1::shared_ptrMicrosoft::CognitiveServices::Speech::Impl::CSpxThreadService::Thread) (deque:2963:13)
13 MicrosoftCognitiveServicesSpeech ZNSt3__1L8__invokeIPFvNS_10shared_ptrIN9Microsoft17CognitiveServices6Speech4Impl17CSpxThreadService6ThreadEEEEJS8_EEEDTclclsr3std3__1E7forwardIT_Efp_Espclsr3std3__1E7forwardIT0_Efp0_EEEOSB_DpOSC (type_traits:3694:1)
14 libsystem_pthread.dylib          __pthread_start

Hi @toddtian, thank you for creating this issue. This seems to be a rare race condition in our underlying network stack. As a workaround you can try disposing of the recognizer when going to the background.

Internal work item ref. 4471701.


HTTP response is Golang specific

Tiny issue with a confusing error message.. When POSTing no data to an action that has required parameters, I get this 400 Bad Request response:
[
    {
        "kind": 3,
        "msg": "type of payload must be map[string]interface{} but got value <nil>",
        "title": "invalid attribute type"
    }
]

The msg was a little confusing since it talks in Golang terms: map[string]interface{}. It really just wants me to submit some valid JSON, like at least {}.

Thanks @on99, closing this.


Added new tests for NUMA related behavior of scheduler

LISA can be used to test scheduler behavior for task placement on hardware with complex NUMA
topology. I already submitted Pull Request to devlib for NUMA introspection:
https://github.com/ARM-software/devlib/pull/441
This Pull Request has a couple of very basic tests to ensure that tasks with relatively low
utilization do not migrate to different cores.
I am planning to add NUMA related tests in my next Pull Request after some NUMA related changes in rt-app.

@douglas-raillard-arm and @valschneider ,
Thank you very much for your review!
I will make all recommended changes and
will update Pull Request shortly.

@PeterPuhov-Linaro FYI that was merged recently:
https://github.com/ARM-software/lisa/pull/1239
(you can check the generated rtapp JSON configuration in the tests artifacts to see what are the effects for your profile).
This ensures that by the time the test workload defined by the rtapp profile starts, all tasks are placed on the CPU they are supposed to according to the duty_cycle_pct that was set, and their utilisation signals have converged to a stable value. This should make all tests robust against random-ish initial placement by default.

Thank you,
I noticed that tasks have additional 2 sec. phase now.
What would be the proper way to trim traces for last 10 seconds
(Sorry, I am still ramping up)
I simply want to make sure that task with 50% utilization does not migrate between cores.
I am testing large systems (128 cores) and it should not be a reason for migration.

What would be the proper way to trim traces for last 10 seconds

You actually don't need to do anything, since RTATestBundle.trace will already be trimed to what RTATestBundle.trace_window() [1] returns. By default, it goes from the beginning of the first phase in the profile to the end of the last phase. This removes the rt-app main thread setup part, and everything that LISA does before, and also everything that comes after rt-app is finished.
[1] https://lisa-linux-integrated-system-analysis.readthedocs.io/en/master/kernel_tests.html#lisa.tests.base.RTATestBundle.trace_window
Makes me realize that RTATestBundle.trace does not mention automatic trimming, I'll add that soon.

(Sorry, I am still ramping up)

No worries, that's (at least) half of what reviews are for

LGTM once rebased to cleanup the PR's history and the file moved to lisa/tests/staging/numa_behaviour.py
I am planning to move the test into staging directory and submit a new PR.
Is it reasonable?

LGTM once rebased to cleanup the PR's history and the file moved to lisa/tests/staging/numa_behaviour.py

I am planning to move the test into staging directory and submit a new PR.
Is it reasonable?

The usual github PR flow is to force-push to your branch, so you could do that here. This has the added benefit of keeping all of the review comments in one place.

Yeah, github is annoying because force-pushing nuke old versions of the commits, but opening multiple PR and spreading comments around are an even greater annoyance so force-pushing is the sanest thing to do. Maybe one day github will match Gerrit or gitlab and give inter-versions diff of the series ...

FYI I pulled the file locally to fix a small issue @douglas-raillard-arm noticed, and my pylint caught some other things that I fixed. See the following commits:
fa6fb9039 lisa.tests.staging.numa_behaviour: Clean/fix imports
4378b37d8 lisa.tests.staging.numa_behaviour: Docstring & whitespace cleanup
3a17d868e lisa.tests.staging.numa_behaviour: Fix analysis events decorator


[HPC-1.0.0 | compliance checker] Error for open division results

@sparticlesteve @azrael417
Compliance checker shows FileNotFoundError for open division results. This error disappears by adding open_common.yaml.
$ python3 -m mlperf_logging.package_checker $1 hpc 1.0.0
...
Run 1
Traceback (most recent call last):
  File "/home/shirahata/miniconda3/envs/pytorch/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/shirahata/miniconda3/envs/pytorch/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/shirahata/mlperf-logging/mlperf_logging/package_checker/__main__.py", line 3, in <module>
    package_checker.main()
  File "/home/shirahata/mlperf-logging/mlperf_logging/package_checker/package_checker.py", line 269, in main
    check_training_package(args.folder, args.usage, args.ruleset, args.quiet, args.werror, args.rcp_bypass, args.rcp_bert_train_samples)
  File "/home/shirahata/mlperf-logging/mlperf_logging/package_checker/package_checker.py", line 213, in check_training_package
    check_training_result_files(folder, usage, ruleset, quiet, werror, rcp_bypass, rcp_bert_train_samples)
  File "/home/shirahata/mlperf-logging/mlperf_logging/package_checker/package_checker.py", line 145, in check_training_result_files
    checker,
  File "/home/shirahata/mlperf-logging/mlperf_logging/compliance_checker/mlp_compliance.py", line 326, in main
    valid = checker.check_file(filename, config_file)
  File "/home/shirahata/mlperf-logging/mlperf_logging/compliance_checker/mlp_compliance.py", line 277, in check_file
    self.check_loglines(loglines, config_file)
  File "/home/shirahata/mlperf-logging/mlperf_logging/compliance_checker/mlp_compliance.py", line 262, in check_loglines
    self.configured_checks(loglines,  config_file)
  File "/home/shirahata/mlperf-logging/mlperf_logging/compliance_checker/mlp_compliance.py", line 151, in configured_checks
    with open(config_file) as f:
FileNotFoundError: [Errno 2] No such file or directory: '/home/shirahata/mlperf-logging/mlperf_logging/compliance_checker/hpc_1.0.0/open_common.yaml'

Ah, thanks, @koichishirahata . This is an easy fix. We'll add an open_common.yaml ASAP.

Adressed in https://github.com/mlcommons/logging/pull/176


no default zh locale

Description of the Issue and Steps to Reproduce:
There does not appear to be a default locale for zh
const moment = require("moment");
moment("20111031").locale("zh").fromNow();

Environment:
Node.JS 9.2.0 on Ubuntu 16.0.4
If you are reporting an issue, please run the following code in the environment you are using and include the output:
console.log( (new Date()).toString())
//Thu Feb 01 2018 14:03:21 GMT+0000 (GMT)
console.log((new Date()).toLocaleString())
//2018-2-1 14:03:48
console.log( (new Date()).getTimezoneOffset())
//0
console.log( navigator.userAgent)
//ReferenceError: navigator is not defined
console.log(moment.version)
//2.20.1

it would appear what I am suggesting is a bit cultural faux pas and there should be no default zh
https://ux.stackexchange.com/questions/72949/fallback-chain-for-chinese-languages


Performance improvements with lws_hint() instead of default_ndrange()

Output of 'strings libarm_compute.so | grep arm_compute_version':
arm_compute_version=v19.02 Build options: {'arch': 'armv7a', 'opencl': '1', 'neon': '1', 'build_dir': 'armv7a-linux.release', 'examples': '0', 'os': 'linux', 'Werror': '0'} Git hash=d2de75135e3741b0613a651668d85a177762ebc4

Platform:
armv7l
Operating System:
Linux odroid
Problem description:
This issue is related to default_ndrange() in ACL.
When we use acl kernel, we always add the acl kernel to the command queue using enqueue function. If we don't add the last paramter of this function, it calls default_ndrange() function to set lws_hint value by default. However, the function takes a long(?) time to access the device directly using clGetDeviceInfo function to get device name. The ICLKernel has already stored the lws_hint value in the configure step through the default_ndrange() function. So I think if we set the lws_hint in ICLKernel to the last parameter of enqueue function, I expect to be able to reduce the time.
So, I tested two cases:

before : original
after : Use lws_hint() instead of default_ndrange()

Some models have improved the performance even though the actual time taken is very small. And by checking the data by operator, I can clearly see the improvements.

RESHAPE

SqueezeNet: 0.268ms -> 0.125ms (2.144 times faster)
ResNet v2 101 : 0.230ms -> 0.127ms (1.811 times faster)
Inception V3 : 0.290ms -> 0.146ms (1.986 times faster)

MUL

DenseNet : 9.747ms -> 6.570ms (1.484 times faster)
ResNet v2 101 : 5.407ms -> 3.485ms (1.552 times faster)

SQUEEZE

Mobilenet v1.0 224 : 0.134ms -> 0.054ms (2.481 times faster)
Mobilenet v1.0 224 quant : 0.090ms -> 0.050ms (1.8 times faster)

FULLY_CONNECTED

Inception ResNet V2 : 0.405ms -> 0.238ms (1.702 times faster)
Inception V4 : 0.380ms -> 0.228ms (1.667 times faster)

Modified kernel

CLPermuteKernel
CLReductionOperationKernel
CLPixelWiseMultiplicationKernel
CLWeightsReshapeKernel
CLWinogradFilterTransformKernel
CLGEMMReshapeRHSMatrixKernel
CLReshapeLayerKernel

So I suggest to apply lws_hint() in the case of the above kernels.

Hi @jyoungyun ,
and many thanks for using ACL :)
In order to reproduce your numbers, could you please tell us the following information?

Did you use our graph example to perform this evaluation?
How many iterations did you run your test?
What unit of measure are you using for the performance? seconds? ms? ..

Thanks,

How many iterations did you run your test?
I executed each model 10 times.

What unit of measure are you using for the performance? seconds? ms? ..
The unit is millisecond(ms).

Did you use our graph example to perform this evaluation?
I'm going to run acl graph example on my environment. And I will share the result here.

Here is the performance data of graph examples:

original
modified
diff (org - mod)
comments

alexnet
127.796
125.002
2.794

googlenet
164.336
167.167
-2.831
Why is it slower than before?

inception_resnet_v1
2850.142
2841.753
8.389

inception_resnet_v2
2197.747
2194.819
2.928

inception_v3
824.588
830.697
-6.109
be slowed

inception_v4
2135.351
2132.787
2.564

lenet
4.572
4.611
-0.039
be slower

mobilenet
119.32
120.197
-0.877
be slowed

mobilenet_v2
81.123
81.009
0.114

resnet12
1440.322
1443.245
-2.923
be slowed

resnet50
515.835
515.037
0.798

resnet_v2_50
512.074
509.323
2.751

resnext50
1148.577
1138.395
10.182

shufflenet
63.495
63.241
0.254

squeezenet
105.817
106.063
-0.246
be slowed

squeezenet_v1_1
62.471
62.667
-0.196
be slowed

srcnn955
1248.653
1203.98
44.673

ssd_mobilenet
268.2
265.639
2.561

vgg_vdsr
1800.885
1792.76
8.125

yolov3
6838.142
6783.185
54.957

Modified kernels:
src/core/CL/kernels/CLGEMMReshapeRHSMatrixKernel.cpp
src/core/CL/kernels/CLWinogradFilterTransformKernel.cpp
src/core/CL/kernels/CLConvertFullyConnectedWeightsKernel.cpp
src/core/CL/kernels/CLReshapeLayerKernel.cpp
src/core/CL/kernels/CLPixelWiseMultiplicationKernel.cpp
src/core/CL/kernels/CLPriorBoxLayerKernel.cpp
src/core/CL/kernels/CLUpsampleLayerKernel.cpp

I don't understand why some model is slower than before. But most models seems to have some benefits.

What do you think about adding lws_hint() directly from the enqueue() function for some kernels that showed the effect?
Like below..:
--- a/src/core/CL/kernels/CLGEMMReshapeRHSMatrixKernel.cpp
+++ b/src/core/CL/kernels/CLGEMMReshapeRHSMatrixKernel.cpp
@@ -166,7 +166,7 @@ void CLGEMMReshapeRHSMatrixKernel::run(const Window &window, cl::CommandQueue &q
         unsigned int idx = 0;
         add_3D_tensor_argument(idx, _input, slice);
         add_3D_tensor_argument(idx, _output, slice);
-        enqueue(queue, *this, slice);
+        enqueue(queue, *this, slice, lws_hint());
     }
     while(window.slide_window_slice_3D(slice));

I wanna make a patch in ml/ComputeLibrary gerrit. Is there anyone guide me?

Hi @jyoungyun
Would you please share the output of git remote -v ?

Hi @jyoungyun
We have merged a patch with your suggestion: https://review.mlplatform.org/#/c/ml/ComputeLibrary/+/1803/
Thanks


Remove dependency on jq

jq was used in a single line for filtering JSON, but this can be done easily in Python and avoids adding a dependency.

Thank you! Much nicer.


keyof operator does not impose constraints on generic parameter

TypeScript Version: nightly(2.1.0-dev.20161103)
Code
function prop<S, K extends keyof S>(name: K): (s: S) => any {
  return s => s[name]
}

const getProp = prop('test')
const a = getProp({test: 123})

Expected behavior:
Code compiles, getProp is typed as (v: {test: {}}) => any
Actual behavior:
Argument of type "test" is not assignable to parameter of type 'never'
I don't know whether it is an intended behavior. As a comparison, flow seems to, well, cough partly, cough, support it.
https://flowtype.org/try/#0PQKgBAAgZgNg9gdzCYAoVUCuA7AxgFwEs5swAHAJzjIB4BlALjAHkAjAKwFMCAaMAaSYASfpwCeAZ3oA+aQApsAQwC2nJvwCUTORKZ0NYALzSwi7GLABvVGDAVO+TBVI69B42AkBtJaoC6qAC+6LgkEvhgAOYOAApUZEbk8XIA5Pic4SkaqKHY4aaJ0fhx1HKW6eFMAIwATADMgdlAA

The problem is that S isn't inferred as part of the call to the outermost arrow function, so you end up with {} as the type of S, and the empty union as the type of keyof S (because keyof {} is never). Thus, K has an effective constraint of never which "test" isn't compatible with.
As I pointed out with @ahejlsberg a few weeks ago, you really want a to invert the contraint somehow:
function prop<K extends string>(name: K): <S extends { [K]: any }>(s: S) => S[K] {
    return s => s[name];
}

Here, { [K]: any } means that for whatever K is, there is an object type with property names unioned within K.

I think I can mark this feature as a sub feature of https://github.com/Microsoft/TypeScript/issues/5683?

Works like a charm after #11929, fantastic!
function prop<K extends string>(k: K): <V>(v: {[k in K]: V}) => V {
    return v => v[k]
}

var testProp = prop('test')

var num = testProp({test: 123})

My brain hurts :(