backend/local: more robust range retry strategy

What problem does this PR solve?
Add better range retry strategy to reduce the probability of Epoch Not Match error and make lightning run faster if the range conflict is very heavy.
What is changed and how it works?

Remove the parallel write&ingest code. Since we already do concurrency at a higher level, this can make the retry logic clearer and easier.
If a kv range is written to multi regions, only retry the failed regions.
Only increase the retry counter if one retry has no progress at all

Benchmark result:
The benchmark was running  in the following two dataset:

dataset1. randomly generated int primary key. (50GB)
dataset2. randomly generated int primary key and 2 extra secondary keys. (126G)

lighting config:
[lightning]
 table-concurrency = 8

[mydumper]
batch-size = "1GiB"

DateSet
branch
EpochNotMatch errors count
cost time

dataset1
master
1949
25m23s

dataset1
retry-range
196
6m38s

dataset2
master
4130
2h14m

dataset2
retry-range
298
50m15s

Check List
Tests

Unit test
Integration test
Manual test
No code

Side effects
Related changes

/run-all-tests
[2020-11-25T11:24:29.480Z] ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 104


Add support for sass to css compilation using grunt engine

HI,
Attached contained few changes that should add sass to css compilation support for our project . I use grunt and is able to keep watching for a change on the sass files and compile them automatically when ever necessary. I plugin we intended to use previously did not work expected hence the switch to  grunt. Should this be satisfactory, would proceed and write .scss files.

We are certainly not going to use Grunt to compile SASS. At worst it will be Gulp that we already use!
Another thing though is that we need to consider how will it be live-compiled. This needs to happen from the server.js file. The npm start command is doing a 'node server.js'.

By the way, have you tried this?
https://github.com/jtangelder/sass-loader

@qingweibinary sass-loader does a similar thing as css-loader by webpack team. They both compile sass into css and inject them in to bundle.js. So basically you need an extractor to remove it from the bundle.js . Also for this to work , we need to reference our style style script into our js like require('./style.sass) and then the css-loader or sass-loader would translate them into style.css and inject it into bundle.js.  We can then extract from bundle.js. This i don't think is what we need.

Changes Unknown when pulling 06d243727508fac3c4df6b721344ecc04a96d19b on nuruddeensalihu:nuru/sass into ** on binary-com:master**.


handle error in flatten:nextChunk()

Fixes #32

this looks right, but I think it needs to abort the parent stream too, before it calls back.

yes. it is better, but not correct yet.

@dominictarr Any thoughts on the new commits?

this looks great!
Merged into 2.28.4!


Reports should show the license scores for findings

As mentioned by @sschuberth it would be nice if the user of ORT could also see the scores produced by scan code.
After the discussion in the ScanCode project about false positives  we realized that there is no way that the ORT user can see or use the this value in any way.
For example it should be possible for the user to set the min. value for the license score if a license finding is below that value it should only be shown as hint in the reports.
This will be very helpful for teams that have low risks of license violations but want to reduce the amount of false positives.

As mentioned by @sschuberth

But I also mentioned that this only makes sense if the ScanCode score was in any way meaningful. Which in my experience it isn't. Even for one-liners that contain the words "modified by the user" ScanCode is 100% confident that it's a proprietary-license. As long as this is the case, filtering by score doesn't help us.
@mnonnenmacher also told me that @pombredanne told him that license scores in general are snake oil. Maybe he can share here why he thinks so... probably due to unclear semantics.

I hope the scoring will be improved soon and I saw a several examples in the mentioned thread of false positives where the score is way lower than 100%  . It doesn't hurt to just offer this functionality in the future and let the end user decide on how to deal with it. But I agree it would make more sense if license scoring would be better documented and generally work better.

But I also mentioned that this only makes sense if the ScanCode score was in any way meaningful. Which in my experience it isn't. Even for one-liners that contain the words "modified by the user" ScanCode is 100% confident that it's a proprietary-license. As long as this is the case, filtering by score doesn't help us.

@sschuberth FWIW there is no one liner with "modified by the user" text in the license detection rules. But there are other rules that are weak license clues alright and if their relevance is not 100% this is a bug to fix.
If the license score is not meaningful in your case, please report issues as this would be a serious bug to fix.

told him that license scores in general are snake oil.

I doubt that I ever said such thing :] ...  the license score may not be perfect yet it has been designed carefully and tuned to represent the quality of a license match and is based on:

how relevant is the matched license text or notice? This is a number between 0 and 100 which is based on the length of the matched rule and can be overridden for some license detection rules. For instance a short "GPLv3"  rule has a relevance set manually to 100 because this is a 100% relevant and totally unambiguous GPL-3.0 license reference.

how long is the matched license text or notice? This is a number of matched words and is turned into a "coverage" ratio of: number of matched words / number of total words. We use two coverage ratios:

the "qcoverage" or query-side coverage that represents the number of matched words wrt. the number of words in the matched text region in the queried text,
and the "icoverage" or index-side coverage that represents the number of matched words wrt. the number of words in the matched indexed license rule text,

See  these for details:

scoring proper:  https://github.com/nexB/scancode-toolkit/blob/a07a5fb4c2a8e8864a66898fc8079d54e73fb147/src/licensedcode/match.py#L552
relevance: https://github.com/nexB/scancode-toolkit/blob/a07a5fb4c2a8e8864a66898fc8079d54e73fb147/src/licensedcode/models.py#L1877
relevance details: https://github.com/nexB/scancode-toolkit/blob/a07a5fb4c2a8e8864a66898fc8079d54e73fb147/src/licensedcode/models.py#L1931
coverage: https://github.com/nexB/scancode-toolkit/blob/a07a5fb4c2a8e8864a66898fc8079d54e73fb147/src/licensedcode/match.py#L441

Note that we are also working on a closely related scoring improvement which is the overall clarity of a package licensing. See https://github.com/nexB/scancode-toolkit/issues/2861 for the design by @DennisClark and https://github.com/nexB/scancode-toolkit/pull/2875 for the implementation by @JonoYang that is about to be merged in the develop branch.
This scoring is designed to determine if the licensing of a package is clearly documented or presents ambiguities.

See https://github.com/oss-review-toolkit/ort/pull/5131 as a first step. However, the score is not displayed to the end user anywhere yet.

Closed as part of backlog grooming. Feel free to comment if you would like to contribute to this.


API: Rename DiagnosticPreprocessor -> SupplementalData.

Closes #736
Note that this name change should not impact users becaues the entity
being renamed is new as of the upcoming release.

Looks good.  Happy to finally arrive on a name most people are happy with.


add simple storage method

resolve #57
Right now it's using simple in-memory storage of the furthest resubmitted segment values.  So you can go back and forth through the other options and checking them out.  I didn't do anything more complicated (not too bad) like storing the data in local storage.  This solves the problem of checking your previous values without losing your current value.
This won't hold onto previous values that you change in earlier segments.  Like if your resubmitted segment is segment 5 and you go back and change segment's 3 valence value and don't click update.  If you don't click update it won't hold onto the value of that segment but it will hold onto the segment's 5 values that were set before hitting the previous button.

How hard would it be to store an array of WIP values rather than just one object to track the last "unlocked" segment?
Also, I am not sure if "in-memory" will resolve the problem--the complaint was about navigating back and forth within a session, but there was a separate complaint about closing the tab and re-opening starting them at Segment 0 rather than the last segment they were working on. I imagine these things may compound if users also expect WIP values to be restored when they close and re-open.
We can deploy this for now and see if it does solve the annotators' immediate problems, but I think the very next thing that might happen is an expectation of persisting WIP data across sessions.

How hard would it be to store an array of WIP values rather than just one object to track the last "unlocked" segment?

I could store an array of values instead, but I think they really would lead to more confusion and would require a 'go back' interface to return to the previously loaded value.  I.E You nudge something on segment 3 of 20 when you are browsing through them.  You start working again and get back to segment 35.  You then browse through again and notice that segment 3 is in a state of 'apply update'.  You forget what you were doing and if that value should be truly modified.  Now you need to look through that segment again and determine if you really meant to change it or if you were temporarily changing it.  I can fully understand the last segment requiring this but I think we get more corner cases if we start providing a history for previously submitted segments.

Also, I am not sure if "in-memory" will resolve the problem--the complaint was about navigating back and forth within a session, but there was a separate complaint about closing the tab and re-opening starting them at Segment 0 rather than the last segment they were working on. I imagine these things may compound if users also expect WIP values to be restored when they close and re-open.

The other PR: #64 will on reload return your last unannotated segment.  So if we stored in localstorage we could load that data up.  This compounds with the above where if we keep track of previously submitted ones and they refresh the page which one do we load?  Do we load the saved values or the adjusted values?  Again it requires probably a go back button to return to the saved values and clear the temporarily stored ones.

Good thoughts. Let's stick with this simpler solution for now and see if it solves the annotators' major pain points.


Requiring help tuning cartographer

Hello ,
I am currently testing the implementation of cartographer on Softbank Robotics' Pepper.
My goal is to create a map that is good enough for the robot to navigate itself via the navigation stack to predetermined locations.
So far I have managed to create somewhat satisfying results, but I feel with proper tuning I could manage to do even better, but I have hit a wall with my limited knowledge on how high/low various parameters should be, and how they interact with each other.
I'd be very thankful for any help I could get to further improve the tuning!
Unfortunately, with the platform being set, I have no possibilities to use more suitable hardware as the odometry is quite poor, for example. The laser scanners are also rather impractical for SLAM usage, which is why I use depthimage_to_laserscan, but the head in which the camera is mounted isn't 100% stable.

my rosbag_validate
all relevant config/launch/urdf files, though I haven't really worked with the assets_writer yet, and merely remapped my configurations.
the bag file of a tour within a small section of the lab.

Thanks in advance for any help, I'll happily provide anything else that might be needed to further advance this project.

I just had a quick look at the files you linked and pepper_2d.lua.
You could take a look at the turtlebot config:
https://github.com/googlecartographer/cartographer_turtlebot/blob/master/cartographer_turtlebot/configuration_files/turtlebot_depth_camera_2d.lua
I1029 14:17:54.377303 12826 rosbag_validate_main.cc:398] Time delta histogram for consecutive messages on topic "/scan" (frame_id: "base_link"):
Count: 893  Min: 0.015077  Max: 2.497158  Mean: 0.320654

The scan topic has some large gaps, is there any way to reduce these?

TRAJECTORY_BUILDER_2D.submaps.num_range_data = 90

Reduce slightly, should be 10--30 seconds worth of data.

POSE_GRAPH.constraint_builder.sampling_ratio = 1.

This is far too high, you would end up with a huge background work queue.

TRAJECTORY_BUILDER_2D.ceres_scan_matcher.translation_weight = 3e2

Set lower. Lower means you don't trust odometry/inertial PoseExtrapolator.

use_odometry = true,

Disable, especially since you say it's poor.

TRAJECTORY_BUILDER_2D.submaps.grid_options_2d.resolution = 0.06

It's worth trying even higher, 0.08.

TRAJECTORY_BUILDER_2D.missing_data_ray_length = 0.2

I'd try 2--3 meters.
Hope this helps.
Is SLAM without loop closure ok with these parameters?

Thanks for your quick input!
I based my initial configs on the turtlebot files and then got to where I was through testing, but I'll have another look and compare the hardware to see where I can make further adjustments.

The scan topic has some large gaps, is there any way to reduce these?
I'll look into it, but I think the problem is because of the limited framerate of the camera; I could maybe improve this by connecting the robot to the pc via an ethernet cable, but for it's intended use of autonomous navigation this is rather unfeasible.

Reduce slightly, should be 10--30 seconds worth of data.
Thanks, I adjusted it to 50 and now consistently get new submaps in that timeframe. Right now I've been testing with global scan matching turned off, should POSE_GRAPH.optimize_every_n_nodes match this value or was this just a coincidence in the turtle bot config?

Set lower. Lower means you don't trust odometry/inertial PoseExtrapolator.
The translational odometry is fine, but the rotational value is off by a good margin, should I adjust this anyways? Initial tests seem to improve when I lower this value, but I figured I'd ask regardless.

This is far too high, you would end up with a huge background work queue.
I wasn't aware of that at all, thanks! I adjusted this to 0.3, but this value isn't based on any data; is there a good way to go about finding a good value, or is straight up testing the best possibility?

Disable, especially since you say it's poor.
Should I still disable this even with the translational odometry being fine?

It's worth trying even higher, 0.08.
Adjusted.

I'd try 2--3 meters.
Thanks!

The biggest problem I can see right now is the boundaries of the map being very noisy (see here), do you know what could be the primary reason for this?
Again, thanks for your help!

It would be nice if we had a tuning/launch files for Pepper, feel free to open a PR.


Test cases

https://www.openstreetmap.org/way/102441827#map=17/22.31487/114.16651
The crazy construction detour north (?) of it
Simple cases like dual carriageways without a link, Mody Road https://www.openstreetmap.org/#map=19/22.29713/114.17220
https://www.openstreetmap.org/way/111221961 a pro-pedestrian example
https://www.openstreetmap.org/way/120833362 tunnel
nearby aboveground, multi-stage tsig crossing
https://www.openstreetmap.org/way/26448316#map=19/22.28193/114.18628 Victoria Park and all the shops, crazy detour

https://docs.google.com/presentation/d/1U1risgMhPWzMwfTFh2HgtSANphe2DXhNePZe6btwu0c/edit#slide=id.g156c4830b34_0_13
https://github.com/a-b-street/osm2streets/issues/99 examples

Bristol
Akihabara bridge
Harujuku cat street continuing north


Fixed incorrect links. Default to https where available.

Fixed hugs.tf and essentials.tf images pointing towards huds.tf.
Explicitly use https for the sites that can.

Woops.  Will merge after I make a bit of changes soon.


[Service Bus] Settling a deferred message twice gives TypeError

In the below code, we try to settle an already settled deferred message.
Instead of getting a helpful error, we get TypeError: Cannot read property 'name' of undefined
const { ServiceBusClient } = require("@azure/service-bus");

const connectionString = "connection string here"
const queueName = "queue name here";

async function main() {
  const sbClient = new ServiceBusClient(connectionString);

 // Send message
  const sender = sbClient.createSender(queueName);
  await sender.sendMessages({
    body: "hello"
  })

 // Receive in PeekLock mode and defer
  let peekLockReceiver =  sbClient.createReceiver(queueName, "peekLock");
  const [msg] = await peekLockReceiver.receiveMessages(1);
  await msg.defer();

// Receive deferred message and complete it
  const [deferredMsg] = await peekLockReceiver.receiveDeferredMessages(msg.sequenceNumber);
  await deferredMsg.complete();

// Try to complete the same message again
  try {
    await deferredMsg.complete();
  } catch (error) {
    console.log("Error when completing deferred message in Receive And Delete mode:", error)
  }
  await sbClient.close();
}

main()

Logged already https://github.com/Azure/azure-sdk-for-js/issues/10174 :)

:(


YOLO-NAS code base for commercial use

💡 Your Question
Can I use the YOLO-NAS code base to train a model from scratch for commercial use ? What about internal use only ?
Versions
No response

I think answers in these issues should clarify the usage terms: https://github.com/Deci-AI/super-gradients/issues?q=is%3Aissue++License++Yolo-NAS


await missing on fail_negotiation statement

This aput call on this line was supposed to have an await, I spotted this issue when trying out and exploring PR #82, this hasn't been introduced by PR 82, it was an existing issue that hadn't been properly covered.

Landed on https://github.com/kytos-ng/of_core/pull/82


[make] Iterate on makefile refactor

[ ] make test: Runs test on caddy-copy code, if make build was previously run.
[ ] make build: Failing build, if caddy-copy is already present. We should either clean it up or better only update the caddy-copy code.
[ ] make image-build: Fails without previous build run.
[ ] We don't do a full test run before deploying/pushing the container to GCR. One could have failing tests, but still build and deploy it.
[ ] make docker-test and make docker-build mount current directory and have issues, when make build or make test or make docker-test or make docker-build was run before aka when caddy-copy is still present.

What was your general routine to not run into the above issues? @erbesharat

I just had an alias that cd's into the project directory, removes caddy-copy then runs the build command so I didn't run into caddy-copy issue. Also, I didn't run make build on my local env so I didn't see it runs caddy's tests too.


Reductions to remote GPU FB memories are broken

The backtrace is:
Signal 11 received by node 1, process 9496 (thread 7f23af1fd700) - obtaining backtrace
Signal 11 received by process 9496 (thread 7f23af1fd700) at: stack trace: 9 frames
[0] = /lib/x86_64-linux-gnu/libc.so.6(+0x36cb0) [0x7f23ee6e8cb0]
[1] = /home/ahenz/new/legion/bindings/regent/libregent.so(void PlusOpFloat::apply(float&, float)+0) [0x7f23ef03db90]
[2] = /home/ahenz/new/legion/bindings/regent/libregent.so(Realm::ReductionOp::apply_strided(void*, void const*, long, long, unsigned long, bool) const+0x47) [0x7f23ef045b37]
[3] = /home/ahenz/new/legion/bindings/regent/libregent.so(Realm::RemoteReduceMessage::handle_message(int, Realm::RemoteReduceMessage const&, void const*, unsigned long)+0x1a3) [0x7f23efa714b3]
[4] = /home/ahenz/new/legion/bindings/regent/libregent.so(IncomingMessageNew::run_handler()+0x17) [0x7f23efacf207]
[5] = /home/ahenz/new/legion/bindings/regent/libregent.so(IncomingMessageManager::handler_thread_loop()+0x5d) [0x7f23efacdb9d]
[6] = /home/ahenz/new/legion/bindings/regent/libregent.so(Realm::KernelThread::pthread_entry(void*)+0xf8) [0x7f23ef54f6e8]
[7] = /lib/x86_64-linux-gnu/libpthread.so.0(+0x8184) [0x7f23eda65184]
[8] = /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f23ee7ac37d]

@ahenzinger I think this is a duplicate of #372. Do you agree @streichler? See the first comment on that issue.

This should be functionally correct now with commit c0016e6.  @ahenzinger can you double-check that this works without any additional patches applied?  And yes, it basically is a duplicate of #372, but I'm going to leave that one open because both local and remote gpu reductions are still much slower than we'd like (because they bounce off of sysmem).

Yes, this fixes the issue I was having without any additional patches applied!

Ok, I'm going to close this issue. Any further issues we have with reductions to GPU memories can be reported on issue #372.


Peer Code review

Great Job! The code looks clean and well organized.
Best Practices:

[ ] DRY - Code fulfills this condition. There are no repetitions.
[ ] KISS - Code seems simple and understandable. This condition is fulfilled as well
[ ] YAGNI - You Aren't Gonna Need It - Fulfills this condition as well

Again great job on the code. Very simple and clean.


active form PR:000044777 for pcn1 (SPBC16D10.09)?

pombase.org shows "active form PR:000044777" as an extension in the GO Biological Process section on the pcn1 (SPBC16D10.09) page.
It's missing from PomBase v2.

2 related tickets, about how to display the PRO ID:
https://github.com/pombase/website/issues/100
https://github.com/pombase/website/issues/67

I've added the missing active forms and they are links to PRO.

Hmm,
We need to unpick this a bit.
"active form" might be the relationship type. It has a special meaning and means that the protein binds to the "active form" of another protein (activation may be caused by a different independent event).
So not all of these are "active forms"
On the cdc2 page I see

and at least one of these isn't an "active form"
We need to advise    how these are curated and how to interpret.
Also what we display  has always been a bit unsatisfying for user interpretation. It is unclear sometimes if the "PRO" ID  refers to the bound molecule or the thing bound  because you only see the ID.
We might need to do something more like:
cdc2(unphosphorylated form) binds chk1
cdc2(phosphorylated form 1) binds cdc13
cdc2(phosphorylated form 2) binds cdc13
we also discuss the display in
https://github.com/pombase/website/issues/100
https://github.com/pombase/website/issues/67
https://github.com/pombase/curation/issues/1008
So this should be high on curators list to discuss!

"active form" might be the relationship type

No, "active form" is the display text used with a PR:nnn ID that we put in column 17.

means that the protein binds to the "active form" of another protein

No, they show which form of Cdc2, i.e. the gene product annotated to "protein binding", does the binding to the other protein. To say that a specific form of Cdc2 binds a specific form, active or otherwise, of (e.g.) Cdc13, we would put a PR ID in column 16, and the broken pombase 1 display would have "binds PR:nnnn1 active form PR:nnnnn2".

So not all of these are "active forms"

Yes, they are all forms of Cdc2 "active" for binding to the other protein indicated by "binds".

we also discuss the display in [tickets]

The example in #67 is of a PR:nnn id used in an extension (GO column 16). I'll transfer your display suggestion there, because that ticket started life as our "how should we display PR" home.
#100 is about what the hyperlinked text should be. Names are usually better than IDs, but some PR names really challenge that.
We should not let https://github.com/pombase/curation/issues/1008 distract us here, because it's mainly about which display text gets used for an extension relation. It's completely coincidental that the example there happens to be a PR:nnn ID (tho a couple of comments there did follow that tangent), and the open website tickets cover everything.
I agree that we should try to come up with a way to make all of this clearer, if even the senior PomBase curator can't get it from the existing display.


:arrow_up: chore: pnpm up nx

Description
Upgrade nx to latest
Testing
Explain the quality checks that have been done on the code changes
Additional Information

[ ] I read the contributing docs (if this is your first contribution)

Your ENS/address:

Current dependencies on/for this PR:

main

PR #304   👈

PR #303
PR #302

This comment was auto-generated by Graphite.


Guice binding annotations not working

Copied from a Guice issue I previously filed (and closed): https://github.com/google/guice/issues/966#issuecomment-159332325
I have two modules that bind a set of strings like:
In FooModule:
Multibinder<String> fooThingsBinder = Multibinder.newSetBinder(binder(), String.class, Foo.class);
...
for(String foo: fooThings) {
  fooThingsBinder.addBinding().toInstance(foo);
}

And something similar in BarModule. Then elsewhere in the code I get these sets injected like:
public class FooResource(@Foo Set<String> fooThings, ...) { ... }

and something similar in BarResource.
What I'm seeing is that one of these sets non-deterministically gets injected to both resource classes. E.g., the foo things end up in FooResource and BarResource, or vice-versa.
I have tried using the @Named binding annotation as well, with the same results. I have another multi-binding that uses different types instead binding annotations, and it is working fine.
I'll try to come up with a test case later today/this week as time allows. I've worked around this for now by creating separate sub-types for the foo/bar things.

@mumrah: Do you have FooResource and BarResource bound in Guice?
@Override
protected void configure() {
  bind(FooResource.class);
  bind(BarResource.class);
}

I wonder if one of the resources is being initialized by HK2.

I'm seeing what might a similar issue -- intermittently an incorrect binding is injected into a resource. (generally, I have to restart my application to get different behavior)
I'm trying to inject a JDBI DBI object into my resource. I have two annotated bindings for DBI Providers in my injector, one for a persistent database (@DbPersist), another for a in-memory database (@DbMem)

@Path("/mypath")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class MyResource {
    private final DBI dbi;
    @Inject
    public StoragePortResource(@DbMem DBI dbi) {
        this.dbi = dbi;
    }
}

Most of the time, the correct DBI is injected. Intermittently the wrong DBI is injected.
my stack: Dropwizard 0.8.5, dropwizard-guice 0.8.4, jersey2-guice 0.10, guice 4.0
I can debug where my DBI provider is being called, and from the callstack it looks like the call from jersey into the GuiceServiceLocator knows the source annotation on the constructor (@DbMem). But, 16+ calls later the call from GuiceBindingDescriptor into the Guice injector is asked for the DBI with the wrong binding annotation (@DbPersist)
(continued spelunking)
looking at it further... it seems like maybe it's happening during reflection, trying to get the constructor's parameters qualifiers...
(more spelunking)
in hk2-locator(2.4.0-b31), method
org.jvnet.hk2.internal.Utilities#getConstructorInjectees is called, and has my @DbMem annotation as a paramAnnotation. It calls getParamInformation(paramAnnotation), and returns an empty set for the qualifiers.
(additional spelunking)
and that investigation led me to this bug: https://github.com/Squarespace/jersey2-guice/issues/22
I'm still not sure why it sometimes works, and sometimes doesn't.
Adding @Qualifier to my @DbMem / @DbPersist annotations appears to make my resource behave consistently.

I'm having a very similar issue. I have two @Provides for the same class, both with a custom annotation. So one @Provides @Foo, the other @Provides @Bar.
However, sometimes it injects @Bar where @Foo is specified in the constructor! It's random and unpredictable. It's driving me crazy. I'm having to wrap things in small unique classes to get things to work. Near as I can tell, custom bindings are broken or have some startup race condition.

@chriskessel I don't think anyone is injecting me :/

I'm seeing the same issue. I have an object annotated with @Named, and I get an object of a random type each time. Also if I do @Named("something_i_didnt_bind"), it still gives me an instance, though random as well.  I created this issue with the dropwizard-guice library, which is where the problem seems to lie, I think...
https://github.com/HubSpot/dropwizard-guice/issues/91

@chriskessel uhh?

@chriskessel No, I'm not using any framework. I just have a main function that initializes guice, jersey and this bridge.

I switched to using HK2 guice-bridge, and that seems to support Named injections better (though not perfect).

I am experiencing a very similar issue. I have a module that binds various BindingAnnotations with string values. In a jersey module, I am injecting one of those BindingAnnotations. Each time I start the server, in jersey module, I am getting any of the values from the various BindingAnnotation at random. These BindingAnnotations work fine in other modules of the application. It's just the jersey module that's facing this issue.


Download of Selenium repo leads to 1.4 Gb of local data

When I run
 ort --force-overwrite download --project-url<EMAIL_ADDRESS>--vcs-revision 3862ad0799952de277bca04bde92d3383464841c --output-dir selenium/
The Downloader creates an empty directory to receive the source code and does
git fetch --depth 50  --tags origin
This creates a 1.4Go checkout.
To be clear we are in this branch of the code (branch 2) :
https://github.com/oss-review-toolkit/ort/blob/master/downloader/src/main/kotlin/vcs/Git.kt#L202
The guilty file is this one :
1.4G    ./.git/objects/pack/pack-7e6caf51b263881e1d382cf7c6905d87528d4cba.pack
By looking at the biggest files in this index :
git verify-pack -v .git/objects/pack/pack-7e6caf51b263881e1d382cf7c6905d87528d4cba.idx | sort -k 3 -n |  tail -n 5 | less
f886fb00a4fb0da6ddfb90a054294c0bc65b934a blob   35416759 33245432 247567510

You see that the entry is only 35Mb. You can find the corresponding file with :
git rev-list --objects --all | grep f886fb00a4fb0da6ddfb90a054294c0bc65b934a
f886fb00a4fb0da6ddfb90a054294c0bc65b934a third_party/jruby/jruby-complete.jar

Since this pack file is so big and the top files in this pack are so small, I assumed that the checkout was big because of all the tags we are fetching, each one having a copy of the file (as I pictured it).
This is confirmed by https://github.com/SeleniumHQ/selenium/issues/6351
Therefore I did the following test :
git fetch --depth 50  --no-tags origin
And now the checked-out repo is 370Mb and the biggest file is :
377M    ./.git/objects/pack/pack-f39cf9764c065bdf43d57878138804d4afa5c75c.pack
So I would say there are several solutions :

remove the --tags in branch 2 and replace it with --no-tags (having --no-tags IS different as having no --tags)
or
add a new branch between branch 1 and branch 2 with --no-tags

For the sake of completeness, here is the full output :
--force-overwrite download --project-url<EMAIL_ADDRESS>--vcs-revision 3862ad0799952de277bca04bde92d3383464841c --output-dir selenium/

12:46:45.997 [main] INFO  org.ossreviewtoolkit.downloader.Downloader - Trying to download 'Downloader::selenium.git:' sources to '/home/nino/IdeaProjects/Tests/selenium' from VCS...
12:46:46.003 [main] INFO  org.ossreviewtoolkit.downloader.Downloader - Using VcsInfo(type=Git<EMAIL_ADDRESS>revision=3862ad0799952de277bca04bde92d3383464841c, resolvedRevision=null, path=).
12:46:46.003 [main] INFO  org.ossreviewtoolkit.downloader.Downloader - Detected VCS type 'Git' from type name 'Git'.
12:46:46.190 [main] INFO  org.ossreviewtoolkit.downloader.VersionControlSystem - Adding Git revision '3862ad0799952de277bca04bde92d3383464841c' (taken from package meta-data) as a candidate.
12:46:46.192 [main] INFO  org.ossreviewtoolkit.downloader.VersionControlSystem - No Git revision for version '' found: IOException: Cannot guess a revision name from a blank version.
12:46:46.192 [main] INFO  org.ossreviewtoolkit.downloader.VersionControlSystem - Trying revision candidate '3862ad0799952de277bca04bde92d3383464841c' (1 of 1)...
12:46:46.197 [main] INFO  org.ossreviewtoolkit.downloader.vcs.Git - Trying to fetch all refs with depth limited to 50.
12:54:09.997 [main] INFO  org.ossreviewtoolkit.downloader.VersionControlSystem - Successfully downloaded revision 3862ad0799952de277bca04bde92d3383464841c for package 'Downloader::selenium.git:.'.
12:54:10.013 [main] INFO  org.ossreviewtoolkit.downloader.Downloader - Finished downloading source code revision '3862ad0799952de277bca04bde92d3383464841c' to '/home/nino/IdeaProjects/Tests/selenium'.
12:54:10.020 [main] PERFORMANCE org.ossreviewtoolkit.downloader.Downloader - Downloaded source code for 'Downloader::selenium.git:' from VcsInfo(type=Git<EMAIL_ADDRESS>revision=3862ad0799952de277bca04bde92d3383464841c, resolvedRevision=3862ad0799952de277bca04bde92d3383464841c, path=) in<PHONE_NUMBER>97ms.

Process finished with exit code 0

FYI, not that there is some special case code in ORT for SSH downloads from GitHub:
https://github.com/oss-review-toolkit/ort/blob/7fd852a42e5f5602a47b5eea58ef8f85bbd97970/downloader/src/main/kotlin/vcs/Git.kt#L171-L177
That is, a worthwhile performance improvement is not done when using SSH to download from GitHub. @nnobelis, I'd not be surprised if the issue went away when simply using HTTPS for the clone URL instead.

But when Selenium is a dependency, you have no control over the URL ?
The URL is coming for the pom and not modifiable, right ?

Right, but we were already considering replacement rules to turn SSH URLs into HTTPS URLs (specifically for GitHub) for completely different reasons, see https://github.com/oss-review-toolkit/ort/issues/2568.

@nnobelis, I'm positive that https://github.com/oss-review-toolkit/ort/pull/3762 fixes the issue.

I tested remotly and locally with aforementioned commit : the selenium local repo is now 289Mb. Also the bug is fixed


Markdown preview doesn't render

First of all, congratulations on this extension! I'm having a problem with the command "Dendron: Show preview". It behaves erratically and most of the time I get a "still connecting to the engine" message from the Dendron Markdown Preview extension and the preview doesn't render at all. I'm on Ubuntu 18.04.
Thanks!

Thanks for the issue. The next time you get the issue, can you also attach the logs from the app to the issue? See here for instructions: https://dendron.so/notes/a6c03f9b-8959-4d67-8394-4d204ab69bfe.html#logs-from-previous-session

Hi @kevinslin thanks for your time to answer. I finally understood what was going on, I had the directory wrong on dendron.yml fsPath. It is working now.

Hi @kevinslin thanks for your time to answer. I finally understood what was going on, I had the directory wrong on dendron.yml fsPath. It is working now.


MINOR: MetadataShell should handle ProducerIdsRecord

More detailed description of your change
We store producer IDs in broker snapshots in #11527, I think we could also add the ability to inspect it using MetadataShell.
Summary of testing strategy (including rationale)
I tested this locally:
[ Kafka Metadata Shell ]
>> cat /producerIds/broker
1
>> cat /producerIds/blockEnd
1000
>>

Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Hi, @cmccabe , this is a minor improvement similar to your PR #11527. PTAL.

This change makes the MetadataShell generate the same output as what we get from zookeeper path "/latest_producer_id_block" added in #10504. ping @mumrah to have a look.


MSEARCH-557

Purpose
Avoid NPE which is being thrown while browsing call numbers (all) using one letter (s)
Approach
Checked for null before further processing
Learning
MSEARCH-557

Is implemented in a scope of mod-search/pull/424


Package Replication Status Updater throws exceptions when version is being created in parallel

Required Information

[x] AEM Version, including Service Packs, Cumulative Fix Packs, etc: <IP_ADDRESS>
[x] ACS AEM Commons Version: 3.17
[x] Reproducible on Latest? yes/no

Expected Behavior
The Sling Job to update the replication metadata after a package replication runs without exception
Actual Behavior
From time to time the following exception is thrown:
26.06.2018 07:20:21.089 *ERROR* [sling-threadpool-f765411d-30df-47b2-8d0b-14fe5b522600-(apache-sling-job-thread-pool)-927-<main queue>(acs-commons/replication/package)] com.adobe.acs.commons.replication.status.impl.JcrPackageReplicationStatusEventHandler Exception occurred updating replication status for contents of package '<some package>' covering paths '<some DAM paths>'
javax.jcr.version.VersionException: OakVersion0001: Cannot change property jcr:mixinTypes on checked in node
	at org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:241)
	at org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:212)
	at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.newRepositoryException(SessionDelegate.java:670)
	at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:496)
	at org.apache.jackrabbit.oak.jcr.session.SessionImpl$8.performVoid(SessionImpl.java:419)
	at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:274)
	at org.apache.jackrabbit.oak.jcr.session.SessionImpl.save(SessionImpl.java:416)
	at com.adobe.granite.repository.impl.CRX3SessionImpl.save(CRX3SessionImpl.java:208)
	at com.adobe.acs.commons.replication.status.impl.ReplicationStatusManagerImpl.setReplicationStatus(ReplicationStatusManagerImpl.java:181)
	at com.adobe.acs.commons.replication.status.impl.JcrPackageReplicationStatusEventHandler.setReplicationStatus(JcrPackageReplicationStatusEventHandler.java:290)
	at com.adobe.acs.commons.replication.status.impl.JcrPackageReplicationStatusEventHandler.process(JcrPackageReplicationStatusEventHandler.java:243)
	at org.apache.sling.event.impl.jobs.JobConsumerManager$JobConsumerWrapper.process(JobConsumerManager.java:500)
	at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.startJob(JobQueueImpl.java:291)
	at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.access$100(JobQueueImpl.java:58)
	at org.apache.sling.event.impl.jobs.queues.JobQueueImpl$1.run(JobQueueImpl.java:227)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: OakVersion0001: Cannot change property jcr:mixinTypes on checked in node
	at org.apache.jackrabbit.oak.plugins.version.VersionEditor.throwCheckedIn(VersionEditor.java:250)
	at org.apache.jackrabbit.oak.plugins.version.VersionEditor.propertyChanged(VersionEditor.java:131)

This is due to the AEM default workflow /etc/workflow/models/dam-xmp-writeback.html, which implicitly creates asset versions in its XML Writeback step (XMPWritebackProcess.writeXMP())
As JCR only allows modifications of checked out nodes, and nodes need to be checked in for a very short timeframe while creating a version, there should be the some retry mechanism in JcrPackageReplicationStatusEventHandler for this condition.

The Sling Jobs retry handling (https://sling.apache.org/documentation/bundles/apache-sling-eventing-and-job-handling.html#queue-configurations) should be used for those exceptions. Also there should be a dedicated queue configuration for the job topic acs-commons/replication/package.

@justinedelson Can you review the attached PR: https://github.com/Adobe-Consulting-Services/acs-aem-commons/pull/1411


Rename pallet-simple-nft -> pallet-utxo-nft

pallet-simple-nft -> pallet-utxo-nft
SimpleNFT -> UtxoNFT

Won't merge until rename PRs in dscp-api and dscp-matchmaker-api are ready to go

Accompanying PRs which should pass once this PR merges and releases
https://github.com/digicatapult/dscp-api/pull/90
https://github.com/digicatapult/dscp-matchmaker-api/pull/62


draft CC Alerts doc

Fixes #7808.
Fixes #7461.

This change is

Nice, these look comprehensive! Have a nit to follow (via reviewable)


Send InLine message to channel with bot

Is it possible to Send InlineMessage to Channel with Bot Automatically ?
in InlineMessage after trying user to use Inline method Telegram sends InlineQueryUpdate, after that Bot should AnswerInlineQuery with InlineQueryResults. and then, User after select any of InlineQueryResults , Result is Send to user.
In channel because no body there to select any of Results, InlineKeyboardSwitchInlineQueryButton is removed from Markup.
So, What we can do?

@PurTahan Not sure if I got your question but only channel admins can post an inline message from bot to channel. After message is posted to channel, any member can click on its inline buttons.

@PurTahan Did you get your answer? I close this but feel free to continue the discussion.


errors: begin using anyhow directly

The anyhow crate provides all the functionality that we need for errors, instead of maintaining our own failure-ext crate (which just exports anyhow types) let's begin migrating everything over to use anyhow directly.
This is the beginning of a longer effort to improve error handling across libra and to stop relying on a "global" definition of an error across the project. E.g. for converting between proto's and rust types most TryFrom impls currently just use the failure::Error type instead of implementing an error specific to that conversion.

:umbrella: The latest upstream changes (presumably 16653b388ae7b5d1247c8d89fef74d554bbaaad7) made this pull request unmergeable. Please resolve the merge conflicts.

@bors-libra r=davidiw

:pushpin: Commit c7b8620 has been approved by davidiw

:hourglass: Testing commit c7b8620f9014e57d1715ee69e09e9d42f203eb30 with merge 2b09b8daade33815ada5342760053bb7856d0df9...

:sunny: Test successful - checks-circle_commit_workflow
Approved by: davidiw
Pushing 2b09b8daade33815ada5342760053bb7856d0df9 to master...


SA1623 is triggered for private setters in private nested classes

I don't know if this caused by #1813 but I just mentioned that the following raises SA1623:
public class Test
{
    private class NestedTest
    {
        /// <summary>
        /// Gets the test property.
        /// </summary>
        internal string TestProperty { get; private set; }
     }
}

#1813 has not been merged yet, so unless you are testing the pull request, the bug is in the master at the moment.

... sure, could have seen that. Than it might be vice versa and it will be fixed with #1813.

Duplicate of #1811


change: code style.

[x] add luarocks.

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


Review of MAE tutorial

As discussed, I reviewed the MAE tutorial. I chose to rewrite sections to be explicit with my suggestions.
I have left a few "TO DO" comments at the end which are suggestions I haven't acted on.
Have a look and provide me with some feedback. Act on the "TO DO" if you can.

I modified the branch following our discussion (verbal review).
I don't know why the first cell is numbered "15" or how to hide (most of) the help notes. We could just comment that out or add "read the help notes" to the final cell of suggested next steps.


[stable/jenkins] Configure pod labels using CasC

What this PR does / why we need it:
XML configuration of the chart configures the following pod labels:
          <podLabels>
            <org.csanchez.jenkins.plugins.kubernetes.PodLabel>
              <key>jenkins/{{ .Release.Name }}-{{ .Values.agent.componentName }}</key>
              <value>true</value>
            </org.csanchez.jenkins.plugins.kubernetes.PodLabel>
          </podLabels>

Users expect that configuration as code does the same.
Which issue this PR fixes
Part-of: #16931
Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

/assign mogaal

This is obsolete with  #21599


Add support for animated sprites in UI

Forum thread: https://forum.playcanvas.com/t/animated-sprites-in-ui/15040

Re bump for this: https://forum.playcanvas.com/t/animation-sprite-ui/21459/2

+1


Re-enable cudnn_fusion_test on A100.

Check that the required cuDNN version is available.

Unfortunately this change doesn't seem to do the trick. Even with the cudnn version check included here, the A100 tests are still failing. Since @hawkinsp dug into this more recently perhaps he has some useful context!

Strange.
NVIDIA A100-SXM4-80GB
bazel test --repo_env=HERMETIC_CUDNN_VERSION=9.1.1 tests/cudnn_fusion_test_gpu  -> PASSED


Stacks started with bad rancher-nfs config dont get into a healthy state

After creating an invalid rancher-nfs plugin (see: #9607 ), spin up stacks/services that use this driver. As the driver was misconfigured, go back into the rancher-nfs service and correct it with an upgrade. The currently failing dependent user stacks/services wont correct themselves.

I can make rancher-nfs stop when validation fail. But it might take a while to detect the wrong configuration(especially when mount time out).


v4.3.5 broke my Windows VM. Subsequent installs have the same issue.

14" Macbook Pro with a M1 Pro trying to use my windows 11 VM thats been working perfectly.
Just the glassy looking screen no matter what I do. (forgot to save the logs before deleting, but they looked completely normal).
When I swap the gpu to a non-accelerated one, it gives the "Guest has not initialized the display (yet)" error.
If you guys need the logs I'll redownload the VM and log them, but hopefully someones aware of this

Are you sure you’re on 4.3.5 and not 4.3.4?

Are you sure you’re on 4.3.5 and not 4.3.4?

Just checked I am in fact on 4.3.4
I purchased UTM from the AppStore, is 4.3.5 not live there yet?

4.3.5 was literally released hours ago precisely to address this issue. You need to manually refresh App Store’s updates tab to see it.

4.3.5 was literally released hours ago precisely to address this issue. You need to manually refresh App Store’s updates tab to see it.

Thank you so much man! Appreciate the insanely fast response. Also just realized there are plenty of threads about this is in the issues tab my bad lol


Fix QSPI for continuous read, add data byte count

This fixes the continuous read for me on a Spansion flash, and shouldn't break anything that worked before. It also adds a num_bytes field that is handy to see in the data table view.

Thanks for merging in & the great decoder! Made QSPI life a lot better for me :)


I can install your plugin but not activate it

I can install your plugin but not activate it.
Windows 10
Obsidian 1.7.7

Hi! What do you mean by activate it?  After enabling the plugin, if you go to the command palette, don't you find multiple commands under "File Manager". Have you tried to add a pathexplorer codeblock in a note?

Thanks for your answer.
When I click on the switch, it switches back and gives an error messages.

Could you please, open Obsidian Developer Tools (Ctrl + Shift + i). A new panel will show on the right hand side with the developer tools. Under the console button/tab, could you see any errors belonging to file-manager?

Happy to hear!
I'm closing the issue.


Proof serialization

Mostly straightforward, two iffy parts:

ok to put array_serialization in p3-util (pulling in serde), or should be its own crate?
~Had to wrap Merkle commitment to be serializable, and then to satisfy CanObserve, changed it so Commitments are IntoIterator with Item observable. kind of ugly. but not terrible.~

Alternatives:

put [P::Scalar; DIGEST_ELEMS]: Serialize + for<'de> Deserialize<'de> in FieldMerkleTreeMmcs, FriConfig, and StarkConfig
move FieldDigest to p3-symmetric or p3-challenger

1 is probably best imo, lmk and I will change

I changed it to 1 so it's not ugly.

another alternative is to remove all serde bounds from FriConfig, StarkConfig, and put them in #[serde(bound)] to "defer" it to the downstream user trying to serialize. that way is "more correct" but honestly it doesn't seem hard to implement Commitment: Serde for all PCS, and means serde bounds spam in data structures


[question] missing_scope error in chat.command

Hi, regarding the chat.command, are you aware if there is a way to create a legacy token for a app/bot user ? I seem to be only able to create it for my personal user...

Yes and sadly there is other way to use this and other undocumented API commands then with a Legacy token.


site not responsive in medium screen and improvements in navigation tabs.

Describe the bug

When you resize the screen into medium one ,you can observe error in Enroll button it deformed and not working appropriately.
Also want to improve the navigation tabs, make it more responsive like adding over effect with some great CSS part.
To Reproduce
Steps to reproduce the behavior:

Resize screen to medium.
Scroll down to courses
observe the size of enroll button.
See error

Expected behavior
It should normally behave as for full and short screen.
Screenshots

(please complete the following information):**

OS: Android
Browser:- All browser
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

@SahityaRoy  I am HCSoC participant assign me this issue to enhance the site.

hey can you assign me for this

Hey @SahityaRoy i have raised this issue can you assign me this under hactoberfest 22

can I work on this issue

I already fix this and make a pr also this is the link of pr

ok


GPU evaluation support

I'm working image segmentation that has a huge output. Computing metric on CPU has become the bottleneck. How can I add a GPU metric op that's only computed on forward and ignored on backward?

how about when do the backward(), fix in_grad = 0,then it will not infuence the bottom layer?
another, becasue this evaluation is only used forward, can let NDArray support that compution in gpu?

I ended up doing it with imperative API. In the process I refactored FeedForward model to directly send GPU output to metric without copying to cpu. I think this is a better interface because this allows metric to be computed on GPU. Also since asnumpy() is called in metrics anyway so this change shouldn't have any side effects.

I prefer low level way to fix it. I think it is possible to write imperative evaluation by using NDArrary API (if we have enough operator in NDArrary API). Another low level solution we can make some metric symbol, eg:
data = mx.sym.Variable("net_out")
label = mx.sym.Variable("label")
logloss_metric = mx.sym.LogLossMetric(data, label)
args = {"net_out" : net.outputs[0], "label" : xxx}
metric = logloss_metric.bind(xxxx)

It is dirty but quick solution. For high level API modification, guess Tianqi will have better idea,


The defaultWallet in WalletViewModel is not actively updated after account deletion

Need to manually pull down to update，If I don't manually update, click on the token to jump to Erc20DetailActivity to display the data of the deleted wallet

Thanks, we'll check it out

I believe this is the reason of #3182 , will fix together.


less than default unity desktop environment

Please paste the output of the following command here: sudo edit-chroot -all
sudo: edit-chroot: command not found

Please describe your issue:
I used Crouton to install Unbuntu Xenial with Unity desktop environment on my HP Chromebook.  On reading documentation for Ubuntu Unity, it appears some applications that usually come with default install are missing, most notably, the Ubuntu Software Center.  I am new to Linux.  Is there a way to get the missing pieces? Or should I have followed your advice and used xfde desktop environment instead?
If known, describe the steps to reproduce the issue:

I tried it.  It downloaded a lot of stuff, but it wouldn't start when I started Unity.  I should have written down the error message, but I didn't.  Instead I tried to start again with a clean slate and rebooted Chrome regular mode, which I understand (maybe incorrectly)  erases everything that was done in developer mode.  When I got back into the shell and gave it the command you suggested, I got:

...

Downloading latest crouton installer ...
[a whole bunch of # symbols] 100.0%
[a whole bunch of # symbols] 100.0%
/mnt/stateful partition/crouton/chroots not found.
/usr/local/chroots/xenial does not exist; cannot update.
Valid chroots:
chronos@localhost / $

I take that to mean that my attempt to clean the slate and start over didn't work and left some junk behind. If I get it all to work again, I will post another comment saying how I resolved it and close this thread.

@MikeEnders,
I take it to mean that you were using the '-u' update option on a non-existing crouton chroot.

Valid chroots:
chronos@localhost / $

The above output shows no chroots installed.
You need to install it from scratch since leaving and re-entering Developer mode will wipe the user partition clean. If you want to try again I would suggest the following for an Ubuntu Desktop with a few other handy targets:

sudo sh ~/Downloads/crouton -r xenial -t xorg,xiwi,cli-extra,keyboard,touch,unity-desktop,chrome

Then install the 'crouton integration' extension from the Chrome Web Store.
You can then use either the 'xorg' or 'xiwi' xmethod by launching them with the '-X' option:

For 'xorg' in a full screen: sudo startunity -n xenial -X xorg
For 'xiwi' in a full screen: sudo startunity -n xenial -X xiwi-fullscreen
For 'xiwi' in a tab: sudo startunity -n xenial -X xiwi-tab
For 'xiwi' in a window: sudo startunity -n xenial -X xiwi

Hope this helps,
-DennisLfromGA


Using JsonExtensionDataAttribute from System.Text.Json in Message

Contact Details
No response
Version
8.x
On which operating system(s) are you experiencing the issue?
Windows
Using which broker(s) did you encounter the issue?
Kafka
What are the steps required to reproduce the issue?
1. Create a message like:
public record ExampleEvent(string Value)
{
    [JsonExtensionData]
    public Dictionary<string, object> AdditionalData { get; set; } = [];
};

new ExampleEvent("Val 1")
{
    AdditionalData = new Dictionary<string, object> { { "test", "name" }, { "test2", 2} }
};

2. Send message to Kafka topic.
3. Try to consume this message.

Or just try serialize and deserialize this message.

I found that removing SystemTextJsonConverterFactory from SystemTextJsonMessageSerializer.Options.Converters solves the problem for me.

What is the expected behavior?
Deserialization of message will not fail.
Serialized message on kafka look like:
{ "value": "Val 1", { "test": "name", "test2": 2 } }
Insted of:
{ "value": "Val 1", "test": "name", "test2": 2 }
What actually happened?
Kafka consumer is unable to consume message because of deserialization issue.
Related log output, including any exceptions
fail: MassTransit[0]
      R-FAULT loopback://localhost/kafka/example-event-topic a02d0000-a153-ac91-0202-08dc9b33ce6a 00:00:00.0065419
      System.Text.Json.JsonException: '{' is an invalid start of a property name. Expected a '"'. Path: $.evt.data[0] | LineNumber: 10 | BytePositionInLine: 8.
       ---> System.Text.Json.JsonReaderException: '{' is an invalid start of a property name. Expected a '"'. LineNumber: 10 | BytePositionInLine: 8.
         at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes)

Link to repository that demonstrates/reproduces the issue
No response

Without a full repository on the latest MassTransit version reproducing the problem, I won't be able to look at it. I know there were changes put in place long ago to address this attribute, so I'm fairly sure it should work unless something was missed.

I can reproduce the issue, but I don't have a solution. The dictionary handling built into MassTransit is possibly related, but the serializer doesn't provide enough information to determine if it that attribute is present.

You'll likely need to create your own custom converter and Insert it at the front of the JSON serializer options for MassTransit, so that MassTransit doesn't override the dictionary handling on that property.

I've added a method to customize the serialization of a given message type:
cfg.ConfigureJsonSerializerOptions(options =>
{
    options.SetMessageSerializerOptions<ExtensiveMessage>();

    return options;
});

This is the workaround at this point to prevent MassTransit from overriding the Dictionary<string,object> serialization behavior.


Indicate yesterday/tomorrow in user-local-time

Would it be possible to add something like (Yesterday) or (Tomorrow) if the user's local time is a different day than my own?
Btw, user-local-time is definitely one of my favorite rgh features!! ❤

I'd either show -1/+1 like booking sites do, or the day of the week, so "10:00 PM Friday"

The timezone info is already present in the title:

Maybe we can make it shorter:

Or even:

I like both ideas.  Is it possible to configure a specific feature?  I'd love to be able to switch between one mode or the other.

-1/+1 would indicate the date difference, not the timezone. We have already gone over this in the original PR and indeed the actual timezone is already present in the tooltip. The tooltip includes an extra piece of information too: When was this updated?

Or even (which I prefer):

I agree, it looks good.  But for people who aren't in GMT time, it's not that helpful.  I'd like it if it showed their GMT offset - my GMT offset, so in this case (+7) - (-4) = +11.

Maybe we can make it shorter:

Yeah, tha looks good!  I don't think the full date being in their is materially useful, but it is definitely annoying to see it broken up on two lines.

or the day of the week, so "10:00 PM Friday"

I like this one.

I'd like it if it showed their GMT offset - my GMT offset, so in this case (+7) - (-4) = +11.

This is probably why we avoided placing a number there, it was just confusing and "relative". If we put "+11" is it relative to me or relative to GMT?
If we show the day of the week it avoids every ambiguity.

If we put "+11" is it relative to me or relative to GMT?

Relative to me, because I can easily imagine "11 hours ahead of me", but "7 hours ahead of GMT" is not so intuitive (at least for me).

If we show the day of the week it avoids any ambiguity.

True.  That's fine with me (although I'm attached to the idea of the relative differe said above :)


dev-1.x

Motivation

Modification

BC-breaking (Optional)

Use cases (Optional)

Checklist
Before PR:

[ ] I have read and followed the workflow indicated in the CONTRIBUTING.md to create this PR.
[ ] Pre-commit or linting tools indicated in CONTRIBUTING.md are used to fix the potential lint issues.
[ ] Bug fixes are covered by unit tests, the case that causes the bug should be added in the unit tests.
[ ] New functionalities are covered by complete unit tests. If not, please add more unit tests to ensure correctness.
[ ] The documentation has been modified accordingly, including docstring or example tutorials.

After PR:

[ ] CLA has been signed and all committers have signed the CLA in this PR.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

:exclamation: No coverage uploaded for pull request base (main@efe09cd). Click here to learn what that means.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main       #5   +/-   ##
=======================================
  Coverage        ?   71.80%
=======================================
  Files           ?      292
  Lines           ?    19976
  Branches        ?     3379
=======================================
  Hits            ?    14343
  Misses          ?     4818
  Partials        ?      815

Flag
Coverage Δ

unittests
71.80% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Ensuring responses from the REST API are compressed

NIFI-2771:

Using GzipHandler instead of GzipFilter.

Reviewing. . .


Cannot start project

yarn start is giving a lot of errors.

try using npm please. I did not configure yarn for this project.


Chore: Update App.test.js

Linked Issue
#4
Description
Updates App.test.js to test the various render states of App.js.
As a small aside, some thought might want to be given to that component's layout as the following warning is printed to the console when yarn test is run:
...
  console.error
    Warning: validateDOMNesting(...): <ul> cannot appear as a descendant of <p>.
        at ul
        at p
        at header
        at div
        at App (/foo/stepzen-spacex-graphql/src/App.js:21:36)
        at ApolloProvider (/foo/stepzen-spacex-graphql/node_modules/@apollo/client/react/context/ApolloProvider.js:5:21)
        at MockedProvider (/foo/stepzen-spacex-graphql/node_modules/@apollo/client/utilities/testing/mocking/MockedProvider.js:10:28)

      at printWarning (node_modules/react-dom/cjs/react-dom.development.js:67:30)
      at error (node_modules/react-dom/cjs/react-dom.development.js:43:5)
      at validateDOMNesting (node_modules/react-dom/cjs/react-dom.development.js:10083:7)
      at createInstance (node_modules/react-dom/cjs/react-dom.development.js:10181:5)
      at completeWork (node_modules/react-dom/cjs/react-dom.development.js:19464:28)
      at completeUnitOfWork (node_modules/react-dom/cjs/react-dom.development.js:22812:16)
      at performUnitOfWork (node_modules/react-dom/cjs/react-dom.development.js:22787:5)
...

A super simple fix for it is to remove lines 35, and 41.
I smoke tested it and that element's removal has no visual effect. Happy to open a follow up PR to do this, if that is the desired path forward.
Methodology

https://www.apollographql.com/docs/react/development-testing/testing/
https://jestjs.io/docs/snapshot-testing

Thanks for your thoughtful work and clear description @virtuoushub ! I am having some trouble getting the fork up and working to test manually on my computer but I think it is something on my end. Just wanted to let you know that I am working on reviewing this.

Thanks @virtuoushub, this looks great. Feel free to open a follow up PR for the validateDOMNesting error if you've got the time 👍.

#22 actually solved for this already.


chore: additional demos

Updates to gitpod environment and demos to include new functionality

Since this repo is pretty documentation heavy, I'd kind of like to see the .markdownlint.yml file and markdownlint-cli2 workflow from bomctl added here as well

Since this repo is pretty documentation heavy, I'd kind of like to see the .markdownlint.yml file and markdownlint-cli2 workflow from bomctl added here as well

Created an issue to address this


pull request for e2e test at 12/12/2016 11:26:04

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Have coinType be used consistently across the listing and listing index apis

For crypto currency listings, the listing API refers to the coin being traded as coinType, but in the listing index, it comes back as cryptoCurrencyCode.
Can the listing index use coinType to be consistent with the Listing api?

Absolutely. I'll get this fixed in the next merge.

Dupe of #1727.


enhance reshape to support non-standard input

With more operators will generate outputs with non-standard outputs, it is necessary for the reshape operator to be able to handle non-standard input.
This issue is to track enhancing the reshape operator...

We can only do reshape when the dimensions to be collapsed are adjacent. So we will need to do some analysis to find out which dimensions are being collapsed and then throw an error if they are not adjacent. For squeeze and unsqueeze we already now what dimensions will be collapsed so it will be simpler.


Add code and contract getters to CosmWasmClient

This is an alternative to #112, with some differences:

use our own types Code, CodeDetails, Contract exposed from @cosmwasm/sdk that don't need to match the REST response directly
Prepare for https://github.com/cosmwasm/wasmd/issues/75, avoiding the /wasm/contract getter, which has no long term usage
Try to come up with the best possible names instead of mirroring REST backend or client names

Also make the contract generic T over init_msg, default object, as the caller often has more info.

When I worked on this, I thought init_msg should not be part of the list at all (see https://github.com/cosmwasm/wasmd/issues/80)


Increase hotspot list page size

https://github.com/helium/blockchain-http/blob/24e501095279648c909dbfc19065a69c3ee78149/src/bh_route_hotspots.erl#L37
Currently if one wants to fetch a list of hotspots from the api, only 1000 hotspots are returned at a time. To fetch all hostpots would therefore require more than 400 calls to this endpoint. The overhead of all these calls is becoming quite substancial. Have a look at https://cargo.helium.com/ to see how long it takes to load all the hotspots.
Limiting the result size is a good idea, but 1000 is very low. Browsers and other clients should be able to handle 10000 (10k) results quite easily. I've done quite some testing while building TTN Mapper, and I ended up limiting json results from APIs to 10k, as this seems to work well on all devices (at least made after 2010).
Can we increase this limit from 1k to 10k?

So ideally cargo should not be paging through 400K+ hotspot entries to make a list. It should either

Have access to a Postgres db do it can query the data it needs directly instead of using an api that wasn't built for it
Fetch the list once and only add to the list. Since hotspots are listed in reverse of order added (latest first), it would be able to retrieve and store just a small number before finding hotspots that it has already stored.
Use a tile server like we do for explorer. The tile server used by explorer uses mostly option 2 or a cached version of a nightly export job

This depends on the use case of course. For coveragemap.net I do the following:

Two things that are very important for the coverage are:

Is the hotspot online or not (last heard in past day or not)
Has the hotspot moved

So just paging through the api.helium.com result until an already-seen hotspot is found is not good enough. I need to iterate through all the hotspots to update the last heard/online status and detect if the hotspot has moved or not.
I considered running an ETL instance to have direct access to this data, but running an ETL instance requires a huge server which I can't afford to run for a community project.
You mention a nightly export job. Are these exports publicly available? I can definitely use daily exports for my purpose, although I would have liked higher time resolution than that. Maybe if 12-hourly exports are done that would be a good middle ground.
Another option is to make this hotspots endpoint cache its result, but then again a 1000 entry limit per page will still be too low.
We could also take some inspiration from what Packet Broker does with its gateway list API:
https://mapper.packetbroker.net/api/v2/openapi.json
They have filters on the endpoint:

distance from coordinates
only updated since timestamp
only online gateways
paging - They also use a page size of 1000, but iterating through the pages here is much faster than on Helium.

In the Packet Broker case I use the "only online gateways" filter.
Adding a tile-server type approach to the helium api does not feel right. Depending on the use case the way tiling is done differently. This should not be dictated by the helium api. And even if one uses tiles, you might have to page per tile, as there could be more than 1000 hotspots in a tile.

Sorry I missed responding to you here. Did you get this resolved or do you still need access to a nightly export of all hotspots?

No, not resolved. I'm still paging through the whole response I get from the API. This takes really long, and most likely causes a lot of load on the API server.
Daily (or more frequent) dumps would be great. Then I can load in the dumps rather than paging through the API.

No, not resolved. I'm still paging through the whole response I get from the API. This takes really long, and most likely causes a lot of load on the API server.
Daily (or more frequent) dumps would be great. Then I can load in the dumps rather than paging through the API.

ok we have the same issues with app/explorer and console projects. They use a hotspot network dump that is generated around midnight every day. Available at https://snapshots.helium.wtf/mainnet/hotspots/network/<date>.json.gz where <data> is the "max-date" in question.. so like today would be 2022-04-21 since it the 24 hours end at 00:00:00 of 2022-04-21 so includes the 24 hours of 2022-04-20, if that makes sense.

Great, that dump should work for me.
Two clarifications though:

The "last modified time" of the 2022-04-20 dump is 2022-04-20T01:00:32Z. So I assume the export happens one hour after the end of the day in UTC. Is this correct?

The json does not include a "last heard" for the hotspots. Only a "online" status. Can I assume if a hotspot is marked as "online", it was online at the end of the day, ie. 2022-04-20T00:00:00Z in this case?

Great, that dump should work for me.
Two clarifications though:

The "last modified time" of the 2022-04-20 dump is 2022-04-20T01:00:32Z. So I assume the export happens one hour after the end of the day in UTC. Is this correct?

Correct.

The json does not include a "last heard" for the hotspots. Only a "online" status. Can I assume if a hotspot is marked as "online", it was online at the end of the day, ie. 2022-04-20T00:00:00Z in this case?

Correct. it's as online as ETL knows at the time the json snapshot is taken

I think this solves my problem well enough for now. I'd like to see a more real-time solution in the future though. But closing this issue for now.

@madninja I've gotten around implementing the fetch of hotspot statuses from the snapshot. I see that every entry in the snapshot has "online": "online". Is this a bug, or does this snapshot only contain hotspots that are online at the time of the dump?

It should be a straight json dump of the ETL hotspot data.

Does that mean all hotspots in the ETL are online? Somehow it doesn't feel right that all the hotspots in this dump is marked as online.

Does that mean all hotspots in the ETL are online? Somehow it doesn't feel right that all the hotspots in this dump is marked as online.

I just went and downloaded wget  https://snapshots.helium.wtf/mainnet/hotspots/network/2022-09-19.json.gz uncompressed it and did:
$ grep  offline 2022-09-19.json | wc -l
 343192```

So I'm not sure why you're seeing only online as the value of the "online" attribute at all

Ok got it. Seems to work as expected. I must have missed a condition before.
2022/09/24 11:29:04 Fetching Helium Snapshot https://snapshots.helium.wtf/mainnet/hotspots/network/2022-09-24.json.gz
2022/09/24 11:29:41 Found 953691 hotspots in snapshot
2022/09/24 11:29:41 Online 609107
2022/09/24 11:29:41 Offline 344584
2022/09/24 11:29:41 Other 0


Integrate context switching

kxd is cool, but it would be cooler if you could also change contexts within each file.

looks like k8s.io/client-go/tools/clientcmd would be the way to go
https://pkg.go.dev/k8s.io/client-go/tools/clientcmd

I think an easy MVP would be to just allow for switching contexts for current set KUBECONFIG so you could kxd choose config then say kxd -c and pick context idk

that or if no KUBECONFIG set send them through the config picker loop, or default to ~/.kube/config

Yes I think that makes sense.  You should only be able to switch contexts for the current one.  And the default should be ~/.kube/config.

completed by https://github.com/radiusmethod/kxd/pull/12


Arrow Notation

Hi, cool interpreter. I have a few suggestions for improving the code.

You can improve the readability of the interpreter by using arrow notation.
Don't use a specific arrow type in your interpreter, rather make the interpreter polymorphic over the arrow: interpret :: (ArrowChoice c,MyOps c) => Op -> c Int64 Int64. This makes the code more reusable and allows you to describe alternative brainfuck semantics in the future. If you need access to certain monadic operations, such as getChar, you can create a type class MyOps that captures these operations:class MyOps c where
  getChar :: c () Char
  ...

You should use the Kleisli arrow directly instead of the BFArrow type that wraps a Kleisli arrow directly. The arrow type for your interpreter should be Kleisli (StateT BFState IO) a b, where StateT is the monad transformer of the MTL library. This gives you the benefit that almost all arrow operations that you need are defined for you instead of you needing to define them yourself.

If you want an example of how this looks, I created an interpreter for PCF:
https://github.com/svenkeidel/PCF-arrows/blob/master/Shared.hs

Hi,
first of all thanks for the tips.

You can improve the readability of the interpreter by using arrow notation.

I want to avoid using the arrow notation if possible since I also work on stuff involving Haskell-y languages that do not have the proc notation.

Don't use a specific arrow type in your interpreter, rather make the interpreter polymorphic over the arrow: interpret :: (ArrowChoice c,MyOps c) => Op -> c Int64 Int64. This makes the code more reusable and allows you to describe alternative brainfuck semantics in the future. If you need access to certain monadic operations, such as getChar, you can create a type class MyOps that captures these operations:

That's a good point, but wouldn't the restriction on MyOps enforce a Kleisli-like type anyways? Also see comment below.

You should use the Kleisli arrow directly instead of the BFArrow type that wraps a Kleisli arrow directly. The arrow type for your interpreter should be Kleisli (StateT BFState IO) a b, where StateT is the monad transformer of the MTL library. This gives you the benefit that almost all arrow operations that you need are defined for you instead of you needing to define them yourself.

I really wanted to encode the state within an Arrow and specifically not use StateT. This then means by default that I either have to use my own typeclass, or rely on a transformer like Control.Arrow.Transformer.State. I probably could have done it with a naked Kleisli IO (a, State) (b, State), though, that's right.

FWIW I'd love to see an arrow notated version, if only to be able to use this package: http://scrambledeggsontoast.github.io/2014/09/28/needle-announce/

That's a good point, but wouldn't the restriction on MyOps enforce a Kleisli-like type anyways? Also see comment below.
The type class MyOps adds no restriction on what kind of arrow you can use. That being said. There are very few cases of where you want something else than a Kleisli arrow. Especially for interpreters it is well known that the effects of a language can be modeled with Monads and hence you can use Kleisli arrows for your arrow-based interpreter.

Arrow Transformer are not really necessary in your case since the effects of your language can be described by a Kleisli arrow. Arrow transformer become useful once you need arrows which are no Kleisli arrows such as a list transformations: data ListTrans a b = LT ([a] -> [b]). Then arrow transformer analogously to monad transformers provide a way to compose effects.

By the way, there are arrow preprocessors that desugar Haskell arrow notation to the arrow operations. You could use that to desugar the arrow code of your interpreter.
I found that none of the preprocessors currently works, but I updated the preprocessor of this project and it works for me. I see if I can make this version available to you.

The type class MyOps adds no restriction on what kind of arrow you can use. That being said. There are very few cases of where you want something else than a Kleisli arrow. Especially for interpreters it is well known that the effects of a language can be modeled with Monads and hence you can use Kleisli arrows for your arrow-based interpreter.

So hosting the functionality on MyOps is not really needed for this case, right?

Arrow Transformer are not really necessary in your case since the effects of your language can be described by a Kleisli arrow. Arrow transformer become useful once you need arrows which are no Kleisli arrows such as a list transformations: data ListTrans a b = LT ([a] -> [b]). Then arrow transformer analogously to monad transformers provide a way to compose effects.

Yeah. That sounds about right :).
Honestly. I guess I could have done the interpreting with Kleisli IO State State alone and host the current position in the code inside State. But I felt like toying around with Arrow typeclasses.

By the way, there are arrow preprocessors that desugar Haskell arrow notation to the arrow operations. You could use that to desugar the arrow code of your interpreter.

Ah okay. Well I have gotten used to working with Arrows without the proc notation and once you clear your code it ususally is quite nice to read:
https://github.com/s4ke/Parrows/blob/master/Definition/src/main/Parrows/Skeletons/Topology.hs#L84

I found that none of the preprocessors currently works, but I updated the preprocessor of this project and it works for me. I see if I can make this version available to you.

@svenkeidel
I thought about it again...
I think I will substitute Kleisli IO in the signature of BFArrow for a general arrow and use your type-class approach. This way I can keep BFArrow for managing state. I won't move the Int64 into State, though, as I wanted to toy around with something like a StateTransformer when I started with this.


Fix MavenCentral deployment credits

Jenkins complains about insecure string interpolation when deploying to maven central. While the credentials are masked and therefore this should be safe to use, we should investigate another way to pass in the credentials there.
Should be doable fast forward, as we use credentials beforehand already and therefore one may just apply the concept of an existing credentials implementation.
If you start working on this, feel free to contact me for details.

Resolved in #573


add z and vscode plugins

This adds z and vscode plugins for zsh.
z allows quick navigation through terminal.
vscode brings some aliases for VSCode to zsh.

cc @db0sch @brunolajoie

👋 I have two concerns about those plugins:

z: it's definitely a power user tool. I feel if you have this in the students toolbelt and introduce them a bit too early to it, they'll forgot about folder hierarchy, cd and ls basic commands and would just lean on the tool. It's definitely something worth adding for a teacher, for a student not so sure 🤔 .
vscode does not seem to bring much to the table. There are a bunch of aliases to perform complex tasks, I understand that for git it can make sense but for VSCode IMHO you a student just needs to do code . right? Another thing: it does not automatically add code to the $PATH, unline the sublime plugin which looks everywhere (true value of that plugin!).

You are totally right, let's just add an alias to code . to the .aliases


Android app crashes when controls are enabled with ExoPlayer

Bug
If I enable the controls property upon rendering the android app crashes. Stacktrace:
java.lang.IndexOutOfBoundsException: index=1 count=0
    at android.view.ViewGroup.addInArray(ViewGroup.java:5381)
    at android.view.ViewGroup.addViewInner(ViewGroup.java:5274)
    at android.view.ViewGroup.addView(ViewGroup.java:5083)
    at com.brentvatne.exoplayer.ReactExoplayerView.addPlayerControl(ReactExoplayerView.java:326)
    at com.brentvatne.exoplayer.ReactExoplayerView.setControls(ReactExoplayerView.java:1183)
    at com.brentvatne.exoplayer.ReactExoplayerView$4.run(ReactExoplayerView.java:395)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:6986)
    at java.lang.reflect.Method.invoke(Method.java)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1445)

Platform
Android ExoPlayer only
Environment info
React native info output:
React Native Environment Info:
    System:
      OS: macOS 10.14.6
      CPU: (8) x64 Intel(R) Core(TM) i7-3740QM CPU @ 2.70GHz
      Memory: 356.16 MB / 16.00 GB
      Shell: 3.2.57 - /bin/bash
    Binaries:
      Node: 11.15.0 - ~/.nvm/versions/node/v11.15.0/bin/node
      Yarn: 1.17.3 - /usr/local/bin/yarn
      npm: 6.9.0 - ~/.nvm/versions/node/v11.15.0/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1
      Android SDK:
        API Levels: 19, 22, 23, 24, 25, 26, 27, 28
        Build Tools: 23.0.1, 23.0.2, 23.0.3, 24.0.2, 25.0.0, 25.0.2, 25.0.3, 26.0.1, 26.0.2, 26.0.3, 27.0.0, 27.0.3, 28.0.2, 28.0.3
        System Images: android-29 | Google Play Intel x86 Atom
    IDEs:
      Android Studio: 3.3 AI-182.5<IP_ADDRESS>99772
      Xcode: 11.3/11C29 - /usr/bin/xcodebuild
    npmPackages:
      react: 16.9.0 => 16.9.0
      react-native: 0.59.9 => 0.59.9

Library version: 5.1.0-alpha1
Tried with: 4.4.4 and 4.4.2 also
Steps To Reproduce

Set controls property to true
App crashes
...

Expected behaviour

Set controls property to true
App not crashes

Reproducible sample code
import { StyleSheet, TouchableOpacity, View, Platform } from 'react-native';
import PropTypes from 'prop-types';
import Video from 'react-native-video';

import { GREY_4, BROWN } from '../styles/colors';

export class VideoPlayer extends PureComponent {
  static propTypes = {
    videoUri: PropTypes.string.isRequired,
    videoThumbnail: PropTypes.string,
    fullScreen: PropTypes.string,
    onExitFullScreen: PropTypes.func,
  };

  constructor(props) {
    super(props);

    this.state = {
      muted: false,
      paused: true,
      showThumbnail: Platform.OS === 'ios', // only show thumbnail on iOS - android is broken
    };
  }

  componentDidMount() {
    const { fullScreen } = this.props;
    if (!fullScreen) { return null; }
    if (this.videoPlayer) {
      this.timeout = this.setFullScreenTimeout();
    }
    return null;
  }

  componentWillUnmount() {
    clearTimeout(this.timeout);
  }

  onProgress = () => {
    this.setState({ showThumbnail: false });
  };

  onEnd = () => {
    this.setState({ paused: true });
    this.video.seek(0);
  };

  onAudioBecomingNoisy = () => {
    this.setState({ paused: true });
  };

  onAudioFocusChanged = (event: { hasAudioFocus: boolean }) => {
    this.setState({ paused: !event.hasAudioFocus });
  };

  onFullscreenPlayerDidDismiss = () => {
    const { onExitFullScreen } = this.props;
    if (onExitFullScreen) { onExitFullScreen(); }
    return null;
  }

  setFullScreenTimeout() {
    setTimeout(() => {
      this.videoPlayer.presentFullscreenPlayer();
    }, 100);
  }

  video = Video;

  render() {
    const { videoUri, videoThumbnail } = this.props;
    return (
      <View style={styles.container}>
        <TouchableOpacity
          style={styles.fullScreen}
          onPress={() => this.setState({ paused: !this.state.paused })}
        >
          <Video
            ref={(ref) => { this.videoPlayer = ref; }}
            /* For ExoPlayer */
            source={{ uri: videoUri }}
            poster={this.state.showThumbnail ? videoThumbnail : null}
            posterResizeMode="cover"
            controls
            style={styles.fullScreen}
            paused={this.state.paused}
            muted={this.state.muted}
            onProgress={this.onProgress}
            onEnd={this.onEnd}
            onAudioBecomingNoisy={this.onAudioBecomingNoisy}
            onAudioFocusChanged={this.onAudioFocusChanged}
            onFullscreenPlayerDidDismiss={this.onFullscreenPlayerDidDismiss}
            repeat={false}
          />
        </TouchableOpacity>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    height: 189,
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: BROWN,
    borderWidth: 3,
    borderColor: GREY_4,
  },
  fullScreen: {
    position: 'absolute',
    top: 0,
    left: 0,
    bottom: 0,
    right: 0,
  },
});

export default VideoPlayer;

Video sample
If possible, include a link to the video that has the problem that can be streamed or downloaded from.

@adamivancza did you ever get a solution to this? I am hitting the same issue with this version?

@wmccoubrey yeah I found a workaround. Turned out this only happens if the <Video > component was not returned on render function for the first render. E.g.
This works:
render() { return <Video /> }
And this crashes:
render(){ if(loading) return <Loading \> return <Video \> }
Hope this helps you as well.

@adamivancza I follow your way. It works.
Do you know what reason to make this error?
Is there any way to use
render(){ if(loading) return <Loading \> return <Video \> }

@trilam1409 thx for the feedback - I'm glad that at least my workaround works :).
Based on the stack track I've attached it crashes inside native ExoPlayer lib.

@adamivancza thank you very much. I spent a long time for this error.
I'm using<EMAIL_ADDRESS>and<EMAIL_ADDRESS>for a new app.
But I used to make another app. It also includes a video. Still working well with<EMAIL_ADDRESS>and<EMAIL_ADDRESS>If anyone sees this problem, you can convert to the old version.
Once again, thanks for your support.

@adamivancza I tried your workaround but it does not work for me, sometimes it is fine sometimes it is crashing.
Did you try in production and everything was fine with it?

@golya yeah it's used in production and I didn't see any crashes related to this on Sentry.

@adamivancza thanks for your quick response, I am not sure what is the difference. :(

@golya actually the app is using my own fork for some time now. My fork is at alpha-6 + this PR. https://github.com/adamivancza/react-native-video#bd8ad569280bc40ca1695322c7ca8e798f16d00e

@adamivancza thanks! however it seems the pull request is an iOS change. I will try your fork as well. On the other it seems I have to debug because it still not really normal that you have to use a workaround a really basic feature.

@cobarx I am going to debug this issue, do you know where should I start or know someone who can help facilitate the solution? (I tagged you as I am not sure who is the main contributor of this package. :) )

It seems I found a solution, in file android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java:
 403      * Adding Player control to the frame layout
 404      */
 405     private void addPlayerControl() {
 406         if(player == null) return;
 407         LayoutParams layoutParams = new LayoutParams(
 408                 LayoutParams.MATCH_PARENT,
 409                 LayoutParams.MATCH_PARENT);
 410         playerControlView.setLayoutParams(layoutParams);
 411         int indexOfPC = indexOfChild(playerControlView);
 412         if (indexOfPC != -1) {
 413             removeViewAt(indexOfPC);
 414         }
 415         addView(playerControlView, 1, layoutParams);
 416     }

if you change the line 415 to. addView(playerControlView); then there is no crash.

Without wanting to fork we were able to work around this in our codebase today.
With the controls set to false the error goes away. I am guessing the controls are rendering ahead of the player in some sort of race condition.
Our solution ran counter to what was stated above as a solution. Our component was being rendered immediately on the initial mount of the component and adding a no-render ended up solving our issue.
const [render, setRender] = useState(false);
useEffect(() => setTimeout(() => setRender(true), 0), [setRender]);

if (!render) return <Fragment />;

return (
  <Video controls={true} {...props} />
);

@frank-west-iii  workaround works for me!
thank you 👍🏻
I made it work using a component like that:
const VideoWithControls = ({ ...props }) => {
  const [render, setRender] = useState(false);
  useEffect(
    function () {
      setTimeout(() => setRender(true), 0);
    },
    [setRender],
  );

  if (!render) {
    return <></>;
  }

  return <Video controls={true} {...props} />;
};

Without wanting to fork we were able to work around this in our codebase today.
With the controls set to false the error goes away. I am guessing the controls are rendering ahead of the player in some sort of race condition.
Our solution ran counter to what was stated above as a solution. Our component was being rendered immediately on the initial mount of the component and adding a no-render ended up solving our issue.
const [render, setRender] = useState(false);
useEffect(
  function() {
    setTimeout(() => setRender(true), 0);
  },
  [setRender]
);

if (!render) return <Fragment />;

return (
  <Video controls={true} {...props} />
);


Setup webpack with rails

Created a new Rails app called 'hello-rails-react'.
Used the command rails new -j webpack my_new_rails_app as described in the previous lesson's tutorial.
Verified that the jsbundling-rails gem is added to your Gemfile.
Initialized project with Git.
Installed needed node dependencies as described in the previous lesson's tutorial.
Created a babel.config.js in the root folder of your project as described in the previous lesson's tutorial.
Updated webpack.config.js to include the babel loader as described in the previous lesson's tutorial.
Made sure that your project has a Postgres database set up.
Created a table for storing your messages and create 5 different greetings.
Created an API endpoint that selects a random greeting from your table (you will need a controller with an action and Rails route).
Created a static view that will be the root of your app.
Created the App component with react-router and render it in your static view.
Created the Greeting component that will display a greeting. Set it up as a route in your App component.
Created a store, an action, and a reducer that will connect to your API endpoint to get the random greeting.
Displayed the random greeting in your Greeting component.

@Reem-lab why not you mention the reason? Why are you giving a default message? R u a robot?

Hello @sajibarafatsiddiqui no I am not a robot I think it would be great if you have a professional README since it is important to have it so in the future the recruiters or any user could be able to see about the project and how to run it and more information about it

Hello @sajibarafatsiddiqui no I am not a robot I think it would be great if you have a professional README since it is important to have it so in the future the recruiters or any user could be able to see about the project and how to run it and more information about it

I am not getting you. I think you are watching readme file of dev branch not my working branch.

Hello @sajibarafatsiddiqui no I was watching it on setupwebpackwithrails this branch and you were putting the budget app project inormation 👍🏻 but I think now you just updated it

The description was changed before sending to review . However I made changes. Now you are looking like human being. As you are pointing the objections objectively not throwing a default message.

Hello @sajibarafatsiddiqui this is the commit after my review 💪🏻

Hello @sajibarafatsiddiqui this is the commit after my review 💪🏻🔥🙏🏻

Ok. It seems  forgot to save the readme file in vscode before committing. 🤦♂. However greetings from me and my daughter. Thanks


Add Pumped up Kicks x James Charles by Foster the people

Song Name
Pumped up Kicks x James Charles
Artist Name
Foster the people
Source
Youtube
Youtube Link
veus9aZGLrY
Direct File Link
No response
Song ID
627121
Start Offset [ms]
0
Extra
Created from Auto Nong.
Created for level: 48353992
Downloaded: No

The offset is kinda broken i will post new one in the comments when its fixed


Create fr_config_manager pipeline in secure-api-gateway-relenvs-deployer

At the moment we are using the same template as what's in sbat-infra, this means making horrible if statements for stuff like folder structure as it can be different depending on what repo you are using
Would be ideal now to just create a new template in secure-api-gateway-relenvs-deployer for relenvs fr_config_manager and remove the if statements from the template in sbat-infra

Work for this is done in 1003 , this ticket now is to revert changes to sbat-infra run-cs-config-manager template


Jpexs.FFDec version <IP_ADDRESS>

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Hi @twig6943,
Java appears to be a dependency.

/AzurePipelines run


Create an end-to-end perf test for Mixer.

We want to be able to measure the real-world performance of Mixer under load. This work involves:

Creating a real-world traffic flow to Mixer

Creating a real-world configuration for Mixer including expected set of selectors and expression evaluation.

Selecting a set of adapters representing real-world performance. Maybe we'll need a custom perf test adapter that can simulate the latency and memory consumption of typical adapters.

done
https://github.com/istio/istio/blob/master/tools/README.md


Truncate stack traces

I'm sure people are a bit tired of scrolling through gigantic stack traces. This PR adds a way to truncate stack traces by recursively searching through the type space and collecting all NamedTuples. See this build for a demo.
With this, and putting the (incorrect) type restriction on get_cache(::Int) to throw the error, we get:
ERROR: LoadError: MethodError: no method matching get_cache(::ClimaCore.Fields.FieldVector{Float64, NamedTuple{(:c, :f), Tuple{Field{(:ρ, :ρe, :uₕ)} (trunc disp), Field{(:w,)} (trunc disp)}}}, ::BaroclinicWaveParameterSet{NamedTuple{(:dt,), Tuple{Float64}}}, ::Float64)
--
  | Closest candidates are:
  | get_cache(::Int64, ::Any, ::Any) at /central/scratch/esm/slurm-buildkite/climaatmos-ci/784/climaatmos-ci/examples/hybrid/staggered_nonhydrostatic_model.jl:101
  | Stacktrace:
  | [1] top-level scope
  | @ /central/scratch/esm/slurm-buildkite/climaatmos-ci/784/climaatmos-ci/examples/hybrid/driver.jl:171

bors r+

The BW job took longer than expected in the staging branch for this PR, however, it finished in this build in a reasonable time. I'm not sure what's accounting for the variation, but it seems unrelated to this PR.