MTITexturePool size problem

MTITexturePool size problem

(MTIReusableTexture *)newTextureWithDescriptor:(MTITextureDescriptor *)textureDescriptor error:(NSError * __autoreleasing *)error {
[_lock lock];
// size maybe zero？maybe crash？
// size有可能为0值]？可能会引起崩溃？
NSUInteger size = [textureDescriptor heapTextureSizeAndAlignWithDevice:_device].size;

Checklist

[ x] I've read the README
[ x] If possible, I've reproduced the issue using the master branch of this repo
[ x] I've searched for existing GitHub issues

Can you attach a call stack trace of the crash?

Just set the height in the size to 0
把size中的高度设为0就可以了

Just set the height in the size to 0
把size中的高度设为0就可以了

The height value must be greater than or equal to 1. For a 1D texture, the value must be 1.
MetalPetal does not guard against texture size errors.
There's currently no public API to get the device's maximum supported texture size. It is your responsibility to ensure the size / pixel format / buffer alignment of the texture is supported on the platform you'd like to deploy (by looking up the Metal Feature Set Table).

The change of external parameters may lead to the value of 0. You can increase the condition of filtering 1 to avoid crash
外部参数变化可能会导致0值,可以增加过滤1的条件,避免崩溃

I do not want to create a "false trust" that the texture pool could handle invalid texture descriptors. Also not all textures are created with the texture pool.
Maybe a more proper place to check the texture dimension is in MTIImageRenderingContext, we can check the promise.dimension before resolving a promise. This should cover most of the "zero size image" cases if not all.
What do you think?

It's up to you to make the decision. It may be a big change. I accidentally found it when I resized the window on the Mac. It's zero, and then it crashed.
这个决定权在你手中,改动起来可能比较大.我是在mac调整窗口大小偶然发现的,就是为零值情况,然后崩溃.


Fixed setup script

Hey Mike,
I tried to start up Dairybox on my Windows 10 machine and that didn't work. The setup.sh turned out to be the problem. Getting the path in the fashion the old script did it, didn't work, so I replaced them with fixed paths. So now it works, but when I try to display http://<IP_ADDRESS>:8084/ I do get the following:

Not sure what causes that message to be there for over 10 minutes now, but that would be a different problem, I guess.

My apologies. Mainline is broken right now, and may not work on Windows for a while. I'm right in the middle of reworking the toolchain, hence all the commits labeled "broken".
The "Update in progress" message means the code hasn't been compiled yet. If you were on Linux, you might be able to nudge it and make it work like so, but I haven't tested it on another machine yet (literally just got it working last night).
npm install
make

Eventually that'll be hidden from you and done automatically by the VM, but I haven't got that far yet. Still need to finish the SVG pipeline.

Okay, that's alright. I tried that but it didn't work out. I'll just wait until the toolchain is fixed. No hurry!


Add Editor.js plugin

By submitting this pull request, I promise that:

[x] I have read the contribution guidelines thoroughly.
[x] I ensure my submission follows each and every point.

Hey @melishev thanks for the PR, I had some trouble testing this on our latest version (v3.6.6).
Full log (on a fresh project) is below. Steps to reproduce issue:

create a new project: npx create-strapi-app@latest testProject --quickstart --no-run
install plugin: yarn add strapi-plugin-react-editorjs
attempt to start project (including building the admin)
See error.

At this time I can't merge this PR until the issues with the plugin are resolved.
dmehaffy@DM-Desktop-LM:/mnt/storage/Development/testEditorjs$ yarn add strapi-plugin-react-editorjs
yarn add v1.22.10
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
info<EMAIL_ADDRESS>The platform "linux" is incompatible with this module.
info<EMAIL_ADDRESS>is an optional dependency and failed compatibility check. Excluding it from installation.
info<EMAIL_ADDRESS>The platform "linux" is incompatible with this module.
info<EMAIL_ADDRESS>is an optional dependency and failed compatibility check. Excluding it from installation.
[4/5] Linking dependencies...
warning "strapi-admin ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>- 3".
warning "strapi-admin ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>warning "strapi-plugin-users-permissions ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>[5/5] Building fresh packages...

success Saved lockfile.
success Saved 36 new dependencies.
info Direct dependencies
└─<EMAIL_ADDRESS>info All dependencies
├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>└─<EMAIL_ADDRESS>Done in 20.37s.
dmehaffy@DM-Desktop-LM:/mnt/storage/Development/testEditorjs$ yarn develop
yarn run v1.22.10
$ strapi develop
Building your admin UI with development configuration ...

● Webpack █████████████████████████ building (68%) 1485/1523 modules 38 active
 ...ns/strapi-plugin-content-type-builder/admin/src/components/RelationTargetPicker/Wrapp
er.js

Error: Module not found: Error: Can't resolve '../mediaLib/utils' in '/mnt/storage/Development/testEditorjs/.cache/plugins/strapi-plugin-react-editorjs/admin/src/components/editorjs'
    at /mnt/storage/Development/testEditorjs/node_modules/strapi-admin/index.js:71:23
    at finalCallback (/mnt/storage/Development/testEditorjs/node_modules/webpack/lib/Compiler.js:257:39)
    at onCompiled (/mnt/storage/Development/testEditorjs/node_modules/webpack/lib/Compiler.js:265:20)
    at /mnt/storage/Development/testEditorjs/node_modules/webpack/lib/Compiler.js:670:21
    at eval (eval at create (/mnt/storage/Development/testEditorjs/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:28:1)
    at /mnt/storage/Development/testEditorjs/node_modules/webpack/lib/Compilation.js:1173:13
    at /mnt/storage/Development/testEditorjs/node_modules/webpack/lib/Compilation.js:1096:25
    at /mnt/storage/Development/testEditorjs/node_modules/webpack/lib/Compilation.js:1017:13
    at /mnt/storage/Development/testEditorjs/node_modules/neo-async/async.js:2830:7
    at /mnt/storage/Development/testEditorjs/node_modules/neo-async/async.js:2830:7
    at done (/mnt/storage/Development/testEditorjs/node_modules/neo-async/async.js:2863:11)
    at /mnt/storage/Development/testEditorjs/node_modules/neo-async/async.js:2818:7
    at /mnt/storage/Development/testEditorjs/node_modules/webpack/lib/Compilation.js:1017:13
    at /mnt/storage/Development/testEditorjs/node_modules/neo-async/async.js:2830:7
    at /mnt/storage/Development/testEditorjs/node_modules/neo-async/async.js:2830:7
    at done (/mnt/storage/Development/testEditorjs/node_modules/neo-async/async.js:2863:11)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
dmehaffy@DM-Desktop-LM:/mnt/storage/Development/testEditorjs$

Hi, @derrickmehaffy, I just checked your point. I tried to repeat the steps described by you, but I could not stumble upon your mistake. Judging by the logs, I can assume that the problem lies in the name of the folder. I corrected it, please check it. Thanks a lot!


New Opportunity - did you get the notification?

Value: $1,500.00Closes: Monday, April 16, 2018Location: Barriere Some in-person work requiredOpportunity DescriptionasdfAcceptance CriteriaYesHow to ApplyGo to the Opportunity Page, click the Apply button above and submit your proposal by 16:00 PST on Monday, April 16, 2018.We plan to assign this opportunity by Monday, April 16, 2018 with work to start on Monday, April 16, 2018.Proposal Evaluation Criteriaasdf

This was a test


increase chunking size from 1gb to whatever its max is

if you GET back a large file does it reconstruct it in the API

no doesn't reconstruct. files larger than 1gb are chunked in AIPs and DIPs. download through archivematica would stitch it back together? yes, confirmed works https://url-to-archivesdirect/archival-storage/download/aip/uuid/


app()->call() gives an error when calling a static function using (array) parameters

Laravel Version: 6.19.1
PHP Version: 7.4.8

Description:
The release of 6.19.1 introduced a bug.
I got the following error message on all my app->call methods after upgrading from version 6.19.0:
 Illuminate\Contracts\Container\BindingResolutionException  : Unable to resolve dependency [Parameter #0 [ <required> $files ]] in class studioprojectie\prowriterxcore\Http\Services\SymlinkService
Steps To Reproduce:

Create a static class with a public static function using an array parameter.
Call the function from a file that is always loaded like AppServiceProvider
Run a test.

@lethalcreed Provide exact classes and code I can paste into a blank Laravel project to recreate this please.

Sorry ofcourse:

Create a php file called TestService.php on location /app/Http/Services.

Put the following in de TestService.php file:

<?php

namespace App\Http\Services;

class TestService
{
    /**
     * @param array $array
     */
    public static function test(array $array)
    {
        dd($array);
    }
}

Paste this in the AppServiceProvider boot method:
app()->call('App\Http\Services\TestService@test', ['test']);

Visit laravel project in browser

This triggers the Illuminate\Contracts\Container\BindingResolutionException Unable to resolve dependency [Parameter #0 [ <required> array $array ]] in class App\Http\Services\TestService error.

But works well:
app()->call('App\Http\Services\TestService@test', ['array' => ['test']]);

Aha so the key of the parameter array must be the name of the variable in the called function.
It seems like I mis understood the way the app()->call() function works and because of the bug (that's fixed in v6.19.1) it worked for me in the older versions withouth explicitly naming the parameters.
My understanding was that the order of the parameters in the array parsed to the call function would just translate to the order of parameters on the called function and it behaved that way in older versions but this makes sense too.
Thanks for the help!

But you're saying this other code used to work before, say on 6.18.0?

We probably don't want to break code like that.

It did, it even worked in 6.19.0. My test code posted above also runs fine in these older versions.
I already fixed this in all my code but i can imagine there might be some other people scratching there head over this.

Your example doesn't even work for me on v8.5.0 so I don't think this could have ever worked tbh.

That is because this is a laravel v6 issue. I am aware that it doesn't work in v8.

If I test your example in v6.19.0 or any version below I get:
Argument 1 passed to App\TestService::test() must be of the type array, string given, called in /Users/driesvints/Sites/test-laravel6/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php on line 31

But when I test: app()->call('App\Http\Services\TestService@test', [['test']]); it works without the named key. So that part indeed seem to have been changed. We don't document this usage anywhere in the docs however so I'm not sure if we ever supported that.
I'll leave it up to @taylorotwell to decide on it. Thanks.

I would imagine this is probably easy for us to fix so we should probably just correct the call_user_func_array call that was removed? @GrahamCampbell @driesvints

Found the culprit: https://github.com/laravel/framework/pull/34970

Fixed in next patch.

Hey @lethalcreed ... unfortunately we are going to have to revert this behavior. Supporting this causes other (bigger) problems. For now we suggest passing the keys of the argument names in your parameters array.


Storage: Support memory mapped files for uploads

As discussed today, this has more drawbacks then benefits.


VM won't start

Hello, idk why but i have an error when I start the VM on VirtualBox and VmWare Workstation Pro 16
Errors:

Have you tried following the virtualbox directions in https://github.com/OWASP/IoTGoat/wiki/Getting-started? You'll need to check the Enable PAE/NX box.

I find the error since, it was because of Hyper-V


Link aircraft for model and not specific livery

Is your feature request related to a problem? Please describe.
At the moment MobiFlight uses the entore title of the plane for auto switching the aircraft.
Describe the solution you'd like
To save work, it would be nice if MobiFlight would use the aircraft model and not the livery so that we don't have to assign the config for all variants. That is useful especially for simmers who fly the same plane but change the livery.

Cant understand why it should be better/saver to link every livery individually. I think  the mobiflight functions has nothing to do with different liverys, only with different aircrafts. It would be enough if we can edit a .ini file or someting like that to link different airplanes/liverys at once. To link every livery individually is laborious, especally whan you are most time in VR and have to remove the headset and leave VR mode.


⚠ sandbox-api.piste.gouv.fr healthcheck has degraded performance

In 09048cf, sandbox-api.piste.gouv.fr healthcheck (https://sandbox-api.piste.gouv.fr/cassation/judilibre/v1.0/healthcheck) experienced degraded performance:

HTTP code: 200
Response time: 11886 ms

Resolved: sandbox-api.piste.gouv.fr healthcheck performance has improved in d25970f.


Doc: remove the templates for fixing the broken docs.

Codecov Report

Merging #80 (93eceea) into main (333a1cd) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #80   +/-   ##
=======================================
  Coverage   94.64%   94.64%
=======================================
  Files           8        8
  Lines         392      392
=======================================
  Hits          371      371
  Misses         21       21

Impacted Files
Coverage Δ

...ansys/platform/instancemanagement/configuration.py
100.00% <ø> (ø)


sharing schema.json to avoid repeated downloading

Is your feature request related to a problem? Please describe.
it may run out of API request limit to download the schema file
schema.json: 0.00B [00:05, ?B/s]2022-08-31 06:41:00,599 - ERROR - Download failed from https://github.com/Project-MONAI/MONAI-extra-test-data/releases/download/0.8.1/meta_schema_20220324.json to /tmp/tmppgkh7ytr/schema.json.
[2022-08-31T06:41:01.862Z]
[2022-08-31T06:41:01.862Z] Traceback (most recent call last):
[2022-08-31T06:41:01.862Z]   File "/home/jenkins/agent/workspace/MONAI-zoo-premerge/ci/verify_bundle.py", line 175, in <module>
[2022-08-31T06:41:01.862Z]     verify(bundle)
[2022-08-31T06:41:01.862Z]   File "/home/jenkins/agent/workspace/MONAI-zoo-premerge/ci/verify_bundle.py", line 153, in verify
[2022-08-31T06:41:01.862Z]     verify_metadata_format(bundle_path)
[2022-08-31T06:41:01.862Z]   File "/home/jenkins/agent/workspace/MONAI-zoo-premerge/ci/verify_bundle.py", line 87, in verify_metadata_format
[2022-08-31T06:41:01.862Z]     verify_metadata(
[2022-08-31T06:41:01.862Z]   File "/root/.local/share/virtualenvs/MONAI-zoo-premerge-CHR6GQKS/lib/python3.8/site-packages/monai/bundle/scripts.py", line 429, in verify_metadata
[2022-08-31T06:41:01.862Z]     download_url(url=url, filepath=filepath_, hash_val=hash_val_, hash_type=hash_type_, progress=True)
[2022-08-31T06:41:01.862Z]   File "/root/.local/share/virtualenvs/MONAI-zoo-premerge-CHR6GQKS/lib/python3.8/site-packages/monai/apps/utils.py", line 203, in download_url
[2022-08-31T06:41:01.862Z]     _download_with_progress(url, tmp_name, progress=progress)
[2022-08-31T06:41:01.862Z]   File "/root/.local/share/virtualenvs/MONAI-zoo-premerge-CHR6GQKS/lib/python3.8/site-packages/monai/apps/utils.py", line 114, in _download_with_progress
[2022-08-31T06:41:01.862Z]     raise e
[2022-08-31T06:41:01.862Z]   File "/root/.local/share/virtualenvs/MONAI-zoo-premerge-CHR6GQKS/lib/python3.8/site-packages/monai/apps/utils.py", line 107, in _download_with_progress
[2022-08-31T06:41:01.862Z]     urlretrieve(url, filepath, reporthook=t.update_to)
[2022-08-31T06:41:01.862Z]   File "/usr/lib/python3.8/urllib/request.py", line 247, in urlretrieve
[2022-08-31T06:41:01.862Z]     with contextlib.closing(urlopen(url, data)) as fp:
[2022-08-31T06:41:01.862Z]   File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen
[2022-08-31T06:41:01.862Z]     return opener.open(url, data, timeout)
[2022-08-31T06:41:01.862Z]   File "/usr/lib/python3.8/urllib/request.py", line 531, in open
[2022-08-31T06:41:01.862Z]     response = meth(req, response)
[2022-08-31T06:41:01.862Z]   File "/usr/lib/python3.8/urllib/request.py", line 640, in http_response
[2022-08-31T06:41:01.862Z]     response = self.parent.error(
[2022-08-31T06:41:01.862Z]   File "/usr/lib/python3.8/urllib/request.py", line 563, in error
[2022-08-31T06:41:01.862Z]     result = self._call_chain(*args)
[2022-08-31T06:41:01.862Z]   File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
[2022-08-31T06:41:01.862Z]     result = func(*args)
[2022-08-31T06:41:01.862Z]   File "/usr/lib/python3.8/urllib/request.py", line 755, in http_error_302
[2022-08-31T06:41:01.862Z]     return self.parent.open(new, timeout=req.timeout)
[2022-08-31T06:41:01.862Z]   File "/usr/lib/python3.8/urllib/request.py", line 531, in open
[2022-08-31T06:41:01.862Z]     response = meth(req, response)
[2022-08-31T06:41:01.862Z]   File "/usr/lib/python3.8/urllib/request.py", line 640, in http_response
[2022-08-31T06:41:01.862Z]     response = self.parent.error(
[2022-08-31T06:41:01.862Z]   File "/usr/lib/python3.8/urllib/request.py", line 569, in error
[2022-08-31T06:41:01.862Z]     return self._call_chain(*args)
[2022-08-31T06:41:01.862Z]   File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
[2022-08-31T06:41:01.862Z]     result = func(*args)
[2022-08-31T06:41:01.862Z]   File "/usr/lib/python3.8/urllib/request.py", line 649, in http_error_default
[2022-08-31T06:41:01.862Z]     raise HTTPError(req.full_url, code, msg, hdrs, fp)
[2022-08-31T06:41:01.862Z] urllib.error.HTTPError: HTTP Error 503: Egress is over the account limit.
script returned exit code 1

the schema.json could be shared across the model zoo items to avoid repeated downloading https://github.com/Project-MONAI/model-zoo/blob/db6ce75b4df89c76117d2b8eccc94e0495cf24ed/ci/verify_bundle.py#L89

Thanks @wyli , does the error happen when there are multiple bundles are changed in a PR (thus the same schema is downloaded multiple times) ?

@yiheng-wang-nv, I'm not able to always replicate this issue, sometimes it happens

Updates:
I met the same issue when running blossom CI tests for multiple bundles
(https://github.com/Project-MONAI/model-zoo/actions/runs/3209040893/jobs/5245429001#step:2:784)
I will create a PR to fix this issue first.

related topic:
https://github.com/community/community/discussions/8535

This ticket is addressed within #141


WIN10 MAVEN BUILD FAILURE

WIN10
MAVEN: Apache Maven 3.3.9
CMD command :mvn compile project error
why occur this error？
<EMAIL_ADDRESS>chinese

You are running an incompatible version of Java. JHipster supports JDK 8 to 12
as described on your snapshot, plz upgrade your JDK to supported versions


[Bug] [Module Name] jdbc-connnector for clob type

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
I was trying ORACLE synchronization and found that when the CLOB field is too long, beyond the length of VARCHAR2, for example, I have 2W length, when I use upsert mechanism, which is merge into, because I use dual virtual table, when I write parameters, Exceeding the length of varchar2 (e.g. merege into a using (select? id ,?  content from dual)) The content field is not recognized by oracle, and it is only determined by the injected parameters to be char\varchar\clob, etc. If we inject as setString(), oracle will treat content as a varchar, and if the parameter is too long, it will not be injected. I found that this only worked if I called pstmt.setCharacterStream(). So in my class by overriding OracleJdbcRowConverter toExternal, when the length of more than 4000, use the statement. The setCharacterStream which injection parameters
SeaTunnel Version
dev
SeaTunnel Config
{
  "env" : {
    "parallelism" : 1,
    "job.mode" : "BATCH",
  },
  "source" : [
    {
      "result_table_name" : "jdbc_temp_table",
      "url" : "jdbc:oracle:thin:@<IP_ADDRESS>:1521/free",
      "driver" : "oracle.jdbc.driver.OracleDriver",

      "query" : "SELECT ID,CONTENT FROM TABLE1",
      "plugin_name" : "JDBC",
    }
  ],
  "sink" : [
    {
      "url" : "jdbc:oracle:thin:@<IP_ADDRESS>:1521/free",
      "driver" : "oracle.jdbc.driver.OracleDriver",
      "user" : "",
      "password" : "",
      "database_name" : "test_dst",
      "generate_sink_sql" : true,
      "primary_keys" : [
        "ID"
      ],
      "enable_upsert" : true,
      "table" : "TABLE2",
      "database" : "",
      "plugin_name" : "JDBC"
    }
  ]
}

Running Command
local mode

Error Exception
ORA-01461: can bind a LONG value only for insert into a LONG column

Zeta or Flink or Spark Version
zeta
Java or Scala Version
8
Screenshots
No response
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

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

If it is in other databases, such as mysql, it will also give an error if it is more than 6W characters, and it must be injected with the parameter of CLOB. Therefore, other dialects should theoretically rewrite the corresponding method to determine the length of string


[Task]: Update confluent libraries versions from 5.3.2 to more recent in kafka io extension

What needs to happen?
Right now the confluent dependency version is set at 5.3.2, which is quite old (5 years or so) - one feature that we recently discovered is missing in this version is the support for configuring schema registry client's ssl configuration - according to the (current) docs (https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html) there's a whole bunch of configuration keys starting with a "ssl." prefix that dictate how a schema registry client might access the schema registry - the issue is that support for those config keys on the client side had only been added starting from version 5.4.0 IIUC (https://github.com/confluentinc/schema-registry/pull/957). Without it, the ssl has to be configured using standard JVM classes such as SSLContext or HttpsURLConnection, which on top of being slightly unintuitive is also undocumented.
The goal of this task is to update the confluent libraries  to a version as high as possible, hopefully even as high as 7.6.0 (which is the most recent one, from what I gather), and successfully run tests and build the extension.
Issue Priority
Priority: 3 (nice-to-have improvement)
Issue Components

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

.take-issue

will that comment retrigger a workflow?


text-anchor middle not rendering correctly

Description
I have a simple SVG, where the text with text-anchor middle is rendered incorrectly
Example data
<svg xmlns="http://www.w3.org/2000/svg" >
	<rect fill="#0669b2" stroke="none" stroke-width="0" width="120" height="60"  />
	<svg width="120" height="60">
		<text font-size="11pt" fill="white" text-anchor="middle" transform="matrix(1 0 0 1 60 30)" >
			<tspan dy="0.3em">Some text</tspan>
		</text>
	</svg>
</svg>

SVG.Net renders:

but the correct rendering should be:

(don't look at the image paddings they are just screenshots, one from your SVG Viewer the other from a browser).
The point is that, SVG.Net starts the text in the middle position but does not position the the text horizontally centered.
Used Versions
Master

I found, that when I initialize _xAnchor to 0 in the second ctor of TextDrawingState
 public TextDrawingState(TextDrawingState parent, SvgTextBase element)
then my sample renders correctly. Then I tried another sample, which has more nodes and connections inbetween (the samples are from svg rendered by joint.js). And with those I experienced the following strange behavior:
When I format th xml with line breaks and tab-indents, the problem with the text not being aligned to middle occurs again.
However, if i delete all these \r, \n, \t, then the text is aligned correctly, after my change mentioned above.
Also, when I tried to debug the formatted xml, I found that the white chars are meddled somehow with the text-attributes of the tspan elements.
The formatting does not have any effect on the rendering in browsers, so I suspect, there is something wrong with respect to handing of it, in the svg.net code as well.

Thanks for the detailed description!

If you want to look into the problem with the formatted xml:
TestSVG.zip
I have uploaded a zip with the sources for the svg with and without formatting

May also be related to #742.

May also be related to #742.

The fix for the original problem (in the constructor) looks good to me (this was clearly forgotten). The whitespace problem seems to be an independent bug.

The fix for the original problem (in the constructor) looks good to me (this was clearly forgotten). The whitespace problem seems to be an independent bug.

Did you fix it in the master branch?
I tried pushing a new branch with this fix but did not succeed

Did you fix it in the master branch?
I tried pushing a new branch with this fix but did not succeed

Concerning the whitespace problem: I found that it is triggered by the  xml:space="preserve" in the text-element.
But this does not change rendering in browsers, so it should not have any impact in the rendering.

Concerning the whitespace problem: I found that it is triggered by the  xml:space="preserve" in the text-element.
But this does not change rendering in browsers, so it should not have any impact in the rendering.

Did you fix it in the master branch?

No, not yet - can do this later today. Thanks for the investigation!

Did you fix it in the master branch?

No, not yet - can do this later today. Thanks for the investigation!

@Stoffelche - I added a PR, can you please have a look if this is ok for you?

@Stoffelche - I added a PR, can you please have a look if this is ok for you?

The PR is fine.

The PR is fine.

What about the xml:space="preserve" problem?
I tried to find out, what the problem is, but it looks complicated.
I found that text-anchor is applied in FlushPath, but this is only applied to the tspan-element, not to the content-text before and after the tspan. The content in this case are the whitespace chars, which are preserved. I think the text-anchor should be applied to all the content inside the text-element and not only the tspan

What about the xml:space="preserve" problem?
I tried to find out, what the problem is, but it looks complicated.
I found that text-anchor is applied in FlushPath, but this is only applied to the tspan-element, not to the content-text before and after the tspan. The content in this case are the whitespace chars, which are preserved. I think the text-anchor should be applied to all the content inside the text-element and not only the tspan

The problem is demonstrated with the following modified example:

ab
inner
cd

The text "ab inner cd" should be rendered as a whole with text-anchor middle as can be verified in a browser.
But svg.net only shifts the tspan-element somehow to the left, when applying the text-anchor and does not shift the both content-elements, resulting in overlaps of the text.

The problem is demonstrated with the following modified example:

ab
inner
cd

The text "ab inner cd" should be rendered as a whole with text-anchor middle as can be verified in a browser.
But svg.net only shifts the tspan-element somehow to the left, when applying the text-anchor and does not shift the both content-elements, resulting in overlaps of the text.

Thanks for the investigation - I will have a look in the evening, and merge the PR.

Thanks for the investigation - I will have a look in the evening, and merge the PR.

Another sample, which is not correctly rendered:
<svg xmlns="http://www.w3.org/2000/svg" > 	<rect fill="#0669b2" stroke="none" stroke-width="0" width="120" height="60"  /> 	<svg width="120" height="60"> 		<text font-size="11pt" fill="white" text-anchor="middle" transform="matrix(1 0 0 1 60 30)" > 			<tspan>sp1</tspan> 			<tspan>sp2</tspan> 			<tspan>sp3</tspan> 		</text> 	</svg> </svg>

Another sample, which is not correctly rendered:
<svg xmlns="http://www.w3.org/2000/svg" > 	<rect fill="#0669b2" stroke="none" stroke-width="0" width="120" height="60"  /> 	<svg width="120" height="60"> 		<text font-size="11pt" fill="white" text-anchor="middle" transform="matrix(1 0 0 1 60 30)" > 			<tspan>sp1</tspan> 			<tspan>sp2</tspan> 			<tspan>sp3</tspan> 		</text> 	</svg> </svg>

Having it investigated further I found various problems:
Firstly TextAnchor property is implemented as inherit-attribute, which means that the tspan elements inherit it from the text. This is incorrect IMO because not the individual elements should be shifted to middle but the whole resulting path, similar to the transform-matrix being applied to the path as a whole.
While trying to fix it, I found that there is some confusing handling of the _path field. First it is being created during the call of the Bounds property, during which the pathes of the children are added.
Then it is re-used during the render-process, where it already has the children's path added.
But during the render-process, with the call of RenderChildren, the children are rendered explicitly, too, resulting in the three tspan elements of the example above being rendered twice.
This can be verified, by skipping the RenderChildren call.
Also, I think it is not a good idea to have the pathes of the children added to the path (path being in effect the cached _path,) in the Bounds property.
Either the path should be cloned in the Bounds property before adding the children's pathes.
Or the children's pathes should already be added int the Path() method, in which case one could rely on them being included in the cached path, making RenderChildren definitely unnecessary.
If one sticks to the concept of _path containing only the content nodes and not the child elements' pathes, then at least the Bounds values should be cached, as they are needed again during rendering, in order for the shift needed for the TextAnchor-based transformation.
The whole concept of doing so much work during a simple Bounds-property call seems not very good design to me. Instead there should first be some kind of prepare-method to recursively create the cached _path etc.
Are there any comments on how to solve this?

Having it investigated further I found various problems:
Firstly TextAnchor property is implemented as inherit-attribute, which means that the tspan elements inherit it from the text. This is incorrect IMO because not the individual elements should be shifted to middle but the whole resulting path, similar to the transform-matrix being applied to the path as a whole.
While trying to fix it, I found that there is some confusing handling of the _path field. First it is being created during the call of the Bounds property, during which the pathes of the children are added.
Then it is re-used during the render-process, where it already has the children's path added.
But during the render-process, with the call of RenderChildren, the children are rendered explicitly, too, resulting in the three tspan elements of the example above being rendered twice.
This can be verified, by skipping the RenderChildren call.
Also, I think it is not a good idea to have the pathes of the children added to the path (path being in effect the cached _path,) in the Bounds property.
Either the path should be cloned in the Bounds property before adding the children's pathes.
Or the children's pathes should already be added int the Path() method, in which case one could rely on them being included in the cached path, making RenderChildren definitely unnecessary.
If one sticks to the concept of _path containing only the content nodes and not the child elements' pathes, then at least the Bounds values should be cached, as they are needed again during rendering, in order for the shift needed for the TextAnchor-based transformation.
The whole concept of doing so much work during a simple Bounds-property call seems not very good design to me. Instead there should first be some kind of prepare-method to recursively create the cached _path etc.
Are there any comments on how to solve this?

@H1Gdev , @wieslawsoltes - you have been working on related code, any insights here?

@H1Gdev , @wieslawsoltes - you have been working on related code, any insights here?


Does not work under Node 0.10 due to missing execSync API

@mikolalysenko
Found this thing: https://www.npmjs.com/package/sync-exec, looks like it could be worth a try.
Perhaps just check process.version and fall back to this module on older versions of node?
Or if this works, but is a little too ugly to add as a dependency on master, maybe we could make a node-0.10-support branch where we replace execSync with this function. We could publish that branch as a named release, e.g. 1.0.0-node0.10-support.

@mikolalysenko
Since sync-exec didn't work under Node 0.10, would be good to add an error message to avoid "mystery failure" for people that use this module on machines with 0.10 or lower as default install. Perhaps something like:
babel-plugin-glslify needs to run under Node.js 0.12 or higher. Your current version is ... . Consider using a node version manager such as nvm (https://www.npmjs.com/package/nvm).

@chrisirhc In response to your request for details on why it didn't work.
@mikolalysenko looked into this and reported: I just checked out using sync-exec, but the package doesn't work on my mac laptop with 0.10 (it hangs in an infinite loop reading the output fifo before the subprocess even launches).  This may be different on Linux so I'd need to check to confirm.  More recent node versions 0.12 and up work fine with the module, so if you like I could just publish it using this dependency and then we could see if it solves the issue on Linux.
I decided against continuing this track.

Alright, I added a check to the package.json to warn against installing on 0.10:
https://github.com/stackgl/babel-plugin-glslify/blob/master/package.json#L9-L11
If this is still a blocking issue I can try to find some other mechanism for running glslify synchronously using some more egregious hack.


Improve performance of HttpProbe.filterUrl()

Issue #57 covers the improvement of HttpProbe.filterUrl() performance. This achieves that by replacing the use of Url.parse() with a custom implementation that relies on the fact that we're not passing in a full URL, but only needs to have any query stripped of the end of the URL.
@tunniclm could you review?

I quickly checked https://nodejs.org/api/http.html#http_http_incomingmessage and the URI spec and it looks like the request.url would always be relative to the server root, which makes the simplification seem valid. Also, from my reading of the URI spec the first plain occurrence of ? and # should signify the start of the query/fragment parts of the URI (any earlier occurrence for a different meaning would have to be % encoded).
So...LGTM, ready to merge?

Yup, should be good to go.


New LST models to support use-site annotation and deprecate AnnotationUseSite marker

After discussion the design doc with the team, we decide to use option 3 to support use-site annotation instead of the AnnotationUseSite marker.
Here are more details of option 3
Two models for single and multiple use-site included annotations, and both of them will be an annotationType field of the J.Annotation.
Schema:
class AnnotationType implements K, NameTree {
    Space prefix;
    @Nullable JRightPadded<Expression> useSite;
    J.Annotation callee;
  }

 class MultiAnnotationType implements K, NameTree {
    Space prefix;
    @Nullable JRightPadded<Expression> useSite;
    JContainer<J.Annotation> annotations;
  }

Use case examples:

Single use-site annotation

@field : Ann1
-----------------------
"@field : Ann1" is a J.Annotation
	annotationType = K.AnnotationType
        arguments = []
"@field : Ann1" is a K.AnnotationType
	useSite = field + rightPadding
        callee = Ann1

Single annotation in bracket

@field : [ Ann1 ]
-----------------------
"@field : [ Ann1 ]": J.Annotation
	annotationType = K.MultiAnnotationType
        arguments = []
"@field : [ Ann1 ]": K.MultiAnnotationType,
        useSite = field + rightPadding
        annotations = [Ann1]

Multi annotations

@field : [Ann1 Ann2]
-----------------------
"@field : [Ann1 Ann2]": J.Annotation
	annotationType = K.MultiAnnotationType
        arguments = []
"@field : [Ann1 Ann2]": K.MultiAnnotationType
	useSite = field + rightPadding
        annotations = [Ann1, Ann2]

Multi annotations without target

@[ Ann1 Ann2]
-----------------------
"@[ Ann1 Ann2]": J.Annotation
	annotationType = K.MultiAnnotationType
        arguments = []
"@[ Ann1 Ann2]": K.MultiAnnotationType:
        useSite = J.Empty
        annotations = [Ann1, Ann2]

Notes:
This PR requires a small rewrite code change to J.Annotation#getSimpleName()
from
        public String getSimpleName() {
            return annotationType instanceof Identifier ?
                    ((Identifier) annotationType).getSimpleName() :
                    ((J.FieldAccess) annotationType).getSimpleName();
        }

to
        public String getSimpleName() {
            if (annotationType instanceof Identifier) {
                return ((Identifier) annotationType).getSimpleName();
            } else if (annotationType instanceof J.FieldAccess ) {
                return ((J.FieldAccess) annotationType).getSimpleName();
            } else {
                return annotationType.toString();
            }
        }

@kunli2 AFAICT this will still require us to add a getSimpleName() method to NameTree. I will create a PR for this and then ask Jonathan for his input on that.

@kunli2 AFAICT this will still require us to add a getSimpleName() method to NameTree. I will create a PR for this and then ask Jonathan for his input on that.

Turns out we don't need that quite yet after all. We had a call site in KotlinPrinter which called J.Annotation#getSimpleName() for all annotations: https://github.com/openrewrite/rewrite-kotlin/pull/549/commits/12f31a05ab935d5e95b89c905f60d7333d253f23. By removing that the tests now pass.
Since recipes should be allowed to call this method, we should still address this problem. In a first step we could maybe just return the empty string, if the annotation type isn't a J.Identifier or J.FieldAccess.

I've now gone ahead and made the changes to J.Annotation#getSimpleName(): https://github.com/openrewrite/rewrite/commit/f7772889cb6e28427bf1ac78566fd6df45f47ba5


Missing geocoding

You are writing in the comparison table, that geocoding is available in the new Field Service app, However, this is not entirely correct. The 3rd party Resco Field Service Mobile has the capability to manually create a booking and click a button to automatically goe-code this booking, so that current coordinates are stored within the booking. This capability is not available in the new Field Service app, but at least for us, this is a key requirement.

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

ID: e271cb4a-59d1-0242-03e6-670e4f0bd2a3
Version Independent ID: 8a1966f8-1a0d-e0bc-c496-f95c4d2aa157
Content: Field Service (Dynamics 365) mobile app
Content Source: ce/field-service/mobile-2020-power-platform.md
Service: dynamics-365-customerservice
Technology: field-service
GitHub Login: @FieldServiceDave
Microsoft Alias: daclar

Thanks for bringing this to our attention, we think this is a great idea, can you please submit it as an idea in the ideas portal and we will add it to the product backlog. https://experience.dynamics.com/ideas/categories/?forum=bee3d862-df65-e811-a95d-000d3a1be7ad&forumName=Dynamics 365 Field Service


Apple News link previews show Invalid SSL Certificate

This is the link in the screenshot below.

Issue created by BlueBubbles Bot in the BlueBubbles commnity on behalf of @CSab6482 in #android-support.

This is how the Apple News link compares to the link that goes directly to the article.

and this is how it looks in imcore.react. The link that doesn't show a preview is because of this bug.

Similar behavior occurs in AirMessage

This is intentional:
 on HandshakeException catch (ex) {
      meta.title = 'Invalid SSL Certificate';
      meta.description = ex.message;
    }

and definitely something on Apple's end. Nothing we can do here.


Normalization Range [0,1] or [-1,1]

Dear Dr. Yao,
I noticed that in the paper it says that "We perform min-max normalization to rescale the images intensity to the the range [−1,1]".
However, in the README.md inside the datasets folder, it says that "Normalize each 3D images to [0, 1]".
Which range should I use or does it matter?
Best Regards,
Yucheng

Hi,
Please follow the READMI.md to normalize the 3D images to [0, 1], which is the preparation of the datasets. The preprocessing is in the https://github.com/Kaiseem/DAR-UNet/blob/68a5b994374ba66b0bf72225080a39bc5dbd06f3/utils/dataloader3d.py#L81 (rescale the intensity to [-1, 1]), which is consistent to our paper statement.
If you have any other question, pls let me know. :)


3d Plotting with IRIS

Hello,
is there a way to use Iris to make a 3 D plot?
For example lat long and a cross-section Plot.
Thanks.
Samoth

Hi Samoth,
Best place to get help with these kinds of questions is either the scitools-iris google group or on the python-iris tag on StackOverflow.
A quick answer to this is that, no Iris doesn't have any 3d capabilities built-in. Given Iris' general direction of producing smaller sub-packages (e.g. iris-grib), I'd say that Iris itself will probably never have 3d plotting capabilities built-in, but we would love to see such a package exist (e.g. iris-plot, iris-3dplot etc.). In fact, a similar issue was discussed recently in https://github.com/SciTools/iris/issues/2990 which may result in a package that implements ipyvolume (3d) visualisation with Iris. Placeholder (with no functionality yet) is at https://github.com/SciTools-incubator/iris-ipyvolume. cc @niallrobinson
If you have ever produced 3d visualisations in python, you are probably already qualified to produce such a package - Iris quickly exposes the underlying numpy arrays that can then be passed through to the appropriate tool. There are one or two helper functions at https://github.com/SciTools/iris/blob/master/lib/iris/plot.py which may be useful for doing this in a general sense.
Hope that is useful.
Cheers,
Phil


[React Version] Home Page Minor Update

Instructions:

Remove all code for the Medium Icon
The changes should be mobile responsive
Refer to the hosted version
All the src code would be in the reactjs branch

can i work on this ! assign this to me!!

Sure!

I want to work on this issue under JWOC it's gonna be one of the first opportunities for me to start with open source can i get this issue assigned.

I would like to work on this under JWoC. Please assign.

Can I work on this under JWOC?

@smaranjitghose Removed Medium Icon in the reactjs branch


Change name in package.json for TickTick

This will allow user to Save to Favorites Bar

Closed per successful merge of https://github.com/iancleary/ansible-desktop/pull/113


API versioning with blueprints causes colission

The time has come where I need to release a new version for my api and still support the previous one.
I have an app structure that looks like this:
+-- app/
    +-- api_2_0/
        +-- __init__.py
        (...)
    +-- api_2_1/
        +-- __init__.py
        (...)
   +-- __init__.py

Both are blueprints which I initialize this way in my __init__.py in the create_app method (I'm using the app factory method):
    from .api_2_0 import api as api_2_0_blueprint
    app.register_blueprint(api_2_0_blueprint, url_prefix='/api/v2.0')

    from .api_2_1 import api as api_2_1_blueprint
    app.register_blueprint(api_2_1_blueprint, url_prefix='/api/v2.1')

But this causes: AssertionError: A blueprint's name collision occurred between <flask.blueprints.Blueprint object at 0x7f8e48e82c10> and <flask.blueprints.Blueprint object at 0x7f8e48ef7150>.  Both share the same name "api".  Blueprints that are created on the fly need unique names.
It's true that both are called api inside their folders but I'm importing them with different names. Having to rename all the calls to api to something else for each version would make versioning painful and overall a code spaghetti.
Is there a better way to do this?

no, thats per design - blueprints express reusable parts of an application, each part has a different name
they are not quite intended for api versioning at all

So is there a pain free way to do versioning with flask?

Why can't you rename the old blueprints? I guess you don't build urls for old api versions using url_for anyway, right?

Ok so it turns out I only had to change the Blueprint definition.
Before I had both blueprints defined as api = Blueprint('api', __name__) which caused the collision and made me think that I needed to change name of the variable api. Turns out what I really needed to change is just the string 'api' used in the call to Blueprint, so now my blueprints are defined as api = Blueprint('api_2_0', name) and api = Blueprint('api_2_1', __name__), allowing me to keep the variable api the same in both cases and saving me the issue of chaging it everywhere.
I'm closing this issue now, sorry for the silly question.

@alejoar its not a silly question and we are most pleased the resolving your misconception was relatively painless
i wonder if some documentation additions might help future developers to understand directly

This might also be helpful: http://stackoverflow.com/a/28797512/770425

@jeffwidman thank you. I actually asked a question in stackoverflow referencing that answer (I don't have enough rep to comment in other people's answers yet).
Luckily I already solved the issue. The problem is that I named both the variable and the blueprint the same and that misled me on where the collision was happening.


Collections in Collections

For use cases with a more complex asset structure the grouping of collections inside collections would be usefull.

@wachterjohannes Please don't forget to link this issue in your PR.


Correctly mark the arguments.callee value in gc

Fixes:  #4321

It would be great to add the minimal test case from #4321 to jerry tests.


rework or possibly deprecate forc plugins

Because of the new release of fuelup v0.3 with support for multiple toolchains, I think we could possibly deprecate forc plugins or move this to a fuelup command, since each separate toolchain can have different plugins installed. Technically fuelup check --verbose already accomplishes this by checking for the version of each component that is installed (including plugins):

It is also right now not particularly useful since it prints duplicate plugins when I have multiple toolchains installed. Example:

Imo we could just deprecate it.

This assumes that forc will only ever be installed via fuelup, which is not a safe assumption to make.
While fuelup makes sense as a default installation approach that is mostly cross-platform and documentation friendly, there will be many users that will prefer to install forc, fuel-core, etc via their standard package manager, via src, or any other means.

It is also right now not particularly useful since it prints duplicate plugins when I have multiple toolchains installed

This appears like a potentially useful way of identifying duplicate plugin instances on PATH. If we run the same command with the paths flag (i.e. forc plugins --paths) we can find where the duplicates are and know which are taking priority. Perhaps this might be useful when helping users work out why updating certain plugins appears not to be working? We've already had quite a few reports of our own devs getting confused between tools installed via cargo vs installed via fuelup, and we'll likely only have more of these issues as the fuel tools make their way downstream into official package managers.


Non-ideal fix for URIs in "extends"

I'm sure you can make it use the existing mechanisms for open-uri and parsing

Yeah, looking through the extends / ref code I'm losing where I auto-load resources with a URL ID. I'll take a look into auto-loading these resources, as it's something that I originally intended to do.


Add default category to epg_channel_programmes table

Is your feature request related to a problem?
No response
What is your feature request?
Programmes have the ability to state a type. Eg. Sport, News, Movie, Series.
We should have a "default" flag for when the programme does not have one listed. And we should also support adding this info to the DB when it is available in the EPG source.
Are there any workarounds?
No response
Additional Context
Plex will then use this information. Perhaps other places could also use this information....

I've added category data to the generated EPG in commit  248490c30594fb8a1889ea883511e42c76fe024a


Update referer.yml (closes #75)

This is shortened version of https://github.com/snowplow-referer-parser/scala-referer-parser/pull/76

Commit amended after ticket name change as suggested in https://github.com/snowplow-referer-parser/scala-referer-parser/issues/75

LGTM!


Feature request: playback controls

Bumping from https://github.com/fonsp/PlutoUI.jl/issues/1#issuecomment-617067021
Basically the clock widget, but bound to a slider-like range of times. It'd be extra nice to provide an enumerate-like interface returning both the index and value of the range:
@bind (i, val) Playback(range(0, 1, length=100); rate = 30) # playback at 30 fps

You can achieve this using an <audio> element with a fake, generated (silent) audio clip. Copy-paste this code:
https://github.com/fonsp/Pluto.jl/blob/78b2428dc38d7b77edc06a40f8aa7ac37c0910c8/frontend/common/AudioRecording.js#L59-L155


[enclave/sidechain] move ocall_api to its own crate.

I just realized, that with ocall_api abstractions, it is only the innermost implementation of the ocalls that need the sgx stuff. If we make the ocall_api available as separate crate, we can independently use it and start using cargo test in dependants.

[ ] first merge #338
[ ] rebase and retarget this to master

If this works as intended, it's great. I also thought about doing this extraction, but wasn't sure about the linking implications in the Makefile with the enclave.

This PR changes probably less than you expect it to. It only moves the trait declarations, the ffi interfaces themselves are still in the enclave crate.

Ah right, should've seen that 🙈  In that case, this should work just fine 👍


Update readme.md: Translation section

Add instructions to publish the translation file.
I was going to PR a localization option, but then realized it's already there on the underlying package wire-element/spotlight.
Might come in handy for international users!

Sorry, forgot this PR. Thank you.


Update README.md

To improve the readability and ease of use of the guide, I made a major re-write of it.

Thanks!
One more change could be to put the install of mosquitto as the first item as most (?) people will use mosquitto plugin in HA.

Good point. Reading it again, I also added some further clarifications to the initial steps.


Play audio only

Is there any way currently to play video audio only? Can I specify that for a series of videos, like :audio=1.. ?

There is the -n option. To play multiple results, use either a range (e.g.: -n 5..10) or by selecting specific results (e.g.: -n 1 2 3 4).
Additionally, to play all the results, including results from the next pages, there is the -A option.
To disable the -n behavior, we can use --no-n.

@trizen thanks for the reply — is there any way to get a progress bar in audio-only mode? the arrows work for navigation, but it's pretty hard to tell where I am :/ I guess since there's no mpv window this might be pretty difficult to implement if it's not already implemented, but e.g. ncmpcc (an mpd client I use) has equal signs in the bottom, something like ==========>------------------------------ and I can click on that and navigate.

Ok, just for reference, that does not output a progress bar, but it gives a CURRENT_TIME / TOTAL_TIME (PERCENTAGE) summary. I assume the way it's set up to get a command line progress bar I would need to look into mpv since that's what's outputting the current summary.


Make the JTAG ID include the commit hash and git clean/dirty status bit

This is dependent on a JusTAG task: https://github.com/StanfordVLSI/JusTAG/issues/4
Once the JusTAG feature is ready, we can add the JTAG ID when make.py is run to build the chip.  (The current git commit hash can be retrieved with git rev-parse HEAD.)
We have 31 bits available in the JTAG ID, and I suggest that we use the 28 most significant bits for the git commit hash, since it is customary to reference git commits using 7 nibbles.  I suggest we use the three remaining bits to represent additional information about the repository state.  For now, the main thing that comes to mind is the clean/dirty status of the repository to indicate whether the user has uncommitted changes (that can be automatically determined by checking if git status --porcelain is a non-empty string)
We can then encode this information in the version, part, and man_num variables:

version[3:0] = (git_hash >> 24) & 0xf
part[15:0] = (git_hash >> 8) & 0xffff
man_num[10:0] = {(git_hash & 0xff), 1'b0, 1'b0, git_is_clean}

For example, suppose the output of git rev-parse HEAD is
1abc49b8ec66bad372e5728d2a2f42ab1b1264fa

git_hash would then be the most significant 7 nibbles (1abc49b).  Further assuming that the git repository is clean (git_is_clean = 1'b1), we have:

version[3:0] = 4'h1 = 4'b0001
part[15:0] = 16'habc4 = 16'b1010101111000100
man_num[10:0] = {8'h9b, 1'b0, 1'b0, 1'b1} = 11'b10011011001

The full JTAG ID (including the LSB that is always set to "1" by the TAP) would then be
jtag_id = 32'b00011010101111000100100110110011 = 32'h1ABC49B3

The nice thing about this format is that we can immediately read off the git commit has using the most significant 7 nibbles, while the git status is encoded in the least significant nibble ("3" means clean, "1" means dirty).  We even have two more bits left over for other purposes if we can think of something :-)

This change is implemented in PR #91.  Will close once the PR is merged.


Saved icons page not displaying properly

Hello @Kiki-Kodes, pls some of the referenced images and files in the saved-icons.html are not displaying on the page because the referenced file is not found. Probably the wrong file name or something like that.

https://github.com/zuri-training/favicons_gen_proj_team_63/pull/88 resolved

https://github.com/zuri-training/favicons_gen_proj_team_63/pull/91 - new


3.9 requirement....

Hi!!
A couple of things for ya...
A screenshot of your program in your readme would be awesome.  It's so rare for Python programs to have a GUI that visitors find it a treat to see them.
The other is I see you require 3.9.  What feature of 3.9 are you using that is required?

A screenshot, btw, can be done by simply pasting a screencapture into an issue, like this one:

And then getting the text that is generated by the paste, in this case this text:
![image](https://user-images.githubusercontent.com/46163555/131855144-02a5cb85-ede7-47bb-8449-7863b7bcacbe.png)

And pasting it into your readme..... that's it.

Thanks for your comment! It never occurred to me that other people see my projects, until now. It's quite flattering to see the developer of one of my favorite Python packages comment on a project of mine.
About the 3.9 version requirement, the reason for that is I use 3.9 to build most of my projects and I'm too lazy to test on other versions. I'm sure they will work fine on other versions 3.6 and above most of the time.
As for the screenshot, that's a wonderful suggestion! I didn't know I could use issues to store images. I'm new on GitHub (and in the software development world too), so I'm still learning all the best practices.
You give me the motivation to do what I love as a high school student learning software development in my free time. Thanks again!

Some screenshots

Mission accomplished!

I started programming just before high school.  I was washing dishes at Long John Silvers one day.  Then landed a job programming at 16 and quickly traded the dish washing job for the programming one, despite both paying $3.35/hour.
My grades, already pretty bad, sunk until full-time collect. C's because I was writing code all day long in the back of the class on notebook paper, and getting paid by the hour too!
I don't know all the strings that were pulled.  I went to summer school for 1 class, and then they let me graduate easily from high school and off to the university I raced.  2.87 grades to 4.0 in double major.  Finally was eating the brain food I was craving.
Keep doing what you're doing!
Do a super quick on 3.6.  There are a  lot of potential users you're leaving behind requiring 3.9.  Installs vary per day, but here's a distribution of PySimpleGUI pip installs for 1 day.

70.58% of PySimpleGUI users are not running 3.9, and are possibly thinking they can't use your software.  Something to think about.
I didn't know you could store images here either until I did one day. I made a youtube video out exploiting it for free file storage.  Doesn't even have to be organized.  I have a couple of massive issues filled with screenshots.  I dunno, I luck into a lot of stuff.
Keep in rolling!  You're doing great stuff, motivating others.

The only place I ran into trouble running your code on 3.6, 3.7, 3.8 was in the definition of split_file.
If you remove the type information on this one def, then your code runs with no problem on 3.6.2.
def split_file(iterable, separators):

I think it's worth the modification to get a much bigger audience.
I added this row to show you the Python version info:
[sg.Text(f'Running python version {sys.version_info}')],

This is the resulting window.  Clearly the rest of your program is backwards compatible.

I thought people used the latest version of Python most of the time, then again, I've only been using Python for about a year now so I'm not very experienced. You learn something every day.
Thanks for pointing out the type hint incompatibility. It's actually incorrect anyway, so I'll get to fixing that. On second thought, I might as well review the rest of the program as well. I've come a long way in a few months haha.
Do you know any way to easily test a script on multiple minor and/or patch versions of Python (such that any dependencies are always available)? Currently I have a few different versions of Python installed on my system and use virtualenv to make virtual environments with said versions. It's a bit time-consuming and takes up quite a bit of space as every environment takes up ~25 MB. Also it's difficult to test patch versions since the Python installer overwrites older patch versions of the same minor version.
Thanks for all your help!

You can find out the versions people are using with packages they're installing
This link has a summary for all packages on PyPI:
https://pypistats.org/packages/__all__

It shows that more people are running 3.7
For PySimpleGUI it's a little different mix

I see in your stegosaurus repo that you're using Pillow, so let's look at the installs happening with that package.

I'm no expert in the behavior of Python programmers, but I'm guessing that most users are hesitant to upgrade their Python interpreter in order to try someone's repo unless it's a repo that they can't do their project without.  To me that says users will simply pass over someone's project rather than giving it a try.  I wanted you to have the best shot possible to get people to try your program.  The further back you can support, the greater the possible customer base.
I want the PySimpleGUI tent to be as large as I can make it.  As a result, I've stayed compatible back to 3.4... for the main PySimpleGUI.py file.  For the demo programs, I'm 3.6 compatible.  I'm willing to live without f-strings in PySimpleGUI itself, but sample applications are not nearly as fun without f-strings.

Do you know any way to easily test a script on multiple minor and/or patch versions of Python (such that any dependencies are always available)?

Being mostly a Windows user, I feel like I can get away with using straight system-installed versions rather than using virtual environments.  The way I test on multiple Python releases is by setting the Python version in the PySimpleGUI Global Settings.  I have a program that I use to swap them:

This allows me to swap to using a different interpreter quickly.  Using the PySimpleGUI setting, if I launch a program using the Exec APIs in PySimpleGUI, then it will use the interpreter defined in the global settings.
I also wrote a program called PySimpleTest that I was planning on releasing, but just haven't had the time to document it and everything at the moment.  It also uses the PySimpleGUI Exec APIs to allow you to run your programs using any version of Python you want, no virtual env needed.
Here's a test run of it to show you another approach you can take.  There are a number of ways of doing so many things in Python, evidently.  Like you, I'm still learning.  Sorry about the possibly confusing screen capture. The "test program" I ran the first time was the PySimpleTest.py program itself. LOL. Not what I was trying to show.

I love the idea of a PySimpleGUI program to test other Python programs, even other GUI programs (I think there's a word for this but I can't remember it right now). Thanks for the PyPI statistics link, it's very interesting to see the traffic history of a package. I'm going to go check the stats on my own package pyco.


More descriptive error messages when controller method attempting to be invoked does not exist

Spent some time finding and fixing a bug related to the message Cannot read property 'apply' of undefined in the invokers.
Turns out this was coming from the fact that I was attempting to invoke a method that no longer existed because I had changed the name.
I believe a more descriptive error could be helpful.

Thanks for your contribution! Just published v1.1.0 https://www.npmjs.com/package/awilix-express/v/1.1.0


Documentation site down

Describe the bug
Cannot load any documentation page. Only get the error:
REQUEST FOR DOCUMENT FAILED.

Example broken URL:
https://rxjs.dev/api/index/function/lastValueFrom
Expected behavior
Documentation should load.
Reproduction code
https://rxjs.dev/api/index/function/lastValueFrom

Reproduction URL
https://rxjs.dev/api/index/function/lastValueFrom
Version
7.8.0
Environment
rxjs.dev web site
Additional context
No response

https://github.com/ReactiveX/rxjs/discussions/7274


LoadCombination Constructor without list for few Load Cases without using List

Inspiration taken from System.IO.Path.Combine()
https://learn.microsoft.com/en-us/dotnet/api/system.io.path.combine?view=net-6.0

Combine(String[])
Combines an array of strings into a path.

Combine(String, String)
Combines two strings into a path.

Combine(String, String, String)
Combines three strings into a path.

Combine(String, String, String, String)
Combines four strings into a path.

public LoadCombination(string name, LoadCombType type, List<LoadCase> loadCase, List<double> gamma,  CombItem combItem = null)
public LoadCombination(string name, LoadCombType type, LoadCase loadCase1, double gamma1,  CombItem combItem = null)
public LoadCombination(string name, LoadCombType type, LoadCase loadCase1, double gamma1, LoadCase loadCase2, double gamma2,  CombItem combItem = null)
public LoadCombination(string name, LoadCombType type, LoadCase loadCase1, double gamma1, LoadCase loadCase2, double gamma2,  LoadCase loadCase3, double gamma3, CombItem combItem = null)

@andosca @xRadne
Not sure what it is your thought about adding some constructor that looks like the one above.
I have just had a thought looking at some .NET documentation

Maybe we can use the params keyword for this?

Not sure how easy is to explain to the users on how to use params but it would work.
I had this thougth regarding redability
var loadCombination = new FemDesign.Loads.LoadCombination("ULS", LoadCombType.UltimateOrdinary, new List<LoadCase> { deadLoad, wind, snow }, new List<double> { 1.0, 1.3, 1.5 });
var loadCombination = new FemDesign.Loads.LoadCombination("ULS", LoadCombType.UltimateOrdinary, deadLoad,  1.0, wind, 1.3, snow, 1.5);

@Marco-Pellegrino Have a look at my proposal in commit 63f7dd4a74c4ed570e31180a77d704e1c44cda75

@xRadne I like the solution <3.
The only downside is that we will need to change the order of the input in order to keep CombItem.
I am not sure how many people knows about params  but it is technically what I was looking for. We will need to create an example and it should be fine.
From a readability point of view, it looks similar from what I have proposed (apart from the parenthesis) but it is more general approach. I think the user would love this new constructor


[ISSUE #3964] Create Plugin Permissions Resource

Make sure that:

[ ] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[ ] Your local test passed ./mvnw clean install -Dmaven.javadoc.skip=true.

Codecov Report

Merging #3986 (886ebec) into master (7619dde) will decrease coverage by 0.48%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master    #3986      +/-   ##
============================================
- Coverage     70.18%   69.70%   -0.49%
+ Complexity     6700     6654      -46
============================================
  Files           924      924
  Lines         25186    25195       +9
  Branches       2276     2274       -2
============================================
- Hits          17677    17562     -115
- Misses         6131     6263     +132
+ Partials       1378     1370       -8

Impacted Files
Coverage Δ

...ache/shenyu/admin/controller/PluginController.java
86.66% <0.00%> (-6.20%)
:arrow_down:

...e/shenyu/admin/service/impl/PluginServiceImpl.java
67.39% <0.00%> (-3.07%)
:arrow_down:

...shenyu/admin/service/impl/ResourceServiceImpl.java
69.64% <0.00%> (-1.27%)
:arrow_down:

.../apache/shenyu/common/constant/AdminConstants.java
0.00% <ø> (ø)

...n/alibaba/dubbo/cache/AlibabaDubboConfigCache.java
47.12% <0.00%> (-31.04%)
:arrow_down:

.../client/server/consul/ShenyuConsulConfigWatch.java
60.41% <0.00%> (-25.00%)
:arrow_down:

...henyu/plugin/grpc/resolver/ShenyuNameResolver.java
51.06% <0.00%> (-21.28%)
:arrow_down:

...ava/org/apache/shenyu/admin/utils/SessionUtil.java
78.94% <0.00%> (-15.79%)
:arrow_down:

...a/org/apache/shenyu/common/utils/VersionUtils.java
67.85% <0.00%> (-10.72%)
:arrow_down:

.../plugin/grpc/loadbalance/AbstractLoadBalancer.java
70.65% <0.00%> (-7.61%)
:arrow_down:

... and 37 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


chore: replace husky, lint-staged with lefthook

close #139

Related issue: https://github.com/r4ai/remark-callout/issues/131


Update CI

Pull Request Test Coverage Report for Build 2440a67efcf7ee85fa2a4fd6820d24b8dbb4d8d3-PR-497

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+71.06%) to 86.19%

Totals

Change from base Build 6463bfc045bf81b9c070f18c161a8c591dfbac1c:
71.06%

Covered Lines:
362

Relevant Lines:
420

💛  - Coveralls


[prop-types] Throw is missing in props validation when reassign this.props to props

Hello!
Got an strange behavior when assign this.props to props, it will throw an error message is missing in props validation.
And seems it only happens when use const props = this.props.
eslint: 4.0.0
eslint-plugin-react: 7.1.0
This piece of code will throw an error.
const Card = React.createClass({
  propTypes: {
    isReturning: PropTypes.bool,
    date: PropTypes.string
  },
  render() {
    const props = this.props;
    return (

          {props.isReturning}
          {props.departureDate}

    )
  }
});

error  'isReturning' is missing in props validation    react/prop-types
error  'departureDate' is missing in props validation    react/prop-types

This is no error.
const Card = React.createClass({
  propTypes: {
    isReturning: PropTypes.bool,
    date: PropTypes.string
  },
  render() {
    const {isReturning, departureDate} = this.props;
    return (

          {isReturning}
          {departureDate}

    )
  }
});

This is no error.
const Card = React.createClass({
  propTypes: {
    isReturning: PropTypes.bool,
    date: PropTypes.string
  },
  render() {
    return (

          {this.props.isReturning}
          {this.props.departureDate}

    )
  }
});

Even this is no error.
const Card = React.createClass({
  propTypes: {
    isReturning: PropTypes.bool,
    date: PropTypes.string
  },
  render() {
    const test = this.props;
    return (

          {test.isReturning}
          {test.departureDate}

    )
  }
});

I would instead recommend const { isReturning, departureDate } = this.props.

(That said, this sounds like something worth fixing)

Has this already been fixed? I can't repro this issue with the latest commits on master.

After updating to<EMAIL_ADDRESS>and<EMAIL_ADDRESS>I am still able to reproduce the issue using the provided code.
Converting it to use extends has also resolves the issue:
class card extends React.Component {
  render() {
    const props = this.props;
    return (

        {props.isReturning}
        {props.departureDate}

    );
  }
}

card.propTypes = {
  departureDate: React.PropTypes.string,
  isReturning: React.PropTypes.bool
};

So it appears to be limited to assigning const props = this.props when using createClass.

createClass is deprecated; so you shouldn't be using it anyways.
That said, the bug should still be fixed.

Thanks @hatched and @ljharb , I think that makes sense to me.

I was able to repro this behavior, but it looks like it might be by design.
Passes:
    {
      code: [
        'var Hello = React.createClass({',
        '  propTypes: {',
        '    testing: PropTypes.string.isRequired',
        '  },',
        '  render() {',
        '    const props = this.props;',
        '    return
Hello {props.testing}
;',
        '  }',
        '});'
      ].join('\n'),
      settings: {
        react: {
          createClass: 'createClass',
        }
      }
    }

Fails if createClass is removed from settings.react.
This appears to be because, during the unit tests, the default function name for creating React components is set to createReactClass. If the function name used to create the component doesn't match what's defined in settings, the linter thinks that it's in a stateless function when seeing a reference to a variable named props because of this line. This causes the false error to appear - it's saying the render function doesn't have propTypes declared on it (which is true)

This seems right.
However. Perhaps createClass is a better default value for that pragma.

Also reproducible if you destructure this:
const { props, someMethod, someAttr } = this;

Sometimes it is nice to keep props namespaced.
Anyways, here's the line: https://github.com/yannickcr/eslint-plugin-react/blob/master/lib/rules/no-unused-prop-types.js#L110
This would be fixed if props.yyy was allowed in class contexts as well as stateless components

Leaving my reduced example here...
type PropsShape = {
  // error  'data' PropType is defined but prop is never used  react/no-unused-prop-types
  data: Array<*>,
}

class List extends React.Component<void, PropsShape, void> {
  // .. some stuff up here that does not use this.props.data
  render() {
    const that = this;
    return (

        {
          that.props.data.map(v => {v.id}
        }

    );
  }
}

(Above is just for demo purposes.)

"react/prop-types": [
  "enabled",
  { "ignore": "ignore", "customValidators": "customValidator" }
]


Event token: Cannot read property items of undefined

Steps to reproduce

Insert token to slot
Select token
Remove token from slot

There is no error if do insert/remove token with selected system provider

@microshine Fixed. Please check


Re-query subgraph for bids until bid with same value from 'AuctionBid' event appears

Dear @andytudhope, can you please create a new Rinkeby auction and check if the bids are loading as expected? I deployed code to reload the subgraph up to five times, every five seconds, until the bid is loaded.

Done and done - it works well afaict and you are a genius :pray:


(Aug. 8)  7.05 Opcode Update

Not sure if this is correct, please help to verify.
{
	"C2S_ActionRequest": "0x0287",
	"C2S_ActionRequestGroundTargeted": "0x01bb",
	"Common_UseOodleTcp": true,
	"PatchCode": [],
	"S2C_ActionEffect01": "0x016f",
	"S2C_ActionEffect08": "0x021b",
	"S2C_ActionEffect16": "0x0254",
	"S2C_ActionEffect24": "0x03a8",
	"S2C_ActionEffect32": "0x031b",
	"S2C_ActorCast": "0x00f6",
	"S2C_ActorControl": "0x01f2",
	"S2C_ActorControlSelf": "0x0205",
	"Server_IpRange": "<IP_ADDRESS>/0",
	"Server_PortRange": "1-65535"
}

works


ImportError: cannot import name 'Parrot' from partially initialized module 'parrot' (most likely due to a circular import) (D:\python\paraphrase\parrot.py)

I am getting this issue. I have installed Parrot corectly but stil showing this eeor. Pls help.

I added a new demo notebook, and everything works fine. (check for the link in Readme)

I am facing same issue while working in local , Please help me

Rename your Python file from "parrot.py" to something else. As the library name is also parrot so Python Interpreter is throwing circular import error.

change parrot to parrot.parrot works

I also encountered this problem. This is the problem description:ImportError: cannot import name 'Parrot' from 'parrot' (D:\Python\Anaconda\envs\nlp_env\lib\site-packages\parrot_init_.py)，how can I solve it?

I also encountered this problem, this is the problem description:ImportError: cannot import name 'Parrot' from 'parrot' (D:\Python\Anaconda\envs\nlp_env\lib\site-packages\parrot_init_.py), how can I solve it?

@snow00726 make sure you have installed the library. From the error message, it seems that there could be a version mismatch error. Try to uninstall and install it again in a virtual environment.

@snow00726 make sure you have installed the library. From the error message, it seems that there could be a version mismatch error. Try to uninstall and install it again in a virtual environment.

The requirements.txt file requires downloading parrot-1.0, but I can't find parrot 1.0 in pypi. I've downloaded parrot 0.0.16, but it doesn't seem to work, it still reports the same error.

@snow00726 Do not install from the PyPI, I guess that could be the error.
For a fresh install please

Create a new virtual environment
activate it
and then run the following command

pip install git+https://github.com/PrithivirajDamodaran/Parrot_Paraphraser.git
This should work. I just tested and it is working perfectly for me.

@snow00726 Do not install from the PyPI, I guess that could be the error.
For a fresh install please

Create a new virtual environment
activate it
and then run the following command

pip install git+https://github.com/PrithivirajDamodaran/Parrot_Paraphraser.git
This should work. I just tested and it is working perfectly for me.

Thank you! It works for me.

@snow00726 I am glad to hear this.

pip install git+https://github.com/PrithivirajDamodaran/Parrot_Paraphraser.git

after installing this, still it is not working.


Update documentation for docker compose - how to use configuration.php, how to setup storage etc

I found it to be a surprising adventure to setup filegator with docker compose. Many things were not spelled out and I'm still not clear on several things.
Example: configuration.php file.
This needed to be added to the docker compose in order to use a configuration file on the host. It would be nice if this was spelled out in the example compose file.
volumes:
      - ./config/configuration.php:/var/www/filegator/configuration.php

Also, it seems that we need to build a filegator image in order to use the other storage backends. It would be great if the compose had a few more hints about how to do that.
I'm still trying to figure out how to connect to an alternative S3 service like minio.  Where does the host name and port go??

I have a similar issue - when using local storage on a docker bind mount, the whole thing runs as www-data. I need to be able to ensure that permissions set on created file and folders is correct - umask would be the normal way but I notice that Flysystem has:
\League\Flysystem\UnixVisibility\PortableVisibilityConverter::fromArray([          'file' => [                 'public' => 0666,                 'private' => 0660,            ],             'dir' => [                 'public' => 2777,                  'private' => 2770,             ] ])
which seems exactly what I need. I imagine that is also the case in most people's multi-user shared systems. Looks like I need to build an image myself after forking the repo.
I would suggest that is added to the official image since it is so useful.

I just found this. I gave up. I couldn't be bothered if there isn't a practical working compose file.


Insertion of unnecessary null check

In the path package, at line 59 in lib/src/internal_style.dart, the following method is defined:
Uri relativePathToUri(String path) {
  var segments = context.split(path);

  // Ensure that a trailing slash in the path produces a trailing slash in the
  // URL.
  if (isSeparator(path.codeUnitAt(path.length - 1))) segments.add('');
  return new Uri(pathSegments: segments!);
}

Note the null check added on the last line. This implies that segments is nullable, but split is declared, at line 308 in lib/src/context.dart, as being non-nullable:
List<String?> split(String path) {
  var parsed = _parse(path);
  // Filter out empty parts that exist due to multiple separators in a row.
  parsed.parts = parsed.parts.where((part) => !part.isEmpty!).toList();
  if (parsed.root != null) parsed.parts.insert(0, parsed.root);
  return parsed.parts;
}

(Also note the null check after part.isEmpty despite the fact that isEmpty is declared to return bool.)

This might be the same thing, but it seems especially odd to me. On line 47 in lib/src/style/posix.dart we have
Uri absolutePathToUri(String path) {
  var parsed = new ParsedPath.parse(path, this);
  if (parsed.parts.isEmpty) {
    // If the path is a bare root (e.g. "/"), [components] will
    // currently be empty. We add two empty components so the URL constructor
    // produces "file:///", with a trailing slash.
    parsed.parts.addAll(["", ""]);
  } else if (parsed.hasTrailingSeparator) {
    // If the path has a trailing slash, add a single empty component so the
    // URI has a trailing slash as well.
    parsed.parts.add("");
  }

  return new Uri(scheme: 'file', pathSegments: parsed.parts!);
}

Note the null check on the last line of the method. Then notice the lack of a null check in any of the other places where parsed.parts is used. The getter parts is declared on line 25 of lib/src/parsed_path.dart as
List<String?> parts;

I can't look at Uri, but I wonder whether the parameter might be typed as List<String> and if the null check is for the elements of the list rather than for the list itself.

As of 1c7fe7196dd7a542f7f91cd6ea2ac81e1a13146c, the null safety migration tool has been removed from active development and retired. No further work on the tool is planned.
If you still need help, or you believe this issue has been closed in error, please feel free to reopen.


⚠ ClamAV has degraded performance

In 44c44cb, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 203 ms

Resolved: ClamAV performance has improved in f82b5b5.


trackMetric do not works

Using application insight in Node 16 enviroment
trackMetric do not works, it's seems that data are sent ot application insight but also waiting ingestion time it do no appear on Azure

@russosalv can you add more details about the custom metric you are sending?, you should be able to see custom metrics querying customMetrics table

hi @hectorhdzg  ys sure,
i'm using nestjs framework i created a injectable that manage the application insight, then it is used in other service or controller.
Application Insight service:
import { Injectable, Scope } from '@nestjs/common';
import * as appInsights from 'applicationinsights';

@Injectable({ scope: Scope.TRANSIENT })
export class ApplicationInsightUtils {
	public telemetryClient: appInsights.TelemetryClient;
	public defaultClient: any;

	constructor() {
		let appInsights = require('applicationinsights');

		let liveMetrics = false;
		if (process.env.APPINSIGHTS_LIVEMETRICS == 'true') liveMetrics = true;

		appInsights
			.setup(process.env.APPINSIGHTS_INSTRUMENTATIONKEY)
			.setAutoDependencyCorrelation(true)
			.setAutoCollectRequests(true)
			.setAutoCollectPerformance(true, true)
			.setAutoCollectExceptions(true)
			.setAutoCollectDependencies(true)
			.setAutoCollectConsole(true)
			.setUseDiskRetryCaching(true)
			.setSendLiveMetrics(liveMetrics)
			.setDistributedTracingMode(appInsights.DistributedTracingModes.AI);

		//Sampling if data are a lot
		//appInsights.defaultClient.config.samplingPercentage = 33;

		appInsights.start();

		this.telemetryClient = new appInsights.TelemetryClient();
		this.defaultClient = appInsights.defaultClient;
	}
}

and here is where used:
import { INestApplication, Injectable, OnModuleInit } from '@nestjs/common';
import { createPrismaQueryEventHandler } from 'prisma-query-log';
import { Prisma, PrismaClient } from '@prisma/client';
import { ApplicationInsightUtils } from 'src/utils/applicationInsight.utils';
import * as appInsights from 'applicationinsights';

@Injectable()
export class PrismaService extends PrismaClient implements OnModuleInit {
	/**
	 *
	 */
	constructor(private applicationInsight: ApplicationInsightUtils) {
		super({
			log: [
				{
					level: 'query',
					emit: 'event',
				},
			],
		});
	}

	async onModuleInit() {
		await this.$connect();

		const log = createPrismaQueryEventHandler({
			format: true,
			language: 'sql',
			// linesBetweenQueries: 1
		});
		this.$on<any>('query', (event: Prisma.QueryEvent) => {
			log(event);
			console.log('Params: ', event.params);
			console.log('Duration: ' + event.duration + 'ms');
			console.log('\n');

			const stringHash = require('string-hash');
			const queryMetric = stringHash(event.query);

			// this.applicationInsight.telemetryClient.trackMetric({
			// 	name: queryMetric,
			// 	value: event.duration,
			// } as appInsights.Contracts.MetricTelemetry);

			//Seems that trtack Metric do not works with Node 16
			//WorkAround
			this.applicationInsight.telemetryClient.trackTrace({
				message: `sqlMetric: ${queryMetric}`,
				severity: appInsights.Contracts.SeverityLevel.Information,
				properties: {
					queryMetric: queryMetric,
					query: event.query,
					params: event.params,
					target: event.target,
					duration: event.duration,
					timestamp: event.timestamp,
				},
			} as appInsights.Contracts.TraceTelemetry);
		});
	}

	async enableShutdownHooks(app: INestApplication) {
		this.$on('beforeExit', async () => {
			await app.close();
		});
	}
}

as per comment in the code

trackTrace works great
trackMetric NOT

i noted also that during execution on log appear a strange error
ApplicationInsights:Sender [

  'Ingestion endpoint could not be reached. This batch of telemetry items has been lost. Use Disk Retry Caching to enable resending of failed telemetry. Error:',

  "[object Error]{ stack: 'Error: getaddrinfo ENOTFOUND dc.services.visualstudio.com\n" +

    '    at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:71:26)\n' +

    "    at GetAddrInfoReqWrap.callbackTrampoline (node:internal/async_hooks:130:17)', message: 'getaddrinfo ENOTFOUND dc.services.visualstudio.com', name: 'Error'

pls note also that application work inside a docker container, but i have same behaviour aslo running on my machine

Thanks @russosalv, just one thing I noticed is that you are creating another telemetry client apart from the default one created during "setup" method, this is usually the case when people want to send to multiple Application Insights resources, you can simplify your code a little bit just using the defaultClient where all the configurations are applied, the error you are seeing in logs is because the SDK was not able to reach the ingestion endpoint and disk retry is disabled for that telemetry client, if you use the default one disk retry would be enabled and will try to send data from disk when this happens, can you provide some sample values for the name and value you are sending for the metric?, I wonder if some of these are causing conflicts for some reason.

Hi @hectorhdzg  thx for your suggest;
are you talk about to modify code in that way?
//NOT USE THIS
this.telemetryClient = new appInsights.TelemetryClient();

//USE THIS INSTEAD
this.defaultClient = appInsights.defaultClient;

here some metric name and value that i'm sendig
query_data.csv
ng

@russosalv  yes please use only the defaultClient to avoid having multiple clients unless you really need them, following code works perfectly for me, can you try to add setInternalLogging to see if there is any warning log in the console.
    applicationinsights.setup()
    .setInternalLogging(true, true)
    .start();

applicationinsights.defaultClient.trackEvent({ name: "TestEvent" });
applicationinsights.defaultClient.trackMetric({ name: "TestMetric", value: 123 });
applicationinsights.defaultClient.trackMetric({ name: "1075945211", value: 123 });

Hi @hectorhdzg
i did some test with .setInternalLogging(true,true), here atached:
ApplicationInsights:Sender [
  {
    method: 'POST',
    withCredentials: false,
    headers: {
      'Content-Type': 'application/x-json-stream',
      'Content-Encoding': 'gzip',
      'Content-Length': '3974'
    }
  }
]
ApplicationInsights:Sender [
  `{"itemsReceived":23,"itemsAccepted":20,"errors":[{"index":7,"statusCode":400,"message":"106: Field 'name' on type 'DataPoint' is of incorrect type. Expected: string, Actual:<PHONE_NUMBER>"},{"index":9,"statusCode":400,"message":"106: Field 'name' on type 'DataPoint' is of incorrect type. Expected: string, Actual:<PHONE_NUMBER>"},{"index":21,"statusCode":400,"message":"106: Field 'name' on type 'DataPoint' is of incorrect type. Expected: string, Actual: 770300894"}]}`
]
ApplicationInsights:Sender [
  {
    method: 'POST',
    withCredentials: false,
    headers: {
      'Content-Type': 'application/x-json-stream',
      'Content-Encoding': 'gzip',
      'Content-Length': '797'
    }
  }
]
ApplicationInsights:Sender [
  `{"itemsReceived":2,"itemsAccepted":1,"errors":[{"index":0,"statusCode":400,"message":"106: Field 'name' on type 'DataPoint' is of incorrect type. Expected: string, Actual: 676514475"}]}`
]
ApplicationInsights:AzureVirtualMachine [
  Error: connect ETIMEDOUT <IP_ADDRESS>:80
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1133:16)
      at TCPConnectWrap.callbackTrampoline (node:internal/async_hooks:131:17) {
    errno: -110,
    code: 'ETIMEDOUT',
    syscall: 'connect',
    address: '<IP_ADDRESS>',
    port: 80
  }
]
ApplicationInsights:Sender [
  {
    method: 'POST',
    withCredentials: false,
    headers: {
      'Content-Type': 'application/x-json-stream',
      'Content-Encoding': 'gzip',
      'Content-Length': '367'
    }
  }
]
ApplicationInsights:Sender [
  {
    method: 'POST',
    withCredentials: false,
    headers: {
      'Content-Type': 'application/x-json-stream',
      'Content-Encoding': 'gzip',
      'Content-Length': '367'
    }
  }
]
ApplicationInsights:Sender [ '{"itemsReceived":3,"itemsAccepted":3,"errors":[]}' ]
ApplicationInsights:Sender [
  {
    method: 'POST',
    withCredentials: false,
    headers: {
      'Content-Type': 'application/x-json-stream',
      'Content-Encoding': 'gzip',
      'Content-Length': '853'
    }
  }
]
ApplicationInsights:Sender [ '{"itemsReceived":8,"itemsAccepted":8,"errors":[]}' ]
ApplicationInsights:Sender [
  {
    method: 'POST',
    withCredentials: false,
    headers: {
      'Content-Type': 'application/x-json-stream',
      'Content-Encoding': 'gzip',
      'Content-Length': '637'
    }
  }
]
ApplicationInsights:Sender [ '{"itemsReceived":6,"itemsAccepted":6,"errors":[]}' ]
ApplicationInsights:Sender [
  {
    method: 'POST',
    withCredentials: false,
    headers: {
      'Content-Type': 'application/x-json-stream',
      'Content-Encoding': 'gzip',
      'Content-Length': '638'
    }
  }
]
ApplicationInsights:Sender [ '{"itemsReceived":6,"itemsAccepted":6,"errors":[]}' ]

Thanks for the logs @russosalv, issue with your metrics is that you are sending the name as number instead of string and telemetry is being rejected on the ingestion endpoint, please convert it to string before sending and let me know how it goes.

Hi @hectorhdzg
i tried to chenge it but i'm still having the issue
this.applicationInsight.defaultClient.trackMetric({
    name: `sqlMetric_${queryMetric}`,
    value: event.duration,
} as appInsights.Contracts.MetricTelemetry);

@russosalv are you getting different errors now in the logs?, the issue before was the following:
ApplicationInsights:Sender [
{"itemsReceived":2,"itemsAccepted":1,"errors":[{"index":0,"statusCode":400,"message":"106: Field 'name' on type 'DataPoint' is of incorrect type. Expected: string, Actual: 676514475"}]}
]
Please take a look to see if there is some other error coming from ingestion endpoint

@russosalv please let me know if this is still an issue on your side

Hi Hector
i still have the issue,
i'm trying to updated the package to latest (if exist)
but currently i'm not receive any metrics on application Insight using
TrackMetric
Salvatore Alessandro Russo
@.***
Il giorno sab 22 gen 2022 alle ore 01:15 Hector Hernandez <
@.***> ha scritto:

@russosalv https://github.com/russosalv please let me know if this is
still an issue on your side
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/ApplicationInsights-node.js/issues/864#issuecomment-1018986133,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXLWRCE2LKIGYVUH2JSYJ3UXHZJTANCNFSM5HCRTA7Q
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>


Drive space calculation error while executing no user logged in updating

We are seeing an error with how the drive space is being calculated when a machine has no user logged in on some machines. The super log shows.
Mon Apr 24 09:32:20: Inactive Error: Current available storage is at 0 GBs which is below the 17 GBs that is required for download. No active user is logged in so trying again in 3600 seconds
These machine do have the space needed to update.

I'm aware... will be fixed in next build.

Please try latest release: https://github.com/Macjutsu/super/releases/tag/v3.0-b11


Hamburger menu

Consider whether we want our design to hide the top-level menu as soon as the screen is too narrow to fit it across, or is there a better way. Align with community + steering council.
Also, for the screen sizes where we do need a hamburger menu, it should use the original icon.

Okay this one is ready to go; we will be keeping the default PyData theme behavior, wherein the top menu collapses into a hamburger menu once there is no more space for the top menu items to fit across. The only updates are:

The social icons are not staying in the top, but in the footer instead (#38 )
Use the original napari.org hamburger icon instead of default PyData icon
There will be a new style for the top bar nav items, but they are covered by #45

There are a few things to update, but overall this is looking good!

[ ] "version X.X.X" should be left-aligned with the other items in the list
[ ] Larger spacing needed around the bottom and left edge: should be 50px if screen is narrower than 495px, or 25px if 495px or less
[ ] Should not have a shadow below the top menu bar, or when it is opened as hamburger menu either
[ ] Ideally hamburger icon should change to an "x" when open (if this is not easible feasible for now, let me know and we don't have to worry about it for now)

Looks great to me! Thanks!

lol @liaprins-czi should we close this one?

i'm guessing so but please reopen if you have other feedback please 😄

Oops sorry I meant to close!


autoFocus not working

autoFocus parameter is not handled inside the package.
Please handle the prop autoFocus inside the package also.
Reproduction
-Just pass prop autoFocus and check if component autofocus .
Additional context

react-native-google-places-autocomplete: 2.2.0

React Native: 0.62.2

[* ] iOS

[* ] Android

[ *] Web

@FaridSafi please look into this.

Please provide a reproducible example

I have one installed in RN 0.61 and the other in 0.64, it works in 0.61 but does not work in 0.64

Here is what I found out.
This does not work
<GooglePlacesAutocomplete
    placeholder='Search'
    autoFocus={true}
/>

This works
<GooglePlacesAutocomplete
placeholder='Search'
textInputProps={{
autoFocus={true}
}}
/>


histograms: support expansion of native histogram values in templating

Partial #11910
The most fundamental change comes from updating the definition of template.sample and associated template functions. Notably, the return type of the value function changes to interface{}. interface{} is required so that native histograms are included in addition to floats. Similarly, the Value field in alert template data is now of type interface{} instead of float64.
TODO:

[x] Add support in alert templates
[x] Add support in console templates
[x] Fix failing tests. "Signed off by" needs to be added.
[ ] Optional: update the histogram representation. The first iteration was a pure text representation.

Thanks for doing this. I have it on my review queue, but it is loooooooong. I might only get to this after Easter.

I'll try to get to this ASAP, but currently, I'm sick.

Thanks for the update. There's no rush from our side. Hope you feel better soon.


Lexical syntax of names

Previously we just had one single declaration in lang/parser/src/cst/exp.rs.
pub type Ident = String;

This definition was used for variables, constructors, destructors, type constructors, etc.
This is no longer tenable if we want to introduce modules and qualified names. We need more structure.
I propose something like the following:
-- Names for variables: "x", "k"
<VarName>  := <lowercase> (<lowercase> | <uppercase>) *
-- Names for uppercase identifiers: "Cons", "List", "Stream"
<UIdName> := <uppercase> (<lowercase> | <uppercase>)*
-- Names for lowercase identifiers: "ap", "hd", "tl"
<LIdName> :=  <lowercase> (<lowercase> | <uppercase>)*
-- Names for modules:  "control", "std", "function"
<MName> := <lowercase> (<lowercase> | <uppercase>)
-- Names for qualified uppercase identifiers:  "Cons", "std::List", "std::List::Cons"
<QUIdName> := (<MName>"::")*(<UIdName>"::")?<UIdName>
-- Names for qualified lowercase identifiers:  "std::Fun::ap" "Fun::ap"
<QLIdName> :=  (<MName>"::")*(<UIdName>"::")?<LIdName>

I propose that for typeconstructors, constructors and codefinitions we may only use UIdName, and for destructors and and definitions only LIdName. This would also allow to distinguish variables from calls with no arguments in the parser, i.e. x vs Nil.

Regarding syntax: Following the Rust conventions, I would advocate for allowing underscores everywhere, and encourage (but maybe not enforce) snake_case over camelCase for definitions and destructors.
Regarding implementation: For better error messages, it is probably a good idea to keep the parser as permissive as possible and only distinguish these syntactic categories during lowering/name resolution?

I agree that the parser should be permissive in general, but there are a few things that we should distinguish early in order to make our life easier later on. For example, I don't want the parser to allow qualified names in binding positions of both names and variables. E.g. I would expect the parser to reject:
data foo::Bar { bizz::Fizz( foo::x : Type,...) }
     ^^^^^^^^   ^^^^^^^^^^  ^^^^^^
          (a)      (b)        (c)

Here (a) and (b) are binding positions for names, and (c) is a binding position for a variable. The parser should reject them all. In those positions we only want to allow unqualified identifiers.
The other thing is whether we want to enforce all module names to be lower case and all type names to be upper case.
This would allow us to distinguish already in the parser whether a name is qualified by a type vs a module. Compare:

std::result::Result (Here, std and result must be module names.)
std::result::Result::Ok (Here, std and result must be module names, and Result a type name)

Yeah we should enforce lowercase module names but it may be easier to allow for multiple error messages in lowering/name resolution than making parse errors recoverable. It would certainly be more fine-grained.