Very slow map first time it is called on the output tensor

I have stacked layers (consist of CLConvolutionLayer, CLActivationLayer, CLPoolingLayer). I fill the input tensor using like this: input.map(), memcpy(...), input.unmap(). It is extremely fast, about 0.003s. When I pass the input tensor through layers I want to read the network output and I do it like this: output.map(), memcpy(...), output.unmap() and it is extremely slow, about 0.45s. When I do that sequence of commands second time on output tensor, it is fast, about 0.003s. How can I make first mapping fast?

Hello @deepneuralnetwork,
My assumption is that this happens due to the CLConvolutionLayer.
In order to perform an efficient GEMM we reshape the input weights, thus this might need a bit more time for the first run, but it only happens in the first run. This new tensor will be used in every subsequent run. The only way to make this mapping fast is to provide weights that are already reshape to our requirements. You can use this function to do so and you also have to make sure that the function is aware that the weights are reshaped by using the WeightsInfo parameter in the CLConvolutionLayer API here.
Hope this helps.

Can you please write me part of the code to reshape weights and pass it to CLConvolutionLayer?

You can have a look in the configure code of CLConvolutionLayer and just do the same yourself outside the function

I do it like this:
CLTensor _weights_reshaped;
CLConvolutionLayerReshapeWeights _reshape_weights;
    const DataType dt = cl_input.info()->data_type();
    const int fixed_point_position = cl_input.info()->fixed_point_position();
    const bool _has_bias = (&cl_bias != nullptr);
    unsigned int mat_weights_cols = cl_weight.info()->dimension(3);
    unsigned int mat_weights_rows = cl_weight.info()->dimension(0) * cl_weight.info()->dimension(1) * cl_weight.info()->dimension(2) + (_has_bias ? 1 : 0);

    TensorShape shape_wr(mat_weights_cols, mat_weights_rows);
    TensorInfo  info_wr(shape_wr, 1, dt, fixed_point_position);
    _weights_reshaped.allocator()->init(info_wr);
    _weights_reshaped.allocator()->allocate();
    _reshape_weights.configure(&cl_weight, &cl_bias, &_weights_reshaped, false);

    conv->configure(&cl_input, &_weights_reshaped,
                          &cl_bias, &cl_output,
                          PadStrideInfo(1, 1,
                                        (unsigned int) conv->input_padding.top,
                                        (unsigned int) conv->input_padding.top), WeightsInfo(true, 3, 3, 16));

_reshape_weights.run();
conv->run();

and it passes, but it gives me wrong numbers for some reason. Do you know where can be a mistake?

You need to allocate after the configure

I did it, but nothing changed, cl_input, _weights_reshaped, cl_bias and cl_output, cl_weight and cl_bias are all allocated.

Still didn't find solution on this issue, is there anything else that could be wrong in this approach because of which I can't get correct results?

I reshaped weights and now is everything okey with inputs, but first problem still remains.
Here is more detailed information and minimal example.
When I run this:
CLTensor tensor;
tensor.allocator()->init(TensorInfo(TensorShape(3U, 3U, 16U, 1U), 1, DataType::F32));

tensor.allocator()->allocate();
high_resolution_clock::time_point t1_ = high_resolution_clock::now();
tensor.map();
high_resolution_clock::time_point t2_ = high_resolution_clock::now();
tensor.unmap();

high_resolution_clock::time_point t1__ = high_resolution_clock::now();
tensor.map();
high_resolution_clock::time_point t2__ = high_resolution_clock::now();
tensor.unmap();

t1__ and t2__ are very small, both about 0.0001s.
But when I do this above commands:
layer1->run();
layer1->run();
layer1->run();

When run() returns it doesn't mean the kernel has finished to execute: you need to call CLScheduler::sync() for that.
unmapping and cache maintenance is usually deferred to the first kernel execution which is why unmap() will be fast but the first kernel executing after that is slower.

Yes, the problem was in CLScheduler::sync(). When I call sync and wait for all layers to finish, I end up with very large execution time: ~0.5s. It seems that OpenCL ARM compute library for GPU is slower than NNPACK CPU implementation (~0.2s), I am using only convolution layers, max pooling layers and ReLUs. Do you have any advice how to speed things up?


DynamoDB pagination

The DynamoDB class only supports reading one page of items right now

We're using @winglibs/dynamodb now so this shouldn't be an issue


chore(main): release 0.2.4

Auto generated release
0.2.4 (2024-09-12)
Miscellaneous Chores

deps: bump clap from 4.5.16 to 4.5.17 (#55) (b1e1961)
deps: bump rust in the docker-minor group (#58) (c4046f0)
deps: bump serde from 1.0.209 to 1.0.210 (#57) (fa52731)
deps: bump serde_json from 1.0.127 to 1.0.128 (#56) (c5ea8b5)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v0.2.4
:sunflower:


TASK 1

Student, group: Antsiferov Sergey 3530901/90201
URL: https://github.com/Luciferuz/WebAppConverter
Git approach: Git-flow

`+


Add [twitter] tests

Add test for twitter,
Add error handling messages to right hand side of badge: invalid, inaccessible, invalid user
Note: This PR's tests do not cover this section for the twitter badges.

Messages

:book:

:sparkles: Thanks for your contribution to Shields, @RedSparr0w!

  Generated by :no_entry_sign: dangerJS

Full coverage except for when ?style=social & [catch](https://github.com/badges/shields/pull/1394/files#diff-78c12f5adc1848d13b1c6f07055d996eR6419


Why do i still can't receive email?

Sorry,it's still about alertmanager sending email.There already have some alert informations at http://localhost:9090/alerts.
`Alerts
APIHighRequestLatency (2 active)
ALERT APIHighRequestLatency
IF histograms_labels_metric_bucket{le="0.5"} > 10
FOR 1m
ANNOTATIONS {description="{{ $labels.instance }} has a median request latency above 1s (current value: {{ $value }}s)", summary="High request latency on {{ $labels.instance }}"}
Labels 	State 	Active Since 	Value 	Silence
exported_job="some_job" group="test" instance="localhost:9091" job="some_job" lable="b" le="0.5" 	firing 	2016-04-29 02:00:37.804 +0000 UTC 	694
exported_job="some_job" group="test" instance="localhost:9091" job="some_job" lable="a" le="0.5" 	firing 	2016-04-29 02:00:37.804 +0000 UTC 	694
Test (1 active)
ALERT Test
IF sum(counter_noLabels_metric) > 100
FOR 1h
ANNOTATIONS {description="{{ $labels.instance }} has a median request latency above 1s (current value: {{ $value }}s)", summary="High request latency on {{ $labels.instance }}"}
Labels 	State 	Active Since 	Value 	Silence
pending 	2016-04-29 06:05:22.804 +0000 UTC<PHONE_NUMBER>284094`
And i can go to the page which link is http://localhost:19091/#/status,with the alertmanager configuration:
templates:
- '~/myGopath/src/github.com/prometheus/alertmanager/template/*.tmpl'
route:
  group_by: ['alertname']
  receiver: email-me
receivers:
- name: email-me
  email_configs:
  - to<EMAIL_ADDRESS>    from<EMAIL_ADDRESS>    smarthost: smtp.126.com:25
    auth_username<EMAIL_ADDRESS>    auth_identity<EMAIL_ADDRESS>    auth_password: "xxxxxx"

And nginx configuration:
server {
        listen <IP_ADDRESS>:19091;
        location / {
                proxy_pass  http://localhost:9093;
                post_action @forward;
        }
        location @forward {
        proxy_pass http://<IP_ADDRESS>:9093;
        }
   }

Why do i still cant' receive email  in<EMAIL_ADDRESS>

Do you have any error messages or other debugging information?

Closing due to inactivity


Route with parameter such as /:id breaks

A route with any route parameter in breaks the Swagger doc generation with the following error:

Apologies variation of this already discussed here https://github.com/rhinobase/hono-openapi/issues/25#issuecomment-2556774686

I think some changes in v0.3.0 (#19) broke this, downgrading back to v0.2.1 resolved the issue for me.

Yes, pushing an object to the array fixes the issue:
            if (index !== -1) schema.parameters[index].in = "path";
            else schema.parameters.push({
                schema: { type: "string" },
                in: "path",
                name: param,
                required: true,
              });


Could not deploy a Pool with latest code

Using latest code, I could not deploy a Pool anymore:

Commit_ID a1b57396c977ac25d566d340405a9f9a177ddeb8, Branch development


Change ContentType of Request

https://github.com/skazantsev/WebDavClient/blob/b1886fea6b44e62f1737eb688cdead8bc28c2016/src/WebDav.Client/WebDavClient.cs#L110
It would be nice if the ContentType of the RequestParameters-object could be changed from outside WebDavClient class. By default, it is set to "text/plain; charset=utf-8". For example, right now I would like it to be "application/xml; charset=utf-8".

Hi @samirelassal ,
I think it is a nice change to allow clients to set a media type for methods that have a request body.
Also application/xml seems to be a better default than text/plain.
I'd like to make the following changes:

make application/xml a default media type for PROPFIND, PROPPATCH, LOCK methods.
allow clients to override it by setting ContentType on the params object.

I will try to publish a version with these changes today.
Thanks for bringing this up!

The version 2.7.0 is released in NuGet.

Thanks a lot mate!


Flaky prop test

Seen this one a couple times. Not sure if it's new?
https://github.com/firezone/firezone/actions/runs/10399832043/job/28799335239?pr=6306

Interesting, will look into it!

The seed didn't reproduce (I need to look into this) but I could work out from the log what the problem was.


every time new activity create.

When i go login to register and back and forth it will create a new activity again and again.

Hey, could you please describe a little more what the problem is? Is the problem that when you go back from Register to Login, and back to Register your fields in the Register form are reset?

There is three activity login ,register and main.
I connected them each other and when i go one to another and then back to same one that time it will be new activity created automatically.

is this fixed?

Hey @jonny2plates It is fixed.


MOD -> fix bug, num_fg should be num_bg

fix bug:
num_fg should be num_bg

Sorry to reply so late...
LGTM!


Pages slider cuts off on mobile view

As you can see in the screenshots above, the pages slider cuts of somewhere half way, while there is enough room for some more text.
Viewing this from an iPhone 15 Pro.

Mobile support has not yet been implemented; you can open issues regarding it once it is.

Mobile support has not yet been implemented; you can open issues regarding it once it is.

I saw some other issues regarding mobile view that were solved, so I thought this would be a great addition. But I certainly will.
Not actively using this dashboard, but I'm here to help straighten out the bugs. I see a lot of potential and might move towards this dashboard as it further develops.
Thanks so far!


Q: --watch not triggering changes in src/, only works for changes in test/?

webpack4-app/
  dist/
  src/ (all source, no tests)
  test/ (all tests)

mocha-webpack --watch --webpack-config conf.js --recursive './test/**/*.test.js'

Right now, this is working only when test/ files are changed, but not when src/ files are changed. Is this intended behavior? Thanks.

it's because of the path you have at the end. If instead you used
mocha-webpack --watch --webpack-config conf.js --recursive '*/**/*.test.js'
it would grab both. It will also look at dist/, but as long as you have no *.test.js files in there, it's fine.


'AsyncQueueWorker': identifier not found on Windows 10 x64

Hi @addaleax ,
Since this commit, which introduces AsyncQueueWorked, I get the following error when building Windows:
..\src\lzma-stream.cpp(182): error C3861: 'AsyncQueueWorker': identifier not found [C:\Projects\etcher\node_modules\lzm
a-native\build\lzma_native.vcxproj]

As far as I can see, this comes from NAN. Any ideas?

@jviotti What Node.js version are you using? Would this fix it for you?
diff --git a/src/lzma-stream.cpp b/src/lzma-stream.cpp
index b2eb8ea1416a..12a17656c796 100644
--- a/src/lzma-stream.cpp
+++ b/src/lzma-stream.cpp
@@ -179,7 +179,7 @@ NAN_METHOD(LZMAStream::Code) {

   if (async) {
 #ifdef LZMA_ASYNC_AVAILABLE
-    AsyncQueueWorker(new LZMAStreamCodingWorker(self));
+    Nan::AsyncQueueWorker(new LZMAStreamCodingWorker(self));
 #else
     std::abort();
 #endif

It’s weird that I can’t reproduce this locally on Linux or Windows and CI didn’t pick that up either, but I’m guessing that must be it.
@jviotti Can you verify that the above change works? Sorry for all the compilation trouble here…

Hi @addaleax ,
Thanks for the quick response! I'm running v5.10.0, let me apply the patch and see how it goes.

The patch works fine, but now I get a different error:
C:\Projects\lzma-native>npm install --build-from-source
npm WARN deprecated<EMAIL_ADDRESS>Jade has been renamed to pug, please install the latest version of pug instead of jade
npm WARN deprecated<EMAIL_ADDRESS>graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to<EMAIL_ADDRESS>as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.

><EMAIL_ADDRESS>install C:\Projects\lzma-native
> node-pre-gyp install --fallback-to-build

C:\Projects\lzma-native>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" clean )  else (node "" clean )

C:\Projects\lzma-native>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" configure --fallback-to-build --module=C:\Projects\lzma-native\binding\lzma_native.node --module_name=lzma_native --module_path=C:\Projects\lzma-native\binding )  else (node "" configure --fallback-to-build --module=C:\Projects\lzma-native\binding\lzma_native.node --module_name=lzma_native --module_path=C:\Projects\lzma-native\binding )
Warning: Missing input files:
C:\Projects\lzma-native\build\..\deps\doc\liblzma.def

C:\Projects\lzma-native>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" build --fallback-to-build --module=C:\Projects\lzma-native\binding\lzma_native.node --module_name=lzma_native --module_path=C:\Projects\lzma-native\binding )  else (node "" build --fallback-to-build --module=C:\Projects\lzma-native\binding\lzma_native.node --module_name=lzma_native --module_path=C:\Projects\lzma-native\binding )
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
  build
  Microsoft (R) Library Manager Version 12.00.31101.0
  Copyright (C) Microsoft Corporation.  All rights reserved.

LINK : fatal error LNK1104: cannot open file 'C:\Projects\lzma-native\deps\doc\liblzma.def' [C:\Projects\lzma-native\build\liblzma.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `msbuild` failed with exit code: 1

The mentioned file indeed doesn't exist.

You may have to run npm prepare first for compiling on Windows :/

That was it, works like a charm now! Thanks a lot again for the awesome support!

Sure. I’ve committed the fix in e16749c644aec3bafbb442f50f892ddbdc135054 and I’ll publish 1.4.1 once the CI runs have completed… :snail:

Published as 1.4.1 … thanks for the report!

All up and running with the new version, thanks again!


User should be able to [Start/Pause/Stop] jobs from the "Jobs" tab without entering the job itself

User should be able to [Start/Pause/Stop] jobs from the "Jobs" tab without entering the job itself for the purpose of brevity, by adding 3 buttons for each job in the Jobs tab.
I have been using Openbullet 2 for a while now, and I really hope that such a feature would be added in the future.

I think this would add a lot of clutter though... I'm not sure I like it very much.


Update maintainers and docs

Update CODEOWNERS and MAINTAINERS
Add video link to README

Coverage remained the same at 80.756% when pulling cb59e9395d2fa2de53c383fb377ff860e21bda77 on update-maintainers-and-docs into 4d7977c309c938e95b9ff68b733b60b82fc2efd2 on master.

👍


Updated Japanese translation

Crowdin configuration files are inevitably mixed in!

Should I translate in the dev or main branch from now on?

Should I translate in the dev or main branch from now on?

On dev


cdc: run CheckLeader in a dedicate thread

What is changed and how it works?

Issue Number: Close #13774
What's Changed:
cdc: run CheckLeader in a dedicate thread

Check List
Tests

Unit test
Manual test (add detailed scripts or steps below)

TiCDC Latency is reduced from ~50s to ~10s, when there are lots of write workloads.

Without This PR
With This PR

Release note
Run CheckLeader in a dedicate thread to stabilize TiCDC replication lag.

/merge


chats: Set :raw-data manually.

Small fix to #11's closer-mop-based auto-initialization.

@svetlyak40wt, any chance you can give me commit access so that I can fix those faster and add more types easier? :P

Artyom, I've added you to the group of contributors.

Thanks!

Anyway, it is better to make contributions through pull-requests, because this way CI has a chance to find some errors.

Yes, that I understand. And discussion is better in the PRs, than it is in commit comments xD

However, there is no CI for this repository yet. Maybe it is a good moment to set up tests, docs and linter pipeline using https://40ants.com/ci/. What do you think?

No promises, but it looks interesting :)

If you want, I can set up a CI, but we need to figure out how to run tests for the bot. Probably two bots could talk to each other during the test?

If you want, I can set up a CI, but we need to figure out how to run tests for the bot.

I want to try working with GitHub Actions, sounds like a good project to start off with :)

Probably two bots could talk to each other during the test?

Yes, that's the only way to test this, I suppose. As a possible improvement, use local bot server to restrict thing to local effects?

Cool! Here is an example how of a basic CI config which enables linter, documentation builder and tests: https://github.com/40ants/reblocks/blob/master/src/ci.lisp

I didn't know about local bot server. I think it is a good idea to start it automatically during the test run if this will help.


Content Render shows sites flagged as under development

We are just about ready to go live with our first translation of a site and have two other translations set as development mode.  When I add the display object to the page to show the translations those that are still in development mode flags are showing up.  Is there a way to turn off the flags if the sites are not in LIVE mode?  This is relatively urgent as they want to go live with the first one.  Hope someone has an answer.
For example, the Spanish site is in development mode and I do not want the flag to show the content render for the Spanish site.

Thank you.

I did get an answer to this from Scott,
You could change line 43 of cfcs/translationManager.cfc to:
and tcontent.siteid !=  AND tsettings.enableLockdown != 'development'
However, this also affects the ability to assign translations pages in the admin.  Is there a way to turn it off for the front but have the translations available in the admin for assignments.
For example, in the attached image I have a newly created Korean site and a Spanish site that are in Development mode because their translation isn't complete yet.  when I go to assign translation pages the Spanish doesn't show up in the Korean site and the Korean site doesn't show up in the Spanish.

Sites not marked 'live' will no longer appear in navigation.


Identify gaps in business strategy - other categories?

This is a good table, I think of a few other things to consider with why the cloud makes sense in you business strategy:

Procurement complexity - onprem hardware is traditionally complex to purchase, and the lead time to actually receive it can be counted in weeks. In a scaling enterprise, cloud can help a lot
Go to market and agility - advanced added-value technologies can help greatly reduce GTM times, and allow faster iterations
Service Management Modernization - no physical provisioning means self-service is possible, and so you can increase the self-sufficiency and QoS for departments of your companies.

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

ID: 3ddb728c-056c-7699-d898-77dab53209f3
Version Independent ID: 183f4567-8c8b-5af8-50cb-a2bd50accb06
Content: CAF: Getting started with the Cloud Adoption Framework - Microsoft Cloud Adoption Framework for Azure
Content Source: docs/cloud-adoption/getting-started/overview.md
Service: architecture-center
GitHub Login: @Petertaylor9999
Microsoft Alias: pnp

@cfe84 Thank you for providing your feedback. I have assigned this issue to content author to further review and take a right course of action on it.

Charles,
Thanks for the feedback. I agree, these are good things to consider regarding the business strategy.
Over the next few months, we will rolling out a good bit of content in CAF. As part of that rollout plan we will be adding guidance around business strategy and motives for moving to the cloud. I'd actually like to pull these topics into that stream instead of adding them to this older article.
Thanks again for the idea. Please keep them coming!
-Brian


ISPN-11998 Keep new and legacy memory attributes in sync

https://issues.redhat.com/browse/ISPN-11998

Change default storage to HEAP everywhere
Document deprecated storage attribute values
in the XSD
Synchronize new and old eviction attributes
both in the buider and in the runtime configuration
Synchronize when copying configurations
Synchronize when reading JSON
Add new configuration and defaults tests
Make attributes that cannot change at runtime immutable
Eviction new and legacy attributes should stay in sync
Fix tests that set the storage to null
Update tests for new default storage type

Merged, thanks


Editor freezes sometimes when waking up from suspend

Godot version: 3.2.2

OS/device including version: Arch Linux (kernel version 5.8.3-arch1-1), GNOME 3.36.5

Issue description:
Sometimes after suspending the machine then waking it up, the editor freezes completely, and when killed, becomes a zombie process.

Steps to reproduce:

Open the editor and use it for some time
Suspend the machine
Wake it up and log in
Editor is frozen
I haven't yet been able to figure out the exact circumstances required for this to happen. It seems random so far.

Minimal reproduction project:
Any project will do.

Can you reproduce this with any other 3D games or applications?

Which graphics card model (and driver) are you using?

AMD Radeon R5 M330, with the amdgpu kernel module and mesa 20.1.6

can you reproduce this with any other 3D games or applications?

Nope.

Duplicate of https://github.com/godotengine/godot/issues/52738.


Catch exception in Middleware ans set 500 and write exception message

Prerequisites

[x] I have written a descriptive pull-request title
[x] I have verified that there are no overlapping pull-requests open
[x] I have verified that I am following the Nancy code style guidelines
[ ] I have provided test coverage for my change (where applicable)

Description
Addresses #1594

The try catch can go where it is in this PR or we can go a bit further in and try/catch handler.Handle in the engine CheckStatusCodeHandler method. You decide 😄

I vote to move the try catch to CheckStatusCodeHandler in NancyEngine.
That way all hosts benefit from this change, I don't even know what would happen in a non-nancy host, just fail to respond I guess?

No still would work. I use OwinHttpListener host and that eventually sets the 500 even though the environment says its 200 in MW.
Putting the try/catch in the CheckStatusCodeHandler would solve the issue at hand but I wonder if the try/catch at a higher level might catch other issues not thought of yet

Looks like TeamCity doesnt like the await in the catch block. Guess appveyor and travis use a C#6 compiler? What to do?

I don't even know what would happen in a non-nancy host, just fail to respond I guess?

For ASP.NET/IIS, it'd return the YSOD 😁

ooks like TeamCity doesnt like the await in the catch block. Guess appveyor and travis use a C#6 compiler? What to do?

Yeah, we desperately need to get the newer build bits on that build machine.


How to deal with floating elements?

I am wondering if I can use this npm with floating elements.

Is this possible?

I don't know give it a shot and see what happens.

I did, and unfortunately it didn't work as expected...


Handle errors in FhirPathDisplay / FhirPathTable

Good one

Coverage increased (+0.001%) to 95.117% when pulling 868065b137abd22ebfa29fe0fef2b7f779a7d85a on cody-fhirpath-display-handle-error into 311bf5ef3b084543586a15861d874cb696475256 on main.


Autoconfigure CloudFoundryRouteServiceRoutePredicateFactory and add cloudFoundryRouteService in DSL

not supported yet

Codecov Report

Merging #294 into master will decrease coverage by 0.72%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #294      +/-   ##
==========================================
- Coverage   72.98%   72.25%   -0.73%
==========================================
  Files         114      113       -1
  Lines        2946     2873      -73
  Branches      208      202       -6
==========================================
- Hits         2150     2076      -74
- Misses        687      693       +6
+ Partials      109      104       -5

Impacted Files
Coverage Δ

...cloud/gateway/config/GatewayAutoConfiguration.java
98.05% <100%> (+0.01%)
:arrow_up:

...ork/cloud/gateway/route/builder/PredicateSpec.java
58.69% <100%> (+7.53%)
:arrow_up:

...scovery/DiscoveryClientRouteDefinitionLocator.java
19.04% <0%> (-74.57%)
:arrow_down:

...gateway/handler/predicate/PredicateDefinition.java
51.61% <0%> (-6.46%)
:arrow_down:

...amework/cloud/gateway/filter/FilterDefinition.java
59.37% <0%> (-6.25%)
:arrow_down:

...overy/GatewayDiscoveryClientAutoConfiguration.java
100% <0%> (ø)
:arrow_up:

.../gateway/discovery/DiscoveryLocatorProperties.java

...loud/gateway/filter/WeightCalculatorWebFilter.java
91.11% <0%> (+1.11%)
:arrow_up:

...handler/predicate/HeaderRoutePredicateFactory.java
88.88% <0%> (+16.66%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d894d31...d41a4dd. Read the comment docs.


Project particle momentum and energy

Description

Adds rhou_src, rhov_src, E_src fluid fields
Makes SOURCE_MOMENTUM particle prop a 2-element vector
Adds a SOURCE_ENERGY particle prop
Populates particle properties for source energy and momentum (along SimpleSOL problem axis) in ionisation kernel
Projects SOURCE_MOMENTUM[0],SOURCE_MOMENTUM[1], SOURCE_ENERGY onto rhou_src, rhov_src, E_src respectively

N.B. New source fields automatically added to Nektar-integrated fields by SourceTerms::v_Apply()
Fixes #156
Type of change

[x] New feature (non-breaking change which adds functionality)

Testing
Passes existing (placeholder) SimpleSOLTest.2DWithParticles integration test for both toolsets.
Test Configuration:
OS: Ubuntu 22.04
Compiler: GCC 11.3.0 / OneAPI v2022.1.0
SYCL implementation: Hipsycl v0.9.2 / DPC++ v2022.1.0
MPI details: MPICH v4.0.2
Hardware: CPU (Intel Alder Lake)
Checklist:

[x] New and existing unit tests pass locally with my changes
[x] I have used understandable variable names
[x] I have run clang-format against my *.hpp and *.cpp changes
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings

@oparry-ukaea I'm not getting anything in the source fields or any changes to the bulk fields either. Is that what you see running this on your machine?


Add actix-web example

Resolves #53

I decided to refresh the PR and have made clear squashed signoff changes which are the same as in previous version.


Let's see what happens

I assume this is going to blow up

Closing as @dipinhora has already figured this out.


libsecp256k1 side channel code fix

How about this eprint.iacr.org/2016/103.pdf
"Speed Optimizations in Bitcoin Key Recovery Attacks"
(disable side channel code -> speed+ )
Ryan do it in last release github.com/ryancdotorg/brainflayer
(also see github.com/llamasoft/secp256k1_fast_unsafe)
good question, is whether ecmultab will be effective on gpu as well as on cpu,
ie (as I understand it) effective memory access vs. real multiplication

Hi,
Thanks for the suggestion. We are always looking for ways to make the code more efficient.
That being said, the technique outlined in the paper is not applicable here.
For BitCrack, the points need to be in affine coordinates because they are hashed in that form (as per Bitcoin address standard). Going from projective coordinates to affine coordinates requires a field inversion, which negates the benefit of projective coordinates.
And even then, inversions can be batched together such that N inversions only costs 3N multiplications and 1 inversion. When N is large enough, the inversion is practically costs nothing.
Multiplication tables might be a good idea, especially since the shared memory on the GPU isn't being utilized.
Another thing worth looking into is using floats in a 10x26 configuration instead of the int32's we're using now, as most cards are fully pipelined for floating-point.
Thanks


feat: add C ndarray interface and refactor implementation for stats/base/dcumax

Resolves None
Description

What is the purpose of this pull request?

This pull request:

adds C ndarray interface.
refactors implementation wherever needed.

Related Issues

Does this pull request have any related issues?

This pull request:

resolves None.

Questions

Any questions for reviewers of this pull request?

No.
Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

No.
Checklist

Please ensure the following tasks are completed before submitting this pull request.

[x] Read, understood, and followed the contributing guidelines.

@stdlib-js/reviewers

ready for initial review @kgryte!

This now LGTM. As a heads-up, I made a couple of small changes that may be applicable to other similar PRs, @aayush0325.

I'll take care of that, thanks @kgryte!


Use constructor dependency injection instead of setter

Very often you have to check if a config object is present and instantiate one if it isnt. This is because it is not guaranteed that it was actually passed into the constructor.
Every class that requires a config object should have a non nullable constructor parameter, e.g.:
class Grabber {
    public function __construct(Config $config)
}

@fguillot @mkresin watch this talk https://www.youtube.com/watch?v=RlfLCWKxHJ0&list=PL693EFD059797C21E

I think the grabber class have to be rewritten, the code start to become a mess.

I made some refactoring in the grabber class...
I'm also thinking about moving all grabber stuff into a subfolder "Scraper" and split the grabber class into smaller files.

Moving the rule parser and the candidate parser outside of the grabber class will also improve the maintainability.

It's now the case, the constructor take the Config class as argument.
I have made several refactoring like I said above.
I also renamed the Grabber class to Scraper, not sure if it was a good idea but I already done many breaking changes.
Feel free to propose any improvement/refactoring.

Naming sounds good, will take a look around the code :)


City not Parsed Correctly

Input: "San Francisco, CA 00000" (Also tested with comma between CA and 00000)
Outputs the PlaceName as "Francisco"

Does the same thing for New York, NY

I am seeing a similar issue with some other addresses.  The addresses below are fictional (to avoid PII issues).
12345 North Point Laguna Hills CA 12345  <--  This one parses correctly:
12345 | AddressNumber
North | StreetName
Point | StreetNamePostType
Laguna Hills | PlaceName
CA | StateName
12345 | ZipCode
12345 South Point Laguna Hills CA 12345  <--  But this one parses incorrectly:
12345 | AddressNumber
South | StreetNamePreDirectional
Point Laguna | StreetName
Hills | PlaceName
CA | StateName
12345 | ZipCode
It looks like it knows that South is StreetNamePreDirectional but North is just StreetName (it is possible that there is no valid North Point in Laguna Hills CA).  But I thought it was agnostic of if it is a valid address or not?  Is that not so?

I'm having the same issue as well. New York, NY parsed the city as just 'YORK'.
I tried adding commas between address elements to see if that makes it easier to classify elements but that hasn't worked.

Run into this with Key West FL as well.


Improve documentation

for each indicator mention the source
generate API documentation

Would be nice to understand more clearly what "chaining" is. I'm don't quite get it just from the readme.

Hi @afkjm , thanks for the feedback. In the meantime, what exactly is not clear from the example? Output of one indicator simply becomes input of another one.
# Indicator chaining
sma1 = SMA(3)
sma2 = SMA(3, input_indicator = sma1)
sma3 = SMA(3, input_indicator = sma2)

print(f"Chain three moving averages:")
sma1.add([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(f"SMA1: {sma1}") # [0, 0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
print(f"SMA2: {sma2}") # [0, 0, 0, 0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0]
print(f"SMA3: {sma3}") # [0, 0, 0, 0, 0, 0, 4.0, 5.0, 6.0, 7.0]

Thanks, I see now.

Delivered in #125


Interim for changeover to named as openjdk8

Temporarily creating duplicates of each JSON file with '_openjdk8' suffixed to the names.
The non-suffixed versions can be removed after changes to the website are proved to work with the suffixed versions.

corresponding issue to revert?

Done - opened issue #4


hero mdbook only works on root

I am experiencing an issue where the hero mdBook command only runs successfully when I'm in the root directory of my project. When trying to run from subdirectories or non root , it fails to detect or execute the commands as expected.

Notes

You can run sudo hero mdbook ..., but the book gets created in /root/code/... so normal user can't access


Fix a BUG related to the PV cleanup in pod_make()

The PV may be already deleted before calling the finalizer, hence
we cannot use the wait function to find out the PV.

I've deleted the clean up code of pv/pvc in https://github.com/longhorn/longhorn-tests/pull/358 because once that will get merged the pv/pvc will be deleted in their respective fixture. I think this will be no longer required.

I've deleted the clean up code of pv/pvc in #358 because once that will get merged the pv/pvc will be deleted in their respective fixture. I think this will be no longer required.

But we cannot assume that the pod/pvc/pv always exists when the finalizer is invoked and everything works as expected. We need to make sure this finalizer won't get stuck there if somehow the pod/pvc/pv has been removed in advance.

@khushboo-rancher Just in case, do we still need this PR?

@shuo-wu Yes, we'll need this.


fix: Handle syntax errors in required file

If the required file has syntax errors then loadfile will return
nil, error. That nil is directly passed to string.dump which
throws a nil error and the syntax error is lost.
This  adds a check so that doesn't happen
A simple way test is to have a file with a syntax error
like
print("hello"

And try to require it.
@lewis6991 this is the issue that I mentioned earlier in matrix.

Thanks


GitHub Actions Workflow

Background & motivation
I am looking to run tests for a kurtosis package repository using GitHub Actions. A couple of issues arise:

How to stop and tear down the enclave from within the package script?
How to signal any errors back to the workflow if any tests fail?

Desired behaviour
The kurtosis cli should support run and block while running a package and terminate with an error number given the package script.
How important is this to you?
Critical; Kurtosis is unusable for me without it.
What area of the product does this pertain to?
CLI: the Command Line Interface

hey @igor-ritual  thanks for filing this! this is a great use case for kurtosis and I'd love to make this work for you. The way most folks are doing this right now is via a combination of the CLI and using our Golang or TS SDKs for interacting with the kurtosis engine to handle testing assertions and teardowns. I'll give some thoughts on each bullet point you mentioned:
With regards to stopping and tearing down an enclave from within the package script - we've designed the enclave stop and enclave rm functionality to happen outside of the packaging system, meaning they're called from either the CLI or directly from the Engine & APIC protobuf apis (https://docs.kurtosis.com/engine-apic-reference), for which we have a TS client library and a Golang client library.
So typically in a workflow like a github actions workflow, users write either a bash script that uses the CLI to stop and tear down enclaves, or they call into the TS or Golang client libraries to run tests in those languages, and tear down the enclaves at that layer as well.
Do those options work for handling the first issue of "how to stop an tear down the enclave from within the package script"? or am I missing something about your use case that requires stopping and tearing down the enclave within the package script specifically - is there a reason it has to happen within the script?
With regards to the second bulletpoint "How to signal any errors back to the workflow if any tests fail?" - how are you running assertions from your tests? If you use the TS or Golang client libraries  then your test assertions would be in the language specific testing libraries and you would be able to use those SDKs to trigger shutdown of the enclaves.

I might be totally off the mark in understanding your workflow and what you're trying to do here, so please let me know if the above context was helpful in achieving your workflows, or if it's not, could you elaborate on how the "run and block in the CLI, along with error codes" will unblock your testing use case so I can understand better?


Feature/UI kit 3042/implment voice message input and voice message item

For Internal Contributors
UIKIT-3042
Description Of Changes

Create UI components

PlaybackTime

ProgressBar

VoiceMessageInput

VoiceMessageItemBody

Add new IconColor

PRIMARY_2
for

Types Of Changes
What types of changes does your code introduce to this project?
Put an x in the boxes that apply_

[ ] Bugfix
[ ] New feature
[ ] Documentation (correction or otherwise)
[ ] Cosmetics (whitespace, appearance (ex) Prettier)
[ ] Build configuration
[ ] Improvement (refactor code)

https://github.com/sendbird/sendbird-uikit-react/pull/405


arduinoPinout-yutaro

Artwork description:

I often write code for devices such as Arduinos, EP32, Raspberry Pi, etc. However, every time I do, I always have to go looking for the pinout diagram to see which pin is connected where. I thought it would be interesting to have the plotter be able to plot a Arduino pin out diagram.

Coding experience:

I won't say I'm really good at coding (especially javascript and turtles). However, I do have some experience with embedded system programming (C++), and python.  However, I do have experience creating vector graphics in Adobe illustrate so that is what I decided to do. Fitting all of the labels for the pico proved quite a little bit of pain.

Images:

I love the aesthetic of these! Is there some way you can make the art computational?
One thing you could try is automating the labeling of different pins. Like in the image below.
Better yet would be making it artistic in some way. How could you use the circuit in a composition?

Well the automating the pin labeling would be quite a pain as the pins are all in a different location


CurseForge comments are off

Wanted to say that the mod looks really well made and wanted to comment on the icon because I almost missed that mod while scrolling through since it looked like a copy pasted asset from the internet which usually turns me away from mods personally...

It's a temporary placeholder icon. It's an alpha mod in a very early state.
CurseForge comments are on par with YouTube comments; I have disabled them on purpose.


Error when running prepDE.py

I get the following error when running prepDE.py on stringtie estimate output:
Traceback (most recent call last):
  File "./prepDE.py", line 255, in <module>
    geneDict.setdefault(geneIDs[i],{}) #gene_id
KeyError: 'STRG.337.1'

I only get this for one sample out of fifteen. I run the HISAT2 > Stringtie workflow as described in Pertea et al. (2016). I want to feed this into edgeR. Is there another option in case I can not resolve this problem?
Additional question: What is the difference between MSTRG and STRG?

It seems this issue appears in the new version. There is no problem for Stringtie 1.3.x.

@ttgump, that is incorrect (I hope!), prepDE.py should work with version 2.0 just the same, I tested it on the original RNA-Seq protocol data (chrX) and it worked as expected.  Admittedly it might be tricky to get it running properly, especially when a parent folder is provided as input (instead of a space delimited table with sampleID and GTF_path), as it pulls in other .gtf files in that directory tree that you might not have wanted to use for prepDE.py.
For the regular, full stringtie->prepDE pipeline, prepDE is expecting to see a MSTRG prefix for most transcripts - because this prefix represents the transcripts "merged" from multiple samples, and the estimation run should be performed against that common set of "merged" transcripts. The fact that you get an error for a STRG prefix  there seems to indicate that prepDE.py is trying to process one of the "initial" (1st phase ) output files of stringtie instead.
Perhaps in the estimation phase you forgot to provide the -e option ? That would explain why your transcript has a STRG prefix - because that prefix is assigned when the -e option is not given and thus StringTie assembled the read alignments into newly reconstructed transcripts, and those get the STRG prefix.
For further diagnosing prepDE running issues I'd suggest to take a look at https://github.com/gpertea/stringtie/issues/234#issuecomment-541494630 where I posted a modified version of the prepDE.py script which should help with finding potential issues with the input GTF files (if they were not all generated as expected).  Let me know if you encounter any problems running that version on your data.

Hi,
I got the same error when using the new version 2.0.3, but version 1.3.6 is OK. My data is RNA-Seq of a tomato bi-parental population. Therefore, I only used the RNA-Seq data of the parental lines (parents) to generate merged gtf, and used it to estimate the gene expression of the progenies (offspring). Then, I got the same problem when prepDE.py running through some progenies. Should I generate and merge gtfs for all samples? In addition, I also found that the gtf generate from these two versions were quite different, could you explain the main difference?
Thank you !!

@gpertea
When I use new version 2.0, the prepDE.py print the error message:
Traceback (most recent call last):
File "prepDE.py", line 255, in
geneDict.setdefault(geneIDs[i],{}) #gene_id
KeyError: 'ENST00000647043.1'
Then I transfer to use version 1.3.7, it works well. I have spent one afternoon to figure this out.😂

Then that's a problem we'd surely like to fix. Stringtie v2 did improve assembly accuracy in our tests (to answer @andy3404's question), but there were sections of the code which were a complete rewrite compared to v1.3 (some of them due to adding support for long reads) and that accounts for the differences in the output and occasionally, it seems that the output when -e option is used (which means "only estimate the abundance, do not assemble"), in v2 may sometimes "drop" (i.e. not report) some redundant (or uncovered) reference transcripts which in turn makes prepDE.py fail.
But that should not happen and we would like to fix it. It would be very helpful if any of you can provide us with such an example, where running stringtie v2 with -e  option seems to have dropped (not report) a transcript from the merge file that was given with -G option.
As an example: @ttgump, before that error message you should have seen the sample name printed there, right?  (it would be helpful if you had shown the entire prepDE message here)
Was that the 2nd sample which was printed there as being processed by prepDE ? Because that means that the first sample is actually the one missing that ENST00000647043.1, so the problem would be with the stringtie -e run for that first sample (even though prepDE does not complain about that one), because that was the one dropping ENST00000647043.1 from the output of stringtie -e, even though that transcript is in the -G reference file. Do you think you can identify that first sample and perhaps share with me the corresponding .bam file and the file that you used with -G when you ran stringtie -e on that sample? That would allow us to properly debug this issue.

Yes. The error happens on the second sample. How could I share the bam file with you? It is several Gbs. Thanks.

On Oct 16, 2019, at 8:07 AM, Geo Pertea<EMAIL_ADDRESS>wrote:

Then that's a problem we'd surely like to fix. Stringtie v2 did improve assembly accuracy in our tests (to answer @andy3404's question), but there were sections of the code which were a complete rewrite compared to v1.3 (some of them due to adding support for long reads) and that accounts for the differences in the output and occasionally, it seems that the output when -e option is used (which means "only estimate the abundance, do not assemble"), in v2 may sometimes "drop" (i.e. not report) some redundant (or uncovered) reference transcripts which in turn makes prepDE.py fail.
But that should not happen and we would like to fix it. It would be very helpful if any of you can provide us with such an example, where running stringtie v2 with -e option seems to have dropped (not report) a transcript from the merge file that was given with -G option.
As an example: @ttgump, before that error message you should have seen the sample name printed there, right? (it would be helpful if you had shown the entire prepDE message here)
Was that the 2nd sample which was printed there as being processed by prepDE ? Because that means that the first sample is actually the one missing that ENST00000647043.1, so the problem would be with the stringtie -e run for that first sample (even though prepDE does not complain about that one), because that was the one dropping ENST00000647043.1 from the output of stringtie -e, even though that transcript is in the -G reference file. Do you think you can identify that first sample and perhaps share with me the corresponding .bam file and the file that you used with -G when you ran stringtie -e on that sample? That would allow us to properly debug this issue.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

i met same question using prepDE.py  updated 8 days ago. Here is the error printed in the screen.
Error: could not locate transcript STRG.2470.1 entry for sample neg2
Traceback (most recent call last):
File "6.prepDE.py", line 281, in
geneDict.setdefault(geneIDs[i],{}) #gene_id
KeyError: 'STRG.2470.1'
maybe the length of gtfs are not equal to each other?

@Gin-Wang did you run the new prepDE.py with the -v option ? That should show the name/path of each sample as it is processed. I'd be interested in the BAM file corresponding to the entry which appears to be successfully processed by prepDE before the sample that caused the error. For example, in your case, the sample neg2 seems to have made prepDE fail, but assuming you have a sample neg1 just before that -- it would be great if you could share the .bam file corresponding to that neg1 sample  (not neg2 !). Additionally, I'd need the -G reference file that was used for all those samples with stringtie -e , before you ran prepDE. The name of that file can be found in the first line of the GTF being processed by prepDE for each sample.
@ttgump and others willing/able to share such BAM file, could you upload the file to Google Drive or a similar service which allows sharing the download link with (so you can email/share the download link with geo.pertea@gmail.com). Alternatively, send me an email so I can send you instructions for uploading the files to our FTP server, though lately we've had some problems with large uploads on that ftp server, but we could give it a try.

@gpertea thanks for your answer, i tried it with "-v" just now and met the similar question and here is the log:
python2 prepDE.py -i 5.ballgown -v

processing sample neg1 from file 5.ballgown/neg1/output_merge.gtf
processing sample neg2 from file 5.ballgown/neg2/output_merge.gtf
Error: could not locate transcript STRG.2470.1 entry for sample neg2
Traceback (most recent call last):
File "prepDE.py", line 281, in
geneDict.setdefault(geneIDs[i],{}) #gene_id
KeyError: 'STRG.2470.1'

i'd like to share with you the files as you mentioned above, but it may take a while. Thanks for your answering and i will share you the links to download the files as soon as possible.

Thank you for your help with this problem. From that log it looks like the files that I would need should be shown in the first line of the file:
./5.ballgown/neg1/output_merge.gtf
That line should show the stringtie command line that was used to generate this output_merge.gtf file. That should show the .bam file that I would need in order to investigate this, and also the reference (guide file) that follows the -G option on that line -- I would need that too.
To repeat and clarify: I would NOT need multiple .bam files, just one should suffice (the one for the neg1 sample in your example here, the one for which prepDE did NOT fail).

@gpertea today I ran the new script and met the simliar problem like before. Attach the code below:
#!/bin/sh
#PBS -q long
#PBS -l nodes=1:ppn=1
cd /media/disk1/sijf/yanze/RNA-Seq/stringtie_file/abundances
python2.7 /media/disk1/sijf/yanze/RNA-Seq/software/stringtie/prepDE.py -i count_list.txt -v 2>&1 | tee prepDE.log
And the error is :

processing sample 120076-1_a from file 120076-1_a.gtf
processing sample 120076-2_a from file 120076-2_a.gtf
processing sample 130490-1_a from file 130490-1_a.gtf
processing sample 130490-2_a from file 130490-2_a.gtf
processing sample 140191-1_a from file 140191-1_a.gtf
processing sample 140191-2_a from file 140191-2_a.gtf
processing sample 140195-1_a from file 140195-1_a.gtf
processing sample 140195-2_a from file 140195-2_a.gtf
processing sample 140386-1_a from file 140386-1_a.gtf
processing sample 140386-2_a from file 140386-2_a.gtf
Error: could not locate transcript MSTRG.2936.2 entry for sample 140386-2_a
Traceback (most recent call last):
File "/media/disk1/sijf/yanze/RNA-Seq/software/stringtie/prepDE.py", line 281, in
geneDict.setdefault(geneIDs[i],{}) #gene_id
KeyError: 'MSTRG.2936.2'

Then I view the prepDE.log and nothing in this file. By the way, when I ran the old verison of this script, the error was same as I ran today. Could you tell me reason and solve it?
Thanks a lot : )

Thank you so much @Gin-Wang I took a look at the data you uploaded and I can confirm now that the problem is real and correctly reported by users in this thread (and in #234),  stringtie 2.0 with the -e option outputs a few STRG entries which should NOT be there, as the output should only contain the MSTRG entries that were given in the -G file.
We will fix this -e problem soon and report back here, until then please use v1.3.6 for assembly and prepDE quantification (for short reads there shouldn't be a significant difference).

i'm glad that it may help, and thanks again for the great software stringtie and your work

The main author fixed this issue in v2.0.4 which was just released (see https://github.com/gpertea/stringtie/releases/tag/v2.0.4). Now stringtie v2.0.4 should behave as expected with the -e option (just like v1.3.x) so the quantification pipeline using prepDE.py should no longer stumble at the 2nd file.

Hi, I thought I'd add my 2 cents to this discussion since it's still listed as "open".
I was getting the same error messages that everyone has been showing above. As suggested, I counted lines in each of my ballgown/sample/sample.gtf files using wc -l. Each of these files should have had the same number of lines as the "stringtie_merged.gtf" file created during stringtie --merge, but did not. I was also following the protocol outlined by Pertea et al., 2016, which used stringtie v1.2.2 for their analysis.
However, I am using two versions of stringtie: v1.3.5, and v2.0.3.
I found a solution to the problem of the following:
In Pertea et al., they use 'stringtie –e –B -p 8 -G stringtie_merged.gtf -o ballgown/sample1/sample1.gtf sample1.sorted.bam'.
BUT, for both of the stringtie versions I have been using, this command only works as expected if the elements are shuffled:
'stringtie sample1.sorted.bam -G stringtie_merged.gtf -l sample1 -o ballgown/sample1/sample1.gtf -p 8 -e -B'.
It seems that following the published command line causes the newer versions of the program to miss some element of the input, which allows the output to not reply on -e as it should. Even though the man/help page of later versions of stringtie clearly shows the proper organization of input files being different than that used by Pertea et al., I think this is not something people would typically think to look at if they're just following the published protocol verbatim. @gpertea do you think you could build in an error that tells people the organization of their input order is wrong if their ballgown directory file line counts don't match the merged-files line count?
I am super happy that this program exists at all, and I also very happy with the amount of feedback and help available on this github issues page. Please keep up the good work, and I'd love to know if my solution is consistent on your end.
Thanks.

@MarinaMann, thank you for the nice words but that problem is actually unrelated to the stringtie -e issue in this thread.
In fact the order of the command line parameters should never matter for StringTie (due to the way that argument parser is designed). If it did make a difference as it seemed to have happened in your case, that would have been an ugly bug as we've never intended it!  But this was something else, a bit more insidious.. see below.
Not sure if it's visible in your browser, but do you notice any difference between these two lines below?
–e –B
-e -B

(in my browser it looks like the dashes in the first line are a bit longer and closer to the letter that follows them, compared to those on the second line).
There seems to have been a editing/typographical (?) error which affected our protocol paper when it was submitted for publishing, where sometimes the plain 'dash' or 'minus' character ('-') in our command lines got unexpectedly replaced with the "em dash" typographical symbol ('–'). I guess some word processing/publishing software like Microsoft Word even makes this kind of substitution automatically in some contexts. The issue was previously reported when users copied gffcompare commands from the protocol paper (see gpertea/gffcompare#3) but now I see it affected other command lines too..
Sorry about that confusion. Unfortunately this means that one should not be using simple copy&paste from the paper (or if one does, one should edit the line before running it in order to delete all the dashes and replace them with the regular '-' character)

Hello, I'm finding the same issue when using version 2.2.1., the obtained GTF files when using -e -B had less transcripts than the file use as -G and give problems when using prepDE.py . However, version 2.1.4 seems to work just fine.

@nurie05, could you please tell me:

were you running the two versions (v2.2.1 and v2.1.4) on long reads  (-L option) or on short read data ?
is the version 2.2.1 that you were using, from the releases page? (as opposed to built from source from the current github head?)
Thank you!

@gpertea regarding you questions:

I was running short reads.
The version 2.2.1 that I was using was built following the steps indicated in the github page.
I can provide more information or files in case you need it. Thank you for looking at it!

Hello, I am getting the same problem when trying to use prepDE.py3 on assembly with -L.
My error is:
Error: could not locate transcript ENST00000662089.1 entry for sample <sample_name> Traceback (most recent call last):   File "/<path_to_file>/prepDE.py3", line 282, in <module>     geneDict[geneIDs[i]][s[0]]+=v[s[0]] KeyError: '<sample_name>'
My estimation command is stringtie2 -o $assembled -p 2 -m 100 -L -e -b $stats -G /<path_to_reference>/gencode.v36.primary_assembly.annotation.gtf $BAM
My quantificatio command is python /<path_to_file>/prepDE.py3 -i ${SAMPLE}
Could you please offer suggestions for how to troubleshoot please? I have successfully used prepDE.py3 on short read data from the same sample without an issue. Is this error specific to -L option?

Hi @gpertea, I just want to update that I figured out the issue with my problem. It turns out, when I used stringtie 2.2.1 from git clone on the github page, it installed a version that is not fully updated. When I reinstalled from your website, or downloaded directly from the latest release, the error I reported above is resolved. It is slightly misleading that both ways of installations gave stringtie 2.2.1. Hopefully this can help others solve their errors too.

Thank you @MoonyScotch for the update - actually the github version is a couple of commits ahead of the "release" 2.2.1 version, and those changes made the -e option work more consistently for long/hybrid reads quantification, but (re-)introduced this issue for short reads.. as you and @nurie05 reported. Still haven't had the time to look more closely into that problem to solve it.
But indeed, as you observed, using the older 2.2.1 "official" release works OK for short reads (but creates a similar issue for long/hybrid input..).

@smallfishcui indeed unfortunately I can confirm that this issue is back in v2.2.3 -- when -e is used with short reads, not all reference transcripts are reported in the output.
If you are using only short reads, I advise switching back to v2.2.1 until this short-read quantification issue is resolved. Sorry about the inconvenience.


Widevine CDM files should not be hosted by this repo

Hi, @quanglam2807,
Do you know that Widevine CDM may not host for redistribution?? There is actual link for download directly from google you should use that instead hosting it in repo

@Zorig Where can I find those links?

I do not know, but you should contact widevine contributors or google support or hosting CDM is illegal. You might get yourself into trouble.

@Zorig I'll have a look. Right now, I'm not storing the binaries in the repo but in the releases page so it's an easy fix if something goes wrong.

tomasmcm/SpotiWeb#22 looks like the good starting point. But the files are outdated.

@quanglam2807 indeed it is, if it helped maybe it will fix not only 64bit, 32 bit too right?

there is still something i don't understand, that widevinecdmadapter.plugin for mac OS X and widevinecdmadapter.dll is not included. In order to work widevinecdm.dll
widevinecdmadapter.dll or libwidevinecdm.dylib widevinecdmadapter.plugin both should be included right?

@Zorig You're correct. But I think the files on googlesource.com are just reference files. They are outdated. Google Chrome use componentUpdater to load Widevine from its server and Electron strips away this component.
Brave Browser uses a modified version of Electron: https://github.com/brave/muon which still includes componentUpdater. So they simply call a function: https://github.com/brave/browser-laptop/blob/master/app/extensions.js#L545.
It seems keeping the binaries in GitHub Releases is the most practical solution we have at the moment. The binaries are not included in the source code or the Electron app at all so if you use it in your app, I don't think it would be a deal. About this repo, Google may request me to take down the binaries but I don't think it would affect the source code.
In longer-term, I think we will soon move to brave/muon instead of Electron because it allows us to both use Chrome extensions and Widevine.

@Zorig So right now, the repo relies on CIs to download the binaries automatically. These CIs use 64-bit Chrome so if we can find a way to have Chrome 32-bit on Windows and Chrome 32-bit on Linux, it would be possible 👍

got it.


How can I remove {% include 'my_code' %} tag after uninstall my app in product.liquid file

Hi all,
While installing app I've insert {% include 'my_code' %} tag in templates/product.liquid file, I want to remove  {% include 'my_code' %} after uninstall my app, How can I do this in ShopifyAPI::Webhook api or is there any other way to do ?? Kindly guide me please....

This question should be asked on the forums since its not related to the api library.
What you want is the uninstall webhook.

Okay thanks...


Chore: migrate index.js class to function component

Details

This change is made to migrate the index.js   from class to a function component
Fixed Issues

$: 16157
PROPOSAL:  16157
Tests

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

https://github.com/Expensify/App/assets/22779249/672c250d-a34a-4f54-bb3e-ec18f73f7393

Mobile Web - Chrome

https://github.com/Expensify/App/assets/22779249/6e001e5c-9bab-44a0-b452-d31f40417884

Mobile Web - Safari

https://github.com/Expensify/App/assets/22779249/c14c860e-a7da-435d-b9b0-4c7c651ab6aa

Desktop

https://github.com/Expensify/App/assets/22779249/6cad0413-9745-4279-8d88-2bf934dfe47d

iOS

https://github.com/Expensify/App/assets/22779249/188f2ebf-5199-4a62-af01-7633a230df47

Android

https://github.com/Expensify/App/assets/22779249/8a240833-747c-48c3-8f33-8e33d0014deb

I have read the CLA Document and I hereby sign the CLA

recheck

Hi @marcochavezf, any chance we could get this reviewed soon?

@rushatgabhane you were assigned as C+ reviewer in the linked issue, assigning you here too for review :)

Friendly bump @rushatgabhane

I can help review if @rushatgabhane is busy with HelpDot project

Help @situchan, assigning you here as C+ reviewer

@teneeto please pull main. The branch is 4k+ commits behind

@teneeto please pull main. The branch is 4k+ commits behind

Hi @situchan, updated branch

Tests / QA Steps are missing

@teneeto can you please address https://github.com/Expensify/App/pull/26374#discussion_r1337284421 and https://github.com/Expensify/App/pull/26374#issuecomment-1736280299?

Also, job 3 is failing. Please pull main

@teneeto can you please address #26374 (comment) and #26374 (comment)?

Hi @situchan I've been trying to fix that job 3, earlier before now, even after pulling from main, it was still failing. but it's passing now. I'll add a steps ASAP.

@situchan I referenced the qa steps of the original issue/pr where this index.js was created and realised this current refactor isn't working as expected for web platforms. I will re-write how the ref is being used then add make a push and new qa steps. I plead for a little more time to achieve this. Thanks.

update QA steps like this:

Send any long code block message in any chat

Example code
import React, {useCallback, useEffect, useRef} from 'react';
import _ from 'underscore';

import ControlSelection from '../../../../libs/ControlSelection';
import * as DeviceCapabilities from '../../../../libs/DeviceCapabilities';
import htmlRendererPropTypes from '../htmlRendererPropTypes';
import BasePreRenderer from './BasePreRenderer';

const isScrollingVertically = (event) =>
    // Mark as vertical scrolling only when absolute value of deltaY is more than the double of absolute
    // value of deltaX, so user can use trackpad scroll on the code block horizontally at a wide angle.
    Math.abs(event.deltaY) > Math.abs(event.deltaX) * 2;

const debouncedIsScrollingVertically = _.debounce(isScrollingVertically, 100, true);

function PreRenderer(props) {
    const scrollViewRef = useRef();

    /**
     * Checks if user is scrolling vertically based on deltaX and deltaY. We debounce this
     * method in order to make sure it's called only for the first event.
     * @param {WheelEvent} event Wheel event
     * @returns {Boolean} true if user is scrolling vertically
     */

    /**
     * Manually scrolls the code block if code block horizontal scrollable, then prevents the event from being passed up to the parent.
     * @param {Object} event native event
     */
    const scrollNode = useCallback((event) => {
        const node = scrollViewRef.current.getScrollableNode();
        const horizontalOverflow = node.scrollWidth > node.offsetWidth;
        if (event.currentTarget === node && horizontalOverflow && !debouncedIsScrollingVertically(event)) {
            node.scrollLeft += event.deltaX;
            event.preventDefault();
            event.stopPropagation();
        }
    }, []);

    useEffect(() => {
        const eventListenerRefValue = scrollViewRef.current;
        if (!eventListenerRefValue) {
            return;
        }
        eventListenerRefValue.getScrollableNode().addEventListener('wheel', scrollNode);

        return () => {
            if (!eventListenerRefValue.getScrollableNode()) {
                return;
            }
            eventListenerRefValue.getScrollableNode().removeEventListener('wheel', scrollNode);
        };
    }, [scrollNode]);

    return (
        <BasePreRenderer
            // eslint-disable-next-line react/jsx-props-no-spreading
            {...props}
            ref={scrollViewRef}
            onPressIn={() => DeviceCapabilities.canUseTouchScreen() && ControlSelection.block()}
            onPressOut={ControlSelection.unblock}
        />
    );
}

PreRenderer.propTypes = htmlRendererPropTypes;
PreRenderer.displayName = 'PreRenderer';

export default PreRenderer;

Scroll horizontally or vertically inside code block
Verify that scrolling works as expected

Thanks @situchan, The code and qa steps are updated.

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/108292595/3cac61c8-7318-4f20-bfe3-05be8a9862c7

Mobile Web - Chrome
https://github.com/Expensify/App/assets/108292595/8ed4a050-69db-4eae-97d8-982a2a0d268b

Mobile Web - Safari
https://github.com/Expensify/App/assets/108292595/3177156b-73ea-4631-ac72-10facae5c306

Desktop
https://github.com/Expensify/App/assets/108292595/9e03f895-966b-4354-838e-627c969e40fd

iOS
https://github.com/Expensify/App/assets/108292595/ed127dd5-d809-40d5-a5dd-0d15f70c7d8a

Android
https://github.com/Expensify/App/assets/108292595/4ee0acdd-c579-4354-b036-81d9726ee78c

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/marcochavezf in version: 1.3.76-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/mountiny in version: 1.3.76-6 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/mountiny in version: 1.3.77-7 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Appsec action: repo secret scanning

https://docs.google.com/document/d/1P3U_HF3gXQs42kWOjc6LtEbCT_y3LkRt/edit

Secret scanning enabled on repo:


@craig => Convert the blog to generate the OSS page statically

Previously we were including a lot of JS to show the OSS projects, now we let Jekyll do it's thing and the projects are dealt with in the _config.yml - I devoted 10m to seeing if I could update Jekyll so we can use a data file but its hard to update with Octopress having so many tentacles inside Jekyll's internal files. So I skipped that.
Only thing I've not figured out so far is making the sidebar on the left highlight correctly as you scroll. This could be because I don't quite get the difference between using the underscore each, and Jquery's.

Much nicer! Thanks Orta!


train/val curve

Hi! Can you show me the loss curve?
Or how many steps is better to train ?

From my experience, if you use the pre-trained model, then 30 epochs with 10,000 steps per epoch should be enough for MS-COCO dataset.


Problems with generated model tests

I'm using a mongodb schema.
When I create models with the command  caminte -t -m User name:String pass:String email:String and then run the tests, all the assertions found.id.should.equal(id); fail because found.id and id appear to be objects.  If I change the assertions to a deep equals like found.id.should.eql(id) they work.
Also, the tests for #find fail unless the test database is manually cleared after every run, because it finds the old records.  I'm not sure if that's intended, but it may be nicer to destroyAll before each model test or at least take that into account in the #find test.

Thanks, I fixed it.


[Doc not specified] How to pass parameters to custom preloading functions?

You could custom preloading SQL by passing in func(db *gorm.DB) *gorm.DB (same type as the one used for Scopes), for example:
db.Preload("Orders", func(db *gorm.DB) *gorm.DB {
    return db.Order("orders.amount DESC")
}).Find(&users)
//// SELECT * FROM users;
//// SELECT * FROM orders WHERE user_id IN (1,2,3,4) order by orders.amount DESC;

How to pass another parameter to the custom func?

Just put your arguments outside the scope callback.
leastAmount = 100
db.Preload("Orders", func(db *gorm.DB) *gorm.DB {
    return db.Order("orders.amount DESC").Having(fmt.Sprintf("orders.amount > %s", leastAmount))
}).Find(&users)

It is not argument passing, I'm talking about a function call with an independent scope.
By the way, why even down vote me ...

I downvoted since this isn't directly related to GORM. You're passing a callback handler into another function, you obviously can't pass arguments to that callback since it's invoked and arguments are passed from the callee. No language I know of supports this behaviour.
You can still achive what you want by defining your arguments outside of the function scope.


Mob 2024 NullPointer exception in broadcast receiver with Robolectric

Jira issue:
https://glia.atlassian.net/browse/MOB-2024
Additional info:
Problem
Robolectric creates BroadcastReceivers before Application.onCreate() is called and it causes NullpointerException during NotificationActionReceiver(ScreenSharingController) initialization.
Solution
Make ScreenSharingController initialization lazy
Robolectric issue

!merge


Batched model works only with single instance, when sending parallel inference requests using non-cuda shared memory (works on 19.12)

Description
running inference using 1 thread and multiple trtis gpu instances, or multiple threads using one gpu instance - works.
multiple parallel threads using multiple gpu instances - doesn't work.
getting this error on the client side:
error (3): onnx runtime error 6: Non-zero status code returned while running Reshape node. Name:'' Status Message: /workspace/onnxruntime/onnxruntime/core/providers/cpu/tensor/reshape_helper.h:20 onnxruntime::ReshapeHelper::ReshapeHelper(const onnxruntime::TensorShape&, std::vector<long int>&) requested_shape[i] >= -1 was false. A dimension cannot be less than -1.

trtis                  | I0326 14:48:07.194799 1 onnx_backend.cc:541] Running an_inference_model_0_1_gpu0 with 1 request payloads
trtis                  | I0326 14:48:07.194810 1 pinned_memory_manager.cc:131] pinned memory allocation: size 196608, addr 0x7f4080000090
trtis                  | I0326 14:48:07.194967 1 grpc_server.cc:1716] Process for SharedMemoryControlHandler, rpc_ok=1, 299 step START
trtis                  | I0326 14:48:07.195043 1 grpc_server.cc:1716] Process for SharedMemoryControlHandler, rpc_ok=1, 299 step COMPLETE
trtis                  | I0326 14:48:07.195055 1 grpc_server.cc:1709] New request handler for SharedMemoryControlHandler, 300
trtis                  | I0326 14:48:07.195062 1 grpc_server.cc:439] Done for SharedMemoryControlHandler, 299
trtis                  | I0326 14:48:07.195200 1 grpc_server.cc:1716] Process for SharedMemoryControlHandler, rpc_ok=1, 300 step START
trtis                  | I0326 14:48:07.195241 1 grpc_server.cc:1716] Process for SharedMemoryControlHandler, rpc_ok=1, 300 step COMPLETE
trtis                  | I0326 14:48:07.195252 1 grpc_server.cc:1709] New request handler for SharedMemoryControlHandler, 301
trtis                  | I0326 14:48:07.195259 1 grpc_server.cc:439] Done for SharedMemoryControlHandler, 300
trtis                  | I0326 14:48:07.198798 1 grpc_server.cc:806] GRPC: using shared-memory for '81', size: 160, addr: 0x7f41adddc000
trtis                  | I0326 14:48:07.198819 1 grpc_server.cc:806] GRPC: using shared-memory for '83', size: 160, addr: 0x7f41adddc280
trtis                  | I0326 14:48:07.198825 1 pinned_memory_manager.cc:158] pinned memory deallocation: addr 0x7f4080000090
trtis                  | I0326 14:48:07.198837 1 grpc_server.cc:1155] InferHandler::InferComplete, 283 step ISSUED
trtis                  | I0326 14:48:07.198895 1 grpc_server.cc:838] GRPC release: size 160, addr 0x7f41adddc000
trtis                  | I0326 14:48:07.198897 1 grpc_server.cc:1019] Process for InferHandler, rpc_ok=1, 283 step COMPLETE
trtis                  | I0326 14:48:07.198904 1 grpc_server.cc:838] GRPC release: size 160, addr 0x7f41adddc280
trtis                  | I0326 14:48:07.198914 1 grpc_server.cc:439] Done for InferHandler, 283
trtis                  | I0326 14:48:07.198918 1 onnx_backend.cc:541] Running an_inference_model_0_1_gpu0 with 1 request payloads
trtis                  | I0326 14:48:07.198928 1 pinned_memory_manager.cc:131] pinned memory allocation: size 196608, addr 0x7f4080000090
trtis                  | I0326 14:48:07.199113 1 grpc_server.cc:1716] Process for SharedMemoryControlHandler, rpc_ok=1, 301 step START
trtis                  | I0326 14:48:07.199176 1 grpc_server.cc:1716] Process for SharedMemoryControlHandler, rpc_ok=1, 301 step COMPLETE
trtis                  | I0326 14:48:07.199188 1 grpc_server.cc:1709] New request handler for SharedMemoryControlHandler, 302
trtis                  | I0326 14:48:07.199193 1 grpc_server.cc:439] Done for SharedMemoryControlHandler, 301
trtis                  | I0326 14:48:07.199371 1 grpc_server.cc:1716] Process for SharedMemoryControlHandler, rpc_ok=1, 302 step START
trtis                  | 2020-03-26 14:48:07.199402205 [E:onnxruntime:, sequential_executor.cc:183 Execute] Non-zero status code returned while running Reshape node. Name:'' Status Message: /workspace/onnxruntime/onnxruntime/core/providers/cpu/tensor/reshape_helper.h:43 onnxruntime::ReshapeHelper::ReshapeHelper(const onnxruntime::TensorShape&, std::vector<long int>&) gsl::narrow_cast<int64_t>(input_shape.Size()) == size was false. The input tensor cannot be reshaped to the requested shape. Input shape:{4,80,4,4}, requested shape:{4416458358330652255,4424199652341018293}
trtis                  | Stacktrace:
trtis                  |
trtis                  | I0326 14:48:07.199422 1 grpc_server.cc:1716] Process for SharedMemoryControlHandler, rpc_ok=1, 302 step COMPLETE
trtis                  | I0326 14:48:07.199440 1 grpc_server.cc:1709] New request handler for SharedMemoryControlHandler, 303
trtis                  | I0326 14:48:07.199445 1 grpc_server.cc:439] Done for SharedMemoryControlHandler, 302
trtis                  | I0326 14:48:07.199467 1 pinned_memory_manager.cc:158] pinned memory deallocation: addr 0x7f40800300a0
trtis                  | I0326 14:48:07.199482 1 trtserver.cc:1813] Infer failed: onnx runtime error 6: Non-zero status code returned while running Reshape node. Name:'' Status Message: /workspace/onnxruntime/onnxruntime/core/providers/cpu/tensor/reshape_helper.h:43 onnxruntime::ReshapeHelper::ReshapeHelper(const onnxruntime::TensorShape&, std::vector<long int>&) gsl::narrow_cast<int64_t>(input_shape.Size()) == size was false. The input tensor cannot be reshaped to the requested shape. Input shape:{4,80,4,4}, requested shape:{4416458358330652255,4424199652341018293}

TRTIS Information
What version of TRTIS are you using?
server - 20.02
client - 1.11.0
Are you using the TRTIS container or did you build it yourself?
container.
To Reproduce
Steps to reproduce the behavior:
run a batched model using multiple gpu instances, and multiple requests in parallel.
I ran my inference using 16 threads, instance_groups.count = 2 (and GPU type).
each thread performed one request for a batch of 4.
max_batch_size is configured to be 16, but I can readily reproduce with any batch_size > 1.
Expected behavior
nothing crashes
same exact code works on 19.12, even using a much bigger and more parallel workload and many more gpu instances

What kind of model(s) and ensemble are you using? Can you share your model configuration file(s).

Closing this as I can't reproduce on r20.03. Thanks though :+1:


integrate flip library into chat with UI CORE-10184

Integrate the coin flip library into chat, highlights:
Go

Introduce chat.FlipManager which serves as the main interface between chat and the new coin flip library.
Implement FlipManager.StartFlip to do the following:
a. Create a new text message with /flip text tagged with the game ID of the flip.
b. Create a new dev conversation with a topic name derived from the game ID.
c. Handoff new dev conversation to flip.Dealer to begin the game.
Hook up new message flow to flip.Dealer.InjectChatMessage using the topic name of the conversation to pull the game ID (could have also just used the special metadata message at the beginning of the dev conv I guess).
Add LoadFlip to be called whenever we present a text message with a flip on it to the UI. Will invoke flip.Replay and turn the result into a UI update for the relevant game ID.
Add UI update apparatus that aggregates updates from the flip library and transmits to the frontend. This is on a 200ms delay to not blow away JS with updates (most relevant in huge flips). The system is designed to transmit data that can essentially be pasted right into the coin flip component props to update the display.

JS
@keybase/react-hackers

Add new a component for displaying coin flip information on a message. We key the whole thing on game ID in Redux so that when loading a message, we simply need to take the game ID and look up for the status in the flip status map.
Basically just do what we did for wallet in-chat sends, the two systems work basically the same way.

I'm likely just going to merge this once CI passes so that people can play with it, the frontend is just a prototype and is going to change once people experience it.

cc @malgorithms

You can make some util or something


"Import Sceneform asset" not shown in the case of GLB file

Hi there:
I'm trying to import a 3d asset from a GLB located in the sampledata folder of my app, but the contextual menu for the file doesn't show the "Import Sceneform Asset" option (at the top of the menu, before "New...", as usual).
BTW:

Android Studio seems not to identify properly the GLB file-type, as an icon with a question mark is shown for it (even in the case of the "Duck.glb" of the KronosGroup samples).
When using my 3D model, but generated as a GLTF file instead GLB, the system shows the mentioned option "Import Sceneform Asset" and all work w/o problems.

Best regards.

Thank you for the report.  As a workaround, you can add the asset manually to your app gradle file and it should convert and be viewable in the Sceneform Plugin just as if you imported with the context menu.
Sample gradle entry for the Duck.glb file stored in sampledata/models and exported assets
sceneform.asset('sampledata/models/Duck.glb',
        'default',
        'sampledata/models/Duck.sfa',
        'src/main/assets/Duck')


WIP: Positioner refactor

Supercedes #268
TODO: discuss in the near future, address comments below
Positioner changes

Positioner -> PositionerBase + SoftPositioner
Optional timeout added to status objects, better reporting of failures
Refactored all positioners in the hierarchy, removing ancient and confusing synchronous code. Blocking moves now use the same asynchronous code by waiting on the returned MoveStatus
PVPositioner (not put-complete version) waits on the setpoint signal (after @tacaswell's PVPositioner PR and a chat with @dchabot, we all agreed that bad blocking behavior here would be more likely due to misconfiguration)
Positioner is still not a Device, but nothing stopping this (as far as I know)

PseudoPositioner changes

Complete round of tests post-ophyd0 refactor (at least coverage is up to 90% or so)
Add describe(), read() on pseudosingle (from @tacaswell 's srx config)
Fix for some namedtuple-related bugs (I consistently get  namedtuple(a, b, c) works the same as tuple((a, b, c)))
Fix target position for PseudoSingle
Fix check_value for PseudoPositioner
Refactor move, breaking into sequential and concurrent cases
Added @tacaswell's MagicPseudoSetPositioner (ref) set(*pos) implementation, which does not require a PseudoPosition tuple

Other things

Should look over #230 and see what else might be a good idea at this time.

Implications on the hkl branch?

I read this, focusing on the big picture. I really like this simplification of moving. I will save the big-picture discussion for tomorrow. I'm leaving these piddly comments as a reminder for us during tomorrow's discussion:

Do we still have good reasons to make PositionerBase not a Device? It leads to lots of duplication -- reimplementing the BlueskyInterface -- and I did not understand these implications when I initially recommended against it.
Based about about five minutes of checking, I think _started_moving is never used, though it is still set at various places. Is it still needed? It's a minor point, but consolidating this logic as much as possible really helps me.
The egu/_egu that has nothing to do with hardware can probably be removed entirely, as previously discussed. Likewise, I think self._timeout is not referred to and should be remove for clarity.

TODO

PositionerBase should inherit from BlueskyInterface
PseudoPositioner: smarter move/set/forward/inverse/etc to accept either a sequence or make one
Timeout stuff

This needs a rebase apparently :disappointed:

Rebased (because of a one-line PR with epicsmotor default readback name.)

I think I've addressed everything. Requesting one last review, guys.

I took another slow read through this. I'm sure we'll find stuff in production, but I think this is ready to try. :+1:

Thanks for the help, @dchabot, @danielballan, @tacaswell!
This is ready for that button-click (finally).


Two spaces proof

Where is the proof of this statement? https://github.com/mdo/code-guide/blob/gh-pages/index.html#L68-L69

Use tabs to indent, and spaces to align. Make sure the two don't touch. Simple.
That way, anybody can use whatever indentation size they want without breaking column alignment. Also, I can't stand reading code indented with 2-space soft-tabs. It drives me CRAZY.