Open  aws-java-nio-spi-for-s3 Public to S3 compatible providers

Hello,
I'd like to use this provider to access S3-like services. To start with, I was thinking of being able to specify the endpoint as part of the s3 url, but another mechanism like passing additional options in the env Map would work as well.
Is anybody already working on something like this? Would you be interested in receiving a contribution?
thanks in advance,
Stefano

Nobody is currently working on this. A contribution that could do this would be interesting, especially if it can be done via configuration or composition.

Thanks for the reply, I can work on it. What's the best way to discuss the implementation? is this issue ok?

It might be worth taking a look at how the AWS CLI is providing the option to override the endpoint, as its a similar use case. The CLI is also using s3://* URI to provide locations in S3, and uses the --endpoint-url argument if the URL needs to be overridden.
https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#privatelink-aws-cli-examples

I think the best way to do this would be to make it easier for a user to provide a customized S3Client using one or more of the following approaches.
Both the sychronous and asynchronous clients can be built with an endpoint configuration that could include the custom endpoint URL https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/client/builder/AwsClientBuilder.html#withEndpointConfiguration-com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration-

Currently several public methods on channels have a protected version that allows you to provide a client. These versions are mostly used for testing and allow a Mock client to be used. If they are made public then any client could be used.
The S3ClientStore class of the library builds a client for each bucket and caches it. You could add methods to allow you to register a different client for a bucket.
Similar to 2. you could allow the S3ClientStore to be constructed with a semi-configured S3ClientBuilder (and AsyncBuilder) that will be used by default for constructing all clients.

Thanks @dannycjones, @markjschreiber. What about one or both of even simpler approaches:

add a configuration parameter S3_SPI_ENDPOINT following the pattern used for credentials
allow url like<EMAIL_ADDRESS>
I would also add a config parameters S3_SPI_PROTOCOL with value (http|https) for testing purposes as it may be convenient to use HTTP

@markjschreiber thanks for the hint on the strategy of using S3ClientStore. As a first step, I would move the cache to S3FileSystemProvider so that its cdonfiguration would be available without passing it over multiple classes.
It would be like this: https://github.com/stefanofornari/aws-java-nio-spi-for-s3/pull/1/commits/61bdd15b55a6236cc59bda50800decd4689c35f3
The next step would be to create an instance of S3ClientStore passing all or the relevant configuration (i.e. credentials and endpoint).
The third and optional step would be to get rid of the use of the static method S3FileSystemProvider.getClientStore()

That might be a better design but removing the public static getInstance() method from S3ClientStore is a breaking change because you remove a public method. It also means changing the class from a Singleton pattern to a more standard class which might be OK but we should discuss the implications.

Good point about the breaking change.
Regarding the singleton pattern, the main problem I am facing is that we need to pass on some sort of configuration to the constructor in order to make S3ClientStore able to setup the client (e.g. to override the endpoint).
We could think of a different pattern using a sort of factory class, but the design would be more complex and I am not sure it is worth in this case. Plus, anyway we need to find a way to tell S3ClientStore which factory to use.
If we do not do it in the constructor, we introduce a two steps creation process that can lead us to cumbersome behaviour.
Something like this smells to me:
S3ClientStore cs = S3ClientStore.getInstance();
...
cs.setEndpoint("xxx");

What happens in between the creation and setEndpoint()?
I guess we can also ask the other question: which value is the singleton bringing on the table?

The singleton pattern isn't bringing a lot. Main value is there is one place you can go to get an instance of a client rather than building a new one all the time.
This,
S3ClientStore cs = S3ClientStore.getInstance();
...
cs.setEndpoint("xxx");

is about the same as
S3ClientStore cs = new S3ClientStore();
...
cs.setEndpoint("xxx");

A better approach (maybe the one you are thinking of) would be:
S3ClientStoreConfiguration conf = new S3ClientStoreConfiguration();
// do things to conf
S3ClientStore customStore = new S3ClientStore(conf);
S3ClientStore default = new S3ClientStore();

You could also make the "default" client store a singleton (technically flyweight) but allow creation of custom stores via the S3ClientStore(S3ClientStoreConfiguration config) constructor.

Hey Mark, I do have a question regarding this snippet:
https://github.com/awslabs/aws-java-nio-spi-for-s3/blob/da0b9a79d95665c15393a33d3f09a9bd40c44d45/src/main/java/software/amazon/nio/spi/s3/S3ClientStore.java#LL150C1-L156C34
As fare as I understand, it uses a default S3Client locationClient to determine the region to pass to createForRegion(). locationClient, sets the default region to US_EAST_1 (https://github.com/awslabs/aws-java-nio-spi-for-s3/blob/da0b9a79d95665c15393a33d3f09a9bd40c44d45/src/main/java/software/amazon/nio/spi/s3/S3ClientStore.java#LL40C34-L40C48).
But also createForRegion() falls back to US_EAST_1 if regionString is empty (https://github.com/awslabs/aws-java-nio-spi-for-s3/blob/da0b9a79d95665c15393a33d3f09a9bd40c44d45/src/main/java/software/amazon/nio/spi/s3/S3ClientStore.java#L243).
So in essence, I am wondering if locationClient is needed at all or if we can pass a null region if we want to use the default.

Please ignore https://github.com/awslabs/aws-java-nio-spi-for-s3/issues/11#issuecomment-1575031350, I think I've got it.

I think I've got the logic here, which works for S3 but may not work for other services. Is that ok if we find the location only if no endpoint is provided?
Additionally or alternatively, the region can be specified in env AWS_REGION or system property aws.region (software.amazon.awssdk.regions.providers.DefaultAwsRegionProviderChain). Can we  maybe look for the location if no region is provided by any other mean?

Unfortunately regions and S3 buckets have an interesting history as S3 is older than regions. The bucket names and ARNs also have no information that tells you the region the bucket is in. This means you initially have to make a call to us-east-1 to determine the region of a bucket and then you have to construct a client for that region. You can't rely on AWS_REGION because you may need to use two different regional clients for the reason above and you can't know what AWS_REGION should be unless you know the region of the bucket. For public buckets you probably won't know the region.
I don't know how other object stores that use the S3 API handle regions, do they have them? If the standard S3Client can be used for these, what do you normally set the region to? Is it null?
I think it would be fine to use alternative logic for endpoints that are not aws endpoints.

ok, thannks, makes sense. I will keep the current logic if no endpoint is given.

I don't know how other object stores that use the S3 API handle regions, do they have them? If the standard S3Client can be used for these, what do you normally set the region to? Is it null?

I can't speak for all, but most of them are much less sophisticated than AWS and in many case they do not have regions or it is assumed you are accessing and looking for a bucket in that specific region. In most cases it is enough to provide any valid region.

Thank you @stefanofornari for all your hard work, it would be a very useful feature for the library. I hope the PR will be merged soon.

@stefanofornari @markjschreiber I am interested in the status of this issue, because I have a use case where I would like to override the endpoint to use a non amazon S3 server, and this issue appears to address this. Although the issue is closed, as far as I can tell all of the modification were backed out prior to the 1.2.3 release. Is there a plan to continue this work, or a new plan to reintroduce the changes? Or another supported way to override the built-in default endpoints?

Hi @tony-johnson,
we are making good progress in adding this capabilities, but we split the work in multiple PRs for easier integration and evaluation of the improvements. The most advanced at the moment is  PR #133 , which hopefully will be merged soon.
This will set the ground for being able to support 3rd party S3 providers keeping full compliance of the library with AWS S3.
If you want (and you can build from source), you can play with a preview of where we want to go downloading my fork https://github.com/stefanofornari/aws-java-nio-spi-for-s3 (follow the branch 'main'). Any feedback is more than welcome.

@stefanofornari Thanks, I tried the branch you pointed me at, and was able to make it work, although I did run into a few issues that I had to work around. Where would you like me to send feedback, should I open issues against your branch, or ?

Please open an issue against my repo, I will review it and if it is in standard code I will mirror it here.

I just pushed a new release to maven central. Should be visible within a few hours.


The database API is huge, messy and inconsistent

Problems in the database API:
(1) vector<optional<account_object>> get_accounts(const vector<account_id_type>& account_ids)const;
(2) vector<optional<account_object>> lookup_account_names(const vector<string>& account_names)const;
(3) vector<optional<asset_object>> lookup_asset_symbols(const vector<string>& symbols_or_ids)const;

Accounts have different functions (1)-(2) to get accounts.
Assets have a single function (3) which accepts symbols or stringified ID's.
(4) optional<account_object> get_account_by_name( string name )const;

Accounts have a function (4) to get a single account by name, everything else uses vectors.
(5) std::map<string,full_account> get_full_accounts( const vector<string>& names_or_ids, bool subscribe );

get_full_accounts (5) gets the account object and associated objects, nothing else has anything similar.  It would
be useful to have other queries which fetch an object and all related objects, e.g. given a BitAsset,
fetch the asset object, BitAsset data structure, and the asset object for the base asset.
(6) vector<asset_object> list_assets(const string& lower_bound_symbol, uint32_t limit)const;
(7) vector<call_order_object> get_call_orders(asset_id_type a, uint32_t limit)const;
(8) map<string, witness_id_type> lookup_witness_accounts(const string& lower_bound_name, uint32_t limit)const;

Methods (6), (7), and (8) do the same thing but have different names.
(9) vector<limit_order_object> get_limit_orders(asset_id_type a, asset_id_type b, uint32_t limit)const;
(10) vector<call_order_object> get_call_orders(asset_id_type a, uint32_t limit)const;
(11) vector<force_settlement_object> get_settle_orders(asset_id_type a, uint32_t limit)const;

Methods (9), (10), and (11) have no way to request later pages.  Furthermore, on reading the code,
the limits are not enforced by some of these methods.
(12) * @param limit Maximum number of results to return -- must not exceed 1000
(13) * @param limit Maximum number of assets to fetch (must not exceed 100)

Maximum number of things to query should be consistent and enforced.  We
may want to provide local wrappers for methods which return iterators, possibly
with latency hiding (e.g. instead of having it block for the whole round trip
when you reach the end of the iterator, instead have it send off the request
for the next page when the iterator reaches the halfway point of the current
page).
The database API needs to be refactored, broken apart into multiple simpler API's.  The sections in database_api.hpp could conceivably be separately implemented (although we need some kind of union API to make them all accessible to clients under API ID 0).

This issue was moved to bitshares/bitshares-core#95


Make an RSD entry

Blocked by:

#8
#12

Once we have an entry in the Research Software Directory, we can add a badge like
using:
[![Research Software Directory](https://img.shields.io/badge/rsd-cudawrappers-00a3e3.svg)](https://www.research-software.nl/software/cudawrappers)


New QSG flow

Adds new flow to run QSG using the Ballerina Integrator Dashboard.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Samuel Mervyn Gnaniah seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Closing this. Will resend.


[pigeon][swift 6]use typed throw for swift codegen

Swift 6 introduces "typed throws":
func foo() throws(MyError) { … }

do {
  try foo()
} catch {
  // error here is of type MyError (rather than of type `Error`)
}

A good way to force developers to throw PigeonError.
Only available for Swift 6 though, so will need to fix all the concurrency warnings before we can use it.

@hellohuanlin looks like you can @available a Swift version, so potentially this could be done now without waiting for the plugins to migrate:
https://github.com/swiftlang/swift-evolution/blob/main/proposals/0141-available-by-swift-version.md

Oh I didn't know this. But it seems Swift version only supports @available (which is used to annotate a type or a function), but does not support #available (run time check):
if #available(...) {

Gives:

Swift language version checks not allowed in #available(...)

So we probably can't use it for a very long time.


Admin extensions preflight authentication

Issue summary
According to the docs, I should be able to make authenticated api calls the extension (which runs in the frontend) to my app's backend (which runs on the same domain as app_url).
The app uses the Express.js template
I have an admin action extension that makes the following API call:

The route is guarded by the validateAuthenticatedSession middleware and allowed the cors configurations as the docs requires.

@shopify/* package and version: @shopify/shopify-app-express version 5.0.3
Node version: 20.17.0
Operating system: MacOS

Expected behavior
The fetch request should pass the authentication.
Actual behavior
The request's preflight redirects to /api/auth (meaning it didn't authenticated currectly) which fails because of cors (but would fail regardless)
This is the preflight

This is the "real" request which fails because of cors (due to the preflight failing). As you can see, the header is there, but it can't pass the validateAuthenticatedSession middleware

If I disable the middleware everything works but the fetch call must be authenticated so I can't allow it.
I reached out to the partners support and they contacted the team who confirmed that they can see the middleware throwing a 403 but can't tell why. They suggested to rebuild the logic with an Admin action extension as I did and showed here but it didn't solve the issue.

Hi, thanks for raising this. I think you're right, and we're not handling OPTIONS requests properly in that package. I'll add this to our tracking and we'll look into it!


qTip API

In this pull request, I've added the ability to access the qTip API (http://qtip2.com/api) by suppling an object to the directive which will be loaded with the api.
usage example:

...
controller: ['$scope', function($scope) {
  $scope.myQtipApi = {};
}],
link: ['$scope', function($scope) {
  $scope.myQtipApi.apiPromise().then(function(api) {
     api.set("postion.my") = "left center";
  });
}]

Oh, you just pushed some changes 😞
I'll merge them into my pull request...

Merged in another PR, closing


fix incorrect cleaning of use_entities

Proposed changes:

fix incorrect cleaning of use_entities

Status (please check what you already did):

[x] made PR ready for code review
[x] added some tests for the functionality
[ ] updated the documentation
[x] updated the changelog
[x] reformat files using black (please check Readme for instructions)

Python 3.5 is really not my friend this week.


Auto-select next highest geolevel if current geolevel is not visible

Overview
Make sure a visible geolevel is selected by auto-selecting the next highest geolevel if the current geolevel is not visible
Demo

Testing Instructions

Testing manually switching between geolevels works as before
Test that auto-accepting works as before
Test that if you zoom to the block level and select block level, if you then zoom out such that blocks are hidden, the next highest geolevel is selected automatically

Closes #245

@pcaisse thanks for working on this. We've been rethinking how we handle the geounit switcher, and we made a decision that affects this PR.
Instead of having the application change geounits when the user zooms out, we are hoping to display a small message that explains that a user needs to zoom in to see the no-longer-visible geounits. We think that this will clearly communicate why the geounits are no longer visible and what the user needs to do to see them again. It also avoids an issue with automatically changing geounits, which is when a user accidentally zooms out too far.

I'm sorry we were not able to get this change reflected in the issue before you worked on it and for the annoyance of asking you to redo work. I am hoping that you will be able to use most of this code to implement the logic behind this message.
cc @tgilcrest

@jfrankl So if you zoom in to the block level and select 'Blocks' and then back out past where blocks are shown, you would want to keep the block level selected -- i.e. the user can't make a selection -- and show the message for them to zoom in again?
My 2 cents is that works well for the case where they accidentally zoomed too far out, but not for the case where they zoomed out because they didn't want to work with blocks anymore.
It makes me wonder about what fundamentally the interaction with the geolevel selector is for the user. Is the user is expected to be actively changing that all the time as they're building out their districts or should they mostly be interacting with the map and not have to think about selecting geolevels all the time? As a user, part of my confusion around this centers around seeing multiple geolevel geometries at once and being unsure as to which level I'm on.

@jfrankl So if you zoom in to the block level and select 'Blocks' and then back out past where blocks are shown, you would want to keep the block level selected -- i.e. the user can't make a selection -- and show the message for them to zoom in again?

Yes, that is correct.

My 2 cents is that works well for the case where they accidentally zoomed too far out, but not for the case where they zoomed out because they didn't want to work with blocks anymore.

It's true that the direction I described does not automate switching geounits on zoom, which is intentional. The decision about what geounits you are selecting is not always related to your zoom level. We should allow users to move freely around the map without making assumptions about the geounits and changing it automatically. The old version of DB worked in the way that you described, and we received feedback that this was annoying and did not provide flexibility around how users wanted to draw. The direction we're going in intentionally sacrifices some time/automation for control/flexibility.

As a user, part of my confusion around this centers around seeing multiple geolevel geometries at once and being unsure as to which level I'm on.

I believe this will be more clear when we implement #241, but if that's not the case, we can make adjustments from there.

Gotcha, makes sense. I think in that case we can just close this out as well as the accompanying issue since it doesn't apply and write up a new one.


Fix stale buildVersion when downgrade workers

What changes are proposed in this pull request?
Clear worker.buildVersion when it's not set in proto.
Note: Since we are using protobuf3 to compile proto2, it's OK to omit hasField check.
If the field is not set, the default instance will be returned.
Steps to reproduce:

Start a new cluster (master and worker).
Stop the new worker.
Start a old worker (prior to 7d8ad9b12ab366ef85c05a7cedfa3a60a562de12) using the same config.
Check workers in web UI.

Why are the changes needed?
Previously, if we downgrade a worker to a versions prior to 7d8ad9b12ab366ef85c05a7cedfa3a60a562de12,
the buildVersion is stale.
Does this PR introduce any user facing changes?
It fixes a bug in which the buildVersion could be stale.

@jiacheliu3 PTAL.
PS: If we need a unit / integration test for this, where is the proper place to add it?

On UT, you can add that in BlockMasterTest.java. When you later add the same logic for stream register, you may also use BlockMasterTest.java or BlockMasterRegisterStreamIntegrationTest.java, whichever makes more sense to you.

Thanks @jiacheliu3, I have added a test in BlockMasterTest. For the stream register, becasue I didn't change the interface of RegisterStreamer, it is a little bit hard to simulate upgrade or downgrade in BlockMasterRegisterStreamIntegrationTest.
https://github.com/Alluxio/alluxio/blob/9392b924122642674eb52b53e7f9fddf55ed555e/core/server/worker/src/main/java/alluxio/worker/block/RegisterStreamer.java#L130-L135

alluxio-bot, merge this please


tweak hub install to always run postinstall without prompting unless …

…remote inferencing is available

ok what a journey. finally green and updated the behavior per comments.


CFFL

CFFL

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_822qjv20t6/clone/recipe/meta.yaml:23: missing_wheel: For pypi packages, wheel should be present in the host section
ERROR: /tmp/abs_822qjv20t6/clone/recipe/meta.yaml:23: host_section_needs_exact_pinnings: Packages in host must have exact version pinnings, except python build tools.
Errors were found


Add selected SMPTE camdkit or camdkit-enabling standard optional attributes

These changes bring to OpenEXR new standard optional attributes that were discussed in the SMPTE RIS [Rapid Industry Solutions] for OSVP [on-set virtual production] working group through about late February or early March 2023. This set represents baseline attributes likely shared by both traditional plate-based non-real-time VFX, and in-camera or on-set real-time VFX.
Additionally, some useful attributes from the SMPTE ACES Container File Layout standard, SMPTE ST 2065-4:2023, have been included as well. At the time ST 2065-4 was defined OpenEXR was close to unmaintained -- this was in fact the genesis of the Academy Software Foundation -- and so attributes defined in ST 2065-4:2013 never appeared in the reference implementation. The ones included here are those judged by the PR author to have passed the test of time.
Things that could use some assistance / scrutiny in this PR:
camdkit defines an areal attribute named ActiveSensorPhysicalDimensions. There is a little-known, never-seen-by-this-author-in-the-wild attribute in the reference implementation named xDensity, probably dating from when most OpenEXR images originated on film. Along with the dataWindow, aspectRatio and perhaps other attributes (screenWindowWidth?), can the same information represented by camdkit as ActiveSensorPhysicalDimensions be represented by starting to use xDensity?
SMPTE ST 2065-4:2013 suffered from a vague definition of aperture as being T-stop if you knew it, otherwise f-number, which meant the artist had no way to tell whether they were getting the one or the other. camdkit defines separate TNumber and FNumber attributes to address this ambiguity. But the OpenEXR reference Implementation has never been ambiguous: in the reference implementation aperture has always clearly meant f-number. Thus this PR leaves aperture alone and adds tStop.
It would be good to have lens manufacturers review those definitions.
There was no carrier of focal length in the reference implementation. This PR adds three types of focal length: nominal (what would appear on a camera report), pinhole (what a minimalist CGI model would use) and effective (what a lens designer uses when employing the classic thick lens model). Again, it would be good to have lens manufacturer review here. In particular, if we introduce the three types of focal length, the comment on the definition of f-number should be clear as to which of the three types of focal length is being divided by the diameter of the lens entrance pupil.
In the existing reference implementation's definition of focus distance, there is no explicit mention that when the lens is in its hyperlocal setting, the focus distance is positive infinity. Should a note be added to this effect?
The PR adds an entrance pupil offset (measured from the image plane). Given two entrance pupil offsets, the larger one is closer to the subject. The entrance pupil is not a physical structure, and it can for some lenses in some configurations be negative, representing the entrance pupil being behind the image plane.
This PR does not add an attribute allowing the measured sensitivity of the camera to be contrasted with the rated sensitivity of the camera, but probably should, before it is merged.
It would be good to understand (from lens manufacturers and from the makers of software that reconstructs lens configuration from a sequence of images) how to deal with anamorphic lenses. Full handling of anamorphic lenses may require carrying two entrance pupils; if so, should there be the proposed entrance pupil offset and an additional attribute, or should the proposed entrance pupil offset attribute be valid only for flat lenses, with two new entrance pupil offsets being defined for anamorphic lenses?
The PR author would welcome suggestions on how to better format or organize the above issues.

I didn't spot an attribute for hyperfocal distance. If we are defining focus distance of infinity being at the hyperfocal distance, then don't we need to know what the hyperfocal distance is in order to know what is in focus?
To put it another way, if I have a magical lens with a hyperfocal distance of 30m, how would I prepare this data? would I scale the focus distance at 30m to inf, and 15m to 0.5inf?
Shouldn't the focus distance be a distance in meters, and the hyperfocal distance a value to be used in conjunction?
I can't understand how to use a distance measurement where infinity is defined as at the hyperfocal distance.

If we are going to record measure/actual sensitivity, do we not also need carry other aspects related to exposure such as gain settings, or sensor eV, or any ND filters betwixt aperture and sensor?

ISO in particular is an odd one as well, as I can find no scientific basis for the mapping between a supposed ISO rating of a digital sensor, and a film ISO setting. Is this value not in the realm of feelings and inaccessible secret sauce calculations? That's another argument for recording the eV and gain where possible. density was carried in original EXR as a nod to density readings from scanners.
As such, I don't think we should repurpose density for unrelated usages such as data window size calculations. I think we should relegate ISO and density to the analog world and move on.

finally I think we should measure sensor aperture as such, an x-magnitude in mm and a y-magnitude in mm. Anything else, with aspect ratios and so on gets confusing fast when we need to account for sensor size versus sensor aperture mask. I think sensor size, and sensor aperture should be separately recorded.
I realize many of my notes should have litigated in the committee, but I'm late to this party, and this is my first opportunity.

I would love to have a dialog in a future openexr TSC meeting (or openimageio TSC? -- it has recently submitted a proposal to join ASWF) about the right way deal with this expansion of reserved metadata names. In particular, a lot of these correspond to things from Exif and that previously/currently would have passed through with "Exif:..." prefix. So you wonder, should it auto-translate those names on the way in and out, etc.

No, we are not ‘omitting’ owner. My mistake was believing that I had added ‘owner’ to the standard optional attributes. In fact, it was already there, vague definition and all.
By the way there is a similarly vague definition of ‘creator’ in the ACES Container spec:
￼
Obviously I don’t want to bring creator over.
ARRI’s proprietary OpenEXR metadata contains several other attributes, the names of which reflect the believe that eventually they would make their way into the reference implementation:
￼
At some point we could open an Issue to discuss how many of ARRI_ACES_CONTAINER_ATTRIBUTE_STRING_EMP attributes deserved to be carried over into the OpenEXR reference implementation .The documentation we used to supply with the old ARRIMetadataBridge software explains the ‘interim..' prefix: it was designed so that if you found a file with both foo and interim.foo, you knew to go with the attribute named without the prefix.
But that’s for someday. As things stand, we don’t touch ‘owner’ in this round.

On Apr 20, 2023, at 23:53, Nick Porcino @.***> wrote:
@meshula commented on this pull request.
In src/lib/OpenEXR/ImfStandardAttributes.h https://github.com/AcademySoftwareFoundation/openexr/pull/1383#discussion_r1173277973:

@@ -167,12 +468,18 @@ IMF_STD_ATTRIBUTE_DEF (focus, Focus, float)
//
// owner -- name of the owner of the image
//
+// If present, the value should contain only printable characters
Per tsc conversation, are we omitting "owner"?

—
Reply to this email directly, view it on GitHub https://github.com/AcademySoftwareFoundation/openexr/pull/1383#discussion_r1173277973, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIVB7ILD5JLVCKMEWPCPRLXCIADXANCNFSM6AAAAAAXBZQLD4.
You are receiving this because you authored the thread.

First, I agree that we have something that can be merged into main. I’m just new enough at this that I don’t know how to tie off any loose ends. I did click on ‘Resolve conversation’ for the KeyKode thread.
Second, I went over the PR and my notes and identified the following five issues to file so we don’t lose them.
Figure out a use case that justifies the addition of timecodeRate that both the OpenEXR TSC and SMPTE RIS can agree is illustrative.
Convey the information described in camdkit's ActiveSensorPhysicalDimensions.
Ensure that there are no conflicts between the discussion of coordinate systems in SMPTE ST 2065-4 ("ACES Container File Format") and the discussion in the Technical Introduction to OpenEXR (section "Projection, camera coordinate system and screen window" and the illustration immediately above it). Make it clear what part of the camera we mean when we say the camera is 'located at the origin'. If it's the entrance pupil, that will be lots of fun, since the entrance pupil can be all over the place, even behind the image plane. Does that mean that in that case, the camera's location is considered to be behind its own image plane?
When we get feedback from Cooke Optics' engineers, refine the description of aperture to indicate whether the lens focal length that is the numerator of the ration of focal length to diameter of lens entrance pupil is a nominal focal length, an effective focal length or a pinhole focal length. Make a similar refinement for tStop.
Clarify how entrance pupil is handled for anamorphic lenses. With an anamorphic lens there will be two entrance pupil positions. I would recommend adding a second entrance pupil offset and adding text to the comment for plain-old entrancePupilOffset saying which entrance pupil is being described in the anamorphic case.
Are there others that I should file as issues? Should any of the above NOT be filed?
Third, if we are all agreed what we have can be merged, then can someone who has the proper permissions actually do the merge into main?
Thank you

On Apr 25, 2023, at 21:22, Nick Porcino @.***> wrote:
@meshula approved this pull request.
My comments modulo the glamorous but not vital question about stamped edge numbers are all addressed.
My take is that this is ready to land.
—
Reply to this email directly, view it on GitHub https://github.com/AcademySoftwareFoundation/openexr/pull/1383#pullrequestreview-1400998222, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIVB7O2RVB7CJUL6TNTNNLXDB2GRANCNFSM6AAAAAAXBZQLD4.
You are receiving this because you authored the thread.

Also, I created a new label "camdkit" that we can use to easily filter issues to find them again.

Of course. I just wanted your agreement that they were legit and distinct before doing so.
BTW I just made one last change, not in the code but in the comments. Ian Sheret of Cooke Optics got back to me and said that, when one is trying for just slightly better than the normal definition of f-number as focal length over entrance pupil diameter, it’s effective focal length that should be on top, specifically. And not nominal, and not pinhole. I hope the clarification didn’t introduce any grammatical errors. Anyway, I pushed that up maybe 5 minutes ago.

On Apr 26, 2023, at 12:53, Nick Porcino @.***> wrote:
Hi Joseph! Could you file those five issues individually, using the Issues tab at the top of this page? At that point, I can land this, and then further work can be piecemeal, on an attribute by attribute basis, or in aggregate, as more information arrives.
—
Reply to this email directly, view it on GitHub https://github.com/AcademySoftwareFoundation/openexr/pull/1383#issuecomment-1523752518, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIVB7JQZY3RZC276XIT7ADXDFHI5ANCNFSM6AAAAAAXBZQLD4.
You are receiving this because you authored the thread.

Great! let's proceed with the conversation in issues & subsequent PRs as they may arise.

Here's my notes on spatial dimensions:
Theoretically film density would be related to transmission of light (exposure) but as it's documented as X (and in reference to Y computed from PAR/AR) , also in OIIO Google says (I don't use it), I would speculate it was initially related to adding synthetic film grain for CG renders on some basis type of thing???  - perhaps there is someone from ILM then who has a better historical explanation.  I remember the old internal compositing app at ILM did not have a concept of project dimension... so it needed this sort of workaround.
Density as a spatial attribute is a slippery slope - but there is a correlation between the way camera set guide/frame lines in sensor dimension (which is in photosite count - note: some cameras now do over-sampling e.g. 5.9K out from 8K sensor - the physical crop sensor dimensionis a window in mm that corresponds to recorded image (pixels) window, and camera vendors tend to use values that generates "good numbers - divide into integers"), proxy resolution, and display scaling (in website and app dev, an OS level display setup or injecting a resizer for large format LED displays when engine cannot sustain resolution at a given frame rate)... related concepts is seen in some pixel shaders kit for support of infinite resolution without explicit references to Width and Height - Anyhow, this value in practice is derivable from physical dimension (is sometimes called pixel shift) corresponding to rendered resolution to sensor cropped window dimension... so I think is redundant if you have XY physical dimensions or vice-versa. SO it would be an option to rebrand Density to mean "pixel shift" (not everyone agrees on that expression either) and assume that value X image window XY gives you the sensor crop physical dimension, where Y is a PAR (for anamorphic...) that defaults to 1.0.  Extra redundancy, this is not a normalization to 0 to 1 as in UV map or -1 to 1 as in screen space. Someone will then complain that a random noise field generator does not have explicit W * H resolution so in EXR as not really used for direct in-camera capture these days, which is fair, so it would be appropriate to use pixel physical size rather than a dimension window. Then as you crop to a particular aspect ratio that value does not need to be changed. Note some applications (e.g. Nuke) distinguishes between format and DoD... the later would be for example a blur expanding the image boundary without changing the effective spatial domain (format) where say tracking points, shape masks... are in reference to.  Once again, recording 8K on a 35 mm sensor (4320 height) and in post (EXR) converting to 2K (1080 height) via image scaling would require scaling the FKA xdensity, so that equivalent in camera of generating a 2K with the same 8K sensor surface (4:4 oversampling) would result for both EXR creation paths then to have the same physical unit in the end so lens data for example make sense.
Further note, now ray-tracing partially equivalent would be a number of samples, and even that is unclear with biased renderer now relying on denoising...
Pierre


chore: add version to separate file

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


[Feat] Add validation endpoint

Description
This PR creates a new endpoint api/meshmodel/validate. This PR is a part of meshmodel transition. It will be used to validate all types of meshmodel data. This is backed by CUE. This PR is associated with this https://github.com/meshery/meshkit/pull/196. One of the main reasons for exposing this functionality via meshery server(as opposed to just keeping it as a meshkit library function) is that it has use-cases in the frontend(fsm validation, design validation etc.).
Signed commits

[x] Yes, I signed my commits.

🚀 Preview for commit 99a20d91d75df2b229fcbd91ba0a875f75ac3fb7 at: https://62e15ad43cdbe5364d5fae27--meshery-docs-preview.netlify.app

Hmm.. It is working locally.. Re-running the jobs.

Unit tests failing.

An extra commit or two picked up by accident.

Codecov Report

Merging #5894 (593cd18) into master (d21e614) will decrease coverage by 4.46%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master    #5894      +/-   ##
==========================================
- Coverage   17.92%   13.46%   -4.47%
==========================================
  Files         107      107
  Lines        9923     9991      +68
==========================================
- Hits         1779     1345     -434
- Misses       7708     8356     +648
+ Partials      436      290     -146

Flag
Coverage Δ

gointegrationtests
?

unittests
13.46% <0.00%> (-0.10%)
:arrow_down:

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

Impacted Files
Coverage Δ

handlers/error.go
0.00% <0.00%> (ø)

handlers/oam_handler.go
0.00% <0.00%> (ø)

router/server.go
0.00% <0.00%> (ø)

mesheryctl/internal/cli/root/system/update.go
1.05% <0.00%> (-58.95%)
:arrow_down:

mesheryctl/internal/cli/root/system/start.go
1.88% <0.00%> (-55.19%)
:arrow_down:

mesheryctl/internal/cli/root/system/status.go
1.14% <0.00%> (-55.18%)
:arrow_down:

mesheryctl/internal/cli/root/system/restart.go
1.92% <0.00%> (-48.08%)
:arrow_down:

mesheryctl/internal/cli/root/system/stop.go
2.00% <0.00%> (-46.67%)
:arrow_down:

mesheryctl/internal/cli/root/system/logs.go
3.26% <0.00%> (-36.96%)
:arrow_down:

mesheryctl/internal/cli/root/system/check.go
1.03% <0.00%> (-23.03%)
:arrow_down:

... and 2 more

Continue to review full report at Codecov.

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

merging this as all the tests are passing


Update localization settings

This commit update the language IDs so that the localization artifacts are generated
in same directories as the ones generated by Golang localization framework.
The output path is intentionally kept different to make sure that the initial pipeline
run does not affect the existing builds which contains partial localized data.
The localization team will checkin the localized artifacts in the output path.
We will keep the content received from localization team and the one used by our builds
in sync via script.

After this PR is merged, localization pipeline will be run on main branch and the generated artifacts will be used for onboarding


Add alt text validation option to user preferences

Add in toggle to allow users to opt into requiring alt text as a validation for posts containing images. See #907 for context
Closes #907

Thanks for the PR! Works exactly right.
I needed to create a separate PR so I could tweak the UI a bit; closing to move to there. https://github.com/bluesky-social/social-app/pull/914


Associated types not resolved in impl blocks

Does it work with Progress::Message?

Does it work with Progress::Message?

No

Can you show the definition of Progress and Sandbox?

https://github.com/hecrj/iced/blob/master/examples/progress_bar/src/main.rs

Well, I used auto insert Default members.

Repro:
trait Foo {
    type Bar;

    fn foo(_: Self::Bar);
}

struct S;

impl Foo for S {
    type Bar = i32;

    fn foo(_: Self::Bar) {
        todo!()
    }
}

I'm actually surprised that this doesn't work.

Duplicate of #5003, I think.

I thought so, but this one is simpler.

I think they are all actually working in the type system, the information just isn't surfaced.


Displaying inline image

There are many emails are displayed images from attachments by cid value.

Able to display inline-image for img tag. There is one related issue that inline-image used for styling


[Snyk] Upgrade dotenv from 16.0.3 to 16.1.0

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade dotenv from 16.0.3 to 16.1.0.
As this is a private repository, Snyk-bot does not have access. Therefore, this PR has been created automatically, but appears to have been created by a real user.
:sparkles: Snyk has automatically assigned this pull request, set who gets assigned.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 3 versions ahead of your current version.
The recommended version was released 21 days ago, on 2023-05-30.

Release notes

Package name: dotenv

16.1.0 - 2023-05-30Update CHANGELOG and README

16.1.0-rc2 - 2023-05-21Version 16.1.0-rc2

16.1.0-rc1 - 2023-04-0716.1.0-rc1

16.0.3 - 2022-09-29v16.0.3

    from dotenv GitHub release notes

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
👩💻 Set who automatically gets assigned
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

too old


Proxy supports dynamic configuration pulling from other sources

There are 3 ways I can see routes being defined for a proxy:
a) In config via a config file, changeable at runtime - this is what most proxies do today
b) Statically defined in code - setting up static endpoints similar to the sample startup.cs
c) Dynamically created by code. This seems to be what most of the Azure partners need. At startup, and periodically the code will need to query a backend to fetch both the Endpoints to listen to, and where each of those should be routed.
[added from discussion below]
d) When there are too many routes to load them all, we need to be able to query a database per request to load and cache routes. From our research, more Azure partners do this than C.
This last bucket is where we need to shine and differentiate ourselves from the competition.
It will need to account for:

Listening on new IP Addresses / ports
SNI and being able to dynamically lookup a cert based on the client hello
route based on the hierarchy of the URI path & query string

For some apps, they may need to do a DB lookup to discover the cert/route based on the URL being passed - so will need to have a cache and fallback mechanism.
Performance would dictate you probably need optimized structures like a trie, that I suspect are behind the existing routing tables. Either we need APIs to be able to dynamically edit the tables, and/or create and replace the tables, or be able to use the same concepts from custom app code for the proxy.

d) When there are too many routes to load them all, we need to be able to query a database per request to load and cache routes. From our research, more Azure partners do this than C.
My initial prototyping shows that we'd need to bypass the normal route table entirely and add an alternate endpoint resolution middleware that queried the database (& cache) per request to identify the correct route.
It's unclear if this could be implemented efficiently for path based routes when wildcards are involved. Strong host matches, and single level host wildcard matches seem like the best match for this scenario. That said, we'd probably provide a very generic dynamic endpoint lookup abstraction here and the efficiency would be a concern for the implementer.

I'm really excited by what appears to be option c) above to enable multi-cluster k8s ingress, whether by having cluster and ingress discovery as a custom code component in the reverse-proxy itself or by having the clusters run a separate component to push ingress information to a central store and the reverse-proxy periodically pulls from there.
Having guidance on what the specific, supported seam is to insert that periodic updating of the Endpoints and Destinations would be appreciated.
It would defiantly be a background pull and update like c) as opposed to a routing-time query like d).

@rwkarg our initial focus will be on making sure we provide the infrastructure and APIs to add and remove routes/backends/destinations through code. I expect it to work a lot like the current config based provider where something listens or polls for an external change event, reloads data, and notifies the core proxy that there's a new set of routes/etc available.
https://github.com/microsoft/reverse-proxy/blob/4a5b06bd6305ba501bfd0dc2a57fdc9aa98a5ff1/src/ReverseProxy/Configuration/ProxyConfigLoader.cs#L66-L67

@Tratcher would d) enable integration into a service like consul for dynamically registering backends?

@cecilphillip d is purely code driven, it could integrate into just about anything.

c) sounds like it's just remote config. We have a set of routes or backends in something external to the local Configuration that we want to periodically sync from (Consul, database, kubernetes ingress).
This seems achievable right now with a BackgroundService that updates the IBackendsRepo and/or IRoutesRepo and then calls IReverseProxyConfigManager.ApplyConfigurations if there has been a change on the remote config. There may be a better/more supported method, but this does work.
d) is a case where there is either

no "full state" of the potential routes and backends and it needs to be computed at request time instead of extracted from config (local or remote).
a "full state" exists but there is a desire to not sync all of it as in case c); likely because the "full state" is too large or is much larger than the actual working set that will be needed by the proxy.

Option C is what I currently have a custom reverse proxy for - but it is reactive rather than configured. What we have is a http://server/[GUID]/api/something call that goes into the reverse proxy, and the reverse proxy looks up the GUID in its cache and if it is not there, it makes a quick call to find out the IP of the server it should pass it to, taking out the GUID on the way. The cache is auto-cleared after a while because if it is still needed, it will be available again from the function that knows the relationships. Worth saying perhaps that the servers are containers created on demand for a single user to link to in a stateful manner. This is not the usual dynamic scaling.
So fundamentally, the ideal of having a function that can be called to determine the destination for every request, and possibly change the path as well, would fit our needs perfectly. If the function returns "false" then normal routing configuration would be applied.

https://github.com/microsoft/reverse-proxy/pull/1277 just implemented query based routing. It hasn't shipped in a preview yet but is available from our daily builds. https://github.com/microsoft/reverse-proxy/blob/main/docs/DailyBuilds.md


There is no nice way to blacklist for all caps patterns

Currently, the mail filter works as intended - it filters using regular expressions and it does it well. However, users may sometimes try to evade blacklists because the extension correctly assumes that the pattern written in some casing corresponds exactly to that casing when validations. This is a fine assumption but might not be ideal because Flarum already considers e-mails case-insensitive, meaning something like<EMAIL_ADDRESS>is the same as<EMAIL_ADDRESS>The extension, however, doesn't assume this, and if you have a deleted users and a blacklist filter in place, they can bypass it by changing the filter.
For whitelisting purposes, this is fine, because users can just type in a correct mail and that is that. However, for blacklisting purposes, it might be smarter to enable at least a flag which enables case insensitive matching - meaning that before mail validation, if such flag is set, the email to be checked is lowercased before the check is ran.
Currently it seems to me that the only way is to manually specify that it is case insensitive with a pattern like<EMAIL_ADDRESS>but it would probably be better if you could apply this to exact blacklists and whitelists (non-pattern ones) to save on processing time and make the process a bit more straightforward and noob-proof.

Sorry for getting back to you late, was caught up with all my schoolwork.
Thank you, this is a very valid point. Please checkout version 1.0.6, it should now be case insensitive on blacklists.


NOT_LEADER_FOR_PARTITION error when connecting over TLS with Strimzi (Apache Kafka on OpenShift)

Problem
Producer or consumer clients using kafkajs cannot connect with Strimzi over TLS. The cluster responds correctly to the Kafka console clients even when connecting with TLS.
Reproduction
The steps to reproduce this error are listed as follows.
Install Strimzi on an OpenShift cluster

Follow instructions to install here upto Applying Strimzi installation file.
To set-up access for external clients, do the following:
wget https://raw.githubusercontent.com/strimzi/strimzi-kafka-operator/0.14.0/examples/kafka/kafka-ephemeral.yaml
Edit kafka-ephemeral.yaml to add an external listener with type set to route. See example below.
Apply the kafka-ephemeral.yaml with oc apply -f kafka-ephemeral.yaml -n myproject
Wait for completion: oc wait kafka/my-cluster --for=condition=Ready --timeout=300s -n myproject

kafka-ephemeral.yaml
apiVersion: kafka.strimzi.io/v1beta1
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    version: 2.3.0
    replicas: 3
    listeners:
      plain: {}
      tls: {}
      external:
        type: route
    config:
      offsets.topic.replication.factor: 3
      transaction.state.log.replication.factor: 3
      transaction.state.log.min.isr: 2
      log.message.format.version: "2.3"
    storage:
      type: ephemeral
  zookeeper:
    replicas: 3
    storage:
      type: ephemeral
  entityOperator:
    topicOperator: {}
    userOperator: {}

Get Kafka end-point

Get host name: oc get routes myproject-kafka-bootstrap -o=jsonpath='{.status.ingress[0].host}{"\n"}'
Get secret: oc extract secret/myproject-cluster-ca-cert --keys=ca.crt --to=- > ca.crt

Run clients
Producer
const fs = require('fs')
const { Kafka } = require('kafkajs')

const kafka = new Kafka({
  clientId: 'demo-pub',
  brokers: ['host-name-from-previous-step:443'],
  ssl : {
  	servername: 'host-name-from-previous-step',
    rejectUnauthorized: false,
    ca : [fs.readFileSync('ca.crt', 'utf-8')],
    secureProtocol: 'TLSv1_2_method'
  }
})

const producer = kafka.producer()
const run = async() => {
	await producer.connect()
	//
	await producer.send({
	    topic: 'test-topic',
	    messages: [
	      { value: 'Hello KafkaJS user!' },
	    ],
	  })
}

run().catch(console.error)

Consumer
const fs = require('fs')
const { Kafka, logLevel } = require('kafkajs')

const kafka = new Kafka({
  clientId: 'demo-sub',
  brokers: ['host-name-from-previous-step:443'],
  ssl : {
  	servername: 'host-name-from-previous-step',
    rejectUnauthorized: false,
    ca : [fs.readFileSync('ca.crt', 'utf-8')],
    secureProtocol: 'TLSv1_2_method'
  }
})

const consumer = kafka.consumer({ groupId: 'test-group' })
const run = async() => {
	await consumer.connect()
  	await consumer.subscribe({ topic: 'test-topic', fromBeginning: true })
  	//
	await consumer.run({
	    eachMessage: async ({ topic, partition, message }) => {
	      console.log({
	        value: message.value.toString(),
	      })
	    },
	  })
}

run().catch(console.error)

Result
Producer
{ KafkaJSNumberOfRetriesExceeded
  Caused by: KafkaJSProtocolError: This server is not the leader for that topic-partition
    at createErrorFromCode (/Users/champ/noflo/node-tests/node_modules/kafkajs/src/protocol/error.js:536:10)
    at Object.parse (/Users/champ/noflo/node-tests/node_modules/kafkajs/src/protocol/requests/produce/v3/response.js:47:11)
    at Connection.send (/Users/champ/noflo/node-tests/node_modules/kafkajs/src/network/connection.js:306:35)
    at process._tickCallback (internal/process/next_tick.js:68:7)
  name: 'KafkaJSNumberOfRetriesExceeded',
  retriable: false,
  helpUrl: undefined,
  originalError:
   { KafkaJSProtocolError: This server is not the leader for that topic-partition
       at createErrorFromCode (/Users/champ/noflo/node-tests/node_modules/kafkajs/src/protocol/error.js:536:10)
       at Object.parse (/Users/champ/noflo/node-tests/node_modules/kafkajs/src/protocol/requests/produce/v3/response.js:47:11)
       at Connection.send (/Users/champ/noflo/node-tests/node_modules/kafkajs/src/network/connection.js:306:35)
       at process._tickCallback (internal/process/next_tick.js:68:7)
     name: 'KafkaJSProtocolError',
     retriable: true,
     helpUrl: undefined,
     type: 'NOT_LEADER_FOR_PARTITION',
     code: 6 },
  retryCount: 5,
  retryTime: 9468 }

Consumer
{"level":"INFO","timestamp":"2019-10-07T13:31:31.839Z","logger":"kafkajs","message":"[Consumer] Starting","groupId":"test-group"}
{"level":"ERROR","timestamp":"2019-10-07T13:31:32.127Z","logger":"kafkajs","message":"[Connection] Response JoinGroup(key: 11, version: 2)","broker":"messaging-kafka-2-messaging.<IP_ADDRESS>.nip.io:443","clientId":"demo-sub","error":"This is not the correct coordinator for this group","correlationId":0,"size":24}
{"level":"ERROR","timestamp":"2019-10-07T13:31:33.125Z","logger":"kafkajs","message":"[Connection] Response JoinGroup(key: 11, version: 2)","broker":"messaging-kafka-2-messaging.<IP_ADDRESS>.nip.io:443","clientId":"demo-sub","error":"This is not the correct coordinator for this group","correlationId":1,"size":24}
{"level":"ERROR","timestamp":"2019-10-07T13:31:33.597Z","logger":"kafkajs","message":"[Connection] Response JoinGroup(key: 11, version: 2)","broker":"messaging-kafka-2-messaging.<IP_ADDRESS>.nip.io:443","clientId":"demo-sub","error":"This is not the correct coordinator for this group","correlationId":2,"size":24}
{"level":"ERROR","timestamp":"2019-10-07T13:31:34.490Z","logger":"kafkajs","message":"[Connection] Response JoinGroup(key: 11, version: 2)","broker":"messaging-kafka-2-messaging.<IP_ADDRESS>.nip.io:443","clientId":"demo-sub","error":"This is not the correct coordinator for this group","correlationId":3,"size":24}
{"level":"ERROR","timestamp":"2019-10-07T13:31:36.438Z","logger":"kafkajs","message":"[Connection] Response JoinGroup(key: 11, version: 2)","broker":"messaging-kafka-2-messaging.<IP_ADDRESS>.nip.io:443","clientId":"demo-sub","error":"This is not the correct coordinator for this group","correlationId":4,"size":24}
{"level":"ERROR","timestamp":"2019-10-07T13:31:39.851Z","logger":"kafkajs","message":"[Connection] Response JoinGroup(key: 11, version: 2)","broker":"messaging-kafka-2-messaging.<IP_ADDRESS>.nip.io:443","clientId":"demo-sub","error":"This is not the correct coordinator for this group","correlationId":6,"size":24}
{"level":"ERROR","timestamp":"2019-10-07T13:31:39.852Z","logger":"kafkajs","message":"[Consumer] Crash: KafkaJSNumberOfRetriesExceeded: The group is rebalancing","groupId":"test-group","retryCount":5,"stack":"KafkaJSNumberOfRetriesExceeded\n  Caused by: KafkaJSError: The group is rebalancing\n    at retrier (/Users/champ/noflo/node-tests/node_modules/kafkajs/src/consumer/runner.js:76:17)\n    at process._tickCallback (internal/process/next_tick.js:68:7)"}
{"level":"INFO","timestamp":"2019-10-07T13:31:39.853Z","logger":"kafkajs","message":"[Consumer] Stopped","groupId":"test-group"}

Another observation I made is as follows.

Set-up subscription with the Kafka console client for a topic e.g. mytopic.
Publish a message with kafkajs based producer client to a topic e.g. mytopic.
Works.

The other way round i.e. consumer with kafkajs and producer with console client does not work.

Do you have different hostnames for each broker? (messaging-kafka-2-messaging.<IP_ADDRESS>.nip.io)

@chainhead can you try the pre-release version 1.12.0-beta.1?

I found out that the problem is with logs folder (where meta.properties is stored)
So before I launch zookeeper then kafka, I fully empty logs folder. To have everything in one place I just have one bash script
`#!/bin/bash
rm -rf /home/kafka/logs
mkdir /home/kafka/logs
sudo systemctl start zookeeper
sudo systemctl start kafka
`

Facing the same Issue with strimzi


BodyScroll and safe-area-env

Hello,
Thank you so much for your React PWA project with Vite! It's an excellent foundation! I would like to seek your expertise on two specific points:
Disabling bodyscroll on Safari iOS:
I’ve tried various approaches to disable body scrolling on Safari iOS, but so far, I haven't found a satisfactory solution. Do you have any recommendations or tips on how to achieve this effectively? The goal is to have the app behave like a Native app.
Using environment variables for the body's safe area:
To ensure better integration with smartphones and their notches, I'm looking for a clean way to use environment variables to handle the body's safe area in the PWA. Do you have any advice or best practices to share on this matter?
Thank you very much!

Hi nycco,
I appreciate your feedback.
I'm not sure if I understood your questions:
1. Disabling bodyscroll on Safari iOS:
1.1 Did you want to remove the scroll bar? - refer to this
1.2 Hiding overflowed content?
2. Using environment variables for the body's safe area:
No idea what you mean by environment variables.
With the "safe-area", I find any HTML elements placed near the top to behave well.
The phone will automatically resize the view height and width.
But HTML elements will need CSS that use specify "width: 100vw" and "height: 100vh"
Adding sticky footers is tricky.
There are new CSS units designed to deal with changing viewport heights: dvh, lvh, svh
I've tried them, but dvh does not resize to "safe-area" as expected on iOS safari.


Mask password (if there are any) from Jsch output and its debug log

Mask Jsch output and the command string before logging to prevent clear text password from filtering down the classes that uses the Jsch service and from showing up in the logs.

@akinny, I followed your suggestion please check. Thanks!


Fix #599 custom normal export when normals are modified by modifier

@donmccurdy @emackey @pjoe I'd like you to test non regression on it, because there is so much cases. I tried to cover them, but please have a look :)

Code changes looks good to me (except the issue when there aren't any modifiers as commented above).
From some limited testing I am sometimes seeing some weird behavior, e.g. that culling (or guess it's polygon winding) being affected by custom normals. I've attached a blend with Edit Normalswith a directional target that looks really weird in babylon and Don's viewer after export.
custom_normals_599.zip

Any other comments before I merge it?

e.g. that culling (or guess it's polygon winding) being affected by custom normals...

Sounds like polygon winding, yes. 😕
I don't have test cases for this; maybe we should start a wishlist of regression tests we would like to get into the addon's test framework? Meanwhile I'm OK with merging this.

e.g. that culling (or guess it's polygon winding) being affected by custom normals...

Sounds like polygon winding, yes. 😕

Yes winding, plus that model lacks a Blender material.  The default Blender material is double-sided, and the default glTF material is single-sided, so you're seeing the effects of backface culling on Suzanne's flipped normals.  If you assign a Blender material, they will match, with and without backface culling.
Merging.

Thanks @julienduroure!


[Feature]: add a visual cue that shows tasks have been skipped

Describe your feature
Uplift will skip tasks within its internal workflow when certain preconditions are met. However, the current behaviour is that tasks will disappear from the output. It would be a better developer experience if the output showed that a task was skipped.
Your potential solution
Refactor the existing middleware so that when a task is skipped, it will be logged out.
An example output would be:
• (skipped) task

Any additional information?
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

By default, skipped tasks will not be shown unless the --debug flag is used


Investigate the impact of used packages on our final bundle size

For example, ethers takes 14kB in a production build of apps/demo-react-vite.
The easiest way to check the effect of a package on size is to go to apps/demo-react-vite/vite.config.ts and set the package as external in build.rollupOptions.external:
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
  build: {
    rollupOptions: {
      external: ["ethers"]
    }
  }
})

This excludes that specific package from the build because it expects it to be provided from an external source instead of bundling it together with the app.
We can also use this approach to exclude our own packages that are included via "workspace:*" and to see how much each of them weighs.
This can help us in focusing our efforts for #1460.

These are the results for every dependency in all of our packages/*/package.jsons:
{
  "fuels": 186.83,
  "@fuel-ts/signer": 48.54,
  "elliptic": 48.16,
  "@fuel-ts/providers": 43.04,
  "bn.js": 22.09,
  "@fuels/vm-asm": 20.66,
  "@fuel-ts/wallet": 14.94,
  "ethers": 12.85,
  "@fuel-ts/math": 11.39,
  "graphql-request": 10.74,
  "@fuel-ts/utils": 10.66,
  "@fuel-ts/versions": 9.07,
  "semver": 9.02,
  "@fuel-ts/mnemonic": 8.29,
  "@fuel-ts/wordlists": 7.11,
  "@fuel-ts/crypto": 6.75,
  "@fuel-ts/abi-coder": 6,
  "tai64": 3.78,
  "@fuel-ts/transactions": 2.6,
  "@fuel-ts/hdwallet": 2.36,
  "@fuel-ts/contract": 2.07,
  "@fuel-ts/script": 1.91,
  "@fuel-ts/address": 1.9,
  "@fuel-ts/merkle": 1.68,
  "@fuel-ts/program": 1.36,
  "@fuel-ts/errors": 1.28,
  "bech32": 1.08,
  "graphql-tag": 0.81,
  "ramda": 0.62,
  "uuid": 0.3,
  "@fuel-ts/hasher": 0.27,
  "@fuel-ts/abi-typegen": 0,
  "@fuel-ts/forc": 0,
  "@fuel-ts/fuel-core": 0,
  "@fuel-ts/wallet-manager": 0,
<EMAIL_ADDRESS>0,
  "bundle-require": 0,
  "chalk": 0,
  "chokidar": 0,
  "cli-table": 0,
  "commander": 0,
  "esbuild": 0,
  "ethereum-cryptography": 0,
  "events": 0,
  "glob": 0,
  "handlebars": 0,
  "joycon": 0,
  "lodash.camelcase": 0,
  "mkdirp": 0,
  "portfinder": 0,
  "rimraf": 0,
  "toml": 0,
  "tree-kill": 0,
  "type-fest": 0,
  "yup": 0,
  "@fuel-ts/predicate": -0.02,
  "graphql": -0.02,
  "@fuel-ts/interfaces": -0.05
}

What are these numbers, KBs? Minified + Gzipped?

@arboleya kB, minified + gzipped. I modified the comment to include that info.

And "fuels": 186.83 represents the entire umbrella package size, inclusive of all dependencies?

And "fuels": 186.83 represents the entire umbrella package size, inclusive of all dependencies?
Yes.

Closing based on this comment.


Fix: Don't show date twice in updates

Description of PR
This was not a time issue. This was happening when the bell icon was pressed for the second time and the current date had fewer than 5 updates.
currentDate was getting re-assigned during addHeader(). While this
has been fixed using hooks for now, a better approach for the
whole "adding-header" functionality is needed IMO.
Relevant Issues
Fixes #1617
Checklist

[x] Compiles and passes lint tests
[x] Properly formatted
[x] Tested on desktop
[x] Tested on phone

Screenshots
Add relevant screenshots here

@tsuki42 I see. Feel free to open an issue addressing a better approach for the whole "adding-header" part :)
Thanks!


"open web page" loads empty box

on subwaytooter v4.1.1 attempting to open web page will just show a blank modal box with only a cancel button

it's depends on some conditions.

using custom tabs is off. (ST's app settings)
default app for url that like toot status page is ST.
no other app can't be listed on PackageManager#queryIntentActivities().

what web browser you expect open?

whatever the default browser is? it was previously working in older release.

actually i realize now that custom tabs is enabled... so the ST custom tab is not loading anymore.
enabling "don't use custom tabs" gives option of using browser of choice.

i think it may be the "prioritize google chrome" option. i do not have chrome installed, but i do have chrome dev. disabling the option causes the custom tab to open normally.

the option specifiy app's package name to force to use chrome to avoid app selection dialog since firefox supports custom tabs, but chrome and chrome dev has different package name.

Maybe the box should say something like "Chrome is not installed" instead of being empty, then?


Console output has typo

In version 0.9.12, when displaying the name of the file, the line starts with "HtmlHintPuls" instead of "HtmlHintPlus".

Can you show more info? I don't understand.

I'm having trouble finding it at the moment but definitely see it when it is run at work. When I get in on Monday, I'll try to find it. It's possible that it has been fixed in a more recent version. When I get it narrowed down, I will update this.

Hey @willsteinmetz, the issue seems old, are you able to close that issue? Thanks.

@thedaviddias My bad, I thought it was. Will do that now.


replace jupyter notebook to excalidraw canvas

the notebook only allows to scroll up and down, but on the canvas you can scroll left and right, and also zoom in and out, which makes it easier to follow up through different variations and branches of my notes

https://github.com/excalidraw/excalidraw/issues/6266

Hello @7flash , sorry, I don't understand the suggestion. You mean replacing the Jupyter notebook with an excalidraw canvas?


Add calculations for AF/AN/AC.

LGTM

Hi Matt and Nicole,
Happy New Year!  I highly recommend giving it a try via streams and lambda expressions through Java 8 - it will make your life so much easier.  The counts are natural and automatic - below is an example:
import static java.util.function.Function.identity;
import static java.util.stream.Collectors.*;
import java.util.stream.*;

public class freq {

	public static void main(String args[]) {

   	Stream<String> genoTypes = Stream.of("-1", "-1", "1", "0", "1", "2", "1", "2");

		Map<String, Long> genotypeCounts =
           genoTypes.map(gt -> gt.split("\\s+"))
                                 .flatMap(Arrays::stream)
                                 .collect( groupingBy (identity(), counting() ));

   	for ( String element : genotypeCounts.keySet() ) {
   		System.out.println("Frequency of " + element + " = " + genotypeCounts.get(element) );
   	}
  }
}

Below is the output:
> java freq
Frequency of 0 = 1
Frequency of 1 = 3
Frequency of 2 = 2
Frequency of -1 = 2

Hope it helps,
~p


Problems with getting all the dependencies

I am not really quite sure if i just doing something wrong here, since i am still new to node.js but i have problems with getting all the dependencies to run this bot.
 TypeError: Cannot read property 'latest' of undefined
npm ERR!     at next (/usr/local/lib/node_modules/npm/lib/cache.js:692:35)
npm ERR!     at /usr/local/lib/node_modules/npm/lib/cache.js:680:5
npm ERR!     at saved (/usr/local/lib/node_modules/npm/node_modules/npm-registry-client/lib/get.js:142:7)
npm ERR!     at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js:133:7
npm ERR!     at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this entire log,
npm ERR! including the npm and node versions, at:
npm ERR!     http://github.com/isaacs/npm/issues
npm ERR! System Linux 3.16.0-4-amd64
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--save"
npm ERR! cwd /home/user/discord-xmpp
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.24
npm ERR! type non_object_property_load
npm http 404 https://registry.npmjs.org/xmpp/xml
npm ERR! TypeError: Cannot read property 'latest' of undefined
npm ERR!     at next (/usr/local/lib/node_modules/npm/lib/cache.js:692:35)
npm ERR!     at /usr/local/lib/node_modules/npm/lib/cache.js:680:5
npm ERR!     at saved (/usr/local/lib/node_modules/npm/node_modules/npm-registry-client/lib/get.js:142:7)
npm ERR!     at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js:133:7
npm ERR!     at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this entire log,
npm ERR! including the npm and node versions, at:
npm ERR!     http://github.com/isaacs/npm/issues
npm ERR! System Linux 3.16.0-4-amd64
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--save"
npm ERR! cwd /home/user/discord-xmpp
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.24
npm ERR! type non_object_property_load
npm ERR! TypeError: Cannot read property 'latest' of undefined
npm ERR!     at next (/usr/local/lib/node_modules/npm/lib/cache.js:692:35)
npm ERR!     at /usr/local/lib/node_modules/npm/lib/cache.js:680:5
npm ERR!     at saved (/usr/local/lib/node_modules/npm/node_modules/npm-registry-client/lib/get.js:142:7)
npm ERR!     at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js:133:7
npm ERR!     at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this entire log,
npm ERR! including the npm and node versions, at:
npm ERR!     http://github.com/isaacs/npm/issues
npm ERR!  TypeError: Cannot read property 'latest' of undefined
npm ERR!     at next (/usr/local/lib/node_modules/npm/lib/cache.js:692:35)
npm ERR!     at /usr/local/lib/node_modules/npm/lib/cache.js:680:5
npm ERR!     at saved (/usr/local/lib/node_modules/npm/node_modules/npm-registry-client/lib/get.js:142:7)
npm ERR!     at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js:133:7
npm ERR!     at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this entire log,
npm ERR! including the npm and node versions, at:
npm ERR!     http://github.com/isaacs/npm/issues
npm ERR!  Additional logging details can be found in:
npm ERR!     /home/user/discord-xmpp/npm-debug.log
npm ERR! not ok code 0

I use Debian 8 (amd64)

Hi Tom.
Can you try installing the latest version of node.js and trying it again?
A lot of the dependencies are leaning on there being a recent version of it.
Thanks.
On Sun, Apr 9, 2017 at 3:40 PM, TomTheDragon<EMAIL_ADDRESS>wrote:

I am not really quite sure if i just doing something wrong here, since i
am still new to node.js but i have problems with getting all the
dependencies to run this bot.
 TypeError: Cannot read property 'latest' of undefined
npm ERR! at next (/usr/local/lib/node_modules/npm/lib/cache.js:692:35)
npm ERR! at /usr/local/lib/node_modules/npm/lib/cache.js:680:5
npm ERR! at saved (/usr/local/lib/node_modules/
npm/node_modules/npm-registry-client/lib/get.js:142:7)
npm ERR! at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/
polyfills.js:133:7
npm ERR! at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this entire log,
npm ERR! including the npm and node versions, at:
npm ERR! http://github.com/isaacs/npm/issues
https://github.com/isaacs/npm/issues
npm ERR! System Linux 3.16.0-4-amd64
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install"
"--save"
npm ERR! cwd /home/user/discord-xmpp
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.24
npm ERR! type non_object_property_load
npm http 404 https://registry.npmjs.org/xmpp/xml
npm ERR! TypeError: Cannot read property 'latest' of undefined
npm ERR! at next (/usr/local/lib/node_modules/npm/lib/cache.js:692:35)
npm ERR! at /usr/local/lib/node_modules/npm/lib/cache.js:680:5
npm ERR! at saved (/usr/local/lib/node_modules/
npm/node_modules/npm-registry-client/lib/get.js:142:7)
npm ERR! at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/
polyfills.js:133:7
npm ERR! at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this entire log,
npm ERR! including the npm and node versions, at:
npm ERR! http://github.com/isaacs/npm/issues
https://github.com/isaacs/npm/issues
npm ERR! System Linux 3.16.0-4-amd64
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install"
"--save"
npm ERR! cwd /home/user/discord-xmpp
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.24
npm ERR! type non_object_property_load
npm ERR! TypeError: Cannot read property 'latest' of undefined
npm ERR! at next (/usr/local/lib/node_modules/npm/lib/cache.js:692:35)
npm ERR! at /usr/local/lib/node_modules/npm/lib/cache.js:680:5
npm ERR! at saved (/usr/local/lib/node_modules/
npm/node_modules/npm-registry-client/lib/get.js:142:7)
npm ERR! at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/
polyfills.js:133:7
npm ERR! at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this entire log,
npm ERR! including the npm and node versions, at:
npm ERR! http://github.com/isaacs/npm/issues
https://github.com/isaacs/npm/issues
npm ERR!  TypeError: Cannot read property 'latest' of undefined
npm ERR! at next (/usr/local/lib/node_modules/npm/lib/cache.js:692:35)
npm ERR! at /usr/local/lib/node_modules/npm/lib/cache.js:680:5
npm ERR! at saved (/usr/local/lib/node_modules/
npm/node_modules/npm-registry-client/lib/get.js:142:7)
npm ERR! at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/
polyfills.js:133:7
npm ERR! at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this entire log,
npm ERR! including the npm and node versions, at:
npm ERR! http://github.com/isaacs/npm/issues
https://github.com/isaacs/npm/issues
npm ERR!  Additional logging details can be found in:
npm ERR! /home/user/discord-xmpp/npm-debug.log
npm ERR! not ok code 0`
I use Debian 8 (amd64)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/tskubicki/discord-xmpp/issues/10, or mute the thread
https://github.com/notifications/unsubscribe-auth/AIAhed_c_aYfFLy01y0HbGuFw0JNddcUks5ruTQwgaJpZM4M4IKo
.

Thx for the tip Tskubicki, i had to try around a bit but i finally got it to work.
I still get warnings but it still seems to run fine.

Feel free to reach out if you are having any issues.
Best.


Bug in the v0.67.6 release.

Expandable style in DateTable does not work in production

Arrows don't work

Can you provide a minimal repro?
The Expandable and selectable example in the docs appears to work.


Uninstalling solr helm chart without uninstalling Zookeeper

hi - this is more of a general Q.
I installed Solrcloud with these options to use a ZK-operator installed seperately.
--set zookeeper-operator.install=false --set zookeeper-operator.use=true
On  "helm uninstall solr" ... the ZK pods created using solrcloud say solr-solrcloud-zookeeper-0/1/2  gets deleted as well.
Is there a way to retain the ZK pods created as part of solrcloud  and  just remove the solr pods?
Alternatively, if i had started off with solrCloud helm chart managing zookeeper pods,  how to decouple the ZK  from that installation? with operational config files  on ZK, can the solrCloud pods be moved off to a standalone ZK?

So if you deploy Solr using the "provided" zookeeper, then it will be managed in tandem with your SolrCloud. If you want the Zookeeper Cluster's lifecycle to be independent of the Solr lifecycle, you will need to manage it separately.
I would recommend in that case to use the Bitnami Zookeeper Helm chart rather than the Zookeeper Operator's offering.
https://artifacthub.io/packages/helm/bitnami/zookeeper
You would install that by itself, and then find the Zookeeper connection String.
Then in the Solr helm values file, you would use that as the "zk.address" option (and not provide any "zk.provided.*" option).
See the solr helm chart's options for more details: https://artifacthub.io/packages/helm/apache-solr/solr#zk-options

If i had started with inbuilt ZK, would the above approach of specifying  zk.address  for a standalone ZK  will still work?
I would like to retain the data in the solrCloud when cutting over to new ZK.

You could call the BACKUP API in order to backup the content from Zookeeper, then RESTORE once you have the new cluster and ZK installed. Or you can find one of the Zookeeper commandline utilities out there (search for it) which will let you backup/restore the content of ZK.

My plan(not-tested):

Release SolrCloud and ZookeeperCluster with helm annotation that will prevent deletion during uninstall of the chart. docs
I'm hoping this will uninstall operators without affecting Solr or Zookeeper.
Remove HELP ownership labels.
Release separate charts.

Any flaws? Or maybe it will not work for some reason :) I will let you know when I will need to do this.


Remove AzureOpenAITextCompletionService

Update ServiceCollectionExtensions.cs

[ ] Remove https://github.com/Azure-Samples/azure-search-openai-demo-csharp/blob/92ae671617fbe03f74f7db21957d1ffc4234ee4b/app/backend/Extensions/ServiceCollectionExtensions.cs#L84

Fixed by #162


[url_launcher] Update readme for iOS targeting iOS 9.0 and higher

Description
Add instructions for iOS, for targeting iOS 9.0 and higher.
Note:
All new projects 1.22+ targets iOS 9.0 by default

Related Issues
65936
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (flutter analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[x] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
[x] I updated CHANGELOG.md to add a description of the change.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
[x] No, this is not a breaking change.

I suggest you to add a explanation why this configuration is required, may be a short explanation and a link to the Apple's new police?

I suggest you to add a explanation why this configuration is required, may be a short explanation and a link to the Apple's new police?

Added explantion

Does it make sense to add a practical example in the description as to where this could be applicable ? Like mentioned in original issue, the device has chrome as default browser. If not set this property in info.plist, the url may not open.

Does it make sense to add a practical example in the description as to where this could be applicable ? Like mentioned in original issue, the device has chrome as default browser. If not set this property in info.plist, the url may not open.

It won't break any functionality like opening the link in safari, this was mainly due to targeting iOS 9.0, which is  the new default from 1.22+ and 122+ supports also  iOS  14 and iOS 14 has default browser settings  hence not adding this broke that functionality.  If the team member thinks we it would break something, I will make changes. This should be added by default since 1.22+ has been stable for a while

LGTM


md -> rst

@votca-bot changelog: Convert remaining md files to rst

It might be from this line:
https://github.com/votca/votca/blob/5407c86f6e26e5962715e893dcc1eac2faa14a44/share/doc/conf.py.in#L13

I will drop the md parts when we merge this into votca/votca.


Prevent 100% cpu usage while SQS long polling on an empty queue

While using moto server with a test SQS client, I noticed significant CPU usage while the client was long polling. I narrowed this down to the receive_messages call of the SQS service sitting in a while True: statement with no work to be done, thus looping forever.
To produce this issue, I do:
$ python3 -m venv venv
$ . ./venv/bin/activate
(venv) $ pip install moto moto[server] boto3
Collecting moto
  Downloading moto-0.4.31-py2.py3-none-any.whl (303kB)
  --snip--
(venv) $ moto_server sqs &
[1] 31727
* Running on http://<IP_ADDRESS>:5000/ (Press CTRL+C to quit)
(venv) $ python3
Python 3.6.0 (default, Dec 24 2016, 08:01:42)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-8<IP_ADDRESS>)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto3
>>> client = boto3.client('sqs', region_name='us-east-1', endpoint_url='http://<IP_ADDRESS>:5000');
>>> client.create_queue(QueueName='testing')
<IP_ADDRESS> - - [16/Mar/2017 13:34:20] "POST / HTTP/1.1" 200 -
{'QueueUrl': 'http://sqs.us-east-1.amazonaws.com/123456789012/testing', 'ResponseMetadata': {'RequestId': '7a62c49f-347e-4fc4-9331-6e8e7a96aa73', 'HTTPStatusCode': 200, 'HTTPHeaders': {'content-type': 'text/html; charset=utf-8', 'content-length': '343', 'server': 'Werkzeug/0.12.1 Python/3.6.0', 'date': 'Thu, 16 Mar 2017 20:34:20 GMT'}, 'RetryAttempts': 0}}
>>> client.receive_message(QueueUrl='http://sqs.us-east-1.amazonaws.com/123456789012/testing', MaxNumberOfMessages=10, WaitTimeSeconds=10)

At this point the moto server will run at 100% cpu for 10 seconds until the request times out waiting for a message. If multiple clients are continuously reconnected (as in mocking a normal sqs worker setup) the server will sit at 100% cpu indefinitely.
This pull request adds a simple sleep statement to the SQS receive_messages call when there are no messages to process. In doing so, the loop will be limited to executing once per 0.001 seconds when the queue is empty. The CPU usage is nearly 0% after this change.

Coverage increased (+0.002%) to 93.456% when pulling 83084bf2af39dbc95da7249988b1ac47a60cb89a on mike-lerch:cpu-100-empty-queue into a5da348fbab0ceb6264abf6b918f0a9af17c3008 on spulec:master.

Awesome. Thanks!


docs: custom gestures

Will need #70

Thanks for adding the documentation, the feature is planned to be released in 1.2.0


Create eventbrite for ATO pitches

@natalienoel1 & @wildca01t  here it is - https://www.eventbrite.com/e/nc-datapalooza-pitch-competition-at-ato-tickets-38588626621


[Bug]Files edited with notepads is marked as unsigned or untrusted by Windows

Describe the bug
Any file that was edited with notepads is marked as unsigned or untrusted just like files you downloaded from the internet.
This will prevent the execution of some scripts edited with notepads.
To Reproduce
Edit file with notepads and save it
Expected behavior
Files edited with notepads should not be marked as untrusted
Screenshots
ps1 file from my local file system

windows requires unlocking to use this file

Desktop (please complete the following information):

OS: Windows_NT 10.0.19041.388 amd64
Notepads Version <IP_ADDRESS>

Additional context
IMO, this could be a common issue with UWP apps but some applications such as Windows Terminal indeed solved it.

AFAIK, Windows Terminal is a classic Win32 application and it uses Xaml Islands to host the UWP's TabView control.

Unknown issue(security limitation) to all UWP apps.


"In order to perform this operation a successful bind must be completed on the connection."

I'm currently trying to get a list of the users on a domain and using this:
  var ad = new ActiveDirectory({ url: 'ldap://<IP_ADDRESS>',
                                 baseDN: 'DC=o3international,DC=local' });

  ad.findUsers('cn=*', function(err, users) {
    console.log(err, users);
  });

However, it gives this error:
[OperationsError: 000004DC: LdapErr: DSID-0C090727, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v23f0]
How exactly do you bind first? I've tried authenticating successfully and putting the findUsers within the authenticate callback method, but it didn't work either.

Nevermind. Figured it out.
Was not passing in bindDN/bindCredentials (duh).


complet is not useful and prefect !

VSCode Version:
1.17.2
OS Version:
10.13

Steps to Reproduce:

On sublime text, if i open file_a.txt and file_b.txt, in file_a.txt when i type "a" and type tab,sublime will complet with "asdfghjkl".
But on vscode can't complet it.  vscode just complet strings which appear in current file!

Reproduces without extensions: Yes/No

dupe of #20886


Fatal error: Uncaught Error: Class 'Google\Cloud\Storage\StorageClient'

Magento version <IP_ADDRESS>
PHP version 7.2.13
Recently i install default magento and download plugin from

https://marketplace.magento.com/nickolasburr-nickolasburr-googlecloudstorage.html

and

https://github.com/nickolasburr/googlecloudphpautoloader

After install successfully i go to Admin >> system >> configuration >> NICKOLAS BURR EXTENSIONS >> Google Cloud Storage
Then i got below error
Fatal error: Uncaught Error: Class 'Google\Cloud\Storage\StorageClient' not found in /var/www/html/magento1940/app/code/community/NickolasBurr/GoogleCloudStorage/Helper/Storage.php:150 Stack trace: #0 /var/www/html/magento1940/app/Mage.php(550): NickolasBurr_GoogleCloudStorage_Helper_Storage->__construct() #1 /var/www/html/magento1940/app/code/community/NickolasBurr/GoogleCloudStorage/Model/Adminhtml/System/Config/Source/Bucket/Acl.php(27): Mage::helper('magegcs/storage') #2 /var/www/html/magento1940/app/code/core/Mage/Adminhtml/Block/System/Config/Form.php(463): NickolasBurr_GoogleCloudStorage_Model_Adminhtml_System_Config_Source_Bucket_Acl->toOptionArray(false) #3 /var/www/html/magento1940/app/code/core/Mage/Adminhtml/Block/System/Config/Form.php(229): Mage_Adminhtml_Block_System_Config_Form->initFields(Object(Varien_Data_Form_Element_Fieldset), Object(Mage_Core_Model_Config_Element), Object(Mage_Core_Model_Config_Element)) #4 /var/www/html/magento1940/app/code/core/Mage/Adminhtml/Block/System/Config/Form.php(164): Mage in /var/www/html/magento1940/app/code/community/NickolasBurr/GoogleCloudStorage/Helper/Storage.php on line 150
Can you please help me how to resolve this error ?
Thanks.

Hi @hardiklinksture, can you verify you've installed the Google Cloud PHP libraries via Composer? They should be installed to lib/GoogleCloud.

Additionally, please make sure you've required google/cloud-storage in the composer.json file. I intentionally left the requirement out, as this module can be used for any of the Google Cloud PHP libraries. I will mention this information in the README.
The composer.json should have these updates:
  "require": {
    "php": ">=5.5",
    "mnsami/composer-custom-directory-installer": "1.1.*",
    "google/cloud-core": "~1.23",
    "google/cloud-storage": "~1.9"
  },

"extra": {
  "installer-paths": {
    "./google/cloud/core": ["google/cloud-core"],
    "./google/cloud/storage": ["google/cloud-storage"]
  }
}

i face new error

You need to specify the path to the service account JSON key, which is used for authenticating with Google Cloud. You can find more information regarding setup in the user manual.

If you're still experiencing issues, please open a new issue.


fix(react-ui-editor): Delay hiding/unhiding of markdown markup during cursor motion

To avoid disruptive popping of the content around the cursor.
Issue https://github.com/dxos/dxos/issues/5755

I think this is useful, but it seems to introduce a problem where you can't click or cursor into the link label.

Good point. I made all of the decorations atomic (so that you don't get your cursor stuck in invisible code when arrowing through markers), but only the ones that hide stuff should be. Updated the PR to fix that.

Seeing another issue where the cursor loses its position (floats in whitespace) after the decoration is restored. It only seems to happen on short lines.

That turned out to be an issue in CodeMirror itself. https://github.com/dxos/dxos/pull/5833 pulls in an upgrade that fixes it.


feat(linter/tree-shaking): check this in different environment

#2902
#2901  👈
main

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

Join @mysteryven and the rest of your teammates on  Graphite

Merge activity

Apr 6, 1:58 AM EDT: @Boshen started a stack merge that includes this pull request via Graphite.


Remove flag restrict-data-plane-bindings

Some unit tests fails:
12:00:34 [ERROR] Failures:
12:00:34 [ERROR]   UriBindingsValidatorTest.fails_on_user_handler_binding_with_hostname:36 expected: <true> but was: <false>
12:00:34 [ERROR]   UriBindingsValidatorTest.fails_on_user_handler_binding_with_non_http_scheme:44 expected: <true> but was: <false>
12:00:34 [ERROR] Errors:
12:00:34 [ERROR]   UriBindingsValidatorTest.allows_portbinding_when_restricting_data_plane:62->runUriBindingValidator:88 » IllegalArgument For binding 'http://*:4443/my-handler': binding with port is not allowed
12:00:34 [ERROR]   UriBindingsValidatorTest.allows_user_binding_with_wildcard_port:67->runUriBindingValidator:76->runUriBindingValidator:88 » IllegalArgument For binding 'http://*:4443/my-handler': binding with port is not allowed
12:00:34 [ERROR]   UriBindingsValidatorTest.allows_valid_user_binding:57->runUriBindingValidator:76->runUriBindingValidator:88 » IllegalArgument For binding 'http://*:4443/my-handler': binding with port is not allowed

FYI merge conflict


improve build settings

I want to support umd build, but it seems to take a little longer...
Let's merge this PR 👍


 IIRC OmniSharp already has some support for them, so maybe it's me not setting things up properly, or omnisharp-vim not supporting this yet?

Does this config get you Unity analyser support in vscode?

Setting up vscode helped me understand the constraints.
locationPaths is treated as a relative path from the loaded sln, even when using a global omnisharp.json. I was also using a path to a specific dll which was wrong. In my specific case, I ended up using "Library/Analyzers", and placed the .dll file there.
Aside, it seems it doesn't priorize the analyzer. So for example:
private void FixedUpdate()
{
}

Using ALE it hints me IDE0051: Private member is unused. But if I launch code actions, I can see the additional UNT0001: Remove empty Unity message.
Is there any way to control diagnostics priority or order?

Is there any way to control diagnostics priority or order?

Actually, the concept I was behind is suppressors, and support is not available yet (see https://github.com/OmniSharp/omnisharp-roslyn/issues/1711).


Not check variable "comboTrees" avaiability in file  g6/lib/graph/graph.js

G6 Version: 3.5.0
Platform: NodeJs, Vue
Mini Showcase(like screenshots):
CodePen Link:

For the source file g6/lib/graph/graph.js, there are many line of code to call the variable "comboTrees", the existing code are not checking comboTrees avaiability.
lib/graph/graph.js: 897

comboTrees.push(newCombo);

comboTrees && comboTrees.push(newCombo);

Line 1311
comboTrees.forEach(function (ctree) {
Line 1348
comboTrees && comboTrees.forEach(function (ctree) {
Line 1405
if (comboTrees && !parentId && treeToBeUncombo)
Line 2216,2219, 2369 2372
Line 2632

comboTrees.forEach(function (cTree) {

comboTrees &&  comboTrees.forEach(function (cTree) {

Thanks, we will improve it in the next small version.

solved by 3.5.1.


document proxy configuration

What does this PR do?
Describe the current installation bootstrap (mc-bootstrap) setup + additional configuration to make a MC and their WCs work behind a corporate proxy server.
Also replaces the intranet PR https://github.com/giantswarm/giantswarm/pull/27149 (as this information could be public)
How does it look like?

Any background context you can provide?
Replaces the open RFC https://github.com/giantswarm/rfc/pull/50
What is needed from the reviewers?
Why is this piece of content here?
As no sensitive information is documented, it's fine to have it in the handbook.
Have you maintained the front matter?
(Please bump the last_review_date in case this qualifies as a review for an entire page. Provide user_questions which should be answered in the page. Provide a meaningful description.)

For some reasons, markdown-linter is complaining about https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.0 but it's a valid link
ERROR: 1 dead links found!
[✖] https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.0 → Status: 404

You can add an ignore pattern here in the meantime to unblock you, I will create a card for myself to solve this later. No reason for you to be blocked:
https://github.com/giantswarm/handbook/blob/main/.github/workflows/markdown-link-check.json


features

Hi
Can you add dark mode and toggle to switch between dark and normal mode? is it possible to change the sidebar to subtle color?

Hey, yes i can add a dark mode, it will be done probably this weekend. And it is possible to change the sidebars color, you just need to go to dashboard > css > style.css >
`:root{
/* Theme Colors */
--theme-color: #03045e;
--theme-light-color: #90e0ef;
--bg-color: #fafbfe;
--second-theme-color: #caf0f8;
/* Font & Typography  */
--body-font: 'Nunito', sans-serif;
--normal-font-size: 1rem;
--normal-letter-space: 1px;
}`
here you can change the color code however you want. You may want to check this website for cool color pallettes coolors.co

Hey, yes i can add a dark mode, it will be done probably this weekend. And it is possible to change the sidebars color, you just need to go to dashboard > css > style.css >
:root{   --theme-color: #03045e;   --theme-light-color: #90e0ef;   --bg-color: #fafbfe;   --second-theme-color: #caf0f8;   --body-font: 'Nunito', sans-serif;   --normal-font-size: 1rem;   --normal-letter-space: 1px; }
here you can change the color code however you want. You may want to check this website for cool color pallettes coolors.co

thanks

thanks

Hey, i just wanted to let you know that Dark Mode has been added, sorry for latency. I hope you'll like it.


[New game]: Wild Tic Tac Toe

🎮 Game Request
Tic Tac Toe variation with a 5 by 5 grid, and an option to use the X or O at each turn. Player to first reach 3 in a row either vertically, horizontally, or diagonally wins.
Point down the features
A "Select Option" button so players can choose either X or O at each turn. A "Reset" button to start the game over.
Select program in which you are contributing
Other
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @Rohan0305 !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

Can you assign me this under hacktoberfest

Hey ,I am interested in this assignment of tic tac toe game. Could you please assign me this task..

/assign
I already finished this contribution via vscode. Looking to push changes.

Hey @Rohan0305 👋!
@kunjgit here,
Hope you are enjoying this hacktober 😀
We are excited to share that we are opening issue from our side where you will be going to add games on our website 🚀
Work on this issue 🔥
and help us building GameZone 💗
if you still haven't joined us join us on Discord
See you soon 😊

Hello @Rohan0305, Time's up!⏰
Sorry for closing your issue!
But it's more than a week since we haven't received anything from your side 😢 .
Come up with new ideas, create a new issue and make sure you finish it within a week! 🔥
All the best! 🚀
Happy Hacking! 💗

Hey @Rohan0305 ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


Babysteps towards sorting out the Phenotype/Disease divide

Fixes #7359

Why did you close this? I would love to have that pipeline in in the Mondo repo!