Reimagining service invocation for dotnet-sdk

Describe the proposal
One of the things that's evolved over the last year of Dapr's existence has been how the SDKs interface with service invocation. In particular the .NET, Java and Go SDKs use gRPC as an implementation detail to mediate between a client API surface (.NET in our case) and what's most likely an HTTP service being invoked on the other side. Invoke is interesting to talk about because it's one of the few places in Dapr where your code is probably on both sides of the interaction.
The fundamental problem is that the .NET APIs we provide in this project aren't really the truth - the underlying system is defined by both the Dapr API for service invocation and the callee (another web app). It's most likely that developer writing applications with Dapr wrote both sides of the operation when using service invocation (both the caller and callee).  The underlying Dapr APIs intend to be a passthrough that can preserve the semantics of the HTTP communication protocol in use - however the problem is that the SDK and the choice to use gRPC as a detail result in an impedance mismatch - we're not currently doing a good job being a passthough.
I think we could leverage more of users' existing experience and the .NET community's existing assets by making the standard HttpClient API surface featured more prominently in Dapr's samples and guidance. I want to start a discussion about this and see what kinds of changes make sense. This proposal includes some ideas about how we could make using Dapr with HTTP simpler within the scope of the .NET SDK without changes to Dapr's protocol or runtime.
The current landscape
The current design approach is that the DaprClient.InvokeMethodAsync family of APIs map to use of the Dapr gRPC APIs for service invocation. The Dapr API for service invocation provides an abstraction over HTTP and gRPC - in theory a caller does not need to know what protocol is used in the callee.
Remember that the big idea here is that we can provide a set of .NET APIs that map to either HTTP or gRPC on the remote end without the caller needing to know. I'll briefly enumerate some of the issues that we've found with this approach - I think for most serious users, you will have encountered one of these limitations.
HTTP and gRPC are different
The headline problem is that the style of designing services in HTTP and gRPC are different, especially when you look at non-success cases. If it helps, think of gRPC as an opinionated subset of HTTP.
It's a very typical pattern in HTTP services to use the response body to indicate semantic information for non-success cases. For instance ASP.NET Core MVC will automatically return business validation error messages using a problem details JSON payload. It's execeedingly common for systems based on REST to choose a standard error payload format and use it consistently.
For gRPC - all you get is a status code and message in a true "error" response. You have a few options:

Use a simple status code and message
Use an advanced feature like gRPC rich error model
Make error reporting for business rules part of the message itself (in-band errors)

They key insight is that we genuinely can't abstract over the differences between these error models. The result is that the caller has to know how the callee service will report errors, because it's protocol specific. So our abstraction doesn't really work if you think of it as an abstraction over the way users design services today.
We're translating in the wrong direction
There's a known technique for allowing an HTTP caller to call a gRPC service called gRPC Gateway. This is a tried and tested technology with real production use. It works well because many common use cases of gRPC are an opinionated subset of HTTP. So providing HTTP callers a way to call a gRPC API is straightforward.
Unfortunately we're currently attempting the opposite. Using gRPC as a client library to call HTTP callers causes some genuine technical problems trying to pack HTTP requests into gRPC messages. The design on the runtime side has gone though multiple iterations of how this works, and hasn't really reached a stable point - there are still some unresolved issues. Remember that we're making the common case (using the SDK with its defaults) rely on the most complicated case (HTTP service invoked via gRPC).
Dapr for gRPC services is not mature yet
While Dapr has some support for implementing services via gRPC - I think this needs to be heavily caveated. The approach via AppCallback is not what the average user would expect to if you told them Dapr supports gRPC. The average person who's familar with gRPC would expect to use the generated code for both services and clients provided by the gRPC implementation in their language of choice.
So while right now we're trying to provide an abstraction over gRPC services - it's likely that a mature gRPC programming experience for Dapr would have a different shape.
We've gotten this feedback through multiple channels but there's no github issue I can point to at the moment.
Performance is worse when packing HTTP into gRPC
There are a few key claims that are typically made to assert that gRPC's performance is better than HTTP+JSON's. The main one is that Protobuf serialization is more compact and thus more efficient than JSON.
While this is true for many use cases there are a few a major caveats:

Protobuf requires length-prefixing on variable length fields (nested message, the Any type). This means that the entire payload needs to be held in contiguous memory. For .NET this will lead to LOH allocations for any message over 85kb and absolutely tank your performance in the calling application.
The efficiency of Protobuf is a meaningful claim when your content is "Protobuf-native". If you're using another format embedded in Protobuf then this benefit is lost, because you had to produce that other format in the first place.

Since our main use case is serializing JSON inside a Protobuf message we're likely exhibiting a very high overhead inside the callee application to generate the message, for a similar outcome in wire size to just using HTTP+JSON.
We're not leveraging the ecosystem aroung HttpClient
Feedback: #519 #466 #441
By creating our own client type we're building something complex with its own conventions and style. However, it's very unlikely that we can put enough investment into the InvokeMethodAsync family of APIs to give users the level of control and richness that the .NET standard library does. For instance the .NET HttpClient already has built-in support libraries to simplify using Newtonsoft.Json and System.Text.Json. Encouraging the use of HttpClient would make the majority of Daprized service invocation code look similar to exising code and be more incrementally adoptable.
Additionally, there are great frameworks built around advanced or opinionated usage of HttpClient or code generation that targets HttpClient. I'll briefly list a few here:

Refit
Autorest
RestSharp
NSwag

The proposal
The solution is actually quite simple from a code perspective. We would add a DelegatingHandler implementation that can rewrite URLs to their Daprized form. This could then be used with any HttpClient or HttpMessageInvoker based library. We would provide convenience APIs as necessary to make this easy to contruct and use.
There's a few options for how we could design this, one of the simplest ways would be via interpreting the hostname as an app-id.
For example:
http://bank/account/17 -> http://localhost:3500/v1.0/invoke/bank/method/account/17

This translation would be done inside the HttpClient's processing pipeline. It doesn't require a service mesh or any other external technology. This is a similar approach to service discovery libraries like Steeltoe.
The advantage of this URL translation approach is that it's largely transparent to application code. Users are already familiar with configuring the base URL of an HttpClient. Once you configure the base URL the URLs you use in your code are same as the routes you implemented in the other service. Basically your code functions the same way it did before, but you're now leveraging Dapr's service discovery and tracing. I would also emphasize that most users already organize their code this for separation of concerns - creating/configuring the client is separate from using it in most real applications.
Example code:
// We'll want to make this part easier to figure out.
var bankClient = new HttpClient(new DaprInvokeHandler(new HttpClientHandler()))
{
    BaseUri = new Uri("http://bank"),
};

// Somewhere else in your application
var accountId = ...;
var account = await bankClient.GetAsJsonAsync($"/account/{accountId}");

This approach also works with libraries like Refit that totally abstract over HttpClient:
// Define an interface for the remote service
public interface IBank
{
    [Get("/accounts/{accountId}")]
    Task<Account> GetUser(string accountId);
}

// We'll want to make this part easier to figure out.
var bankClient = RestService.For<IBank>(new HttpClient(new DaprInvokeHandler(new HttpClientHandler()))
{
    BaseUri = new Uri("http://bank"),
});

// Somewhere else in your application
var accountId = ...;
var account = await bankClient.GetUser(acountId);

:bulb: Note: you could also do something like: BaseUri = new Uri(http://localhost:3500/v1.0/invoke/bank/method/"). And then in theory the handler is not needed. But this ends up being fragile. Using a rooted path like /account/17 would escape the Dapr invoke URL-space vs a non-rooted path account/17 would would as desired.

Next Steps
I'm going to put together a runnable sample of all of the above including a few more examples so people can view it and comment on the utility.
I'm also very interested in thoughts from the community at-large on whether this approach would be an improvment. Do you like the existing design for invoke and things it's better than the approach outlined above? (and why) Are there issues you've run into that you don't think are solved by this?
I think the response to this idea and the feedback will determine our next steps.

Really like the proposal!
The current implementation does not provide an elegant abstraction over HTTP and gRPC. Types like HttpInvocationOptions and multiple invoke methods for different scenarios (InvokeMethodAsync, InvokeMethodWithResponseAsync, InvokeMethodRawAsync) are all necessary to make it work, but they aren't natural to use for a C# developer who's used to HttpClient.
The question then becomes, what do we gain by adding this abstraction? Not much I think. You can use the Dapr instance as a protocol bridge, but this seems as an edge case to me. After all, if the SDK makes calling both HTTP and gRPC methods very easy and natural, why would I need a bridge?
I think the users are better served by providing great experiences for HTTP and gRPC separately, without worrying about abstractions. Your example focuses on HTTP and that seems to be the way to go, because as you said, the gRPC experience isn't there yet. For gRPC, I'd want to be able to use my own proto files and have the sidecar automatically call my gRPC method, without having to implement the Dapr specific proto file.
I love the simplicity of URLs like http://bank/account/17. Mainly because I think it's confusing that for HTTP, the method is actually the complete HTTP route.
I also think it's a big advantage that we'd be able to use existing tooling around HttpClient. I often use Polly in projects to add more elaborate retry handling and cache responses, which also has provides extensions for integration with HttpClient.

Really like the proposal!
The current implementation does not provide an elegant abstraction over HTTP and gRPC. Types like HttpInvocationOptions and multiple invoke methods for different scenarios (InvokeMethodAsync, InvokeMethodWithResponseAsync, InvokeMethodRawAsync) are all necessary to make it work, but they aren't natural to use for a C# developer who's used to HttpClient.
The question then becomes, what do we gain by adding this abstraction? Not much I think. You can use the Dapr instance as a protocol bridge, but this seems as an edge case to me. After all, if the SDK makes calling both HTTP and gRPC methods very easy and natural, why would I need a bridge?
I think the users are better served by providing great experiences for HTTP and gRPC separately, without worrying about abstractions. Your example focuses on HTTP and that seems to be the way to go, because as you said, the gRPC experience isn't there yet. For gRPC, I'd want to be able to use my own proto files and have the sidecar automatically call my gRPC method, without having to implement the Dapr specific proto file.
I love the simplicity of URLs like http://bank/account/17. Mainly because I think it's confusing that for HTTP, the method is actually the complete HTTP route.
I also think it's a big advantage that we'd be able to use existing tooling around HttpClient. I often use Polly in projects to add more elaborate retry handling and cache responses, which also has provides extensions for integration with HttpClient.

I'm not familiar with the PR, but trying to create an abstraction over various protocols was tried ..and failed...WCF anyone?
Their is a place for HTTP versus a proxy call, but IMO that is only for ingress into DAPR, or egress to an external service HTTP API.
Within DAPR why would you choose between HTTP and a proxy over GRPC?
I personally look forward to hosting GRPC endpoints as the norm, living again with data and service contracts over the brittle (yet simple) no contract HTTP service endpoints for application deployment.
Let's us please learn from WCF and the confusion created when high level abstractions have too many configuration options..... It was both a very slow painful death of a tech.
My 2 cents...
Richard
Get Outlook for Androidhttps://aka.ms/ghei36

From: Sander Molenkamp<EMAIL_ADDRESS>Sent: Saturday, January 2, 2021 11:54:42 PM
To: dapr/dotnet-sdk<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: Re: [dapr/dotnet-sdk] Reimagining service invocation for dotnet-sdk (#526)
Really like the proposal!
The current implementation does not provide an elegant abstraction over HTTP and gRPC. Types like HttpInvocationOptions and multiple invoke methods for different scenarios (InvokeMethodAsync, InvokeMethodWithResponseAsync, InvokeMethodRawAsync) are all necessary to make it work, but they aren't natural to use for a C# developer who's used to HttpClient.
The question then becomes, what do we gain by adding this abstraction? Not much I think. You can use the Dapr instance as a protocol bridge, but this seems as an edge case to me. After all, if the SDK makes calling both HTTP and gRPC methods very easy and natural, why would I need a bridge?
I think the users are better served by providing great experiences for HTTP and gRPC separately, without worrying about abstractions. Your example focuses on HTTP and that seems to be the way to go, because as you said, the gRPC experience isn't there yet. For gRPC, I'd want to be able to use my own proto files and have the sidecar automatically call my gRPC method, without having to implement the Dapr specific proto file.
I love the simplicity of URLs like http://bank/account/17. Mainly because I think it's confusing that for HTTP, the method is actually the complete HTTP route.
I also think it's a big advantage that we'd be able to use existing tooling around HttpClient. I often use Pollyhttps://github.com/App-vNext/Polly in projects to add more elaborate retry handling and cache responses, which also has provides extensions for integration with HttpClient.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/dapr/dotnet-sdk/issues/526#issuecomment-753581774, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAEVJVJKBRNCLPSZWF3QCNDSYAPEFANCNFSM4VRMGFUA.

I'm not familiar with the PR, but trying to create an abstraction over various protocols was tried ..and failed...WCF anyone?
Their is a place for HTTP versus a proxy call, but IMO that is only for ingress into DAPR, or egress to an external service HTTP API.
Within DAPR why would you choose between HTTP and a proxy over GRPC?
I personally look forward to hosting GRPC endpoints as the norm, living again with data and service contracts over the brittle (yet simple) no contract HTTP service endpoints for application deployment.
Let's us please learn from WCF and the confusion created when high level abstractions have too many configuration options..... It was both a very slow painful death of a tech.
My 2 cents...
Richard
Get Outlook for Androidhttps://aka.ms/ghei36

From: Sander Molenkamp<EMAIL_ADDRESS>Sent: Saturday, January 2, 2021 11:54:42 PM
To: dapr/dotnet-sdk<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: Re: [dapr/dotnet-sdk] Reimagining service invocation for dotnet-sdk (#526)
Really like the proposal!
The current implementation does not provide an elegant abstraction over HTTP and gRPC. Types like HttpInvocationOptions and multiple invoke methods for different scenarios (InvokeMethodAsync, InvokeMethodWithResponseAsync, InvokeMethodRawAsync) are all necessary to make it work, but they aren't natural to use for a C# developer who's used to HttpClient.
The question then becomes, what do we gain by adding this abstraction? Not much I think. You can use the Dapr instance as a protocol bridge, but this seems as an edge case to me. After all, if the SDK makes calling both HTTP and gRPC methods very easy and natural, why would I need a bridge?
I think the users are better served by providing great experiences for HTTP and gRPC separately, without worrying about abstractions. Your example focuses on HTTP and that seems to be the way to go, because as you said, the gRPC experience isn't there yet. For gRPC, I'd want to be able to use my own proto files and have the sidecar automatically call my gRPC method, without having to implement the Dapr specific proto file.
I love the simplicity of URLs like http://bank/account/17. Mainly because I think it's confusing that for HTTP, the method is actually the complete HTTP route.
I also think it's a big advantage that we'd be able to use existing tooling around HttpClient. I often use Pollyhttps://github.com/App-vNext/Polly in projects to add more elaborate retry handling and cache responses, which also has provides extensions for integration with HttpClient.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/dapr/dotnet-sdk/issues/526#issuecomment-753581774, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAEVJVJKBRNCLPSZWF3QCNDSYAPEFANCNFSM4VRMGFUA.

Thanks @amolenk and @codeputer for your feedback. I'm also wondering if you've hit specific use cases with the current approach that are difficult, or code samples that are awkward.

The current implementation does not provide an elegant abstraction over HTTP and gRPC. Types like HttpInvocationOptions and multiple invoke methods for different scenarios (InvokeMethodAsync, InvokeMethodWithResponseAsync, InvokeMethodRawAsync) are all necessary to make it work, but they aren't natural to use for a C# developer who's used to HttpClient.

This is where my head is at. There's a lot of different libraries that build on top of or supplant the HttpClient and Http{Request, Response}Message APIs. The more investment we put into these scenarios the more our APIs will resemble HttpClient or one of those other wrapper libraries. It doesn't seem like a good direction to move knowingly.
When we get feedback like "make this work with Newtonsoft.Json" - I feel like the best way to win is not to play.

I think the users are better served by providing great experiences for HTTP and gRPC separately, without worrying about abstractions. Your example focuses on HTTP and that seems to be the way to go, because as you said, the gRPC experience isn't there yet. For gRPC, I'd want to be able to use my own proto files and have the sidecar automatically call my gRPC method, without having to implement the Dapr specific proto file.

I have a pretty strong gut feeling about this as well. We're already seeing plenty of user demand for the standard gRPC programming model, and we haven't done the work in the runtime to light that up.

I'm not familiar with the PR, but trying to create an abstraction over various protocols was tried ..and failed...WCF anyone?

I want to mention one thing about this - which is that the Dapr APIs (state, bindings, pub/sub, etc) are all surfaced as BOTH HTTP and gRPC. This has worked really well in general. It reduces maintenance for all of the first-class SDKs because they are easy to version/update. It enables users of platforms that don't have first-class SDKs to consume new features on day-1 because it's just an HTTP call.
However I think that invoke is a different case and deserves to be treated differently because it involves user code and existing protocols on both sides of the interaction.

Thanks @amolenk and @codeputer for your feedback. I'm also wondering if you've hit specific use cases with the current approach that are difficult, or code samples that are awkward.

The current implementation does not provide an elegant abstraction over HTTP and gRPC. Types like HttpInvocationOptions and multiple invoke methods for different scenarios (InvokeMethodAsync, InvokeMethodWithResponseAsync, InvokeMethodRawAsync) are all necessary to make it work, but they aren't natural to use for a C# developer who's used to HttpClient.

This is where my head is at. There's a lot of different libraries that build on top of or supplant the HttpClient and Http{Request, Response}Message APIs. The more investment we put into these scenarios the more our APIs will resemble HttpClient or one of those other wrapper libraries. It doesn't seem like a good direction to move knowingly.
When we get feedback like "make this work with Newtonsoft.Json" - I feel like the best way to win is not to play.

I think the users are better served by providing great experiences for HTTP and gRPC separately, without worrying about abstractions. Your example focuses on HTTP and that seems to be the way to go, because as you said, the gRPC experience isn't there yet. For gRPC, I'd want to be able to use my own proto files and have the sidecar automatically call my gRPC method, without having to implement the Dapr specific proto file.

I have a pretty strong gut feeling about this as well. We're already seeing plenty of user demand for the standard gRPC programming model, and we haven't done the work in the runtime to light that up.

I'm not familiar with the PR, but trying to create an abstraction over various protocols was tried ..and failed...WCF anyone?

I want to mention one thing about this - which is that the Dapr APIs (state, bindings, pub/sub, etc) are all surfaced as BOTH HTTP and gRPC. This has worked really well in general. It reduces maintenance for all of the first-class SDKs because they are easy to version/update. It enables users of platforms that don't have first-class SDKs to consume new features on day-1 because it's just an HTTP call.
However I think that invoke is a different case and deserves to be treated differently because it involves user code and existing protocols on both sides of the interaction.

/cc @yaron2 - who I've discussed this idea with a few times

/cc @yaron2 - who I've discussed this idea with a few times

Here's an example from eShopOnDapr.
Current code:
var daprClient = new DaprClientBuilder().Build();

var basketData = await daprClient.InvokeMethodAsync<BasketData>(
      "basket-service",
      $"api/v1/basket/{customerId}",
      new HttpInvocationOptions
      {
          Method = HttpMethod.Get,
          Headers = new Dictionary<string, string>
          {
              [HeaderNames.Authorization] = $"Bearer {accessToken}"
          }
      });

HttpClient code:
// We'll want to make this part easier to figure out.
var basketClient = new HttpClient(new DaprInvokeHandler(new HttpClientHandler()))
{
    BaseUri = new Uri("http://basket-service"),
};
basketClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

// Somewhere else in your application
var basketData = await basketClient.GetAsJsonAsync($"api/v1/basket/{customerId}");

I like that setting up the client and using it are two distinct operations in the HttpClient code. It would look a bit different if the access token cannot be set as a default value of course, but I still prefer the use of HttpClient because devs can use existing skills.

Here's an example from eShopOnDapr.
Current code:
var daprClient = new DaprClientBuilder().Build();

var basketData = await daprClient.InvokeMethodAsync<BasketData>(
      "basket-service",
      $"api/v1/basket/{customerId}",
      new HttpInvocationOptions
      {
          Method = HttpMethod.Get,
          Headers = new Dictionary<string, string>
          {
              [HeaderNames.Authorization] = $"Bearer {accessToken}"
          }
      });

HttpClient code:
// We'll want to make this part easier to figure out.
var basketClient = new HttpClient(new DaprInvokeHandler(new HttpClientHandler()))
{
    BaseUri = new Uri("http://basket-service"),
};
basketClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

// Somewhere else in your application
var basketData = await basketClient.GetAsJsonAsync($"api/v1/basket/{customerId}");

I like that setting up the client and using it are two distinct operations in the HttpClient code. It would look a bit different if the access token cannot be set as a default value of course, but I still prefer the use of HttpClient because devs can use existing skills.

Tagging this as a potential breaking change.

Tagging this as a potential breaking change.

@rynowak Any thoughts yet on how this will impact the current service-invocation methods offered by DaprClient? For example, will classes like HttpInvocationOptions remain, or should users always use HttpClient for invoking an HTTP service method?

@rynowak Any thoughts yet on how this will impact the current service-invocation methods offered by DaprClient? For example, will classes like HttpInvocationOptions remain, or should users always use HttpClient for invoking an HTTP service method?

I would unequivocally recommend users adopt HttpClient + the System.Net.Http.Json package (or whatever else you want).  If you dislike HttpClient (some do) there are numerous other libraries out there that layer on top and offer different flavors of APIs.
Whether or not we remove or change the InvokeMethodAsync methods isn't really a settled matter yet. Removing them completely would be a really large change to do this close to the 1.0 release, so it's not something that I'm proposing. Do they go away in some future release? Maybe ... we'll see what users like. As a principle, I don't think libraries should provide ways of doing things that aren't recommended, but that's kinda where we're stuck.

I think we'll want to make some changes regardless, because we're going to use HTTP as the underlying transport for both HTTP endpoints and gRPC endpoints (all SDKs). Basically we're avoiding or removing the HTTP over gRPC code path. https://github.com/dapr/dapr/issues/2342
A lot of the complexity in the design is there because we didn't want to be coupled to System.Net.Http types for doing gRPC requests, and we needed to represent the different error models of HTTP and gRPC. However, with the changes to the approach that we're going with everything is going to be HTTP so this can be simplified and optimized for HTTP.
I'd be happy to take proposals or suggestions 😆 I've haven't cracked open the design of this yet.

I would unequivocally recommend users adopt HttpClient + the System.Net.Http.Json package (or whatever else you want).  If you dislike HttpClient (some do) there are numerous other libraries out there that layer on top and offer different flavors of APIs.
Whether or not we remove or change the InvokeMethodAsync methods isn't really a settled matter yet. Removing them completely would be a really large change to do this close to the 1.0 release, so it's not something that I'm proposing. Do they go away in some future release? Maybe ... we'll see what users like. As a principle, I don't think libraries should provide ways of doing things that aren't recommended, but that's kinda where we're stuck.

I think we'll want to make some changes regardless, because we're going to use HTTP as the underlying transport for both HTTP endpoints and gRPC endpoints (all SDKs). Basically we're avoiding or removing the HTTP over gRPC code path. https://github.com/dapr/dapr/issues/2342
A lot of the complexity in the design is there because we didn't want to be coupled to System.Net.Http types for doing gRPC requests, and we needed to represent the different error models of HTTP and gRPC. However, with the changes to the approach that we're going with everything is going to be HTTP so this can be simplified and optimized for HTTP.
I'd be happy to take proposals or suggestions 😆 I've haven't cracked open the design of this yet.


A small number of datasets are slow to package, reporting self-intersection errors

Reported by @tebadi

Hi Jeremy, I'm running LCCS and a small number of tiles run for a considerable amount of time, something close to 2 hours while all the other tiles finish within 30 minutes.  In all of these tiles I see
Ring Self-intersection at or near point ...  and the CPU activity remains minimal.  see a sample below (check the timestamps).  They all happen when writing level4 data:

021-07-12 04:11:13,772] {verify.py:119} INFO - Checksumming PosixPath('/tmp/lccs/.odcdataset-clwyq2l3/ga_ls_landcover_class_cyear_2_1-0-0_au_2013-01-01_baregrad-phy-cat-l4d-au.tif')
[2021-07-12 04:11:14,188] {env.py:433} WARNING - CPLE_NotSupported in driver GTiff does not support creation option COUNT
[2021-07-12 04:11:14,188] {env.py:433} WARNING - CPLE_NotSupported in driver GTiff does not support creation option WIDTH
[2021-07-12 04:11:14,188] {env.py:433} WARNING - CPLE_NotSupported in driver GTiff does not support creation option HEIGHT
[2021-07-12 04:11:14,188] {env.py:433} WARNING - CPLE_NotSupported in driver GTiff does not support creation option CRS
[2021-07-12 04:11:14,188] {env.py:433} WARNING - CPLE_NotSupported in driver GTiff does not support creation option TRANSFORM
[2021-07-12 04:11:14,188] {env.py:433} WARNING - CPLE_NotSupported in driver GTiff does not support creation option DTYPE
[2021-07-12 04:11:14,432] {verify.py:119} INFO - Checksumming PosixPath('/tmp/lccs/.odcdataset-clwyq2l3/ga_ls_landcover_class_cyear_2_1-0-0_au_2013-01-01_level4.tif')
[2021-07-12 04:13:18,660] {geos.py:252} INFO - Ring Self-intersection at or near point 3467 46
[2021-07-12 04:13:18,667] {geos.py:252} INFO - Ring Self-intersection at or near point 3451 65
[2021-07-12 04:13:18,684] {geos.py:252} INFO - Ring Self-intersection at or near point 3477 111
[2021-07-12 04:13:18,684] {geos.py:252} INFO - Ring Self-intersection at or near point 3351 113
[2021-07-12 04:13:18,687] {geos.py:252} INFO - Ring Self-intersection at or near point 3387 111
[2021-07-12 04:13:18,691] {geos.py:252} INFO - Ring Self-intersection at or near point 3463 123
[2021-07-12 04:13:18,692] {geos.py:252} INFO - Ring Self-intersection at or near point 3484 126
[2021-07-12 04:13:18,697] {geos.py:252} INFO - Ring Self-intersection at or near point 3742 125
[2021-07-12 04:13:18,699] {geos.py:252} INFO - Ring Self-intersection at or near point 3454 132
[2021-07-12 04:13:18,706] {geos.py:252} INFO - Ring Self-intersection at or near point 3374 140
[2021-07-12 04:13:18,715] {geos.py:252} INFO - Ring Self-intersection at or near point 3494 149
[2021-07-12 04:13:18,717] {geos.py:252} INFO - Ring Self-intersection at or near point 3378 155
[2021-07-12 04:13:18,720] {geos.py:252} INFO - Ring Self-intersection at or near point 3368 153
[2021-07-12 04:13:18,725] {geos.py:252} INFO - Ring Self-intersection at or near point 3386 161
[2021-07-12 04:13:18,726] {geos.py:252} INFO - Ring Self-intersection at or near point 3885 162
[2021-07-12 04:13:18,778] {geos.py:252} INFO - Ring Self-intersection at or near point 3955 297
[2021-07-12 04:13:18,790] {geos.py:252} INFO - Ring Self-intersection at or near point 3903 303
[2021-07-12 04:13:18,795] {geos.py:252} INFO - Ring Self-intersection at or near point 3919 319
[2021-07-12 04:13:18,797] {geos.py:252} INFO - Ring Self-intersection at or near point 3936 319
[2021-07-12 04:13:18,803] {geos.py:252} INFO - Ring Self-intersection at or near point 3816 323
[2021-07-12 04:13:18,812] {geos.py:252} INFO - Ring Self-intersection at or near point 3921 342
[...............]
[2021-07-12 04:13:27,081] {geos.py:252} INFO - Ring Self-intersection at or near point 2637 3997
[2021-07-12 04:30:14,013] {verify.py:119} INFO - Checksumming PosixPath('/tmp/lccs/.odcdataset-clwyq2l3/ga_ls_landcover_class_cyear_2_1-0-0_au_2013-01-01.proc-info.yaml')
[2021-07-12 04:30:14,045] {verify.py:119} INFO - Checksumming PosixPath('/tmp/lccs/.odcdataset-clwyq2l3/ga_ls_landcover_class_cyear_2_1-0-0_au_2013-01-01.odc-metadata.yaml')
[2021-07-12 04:30:14,054] {gridded_classification.py:344} INFO -  Exporting Level 4 Classification RGB image
[2021-07-12 04:30:14,332] {gridded_export.py:158} INFO - Saved to /tmp/lccs/2013_21_-30L4_rgb_v-0.5.0.tif
[2021-07-12 04:30:14,373] {process_lccs.py:140} INFO - Uploading to lccs-dev
[2021-07-12 04:30:14,653] {process_lccs.py:157} INFO - tile 21 -30: uploaded 15 files to lccs-devCPU activity remains minimal

The rgb image for the above tile looks like:

Example failure:
Tile id: 21, -30, year 2013
Land cover results: s3://lccs-dev/1-0-0/2013/x_21/y_-30/

Also, this doesn't happen at low resolution [-100, 100].  It only happens when I run at full resolution [-25, 25].

It is happening at the end during valid-data geometry generation.
My guess is the random speckling of black pixels on the left are nodata values -- so when creating a shape of the nodata we're seeing a huge number of tiny polygons: per-pixel. When the image is scaled down, the individual nodata pixels are eliminated and so it's not a problem.

This seems to fix it: we manually fill holes in the valid-data masks before the geometry is calculated:
    # Just before calling `done()`
    from scipy.ndimage import binary_fill_holes
    for _, mask in p._measurements.mask_by_grid.items():
        binary_fill_holes(mask, output=mask)

An the resulting geometry looks the same (geometry is being simplified after calculation, which throws away the tiny polygons already)

Added options for vectorisation in release 0.24


Ubuntu 14.04 Build Failure (regression)

OS and version used:
Parent OS: 16.04
Docker distro: Ubuntu 14.04

Python runtime used:
CPython 2.7

SDK version used:
release_2018_10_31

Description of the issue:

Recursively cloning the tag release_2018_10_31 fails to build on ubuntu 14.04
release_2018_09_17 works fine.
Code sample exhibiting the issue:

Run the following lines in a shell to reproduce the issue. Installing docker is required.
git clone --recursive --branch release_2018_10_31 https://github.com/Azure/azure-iot-sdk-python.git
cat <<EOF > azure-iot-sdk-python/Dockerfile
FROM ubuntu:14.04

# Update image
SHELL ["/bin/bash", "-c"]

RUN apt-get update && apt-get install -y sudo cmake build-essential curl libcurl4-openssl-dev \
    libssl-dev uuid-dev python-pip apt-utils

WORKDIR /usr/sdk

COPY ./ ./

RUN pip install --upgrade pip==10.0.1 && python -m pip install -U setuptools wheel
RUN ./build_all/linux/setup.sh
RUN ./build_all/linux/release.sh
EOF
cd azure-iot-sdk-python
docker build .

Run the lines above with branch release_2018_09_17 to verify the regression.
Console log of the issue:

The relevant error is during the build:
[ 24%] Building C object c-utility/CMakeFiles/aziotsharedutil.dir/src/ws_url.c.o
Linking C static library libaziotsharedutil.a
[ 24%] Built target aziotsharedutil
Linking CXX shared library provisioning_device_client_mock.so
[ 24%] Built target provisioning_device_client_mock
Linking CXX shared library iothub_client_mock.so
[ 24%] Built target iothub_client_mock
Linking CXX shared library iothub_service_client_mock.so
[ 24%] Built target iothub_service_client_mock
make: *** [all] Error 2
The command '/bin/bash -c ./build_all/linux/release.sh' returned a non-zero code: 1

we're not maintaining Ubuntu 14.04 as an active target. given the difficulties Boost present, we're rewriting the SDK to not use that and won't be investing time on the existing version fixing issues for unsupported targets.

@brycepg, thank you for your contribution to our open-sourced project! Please help us improve by filling out this 2-minute customer satisfaction survey

This issue has been identified and will be addressed shortly. In the meantime one can circumvent this issue by editing the file provisioning_client\samples\custom_hsm_example\CMakeLists.txt and adding compileAsC99() immediately after the line cmake_minimum_required(VERSION 2.8.11) close to the top of the file.
Mark Radbourne MSFT

This issue has been addressed.


[SPARK-22187][SS][REVERT] Revert change in state row format for mapGroupsWithState

What changes were proposed in this pull request?
#19416 changed the format in which rows were encoded in the state store. However, this can break existing streaming queries with the old format in unpredictable ways (potentially crashing the JVM). Hence I am reverting this for now. This will be re-applied in the future after we start saving more metadata in checkpoints to signify which version of state row format the existing streaming query is running. Then we can decode old and new formats accordingly.
How was this patch tested?
Existing tests.

Test build #84621 has started for PR 19924 at commit 4a606de.

LGTM pending tests

Test build #84621 has finished for PR 19924 at commit 4a606de.

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

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/84621/
Test PASSed.

Thanks. Merging to master.


How can i get rid of the search-/ and cart-icon on the homepage

1.My goal is to remove the search-icon and the cart-icon on the landingpage without removing it from the other pages.

same problem, found any solution?


Question: Confluent.Net and health check?

Hi guyes, this is question basically, I tried to enter slack chat, but then I realized I need to contact administrator of the workspace, but I don't know who it is so anyway, I will ask here.
We are building microservices in our company and we are using Kafka for streaming bus so my and one of my colleague thought about creating some base health check for Kafka, like we did for other services in our tech stack (SQL,Mongo, Aerospike etc.), so each new service that has dependency of kafka will be using it.
My point is, is there something that I can use in confluent.net library to quickly check if Kafka is present and running?
Regards,
kuskmen

You could perhaps use GetMetadata and verify that you get a response in reasonable time. You might also find some of the information provided by OnStatistics useful https://github.com/edenhill/librdkafka/wiki/Statistics

Thanks for the fast response, I will surely take a look.
Regards,
kuskmen

@mhowlett  I did check that suggestions you gave me, however I was hoping for something that does need to introduce consumer/producer, cause they might be lazily evaluated on premise while typical health check will be called every few seconds from the beginning of the application lifetime.

@kuskmen, prehaps setting up some sort of monitoring infrastructure is more inline with your needs.
Kafka also a variety of metrics via JMX which you can use to evaluate the health of your cluster without adding additional clients.
https://kafka.apache.org/documentation/#monitoring
Your .NET clients may leverage the OnStatistics event handler to expose metrics specific to the clients themselves.
https://github.com/edenhill/librdkafka/wiki/Statistics
Together this should give you a fairly cohesive view of the cluster's health from which you can set up various alerts and such.

Hi @rnpridgeon , I decided to go with Burrow for health checking kafka, statistics I will use for sure, but when it comes to adding monitoring.
Thank you very much for the help guys, you can close this one :)


flaky test: TestPriorityQueue

This test fails periodically:
=== RUN   TestPriorityQueue
    queues_test.go:42:
        	Error Trace:	/__w/kargo/kargo/internal/controller/runtime/queues_test.go:42
        	Error:      	Not equal:
        	            	expected: 49
        	            	actual  : 48
        	Test:       	TestPriorityQueue
--- FAIL: TestPriorityQueue (0.00s)

This was fixed by #1129


Updating release note manually

Updating release note manually as it has a list of list in point and this is known issue for the start_release job

Merging this MR with 1 approval as this has only release notes changes (unreleased to release_notes)


inso: try to run inso from a Docker container

This PR is just an experiment, there's no official ticket yet, to try and run inso from a Docker container, without requiring inso users to have a local node/npm environment setup, and possibly in the future so folks can easily just run an inso container as part of their own CI stages, or abstract on top of it.
How to run

Clone the repository (this branch in specific).
Install Docker.
Run docker build -t insomnia-inso:latest -f inso.Dockerfile ..
Create an alias for the containerised version of inso, e.g. alias inso-docker="docker run -it --rm insomnia-inso:latest.
Try to run a typical inso command using the container, e.g. inso-docker help

UPDATE:
In order to run Insomnia specs in a container, you'll need to mount the specs folder on your most machine to a given folder on the container.  Added detailed instructions on how folks can mount and run specs in commit https://github.com/Kong/insomnia/commit/fabec5fc09b81cd8626645e59385bc5b35154e71
The bootstrap/build stage (that runs webpack --config webpack/webpack.config.development.js) fails when running docker build (...) on some tslint rules, hence the @ts-ignore additions.  UPDATE: The failures were due to the fact typescript inside the container was defaulting to version 4.4.0, causing new TSLint failures. We've applied workarounds for those failures in this PR, so we don't need to pin typescript to an older version.

@gatzjames @develohpanda @dimitropoulos - added instructions to the README of how folks can both build and run inso from the container against their exports, insomnia appdata dirs, and git sync folders. Would appreciate a review 🙏
In this PR we're not pushing any official inso container image to Docker Hub just yet - we can take care of that in another PR - but this way any folks that want to work with inso in a Docker ecosystem (and avoid local node setup) can do so.

In order to run Insomnia specs in a container, you'll need to mount the specs folder on your host machine to a given folder on the container.

I'm guessing this will be the case with using the single executable via docker as well, right? See INS-1177

@develohpanda, yes, this will also be the case if we use single executable in a docker container.

@develohpanda @wdawson @wongstein - gonna go ahead and close this PR as it is "stalled".
We'll pick back up the docker topic with https://linear.app/insomnia/issue/INS-1238/publish-inso-cli-docker-images-as-part-of-the-release-workflow


Navigational links as top hits

Task/Issue URL:
Description
Steps to test this PR
Feature 1

[ ]
[ ]

UI changes

Before
After

!(Upload before screenshot)
(Upload after screenshot)

#5374  👈 (View in Graphite)
develop

This stack of pull requests is managed by Graphite. Learn more about stacking.


Grey card undetermine state without wifi (DEV, EXPOSUREAPP-3892)

Quick fix for grey card state (1.8.x RC)

issue is under investigation. (DRAFT)

device Tests looking good so far (with & without connection). We still need to check for sideeffects...

In https://github.com/corona-warn-app/cwa-app-android/pull/1699 the UNKOWN_RISKS ARE removed, so do we even need this PR?
@BMItter @SamuraiKek @ralfgehrer @d4rken

Maybe wait with this until #1705 is merged. The whole RiskLevelRepository will be removed. There will be single source of truth for all risk level things.

After #1705 and #1699 is merged, we should reevaluate this bug again. Most of the bugs of this type were caused by weird states due to some values being stale, most of that will be fixed with these 2 PRs.

Ticket was set to "obsolete", will close this PR.


JBPM-5444: Upgrade to lienzo 2.0.279-RELEASE.

Hey @manstis , do you want me to use thsi PR and try to upgrade to 2.0.280-RELEASE? (which contains your CM stuff). Up to you! :)

@romartin Sure.. change this to 2.0.280-RELEASE and we should be "stable" for a while ;-)
You'll probably need one for Uberfire too.

hey @manstis , added new commit that uses the lienzo's 280-RELEASE, updating all other PRs... thanks!


EVERST-612 PG PITR Restore

PG PITR Restore
Problem:
EVEREST-612
Update the configuration of PerconaPGRestore to support point-in-time recovery
CHECKLIST
Jira

[x] Is the Jira ticket created and referenced properly?

Tests

[x] Is an Integration test/test case added for the new feature/change?
[x] Are unit tests added where appropriate?

Figuring out what's wrong with the e2e tests. There were a successful run of the core tests and the feature tests, but for some reason the most of the runs one or both are failing


Sharing Individual tabs of a Report

Is it possible along with sharing filtered reports to also only share one tab of a report rather than the entire thing? I am trying to share certain tabs with some people and other tabs with others within the same report without making dashboards.

Hi, @agwagner30 -- Thanks for asking!
You can't share certain tabs with some people and other tabs with others within the same report.
Suggestion: You can create reports based on other reports, then delete the pages you don't want in each version of the report. That way, the data stays up to date. See https://docs.microsoft.com/en-us/power-bi/service-datasets-discover-across-workspaces for more info.
Hope that helps!

This was helpful, thank you Maggie!


WIP: handle super in strict files

Motivation

Test plan

See included automated tests.

nit: let's use NameRef::noName, which is more common in the codebase, and a little more descriptive

@neil No response expected:
Tomorrow I'm going to review this change as though it were ready for review, just so you can see the comments I would have left, before I go ahead and make those changes for you.
Hopefully the review will be valuable for you. To make it so that you can still see the comments easily when you get back, I'll finish the change in a separate pull request, so that the comments I leave here don't get marked as outdated.

@neilparikh  No response expected:
Tomorrow I'm going to review this change as though it were ready for review, just so you can see the comments I would have left, before I go ahead and make those changes for you.
Hopefully the review will be valuable for you. To make it so that you can still see the comments easily when you get back, I'll finish the change in a separate pull request, so that the comments I leave here don't get marked as outdated.

Continued in https://github.com/sorbet/sorbet/pull/7231


Add Code folding on CSS style tab

A simple addition for CSS folding in the style tab.

Thanks @dbolack-ab ! Merging this now.


München finder app: Please add additional info

Is the defibrilatoren app an add-on to the finder app? Should it be its own project?
@MarHai

it should (as soon as it's finished) be an application out of the finder app. the latter is a generic framework that needs data in order to manifest an application.

Hier mal ein Screenshot:

Kann geschlossen werden.


Documentation/readme is possibly wrong or outdated?

I cannot find the mods mentioned in the readme:

card mod
custom button-card

There is a "card-mod" addon and I tried that.
Also there is a "button-card" addon.
I installed the above mentioned hoping they are the ones needed.
However I get these error messages, also one about the image!?:
Integration error: elements - Integration 'elements' not found.
Invalid config for 'image' at configuration.yaml, line 51: expected a dictionary '', got '/local/ioniqb/ioniq5-top-lhd.png'
Integration error: type - Integration 'type' not found.
Integration error: card_mod - Integration 'card_mod' not found.

OK, nevermind.

However I am getting this error message:
entity is unavailable: sensor.ioniq_battery_percentage_state
and I cannot find any sensor that matches.

Well, it seems like the sensors in the "add to configuration.yaml" are not working. None of them is showing up. I added everything to the configuration.yaml and am not getting any errors. However I even restarted HA and they are still not there.

Closing my own issue. I forked the project and made pull requests for the issues I had problems with.
Also the left front door for the Ioniq 5 is missing and is attached or can be found here:
https://github.com/Esprit1st/ioniq5-and-ioniq6-dashboard-for-ha/blob/main/ioniqb/ioniq-front-left.png
Thanks


Add necessary example dependencies to package.json

I have added you to collaborators list. Please feel free to add stuff.

thanks :) I'll fix these other two PRs in the morning and merge. Looking forward to using your code!

Merged #9 instead


Added Git to the toolchain.

To guarantee access via http authentication simply create the file
home/wine/.wine/drive_c/users/wine/.git-credentials
containing
https://USER:$PASSWORD@HOST
I also verified that by adding a CA on Ubuntu there are no problems with https:
cp my-ca.cer /usr/local/share/ca-certificates/
update-ca-certificates

Hello
Thanks for the contribution and suggestion, it's a nice idea! Have a nice new year!


site won't update after commit

This used to work fine - I would make changes to .md files (i.e., about.md) and then I would see changes in 3-4 mins, but I just found out that this doesn't work. I made changes and committed to repo but the changes are not reflected.

There seems to be two about.md files:
./about.md
./_pages/about.md
Not sure why.
Did you try changing both?


[BUG] OpenBullet2.exe/Updater.exe does not find dotnet.exe from current path

When dotnet.exe is there, in the ROOT of OB2 Folder, OpenBullet2.exe and ALSO Updater.exe can't detect is and it's just looking for dotnet.exe in the global %PATH% and not in it's folder

If you want to have the framework in the same place as OB2, then compile OB2 yourself using the self-contained option. I don't have any control on the thing you said.


How do I use run "sudo" on remote host with ssh

I try this sh.ssh('winger@winger01', 'sudo df', _tty_in=True)
But I get sudo: no tty present and no askpass program specified
How can I do that ?

try this
sh.ssh("winger@winger01", "sudo -S df", _in=password+"\n")

That's work ! Thanks a lot


Administration: missed fields on the creation user form

Steps to reproduce:

Go to the Administration -> User management tab.
Click on the + button to create a new user.

Actual result: Missed last name, role, language, activated, auto-logout fields on the form.
DEVELOP:

Expected result: The form contains all fields as shown below.
MASTER:

my


Doc versioning

What kind of change does this PR introduce?
Add versioning and a version selector to docs via mike
This change allows
Deployment
Initial Setup
On initial setup, delete existing docs
mike delete --all

Build docs locally under a version name and an alias
mike deploy --update-aliases 0.3 latest

add --push to deploy to GitHub Pages
Build docs locally without an alias
mike deploy 0.3

Serve docs locally
mike serve

Set default version
mike set-default 0.3

See preview

could you check if
pip install -e '.[docs]'

works for you?

could you check if
pip install -e '.[docs]'

works for you?

Yep, works 👍


(Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1124)')))

Error communicating with OpenAI: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/audio/transcriptions (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1124)')))

您好，解决了吗，我也有这个问题


Bounding Box Rotating only on Y

I have an issue where the bounding box target have Drag, AutoScale and Rotate X options checked.
I'm using a simple cube, the menu and bound boxes appear properly, but, when I change rotation Y to rotation X or Z it doesnt works. The appbar appears in both cases, but bounding boxes appear only if rotation Y is set and rotation X and Z are unset.
Is this an issue on MRDL or I need to configure something?
InteractionManager is set to ManipulationTranslate

How are you doing the interaction? Are you seeing this on the device or in the Unity editor?
What axis flattening setting have you chosen on the Bounding Box Target?

Hi @Railboy.
I'm using Unity play mode during development, when I airptap cube it shows me appbar, but bounding boxes doesn't work.
flattening mode is set to Flatten auto.

My cube setup:

Collection is 2 meters in Z.
Behaviour is the same on Hololens.
I'm using unity 2017.1.0f3 and the latest version of MRDL, I updated my forked repo and rebuild the package to check.
I do a test now and when I set cube to rotate on X and flattering to Flatten X it works, but I need X, Y and Z.

Is this the spected behaviour?

Thanks for the detailed screenshots! We'll look into this today.

This was a bug introduced by a change in the initial state of prefab. We've modified BoundingBoxManipulate to ensure that initial state will no longer affect manipulation behavior. Let us know if you have any more trouble.


Warnings in azure/identity.hpp cause strict builds to fail

Describe the bug
I don't necessarily model this as a bug. This did affect my ability to build a project that had azure as a Third Party Dependency (https://github.com/apache/arrow/issues/39384), and so I wanted to let you know.
Essentially, azure/identity.hpp emitted a warning about visibility, that caused any strict build of Arrow to fail.
In the end Apache Arrow employed a workaround, where it ignores -Wattributes in azure/identity.hpp: https://github.com/apache/arrow/pull/39448/files
Exception or Stack Trace
[41/821] Building CXX object _deps/azure_sdk-build/sdk/identity/azure-identity/CMakeFiles/azure-identity.dir/src/client_certificate_credential.cpp.o
In file included from /home/anja/git/arrow/cpp/build/anja-python-debug/_deps/azure_sdk-src/sdk/identity/azure-identity/src/client_certificate_credential.cpp:4:
/home/anja/git/arrow/cpp/build/anja-python-debug/_deps/azure_sdk-src/sdk/identity/azure-identity/inc/azure/identity/client_certificate_credential.hpp:68:9: warning: 'Azure
::Identity::ClientCertificateCredential' declared with greater visibility than the type of its field 'Azure::Identity::ClientCertificateCredential::m_pkey' [-Wattributes]
   68 |   class ClientCertificateCredential final : public Core::Credentials::TokenCredential {
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
[45/821] Building CXX object _deps/azure_sdk-build/sdk/identity/azure-identity/CMakeFiles/azure-identity.dir/src/environment_credential.cpp.o
In file included from /home/anja/git/arrow/cpp/build/anja-python-debug/_deps/azure_sdk-src/sdk/identity/azure-identity/src/environment_credential.cpp:6:
/home/anja/git/arrow/cpp/build/anja-python-debug/_deps/azure_sdk-src/sdk/identity/azure-identity/inc/azure/identity/client_certificate_credential.hpp:68:9: warning: 'Azure
::Identity::ClientCertificateCredential' declared with greater visibility than the type of its field 'Azure::Identity::ClientCertificateCredential::m_pkey' [-Wattributes]
   68 |   class ClientCertificateCredential final : public Core::Credentials::TokenCredential {

To Reproduce
Unfortunately, the way I bumped into this was by attempting to build Arrow, and then it would install a bundled version of Azure SDK. I am hoping the stacktrace will help.
If it helps, this is my Arrow CMakeUserPresets.json:
{
    "version": 3,
    "cmakeMinimumRequired": {
      "major": 3,
      "minor": 21,
      "patch": 0
    },
    "configurePresets": [
        {
            "name": "user-base",
            "hidden": true,
            "binaryDir": "${sourceDir}/build/${presetName}",
            "cacheVariables": {
              "ARROW_INSTALL_NAME_RPATH": "OFF"
            }
        },
        {
            "name": "anja-python-debug",
            "inherits": ["ninja-debug-python", "features-filesystems", "user-base"],
            "cacheVariables": {
                "CMAKE_INSTALL_PREFIX": "/home/anja/miniconda3/envs/pyarrow-dev",
                "CMAKE_CXX_STANDARD": "17",
                 "Azure_SOURCE":"BUNDLED",
               "ARROW_BUILD_EXAMPLES": "ON",
                "ARROW_FILESYSTEM": "ON"
            }
        }
    ]
}

Code Snippet
See reproduction!
Expected behavior
No warnings.
Setup (please complete the following information):

OS: Ubuntu
IDE : vim
Version of the Library used: ARROW_AZURE_SDK_BUILD_VERSION=azure-core_1.10.3

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[X] Bug Description Added
[X] Repro Steps Added
[X] Setup information Added

@anjakefala  Could you also provide command lines to reproduce this something like the following?
$ git clone --recursive https://github.com/apache/arrow.git
$ cd arrow
$ cmake ...
...

Looking at the workaround here, it looks like this issue comes up when using the GCC compiler. Is that correct? What version of the compiler is being used that triggers the error?
I would like to be able to locally reproduce this strict warning when building the SDK.

This is my version of gcc!
anja@x86_64-conda-linux-gnu:~/git/arrow|kef/39385⚡ ⇒  gcc --version
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0

These are the instructions I followed to clone and build Arrow: https://www.datawill.io/posts/apache-arrow-development-cpp-conda-macos/ . Except where it mentions the CMakeUsersPreset, I used the above one.
Importantly, I installed the Arrow dependencies using conda on a Linux machine. Folks who installed on MacOS, or did not use Conda, did not see the Warning.


Vine API Geotagged data

Hello,
does Vine API also provide geotagged data? it it possible to search for geotagged data?
Thanks,
G

Hey @geraldstanje, they relate vines with Foursquare venues. You can search by locations by using the api method: api.get_venue_timeline(venue_id: <foursquareVenueId>)
An example of a foursquare venue call is: api.get_venue_timeline(venue_id='4ff36f2ae4b0fb4a81bab3fe') and the venue is: https://foursquare.com/v/4ff36f2ae4b0fb4a81bab3fe

will you also get them using the twitter api?

You would need to use foursquare api. There are several clients, like this one: https://github.com/mLewisLogic/foursquare

but, i will not get the people currently checked in to a venue?

Tell me what do you need exactly and it might be easier to help you :)
On Tue, Apr 7, 2015 at 9:54 AM, geraldstanje<EMAIL_ADDRESS>wrote:

but, i will not get the people currently checked in to a venue?
Reply to this email directly or view it on GitHub:
https://github.com/davoclavo/vinepy/issues/13#issuecomment-90561323

i would like to get geotagged-data (photos, tweet, checkins) people using vine or foursquare.

First you would need to get the IDs of foursquare venues in the vicinity, providing a set of latitude and longitude coordinates.
client = foursquare.Foursquare(access_token='USER_ACCESS_TOKEN')
venues = client.venues.search(params={'ll': '44.3,37.2'})

Check the documentation for this Foursquare python wrapper for details.
Then, using vinepy, you could get a timeline of vines posted in a specific venue by calling this method:
api = vinepy.API(username='EMAIL_ADDRESS', password='PASSWORD')
vines = api.get_venue_timeline(venue_id='FOURSQUARE_VENUE_ID')

thanks for the info. what is get_venue_timeline? how is it related to the userid?

get_venue_timeline gives you a timeline of posts tagged with a particular Foursquare venue, like this timeline.
Maybe I misunderstood what you wanted, so you have a Vine user, and want to retrieve all their geotagged vines?
If that is what you need, I think there is no way to retrieve only their geotagged vines, or perform a search within their timeline. What you would need to do is fetch the timeline for a user and then check which ones have a geotag.
If that still doesn't solve your problem, please elaborate more on what you need and I'd be glad to help you.

i want to receive all data (tweets, photos, video, etc.) of all vine users checked for multiple venues within a particular area - in real time.

Can you show an example of the code you've written? Or do you want me to
help you get started out with a gist?
On Sat, Apr 11, 2015 at 7:20 AM, geraldstanje<EMAIL_ADDRESS>wrote:

i want to receive all data (tweets, photos, video, etc.) of all vine users
checked for multiple venues within a particular area - in real time.
—
Reply to this email directly or view it on GitHub
https://github.com/davoclavo/vinepy/issues/13#issuecomment-91828637.


Add Global Switch to LF-Edge lanscape

Add logo and metadata for Global Switch

need logo created
Global Switch
is an owner, operator, and developer of large scale network dense, carrier & cloud neutral multi-tenanted data centres
cat- physical
name: Global Switch
homepage_url: 'https://www.globalswitch.com/'
logo: ''
crunchbase: 'https://www.crunchbase.com/organization/global-switch'


⚠ Bofrost.de has degraded performance

In 7953343, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1266 ms

Resolved: Bofrost.de performance has improved in 55fe76b.


Make it work with browserified search-index

The crawler should be search engine agnostic, but make an example on how it can work together with search-index.

Just download th browserified version, add it to the /lib folder (with the rest of the js-files) and require the file ./lib/search-index.js

Just link the libraries as shown in the simple web demo and figure out why it fails for one version of Firefox


Add more metadata props to list and listItem

Thank you for this library! I have tried to use other React libraries for rendering markdown in React Native, but many fell short. Thanks to remark, I have now found a robust way of manipulating Markdown before rendering.
This library apparently is meant only for React DOM, but I have found a way of supporting RN. Basically the biggest challenge lies with avoiding <View> inside <Text>, which is not allowed on RN for Android. On the web it's not a big deal to have, e.g., <div> inside <span>, so that's why this library works fine for the web. In particular, one of the tricky things to render are nested lists, e.g.:
- First
- Second
  - 2a
  - 2b
- Third

I made https://gitlab.com/staltz/mdast-normalize-react-native which transforms the AST so that it avoids complicated AST nodes that are hard to render with custom renderers in react-markdown. One of these transformations adds more metadata to list and listItem.
With this PR, custom renderers in react-markdown can utilize those additional props, and nested lists can then be rendered correctly. I have tested this in a real app, and I can tell it's all working great. You could say react-markdown is :+1: for React Native.
I'm not depending on this PR being merged because I published a fork:
https://www.npmjs.com/package/@staltz/react-markdown, but would appreciate if it gets merged. Thanks.

Hi André, this sounds really interesting. Are your serializers very specific to your project, or is this something you might be able to share? Perhaps we could use the react-native field in package.json to natively support rendering markdown in React Native as well?

Hey @rexxars my renderers are quite simple: https://gitlab.com/staltz/mmmmm-mobile/blob/7a237134060bb4a9e5e3be37b7a5c7f08bf2b5aa/src/app/global-styles/markdown.ts

Thanks for sharing!

Published as 3.4.0.
I decided to include your list metadata plugin by default - figured the properties added could be useful in other situations as well.
Thanks a bunch!


Cannot Sync changes back to PBIX/PBIT

we did some changes in PBI Service and wanted to sync them back to our PBIX in PBI Desktop but it raises a warning that it is "Unable to update table ... because the target is Power BI Desktop or .PBIT"

However, the change is actually just a new hierarchy that exists in the service but no in the local PBI Desktop. Considering that it is very well possible to create new hierarchies using other external tools (e.g. Tabular Editor), I was wondering if this warning is still a limitation or just some legacy that has never been updated.
Technically it should be possible to sync these kind of changes

according to the docs this is by design as only a very limited set of operations/changes is actually supported
https://learn.microsoft.com/en-us/power-bi/transform-model/desktop-external-tools#supported-write-operations
(and also not possible with Tabular Editor at the moment 🤷♂ )


Add support for FO-MAML and i-MAML

[1] https://arxiv.org/pdf/1803.02999.pdf
[2] https://papers.nips.cc/paper/2019/file/072b030ba126b2f4b2374f342be9ed44-Paper.pdf
Ideally the MAML class should be extended to support these

I'd like to take this up.

I'd like to take this up as well.

@arihantbansal any updates?

FO-MAML has been implemented (haven't tested thought). I'm reading the i-MAML paper now.

Can you put up a draft PR with the code you've written.
On Fri, Jan 28, 2022, 20:47 Arihant Bansal @.***> wrote:

FO-MAML has been implemented (haven't tested though). I'm reading the
i-MAML paper now.
—
Reply to this email directly, view it on GitHub
https://github.com/SforAiDl/jeta/issues/5#issuecomment-1024318897, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ANCPEQWMR5R6D43GNUVQ5M3UYKXSDANCNFSM5LLPNAIQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

@arihantbansal any status updates?

@arihantbansal any status updates?

I'll try to finish it by the end of the week. Have been under the weather.


Add screenshots to the README.md file

Currently the readme doesn't contain any pictures. Add screen shots of the running site, to make the readme more descriptive.

@archit-p Is there currently a demo? I'd be willing to take a stab at it for you.

@sdhutchins Go ahead and fork the repo, then clone it and use jekyll serve to see the preview. Add screenshots of those pages

Awesome. I'm on it.

@archit-p is this issue still open ?


Insert/append instead of replace files (tailwind & app.css / app.postcss) file

Describe the feature in detail (code, mocks, or screenshots encouraged)
During the setup, I believe it would be possible to replace & insert into the files instead of replacing them
The app.css / app.postcss looks easier to do
Basically something like

Remove in the file the existing
"@tailwind base;
@tailwind components;
@tailwind utilities;
"
Add at the top of the file the content shadcn-svelte needs to have

Would be ok in most cases
For the tailwind.css config, might be trickier but I believe someone could try :

Import the existing config as an object

Assign the new values (can alert at that point : were values only appended or some values replaced ? in the latter case maybe the user should see them, but I guess on clean installs this shouldn't happen)

Write the new file

You could even in the CLI try the assignment & then tell the user "values will be appended but all your existing values will be kept" or "some values will be replaced, make sure to keep a copy of your file"
What type of pull request would this be?
None
Provide relevant links or additional information.
No response

There are a ton of variables at play here that introduces a lot of complexity for minor gain. What if the user already has some of those properties defined, are we expected to overwrite them? leave them alone? also considering both TS & JS are possible, or .css or .postcss.

Closing as not planned at the moment


Pin numpy<2.0.0 to omit "ValueError: numpy.dtype size changed, may indicate binary incompatibiliy"

A current install results in the following error:
mamba create -n quackosm pip python=3.11
mamba activate quackosm
pip install quackosm"[cli]"
quackosm germany-240701.osm.pbf
Traceback (most recent call last):
  File "/home/username/mambaforge/envs/quackosm/bin/quackosm", line 5, in <module>
    from quackosm.__main__ import main
  File "/home/usernamemambaforge/envs/quackosm/lib/python3.11/site-packages/quackosm/__init__.py", line 8, in <module>
    from quackosm.functions import (
  File "/home/username/mambaforge/envs/quackosm/lib/python3.11/site-packages/quackosm/functions.py", line 18, in <module>
    from quackosm.pbf_file_reader import PbfFileReader
  File "/home/username/mambaforge/envs/quackosm/lib/python3.11/site-packages/quackosm/pbf_file_reader.py", line 34, in <module>
    from pyarrow_ops import drop_duplicates
  File "/home/username/mambaforge/envs/quackosm/lib/python3.11/site-packages/pyarrow_ops/__init__.py", line 4, in <module>
    from pyarrow_ops.join import join
  File "/home/username/mambaforge/envs/quackosm/lib/python3.11/site-packages/pyarrow_ops/join.py", line 5, in <module>
    from cjoin import inner_join
  File "pyarrow_ops/cjoin.pyx", line 1, in init cjoin
ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject

This is caused by a numpy>2.0.0 regression and can be mitigated by downgrading numpy
pip install "numpy<2.0.0" --force-reinstall

A possible solution would be to pin numpy in the pyproject.toml
  [project]
  name = "QuackOSM"
  ...
  dependencies = [
      ...
+     "numpy<2.0.0",
  ]

See also this stackoverflow question

Hi @mwip, thank you for raising this issue.
I can confirm that I've also stumbled across this error during development. The original issue comes from the fact that one of the dependencies, pyarrow-ops is compiled during installation and is using numpy binaries. After updating the numpy without reinstalling pyarrow-ops, is results in this binary incompatibility. Probably during installation, pyarrow-ops compiled with older version of numpy that was preinstalled with mamba environment and then was updated because of other dependencies minimal requirement.
Since I'm only using a small portion of this dependency, I'll reimplement it in QuackOSM and leave numpy unbounded, so it'll work properly both in 1.x.x and 2.x.x version of numpy.


[Python] Add documentation of auto-instrumenting Python services using the operator

Adds a new section for Python automatic docs detailing how to use the OpenTelemetry operator to inject auto-instrumentation.
If we like this I can do something similar for the other languages the operator can inject.

thanks @TylerHelmuth
I am wondering if this should live below https://opentelemetry.io/docs/k8s-operator/ ? Where do you think people might expect it?
cc @pavolloffay

I am wondering if this should live below https://opentelemetry.io/docs/k8s-operator/ ? Where do you think people might expect it?

I would prefer to keep it in the operator docs, but crosslink it from the python instrumentation docs.

@pavolloffay Yes, agreed. I think we can iterate on this. We can extract various sections as subpages and share (e.g., collector stuff, some commentary) or break some of it up into separate articles (although only if it doesn't complicate the end-user experience).
@TylerHelmuth how would you like to proceed? We can take it in as-is and I can tweak from there, or we can try to make adjustments in this PR. I can PR against your branch if that works.

I can update this PR on Tuesday to reorganize the content.

@pavolloffay @svrnm @cartermp @chalin
Moved content under k8s-operator and tried to keep the "walkthrough" feel of the doc.  My thought was that the ins and outs of the different operator CRs and other configuration options is best handled in the operator's documentation and this section should be used as a "I want to auto-instrument a language, give me step by step instructions".

@svrnm each section of yaml is already ready to be copy and pasted into a terminal and use kubectl to apply the resource.  Is there more you think we should add?
I purposefully added the ability to copy and paste the sections but didn't want to get into details about kubectl itself or the various methods of applying resource in k8s.  My thinking was that if the reader feels comfortable using an operator (which I view as an advanced k8s technique), then they should already know how to apply resources using kubectl.

@svrnm each section of yaml is already ready to be copy and pasted into a terminal and use kubectl to apply the resource. Is there more you think we should add?
I purposefully added the ability to copy and paste the sections but didn't want to get into details about kubectl itself or the various methods of applying resource in k8s. My thinking was that if the reader feels comfortable using an operator (which I view as an advanced k8s technique), then they should already know how to apply resources using kubectl.

I know plenty of people that use the operator without really knowing a lot of basics for k8s ;-) ... but I get your point. Giving one way of many and calling out that there are alternatives would be my preferred solution, but that's optional and from my point of view we should be good to get this into the docs?
@open-telemetry/operator-approvers any concerns?

@open-telemetry/operator-approvers -- any feedback? I'll merge within the week since it's been vetted by several folks at this point

🎉


Please how do we limit total-request/ response time?

Please how do we limit the total request/response time to a fixed value?
This below does not work in limiting the total request/respose time
Req.get!("https://httpbin.org", connect_options: [timeout: 2000])

At the moment the best option is to wrap your Req call in Task.async(fun) |> Task.await(timeout). This is not good enough obviously, we will improve it, it's being tracked in https://github.com/wojtekmach/req/issues/428.


Docs: Quick and Easy Testnet Launch

A lot of the structure is there. It could use some polish: https://github.com/ethereum/trin/blob/c00e99c6b02b9f331cec4a43628eec5cfef7f242/docs/getting_started.md
Also, maybe bump the Getting Started a little higher up the repo readme.

I've started working on the outline for a blog that gives a little overview of the portal network, and then goes into the basics for getting setup with trin and requesting content from the testnet. Any thoughts on a blog vs. improving getting_started.md vs both? I was thinking to publish it on the snakecharmers blog.

Yeah, I imagine a blog could give the appropriate context and background, with little snippets of code in between, where the getting_started can mostly give just a series of lines of code to run (and maybe link to the blog post?).


ACCUMULO-4121 - netbeans

Added typical files for a maven project to all .gitignores
Also excluded those files in the rat plugin section of the pom.xml files.  Not
excluded by default, see
http://creadur.apache.org/rat/apache-rat-plugin/check-mojo.html#useDefaultExcludes

This change set is inconsistent on terminating files with a newline or not.

@madrob you are correct.  I see https://github.com/apache/accumulo/blob/master/contrib/Eclipse-Accumulo-Codestyle.xml#L205, but running mvn with -Pautoformat doesn't add the newlines.  Neither did the EclipseFormatter plugin for Netbeans.
I can add them manually, but is there a better way?

http://unix.stackexchange.com/a/31955 looks helpful? Idk, manually might be fine since there's only a handful of files, but using sed might be more fun.

@madrob, thanks for sed.  My question was more along the lines of "Why didn't the Eclipse-Accumulo-Codestyle.xml fix this?"  Maybe it doesn't format .gitignore files?
I'll fix this manually.

My question was more along the lines of "Why didn't the Eclipse-Accumulo-Codestyle.xml fix this?" Maybe it doesn't format .gitignore files?

Not sure, myself. Also not a big deal to me FWIW.

:+1: by me. Will merge later today/this weekend unless someone beats me to it.

Cool, thanks @joshelser.  Looks like it doesn't merge cleanly with 1.7 and master.  Should I do separate pull requests?

Looks like it doesn't merge cleanly with 1.7 and master. Should I do separate pull requests?

Nah, don't worry about it. I can just do the merge locally. Your changes aren't difficult to reason about :). I'll ping you if I need help.

Looking at the changes, I'm reminded why we didn't do this before: a lot of maven plugins assume that generated files will not appear in a place other than target, or if they do, they will appear as dotfiles.
Netbeans has the unfortunate behavior of using configuration files plopped right in the middle of the source tree, which are not dotfiles. This can cause some very unexpected and undesirable behavior in some plugins, especially packaging/assembly plugins, which might create "dirty" artifacts containing these configuration files.
They might also not get properly ignored by a wide variety of plugins. I say this not to object, but only to document that we need to pay attention to these files, if they make it into the source tree, and we need to be extra careful to check that they do not exist in any of our released artifacts. (which is an easy enough check to do).
It would be nice if Netbeans allowed putting these files outside the source tree, or if it wrote them as dotfiles. Perhaps that's an option? If not, I'd encourage Netbeans developers to poke upstream about doing that in the future.

especially packaging/assembly plugins, which might create "dirty" artifacts containing these configuration files

Yeah, I thought about that. I figured it was limited to release managers (so only a few people would have to worry about it), so it was OK.


Question: Sensor Template Lights

Can you share what your template sensors look like to get the counts for lights?

I was just about to ask the same thing.

Sure, here it is:
{{ states | selectattr('entity_id','in', ['light.add_all_your_lights_here','switch.example'] )      |selectattr('state','eq','on') | list | count }}


Update app metadata to better match its behavior.

Description
I had originally intended this to only show a character per day (to avoid rate limiting), but I realized later that the way I am using the http cache doesn't produce that outcome. That being said, the fact that I am still caching every response for 24 hours should probably keep the app from getting rate limited by the API. There are fewer than 1500 possible characters.
Anyway, this PR changes the app metadata to describe what it actually does, which is serve a new, random Marvel character whenever it renders.
Copilot

🤖 Generated by Copilot at ee8f1b0
Summary
🎲🌟🔄

Updated the marveloftheday applet to show a random Marvel character instead of a fixed one per day. Changed the applet name, summary, and docstring in manifest.yaml and marvel_of_the_day.star accordingly.

name and summary
changed to show random chars
a lively applet

Walkthrough

Update applet name and summary to show random character (link, link)

I had originally intended this to only show a character per day (to avoid rate limiting), but I realized later that the way I am using the http cache doesn't produce that outcome. That being said, the fact that I am still caching every response for 24 hours should probably keep the app from getting rate limited by the API. There are fewer than 1500 possible characters.

I think you can get the originally intended behavior with a minor modification. Call random.seed(time.now().unix // 86400 in main(). That'll make the RNG produce the same number over each 24h time window. The exact transition point from one graphic to the next is not entirely clear that way, but it'll do the trick I think. Also makes the app super easy for us to cache in the Tidbyt backend. =)

I had originally intended this to only show a character per day (to avoid rate limiting), but I realized later that the way I am using the http cache doesn't produce that outcome. That being said, the fact that I am still caching every response for 24 hours should probably keep the app from getting rate limited by the API. There are fewer than 1500 possible characters.

I think you can get the originally intended behavior with a minor modification. Call random.seed(time.now().unix // 86400 in main(). That'll make the RNG produce the same number over each 24h time window. The exact transition point from one graphic to the next is not entirely clear that way, but it'll do the trick I think. Also makes the app super easy for us to cache in the Tidbyt backend. =)

Ah, thanks for that. I updated the code. It works locally, and now it's back to being in line with what I intended. I kind of like the advent calendar suspense of it being a once a day thing. :)


prophyll and scale leaf

Prophyll (PO:0009042) and scale leaf (PO:0006003) are children of phyllome. Suggest making them children of vascular leaf.
Reported by: rlwalls2008
Original Ticket: obo/plant-ontology-po-term-requests/273

#137 Vascular and non-vascular leaves tracker.  (new github tracker for reference in rlwalls2008 comment above.)


[etcd_metadata] Add tolerations to metadata deployment

Summary: Adds tolerations for arm64 and amd64 taints to the etcd_metadata deployment.
Relevant Issues: #893
Type of change: /kind cleanup
Test Plan: Tested that the metadata deployment works on arm tainted nodes now.

Should we follow the same pattern we do in persistent_metadata?


Method in OrientVertex for counting Edges to destination vertex by optionally giving the Edge labels

As adviced by Luca, in the topic https://groups.google.com/forum/#!topic/orient-database/dfsaWsESB-Y at google groups, I am creating this issue
This is to have a method in OrientVertex class as per below signature
int OrientVertex.countEdges(OrientVertex destination, Direction direction, String... labels)

This will reduce OrientVertex.getEdges() method calls just to check existence and if the Edge objects are not needed.
Pls tell me if I have to give any other information

By reading the thread, the problem was in hasNext() that compute lazy the traversal. So having a count() wound't optimize this case.


Update broken link

What does this PR do?
Add resource(s) | Remove resource(s) | Add info | Improve repo
Update the resource. (Why Rust)
For resources
Why Rust - Jim Blandy
Description
The original link is dead.
Why is this valuable (or not)?
How do we know it's really free?
It can free to view in oreilly website now.
But it is not PDF no longer.
For book lists, is it a book? For course lists, is it a course? etc.
Checklist:

[x] Read our contributing guidelines
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists  in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction)

Followup

Check the output of Travis-CI for linter errors!

Hey, and welcome to the repository! :wave:
While this link is dead, it looks like O'Reilly still hosts a version of this book.
Unfortunately, the downloadable version has now been locked behind a subscription it seems.
It could be worth replacing it with this instead of removing it:
https://www.oreilly.com/content/why-rust/

This is the full ebook "Why Rust," by Sean Murphy. A downloadable edition of this ebook is also available.

Hi, @SethFalco
Many thanks for your advice.
I have updated the link.

Thanks, and welcome to free-programming-books!


A better though not perfect mobile menu.

Travis tests have failed
Hey @bakert,
Please read the following log in order to understand the failure reason.
It'll be awesome if you fix what's wrong and commit the changes.

Failing due to #5176


Testing

The following items were added

Test for hasher, voyage command
Test for util, file_system, gadget
Test for cli
Test for blob

I also apply formatters and overall code refactoring.

TODO: another command test


Marshalling

Developed together with @dhamidi to provide marshalling functionality for Dry::Monads.

Is not ready to be a proper PR right now

hey, @rocknruby
Marshaling is actually implemented by ruby via converting a ruby object to a string encoded with some binary format:
pry(main)> Marshal.dump(Dry::Monads::Some(1))
=> "\x04\bo:\x1DDry::Monads::Maybe::Some\x06:\v@valuei\x06"

Ruby has unmarchaling out of the box:
pry(main)> Marshal.load(Marshal.dump(Dry::Monads::Some(1)))
=> Some(1)

Please, do not confuse it with serialization to JSON (look at this SO question for details).
This means your specs are passing even if you remove your to_json methods.
Frankly speaking, json serialization/deserialization is not dry-m concern after all. Implementing to_json methods requires you to add it everywhere, even to the code you don't own. Given that JSON is a widely spread format, this can be not a big issue, but every new format will require adding such custom methods to all classes which is obviously not a scalable approach (see Expression problem for details).
This problem can and should be avoided in a library, which performs serialization, by providing a proper API, that allows you to set your rules for serialization of any datatype you want.

@flash-gordon thanks for spending time on this topic. I made it in a rush and had this for a long time on my todo. You are absolutely right, I mixed up the marshaling and JSON serialization topics.
Anyway, I fixed the spec so that it makes sense why I created the PR.
I agree the dry-m is maybe not the right place for providing this for the community.
As an example to JSON serialize a time instance you can require 'json/add/time' (see http://ruby-doc.org/stdlib-2.3.0/libdoc/json/rdoc/Time.html ) also look at the spec. So what I would love is something similar. If you agree we can talk about the code. Whats your opinion?

@flash-gordon I cant reopen the PR after rebasing so the source can be find https://github.com/rocknruby/dry-monads/tree/marshalling

ah, thank you for pointing that, I've never looked how this is implemented for core classes. Given that it is done in ruby's standard lib, we can stick with something similar.
Let's have the same structure under lib dir, like this: dry-monads/lib/json/add/dry/monads/maybe.rb. Then, in this maybe.rb you can put your maybe extension. It will be loaded as soon as you run require 'json/add/dry/monads/maybe'


Pick fastest

I have changed the method pick fastest to now return the oficial fastest lap of the driver in the whole session. If the fastest lap was on Q1 (maybe because it was the only dry round) that lap is returned. I also validated that the lap was not deleted, by checking race control messages.

Hey, thank you for working on this. I understand that this is your first pull request, right? It looks like some things are not quite as they should be. There are way too many changed (or rather new) files here. We need to sort this out first.
From the looks of it, you have cloned FastF1 directly into your virtual environment directory. Now git has decided to add all those files that belong to your virtual environment to those commits. So you basically have added your whole development environment to the repository. We need to get rid of this again, before we can continue.
This is what your project structure looks like right now:

And this is what it should look like:

The virtual environment needs to be contained within a separate subfolder. Preferably, you should name it venv, then it will be automatically ignored by git.
Alternatively, you could place the whole virtual environment somewhere completely different, outside the project directory.
Please try to fix that structure and update the PR, so that those unwanted files are removed.
Let me know if you need any more help.


Failing test for findOneBy

In response for: https://github.com/doctrine/mongodb-odm/issues/1449
I've quickly extended one of the tests to show that querying for a single document takes 3 queries vs expected 1.
To run the test:
phpunit --filter testOnlyEmbeddedDocumentUpdated AtomicSetTest tests/Doctrine/ODM/MongoDB/Tests/Functional/AtomicSetTest.php

Thanks! Hopefully fix for this will also solve your problem from SO :)

See https://github.com/doctrine/mongodb-odm/issues/1449#issuecomment-229471585 for an explanation of this - closing since it's not a bug.


Add to Awesome iOS

Add link to repo to Awesome iOS

https://github.com/vsouza/awesome-ios/pull/2669


irctest dashboard

[Just dumping some thoughts here]
In the last week I added CI to the repo + made it so GH Actions exports the pytest results as junit XML.
So far this isn't very useful, because the only UI we have is the shitty bot comments on PRs, and a list of successful/failed builds, without per-test details.
So I'd like to make a dashboard (probably just a cron generating XHTML files) that reads these junit XML files, and produces large support tables, highlighting what tests pass for each ircd, and what tests are automatically skipped (with the reason) based on these XML files, and what tests are manually excluded from the collection (also with the reason) somehow (parsing comments in the makefile?)
Ideally this should be readable to people unfamiliar with irctest (eg. by including each test's docstring) so they can use it to see exactly what is implemented by each IRCd.

Closed by GH-152.


style: error uses the common naming format

style: #101

rename titie, style to chore

Thanks for your contribution. :)


Update Roslyn deps to 3.3.0 versions

This uses the 3.3.0 packages that Roslyn's published for us to nuget.org (unlisted).
This way we can pin to this version ahead of the release.
Tell-mode because we've already discussed this with the QB.
/cc @agocke

/azp run AspNetCore-Tooling-ci

/azp run AspNetCore-Tooling-ci

@dougbu - let's catch up on this on Monday. Most of what's going on here is pretty specialized and worth explanation 😬


ENH: add ctree CLI and app

Method forms a so called "cluster tree" formed by pairwise comparison of the mash distance between sequences or euclidean distance between kmer frequencies of the sequences.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>6
Details

0 of 0   changed or added relevant lines in 0 files are covered.
177 unchanged lines in 12 files lost coverage.
Overall coverage increased (+0.5%) to 92.514%

Files with Coverage Reduction
New Missed Lines
%

.nox/test-3-12/lib/python3.12/site-packages/diverse_seq/records.py
8
91.89%

.nox/test-3-10/lib/python3.10/site-packages/diverse_seq/records.py
8
91.89%

.nox/test-3-10/Lib/site-packages/diverse_seq/records.py
8
91.89%

.nox/test-3-12/Lib/site-packages/diverse_seq/records.py
8
91.89%

.nox/test-3-11/lib/python3.11/site-packages/diverse_seq/records.py
8
91.89%

.nox/test-3-11/Lib/site-packages/diverse_seq/records.py
8
91.89%

.nox/test-3-10/lib/python3.10/site-packages/diverse_seq/cli.py
21
86.98%

.nox/test-3-12/lib/python3.12/site-packages/diverse_seq/cli.py
21
86.98%

.nox/test-3-11/lib/python3.11/site-packages/diverse_seq/cli.py
21
86.98%

.nox/test-3-11/Lib/site-packages/diverse_seq/cli.py
22
86.39%

Totals

Change from base Build<PHONE_NUMBER>5:
0.5%

Covered Lines:
6711

Relevant Lines:
7254

💛  - Coveralls

I noted something which I'd missed in my first review that is quite important. Support for parallel computation within Jupyter notebooks is difficult and the standard library does not support it. I've solved this in cogent3 by using the loky third-party library. Just use the cogent3 as_completed() function for this.

I've changed the implementation to also use loky as well, as I relied more broadly on the Executor interface


Add more Azure examples

We have a dearth of Azure examples at the moment.  This doesn't accurately reflect the completeness of the provider and gives the impression it isn't ready for prime time.
Let's spend some time beefing up core examples around the "Colada" triad -- containers, serverless, and infrastructure -- especially once https://github.com/pulumi/pulumi-azure/issues/42 has landed.

Here is one more:
https://github.com/pulumi/examples/pull/91

We have three with one more in PR, and a few more planned in the near term.  Going to close this issue out and we'll track individual areas we'd like to add more.


Guest Access configuration

Please include a link to this: https://docs.microsoft.com/en-us/microsoftteams/set-up-guests.
If you don't set up correctly the guest access, then domain users won't be able to see each other.

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

ID: 59900927-5e5f-77a4-04be-e05a91330fca
Version Independent ID: 1e4d6b87-f57c-fa45-1630-3c32b821d93c
Content: Communicate with Teams users in another organization
Content Source: Teams/let-your-teams-users-communicate-with-other-people.md
Service: msteams
GitHub Login: @tonysmit
Microsoft Alias: tonysmit

@dquagliano Thank you for this feedback
We appricate you helping to make the docs better. I am sending this off to the Teams team so it can be updated appropriatly.
I was able to get this into the backlog for the Teams team. The team will get this prioritized into a sprint plan. Thank you for reporting and making the docs better. Much appreciated.
I made a note to request the team to update this when the work is complete.

Added note re. guest access to article.

@dquagliano SharS has added this to the article. I am closing this issue.


Create CODEOWNERS

Make SIG Contributor Experience approvers code owners, so they will be asked to review when a new PR is created

I think approvers need to have maintainers as a sub team, but that can be dealt with independently from this PR

Yep! See https://github.com/open-telemetry/community/blob/0c65ec51174cf93e71a722d134a5d848be18bc87/docs/how-to-configure-new-repository.md#L39-L41.
I added all of @open-telemetry/sig-contributor-experience-maintainers to @open-telemetry/sig-contributor-experience-approvers just now.

thanks @arminru & @mx-psi , I should have squash merged ;)


python3Packages.pynobo: 1.2.0 -> 1.3.0

Motivation for this change
Update to latest upstream release 1.3.0
Change log: https://github.com/echoromeo/pynobo/releases/tag/v1.3.0
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 140012 run on x86_64-linux 1

2 packages built:

python38Packages.pynobo
python39Packages.pynobo


fix unit for UST swaps

:books: Linear Ticket :books:
#LIQ-1285

Can you check labels for fees on Send/Swap/Edit Custom fee as well just to make sure they are displayed correctly please


Ajax extensions work on local machine but not on web

I have a web site which I am developing in visual basic.  I use Visual Studio 2015 community and have installed the most recent version of the Ajax toolkit.  I am using master pages as well.  I have the following line of code right after the <%@ Page ....%> tag:
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
I also have the following code within my main content tage:
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
I am making use of the ajaxToolkit:CalendarExtender and the ajaxToolkit:MutuallyExclusiveCheckBoxExtender.
Both extenders work fine when I test them on my development machine.  When I build my application and put the resuting files to my web server, the extenders fail to work.
What am I missing?
Thank you,
Jonathan

Hi @jonathn6 ,
There can be various reasons for that situation.
Would you please check the console and network tabs of the browser's development tools (F12 ) for errors?


Update license and add a basic contribution guide

As discussed in #326, this PR unify the project license to use MIT.
I've also added a basic contribution guide. The extra suggestions in https://github.com/evrencoskun/TableView/issues/326#issuecomment-763025357 can be addressed in a separate PR, but adding Pull Request and Issues templates to the project.

Looks fine Thanks @MGaetan89

Looks fine Thanks @MGaetan89


Problem with running app store application

Hi!
I have problem with run application(example: camera)
.
Can you help with this problem?
I'm trying to use any account: admin, not admin, login as email. I'm always have this error.

Have you tried running one of our sample apps? The calculator sample app runs the application directly.

yes, i tried. in all cases the same result. Maybe i need to try run tests on Windows 10?

Yes, try running on Windows 10 PC and see if it works then. You might need to close File Explorer per your screenshot.

yeee, it's work on windows 10. I think, need to add requiments in additional information of this driver)


Error when no public/images folder exists

I only have statically imported images, so i don't have a folder public/images
when running the script, all optimizations seem to be performed correctly, however at the end it reports an error:
Error: ENOENT: no such file or directory, open 'public/images/next-image-export-optimizer-hashes.json'
    at Object.openSync (node:fs:600:3)
    at Object.writeFileSync (node:fs:2221:35)
    at nextImageExportOptimizer (node_modules/next-image-export-optimizer/dist/optimizeImages.js:376:8) {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path: 'public/images/next-image-export-optimizer-hashes.json'
}

it means the hashes are never saved, and every time i run yarn export it will once again optimize all images, taking some time...
only once i manually create the folder public/images all is well 👍
i suggest you first check for the folder's existence before trying to write to it...

Thanks for the bug report and the PR! I am about to merge it 👍