[bug] No audio playback on Windows, but works fine in Chrome

Describe the bug
Audio playback is just not working when I build the test app I made because it doesn't work in my actual app. During where audio playback should happen, the talking indicators even light up, the only thing not working is the actual playback, I've also checked that it is not transmitting to any other audio devices, just nothing happens. The example app in this repo crashes for me, which means I can't really test with that, so I just built my own simple thing yesterday. One thing to note, too, is that the audio transmission works perfectly fine in Chrome with my sample app.
The code for my sample app is at: https://github.com/Unbreathable/livekit
Just for reference, this is the crash log of the example app in this repo on my system:
flutter: 10:31:20: [ParticipantEvent] LocalTrackPublishedEvent(participant: LocalParticipant(sid: PA_6ocdZj7jR5TX, identity: test1), publication: LocalTrackPublication<LocalAudioTrack>(sid: TR_AMVA5FtoKVcpYy, source: TrackSource.microphone)), will notifyListeners()
flutter: 10:31:20: [RoomEvent] LocalTrackPublishedEvent(participant: LocalParticipant(sid: PA_6ocdZj7jR5TX, identity: test1), publication: LocalTrackPublication<LocalAudioTrack>(sid: TR_AMVA5FtoKVcpYy, source: TrackSource.microphone)), will notifyListeners()
flutter: 10:31:20: got ICE candidate from peer (target: SUBSCRIBER)
flutter: 10:31:20: got ICE candidate from peer (target: SUBSCRIBER)
flutter: 10:31:20: got ICE candidate from peer (target: SUBSCRIBER)
flutter: 10:31:20: subscriber connectionState: RTCPeerConnectionState.RTCPeerConnectionStateConnected
flutter: 10:31:20: [EngineEvent] Engine#922257271 EngineSubscriberPeerStateUpdatedEvent(state: RTCPeerConnectionState.RTCPeerConnectionStateConnected, isPrimary: true)
flutter: 10:31:20: EventsEmitter<EngineEvent>#593414923 event was cancelled by func
flutter: 10:31:20: [EngineEvent] Engine#922257271 Instance of 'EngineConnectedEvent'
flutter: 10:31:20: subscriber iceConnectionState: RTCIceConnectionState.RTCIceConnectionStateConnected
[bad_variant_access.cc : 44] RAW: Bad variant access
Lost connection to device.

To Reproduce
It's actually pretty simple, just use any LiveKit server (I've tested with both Cloud and my local one).

Connect to the server using my sample app (cause the example app crashes)
Turn on the microphone on any of them and select the devices you want to use for audio and playback
You'll see that the talking indicators work, but the audio won't be transmitted (at least not for me)

Expected behavior
The audio should be transmitted, but I think that's obvious.
Platform information

Flutter version:  3.22.2
Plugin version: 2.2.0
Flutter target OS: Windows (real device)
Flutter target OS version: Windows 11

After some more testing, I've found out that it must be the audio playback that's not working. I've tried to now transmit audio from Chrome to Windows and back by running one instance of my sample app in the browser and the other one just in the regular Windows app.
First case: Windows -> Chrome
When I turn on my microphone on Windows, the audio plays in Chrome, just like it should.
Second case: Chrome -> Windows
When I turn on my microphone in Chrome, the audio doesn't play on Windows. And this is the reason why I believe this has to be something to do with the audio playback on Windows.


operator string_view

This PR:

implements const_string::operator string_view(), const_string::operator std::basic_string<...>(), and all other conversion operators defined by boost::core::string_view to allow conversions without ambiguity.
implements the semantically valid subset of string_view as member functions of const_string
removes string_view as a base class of const_string.

Benefits:

Design:

Remove public derivation from a concrete type (ref)
Removes a base class and its subset of functions in conflict with the semantics of const_string
Functions from string_view that are in conflict with const_string, such as remove_suffix, are removed from the interface
Simplify implementation details requiring static_cast<string_view&> to avoid warnings (ref)

User:

Documentation warning users about undefined behavior for these functions become unnecessary and are removed
Users will not get warnings about slicing being unsafe when using const_string

Memory allocations:

Enables optimization where the pointer is not stored redundantly in the shared string and the base string_view
Enables optimization where the pointer is not stored redundantly in the base string_view while it's known to be at the first position of the built-in buffer
Enables optimization where the size is not stored redundantly in the shared string and the base string_view
Enables optimization where the component does not need encoding and acts as a constant reference to the underlying URL, since const_string is used by lazy generators where its lifetime does not go beyond the url_view (renaming might be advised in this case).
Enables optimization where the size does not take more memory than it needs for the maximum of 2048 characters  allowed in a URL

Cons:

More code to replicate the string_view functionality. On the other hand, all of these functions are one-liners forwarding to string_view or returning pointers. (see ref)
Requires workaround for a few older compilers (somewhere around GCC >5.0 <= 6.0) that provide initial support for std::string_view but consider its conversions ambiguous (see ref)
Maybe there's a solution based on inheritance where remove_suffix and friends are not undefined behavior.

Before/after table:

Without PR122

With PR122

url_view u = /* ... */;
std::cout << u;
// user gets warning about object slicing

url_view u = /* ... */;
std::cout << u;

static_assert(
    sizeof(const_string{}) ==
    builtin_capacity + 32);

static_assert(
    sizeof(const_string{}) ==
    builtin_capacity + 16);

// no optimizations possible
static_assert(
    sizeof(const_string{}) ==
    builtin_capacity + 32);

// with trivial optimizations
static_assert(
    sizeof(const_string{}) ==
    builtin_capacity);

void break_stuff(urls::string_view& a) {
    urls::string_view b{};
    // only the urls::string_view part
    // of a will be modified
    a = b;
}
break_stuff(const_string{});

void break_stuff(urls::string_view& a) {
    urls::string_view b{};
    a = b;
}
// This doesn't compile:
break_stuff(const_string{});

struct A
{
    A( std::string_view );
};
struct B
{
    B( urls::string_view );
};
// This works:
A(const_string{});
B(const_string{});

struct A
{
    A( std::string_view );
};
struct B
{
    B( urls::string_view );
};
// This still works:
A(const_string{});
B(const_string{});

// Copy-initialization doesn't work:
A = const_string{};
B = const_string{};

// Copy-initialization still doesn't work:
A = const_string{};
B = const_string{};

// Copy-initialization doesn't work:
A = const_string{};
B = const_string{};

// Copy-initialization still doesn't work:
A = const_string{};
B = const_string{};

void f1( std::string_view );
void f2( urls::string_view );
void f3( std::string const& );
void f4( std::basic_string<
                 char,
                 std::char_traits,
                 custom_allocator> const& );
// This works:
f1(const_string{});
f2(const_string{});
f3(const_string{});
f4(const_string{});

void f1( std::string_view );
void f2( urls::string_view );
void f3( std::string const& );
void f4( std::basic_string<
                 char,
                 std::char_traits,
                 custom_allocator> const& );
// This still works:
f1(const_string{});
f2(const_string{});
f3(const_string{});
f4(const_string{});

struct A
{
    A( std::string_view );
};
void f( A const& );
// This fails:
f(const_string{});

struct A
{
    A( std::string_view );
};
void f( A const& );
// This still fails:
f(const_string{});

// in implementation
static_cast(*this
            ) = { data_.buf_, s.size()};

// in implementation
str_ = data_.buf_;
len_ = s.size();

// in implementation
/*
 * nothing
 */

// in implementation
compare(string_view other) const
{
    return operator string_view().compare(other);
}

Tests:
The unit tests ensure all cases of ambiguity discussed on January 20th have been fixed:

Use const_string in functions expecting std::string: https://godbolt.org/z/ahbf3P85h / ref
Use const_string to copy initialize std::string: https://godbolt.org/z/a9rjq716K / ref
Use const_string to construct std::string: https://godbolt.org/z/3jPeaP67e / https://godbolt.org/z/9hEa38hxh / ref
Use const_string in functions expecting std::string_view: https://godbolt.org/z/a8KPj8G5K / ref
Use const_string to construct classes analogous to boost::json::string that are construtible from string_view, as requested on January 20th but that didn't work before this PR: https://godbolt.org/z/a8KPj8G5K / https://godbolt.org/z/13nxWKdM4 / ref / ref

About copy-initialization:
Copy-initialization is the only scenario where we can't achieve implicit conversions in this PR.
The rules for implicit conversions in copy-initialization (A = B{};) are different from the rules for direct-initialization (A(B);). Basically, copy-initialization supports no implicit conversions while direct-initialization supports at most one implicit conversion.
This means neither inheritance nor conversion operators work for copy initialization (A = const_string{};) properly, unless we inherit from both std::string_view and boost::core::string_view, store the same data redundantly 3 times, and it still wouldn't work with std::basic_string<char, A>. (ref)
In more detail:

Objects that (i) are not std::string_view, core::string_view or std::basic_string; and (ii) are implicitly constructible from string_view or std::string_view cannot be copy initialized from const_string.
This is not a problem for constructors and functions that expect implicit conversions.
This problem happens for both operator string_view and for string_view as a base class, unless const_string would inherit from both string_view and std::string_view just to make this work.
The reason is "the implicit conversion in copy-initialization must produce T directly from the initializer, while, e.g. direct-initialization expects an implicit conversion from the initializer to an argument of T's constructor"
The only solution would be an implicit conversion from const_string to any type T constructible from string_view, which leads to a lot of ambiguity.

Some newer compilers prefer the overload closest to the copy constructor and don't fail.
Most compilers consider that ambiguous with all other constructors from types from where we can create a string_view.
For instance, ipv6_address(ipv6_address const&), ipv6_address(ipv4_address const&), and ipv6_address(string_view) would be ambiguous because we can convert a const_string to any of them.
We could write workarounds to isolate and support the compilers where this works. It doesn't seem like it's worth leading the user in this direction.

But https://godbolt.org/z/8cd31xE74

But https://godbolt.org/z/8cd31xE74

Constructors work fine and are tested here:
https://github.com/alandefreitas/url/blob/21ce2dc6cbb154bfc16a28cd77d90f6aca87d2d9/test/unit/const_string.cpp#L423
Copy initialization (correctly) fails for both operator string_view and the string_view base class though:
https://godbolt.org/z/11hdEGb5f
I've updated the description with the use cases:

The tests ensure all cases of ambiguity discussed on January 20th have been fixed:

Use const_string in functions expecting std::string: https://godbolt.org/z/ahbf3P85h / ref
Use const_string to copy initialize std::string: https://godbolt.org/z/a9rjq716K / ref
Use const_string to construct std::string: https://godbolt.org/z/3jPeaP67e / https://godbolt.org/z/9hEa38hxh / ref
Use const_string in functions expecting std::string_view: https://godbolt.org/z/a8KPj8G5K / ref
Use const_string to construct classes analogous to boost::json::string that are construtible from string_view, as requested on January 20th but that didn't work before this PR: https://godbolt.org/z/a8KPj8G5K / https://godbolt.org/z/13nxWKdM4 / ref / ref

and included a comment summarizing the situation with copy initialization

About copy-initialization:

Objects that (i) are not std::string_view, core::string_view or std::basic_string; and (ii) are implicitly constructible from string_view or std::string_view cannot be copy initialized from const_string.
This is not a problem for constructors and functions that expect implicit conversions.
This problem happens for both operator string_view and for string_view as a base class, unless const_string would inherit from both string_view and std::string_view just to make this work.
The reason is "the implicit conversion in copy-initialization must produce T directly from the initializer, while, e.g. direct-initialization expects an implicit conversion from the initializer to an argument of T's constructor"
The only solution would be an implicit conversion from const_string to any type T constructible from string_view, which leads to a lot of ambiguity.

Some newer compilers prefer the overload closest to the copy constructor and don't fail.
Most compilers consider that ambiguous with all other constructors from types from where we can create a string_view.
For instance, ipv6_address(ipv6_address const&), ipv6_address(ipv4_address const&), and ipv6_address(string_view) would be ambiguous because we can convert a const_string to any of them.
We could write workarounds to isolate and support the compilers where this works. It doesn't seem like it's worth leading the user in this direction.

@pdimov ?

I just realized that the list regarding "copy initialization" is really just one thing not five

As requested, I've updated the description with tony tables, but I believe we should close this PR.
It seems like I miscalculated how important this is and we can always use the closed PR as a reference if anyone ever asks about this again.

Requires workaround for a few older compilers (somewhere around GCC >5.0 <= 6.0) that provide initial support for std::string_view but consider its conversions ambiguous (see ref)

Can this be demonstrated in Compiler Explorer?

Can this be demonstrated in Compiler Explorer?

Yes. I don't remember which conversions caused problems on which specific compilers because it's been a while. But yes. It was already demonstrated in CI so it would just be a matter of replicating this function in Compiler Explorer.
Maybe the condition
#if defined(BOOST_NO_CXX17_HDR_STRING_VIEW) || \
    BOOST_WORKAROUND( BOOST_GCC_VERSION, < 60000 ) || \
    BOOST_WORKAROUND( BOOST_CLANG_VERSION, < 60000 ) || \
    (defined(__MINGW32__) && BOOST_WORKAROUND( BOOST_GCC_VERSION, < 90000 ))
#define BOOST_URL_NO_CXX17_HDR_STRING_VIEW
#endif

can be adjusted to avoid more false positives. Or the conversion operators can be adjusted to work at least partially on these compilers since the problem was having two ambiguous conversions and we could have at least one of them.
To be honest, IIRC, I think we eliminated this alternative mostly because of the extra code, complexity, and the repetition of patterns from string_view. So we didn't really explore any alternatives to improve the workaround.

So basically this sounds like a trade-off between the library authors having to write definitions of funcitons already present in string_view on the one hand, and offering users a potential UB and violating the Liskov substitutability principle on the other.

trade-off between the library authors having to write definitions of functions already present in string_view on the one hand, and offering users a potential UB and violating the Liskov substitutability principle on the other

Yes. That sounds correct. But I wrote this PR so I'm biased. There are probably other complaints.

@akrzemi1  I'm not terribly concerned about Liskov's substitution principle. But if you think you have a better solution then I urge you to reveal it to us, in the form of sample code. Because I know that const_string has its problems. It seems to be the least worst though.

The solution I have in mind is the one represented by this PR: keep const_string but add conversion operators rather than inheritance.

hmm..... one thing is certain, @alandefreitas does good work :)
I'm open to reconsidering these design choices, especially considering that Boost.HTTP.Proto is using const_string as a building block:
https://github.com/CPPAlliance/http_proto/blob/7ff581a3d68d56a02e1936b6a3efc474836d4f56/include/boost/http_proto/fields_view_base.hpp#L295


KUZBO-129 Authenticated session

Implemented Login with cookie
Wrote unit tests

TODO:
Write e2e tests
Implement material design when the global-layout branch is finished

Great PR. The tests are just GREAT!

Ok for me, but the merge must be done on branch develop instead of master ;)

New PR to develop branch


[SVCS-467]Replaced old deprecated Mathjax cdn in Ipynb

refs:  https://openscience.atlassian.net/browse/SVCS-467
Purpose
Change mathjax cdn in the ipynb extension
Summary of Changes
Changed mathajx cdn to a non deprecated one.
QA Notes:
There is a ipynb file with mathjax in it on the jira ticket. The mathjax should render correctly, and not as garble.

Looks good, moving to RTM.


Draft Up

@LeeRippon here it is

Where are we dropping images?

For profile pics its in the Readme

For other pics i havent categorized them all yet


Update README.md

Update doc link.

Pull Request Test Coverage Report for Build 429

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.3%) to 42.721%

Totals

Change from base Build 426:
-0.3%

Covered Lines:
983

Relevant Lines:
2301

💛  - Coveralls


How to update CeleScope?

How to update celescope version to the latest version？
Do I need to re-clone the Git repository for each update, then create the environment and install the software?
I hope you can clarify this.Thank you very much.

Use pip install to update the celescope version, for example from celescope1.12.0 to 1.13.0 (assuming you installed 1.12.0 in a conda environment named celescope)
conda activate celescope
pip install celescope==1.13.0

But pip install can only update python packages. It cannot update packages that depend on conda. If the two versions of conda_pkgs are different, you need to create a new conda environment. For example, to upgrade from 1.5.0 to 1.13.0, it is required to create a new conda environment.
https://github.com/singleron-RD/CeleScope/blob/v1.5.0/conda_pkgs.txt
https://github.com/singleron-RD/CeleScope/blob/v1.13.0/conda_pkgs.txt


Is there way to run task that expands all fragments in query or mutation?

Question
I have a query that looks like this:
query CurrentTopics() {
     ...BasicTopicInformation
}

And fragment looks like
fragment BasicTopicInformation on Topic {
    displayName
    viewCount
}

What I want is a graphQL file that expands the BasicTopicInformation inside the CurrentTopics query?
Probably GQL compiler does do this, because I see that expanded query in the kotlin file that gets generated, but couldn't locate that intermediate file. Is there way I can "capture" fully expanded query?

You could use Apollo AST to parse the GraphQL and substitute your fragments with their fields. In general though it's not an easy problem because fragments have type conditions that may or may not be fullfilled.
So for a given query, you might end up with several possible full expanded queries.
May I ask What's the use case for this? Maybe there's another solution that would accomplish the goal.

What we really want to create a easy way to figure out what all fields in the schema does a specific query use. In the example above I can say  CurrentTopics uses fields displayName and viewCount from Topic
We have project with 100 queries and 62 fragments.
When folks implementing backend service come and say tell us what all queries use field 'viewCount' on Topic it is hard to provide that answer!
That is why I was looking for "flattened"  .graphql output for a query.
I guess I can just print OPERATION_DOCUMENT  for each query, that seems brute force if there is no other way, I can try that.

That is amazing @martinbonnin  thank you for both those pointers. 🙇🏽♂
Gives me something to try this weekend ;)

Awesome 😃  . I'll close this issue for now. If you have questions over the week end, feel free to comment here and I'll reopen. Happy hacking!


docs: general updates

Description
General documentation updates
Checklist

[ ] My code follows the existing style, code structure, and naming taxonomy
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have performed a self-review of my own code and included any verifying manual calculations
[ ] I have added or updated unit tests that prove my fix is effective or that my feature works, and achieves sufficient code coverage.  New and existing unit tests pass locally and in the build (below) with my changes
[ ] My changes generate no new warnings and running code analysis does not produce any issues
[ ] I have added or run the performance tests that depict optimal execution times
[ ] I have made corresponding changes to the documentation

Updraft when ready.   Please have a check and let me know when you finish.

We've lost the purpose of this branch. It should have changes only for docs so that it can be merged after releasing, but it has some changes to be merged in the release. There will be time interval btw docs and release. haha,,

Looks good generally.  I can’t approve since I created it, so you’ll have do it.


TRM G2 v2.0 - Inflated BRT Ridership

The first 2050 EC run using 2.0 produced higher ridership for BRT in some instances by a magnitude of 11 (see below):
BRT Service	2050 MTP	2050 EC	Factor of Increase
New Bern to Downtown Raleigh BRT	3,243	36,649	11
Downtown Raleigh to New Bern BRT	3,498	25,323	7
RTC_Clayton_Garner_LPA	18,293	52,829	3
Clayton_Garner_RTC_LPA	17,513	54,512	3

PNR and KNR BRT trips seem to be the source of the over-prediction. They are very unrealistically high at all time periods.
boardings_and_alightings_by_period.csv
concatenate_summary.csv

Definitely a strange result. My first thought is to question just how congested/unrealistic a 2050 future year with only E+C STIP projects is. To be clear, I have no idea what's going on. I'm just wondering at why it would only be this one scenario.

That was my first thought too, but if it's the kiss-and-ride and park-and-ride trips that are too many, then that logic doesn't make sense because they have to drive too. And they're driving from really far away to the BRT. And not for work trips?
map images below are from data in _summaries/performance_measures/taz_measures.bin

taz_measures_2055EC2_12_12_24.csv

Yes, but congestion in and around the BRT corridors still matters - particularly if it's extreme. For example, there is a flat bonus given to BRT (and rail) that is basically akin to equivalent minutes of travel time. If driving along the BRT corridor is really slow, then this fixed bonus along with (possibly?) being in a reserved row with faster speed, starts to look so appealing that tons of people will choose.
I'm just guessing, of course, but E+C scenarios are routinely very out of whack and can cause odd results. It might make sense to do a test scenario with the SE data scaled back a bit and see what happens.
For what it's worth, I stopped doing future-year E+C scenarios as a baseline shortly after leaving CAMPO. It creates an impossible scenario as the baseline and throws off analysis. Instead, I started doing something like 10+ years of SE data growth as the E+C. Prioritize projects based on that, and then run a few variant alts into 2050.

Ok - I'll try running a 2020 E+C scenario to see what happens. Thanks, Kyle!

The congested VMT in the adopted 2050 mtp using v1.3.2 is significantly more than the congested VMT in the 2055EC using v2 (see image). The mtp2050 BRT is 79568-on (2148 drive access). The 2055EC BRT is 173,608-on (107338 drive access). It would seem that if the congested VMT was pushing more riders to BRT, that we would have seen it in v1.3.2.


Adding Azure DevOps Git host support in flux

Adds dev.azure.com (VSTS) SSH key to known host file in flux image to support GIT repos in Azure DevOps by default.

Updated the relevant documentation in faq, helm-get-started, and troubleshooting pages.

Tested successfully all GitHub repo use cases pointing to a repo in Azure DevOps.

Fixes #1728.

@sarath-p How did you obtain the host key?


style(frontend): fix cktokens hide option

Motivation
Until now, when the Manage list was opened, there were tokens (ckTokens) that were enabled but couldn't be switched off. However, it was still possible to disable them via the Hero element, which should not be possible.
Changes

uses same logic for hero element as for toggle items

Tests
before:
Manage list: (like it is desired)

Hero: (should not be possible to hide this token)

after:
Manage list:

Hero: (it's not possible anymore to hide this token, which is good)

@AntonioVentilii-DFINITY as discussed i moved the functions from above to the utils and wrote some tests.
The tests for the token.derived.ts will come in a separate PR.


Create a flag to disable Mission Control

The problem faced currently?
Currently gateway downloads and hosts mission control whether you want it or not. In many cases, a UI isn't required. Also, during local development, we host mission control locally.
How can we solve it?
Create a flag disable-ui in gateway which stop SC from downloading or hosting mission control

If you want this feature to be implemented, give it a thumbs up reaction, so that we can determine which features are important to you.
👍

So right now the gateway image that is distributed already has the Mission Control in it right? Correct me if I am wrong. So are we going to make the gateway container download the mission control now. Or are we going to have a separate mission-control-less gateway image and then the space-cli decides which image to pull based on the flag?

Or are we talking just about the gateway binary and not the docker image that is distributed?

No. This is a gateway only config. The image we provide will always have the mission control assets

Done


Fix/skip some tests for HIP

Among other minor changes, all sparse matrix tests (found via find ./tests/ -name '*sparse*') are dibbled for HIP.

Jenkins, test this please

Jenkins CI test (for commit 2e80e791d88e1b979848820b63cd75f2597c28c6, target branch master) failed with status FAILURE.

#4598 is in, retry...
Jenkins, test this please

Jenkins CI test (for commit 2e80e791d88e1b979848820b63cd75f2597c28c6, target branch master) failed with status FAILURE.

Jenkins, test this please

Jenkins CI test (for commit 2e80e791d88e1b979848820b63cd75f2597c28c6, target branch master) succeeded!

@emcastillo This is ready.

Jenkins, test this please

Jenkins CI test (for commit 2e80e791d88e1b979848820b63cd75f2597c28c6, target branch master) failed with status FAILURE.

Jenkins, test this please

Jenkins CI test (for commit 2e80e791d88e1b979848820b63cd75f2597c28c6, target branch master) failed with status FAILURE.

Test failure is weird...
tests.cupy_tests.manipulation_tests.test_basic.TestBasic.test_copyto_multigpu

https://jenkins.preferred.jp/job/chainer/job/cupy_pr/3005/TEST=cupy-py3-cub,label=mn1-p100/testReport/junit/tests.cupy_tests.manipulation_tests.test_basic/TestBasic/test_copyto_multigpu/
Jenkins, test this please

Jenkins CI test (for commit 120da9b73cb83dfb5f2136956c2c880b36708a3e, target branch master) failed with status FAILURE.

Jenkins, test this please

Jenkins CI test (for commit 120da9b73cb83dfb5f2136956c2c880b36708a3e, target branch master) failed with status FAILURE.

Jenkins, test this please.
The test is flaky

Jenkins CI test (for commit 120da9b73cb83dfb5f2136956c2c880b36708a3e, target branch master) succeeded!

Jenkins CI test (for commit 120da9b73cb83dfb5f2136956c2c880b36708a3e, target branch master) failed with status FAILURE.


[RFE] Add system kube version to /rancherversion endpoint

Is your feature request related to a problem? Please describe.
The UI team wants to move on forward with https://github.com/rancher/dashboard/pull/9644, but we hit a roadblock where there's no easy way to get the system current kubernetes version (local cluster kubernetes version) for all users (RBAC). Our suggestion would be to add that information as kubernetesVersion to the /rancherversion endpoint which is fetched for all users, even logged out.
Right now this a blocker for our initiative.
Describe the solution you'd like
Add system kubernetes version (local cluster kubernetes version) to /rancherversion endpoint
Describe alternatives you've considered
We've looked into all other alternatives we could think of (other endpoints, using settings, etc) but we always hit a scenario where there's a user who cannot "fetch" the kube version.
Additional context
Add any other context or screenshots about the feature request here.

Item still relevant and blocking UI team initiative https://github.com/rancher/dashboard/pull/9644

still relevant

For tracking purposes there's been some discussion on both version and rancherversion endpoints, both of which are in certain scenarios requested by security to be blocked...

The functionality should already by covered by the /version endpoint. @aalves08 can you verify if this will solve this issue for you?

That seems to do the trick with the usage of the /version endpoint @joshmeranda ! Thank you!


Remove stubs

Were they even used?

on acceptance testing, right now i have to check on their utility.

Maybe we could move them into the tests folder instead?

eventually, yes.

Actually, i don't use them anywhere. removing them.


Preparation Test Cases for Trend Charts ( Student Attendance & Semester ) and other digital learning metrics

Preparation of Functional TestCases for the below reports
Other Digital Learning Metrics
Trend charts

Student attendance trends
Semester trends

Completed preparation test cases for the below reports
Other Digital Learning Metrics
Trend charts

[ ] Other Digital Learning Metric

[ ] Student attendance trends

[ ] Semester trends

Modifications are completed


Adding an entry to empty alias creates an extra blank entry

I'm working with an empty Alias called HS_Staff_Desktops.  If I invoke the API to add an entry or entries, a blank entry is also created above/before the entry I was intending to create.  If the Alias already has an entry or entries, this effect is not observed.  I am using PFSense 2.4.5-RELEASE-p1 (amd64).  I installed the latest version of the API as of today.
I invoked the API to create an entry in the HS_Staff_Desktops alias as follows:
curl -X POST -H "Content-Type: text/plain" --data '{"client-id": "admin", "client-token":"password","name": "HS_Staff_Desktops","address": ["<IP_ADDRESS>"]}' 'http://<IP_ADDRESS>/api/v1/firewall/alias/entry'
{"status":"ok","code":200,"return":0,"message":"Success","data":{"name":"HS_Staff_Desktops","type":"host","address":" <IP_ADDRESS>","descr":"High School Staff Desktops","detail":""}}

Thanks for reporting this issue! I am also able to reproduce this bug in my environment. Looks like there is a problem converting the array that is passed into the API to the backend value expected in the XML configuration. I will try to have this fixed and a patch released this week.
Thanks again!

Thanks!  Can't wait to try it out.
On Tue, Nov 24, 2020 at 10:30 PM Jared Hendrickson<EMAIL_ADDRESS>wrote:

Closed #32 https://github.com/jaredhendrickson13/pfsense-api/issues/32
via #33 https://github.com/jaredhendrickson13/pfsense-api/pull/33.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jaredhendrickson13/pfsense-api/issues/32#event-4035937636,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AR4DHAAYAE4BD23IYCCPOTTSRR233ANCNFSM4UBJQNKA
.

--
Dave Maxwell
Network Administrator
Big Walnut Local Schools
--
This e-mail may contain confidential and/or privileged information and
is covered by the Electronic Communications Privacy Act, 18 USC SS
2510-2521. If it does not contain privileged information concerning a BWLSD
employee or student, this e-mail and responses are subject to Ohio public
records requests. If you are not the intended recipient (or have this
e-mail in error) please notify the sender immediately and destroy this
e-mail. Any unauthorized copying, disclosure or distribution of the
material in this e-mail is strictly forbidden.


Upload file from string or file-like object

The method simple_upload(self, machine, sourcePath, targetPath) requires the source file to be an actual file on disk. There are cases (e.g. uploading a simple short text file) where the content is in memory (in a string, or in a file-like object - e.g. an already open file). Would it be possible to support passing the content or a file-like object, or this is complicated? (For now, I need to create a NamedTemporaryFile to upload the content, is this the suggested approach?)

Similarly, I just realised that in simple_upload, the targetPath must be a folder (and the file will get the same filename as the source file). Is it possible to specify instead the destination filename? (This actually prevents even using a NamedTemporaryFile, I have to use a TemporaryDirectory and create a file with the correct name, and then transfer to the folder).
Even if there is no plan to change it, I suggest to clarify the docstring (now it says targetPath: the absolute target path that I would interpret as the path of the destination file)


SyncManager(suggestion): add upsert setup

Description
We have a basic sync setup with push, pull and registerRemoteChange. The backend exclusively accepts and sends added, modified and removed and uses web sockets to send changes.
Problem
When we create a new record it's pushed as added. The web socket sends onChange event to all clients, which triggers pull. The pull sends the record in the added list. This results in an error since the record already exists on the client it was created (the other clients work as expected).
Workarounds

Catch the error and manually update the timestamp to ignore/bypass the created record for future syncs. Note that this introduces a risk of missing/skipping other updates.

Create unique web socket client ids. And send them with push as well as onChange so the changes can be ignored if the receiving client is the same as the originating one. Note this can't be based on userId/session because a given user can have multiple clients

in the pull check if each of the added record exists in the client storage and ignore it if it does. The issue with this solution is that it adds a lot of overhead for other clients.

Suggested solutions:

implement upsert instead of update and create. This would resolve the issue since it would ignore the duplicate. Not sure how I feel about the chances of a real collision where 2 unique records have the same id. I think this scenario would actually be a backend issue because the records need to be pushed somehow before they are pulled

another strategy could be keeping a temporary list of added ids between the push and pull where if the next pull returns them as added, they are ignored

Other notes:

similar issue exists for removed, where a record is removed from the client and received by the following pull in the removed list

there could be other possible devland implementations where multiple/separate client and server ids are used, but I would stay away from these due to complexity issues

maybe I am missing something? Some further guidance and docs on your thoughts on setting up backend servers can be very useful for me and probably for other people working on this. Maybe even considering examples with common backend sync implementations in various languages/frameworks could be a good idea? I can help with setting up NodeJs/Express, NodeJS/Nest, PHP/Laravel, .Net/ASP examples given your help and guidance.

Had the same issue with the ReplicatedCollection a few months ago. See #792
The fix was to implement upserts (#794). I'm surprised that the fix does not work with the new SyncManager

@obedm503 thanks for the feedback. Maybe I am doing something wrong. I will review and hopefully we can also make it work.

I think we also have to implement upserts for the SyncManager to keep implementation easy. I'll work on it later this day 🙂

implement upsert instead of update and create. This would resolve the issue since it would ignore the duplicate. Not sure how I feel about the chances of a real collision where 2 unique records have the same id. I think this scenario would actually be a backend issue because the records need to be pushed somehow before they are pulled

With #940 I'm now using upsert-like behavior internally. I don't think that we really have to care about id-collisions during sync on client side as they would be many other issues before that point.

another strategy could be keeping a temporary list of added ids between the push and pull where if the next pull returns them as added, they are ignored

I'm using this strategy currently to distinguish between changes to the collection that are due to sync and all other changes. I think in this case, using an upsert-like approach is better.

similar issue exists for removed, where a record is removed from the client and received by the following pull in the removed list

In this case nothing happens as there won't be an error when a selector didn't match any items in a removeOne/removeMany. In #940 I also took care of updates that are made on non-existing items and create them.

there could be other possible devland implementations where multiple/separate client and server ids are used, but I would stay away from these due to complexity issues

We're currently using this approach at VineForecast. I strongly advise to avoid separate client and server ids. Besides the added complexity,  there are many other issues that can occur (like duplicate inserts on backend side of a push wasn't recognized as successful on client side; depending on the specific implementation).

maybe I am missing something? Some further guidance and docs on your thoughts on setting up backend servers can be very useful for me and probably for other people working on this. Maybe even considering examples with common backend sync implementations in various languages/frameworks could be a good idea? I can help with setting up NodeJs/Express, NodeJS/Nest, PHP/Laravel, .Net/ASP examples given your help and guidance.

This would help a lot! Feel free to contribute. We could integrate it in text form in the documentation (like the existing guides), as code in the examples folder or even in a separate repository and just put a link to it in the documentation. But I'm also open for complete different ideas 🙂


Add discord bot

 Issue #55

@Arnav-Khare any update on the changes? Feel free to ask if you need any help in implementing the changes. 🙂


Using ROS 2 dependencies

With this PR you can compile xbot2_interface with ROS 2 dependencies.
Install instructions:
sudo apt install -y libboost-all-dev ros-humble-srdfdom ros-humble-pinocchio ros-humble-tf2-eigen-kdl ros-humble-hpp-fcl ros-humble-geometric-shapes ros-humble-moveit-core

mkdir build
cd build
source /opt/ros/humble/setup.bash
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j16
cpack -G DEB
sudo dpkg -i *.deb

If I run this I get cmake warnings for pinocchio
CMake Warning at pinocchio/CMakeLists.txt:3 (add_library):
  Cannot generate a safe runtime search path for target modelinterface2_pin
  because files in some directories may conflict with libraries in implicit
  directories:

    runtime library [liburdfdom_sensor.so.3.0] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /opt/ros/humble/lib/x86_64-linux-gnu
    runtime library [liburdfdom_model_state.so.3.0] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /opt/ros/humble/lib/x86_64-linux-gnu
    runtime library [liburdfdom_model.so.3.0] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /opt/ros/humble/lib/x86_64-linux-gnu
    runtime library [liburdfdom_world.so.3.0] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /opt/ros/humble/lib/x86_64-linux-gnu

  Some of these libraries may not be found correctly.

But bigger problem is as follows:

I ignore the cmake warning and made the package
now if I run the camke again or try to do make install this raise an error.

I this normal behaviour?

There seems to be a bug related to cmake, python or our PR. To replicate, simply do the following:
cd /tmp
git clone -b ros2-deps https://github.com/Gauss-Robotics/xbot2_interface.git
cd xbot2_interface
mkdir build && cd build
cmake ..

This will work with some warnings, however, if you try
cmake ..

again, it will fail. See this gist.


fix for No map link on SMS #254

this must not have been merged back in after adding feature. not sure if this is how you want to fix it, but I have tested the following ways and works fine.

with include_map_link set but not include_location_text.
with include_location_text but not include_map_link set.
both include_map_link and include_location_text set.
neither include_location_text and include_map_link set.

I'd like option 3 please

You can do either or using those settings. Those are just all the ways I tested to verify the change  works as expected.

I'm not sure what I'm missing here - still not getting a map link on the sms for Version 3...
static $include_map_link = true;

thats correct the map link isn't working. this is a pull request to fix that. this will be fixed in next release.


Add reading identity metadata file functionality

Summary

This PR adds functionality to read from an identity metadata file, which currently only consists of the last searched index in a log checkpoint, but can be expanded to include more metadata as becomes relevant. It also modifies current testing to test read/write functionality of the identity metadata file.
Release Note

NONE
Documentation

N/A

just need to fix merge conflict


Gpl 771 migrate legacy filtered positive

Closes #167
Changes proposed in this pull request:

Add migration to set the filtered positive fields on all legacy samples

There are still a few unresolved comments on the PR. You might need to "Load hidden conversations". Would you be able to look into these?

method documentation changes
test streamlining/robustness
using count_documents instead of find so we aren't unnecessarily pulling all samples into memory
behaviour when a sample sits exactly on the cut-off
some other minor things


Fix overflow problem in SparseFillEmptyRows Op

The C++ API SparseFillEmptyRows lacks validation of negative values passed to dense_shape argument.For example if we pass some large -ve value like-1l(long int) then it will be passed as it is and due to integer overflow at the below line the value is converted to extremely large number and it ends up with std::length_error causing abortion(core dumped). https://github.com/tensorflow/tensorflow/blob/9da417e3f63215efe995b83e7b9f9b34115a424e/tensorflow/core/kernels/fill_empty_rows_functor.h#L114
Fixes #63066

Hi @tilakrayal / @mehtamansi29 Can you please take a look on above comment from @reedwm

Hi @tilakrayal / @mehtamansi29 Can you please take a look on above https://github.com/tensorflow/tensorflow/pull/63086#discussion_r1597275705 from @reedwm


[Weighted Shard Routing] Refactor and fix singleton in FailAwareWeightedRouting

Signed-off-by: Anshu Agarwal<EMAIL_ADDRESS>
Description
This PR address comments that got missed in https://github.com/opensearch-project/OpenSearch/pull/5072

https://github.com/opensearch-project/OpenSearch/pull/5072#discussion_r1065384092
https://github.com/opensearch-project/OpenSearch/pull/5072#discussion_r1065384435

Issues Resolved
[List any issues this PR will resolve]
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff
[ ] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Test Failures : https://github.com/opensearch-project/OpenSearch/issues/5766


:sparkles: Add Hostedzones K-Q

There is a weird in consistent use of a trailing . for PTR records. The check fails because there is a missing ., however on checking the record in Rout53 there is no ..
However looking at other PTR records in other zones there is sometimes a ..
Not sure which is right?


Move meta outside of the components

Is your feature request related to a problem?
Meta tags are super nice to have but it generates a lot of noise in the components.
Describe the solution you would like
I would like to see separated file in each directory like meta.[json|js|ts] which will handle these meta tags :)
Describe alternatives you have considered
I have tried this alternative
Screeenshots
Paste your vision

already done iirc


Issue 2586: encrypt note content

I rule and have completed some work on Case Manager that's ready for review!
This PR uses ActiveRecord encryption to encrypt note full_text at rest.
This pull request makes the following changes:

configure app to support ActiveRecord encryption
encrypt note full_text
add rake task to run post-deploy to encrypt all existing notes

It relates to the following issue #s:

Fixes #2586

For reviewer:

Adjust the title to explain what it does for the notification email to the listserv.
Tag this PR:

feature if it contains a feature, fix, or similar. This is anything that contains a user-facing fix in some way, such as frontend changes, alterations to backend behavior, or bug fixes.
dependencies if it contains library upgrades or similar. This is anything that upgrades any dependency, such as a Gemfile update or npm package upgrade.

If it contains neither, no need to tag this PR.

If you want to be able to see in the database and confirm if a record is encrypted (since Note.find(1).full_text will always return the content whether encrypted or not), you can run the following
Note.connection.execute('SELECT full_text from notes WHERE id = 1').first

When it's not encrypted, it will look like this
Note.connection.execute('SELECT full_text from notes WHERE id = 17').first
   (5.0ms)  SELECT full_text from notes WHERE id = 17
=> {"full_text"=>"One note, with iffy PII! This one was from the first call!"}

And when it is encrypted, it will look like this
Note.connection.execute('SELECT full_text from notes WHERE id = 38').first
   (10.9ms)  SELECT full_text from notes WHERE id = 38
=>
{"full_text"=>
  "{\"p\":\"NKyfeE01+SL7a/9RWfrqV62AXBLaRkrW43g+bvtvsoi1rjFSVOURpaxbEv7GGyB6XyfM0asdRrSqMeh8EVGjfGFhGktdYQZqEHw28DvVD6HYhDL2ngm64mmAtxPiA16OOsnDY3zBy+5afkERMEuZEqXMNuQR/kQ+VdI0dkwPeU+jsIplLczark91+sxZg0vQcFgK+1dgQR6ZvANijrD5x5zg4XAEwuuYtx5aayk=\",\"h\":{\"iv\":\"jtAb7NvwaUTqN8P2\",\"at\":\"jpm9tyHHQt/CpPqfFGRZiA==\",\"c\":true}}"}

A good confidence test might be

Check out this branch and open up the rails console
Find a note and query using the snippet above to see the unencrypted content
Run .encrypt on the note
Query using the second snippet to see the encrpted content

E.g.
n = Note.find(17)
Note.connection.execute('SELECT full_text from notes WHERE id = 17').first
n.encrypt
Note.connection.execute('SELECT full_text from notes WHERE id = 17').first

And the fact that the test suite is green means that ActiveRecord encryption is behaving as expected, all the queries still work :)

‼ Note: you'll want to generate encryption keys and salts and put them in env vars prior to deploy

I see this is still in draft

Whoops, that was an oversight. I marked ready for review. I don't think there's anything else needed on my end if this does everything you want 🤗


Benchmark and improve Vec and vector collect

M1 results
[----------] 9 tests from BenchVecMap
[ RUN      ] BenchVecMap.CopyAndMultiplyInts_1000
|              421.92 |        2,370,106.13 |    0.1% |      1.01 | `std::vector::push_back, n = 1000`
|              426.82 |        2,342,881.28 |    0.3% |      1.02 | `std::vector collect, n = 1000`
|              731.02 |        1,367,951.25 |    0.1% |      1.75 | `sus::Vec::push, n = 1000`
|              350.59 |        2,852,348.29 |    0.1% |      0.84 | `sus::Vec collect, n = 1000`
[       OK ] BenchVecMap.CopyAndMultiplyInts_1000 (4614 ms)
[ RUN      ] BenchVecMap.CopyAndMultiplyInts_100_000
|           39,022.81 |           25,626.04 |    0.1% |      2.33 | `std::vector::push_back, n = 100000`
|           37,904.08 |           26,382.38 |    0.0% |      2.26 | `std::vector collect, n = 100000`
|           69,977.71 |           14,290.26 |    0.1% |      4.18 | `sus::Vec::push, n = 100000`
|           36,129.70 |           27,678.06 |    0.2% |      2.16 | `sus::Vec collect, n = 100000`
[       OK ] BenchVecMap.CopyAndMultiplyInts_100_000 (10930 ms)
[ RUN      ] BenchVecMap.CopyAndMultiplyInts_10_000_000
|        6,023,642.86 |              166.01 |    0.5% |      2.18 | `std::vector::push_back, n = 10000000`
|        6,233,322.94 |              160.43 |    0.7% |      2.25 | `std::vector collect, n = 10000000`
|        9,514,787.75 |              105.10 |    0.1% |      3.43 | `sus::Vec::push, n = 10000000`
|        5,604,798.80 |              178.42 |    0.5% |      2.02 | `sus::Vec collect, n = 10000000`
[       OK ] BenchVecMap.CopyAndMultiplyInts_10_000_000 (9894 ms)
[ RUN      ] BenchVecMap.TransformToIndices_1000
|              351.63 |        2,843,889.48 |    0.1% |      0.85 | `std::vector::push_back, n = 1000`
|              350.45 |        2,853,457.49 |    0.0% |      0.84 | `std::vector collect, n = 1000`
|              729.76 |        1,370,314.47 |    0.0% |      1.74 | `sus::Vec::push, n = 1000`
|              352.63 |        2,835,864.58 |    1.0% |      0.85 | `sus::Vec collect, n = 1000`
[       OK ] BenchVecMap.TransformToIndices_1000 (4286 ms)
[ RUN      ] BenchVecMap.TransformToIndices_100_000
|           31,200.81 |           32,050.45 |    0.2% |      1.86 | `std::vector::push_back, n = 100000`
|           31,188.19 |           32,063.42 |    0.1% |      1.86 | `std::vector collect, n = 100000`
|          181,084.60 |            5,522.28 |    0.0% |     10.81 | `sus::Vec::push, n = 100000`
|           31,170.74 |           32,081.37 |    0.1% |      1.86 | `sus::Vec collect, n = 100000`
[       OK ] BenchVecMap.TransformToIndices_100_000 (16396 ms)
[ RUN      ] BenchVecMap.TransformToIndices_10_000_000
|        7,538,522.73 |              132.65 |    0.3% |      2.73 | `std::vector::push_back, n = 10000000`
|        7,564,388.87 |              132.20 |    0.5% |      2.72 | `std::vector collect, n = 10000000`
|       17,176,492.19 |               58.22 |    0.3% |      6.18 | `sus::Vec::push, n = 10000000`
|        7,525,704.29 |              132.88 |    0.4% |      2.73 | `sus::Vec collect, n = 10000000`
[       OK ] BenchVecMap.TransformToIndices_10_000_000 (14374 ms)
[ RUN      ] BenchVecMap.MoreExpensiveIntTransformation_1000
|            3,439.77 |          290,716.91 |    0.1% |      0.01 | `std::vector::push_back, n = 1000`
|            3,435.73 |          291,058.79 |    0.3% |      0.01 | `std::vector collect, n = 1000`
|            3,799.89 |          263,165.17 |    0.4% |      0.01 | `sus::Vec::push, n = 1000`
|            3,437.00 |          290,951.16 |    0.2% |      0.01 | `sus::Vec collect, n = 1000`
[       OK ] BenchVecMap.MoreExpensiveIntTransformation_1000 (50 ms)
[ RUN      ] BenchVecMap.MoreExpensiveIntTransformation_100_000
|          343,889.00 |            2,907.92 |    0.5% |      0.01 | `std::vector::push_back, n = 100000`
|          343,264.00 |            2,913.21 |    0.3% |      0.01 | `std::vector collect, n = 100000`
|          377,805.67 |            2,646.86 |    0.3% |      0.01 | `sus::Vec::push, n = 100000`
|          344,403.00 |            2,903.58 |    0.3% |      0.01 | `sus::Vec collect, n = 100000`
[       OK ] BenchVecMap.MoreExpensiveIntTransformation_100_000 (48 ms)
[ RUN      ] BenchVecMap.MoreExpensiveIntTransformation_10_000_000
|       62,539,834.00 |               15.99 |    0.1% |      0.69 | `std::vector::push_back, n = 10000000`
|       62,206,833.00 |               16.08 |    0.2% |      0.68 | `std::vector collect, n = 10000000`
|       69,420,125.00 |               14.41 |    0.1% |      0.77 | `sus::Vec::push, n = 10000000`
|       62,162,709.00 |               16.09 |    0.2% |      0.69 | `sus::Vec collect, n = 10000000`
[       OK ] BenchVecMap.MoreExpensiveIntTransformation_10_000_000 (2832 ms)
[----------] 9 tests from BenchVecMap (63428 ms total)

Linux Intel results:
[ RUN      ] BenchSimdChunks.common_prefix

|               ns/op |                op/s |    err% |     total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
|              255.82 |        3,908,927.74 |    0.1% |      0.15 | `common_prefix_unsafe_array_len_pairs`
|              382.97 |        2,611,189.16 |    0.1% |      0.22 | `common_prefix_naive`
|              761.18 |        1,313,753.13 |    0.1% |      0.44 | `common_prefix_zip`
|            1,715.17 |          583,033.27 |    0.1% |      0.99 | `common_prefix_chunks_exact`
|            1,251.14 |          799,267.96 |    0.0% |      0.72 | `common_prefix_no_shortcircuit`
|              234.84 |        4,258,266.68 |    0.0% |      0.14 | `common_prefix_take_while`
[       OK ] BenchSimdChunks.common_prefix (2667 ms)
[----------] 1 test from BenchSimdChunks (2667 ms total)

[----------] 9 tests from BenchVecMap
[ RUN      ] BenchVecMap.CopyAndMultiplyInts_1000
|            1,049.58 |          952,759.91 |    0.0% |      2.51 | `std::vector::push_back, n = 1000`
|              716.03 |        1,396,585.70 |    0.0% |      1.71 | `std::vector collect, n = 1000`
|            1,721.62 |          580,848.88 |    0.0% |      4.12 | `sus::Vec::push, n = 1000`
|              714.31 |        1,399,943.16 |    0.0% |      1.71 | `sus::Vec collect, n = 1000`
[       OK ] BenchVecMap.CopyAndMultiplyInts_1000 (10045 ms)
[ RUN      ] BenchVecMap.CopyAndMultiplyInts_100_000
|          100,651.62 |            9,935.26 |    0.0% |      6.01 | `std::vector::push_back, n = 100000`
|           67,199.79 |           14,881.00 |    0.0% |      4.01 | `std::vector collect, n = 100000`
|          167,549.56 |            5,968.38 |    0.0% |     10.00 | `sus::Vec::push, n = 100000`
|           67,157.69 |           14,890.33 |    0.0% |      4.01 | `sus::Vec collect, n = 100000`
[       OK ] BenchVecMap.CopyAndMultiplyInts_100_000 (24037 ms)
[ RUN      ] BenchVecMap.CopyAndMultiplyInts_10_000_000
|       20,728,175.45 |               48.24 |    1.0% |      7.43 | `std::vector::push_back, n = 10000000`
|       18,768,072.64 |               53.28 |    0.4% |      6.72 | `std::vector collect, n = 10000000`
|       27,638,466.39 |               36.18 |    0.3% |      9.92 | `sus::Vec::push, n = 10000000`
|       18,752,611.74 |               53.33 |    0.6% |      6.78 | `sus::Vec collect, n = 10000000`
[       OK ] BenchVecMap.CopyAndMultiplyInts_10_000_000 (30878 ms)
[ RUN      ] BenchVecMap.TransformToIndices_1000
|              717.58 |        1,393,579.11 |    0.0% |      1.71 | `std::vector::push_back, n = 1000`
|              717.96 |        1,392,829.71 |    0.0% |      1.71 | `std::vector collect, n = 1000`
|            2,055.11 |          486,590.82 |    0.0% |      4.91 | `sus::Vec::push, n = 1000`
|              464.98 |        2,150,610.32 |    0.0% |      1.11 | `sus::Vec collect, n = 1000`
[       OK ] BenchVecMap.TransformToIndices_1000 (9446 ms)
[ RUN      ] BenchVecMap.TransformToIndices_100_000
|           67,378.83 |           14,841.46 |    0.0% |      4.02 | `std::vector::push_back, n = 100000`
|           67,358.63 |           14,845.91 |    0.0% |      4.03 | `std::vector collect, n = 100000`
|          201,232.86 |            4,969.37 |    0.0% |     12.01 | `sus::Vec::push, n = 100000`
|           47,440.54 |           21,079.02 |    0.1% |      2.83 | `sus::Vec collect, n = 100000`
[       OK ] BenchVecMap.TransformToIndices_100_000 (22896 ms)
[ RUN      ] BenchVecMap.TransformToIndices_10_000_000
|       28,927,259.74 |               34.57 |    0.3% |     10.40 | `std::vector::push_back, n = 10000000`
|       28,822,598.57 |               34.69 |    0.1% |     10.38 | `std::vector collect, n = 10000000`
|       40,111,028.09 |               24.93 |    0.2% |     14.46 | `sus::Vec::push, n = 10000000`
|       28,576,267.94 |               34.99 |    0.1% |     10.29 | `sus::Vec collect, n = 10000000`
[       OK ] BenchVecMap.TransformToIndices_10_000_000 (45557 ms)
[ RUN      ] BenchVecMap.MoreExpensiveIntTransformation_1000
|           14,574.42 |           68,613.35 |    0.1% |      0.01 | `std::vector::push_back, n = 1000`
|           14,691.96 |           68,064.44 |    0.1% |      0.01 | `std::vector collect, n = 1000`
|           15,752.38 |           63,482.45 |    0.1% |      0.01 | `sus::Vec::push, n = 1000`
|           14,614.17 |           68,426.75 |    0.0% |      0.01 | `sus::Vec collect, n = 1000`
[       OK ] BenchVecMap.MoreExpensiveIntTransformation_1000 (49 ms)
[ RUN      ] BenchVecMap.MoreExpensiveIntTransformation_100_000
|        1,462,006.00 |              683.99 |    0.4% |      0.02 | `std::vector::push_back, n = 100000`
|        1,470,807.00 |              679.90 |    0.1% |      0.02 | `std::vector collect, n = 100000`
|        1,575,007.00 |              634.92 |    0.2% |      0.02 | `sus::Vec::push, n = 100000`
|        1,472,306.00 |              679.21 |    0.3% |      0.02 | `sus::Vec collect, n = 100000`
[       OK ] BenchVecMap.MoreExpensiveIntTransformation_100_000 (66 ms)
[ RUN      ] BenchVecMap.MoreExpensiveIntTransformation_10_000_000
|      158,624,904.00 |                6.30 |    0.1% |      1.75 | `std::vector::push_back, n = 10000000`
|      159,616,808.00 |                6.27 |    0.0% |      1.75 | `std::vector collect, n = 10000000`
|      178,302,491.00 |                5.61 |    0.1% |      1.96 | `sus::Vec::push, n = 10000000`
|      158,794,704.00 |                6.30 |    0.1% |      1.75 | `sus::Vec collect, n = 10000000`
[       OK ] BenchVecMap.MoreExpensiveIntTransformation_10_000_000 (7240 ms)
[----------] 9 tests from BenchVecMap (150217 ms total)


Commit sac-secure-oauth

 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.

Hi Daniel,
I have done that now.
Please let me know if things look different on your end.
Thank you,
Ann
From: Daniel Wroblewski<EMAIL_ADDRESS>Sent: lundi 26 novembre 2018 14:26
To: SAPDocuments/Tutorials<EMAIL_ADDRESS>Cc: WHITEHEAD, Ann<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [SAPDocuments/Tutorials] Commit sac-secure-oauth (#2800)
Ann, sign the CLA and then I can merge
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/SAPDocuments/Tutorials/pull/2800#issuecomment-441637936, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AmsE89lKZQfx5mNd1ZUAGwu9YzagG-bBks5uy-v2gaJpZM4Yu5gu.


feat: add VineJS resolver

Adds a resolver for VineJS library.

cc @bluebill1049

could you resolve the conflict plz?

Done!


Problems with Multilanguage Setup

The SubMenu-rendering does not seem to be compatible with a multi-language setup.
For my default language (en) the menus get rendered as they should, but when the language is switched to german, for each SubMenu the items-property is []
I am a bit confused - when i print the MainMenuItem IDs, I get the same for both languages - so they actually should link to the same pages, which are used for sub_menu rendering if I understand this correctly.
The translated pages have show_in_menus also set to True, in case they are considered for rendering.
As I am not able to find the documentation for v4.x I do not know if there is any tag or setting I can use to fix this, or if this is simply a bug.
Would be great if you could have a look into it.
Just to be sure - an excerpt of the requirements used:
Django==5.0.8
wagtail==6.2.1
wagtail-localize==1.9.1
wagtailmenus==4.0.1

Did you manage to get this to work?


Different rendering among OS

Rendering is different between e.g. macOS and Linux. For example axes labels are cropped under Linux:
Linux:

macOS:

Well, browsers might render HTML/SVG differently, could you try exporting the same SVG and opening it out of jupyter nb ?

Here it is:

In fact I use tljh as I want to setup a jupyterhub server. This distribution installs in /opt a completely independent tree with its own conda, python, jupyter, ... and the actual jupyter version used is 3.6.2.

After upgrading  to 4.0.8, It does not seem to be an issue with jupyterlab version:

See the issue: https://github.com/jupyterhub/jupyterhub/issues/4716


Use case class for Castle instead of tuples

case class is actually less memory and allocation than tuples. The type of the current implementation is:
Tuple2<Tuple2<Object, Object>, Tuple2<Object, Object>> which has 3 allocations for Tupple2 and another 4 for boxing Object.

The benchmark is rather neglectable, but the code is nicer: https://jmh.morethan.io/?sources=https://gist.githubusercontent.com/lenguyenthanh/8da1d3e65f7af4c63c1df1d3c6df2b20/raw/fa313264e2336dbaf7de3b7ae603cb3f3356ae9c/master.json,https://gist.githubusercontent.com/lenguyenthanh/8da1d3e65f7af4c63c1df1d3c6df2b20/raw/fa313264e2336dbaf7de3b7ae603cb3f3356ae9c/case-class-castle.json


Hostname generator does not work

Hi,
Thank you for this awesome extension!
I have a small issue with the hostname generator, which seem to always return an empty string. Here is my config.json:
    "syncSettings.gitInitMessage": "{{profile}}: init -- {{now|date:iso}} - {{hostname}}",
    "syncSettings.gitUpdateMessage": "{{profile}}: update -- {{now|date:iso}} - {{hostname}}",
    "syncSettings.hostname": "T{{hostname}}",

And my settings.yml:
# selected profile, required
profile: main
# sync on remote git
repository:
  type: git
  url<EMAIL_ADDRESS>  branch: master

I already restarted VS Code, which seems to be required for the new settings to be changed, but my commit names are still main: update -- 2022-08-17T09:47:55.410Z -
It is as if the settings.yml still defined an empty hostname. Any idea?

It isn't a hostname generator... You need to give it in your settings.yml

the hostname property defined in settings.yml

from commit-messages.md
# current machine's name, optional; it can be used to filter settings or in the commit message
hostname: ""
# more details at https://github.com/zokugun/vscode-sync-settings/blob/master/docs/hostname.md

from the default config
syncSettings.hostname isn't supported 😉

Well, the documentation and this issue do say otherwise.

Damn! Damn! I forgot I've added that feature... You are right, I need to update the doc!
Can you open the Dev Tools (in the help menu) in VSCode and run require('os').hostname()?

Here's the output:
> require('os').hostname()
loader.js:1485 Uncaught Error: Check dependency list! Synchronous require cannot resolve module 'os'. This is the first mention of this module!
    at o.synchronousRequire (loader.js:1485:23)
    at n (loader.js:1909:38)
    at <anonymous>:1:1

For information, I use VS Code OSS on Manjaro Linux.

I've updated the doc to avoid confusion (for me)...

> require('os').hostname()
loader.js:1485 Uncaught Error: Check dependency list! Synchronous require cannot resolve module 'os'. This is the first mention of this module!
    at o.synchronousRequire (loader.js:1485:23)
    at n (loader.js:1909:38)
    at <anonymous>:1:1

Same error with the newest VS Code (I'm still using a 3 months old version)... I will fix that error!

Thanks a lot! There's no hurry though, take your time.

Ok, require('os').hostname() wasn't the issue. Internally, the hostname variable was defaulted to an empty string and the generator was never called to generate it. (empty string is allowed for those who want to hide their hostname...)
The v0.12.1 should out in few minutes with the necessary fix.

Well, it's far worse now, all Sync commands I tried failed:

My bad, I should have not done a wild update of dependencies because the GH actions...
jsonc-parser-v3.1.0 doesn't play nice with the bundler ncc... When forcing it to v3.0.0, no more issue.
The new extension has been published, it should be available in few minutes.

I can confirm everything works fine! Thank you very much for your reactivity :)


[Divider] Add visual regressions tests

Add visual regressions tests for Divider

That looks good to me!
I have had some consideration regarding grouping or not the tests for build speed consideration.
That's what I have done here #5604.
I'm not sure what's best. Hopefully, we can refactor the code quite easily later.

Thanks


preprocess.sh Errors

How to fix those errors? Thanks!

./preprocess.sh: line 14: gs: command not found
./preprocess.sh: line 19: parallel: command not found

Thanks for the answer @GrazingScientist!


What numbers are what difficulty for "dota_bot_set_difficulty"?

https://developer.valvesoftware.com/wiki/Dota_Bot_Scripting#Bot_Difficulties says there's 6

Passive
Easy
Medium
Hard
Unfair
New Player

https://developer.valvesoftware.com/wiki/List_of_Dota_2_console_commands_and_variables#D says:
Sets all bots to a particular difficulty (0 = easy, 1 = medium, 2 = hard, 3 = unfair.

But what about Passive and New Player? It seems like 0 would start at Passive and Easy being 1?
Is there a local script file that mentions the numbers? Or any way to show the bot difficulty during a match? Or any up-to-date source that mentions what numbers are what difficulty?
I want to launch Dota 2 immediately into an Unfair bot match and have this that works, and want to make sure the difficulty number is for Unfair:
+sv_lan 1 +dota_bot_set_difficulty 4 +dota_start_ai_game 1 +map dota

And is there any differences with how those difficulties work with Frebots?

TBH, I dont know and I dont really care. Just choose unfair by yourself in dota2 client. Or using the interface available if you are using anyother method to create a game.
I only play unfair with manual selection in local lobby. Fretbots is mean to be on top of unfair bots. If you want to know how it performs against other bots below unfair, I suggest explore the games yourself.

Just choose unfair by yourself in dota2 client. Or using the interface available if you are using anyother method to create a game.

The way I launch Dota 2, I auto-load into a bot match and skip the main menu dance entirely :p That's why I'd like to get the details of +dota_bot_set_difficulty down.
I wonder if there's something easy like hopping into a Unfair match from the main menu selection, and then checking a cvar to see what it reports, and comparing it to Easy/etc diffs? I might mess around with that later.

I'd appreciated if you can look into how to utilize Steam API to create a custom lobby programmatically and make it possible to invite friends with steam DIs to the lobby game, and able to select the specific script ID for the game bots.
ref:
1- https://dota2.readthedocs.io/en/stable/dota2.features.lobby.html#dota2.features.lobby.Lobby.create_practice_lobby
2- https://github.com/SteamRE/SteamKit

This is probably the only workaround that we might be able to use a remote server to host any bot script without the need of a local server. I suspect the reason/bug why most bot scripts cannot be played in remote servers are due to the ID become incorrect when loaded remotely and caused the bots to fallback to default bot script

I basically only play with friends, so anything automation or command work will have to work easily for any non-technical friends as well to keep my interest to spend any extra time thinking.


dubbo接口缓存的问题

[ ] I have searched the issues of this repository and believe that this is not a duplicate.
[ ] I have checked the FAQ of this repository and believe that this is not a duplicate.

Environment

Dubbo version: 2.4.9-sp5-20150715
Operating System version: linux
Java version: 1.5

Steps to reproduce this issue

在dubbo:refrence 中配置了cache=“LRU”,发现数据无法获取最新数据，有时候取到新的，有时候取到旧的，后来将cache配置删了，发现还是无法解决；
通过调试，用命令trace dubbo接口，发现接口返回的数据中每次都是最新的，但是在程序中debug获取的返回值却是旧的，搞不懂了，为什么会与trace返回的数据不一样呢？

Pls. provide [GitHub address] to reproduce this issue.
Expected Result
正常理解是cache去除后，应该是不走缓存？还是说配置问题？
是否会有缓存的序列化的问题，如果有，怎么清除序列化文件？
Actual Result
![image](https://user-images.githubusercontent.com/25905832/54585896-59751900-4a56-11e9-8878-8457ae76cb69.png)
![image](https://user-images.githubusercontent.com/25905832/54585950-7dd0f580-4a56-11e9-87e3-dfee68a43861.png)

I will try to reproduce this issue.

After run sample, I found it work well.
You can refer: https://github.com/apache/incubator-dubbo-samples/tree/master/dubbo-samples-cache . In this sample, you can modify loop times to more than 1000.  Then it will show the situation of cache invalid.
Also you can debug : org.apache.dubbo.cache.support.lru.LruCache .
After these operations, the issue is still exist.  You can upload a demo to us.


Clarify a paragraph which seems to conflict with Mongo documentation

Could we clarify that this paragraph here is correct:
"For applications with a primary read/write region and a secondary region for disaster recovery (DR) scenarios, we recommend setting your collection's read preference to secondary preferred. A read preference of secondary preferred is configured to read from the secondary region when the primary region is unavailable."
In normal Mongo usage, SECONDARY_PREFERRED will target secondaries first and read from the primary only if secondaries are unavailable. This text sounds like it's actually talking about PRIMARY_PREFERRED (i.e. where it says "secondary preferred is configured to read from the secondary region when the primary region is unavailable.")?

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

ID: 76a6d305-ba61-9905-6f6e-9cb59de32fae
Version Independent ID: 1898727b-0d4c-5387-5b89-5d5e5819f843
Content: Tutorial to set up global distribution with Azure Cosmos DB API for MongoDB
Content Source: articles/cosmos-db/mongodb/tutorial-global-distribution-mongodb.md
Service: cosmos-db
Sub-service: cosmosdb-mongo
GitHub Login: @gahl-levy
Microsoft Alias: gahllevy

Hi, @dgpoulet Thanks for your findings, I'm assigning this to the author for the feedback review.

Thanks @dgpoulet for this question!
Since this is a product question, I'm going to let @gahl-levy take this question offline with you. If he determines a docs update should be created to support this question, we'll update the relevant doc at that time.
As always, thank for your feedback!
#please-close


model weight without training

Is it possible to release different bit model weights without any training? I.e. newly initialized LoRA weights and Q.

Good suggestion! We don't have them now, but it's totally possible to do them on your own --- we recently released the artifacts you will need to do them (with the bits of your choice, though only 64-rank for now). If you bump into any question, feel free to send questions here, and I'm happy to answer!
AFAIK, this should be fairly straightforward + fast. The main caveat is that, for the 70B model case, you will need enough "CPU RAM" (not GPU RAM) to temporarily load the model weights + artifacts --- something like in the order of ~300GB.

May I ask how you get the answer for QLoRA 3-bit? If I remember correctly, QLoRA only supports 4bit and 8bit.

We implement our own version of QLoRA, and hence we can vary the bits.

Closing this assuming the question is addressed. Please feel free to re-open if you have follow-up questions.


3.0_refactor-queries

No longer directly inherit from Query

A "decrease" in coverage from this PR is inevitable, since it reduces the number of lines of code in areas which were already covered, while not reducing the number of lines of uncovered code.

No longer directly inherit from Query

This is such a far-reaching PR. I think it needs a bit more explanation about how to read this. What are we now inheriting from?

Hi @BenGalewsky - this brings the FuncADL and PythonFunction query classes into the same framework as the UprootRaw query - basically, all the subclasses do now is to provide the query string to send to the server, and the favored codegen. This is done by subclassing the very simple abstract class QueryStringGenerator.
The issue is that Query has a lot of logic to it, and needs a lot of initialization parameters; if you subclass from it you need to provide those parameters to the subclass, which then just forward it to the superclass initializer, and this is rather fragile (and in any case the subclasses never have a reason to alter any of these). The refactoring fully separates the logic of "how do we produce the query string?" and "how do we execute the query?".

@BenGalewsky @gordonwatts @kyungeonchoi any additional tests we want to do before deploying this? Everything seems to work on the testing1 instance right now.


Revisit --grep/--find/--incinfo/--pkginfo/--replace

The various query and editing options do not always properly work with the new bundled structure.

It is also a bit annoying that --grep is currently only available in a case-insensitive version. Additionally, it might be convenient to have a regexp option.

The "querypaths" in the code should probably be more pkg-filter like, as well as of course supporting absolute/relative paths. It would also be nice if we could do other files, e.g.: "headers_only"/"impl_only"/"only_lang_cxx"/...


Errors running run_long_form_eval.py

Following the training/README.md https://github.com/huggingface/distil-whisper/blob/main/training/README.md#long-form.
I have two issues running the bash script example for TED-LIUM validation set.

For this bash script line --dataset_config_name "all" \.

This error.
ValueError: BuilderConfig 'all' not found. Available: ['default']

Changing bash scipt to mitigate 1) --dataset_config_name "default" \.

Then see this error.
File "/home/ubuntu/distil-whisper-large-v2-hi/run_long_form_eval.py", line 578, in eval_step
    eval_labels.append(sample["reference"][0])
KeyError: 'reference'

The model card for TED-LIUM does not mention a reference key.

The config name is fixed in #103, the reference error is fixed in #101!


Add support for version argument

Right now feathers-cli can't be passed -v or --version to get the version for debugging.

Try installing the next version with npm install feathers-cli@pre -g. It does have a -V flag.

That solves this and the yarn issue I tagged you in. Without being able to see the version there wasn't any way of me knowing latest wasn't pointing to pre.

Also wouldn't it make more sense to use -v as help's alias is -h not -H?


fixed inital dash if strings starts with uppercase character

Any interest in merging this?

sorry, missed this! thanks


Can't get current audio device

I'm trying to use the getCommunicationDevice() method, but I'm getting this exception: PlatformException(Error: java.lang.RuntimeException: Requires API level 31, null, null, null).
The Android documentation says that it is supported starting from version 31, I am using version 33. What can I do in such a situation? There may be another method, but I haven't found it.

This error refers to the version of Android that is installed on the user's device, not the target SDK level you have set in your build.gradle. If your minSdkVersion is 31, you should have no issue because users on older devices simply won't be allowed to install the app. But if your minSdkVersion is lower than 31 and some users have versions of Android above and below 31, you would need to write conditional code to check at runtime if the user's phone supports that feature or not depending on their API level.


[List] Use stable context API

Part of #13394
Not a big fan of MergeWithListContext but ListItem would've been pretty bloated since it has two return statements.

@eps1lon This looks great. I'm fixing the tests, at least, trying.

@eps1lon If you see anything that is wrong, feel free to raise it :).

Thanks for cleaning that up! Didn't really have the time to follow through.
I had a different approach though. Will open another PR to get your feedback. I think explicitly looking at a particular child of the component is not really the intention of some of those tests. As soon as we introduce another component into the tree it will likely break again.

@eps1lon I ran out of ideas, if you think it can be improved, I'm all in! Also, It's likely that we will use the hook in the future to implement the feature. We need to be resilient to that change. I think that using mount over shallow is already a good first step.

I find this error only throw out in  particular case。
https://github.com/Ak-lee/webpack-server-render-debug
when I enter the directory , only when I run npm run dev:client , then run npm run dev:server
open the browser at http://'localhost:3333, then the error throw out.
I run the npm run dev:client and npm run dev:server  in order to achieve the server automatic从rendering  while development.
if I run the  npm run dev:client and open the browser at http://localhost:8888 ，there is no error throw out .
if I run the  npm run build then npm start  and open the browser at http://localhost:3333, both there is no error throw out.
I am sorry that I have't simplify the demo, because the error really throw out in some particular case.

@Ak-lee please open a separate. I don't understand how this is related to this PR. Maybe #13716 is related?


Eventbrite integration

We can't compete with a company which business is ticketing, and don't want to if ours users find it adequate to use it more than ours. @rosalanghammer we will probably be needed some specs here to know what we're supposed to link together

Something we'd love would be if the Eventbrite integration meant that each user automatically would become a participant of the dojo!
This would allow us to keep using Eventbrite (which has some functionality we value), but still be able to award CoderDojo badges to participants in a smooth way!

I'm afraid it's a bit complex : there is not enough information to 'create' an user on Zen based from eventbrite information. Tickets are booked for multiple users by the parent (generally). For us to map the users on a recurrent basis is purely random.

This has been covered last year.
There is some difficulty with multiple dojos per account but works for simples scenarios.
Closing off but feel free to open another for more specific request


[Help Needed] Combine Multiple Random Sources?

Let's say I would like to generate a random term from one of Foods, Beers and Games. Is there any way I could do this by defining my struct?
type Foo struct {
  Bar BarType // bar type is one of foods, beers and games
}

// how to define BarType

Looks like you may want to add your own lookup and add those lookups to your struct tags. The readme should have enough examples for you to go off of.


Support for connecting multiple cameras

It would be nice if Harvester would support connecting multiple cameras. This would be useful especially in the field of spectral imaging, where multiple cameras could be controlled with the same interface (Harvester).
I would imagine that this wouldn't be too difficult to implement. Connecting the devices would happen in a usual way with the connect_device function, but a new process would be created for the each camera to be connected. If one calls the connect_device function with a camera that is already connected, an exception would be raised.

Hi Severi,
Thank you for providing us your request!
Do you mean you would like to view and control multiple cameras in a single Harvester GUI?
Regards,
Kazunari

I meant multiple camera support in case of Harvester Core, but now I actually noticed that this is a duplicate of issue #11. :) So closing this.

Thanks! Okay, I'll make a try to let Harvester Core suports multiple cameras in a single object.

Hi Severi (@severij ),
Let me hear your opition: Which point do you see an advantage of supporting mulitple cameras within a single Harvester Core object?
Say, the current implementation maps a Harvester Core object to a single camera and it's obvisouly minimalistic and simplest (so I like this way from maintainance point of view).
Technically speaking, this way can support multiple devices just having multiple Harvester Core objects and of course, the interface is the same because you're using the same Harvester Core object.
Actually I was thinking about supporting multiple devices within a single Harvester Core object but I have changed my mind having above perspective.
Anyway, I would highly appreciate if you could tell me your point to consider if we should make it or not. In addition, it should be very helpful if you could show some lines of code that you expect to have.
Regards,
Kazunari

I would say there is no clear advantage, except maybe being more intuitive to the user (but that might be just me). Having a harvester.device_info_list with multiple cameras makes you think that you could also connect multiple cameras with that HC object, but of course this is impossible with the current implementation.
An alternative implementation would need a separate class for Device, which could be used like
camera1 = harvester.get_device(0)  # Returns a Device object
camera2 = harvester.get_device(1)

or something like that. So the Device class would have many of the features that Harvester class currently has. Then the device objects could be used separately:
camera1.start_image_acquisition()
camera2.start_image_acquisition()

# Acquisition of images with the cameras
...

camera1.stop_image_acquisition()
camera2.stop_image_acquisition()

I think this way the process of connecting and disconnecting of the device could be made automatic, like for example connecting the device in the __init__ of the Device and disconnecting it in the __del__. If there is a separate Device class, then the role of Harvester object would be handling the cti-files and listing the available cameras.
However, I'm not sure if this is any better or more difficult from the maintenance point of view. I want to add that I'm totally happy with the current implementation of Harvester, since it works just fine. :)

Nice :-) Okay, I've got your point and would like to take a bit more time to concider a way to implement your elegant usage. My mind had been sticking on a way to use devices within a HC object anyway and it had kept preventing to reach your idea. Thank you!


[BUG] Button to send requests is broken !

When clicking on the button, nothing happens.
[The expected behaviour is that after triggering the button, the output is displayed.]

The problem is probably due to the position of the history that is always displayed (but in transparent when it is hide).
The problem class is "history-div history-div-disappear".

Oh nice ! Didn't thought about this at all... I will try that asap 😉.

@Arkozzz Aren't you a big 🧠 by any chance ?_
Well played !! This was the issue.

I moved the history-div to a place where it doesn't overlap with the form compoment. Everything now works !


Flash doc update

Updated flashing instructions for dual core projects.

@npetersen2  I've rendered this locally and this branch looks good IMO.
The only question would be do we add the dual core boot image creation dialog into the admonition or leave it external. A very small detail.


301 status and ERR_TOO_MANY_REDIRECTS for static dir

I have these dirs:
- static
  - index.html
  - js
    - main.js

and I'm using the code listed here: https://bunrouter.uptrace.dev/guide/serving-static-files.html#fs-sub.
Single file retrieving is working fine (eg. static/js/main.js).
The issue I'm having is when I try to open static/. I get in browser a 301 for static/ to static and vice-versa and then ERR_TOO_MANY_REDIRECTS in Chrome.
Is this my fault?

You can verify this by changing this line in file-server example:
https://github.com/uptrace/bunrouter/blob/4026a11ba646b7110767dd4e547df028666fa6b5/example/file-server/main.go#L26
to
router.GET("/*path", bunrouter.HTTPHandler(fileServer))

Please try v1.0.2 and the updated example.

panic: /*path already handles GET

I will fix this shortly.

I think it is ok without that first GET anyway. It's working good! And it is like go-chi works too.

If you think about it, we don't need two routes that handle the same calls:

router.GET("/", ...)

router.GET("/*path", ...)

This is redundant!
Only the latter is ok: router.GET("/*path", ...).
I personally don't like writing path after the *.

This is redundant!

Okay, let's keep this behavior. I can imagine arguments against such routing too, but perhaps it is fine.

I personally don't like writing path after the *.

That is is needed so you can retrieve the param via req.Param("path").


Send Notification when a business scenario fails

There are two ways to add side-effects to a command:
1 - You listen to a IDomainEvent emitted during that command. I understand that You'll want to use this when under the same bounded context, and under the same transaction.
2 - You listen to a INotification emitted during that command. This will be broadcasted to the event bus so all modules can listen to the notification.
However, since the INotification only gets commited to the database if the command succeeds, how do you send an INotification in scenarios where your command fails? (Imagine the command throws an exception but want to emit an INotification still).

Hi @Lobosque
When the command is failing that means you are not changing state in your system, so you are not sending any notification, if you want to send some notification on fails I think the proper place is ExceptionMiddelware. In this repository, @kgrzybek is using ProblemDetails library where you can set up custom actions triggered on handled exception

Hi @Lobosque , @JacekSmi

1 - You listen to a IDomainEvent emitted during that command. I understand that You'll want to use this when under the same bounded context, and under the same transaction.
Yes
2 - You listen to a INotification emitted during that command. This will be broadcasted to the event bus so all modules can listen to the notification.
Yes, notification is kind of "persisted event" which you want to process somehow outside command handling transaction. You can transform it to the integration event, but you don't need to do that. You can instaed invoke another command on the same module or communicate with 3rd party service - your choice.

About creating notifications on failures - as @JacekSmi noticed, you need to implement this because current solution does not support this.
However, I would not recommend to do in GUI/Presentation layer as .NET core middleware. The implementation should be placed in the Infrastructure. You can do it by adding the new Decorator to the pipeline (Chain Of Responsibility) after logging and validation and before UoW Decorator.


Easy way to remove local songs downloaded through USDB-Syncer

I've recently downloaded the whole library.
I came across 2237 songs which don't have audio so these songs are pretty much unusable (at least for us in Performous)
I'd love to get an extra option in the batch menu to Remove these local files.
The current workaround is to:

Sort on Audio
Select and add all the songs to the batch which don't have audio
Use the Batch -> Export IDs to file to Export the batchlist to a file usdb_ids
Traverse the whole directory and find the matching id's and delete those folders

#!/bin/bash

# File containing the list of IDs
id_file="remove-usdbids.usdb_ids"

# Directory to traverse
search_directory="/mnt/e/Karaoke/USDB\ -\ live"

# Read IDs from the file into an array
mapfile -t ids < "$id_file"

# Use parallel to perform a dry run
dry_run_remove_folder() {
  local id="$1"
  local folder="$2"
  matching_files=$(find "$folder" -type f -name "${id}.usdb")

  if [ -n "$matching_files" ]; then
    echo "Dry run: Removing folder: $folder"
  else
    echo "Dry run: No matching file found for ID $id in $folder"
  fi
}

export -f dry_run_remove_folder
parallel -j4 dry_run_remove_folder {} "$search_directory" ::: "${ids[@]}"

echo "Dry run completed. No folders have been deleted."

See #31.


Fix block bumping on initialization

In a situation in which a top-level block with two input statements has
two or more blocks in the first one and a block containing a dropdown in
the second one, the blocks in the first statement end up getting bumped
out of position.

This is because the dropdown, upon initialization, checks for nearby
connections and bumps them away. And because the parent block is not yet
initialized when the dropdown block is being initialized, it sees the
blocks in the other statement as being positioned right on top of them,
and so bumps them away.

Blocks with parents avoid this by being rendered before their children
get rendered, and top-level blocks with previous connections (ie, blocks
without parents that really should have parents) avoid this by making a
call to setIsUnused before initializing their children, which has the
side effect of making sure that they get rendered before their children
do.

The simple solution is to make sure that all blocks get rendered
before their children do, by adding a call to this.render() to the end
of Block.initSvg.

LGTM, nice catch!


feat: LSDV-3104: Task navigation standardization

Hi @Travis1282!
This PR was created in response to a PRs in upstream repo:

https://github.com/heartexlabs/dm2/pull/181
https://github.com/heartexlabs/label-studio-frontend/pull/1355

To enable Auto Merge for this PR also merge those PRs:

https://github.com/heartexlabs/label-studio-frontend/pull/1355


inhibit: reduce O(n^2) complexity problem

This change adds an inhibition cache. New alerts are checked against all
inhibition rules' source matchers. At notification time, we only have to
check the target matchers against the notified alerts. If there are
alerts in the source cache, we only have to verify the equal labels
against these.

Checking each incoming and outgoing alert against each inhibition rule is roughly equivalent to metric_relabel_configs just that our load is way lower here.
As we want to scale beyond several thousand alerts per second, we will want to work on lock contention a bit.

:+1:

Thanks


Reduce build warnings

Fixes #142

Two warnings remain. They come from a 3rd party software who uses require in a naughty way. It's bin fixed (see https://github.com/cpettitt/graphlib/commit/7986506b7963c977abb97d580f01fc14b3be6d6b) but not released.

Lgtm


🧑💻:  Add Deployment link

Title
to add Deployment link in readme.md file
Enhancement Aim
adding deployment link in readme.md will make others easier to view the preview of project
Changes
I will make changes in readme.md file. I will deploy the link in project's title name
Screenshots 📷
No response
Guidelines

[X] I have read the guidelines
[X] I have the link to my latest merged PR

Full Name
Harsh Santosh Pardeshi
Participant Role
gssoc, hacktoberfest, gssoc-extd

@UTSAVS26 assign me with this issue and give necessary labels

@harshpardeshi09 sorry, but I don't think it is necessary.


auth/token POST request --Invalid credentials given--

Hey there!
First of all thanks a lot you  have done  wonderful job! 🙏🏽
I'm running to en issue when I try to login  through  http://<IP_ADDRESS>:8000/auth/token
I use the exact username and password, client id and secret are copied from admin panel

For example  http://<IP_ADDRESS>:8000/auth/convert-token works perfectly fine

+1

I'm running into the same problem and was wondering if you were able to figure out a workaround (or patch)? Thanks

Hi @BenK93,
I am assuming the convert-token endpoint is not enough for your needs? Did you overcome this issue?
I am sorry for the delayed response. It's that I've been really busy and I haven't got much help with this repo, so I am all alone to maintain it.

Hi @wagnerdelima ,
This is an issue for me too.
I am using multiple login schemes so convert-token works well for social auth but I get the same error as the original post on /auth/token endpoint with username & password.
Appreciate your help.

Hi @Jrad84
Thanks for your message and for your investigation!

http://<IP_ADDRESS>:8000/auth/convert-token

Where we get token?

I suggest you read the README file. It contains information about the endpoint.

I am  use the exact username and password, client id and secret are copied from admin panel.
can please suggest where I am doing mistake.

+the same

Nowhere in the documentation it suggests the grant_type to be password. Try replacing it by covert_token, instead.


Chibitronics v0.1.40 release blog

Chibitronics v0.1.40 release blog post.
Covered topics:

[x] New blocks (APIs)
[x] Deprecated blocks
[x] Scratch blocks change
[x] Field editors
[x] New packages
[x] Home screen

Actually, change
Scratch-blocks
to
Scratch Blocks

I would add a paragraph up-front setting context - what is Chibitronics, why is it a cool and innovative partner?  Also, don't say "aligned with Scratch" - that's not true, we're just leveraging some of the UI components and rendering improvements that come with the new version of Scratch Blocks 3.0.  Also, let's not say we've based our fork against Scratch Blocks - doesn't give us enough credit.  We should also talk about the user testing/workshops we've done that have informed these changes (we didn't just make this up).  I'll take a pass at some edits tomorrow.

@Jaqster that sounds good! Sounds like you have a good idea of what should go in that paragraph, feel free to make that edits directly :)