Highlight current window

Addresses #11
Thank you @markstos for the start!

I pulled this branch, ran cargo build and then ./target/debug/sway-easyfocus, but I don't see that my focused window is styled differently.
I tried cargo clean && cargo build to see if I would get a different result and... I did not.
I tried  env GTK_DEBUG=all ./target/debug/sway-easyfocus to debug, and that brings up a debugging window but I'm unable to interact with it.

Ah. I set the default colors for the focused labels to be the same as the unfocused ones. Try running it with:
cargo r -- --focused-background-color="ffffff" --focused-background-opacity=0.5 --focused-text-color=000000

I can confirm it works after updating my config.yaml with different colors.
I set my font-size to 10em to make it nice and big. 😁


prism breaks css of my page

Not a big bug, but i use a simple "Back to Top" element in my page, that ignores some css-Attributes, given in a linked css file. My back to top looks like this:
To Top
and css has:
#ScrollTop {
  position: fixed; bottom:5px;left:5px;
  padding: 5 10 5 10px;
  font-size: 130%;
  letter-spacing: -1px;
  text-align: center;
  color: #FFF;
  text-decoration: none;
  background: #004080;
  border: 1px solid #AAA;}

#ScrollTop:hover
{ text-decoration: underline;}
}

but the values for padding are ignored. If i comment out prism, it works fine...

Hi. Could you please provide a link to an online example reproducing the issue please? Your CSS looks quite wrong to me. You have to specify the unit for every value in your padding declaration.

Yes, that's it! It worked after i changed that! Courious that prism "detects" the error. So thank you very much!

I'm not sure I understand how it could work without Prism either. But I'm convinced there is a logical explanation!
Glad I could help ;)


feat: purple dry streak tracker

Tracks # of runs since last purple and prints the count in the chat.

The whole class should simplify a lot from the requested change

The whole class should simplify a lot from the requested change. Have you gotten a purple to test this? I'm not confident on when the sarcophagus varb is set, it may be after the region change tick (which triggers the onStart).

It's reading the varbit the same way the SarcophagusRecolorer does.


Deterministic Topology

I have thought of a wonderful use case that could help some of us working on large simulation suites in cosmology. I'm not sure how this may affect performance, but this use case would require deterministic builds.
In theory, the topology of a kdtree (i.e. number of stems, leaves, number of items in each leaf, and the connectivity of all of these) can be identical between any point set which contains the same number of points. This is simply due to the fact that there will always exist a median that can split items into two groups of equal size +/-1, even if the split_val is identical for all points in a leaf.
In its current state, i've noticed that kiddo tree builds are not deterministic in the sense that two point sets of equal size do not produce the same topology, i.e. this test fails
    #[test]
    fn test_deterministic_topology() {
        const TEST_SIZE: usize = 50_000;
        const NUM_TESTS: usize = 100;

        // Populate a base test tree
        const K: usize = 2;
        let mut base = KdTree::<f32, usize, K, 16, u32>::with_capacity(TEST_SIZE);
        for i in 0..TEST_SIZE {
            base.add(&rand::random::<[f32; 2]>(), i);
        }

        for _ in 0..NUM_TESTS {
            // Populate a new test tree
            let mut tree = KdTree::<f32, usize, K, 16, u32>::with_capacity(TEST_SIZE);
            for i in 0..TEST_SIZE {
                tree.add(&rand::random::<[f32; 2]>(), i);
            }

            // Check topology
            assert_eq!(base.stems.len(), tree.stems.len());
            assert_eq!(base.leaves.len(), tree.leaves.len());
            for (bleaf, tleaf) in base.leaves.iter().zip(tree.leaves) {
                assert_eq!(bleaf.size, tleaf.size);
            }
        }
    }

Additionally, I've noticed that panic ensues when a bucket contains too many points with identical cartesian components. However, it should definitely be possible to still choose a median that splits things roughly down the middle. As an extreme example, although useless, it should be possible to construct a well-balanced tree with 1m points stacked on top of each other.
I need this feature. If you'd like to bring this upstream and benchmark it to make sure it doesn't affect performance let me know. Otherwise, I'll make my own fork for just this use case once V3 is out.
If you have any thoughts on how this could most easily be done, let me know.

Hi! Regarding the split for too many points with identical cartesian components. I think that many k-d tree implementations suffer from this issue. I've got a partial fix for this on another branch, where I move the split point so that, if the initial pivot point lands inside a group of points that have the same value on the splitting dimension, then I move the pivot. First I try to move it lower down the bucket, and if I get to the start of the bucket without getting to the end of the group of points with the same value then I move from the original pivot upwards through the bucket, only panicking if the bucket is effectively full of points with the same value in the splitting dimension.
I'm not sure of a way to handle that situation where all points in a bucket have the same value in the splitting dimension, since the buckets in Kiddo 2 and 3 are arrays and so can't be resized in this scenario. The only way to deal with it currently is to increase the bucket size until this doesn't happen for your dataset.
In theory you may be able to address this if this was not your first split by moving the split plane of an ancestor node and rebalancing but that would be very difficult.

This is simply due to the fact that there will always exist a median that can split items into two groups of equal size +/-1, even if the split_val is identical for all points in a leaf.

I'm not sure that this is the case? What if you have, say a bucket of 16 items that needs to be split, and 15 of them have the same value in the dimension that you'll be splitting on? How can you split that into two groups of equal size +/- 1?

I think it could be feasible to pre-set all of the stem values to create a balanced tree. You'd start with a vec of all of your points. You then sort that vec by their value in dimension zero and take the median as the value for the first split plane. You then sort the left half of the array by dimension 1, taking the median value as the split plane value for the left child of the root stem node. You sort the right half of the array by dimension 1, taking its median as the split plane value for the right child of the root stem node. You continue recursively until all of your split plane values are set for the desired number of stem / leaf nodes. Then you insert all of the items in the array into the tree.
Of course all this up-front sorting will be slower. You may potentially end up with some leaves needing to be split due to edge cases if you have groups of points with the same value in one dimension that are the median at a split. But, you could also choose the number of leaves so that you could end up with much higher average leaf fill levels as well, increasing efficiency.
I like the idea of this, I'll give it a go to see how it turns out.

This is simply due to the fact that there will always exist a median that can split items into two groups of equal size +/-1, even if the split_val is identical for all points in a leaf.

I'm not sure that this is the case? What if you have, say a bucket of 16 items that needs to be split, and 15 of them have the same value in the dimension that you'll be splitting on? How can you split that into two groups of equal size +/- 1?

you put any given one of the 15 equal ones in the center and call it a day

But that leaves (no pun intended) half of those points on the wrong side of a split plane? Am I missing something? If your new split plane has a value of say x=15.0f32, and your traversal rule is that if your query val is >= 15 then you traverse to the right child, but some of the points with x=15.0f32 were in the left child, then you can never retrieve them by navigating the tree the normal way?

But that leaves (no pun intended) half of those points on the wrong side of a split plane? Am I missing something? If your new split plane has a value of say x=15.0f32, and your traversal rule is that if your query val is >= 15 then you traverse to the right child, but some of the points with x=15.0f32 were in the left child, then you can never retrieve them by navigating the tree the normal way?

the logic for that will reduce to (pseudocode)
check_right(&mut best_dist);
if best_dist > dx {
    check_stem(&mut best_dist);
    check_left(&mut best_dist);
}

If your query point is at x=22.0f32, and a best_dist=1.0f32 is obtained after check_right, it does't need to check the stem or any of the points on that plane.

Both v1 and v2 of Kiddo also check both sides, using similar logic. I think that second phase that walks back up the tree, checking the unvisited side if it could possibly contain a point closer to the query than the closest found so far, is what differentiates approx NN (which doesn't do this) from exact NN. So I suppose from a query standpoint, we'd get the expected result as we aren't doing approx NN. It just feels a bit wrong to me to put points in the wrong bucket I guess :-) I think I'd be ok with changing the behaviour when this happens from the current panic! to logging a warning instead and putting the points on the wrong side of the split.

In my head, if I have some [1, 2, 2, 2, 5] and I use a binary tree (1D kdtree) with left = [1, 2], stem = 2, right = [2, 5], that feels right in my head lol. With a kiddo-type code, [1, 2, 2], [2, 5] would feel a little odd but it is what it is.

Just wanted to give you a heads up I wrote a special purpose library for this. Needed it now because I am giving a talk next week and another in August on the subject and wanted a proof-of-concept. I also needed zero memory overhead in addition to zero copy deserialization. If you don't need this or want this, feel free to close the issue.

Nice, good luck with the talk. I will be adding a feature similar to this that I've been rolling around my head for a few days, based on the comment I made a few days ago.
This will be incorporated into kiddo v3, based on the work I've been doing in this branch.


using Gmail API using Service Account

I am trying to use the gmail apis for sending mail from a .net windows application.
Can we use a service account instead of the user credential to call the apis? and does this require to use the googleauthorisationbroker to authorise?
Delegating domain-wide authority to the service account  -- is this a mandatory step to be done while we use the service account?
I have  created a project and downloaded the key and copied to my applciation folder.
The following code is written
//created google account credential from service account key and included the scopes
using (var stream = new FileStream("_**key.json**_", FileMode.Open, FileAccess.Read))
{
    credential = GoogleCredential.FromStream(stream).CreateScoped(Scopes);}
    //call the google api using the credential.
    var service = new GmailService(new BaseClientService.Initializer()
    {
          HttpClientInitializer = credential,
          ApplicationName = ApplicationName,
    });
    //send mail using the api
    service.Users.Messages.Send(message, mailaddress).Execute();
}

But i get the follwing error
Error = {Google.Apis.Requests.RequestError
Bad Request [400]
Errors [
	Message[Bad Request] Location[ - ] Reason[failedPrecondition] Domain[global]
]

I have also tried using user credntials codes also, it works but does nt work in some systems.
No error as such is shown but the Authorisation page is not shown.
Any thoughts on these issues?

What scopes are you specifying here? Is this sending email on behalf of a user that associated with the service account? (I'm not quite sure how that would happen, to be honest... it seems odd to use a service account to send an email rather than a real user credential.)

Service accounts will only work with Gsuite email accounts.   The admin of the Gsuite account will have to grant the service account access to the users email account.
If this is a normal Gmail user account you are trying to access then you cant use a service account.  You will either have to go though the SMTP / IMAP servers or using Oauth2 to authenticate the user.

@jskeet: I need only GmailService.Scope.GmailSend  scope to send the mail.
@LindaLawton:I had tried SMTP , but i need to set the Allow low secure apps to True in gmail setting, which is not preferable.
And I had tried with the user credential, it works with our dev systems , but while trying the same with a user's system , it do not work. The authorisation page is not opening. No error is shown

I suggest you focus on getting user credentials working then, basically. If you're trying to send mail on behalf of a user, you really should be getting their permission. (Unless it's GSuite, as Linda says.)

@AnujaUR  if this is a normal user Gmail account you will need to use Oauth2.

And I had tried with the user credential, it works with our dev systems , but while trying the same with a user's system , it do not work. The authorization page is not opening. No error is shown

I suggest you ask a question on stack overflow posting your code I should spot it and try and i will try and help you fix your issues.  be sure to tag it google-api-dotnet-client

@jskeet : I am trying to get it fixed in user's system.
We use the  Oauth2 protocol itself to authenticate  while using user credentials..right?
@LindaLawton : So the admin of the domain need to allow servcie account to access the users gmail acocount in teh particular domain, only then servcie account is useful?#

Yup it should be just the service account that needs access to the users accounts check this page  Perform G Suite Domain-Wide Delegation of Authority

I'm not quite sure what you're asking me, but yes, user credentials will use OAuth2...

@LindaLawton : Hi Tried debugging the code is users machine, it breaks at the below line ,where the resposne token is stored to local folder. I tried changing the destination folder paths, but still same error.
Error : Access is denied.
string credPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
credPath = Path.Combine(credPath, ".credentials/Test");
            credential = GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(stream).Secrets, Scopes, "user", CancellationToken.None, new FileDataStore(credPath, true)).Result;

What type of application is this?

I would change from
credPath = Path.Combine(credPath, ".credentials/Test");
to
credPath = Path.Combine(credPath, "credentials-Test");
A filename containing a forward slash is an invalid Windows filename.

The correct error mesage is HttpListnerException:Access is denied.
Stack Trace:
StackTrace	"   at System.Net.HttpListener.AddAllPrefixes()\r\n   at System.Net.HttpListener.Start()\r\n   at Google.Apis.Auth.OAuth2.LocalServerCodeReceiver.StartListener()\r\n   at Google.Apis.Auth.OAuth2.LocalServerCodeReceiver.d__8.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at Google.Apis.Auth.OAuth2.AuthorizationCodeInstalledApp.d__8.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__4.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__1.MoveNext()"	string
Type of application: trying a sample application to send a mail using gmail apis.
framework:.net framework 4.5.2

@mikemeinz  : Hi Mike, Thanks for the suggestion, I tried the same but this dnt work.

this is related to #987.
now admin privileges are  needed to open the  listening socket at least in  Windows 7 and 8.1.

@aluxnimm : Thanks for that info, I guess this could be the rrot cause.
Just checked the users OS its windows7. But How  come we can try the online example from gmail api

#1055 is now tracking the localhost/<IP_ADDRESS> problem.
@AnujaUR Are you able to try this on Windows 10, or a Windows 7 or 8 machine with admin privileges? Doing so should work around the HttpListnerException error.

Closing as #1055 is now fix and released (v1.28). Please re-open if there is still a problem.

I managed to set up the right permissions via the dashboard to access Gsuite data belonging to other users but the PHP docs for service pre-authorised accounts is very weak on the ground. If anybody knows of such examples please let me know. The only official examples seem to be for .Net, Java and Go.

Service accounts will only work with Gsuite email accounts.

@LindaLawton Is it written somewhere in the Google documentation? I've not found anything related to this.

@nagman With regard to that error message

Client is unauthorized to retrieve access tokens using this method, or client not authorized for any of the scopes requested.

There are three different ways to authenticate to google

web application
installed application
service accounts.

The credential files are different for these three different types, as are the code used to preform the authentication.  You need to find out what type of project that you created on Google Developer console, and ensure that you are using the proper code for that type of project.
service authorization with gmail
Considering that Google only documents things that are possible.  I ask you to show me the link in the documentation where it states that Gmail api supports service accounts.   The only place you will find any documentation for how to do it is using Gsuite as its there that the delegation can be configured via the domain.  There is no way to configure delegation of a normal users gmail account to the service account preauthorizing it to access a users data.
The only way to do anything similar to a service account, would be to use Oauth2 with offline access and get a refresh token and use that refresh token in a server sided script to act like its a user.

@LindaLawton Thanks for the explanations. I've managed to use my Gmail account as an SMTP service using OAuth2 (in a 3LO way).
Things are always blurry for me when I have to cope with GCP, but I've found this tutorial which helped me a lot: https://alexb72.medium.com/how-to-send-emails-using-a-nodemailer-gmail-and-oauth2-fe19d66451f9

There is a bit of documentation here on how to use standard Oauth2 with offline access to behave like a service account.  Server-sided
IMO going though the IMAP / SMTP server is probably going to be better mainly because of the cost of verifying an application with gmail scopes.   This library can only help you go though the Gmail api, you would need to look up some .net examples on how to access SMTP servers.   If you have any issues pop a question up on SO i should spot it.


Bump version to 0.7.4

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please add noarch: python

ping @ericmjl @dpryan79 - I think you two are the maintainers of this package. Can you review/merge this? I'd also like to submit a PR for building 0.5.4 based on top of this (#5).

Not a problem, everything looks good, so I will march.

Argh, autocorrect changed merge into march. Thanks for the ping!


Error: The specified language version is too high

Dear @natebosch,
I'm facing a small issue with the intl package. I switched to the stable branch and clear the flutter cache. I try to recompile the localization strings. However, I receive following error:
Failed to precompile intl_utils:generate:
../../.pub-cache/hosted/pub.dartlang.org/path-1.8.0/lib/path.dart:1:1: Error: The specified language version is too high. The highest supported language version is 2.10.
// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
^
../../.pub-cache/hosted/pub.dartlang.org/path-1.8.0/lib/src/context.dart:1:1: Error: The specified language version is too high. The highest supported language version is 2.10.
// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
^
../../.pub-cache/hosted/pub.dartlang.org/path-1.8.0/lib/src/style.dart:1:1: Error: The specified language version is too high. The highest supported language version is 2.10.
// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
^
../../.pub-cache/hosted/pub.dartlang.org/path-1.8.0/lib/src/path_exception.dart:1:1: Error: The specified language version is too high. The highest supported language version is 2.10.
// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
^
../../.pub-cache/hosted/pub.dartlang.org/path-1.8.0/lib/src/path_map.dart:1:1: Error: The specified language version is too high. The highest supported language version is 2.10.
// Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
^
../../.pub-cache/hosted/pub.dartlang.org/path-1.8.0/lib/src/path_set.dart:1:1: Error: The specified language version is too high. The highest supported language version is 2.10.
// Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
^
[...]

I could solve this issue if I switched to beta channel but on the other hand I currently could not build this application
in the beta channel, so I have to switch between these channels.
Flutter doctor does has no issues.
I would be happy, if you could suggest any possible solution.
Regards,
William

If you see this message is means you have a version of intl which is newer than your SDK. You should be able to resolve the issue with flutter packages get after you change your SDK version.

Nevermind, thanks for your fast replay.
Regards,
William


random forest >neural networks>xgboost>gbdt?

for the binary classification problem on some structural data，I find RF's performance is amazing！

This issue is closed due to lack of activity in the last 90 days. Feel free to ping me to reopen if this is still an active issue. Thanks!


Feature/startup time

Improving startup time somewhat and being up to date with latest ensime-node ts-ification.

Closes #223


Programming Exercises: Always include user in clone url

Checklist
General

[x] I tested all changes and their related features with all corresponding user types on a test server.
[x] This is a small issue that I tested locally and was confirmed by another developer on a test server.
[x] I chose a title conforming to the naming conventions for pull requests.

Client

[x] I followed the coding and design guidelines and ensured that the layout is responsive.
[x] I added multiple integration tests (Jest) related to the features (with a high test coverage), while following the test guidelines.
[x] I documented the TypeScript code using JSDoc style.
[x] I added multiple screenshots/screencasts of my UI changes.

Changes affecting Programming Exercises

[x] I tested all changes and their related features with all corresponding user types on Test Server 1 (Atlassian Suite).
[x] I tested all changes and their related features with all corresponding user types on Test Server 2 (Jenkins and Gitlab).

Motivation and Context

Some students and lecturers have multiple git users on their machine and/or configured in their git client. This can lead to problems when the git user is not specified in the clone url for https.
Description

This PR always adds the git user name to the clone url before the host of the repository for https urls.
Steps for Testing

Prerequisites:

1 Instructor
1 Student
1 Programming Exercise

Log in to Artemis
Try to clone the repository as a student (using https and ssh)
Try to clone the solution as instructor (using https and ssh)
Make sure that the https link always includes the current user and the SSH link still has the git user.

Review Progress

Code Review

[ ] Review 1
[ ] Review 2

Manual Tests

[ ] Test 1
[ ] Test 2

Test Coverage

Class/File
Branch
Line

clone-repo-button.component.ts
80%
86%

Screenshots

HTTPS with user:

SSH without user:

Codecov Report
Base: 79.82% // Head: 75.55% // Decreases project coverage by -4.27% :warning:

Coverage data is based on head (f274c92) compared to base (0213209).
Patch coverage: 79.40% of modified lines in pull request are covered.

Additional details and impacted files
@@              Coverage Diff              @@
##             develop    #5866      +/-   ##
=============================================
- Coverage      79.82%   75.55%   -4.28%
=============================================
  Files           2035     1108     -927
  Lines          81402    43741   -37661
  Branches       12264     8269    -3995
=============================================
- Hits           64983    33047   -31936
+ Misses          9104     5577    -3527
+ Partials        7315     5117    -2198

Flag
Coverage Δ

client
75.55% <79.40%> (+0.08%)
:arrow_up:

server
?

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

Impacted Files
Coverage Δ

...assessment-warning/assessment-warning.component.ts
75.00% <ø> (ø)

...ement/tutorial-group-management-resolve.service.ts
0.00% <0.00%> (ø)

...ups-management/tutorial-groups-management.route.ts
0.00% <0.00%> (ø)

src/main/webapp/app/entities/course.model.ts
90.62% <ø> (ø)

src/main/webapp/app/entities/metis/post.model.ts
100.00% <ø> (ø)

...rc/main/webapp/app/core/user/admin-user.service.ts
44.44% <44.44%> (ø)

...ebapp/app/complaints/complaint-response.service.ts
89.65% <50.00%> (ø)

...torial-group-form/tutorial-group-form.component.ts
74.56% <55.55%> (-5.88%)
:arrow_down:

...ial-groups-registration-import-dialog.component.ts
81.65% <57.89%> (-1.94%)
:arrow_down:

.../services/tutorial-groups-configuration.service.ts
61.29% <61.29%> (ø)

... and 1039 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Has someone tested this PR with enabled gitlab access tokens ? Or does this change nothing for this case ?

Has someone tested this PR with enabled gitlab access tokens ? Or does this change nothing for this case ?

In this case it should not be changed


[SPARK-8708][MLlib] Paritition ALS ratings based on both users and products

JIRA: https://issues.apache.org/jira/browse/SPARK-8708
Previously the partitions of ratings are only based on the given products. So if the usersProducts given for prediction contains only few products or even one product, the generated ratings will be pushed into few or single partition and can't use high parallelism.
The following codes are the example reported in the JIRA. Because it asks the predictions for users on product 2. There is only one partition in the result.
>>> r1 = (1, 1, 1.0)
>>> r2 = (1, 2, 2.0)
>>> r3 = (2, 1, 2.0)
>>> r4 = (2, 2, 2.0)
>>> r5 = (3, 1, 1.0)
>>> ratings = sc.parallelize([r1, r2, r3, r4, r5], 5)
>>> users = ratings.map(itemgetter(0)).distinct()
>>> model = ALS.trainImplicit(ratings, 1, seed=10)
>>> predictions_for_2 = model.predictAll(users.map(lambda u: (u, 2)))
>>> predictions_for_2.glom().map(len).collect()
[0, 0, 3, 0, 0]

This PR uses user and product instead of only product to partition the ratings.

Merged build triggered.

Merged build started.

Test build #36125 has started for   PR 7121 at commit b534dc8.

Test build #36125 has finished for   PR 7121 at commit b534dc8.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
trait AutoCastInputTypes
case class Hex(child: Expression) extends UnaryExpression with Serializable
case class Atan2(left: Expression, right: Expression)
case class Pow(left: Expression, right: Expression)
case class Sha1(child: Expression) extends UnaryExpression with AutoCastInputTypes
case class Not(child: Expression) extends UnaryExpression with Predicate with AutoCastInputTypes
trait StringRegexExpression extends AutoCastInputTypes
trait CaseConversionExpression extends AutoCastInputTypes
trait StringComparison extends AutoCastInputTypes
case class StringLength(child: Expression) extends UnaryExpression with AutoCastInputTypes

Merged build finished. Test FAILed.

Merged build triggered.

Merged build started.

Test build #36142 has started for   PR 7121 at commit 83e56c1.

Test build #36142 has finished for   PR 7121 at commit 83e56c1.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
trait AutoCastInputTypes
case class Hex(child: Expression) extends UnaryExpression with Serializable
case class Atan2(left: Expression, right: Expression)
case class Pow(left: Expression, right: Expression)
case class Sha1(child: Expression) extends UnaryExpression with AutoCastInputTypes
case class Not(child: Expression) extends UnaryExpression with Predicate with AutoCastInputTypes
trait StringRegexExpression extends AutoCastInputTypes
trait CaseConversionExpression extends AutoCastInputTypes
trait StringComparison extends AutoCastInputTypes
case class StringLength(child: Expression) extends UnaryExpression with AutoCastInputTypes

Merged build finished. Test PASSed.

Merged build triggered.

Merged build started.

Test build #36406 has started for   PR 7121 at commit 779946d.

Test build #36406 has finished for   PR 7121 at commit 779946d.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

LGTM. Merged into master. Thanks! I think we should ask people to run benchmarks to understand the trade-offs (one extra job vs. unbalanced workload). I will mention this in the JIRA.


chore(pbft): Fix dumping error logs

Purpose

For reviewers

Related Github issues

Changes

Tests

Deployment Considerations
Version Notes
{ major | minor | patch }

NOTE: Include the version notes in the squash commit message

prnet cleaned-up successfully


iOS17 beta - Chat - Free space appears in composer when ‘Edit comment’ if message more 1 line

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open iOS App on iOS 17 beta
Login with any account
Open any chat
Tap on any message containing more than 1 line and select 'Edit comment'

Expected Result:
Only the message is shown in the edit field
Actual Result:
Free space appears in edit field after selecting ‘Edit comment’ if the message has more than 1 line.
This space disappears after tapping on the edit field.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[x] iOS 17 Beta (21A329)
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.68-17
Reproducible in staging?: Y
Reproducible in production?: Not repro on iOS 16.6.1 / Repro on production in iOS 17 beta.
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/115492554/839b5a69-235c-43f0-8cc0-ecc216141dc9
https://github.com/Expensify/App/assets/115492554/90059238-7145-4845-bcc0-c516d750bb00
Expensify/Expensify Issue URL:
Issue reported by:  Applause-Internal Team
Slack conversation: @
View all open jobs on GitHub

I'm clarifying in an internal channel whether we're prioritizing iOS 17 beta specific bugs: https://expensify.slack.com/archives/C01SKUP7QR0/p1695007921712749.
I don't have the iOS 17 beta so I'm not sure how I'd test this one.

@izarutskaya now that iOS 17 has been publicly released, can you retest and let me know if you're still able to reproduce the bug?

I'm going to close. @izarutskaya please reopen if the bug is still reproducible.

Sorry for waighting, not repro with build 1.3.75-3 on iOS 17.0.2
https://github.com/Expensify/App/assets/115492554/28c63d6c-c6dc-4f89-8c38-22bfa43942e4


Could not parse error

When running the code, the headlines of some pages are not being parsed (like 37/103 pages are actually being parced)
the error says:
"Could not parse "www.examplepage.com/feed" error is: "
(doesn't say what the error is, it just says there's an error)

When i click those links i just see some code, i tried openning the pages in different browsers but always return code.

(sorry for writing this here but idk if this is against any /r/bitcoin rules)

I think that the timeout given was simply to small (7 seconds).
I increased the timeout on my local computer to 60 seconds, and many articles could not be parsed.

sending a pull request.


Host mounts for sriov

What this PR does / why we need it: update (reduce) list of host mounts needed for SR-IOV launcher pods
Reduced host exposure of SR-IOV VMIs by removing unneeded mounts from their launcher pods

/assign @vladikr

/assign @phoracek

One unit test is failing:
------------------------------
• Failure [0.001 seconds]
Template
/root/go/src/kubevirt.io/kubevirt/pkg/virt-controller/services/template_test.go:49
  Rendering
  /root/go/src/kubevirt.io/kubevirt/pkg/virt-controller/services/template_test.go:117
    with sriov interface
    /root/go/src/kubevirt.io/kubevirt/pkg/virt-controller/services/template_test.go:1112
      should mount pci related host directories [It]
      /root/go/src/kubevirt.io/kubevirt/pkg/virt-controller/services/template_test.go:1130
      Expected
          <string>: /sys/devices/
      to equal
          <string>: /sys/bus/pci/
      /root/go/src/kubevirt.io/kubevirt/pkg/virt-controller/services/template_test.go:1146
------------------------------

/hold
I'd like to validate against the SR-IOV CI that should land in next days.

@fedepaol now that all CI pieces fell in, shouldn't I expect to see a sriov job in the list? I don't see it (at least as of the moment of writing).

now that all CI pieces fell in, shouldn't I expect to see a sriov job in the list? I don't see it (at least as of the moment of writing).

AFAIK new tests are executed automatically on new PRs only. But you can trigger it manually like this:
/test pull-kubevirt-e2e-kind-k8s-sriov-1.14.2

@booxter the sriov-ci failed can you please take a look?

@SchSeba I am on it. It seems that the pod antiaffinity is not getting passed to the pod and so more pods are running at the same time, which I suspect is the reason why this is failing.

@fedepaol nice catch thanks!

/test pull-kubevirt-e2e-kind-k8s-sriov-1.14.2

/hold cancel

@davidvossel @fabiand please help getting this in. Should be easy to review. Thanks!

/retest

/lgtm

/approve


[ANDROID] App hangs when you repeatedly open and close purchase items without purchasing

This is my Purchase service
    public async Task<InAppBillingPurchase> PurchaseAsync(string productId, ItemType itemType)
    {
        InAppBillingPurchase purchase = null;

        try
        {
            // Prevent starting a new connection if one is already in progress
            if (_isConnecting)
            {
                // Return immediately or handle this case gracefully (e.g., show a loading indicator)
                return null;
            }

            _isConnecting = true; // Mark as connecting

            // Connect to billing service if not already connected
            if (!_isBillingConnected)
            {
                await billing.ConnectAsync();
                _isBillingConnected = true;
                _isConnecting = false; // Mark as no longer connecting
            }

            if (billing == null)
                throw new Exception("Not connected to the billing service");

            purchase = await billing.PurchaseAsync(productId, itemType); //, "payload");

            //await billing.DisconnectAsync();
        }
        finally
        {
            // Disconnect only if we were connected
            if (_isBillingConnected)
            {
                await billing.DisconnectAsync();
                _isBillingConnected = false;
            }

            _isConnecting = false; // Mark as no longer connecting
        }

        return purchase;
    }

What I am finding is that on Android only, when I tap on a product to purchase (either in app or subscription) and close the dialogue without purchasing and repeatedly do this with all the products, after about 5 tries or so (the number varies), the app hangs on Android.
I am catching UnhandledException and via logging, a System.AggregateException is throwing with the following message:
System.AggregateException
A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread.

I am catching all the exceptions in the caller ViewModel and doing something with the exception (logging, console, etc) but it still seems to happen on multiple attempts.
The kicker is that my app is failing App Review because the tester sees this as a potential issue. Any ideas on how I can resolve this?
Specs:
.NET 8
Plugin.InAppBilling Version="8.0.5"
Targeting Android 34, min 31.
Testing on a physical device.

App is still hanging intermittently. I get an ApplicationNotResponding event in Sentry logging:

You must call FinalizePurchaseAsync. If you do not call FinalizePurchaseAsync, Android will refund you if you do not confirm within 3 days of subscription.

Yea I already do the finalize, it’s a separate service call (if Android, if purchased).
But my issue is that I show the available products (in app and subscription). When you essentially click to Buy, a dialog is shown, I tap anywhere outside that, the dialog closes, I Disconnect the connection.
Now the issue is when I do this same exact sequence a few times, the app hangs. It’s intermittent, and there is no specific number of attempts after which it hangs.

public async Task PurchaseAsync(string productId, ItemType itemType)
{
InAppBillingPurchase purchase = null;
var billing = CrossInAppBilling.Current;

try
{

	// connect to the app store api
	var connected = await billing.ConnectAsync();
	if (!connected)
	{

		await DisplayAlert("No InAppBilling", "Conncet Error");
		return;
	}

	purchase = await billing.PurchaseAsync(productId, itemType); //, "payload");

	if (purchase != null)
	{
		if (purchase.State == PurchaseState.Purchased || purchase.State == PurchaseState.Restored)
		{
				try
                {
                    var ack = await billing.FinalizePurchaseAsync(purchase.TransactionIdentifier);
                }
                catch (Exception ex)
                {
                }
		}
	}

}
finally
{
	await billing.DisconnectAsync();
}

return purchase;

}

Yea our code is indentical. On iOS everything works fine. Can you attempt the multiple purchase attempts - don’t purchase - close dialog - reattempt purchase. That’s the use case that’s hanging.

Show me code.... "MainActivity.cs" Android

[Activity(Theme =<EMAIL_ADDRESS>MainLauncher = true,
    LaunchMode = LaunchMode.SingleTop,
    ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode |
                           ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
public class MainActivity : MauiAppCompatActivity
{
    public static Context context;

    protected override void OnCreate(Bundle savedInstanceState)
    {
        context = this;
        base.OnCreate(savedInstanceState);

        //to force portrait only mode
        RequestedOrientation = ScreenOrientation.Portrait;
    }
}

haven't change this much, only added 'LaunchMode = LaunchMode.SingleTop'

"System.AggregateException
A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread."
https://chatgpt.com/
If you ask chatgpt about this error message, you'll get an answer. It looks like a thread problem.

Yea, I've already tried that and attempted all the solutions it has provided.

Let's try adding two catches first.
catch (InAppBillingPurchaseException purchaseEx)
{
var message = string.Empty;
switch (purchaseEx.PurchaseError)
{
case PurchaseError.AppStoreUnavailable:
message = "Currently the app store seems to be unavailble. Try again later.";
break;
case PurchaseError.BillingUnavailable:
message = "Billing seems to be unavailable, please try again later.";
break;
case PurchaseError.PaymentInvalid:
message = "Payment seems to be invalid, please try again.";
break;
case PurchaseError.PaymentNotAllowed:
message = "Payment does not seem to be enabled/allowed, please try again.";
break;
case PurchaseError.UserCancelled:
//don't do anything
break;
default:
message = "Something has gone wrong, please try again.";
break;
}
if (string.IsNullOrWhiteSpace(message))
    return;

await DisplayAlert(purchaseEx.PurchaseError.ToString(), message);

}
catch (Exception ex)
{
await DisplayAlert("Uh Oh!", $"Looks like something has gone wrong, please try again. Code: {ex.Message}");
}

this is my ViewModel code
    [RelayCommand]
    private async Task RestorePurchases()
    {

        if (!isProcessing)
        {

            try
            {
                if (!HaveInternetConnection())
                {
                    PopupMessage = Constants.MsgNotConnectedToInternet;
                    IsOpenPopup = true;
                    return;
                }

                isProcessing = true;
                BusyPurchasesIndicator = true;
                //await inAppBillingService.RestorePurchasesAsync();
                var purchases = await inAppBillingService.GetPurchasesAsync();

                // Get the latest purchase based on the purchase date
                var latestPurchase = purchases
                    .OrderByDescending(p =>
                        p.TransactionDateUtc) // Assuming TransactionDateUtc is the property representing the date
                    .FirstOrDefault();

                if (latestPurchase == null)
                {
                    isProcessing = false;
                    BusyPurchasesIndicator = false;

                    PopupMessage = "No prior purchases were found to restore";
                    IsOpenPopup = true;
                    return;
                }

                switch (latestPurchase.ProductId)
                {
                    case Constants.DC_MONTHLY_SUB:
                        if (latestPurchase.TransactionDateUtc < DateTime.Now.AddMonths(-1))
                        {
                            //the expression evaluates to true if the date of the purchase is more than one month before the current date and time
                            PopupMessage =
                                $"Your last purchase of the Monthly Subscription on {latestPurchase.TransactionDateUtc:MMMM d, yyyy} has ended. Please repurchase if you would like to resubscribe.";
                            IsOpenPopup = true;
                            return;
                        }

                        var monthExpiry = latestPurchase.TransactionDateUtc.AddMonths(1);
                        PopupMessage =
                            $"Your monthly subscription that expires on {monthExpiry:MMMM d, yyyy} has been restored.";
                        IsOpenPopup = true;

                        break;
                    case Constants.DC_YEARLY_SUB:
                        if (latestPurchase.TransactionDateUtc < DateTime.Now.AddYears(-1))
                        {
                            //the expression evaluates to true if the date of the purchase is more than one year before the current date and time
                            PopupMessage =
                                $"Your last purchase of the Yearly Subscription on {latestPurchase.TransactionDateUtc:MMMM d, yyyy} has ended. Please repurchase if you would like to resubscribe.";
                            IsOpenPopup = true;
                            return;
                        }

                        var yearExpiry = latestPurchase.TransactionDateUtc.AddYears(1);
                        PopupMessage =
                            $"Your monthly subscription that expires on {yearExpiry:MMMM d, yyyy} has been restored.";
                        IsOpenPopup = true;

                        break;
                    case Constants.DC_LIFETIME_PURCHASE:
                        PopupMessage = "Your lifetime purchase has been restored.";
                        IsOpenPopup = true;

                        break;
                }

                // Always start the listener if the user has a subscription
                // moved this here because all the subscribed variables will be set automatically by the listener
                subscriptionStatusService.StartListeningForSubscriptionChanges();

                await datastore.SavePurchaseSettings(new UserSettings()
                {
                    IsSubscribed = true,
                    ProductId = latestPurchase.ProductId,
                    PurchaseId = latestPurchase.Id,
                    TransactionDate = latestPurchase.TransactionDateUtc
                });

                cancelAfterClose = true;
                BusyPurchasesIndicator = false;
            }
            catch (InAppBillingPurchaseException purchaseEx)
            {
                isProcessing = false;
                BusyPurchasesIndicator = false;
                HandleInAppBillingPurchaseException(purchaseEx);
                if (PopupMessage != "") IsOpenPopup = true;
            }
            catch (Exception ex)
            {
                isProcessing = false;
                BusyPurchasesIndicator = false;

                // Log or handle the exception as needed
                logger.LogError(ex);
                PopupMessage = ex.Message;
                IsOpenPopup = true;
            }
            finally
            {
                isProcessing = false;
                BusyPurchasesIndicator = false;
            }
        }
    }

I may have solved this, maybe a workaround - but it works. I surrounded every
if (billing.IsConnected)
...


merge_index breaks on gs:// downloads

Environment

OS: [Ubuntu 20.04]

To reproduce
Steps to reproduce the behavior:

Follow this tutorial (https://docs.mosaicml.com/projects/streaming/en/stable/examples/multiprocess_dataset_conversion.html#2.-Group-the-raw-data-and-convert-to-MDS-format-in-parallel)
Replace the local out directory out_root with any gcs bucket (gs//:your_bucket/)
The code will break with the error message Failed to download index.json: gs//your_bucket/0/index.json to /tmp/tmpid/0/index.json

Expected behavior
It should not error
Additional context
Looks like the issue is in the join_char being fixed to '//' even though it should be '://'. This is probably a typo. (see https://github.com/mosaicml/streaming/blob/aead15a78f454835c911fae8ab614afad003bdb6/streaming/base/util.py#L404-L420)

I just got the same exact error:
2024-01-12 12:29:04.847 CET
  File "/usr/local/src/kfp/components/./main.py", line 51, in make_records
2024-01-12 12:29:04.847 CET
    writer.write_data_to_record(data, "test")
2024-01-12 12:29:04.847 CET
  File "/usr/local/src/kfp/components/writers.py", line 159, in write_data_to_record
2024-01-12 12:29:04.847 CET
    merge_index(split_path, keep_local=True)
2024-01-12 12:29:04.847 CET
  File "/usr/local/lib/python3.11/site-packages/streaming/base/util.py", line 252, in merge_index
2024-01-12 12:29:04.847 CET
    return _merge_index_from_root(*args, **kwargs)
2024-01-12 12:29:04.847 CET
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-01-12 12:29:04.847 CET
  File "/usr/local/lib/python3.11/site-packages/streaming/base/util.py", line 423, in _merge_index_from_root
2024-01-12 12:29:04.847 CET
    _merge_index_from_list(remote_index_files,
2024-01-12 12:29:04.847 CET
  File "/usr/local/lib/python3.11/site-packages/streaming/base/util.py", line 321, in _merge_index_from_list
2024-01-12 12:29:04.847 CET
    raise RuntimeError(f'Failed to download index.json: {src} to {dest}') from ex
2024-01-12 12:29:04.848 CET
RuntimeError: Failed to download index.json: gs//bucket-name/fashion-ai/models/20240108-base-clip-336-mds/records/test/chunk_0/index.json to /tmp/tmptgglcihd/gs//bucket-name/fashion-ai/models/20240108-base-clip-336-mds/records/test/chunk_0/index.json`

@bryanzwu-diffuse did you fix the typo to :// and worked?

I can confirm that fixing the typo :// solves the issue

Yes--fixing the typo solves the issue, should be a one line change.

@miguelalba96 and @bryanzwu-diffuse wondering, why you guys were using prefixes as gs// instead of gs://. Is that what GCS recommends?

Nope--it's what the mosaic library used when recreating the gcs path that originally included gs://--I think it's an issue with parsing and rebuilding the paths.

Closing this issue since it is resolved.


fixed table format

Docs Build status updates of commit ab3c456:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/azure-cli-extensions-list.md
:bulb:Suggestion
View
Details

docs-ref-conceptual/azure-cli-extensions-list.md

Line 45, Column 3: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? If so, add &preserve-view=true to the URL: https://docs.microsoft.com/python/api/overview/azure/ml/?view=azure-ml-py

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 468f9cf:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/azure-cli-extensions-list.md
:bulb:Suggestion
View
Details

docs-ref-conceptual/azure-cli-extensions-list.md

Line 38, Column 3: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? If so, add &preserve-view=true to the URL: https://docs.microsoft.com/python/api/overview/azure/ml/?view=azure-ml-py

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 54acb3f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/azure-cli-extensions-list.md
:bulb:Suggestion
View
Details

docs-ref-conceptual/azure-cli-extensions-list.md

Line 38, Column 3: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? If so, add &preserve-view=true to the URL: https://docs.microsoft.com/python/api/overview/azure/ml/?view=azure-ml-py

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 321aa88:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/azure-cli-extensions-list.md
:bulb:Suggestion
View
Details

docs-ref-conceptual/azure-cli-extensions-list.md

Line 38, Column 3: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? If so, add &preserve-view=true to the URL: https://docs.microsoft.com/python/api/overview/azure/ml/?view=azure-ml-py

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@daxianji007 , This article is now rolled back to the historical version from PR https://github.com/MicrosoftDocs/azure-docs-cli/pull/2491 , dated March 24th that contained a link fix.  This extension list is the same list found in the February 17th azclibot autogen, https://github.com/dbradish-microsoft/azure-docs-cli/commit/e39b05721cd82053e66dd4f36cd4482392566b75#diff-9cf7ba85b581d23d790f7bbd831c4d33625b1d31556b1ab6feac874ac9f8c7de.


Add auto linting with eslint

addressed in https://github.com/smartcontractkit/chainlink-hardhat-box/pull/6.


Genji deals too much damage during ultimate

Created by: MaxwellJung
Because genji's global damage is increased, his ultimate damage is also increased.

mentioned in merge request ow1_emulator_backup!174

moved from ow1_emulator_backup#711

mentioned in merge request ow1_emulator_backup!144

mentioned in issue ow1_emulator_backup#710


make error: Could NOT find Threads (missing: Threads_FOUND)

CMake Error at /usr/local/share/cmake-3.12/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find Threads (missing: Threads_FOUND)

Could you please provide some more context? Which OS are you building this on, what commands are you using etc.?

centos7
cat CMakeError.log
CMakeFiles/cmTC_25b5a.dir/src.c.o: In function `main':
src.c:(.text+0x2d): undefined reference to `pthread_create'
src.c:(.text+0x39): undefined reference to `pthread_detach'
src.c:(.text+0x4a): undefined reference to `pthread_join'
src.c:(.text+0x5e): undefined reference to `pthread_atfork'
collect2: error: ld returned 1 exit status
gmake[2]: *** [cmTC_25b5a] Error 1
gmake[2]: Leaving directory `/postgres_scanner/build/release/CMakeFiles/CMakeTmp'
gmake[1]: *** [cmTC_25b5a/fast] Error 2
gmake[1]: Leaving directory `/postgres_scanner/build/release/CMakeFiles/CMakeTmp'

Source file was:
#include <pthread.h>

void* test_func(void* data)
{
  return data;
}

int main(void)
{
  pthread_t thread;
  pthread_create(&thread, NULL, test_func, NULL);
  pthread_detach(thread);
  pthread_join(thread, NULL);
  pthread_atfork(NULL, NULL, NULL);
  pthread_exit(NULL);

  return 0;
}

This file is not included in the project - what does this have to do with the Postgres scanner?

use docker solved

use docker solved

use docker solved


Relational BBS DB

I've just added https://github.com/cloudfoundry-incubator/diego-dev-notes/blob/master/proposals/relational-bbs-db.md as an initial high-level proposal for having the BBS support and then switch over to a relational datastore. Please look through it and comment on it here! I've also pointed out a few aspects of operating the CF MySQL release that I'm not clear on, and on which we might want to consult the Core Services team.

We'll also want to have metrics coming from the datastore to assess its health and stability, as we do for etcd today. TODO: add a section about that.

the initial schema generation and ongoing modifications would need to be addressed long term.  in CC they use that migration tool for the ccmdb to change the schema, add indices etc.   how are we planning to do that in GO (using our existing migration type of mechanism)?  or have a set of scripts for each DB flavour?   are we going to allow a plugin model to support people using their own DB (ie OracleDB, DB2, etc) if they want?  If we allow that we would need some sort mechanism to deploy the schema to the target DB

@andrew-edgar: I would assume we can build on the existing migration mechanism in the BBS. Is there some particular reason that wouldn't work?
For the DB dialects, some golang packages such as https://github.com/go-gorp/gorp apparently support certain dialects automatically. https://github.com/golang/go/wiki/SQLDrivers mentions a list of various known drivers that conform to the database/sql/driver interfaces, but it looks like individual drivers have to be compiled into the codebase. I don't think it's unreasonable to start first with MySQL compatibility, especially since there's an active OSS BOSH release for MySQL, and add other drivers later as needed. It's also worth keeping in mind that it's infeasible to run CI against all DB backends (even CC struggles with this across only MySQL and postgres).

@menicosia: we will likely have some questions for you and your team in the coming days. Also, please tell us how we're idiots.

Relational data stores fully supported in Diego v0.1480.0.


add views for slot readers and writers to slot filters

When viewing variable/slot references (e.g., using Cmd-n), it would be nice to see methods that read the variable and those that write the variable. Currently both readers and writers are displayed.

https://user-images.githubusercontent.com/249595/205109079-d4da094d-9ce2-4af1-934d-25a2225604f2.mov


Add a check to the PDOAdapter to make sure a statement is returned instead of false

Example problematic code:
https://github.com/cakephp/phinx/blob/master/src/Phinx/Db/Adapter/PdoAdapter.php#L186
I had a SQL operation that was failing because the sqlite adapter was inserting too many rows and failing.  The only error returned was the completely unhelpful "cannot call operation on boolean", because the prepare statement failed and was returning false.  The fix.
$stmt = $this->getConnection()->prepare($sql);
if (!$stmt) {
    $pdo = $this->getConnection();
     throw new \Exception($pdo->errorCode() . implode($pdo->errorInfo()));
}

I'd do a pull request if I knew what sort of exceptions were wanted for this.

I think it would better to use PDO::ERRMODE_EXCEPTION option instead. The SQLiteAdapter seems to be not using the option:
https://github.com/cakephp/phinx/blob/d84a6c7f4e6919614023b8d17a01992a125a3aae/src/Phinx/Db/Adapter/SQLiteAdapter.php#L79
https://github.com/cakephp/phinx/blob/d84a6c7f4e6919614023b8d17a01992a125a3aae/src/Phinx/Db/Adapter/MysqlAdapter.php#L113
https://github.com/cakephp/phinx/blob/d84a6c7f4e6919614023b8d17a01992a125a3aae/src/Phinx/Db/Adapter/PostgresAdapter.php#L70

Not directly related, but this issue will be solved by #990, as it contains the same fix as I suggested.


NoScript not considered

Firefox with NoScript - https://addons.mozilla.org/en-GB/firefox/addon/noscript/
Go to site - https://labs.play-with-docker.com
Stuff like the [Start]-button doesn't seem to work
Start enabling domains, one after the other, refreshing inbetween
Popup appears, domain docker.com
It's blank
Popup is of the type that doesn't have the NoScript widget in it, so I can't enable it
Therefore have to copypaste the URL and open it in a new tab

Hi, firefox with noscript is not supported. We're happy to accept contributions though.

@marcosnils How about a -tag, listing the domains that have to be enabled? =)

@Jonta That screen might not appear if you are already logged into your docker.com account. When you get a popup window that NoScript is blocking, and there is no address bar/NoScript Widget, you can right-click the page and access NoScript options from the context menu.
However, this has nothing to do this with project, so please close this issue.

Only now do I notice that GitHub doesn't render my previous message the way I wanted

How about a <noscript>-tag, listing the domains that have to be enabled? =)

I don't know whether @AriESQ would've written something else, if I'd gotten that to render properly the first time. =)


[Improve] Add e2e identifier for create and edit actions button

What changes were proposed in this pull request
Issue Number: close #xxx

Brief change log

Verifying this change

This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

Does this pull request potentially affect one of the following parts

Dependencies (does it add or upgrade a dependency): (yes / no)

flink-home, extlink, alarm etc components ' submit and cancel buttons look like not visible

Hi @wolfboys any suggestions for me?

Hi @wolfboys any suggestions for me?

LGTM

Thanks for your contribution. This PR has a lot of conflicts. Other PRs have already made most of the improvements. It would be best for you to submit a new PR to resolve this issue.


 It's three times the size of a regular keyboard focus rectangle, and also appears when I don't touch my keyboard at all.
To Reproduce
Steps to reproduce the behavior:

Click on a link and keep the mouse button pressed.

Expected behavior
No outline.
Screenshots
Should be visible everywhere, has been confirmed elsewhere for Firefox and Chrome.
Desktop (please complete the following information):

OS: Windows 10
Browser: Firefox
Version: current stable (was it 92? the number changes every other week)

Additional context
If that fat outline is supposed to be a keyboard focus rectangle, then it should only appear when I'm using my keyboard to navigate. Microsoft should be very well aware of what a focus rectangle is. It should not be there when I'm using a pointer input device.
This user style can be used to get rid of most of the outlines. Some .card elements have it still though and I failed to analyse where they come from.
.has-default-focus .is-focused,
.has-default-focus:focus:not(.visually-hidden):not(.has-inverted-focus):not(:active),
.has-default-focus :focus:not(.visually-hidden):not(.has-inverted-focus):not(:active),
.lang-toggle-container .checkbox-toggle-wrapper input[type="checkbox"]:focus + label.switch,
.this:focus
{
    outline: none;
}

@EdisonDa Can you take a look at this issue?

@ygoe thank you for your reporting. Could you please give me the URL where we can reproduce this issue and the screenshot? It will help us to investigate and fix the issue.

@ygoe thank you for your quick turnaround. @ShevaDas looks this is the latest change, could you please confirm it's by design?

Here's a similar issue: https://www.microsoft.com/de-de/p/microsoft-surface-dock/8qrh2npz0s0p Click on a tab ("Übersicht", "Technische Spezifikationen", "Kritiken") and you get a solid 2px black outline. It even stays there indefinitely. Seems Microsoft has found pleasure in emphasising keyboard focus.

@ygoe thanks for the report! I've confirmed that the dashed line is how it should look, but it should only appear with keyboard navigation. I've opened an issue with our engineering team and will follow up here when it's fixed.
<internal tracking: https://ceapex.visualstudio.com/Engineering/_workitems/edit/52882>

Hi @ygoe, thanks for your patience while we investigated this further. After discussing with our design partners, we've determined this is the approved Microsoft styling guidance for links and what we'll continue to use on our site. I'm going to close this out—please feel free to open a new issue if you have further feedback on the site.

Alright. I don't like ugly links and design concept misuse, so I'll extend my user style to other sites and continue to use and advertise it to fix this issue on the client side. Thanks for your time, now I'll be using mine.


non functional links shiny seagrass analysis

https://shiny.tbep.org/seagrass-analysis/ this link is throwing me error messages; links are included in various locations

The Shiny server was missing an R package dependency, fixed it here: 98be3620b09e334381e0460412703d3ae3b6e2ae
Building the image now, should be up soon.

Should be working now.


[WIP] mark required named parameters

Checklist

[ ] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[ ] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[ ] I've read the Contribution Guidelines
[ ] I've updated the documentation if necessary.

Motivation and Context
fastlane uses Ruby 2.0's named parameters, but all named parameters in Ruby 2.0 must have a default value. Some parameters are not optional, and we must assert that they have values. Using this module, we can do that via the following pattern:
If the module RequiredParamters is mixed into your class, any method can be annotated with parameter requirements like this:
def some_method(foo: nil, bar: nil, baz: nil) requires_params(:foo, :bar)
  .
  .
  .
end

when some_method() is called, foo and bar must be none-nil

I love this idea.

@taquitos I briefly looked into giving special rubocop rules for this, but I am not sure that's a great idea.
Would it be better if the requires_params was just the first line of the method definition?

Since this has been open for about half a year now, I'm gonna go ahead and close this for now. Feel free to re-open 👍


Refactor hasStraight() method

This is an attempt to make ProbabilityCalculator.hasStraight() more readable.
My line-of-thinking took a pivot between the first three commits and the fourth commit:

first three commits: check for straights with aces low and then separately for aces high, if needed; abstract out helper methods as needed
fourth commit: instead of doing checking for straights in two different orderings, just place Aces on both ends of a sorted list!

Overall, I think the method is more readable, but could probably stand to have more private methods abstracted out of it.  Good enough for now; may revisit this after I have broken up ProbabilityCalculator into smaller classes (a future pull request).

To elaborate with an example, let's say we have a collection of cards with the following ranks:

3 2 A K 4 J Q T

First three commits
The strategy was to sort the cards in two different ways.

With aces low:

A 2 3 4 T J Q K

With aces high:

2 3 4 T J Q K A

Fourth commit
The strategy was altered to create one sorted list, where each ace would appear twice -- once at the beginning and once at the end:

A 2 3 4 T J Q K A


Pausing Tests For Debugging

Any suggestions for how to pause a test to debug live? Maybe via Visual Studio Code?

You can put a sleep in the test using something like
const sleep = (milliseconds) => {
  return new Promise(resolve => setTimeout(resolve, milliseconds))
}


Add flag to force FREB collection

Given that the amount of generated FREBS is limited, sometimes we disable Failed Request Tracing as soon as the issue we are trying to analyze happens in order for it to not be overwritten.
In those scenarios, when we run LogCatcher since they are disabled for the selected websites they are not automatically collected, and have to be zipped and collected separately.
For those scenarios it would be useful to have a flag to force FREB collection regardless of it being enabled or not for any given site.
As far as can see it could have two approaches:

-ForceFrebCollection $true and ignore whether the flag is set or not at the site level and try to collect
-FrebCollectionSiteIds 2,3 and specify for which sites we want to ignore the flag, as for customers with large installations there could be  a large overhead in trying to collect for all of them.

closed as solved by #23


"The x87 register stack "

Is this a typo:
The x87 register stack is unused. It may be used by the callee, but consider it volatile across function calls. All floating point operations are done using the 16 XMM registers.
https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention?view=msvc-170#:~:text=The x64 Application Binary Interface (ABI) uses a,arguments and the registers used for those arguments.
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: a87b11e0-0214-175b-0926-0f8a4653e444
Version Independent ID: 43e8bf4a-9a0d-ea28-d432-ead828604d5e
Content: x64 calling convention
Content Source: docs/build/x64-calling-convention.md
Product: visual-cpp
Technology: cpp-tools
GitHub Login: @corob-msft
Microsoft Alias: corob

@Tanya-Solyanik
Can you clarify your question? I'm not sure which word you're referring to. "Callee" is correct here. It means the called function is free to use the x87 stack for floating-point operations, but any function the callee calls (which make the "callee" the "caller") may in turn invalidate that stack.

Thank you!


Assertions: Add assertion macros that print their values

Fixes https://github.com/STEllAR-GROUP/hpx/issues/3816
Proposed Changes
using evaluate_assert https://github.com/STEllAR-GROUP/hpx/blob/master/libs/assertion/include/hpx/assertion/evaluate_assert.hpp.
Any background context you want to provide?
I think ticket has sufficient information.

Thanks for starting this! A natural next step (in this PR) would be to then actually check for uses of HPX_ASSERT where this could be used instead, and do the replacement.

ack, ok.

@tapaswenipathak can we help in any way here?


Hide the 'Unprioritized' section of a Board view column when all are empty

What would you like to be added?
When all 'Unprioritized' sections are empty in a Board view, I would like for these sections to be hidden.
I understand you could need them when dragging cards, it makes sense that when you start dragging a card they show up again. But if they are still empty when the dragging it stopped, not showing them will take up less space in the view.
This could be a setting to turn on or off in the Board settings modal.
Why is this needed?
I create all project notes with a template that sets a default priority weight field (for now, I'm looking forward to #451 because I solely create this priority field for Projects).
This means my notes are never Unprioritized, leaving a block of empty space at the bottom of every Board column.
I understand the need for it to be there when you drag notes (because then you can drag them into Unprioritized). But I'd find the Board view a lot cleaner when all those empty sections are not there. Thanks!
Related to #68 but not exactly the same.

Resolved as the prioritize are deprecated by new sorting options, PR #584.


Scrolling is choppy on preview pane, works well in source pane

If I scroll the preview pane using a touchpad, nothing happens until I end the scrolling motion (i.e. remove my fingers from the touchpad). Then the scroll 'catches up' and jumps to the correct end place in the document). Scrolling in the source pane works perfectly though.
I'm using a Dell xps 13 with Windows 10

This doesn't happen on my system. Maybe it's a touchpad driver issue?

I just tried with a mouse as well, and scrolling with the scroll wheel is similar. I've attached an .mp4 of what I see -- perhaps it's intended?
MARKDOWN EDIT - proposal.md 2016_09_03 4_07_49 PM.zip

That's the normal scrolling behavior. MDE synchronizes scrolling at the block level to maintain accurate alignment. On large paragraphs as in your example that will cause a bit of jumping. It will also jump if you have large images.


Feedback?

Hi there!
Please feel free to leave some feedback here e.g. in the comments about this project such as:

what do you think of the concepts and ideas?
do plan on using HULL or are actively using it?
anything particular you would like to see added or improved?

Thanks, any feedback is highly appreciated and helps us in improving the project.

Hi! I found your HULL project and played with it over the weekend. 🙂 It´s awesome! On Friday I have an idea to create some smart and useful Helm templates utilizing all advanced techniques possible. I spent a lot of time searching over GitHub, Gitlab, and whole the Internet, but didn't find anything - just theory and “do it yourself” guides... Because I'm very busy to star with some development, I give it a try and try google again - and found your HULL! 🙏 Looks remarkably good until now - still need some more tests... Also have some points for improvements - I try to open PR or Issue later... 😉

Hello, I've started playing with Hull, and I will probably add more comments later on, when I am experienced enough. So far, it's been the first Helm Common Library chart that I've seen adding so much new features to Helm. This is great as it allows to do so much more, but also requires some time to adapt.
I am currently using Hull to reimplement a Chart I've done differently. I've noticed there was no route object in Hull. If I want to use a Route, what should I do :

Fork Hull, add a new Route object to the Hull and use this in my chart ? (and maybe to a PR here)
Add a second library, which would depend on Hull, and adding the bits (such as a Route object) I need for my other charts in there ?
I figure I could also put the Route directly in my application chart, and use the hull.config.general.data to define the custom variables needed in the route

Hi @JuryA and @matthias4217,
sincere apologies for replying so quite late to your comments!
After having opened this issue a year ago I did not check it as often anymore and the notification about your comments unfortunately slipped by me (Covid taking some credit for that 👎). But be assured that I am incredibly happy that you like the project and care about making it better!
@JuryA
Please let me know your concrete thoughts on what may be improved and I'll happily look into it or accept at a PR. It sounds very intruiguing to have your input included!
@matthias4217
I totally understand that it takes some time to adapt because the library has grown really in what it can do. The documentation task for that is challenging for me having all the thoughts and functionalities channeled into something that someone get into, follow and understand how to use it. Have you checked the tutorial, my hope was it may lower the barrier of entry somewhat? But first let me answer your question, I think all three of them work with different pros and cons:

a new "CRD object type" can be added to HULL with some implementation effort, I only did this for Prometheus ServiceMonitor CRDs because they are incredibly popular and deserved an easy configuration and JSON schema validation. This is however the approach requiring most work which pays off if many people benefit from it, since I am not that experienced with OpenShift I can judge if it is worth to add Route as a standalone object to HULL? And sure you can fork it but I am totally into making it work in one place if possible.
as probably most advanced option you may add functionality to HULL based charts in form of additional library charts to add HULL-based specification on top of every HULL based chart. For my company I have done this and tried to make a clear cut seperation between generic Kubernetes functionalities in HULL (that hopefully everyone can benefit from) and additional features more specific to our needs (but also with a lot of genericness). If you like to please checkout our [hull-vidispine-addon](https://github.com/vidispine/hull-vidispine-addon) which is exactly this, adding the functionalites to do API calls to custom APIs before and after installation of an applications via HULL. Imagine you need to make some API calls to externals services before an application can be installed and used and/or making some initialization calls to your application after it has started. Deliberately I don't want to publish this as open source because I need to make it work for our use cases specifically but feel free to use it as wanted. Downside to this approach is that in order to apply the additional library values on top of your base HULL-chart configuration you need to merge it during your chart creation workflow with the HULL-chart values.yaml. We accomplish this using jq in the Helm Chart build workflows and the end result is pretty cool, adding domain specific functions on top of your chart.
adding further "non-HULL" templates to your chart and add configuration for it outside of the hull key in values.yaml is of course still working but so far I have found that all problems that arose I was able to solve within HULL (sometimes requiring implementing additional features) and this adds the most benefit to the project I believe

Having said this, there is a fourth option which is in my opinion the fastest and maybe a sufficient solution for you: you can use the customresource object type in HULL. This allows you to create any CR object (such as the Route) with HULL, The customresource object type requires you to specify kind and apiVersion of your CRD and provide the contents in the usual spec field. The CRD object to have CR instances accepted can also be deployed as usual in the crd folder of your HULL based chart or it may already exist in your cluster and you don't need to create it (giving that Route is an OpenShift based CRD I am confident every OpenShift cluster will already have it). Only downside to this is that there is no HULL-based JSON schema validation or other treatment of your CR instance configuration but using ´customresource you can add any arbitrary CRD instance to your configuration.
Using HULL enables usecases pretty much missing from Helm (and in my opinion not sufficiently replaced by other tools such as an kustomize post-script task). We use as the basis for the usual application-wrapping charts, but meanwhile also often as a "swiss-knife" like tool to create additional project-related K8S objects for our many customer project deployments. Since you can add everything at configuration time you can virtually have a blank canvas HULL chart and in your CD workflow deploy the objects. Definitive pro is you can embedd all your configuration into Helm chart config and don't need to work "out-of-band" by scripting additional kubectl commands etc.
Again, finding your comments made my day so thanks for this 👍 If you have any other thoughts, concerns or if I was babbling too much and still need help just let me know!

Hi! I'm in rush now, but first, thank you for your reply! 😉
... I want to quickly reply to your question:

if it is worth adding Route as a standalone object to HULL?

My answer is: It depends... :) Openshift is smart enough to simply take standard K8s Ingress resource and then (and ONLY then) if IngressClass is NOT defined, automatically generate Route resources from them. But ... there are a number of caveats that concern if you use for example rewrites or any other fancy and not standardized features. If you need such things to use, then you will definitely need to use Route objects directly. The question is if such things like Rewrite are used so often because Rewrites should be IMHO used just in corner cases when you don't have other options.

adding further "non-HULL" templates to your chart and adding configuration for it outside of the hull key in values.yaml is of course still working but so far I have found that all problems that arose I was able to solve within HULL (sometimes requiring implementing additional features) and this adds the most benefit to the project I believe

I definitely agree that everything can be rewritten to pure HULL format and level of complexity (means for humans) but I found some special cases which will be good to discuss. One such idea is to be able to take rendered K8s Manifest and instead send it directly into K8s, just apply for example merge with some other preprepared Manifest. I have some proof of concept to test if it's somehow useful or not.

From my point of view if you want to implement Route object into HULL you should also consider adding also Traefik resources (Middleware, etc.) and de facto any other Ingress Controllers and their respective objects. All of them have the same behavior and are automatically handled - again - if you will use any non-standardized stuff, you must also create appropriate objects manually. So I don't see any difference between Openshift Routes and Ingresses with various IngressClasses.

That would be my fear, adding one of the CRD bunch in HULL as an object type may lead to adding (maybe countless) others ... I realize the door is opened with the servicemonitor but adding more object types from CRDs will also increase maintenance effort for the whole thing. Each object type has to be handled in various places (initialization, tests, etc.) so I would tend to keep the number as low as required. If there is a native K8S object type missing still which is required for someones configuration of course that must be added.
Unless there is a strong benefit for a particular CRD from:

having the JSON schema of the CRD implemented in HULL (as with servicemonitor)
having non-basic HULL features applied to the CRD such as use of dicts instead of arrays, ... (the hull.base keys of enabled, staticName, annotations and labels are still available for every HULL object including customresource)

I still think the customresource object type is a good flexible solution to create any CR you'd like in your chart.
For example, the Route from here:
apiVersion: route.openshift.io/v1
kind: Route
metadata:
  name: hello-openshift
spec:
  host: hello-openshift-hello-openshift.<Ingress_Domain>
  port:
    targetPort: 8080
  to:
    kind: Service
    name: hello-openshift

looks almost the same when expressed as a HULL customresource:
hull:
  objects:
    customresource:
      hello-openshift:
        apiVersion: route.openshift.io/v1
        kind: Route
        spec:
          host: hello-openshift-hello-openshift.<Ingress_Domain>
          port:
            targetPort: 8080
          to:
            kind: Service
            name: hello-openshift

Using transformations on the customresource is also possible, in above example you would  probably make that service name dynamic, so you could use instead:
            name: _HT^hello-openshift

and get a name like myrelease-mychart-hello-openshift in the rendered result depending on chart and release name and name override settings.
To give you a different (non-complete) real life example, this is a HULL chart where we create a cert-manager Certificate CR along the lines of:
hull:
  objects:
    ...
    customresource:
      cert-manager-opensearch-certificate:
        staticName: true
        apiVersion: cert-manager.io/v1
        kind: Certificate
        spec:
          isCA: false
          duration: 2160h # 90d
          renewBefore: 360h # 15d
          commonName: "{{ lookup('prepared_config', 'kubernetesPublicEndpoint') }}"
          ...

If you really need that schema validation, some thoughts I have:

try add the JSON schemas for the CRDs your chart sports (in addition to the values.schema.json of HULL) to the parent chart values.yaml.json  in a structure which integrates with the HULL JSON schemas customresource object definition.
or directly add it to HULLs JSON schema of customresource so that given the kind matches Route for a customresource the particular CRDs schema applies - however I am not 100% certain this can be done with the JSON schema. However, this appears a more lightweight solution than adding more full-blown object types for CRD to the mix in terms of maintainability.

Either way you might even get input validation of your CR done in HULL but I haven't tested both possibilities and the effort may outweigh the benefits?
Thanks for the explanation of the Route purpose in OpenShift, I think I see what it is used for now!

I found some special cases which will be good to discuss. One such idea is to be able to take rendered K8s Manifest and instead send it directly into K8s, just apply for example merge with some other preprepared Manifest. I have some proof of concept to test if it's somehow useful or not.

Open for discussion anytime ;)

Hi @matthias4217,

No problem with the delays.

Great :)

I've currently made a Hull fork with the implementation of a rough Route object. It's far from being perfect, but enough to
work on my proof-of-concept chart using Hull.

If you publicly share it I can give it a look?

I hadn't thought of using customresource and I'll look into it next (thanks for sharing an example just now !).

Think it can help you achieve what you want in a reasonable way. And if you need more of e.g. CRs of OpenShift CRDs you can just add them the same way as customresource objects without any further implementation. The pros and cons I tried to list above.

Anyway, implementing the route as a Hull object at least made me dig into the code further and learn better how Hull works.

Awesome. I know it can do with some more commenting (which is not handled nicely in Go Templating unfortunately so not actually fun). At least some key parts would be better understandable with comments for sure. Within my company our whole deployment strategy is by now centered around using HULL charts so it will for sure not disappear out of a sudden and over time more colleagues will be brought on board. And if there is more (external) interest in keeping the project going and expanding I will certainly try to invest in more code commenting and it isn't even a huge code base to document in my opinion.

The tutorial has indeed been of help, and I've gotten used of using Hull. I quite enjoy how lightweight my charts are now, and how transformations are really helpful.

Will print that out and put it in a frame in my home office ;) Seriously, that was all I wanted to achieve, truly appreciated!


Call validate methods by code

Using vee-validate to validate some string dynamically by code, such as
VeeValidate.validate( 'max:6|min:2', 4 )

This function is very useful for most case, how to implement it?

Is this a feature request or a bug report? Sticking to the issue template would help to make your request more clear.
At the moment it is not possible to validate values without a input field.

This is an enhancement I thought about for a while, not really useful in an
app but I see a need for it.
On Fri, 13 Jul 2018, 08:56 Nico König<EMAIL_ADDRESS>wrote:

Is this a feature request or a bug report? Sticking to the issue template
would help to make your request more clear.
At the moment it is not possible to validate values without a input field.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/baianat/vee-validate/issues/1475#issuecomment-404744131,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-KSt02PbDgcWqwV0Hx9uut9Ej4FB8sks5uGES1gaJpZM4VOLDB
.

This could be very helpful to validate state or store information that isn't tied to an input element. A real world use case being a multi-step wizard that uses the vue-router for the steps. If a user attempts to skip to the step3 url, i'd like to validate that the state (likely stored in vuex), has all the required fields to be on step3. If not, I'd like to send them back to the appropriate step.

Thanks for the suggestion and patience, the feature is now introduced as verify method which works like this:
import { Validator } from 'vee-validate';

const v = new Validator();
const { valid, errors } = await v.verify('test', 'max:3');

// the valid prop indicates the result of validation.
console.log(valid); // false

// The `errors` is an array of error strings.
console.log(errors); // ["The {field} field may not be greater than 3 characters."]

The errors array will be empty if the validation passes.

Hey!!!!!!!!!!!! i was requesting this a long time ago, it's actually ready? Which version do i need to install to get this? Thanks Logaretm.

I cannot find it anywhere. It says it's not a function.....

I was so happy i misread, you said next release, do you know when that will be?


[Blob Service] PutBlockList Support in storage SDK

https://docs.microsoft.com/en-us/rest/api/storageservices/put-block-list

https://github.com/Azure/azure-sdk-for-cpp/pull/144


Uncaught Error: Module did not self-register.

[Enter steps to reproduce:]

...
...

Atom: 1.51.0 x64
Electron: 5.0.13
OS: Ubuntu 20.04.1
Thrown From: Atom Core
Stack Trace
Uncaught Error: Module did not self-register.
At electron/js2c/asar.js:138

Error: Module did not self-register.
    at process.func [as dlopen] (electron/js2c/asar.js:138:31)
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:881:18)
    at Object.func [as .node] (electron/js2c/asar.js:147:18)
    at Module.load (internal/modules/cjs/loader.js:701:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:633:12)
    at Function.Module._load (internal/modules/cjs/loader.js:625:3)
    at Module.require (/app.asar/static/index.js:72:46)
    at require (internal/modules/cjs/helpers.js:14:16)
    at customRequire (/usr/share/atom/resources/app/static/<embedded>:1:695413)
    at get_KeyboardLayoutManager (/usr/share/atom/resources/app/static/<embedded>:14:2715520)
    at get_manager (/usr/share/atom/resources/app/static/<embedded>:14:2715622)
    at Object.getCurrentKeyboardLayout (/usr/share/atom/resources/app/static/<embedded>:14:2715748)
    at e.keystrokeForKeyboardEvent (/usr/share/atom/resources/app/static/<embedded>:14:1047867)
    at KeymapManager.keystrokeForKeyboardEvent (/usr/share/atom/resources/app/static/<embedded>:11:1228180)
    at KeymapManager.handleKeyboardEvent (/usr/share/atom/resources/app/static/<embedded>:11:1226165)
    at WindowEventHandler.handleDocumentKeyEvent (/usr/share/atom/resources/app/static/<embedded>:11:284829)

Commands

Non-Core Packages

I can confirm the same error on macOS 10.15.6.

I have the error on MacOS v11.1. Atom v1.29 x64

Thanks for taking the time to contribute!
We noticed that this is a duplicate of https://github.com/atom/atom/issues/21285. You may want to subscribe there for updates.
Because we treat our issues list as the Atom team's backlog, we close duplicates to focus our work and not have to touch the same chunk of code for the same reason multiple times. This is also why we may mark something as duplicate that isn't an exact duplicate but is closely related.
For information on how to use GitHub's search feature to find out if something is a duplicate before filing, see the How Can I Contribute? section of the Atom CONTRIBUTING guide.a


Issue with esp_ble_set_encryption() function:  (17933) BT_APPL: bta_dm_set_encryption, not find peer_bdaddr or peer_bdaddr connection state error (IDFGH-5982)

Environment

Development Kit:      [ESP32-DevKitC]

Kit version (v4]

Module or chip used:  [ESP32-WROOM-32D]

IDF version : [v4.4-dev-3235-g3e370c4296]

Build System:         [df.py]

Compiler version: xtensa-esp32-elf-gcc (crosstool-NG esp-2021r1) 8.4.0

Operating System:     [Linux]

Using an IDE?: [Yes (VSCode)]

Power Supply:         [USB]

Problem Description
I want to make a connection to iPhone which is running the LightBlue BLE application. I can connect with pairing using my code but my target is to make a connection request from the ESP32 side so that I can connect the phone again. However, I get an error that apparently pertains to encryption context that might have changed by the phone after disconnect. When I call esp_ble_set_encryption() to initiate an encrypted communication with my iPhone once the ESP32 is disconnected from the iPhone, I get this error. -- >
So, I want to know if there is a way I can make a connection request to a smartphone to which I had previously connected  (securely paired) sometime earlier?
I will highly appreciate it if someone can provide me with some useful advice.
Expected Behavior
Actual Behavior
Steps to reproduce

Open Use gatt_security example inside "esp/esp-idf/examples/bluetooth/bluedroid/ble/gatt_security_server" folder
Go to the file example_ble_sec_gatts_demo.c
Copy and paste my code inside example_ble_sec_gatts_demo.c and test the code.

Code to reproduce this issue
https://gist.github.com/rhr407/f0f9bd42c3ed3dc1db76d58ce71fd966

Debug Logs
Debug log goes here, should contain the backtrace, as well as the reset source if it is a crash.
Please copy the plain text here for us to search the error log. Or attach the complete logs but leave the main part here if the log is *too* long.

Other items if possible

[ ] sdkconfig file (attach the sdkconfig file from your project folder)
[ ] elf file in the build folder (note this may contain all the code details and symbols of your project.)
[ ] coredump (This provides stacks of tasks.)

@rhr407 Thanks for reporting, would you please help share if any updates for the issue? Thanks.

Hi @Alvin1Zhang and @xiewenxiang : Thanks a lot for your help. I think the issues should be closed now as I got the answer of my question from @xiewenxiang
Kind regards

@rhr407 Thanks for sharing the updates, good to hear you got the answer of the question, feel free to reopen.


[docs] fine-tuning local LLMs through ollama on your screenpipe logs

Here's a practical script to fine-tune Ollama on local files:
import glob
from pathlib import Path
from typing import List, Dict
import torch
from transformers import (
    AutoModelForCausalLM,
    AutoTokenizer,
    BitsAndBytesConfig,
    TrainingArguments,
    Trainer,
)
from peft import LoraConfig, get_peft_model
from datasets import Dataset

def load_data_from_files(glob_pattern: str) -> List[Dict[str, str]]:
    """Load text files and convert to training format"""
    data = []
    for file_path in glob.glob(glob_pattern):
        with open(file_path, 'r', encoding='utf-8') as f:
            content = f.read().strip()
            # format for instruction fine-tuning
            # modify this based on your data format
            data.append({
                "text": f"<s>[INST] {content} [/INST]</s>"
            })
    return data

def main():
    # config
    model_name = "mistralai/Mistral-7B-v0.3"  # or your base model
    output_dir = "./fine_tuned_model"

    # load local files
    training_data = load_data_from_files("./data/**/*.txt")  # adjust glob pattern
    dataset = Dataset.from_list(training_data)

    # quantization config
    bnb_config = BitsAndBytesConfig(
        load_in_4bit=True,
        bnb_4bit_quant_type="nf4",
        bnb_4bit_compute_dtype=torch.float16,
    )

    # load model and tokenizer
    model = AutoModelForCausalLM.from_pretrained(
        model_name,
        quantization_config=bnb_config,
        device_map="auto",
        trust_remote_code=True
    )
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    tokenizer.pad_token = tokenizer.eos_token

    # lora config
    lora_config = LoraConfig(
        r=16,  # rank
        lora_alpha=32,
        target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
        lora_dropout=0.05,
        bias="none",
        task_type="CAUSAL_LM"
    )

    # prepare model for training
    model = get_peft_model(model, lora_config)
    model.print_trainable_parameters()

    # training args
    training_args = TrainingArguments(
        output_dir=output_dir,
        num_train_epochs=3,
        per_device_train_batch_size=4,
        gradient_accumulation_steps=4,
        learning_rate=2e-4,
        fp16=True,
        logging_steps=10,
        save_strategy="epoch",
    )

    # trainer
    trainer = Trainer(
        model=model,
        args=training_args,
        train_dataset=dataset,
        data_collator=lambda data: {
            'input_ids': torch.stack([
                torch.tensor(tokenizer.encode(f["text"])) for f in data
            ])
        }
    )

    # train
    trainer.train()

    # save
    trainer.save_model()

if __name__ == "__main__":
    main()

key points:

this uses mistral 7b as base (you can change to any ollama-compatible model)
uses 4-bit quantization for memory efficiency
implements lora for efficient fine-tuning
expects text files in a data directory

to use:

put your training files in a ./data directory
adjust the glob pattern in load_data_from_files()
modify the data formatting in load_data_from_files() based on your data structure
adjust hyperparameters as needed

requirements:
pip install transformers torch datasets peft bitsandbytes accelerate

would you like me to explain any specific part or customize it for your use case?
#tips

start with a small dataset to test
monitor gpu memory usage
adjust batch size based on your gpu
consider using gradient checkpointing if memory is tight

that's be fun to try i have tons, like weeks of AI logs with the obsidian pipe
then i can use it in screenpipe in general :)


[python tutorial] confusing SM configs in 08-grouped-gemm.py

@triton.autotune(
    configs=[
        triton.Config({
            'BLOCK_SIZE_M': 128,
            'BLOCK_SIZE_N': 128,
            'BLOCK_SIZE_K': 32,
            'NUM_SM': 84,   # I wonder why this is 84 ?
        }),
        triton.Config({
            'BLOCK_SIZE_M': 128,
            'BLOCK_SIZE_N': 128,
            'BLOCK_SIZE_K': 32,
            'NUM_SM': 128,
        }),
        triton.Config({
            'BLOCK_SIZE_M': 64,
            'BLOCK_SIZE_N': 64,
            'BLOCK_SIZE_K': 32,
            'NUM_SM': 84,   # I wonder why this is 84 ?
        }),
        triton.Config({
            'BLOCK_SIZE_M': 64,
            'BLOCK_SIZE_N': 64,
            'BLOCK_SIZE_K': 32,
            'NUM_SM': 128,
        }),
    ],
    key=['group_size'],
)

Hello, thanks for your triton tutorial.
I wonder why the NUM_SM is set to 84, maybe it's a typo ?
I think 64 is more reasonable?
I'm a beginner in GPU programming, so I'll be grateful if you can answer my question.

The SM is a part of the hardware, so we want to launch one triton program to run on each hardware processor. See https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#hardware-implementation

Thanks for your time.
I check the doc you mentioned besides the white-paper of A100, H100 GPUs.
However, I still can not find any related information for the 'NUM_SM': 84.
Here is all I find:

The full implementation of the GA100 GPU includes the following units: 8 GPCs, 8 TPCs/GPC, 2 SMs/TPC, 16 SMs/GPC, 128 SMs per full GPU

Figure 6 shows a full GH100 GPU with 144 SMs. The H100 SXM5 GPU has 132 SMs, and the
PCIe version has 114 SMs. Note that the H100 GPUs are primarily built for executing
datacenter and edge compute workloads for AI, HPC, and data analytics, but not graphics
processing. Only two TPCs in both the SXM5 and PCIe H100 GPUs are graphics-capable (that
is, they can run vertex, geometry, and pixel shaders).

I think there should be some GPUs that have 84 SMs ?