Flow doesn't check globally declared object type if some value contains any React$ type

<EMAIL_ADDRESS>Let's see the following code:
// @flow
import React from 'react';

// flow type declarations
type Payload = {
  key: React$ComponentType<*>,
};

type Props = {
  content: string,
};

// SFC
const Foo = (props: Props) => {
  const {
    content,
  } = props;

  return (
    <div>
      {content}
    </div>
  );
};

// some function
function testFunction(input: Payload) {
  return input;
}

// calling the function with a payload
const testInput = {
  key: Foo,
};

testFunction(testInput);

This works fine. But if I move the type declaration Payload to some js file under /flow-typed, the payload testInput will be uncovered by flow. I found this is happening only if any value of the payload object is type React$Element<*> or React$ComponentType<*>. Not sure if other React$... types will cause this. Is this a bug or it's just currently a limitation of flow?
Here's a screenshot:

This is likely due to usage of existential types, which is no longer supported.


add Job-Owner-UUID to filter for myEvent

Freeswitch doesn't seem to set the Unique-ID header for BACKGROUND_JOB events; rather it sets a header called Job-Owner-UUID to the call uuid for which the api command was executed.

I haven't used server mode in quite some time but the change passes the test suite.

esl-lite uses a different scheme to match background job, no need to port this there


Add definition of a small vs large spike or analysis option

Feature Request:
It would be nice to see a mouse over or other definition of a Small Spike or Large Spike, even a note showing the %change or delta for these definitions would be helpful.
Alternately or in addition to this the ability to perform analysis on the input fields to tell us whether or not we had a small or large spike.

It would be nice to see a mouse over or other definition of a Small Spike or Large Spike, even a note showing the %change or delta for these definitions would be helpful.

This aspect of your request is already accounted for in #41.

Alternately or in addition to this the ability to perform analysis on the input fields to tell us whether or not we had a small or large spike.

Could you elaborate on this a little? The app already tells you which pattern you have, once you've provided enough data points for it to be able to determine that. Or do you mean for it to tell you what you had last week?

You've got it covered, both these are duplicate, sorry about that.


Add Google OAuth support

I wonder what the purpose of this issue is?
Since it's possible to trust any OpenID Connect provider already (and Google is one), any instance of Drawbridge should already function with Google if it's configured to do so.
If this is about the Profian deployment, I think we should stick to the abstraction that a single IdP gives us.


Connor module

Hi @cnrrobertson - this branch was left from the previous module. I just want to make sure I am not deleting anything unintentionally. Could you please check to see if anything is here that you'd like to bring to the main branch?

No this is clean, it can be deleted. Thanks for checking!


Consider cast_nullable_to_non_nullable for core lints

See discussion in https://github.com/dart-lang/language/issues/1547. Casting Foo? to Bar (vs Bar?) with as is an easy mistake to miss.

For reference, the lint is enabled in the flutter framework code base and has successfully caught some issues there, I believe.

Should update GOOD to also include this 2nd case:
class A {}
class B extends A {}

A? a;
var v = a as B?;

Would like to undetstand how this affects Google3 before making a choice.

@mit-mit Do you know somebody who could drive trying this out in g3?

@pq are you looking at that?

I can take a look. 👍

I did a run and sent results out to a handful of folks for further review.  At first blush the results seem valuable to me.  If you want access (and are a Googler, sorry), let me know!

I'm not strongly convinced that this lint is a win.
It may help now, during nullability-migration, but I'm less convinced that it's a win in the long run, and that there won't be a significant number of false positives.
I deliberately write T? current; .... => current as T; to remove the extra nullability from something where I don't know if it's nullable or not. If that's not allowed, we have a problem.
(The documentation talks about casting a nullable value to non-nullable, it doesn't say anything about potentially nullable or non-nullable. It's not clear what it does.)
If I cast from int? to int, it seems pretty clear-cut that that's what I want (but I agree that I should use ! for that).
If I cast from num? to int, it maybe be because I know something, and doing x! as int will look completely ridiculous.
So, should this be more about unrelated casts or down-casts?
(All in all, not getting my vote for adding to core lints.)

If I cast from num? to int, it maybe be because I know something

But it may also be that that you meant to cast num to int and didn't realize that you had a nullable value. Or that you meant to cast to int? but forgot the ?. That is exactly the sort of case that has caused actual bugs.

and doing x! as int will look completely ridiculous.

Why? Clearly indicating that you know that you are both removing nullability and changing the base type doesn't seem ridiculous to me, since as a reader I can be confident that both casts are intentional, vs the case above where I can't.

I'm generally concerned about as, since it allows anything. And I'm convinced that nullability is that much of an orthogonal concept in typing that it requires special handling.
That said, if x! as int is guaranteed to be as efficient as x as int, and the lint is properly specificed so I know what it does with potentially nullable types on either or both sides, I think it's a reasonable lint to have for people who want it.
I'd still be against including it in the core lints. To get there, I'd want it to either:

Catch something which is very likely a mistake. As in >50% of occurrences are mistakes. Not just that a mistake is possible. And not triggering on something that is the obvious thing to write if you happen to know that x does indeed contain an int. Or
Catch something which is a very dangerous, subtle and hard to find mistake. Not something which will just throw the first time a null value gets there, I'd expect testing to catch that. (Not awaiting a future made it, because it's invisible at the point where it happens, and an unhandled error will be reported somewhere else entirely.) Or
Something that is a very common mistake. Even if only way less than 50% of occurrences are wrong, there being lots of them numerically makes it worth to avoid the error. I haven't seen enough occurrences of this bug to consider that warranted.

Yes, you can make mistakes with as. Lots of them, it's as unsafe as dynamic, and optimally you should never use as. But as is like an assertion, which should never fail, you only use it when you know you're right, and in those cases, it's the shortest expression which does what you need of it. Writing assert(x is int); ... (x is int ? x : (throw "Not an int")) isn't adding to readability either, and is just as unsafe.
Which raises the question, if num? x = ...;  ... x as int is bad, why isn't ... x is int ? ... : someFailure(). Why not require x != null && x is int there too?


"ObservableListSource._bindingList" can't be used as a method.

Hello! I'm complete newbie in C#, writing my first application to Windows which should be PostgreSQL database application using EF6. So, I went through this example but have an error (like in title). I assume the problem is in a way that _bindingList is initialized, but as I'm newbie I can't understad what exactly is wrong. Clarification would be very appreciated. (VS 2017, EF6 + Npgsql, WinForms C#)

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

ID: 93ad154e-e7a6-0ce7-4bb3-8ea56532624b
Version Independent ID: 19a924ea-6e54-0df8-ace6-702a5bdbb2bc
Content: Databinding with WinForms - EF6
Content Source: entity-framework/ef6/fundamentals/databinding/winforms.md
Product: entity-framework
GitHub Login: @divega
Microsoft Alias: divega

Hello! I have the same problem, have you figured out how to fix it?

I suppose should be _bindingList ?? (_bindingList = this.ToBindingList());

I have solve it and the problem is really stupid, someone forgot the equals sign:
IList IListSource.GetList()
{
return _bindingList = (_bindingList = this.ToBindingList());
}

As @navgg says, the null coalescing operator was missing.


PSModulePath doesn't use $home, but uses [environment]::getfolderpath("mydocuments")

It appears that env:PSModulePath is being prepended with [environment]::getfolderpath("mydocuments")\WindowsPowershell\Modules rather than $Home\Documents\WindowsPowershell\Modules as described in the docs
Steps to reproduce
Redirect your mydocuments to a different folder
Start powershell and get the $env:psmodulepath
Documented behavior
$env:PSModulePath.split(";") -contains "$home\WindowsPowershell\Modules"

Actual behavior
 $env:PSModulePath.split(";") -contains "$([environment]::getfolderpath("mydocuments"))\WindowsPowershell\Modules"

What PowerShell version are you seeing this in?

All versions
Simon Sabin

From: Robert Holt<EMAIL_ADDRESS>Sent: Wednesday, March 4, 2020 5:53:15 PM
To: PowerShell/PowerShell<EMAIL_ADDRESS>Cc: Simon Sabin<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [PowerShell/PowerShell] PSModulePath doesn't use $home, but uses [environment]::getfolderpath("mydocuments") (#12001)
What PowerShell version are you seeing this in?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/PowerShell/PowerShell/issues/12001?email_source=notifications&email_token=AAJHM222NC73PJ6LUQGVE7DRF2IQXA5CNFSM4LBORPGKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENZHGKI#issuecomment-594703145, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAJHM23W3DZYYU3Q5WEAJRTRF2IQXANCNFSM4LBORPGA.

All versions

The path you give in your example seems to be a Windows PowerShell path. This repository tracks issues in PowerShell 6+.
The module path is set here:
https://github.com/PowerShell/PowerShell/blob/20a236b228d024ed23bf12c9331bbbb484e3836c/src/System.Management.Automation/engine/Modules/ModuleIntrinsics.cs#L968-L972
It seems that $HOME variable comes from the $env:USERPROFILE:
https://github.com/PowerShell/PowerShell/blob/a34d0f3e808659b0c07b8fdac83aaae1dae43c21/src/System.Management.Automation/CoreCLR/CorePsPlatform.cs#L182
It's not clear whether the inconsistency is intended, but given that this behaviour is longstanding and likely unable to be changed, we might want to move this issue to the docs repo.

I think it is Docs issue.

Its a fairly broad reaching docs problem. I'll raise a docs issue.

@joeyaiello or @sdwheeler can you transfer this issue to the docs repo?

I’ve already created an issue on the docs side. You can close this one
Simon Sabin

From: Robert Holt<EMAIL_ADDRESS>Sent: Wednesday, March 4, 2020 8:14:55 PM
To: PowerShell/PowerShell<EMAIL_ADDRESS>Cc: Simon Sabin<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [PowerShell/PowerShell] PSModulePath doesn't use $home, but uses [environment]::getfolderpath("mydocuments") (#12001)
@joeyaiellohttps://github.com/joeyaiello or @sdwheelerhttps://github.com/sdwheeler can you transfer this issue to the docs repo?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/PowerShell/PowerShell/issues/12001?email_source=notifications&email_token=AAJHM22PZ52MKF4XNZSKB63RF2ZD7A5CNFSM4LBORPGKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEN2BR5Q#issuecomment-594811126, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAJHM26VUH2JTOZNJ54I5K3RF2ZD7ANCNFSM4LBORPGA.

As an aside, regarding ships that have saild: The more appropriate definition of $HOME would be "${env:HOMEDRIVE}${env:HOMEPATH}" rather $env:USERPROFILE - while the two values are by default identical, they can differ, and the former is then the better location for modules.
Therefore, basing the personal module path on [environment]::getfolderpath("mydocuments") is actually more appropriate than basing it on $HOME.

I agree that its appropriate use, its just confusing that its not documented.
Furthermore the rules for how its set if the user environment variable is set isn't clear in the docs


How to cancel request ?

I'm using your API in kotlin's coroutines, but the async API doesn't return any cancellable to cancel the HTTP request. What's the recommended way cancel pending requests?

There isn't a native way to do this besides using a future (and using sync on that future instead of async)
If you want a native method added, you should consider opening a PR.

I'm going to go ahead and close this since OpenAI doesn't provide a way to stop a request. Either ignore the response or use a future and cancel that (Which is the same as ignoring the response). You waste tokens, unfortunately, but this is the only solution.

Of course, you can cancel an OKHTTP request. The streaming can last several
seconds, and cancelling the request WILL close the socket and cancel the
stream.
Le mer. 6 sept. 2023, 20:19, Collin Barber @.***> a
écrit :

I'm going to go ahead and close this since OpenAI doesn't provide a way to
stop a request. Either ignore the response or use a future and cancel that
(Which is the same as ignoring the response). You waste tokens,
unfortunately, but this is the only solution.
—
Reply to this email directly, view it on GitHub
https://github.com/CJCrafter/ChatGPT-Java-API/issues/29#issuecomment-1708876274,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAOXNRPTKSIUKK6FDOIS57TXZC5DNANCNFSM6AAAAAA4HHZXEQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

''''
Call call = new OkHttpClient().newCall(your request);
call.enqueue(new Callback() { // call off UI thread.
@Override
public void onFailure(Call call, IOException e) {
// this is where your call is cancelled: call.isCanceled()
}
    @Override
    public void onResponse(Call call, Response response) throws IOException {

    }
});
call.cancel(); // this is the proper way to cancel an async call.

''''


Quick question about receipt validation

in the read me we say
"Validate the receipt
One option could be to validate the receipt with the App Store server through GetTransactionInfo API, and then check the transactionId in the response matches the one you are looking for."
If the response code is 200 for a transaction id doesnt that mean the transaction must be valid?
It using the response even needed?
Also the request limit if 50 per second. If my app starts getting more than this in purchases per second what happens? How can i verify MORE transactions?

in the read me we say
"Validate the receipt One option could be to validate the receipt with the App Store server through GetTransactionInfo API, and then check the transactionId in the response matches the one you are looking for."
If the response code is 200 for a transaction id doesnt that mean the transaction must be valid?

A: I think it could be better to double check the transactionId of the response .

It using the response even needed?

A: In my side, the transactionId of the response is checked, also with the response code is 200.

Also the request limit if 50 per second. If my app starts getting more than this in purchases per second what happens? How can i verify MORE transactions?

A: Since the request limits apply per app, one possible solution is add one message queue to handle it. Given there are two iap validation servers, when those two servers receive the validate receipt requests, send those receipts to message queue. On the receiver side of this message queue, there is only one receiver that do the real verify work calling GetTransactionInfo API with limit rate logic.
@erikd234


writing packets to the VAN

Hi, first of all thank you for this amazing lib! I wanted to ask why you chose to limit the lib to ro from the bus. Is this feature planned for a future update and if so what are the difficulties to overcome if there are any?

Hi, writing to the VAN bus is not yet possible because I have not implemented it yet. Maybe in the future, if I have some spare time, I will see what may be possible in that area.

Writing the VAN bus can be quite challenging. There are more than one message types which also complicates things. In the TSS463 datasheet there is a good explanation on what should be taken care of. The device should listen on the bus for a specific amount of time. When in this time frame the bus is free then it can start transmitting (and in the meantime also listening). If it detects that there's a difference between what it transferred and what it received it must stop transmitting (this is called bus arbitration). Otherwise we overwrite a message that another device is sending.
However I admit that it would be awesome to have a software only solution for this.
There is something similar to this implemented for a PIC microcontroller here: https://www.cnblogs.com/shangdawei/p/4769620.html

Hi, writing to the VAN bus is not yet possible because I have not implemented it yet. Maybe in the future, if I have some spare time, I will see what may be possible in that area.

Ah I see. Thanks for your reply 👍🏼

In the TSS463 datasheet there is a good explanation on what should be taken care of.

Will dig into that! Could you give me some other sources to learn more about the VAN standard or is the best way to simply read datasheets?

There is something similar to this implemented for a PIC microcontroller here: https://www.cnblogs.com/shangdawei/p/4769620.html

I recall that guy Graham Auld doing something with a PIC (http://graham.auld.me.uk/projects/vanbus/van-pioneer.html) but I could not find the source code of his firmware for further research. I believe he did not release it.

I read a lot of forums and the documents which is mentioned by @0xCAFEDECAF in the readme, but the datasheet of the TSS463 contains everything which is needed to understand the protocol. However I admit that it is not the easiest to read (I read it so many times that I almost know what does it contain on every page).
I have the source code from Graham but it is also for reading only. It is written in assembly so it didn't help me much. The only publicly available library for writing is probably mine. You should check my repositories for further information. I spent a lot of time on reverse engineering the VAN bus protocol and tried to release everything I figured out.

Just uploaded a new version that supports rudimentary packet transmitting functionality.


How to fix it

osu!lazer version 2021.623.0

this is because Cytosu used an outdated osu!lazer version. will do a version bump and create a release later today

should be fixed on latest release (https://github.com/GSculerlor/Cytosu/releases/tag/2021.625.0). please reopen this issue if the error still persists.


Safe execute method

Hi, thanks for you PR.
But I have to say that I think that this is a bad idea.
This change basically hides exceptions and doesn't fail. This will make it impossible to scale up your game. My motto: crash hard and early. Otherwise you cannot fix the actual bugs and you will have unexpected follow up errors that potentially doesn't have anything to do with the original exception.
There are use-cases where it's valid to silently catch exceptions, but not in the reactive system.

I have some problem in my project when i doesn't handle exception in some reactive system.
But i have many exceptions in loop.
IMHO: Logs contain many EntityIsAlreadyRetainedByOwnerException errors but real useful information contains in first one from my code base.
TryFinaly block hide only this exception in reactive system, but my error it still actual and i should see only one error but i saw more than expect. And i think any framework must be safe from a box. And my Exception it is my problem.

Ah, I understand now. It's not catching the exception, it just prevents the followup exception EntityIsAlreadyRetainedByOwnerException not spam the console. I have to correct myself then, this is a good idea. Sorry, I initially though it's just catching the exception, which obviously wouldn't be such a great idea.
Thanks for clearing things up! 👍
Will be in the next release

Thanks for you work!

@sschmid Is that possible to implement this similar feature without using any Exception Handling statements (try-finally for this PR)? From what I understand, it will have performance penalty when using Exception Handling statements.

@optimisez It low cost operation. For my project thar solve many problem for debugging and handle exception. In the world-wide we may find many tests for using try-finally blocks.
For example stackoverflow.com


Update index.html

Heey its me again, is anything fine right now ?

Yes, I will merge it. Thanks for your contribution. 👍


feat: support more runtimes rather than tokio

https://tonbo.io/ develops a portable embedded database without tokio support. They want to try foyer in their environment, which requires foyer to run with general runtime rather than tokio only.

@ethe Would you like to describe the details of your requirements? 🙌

Sure, thanks @MrCroxx , in the current, we are trying to use foyer in tonbo: https://github.com/tonbo-io/tonbo/pull/193/files#diff-576a25b15b009b660e408a738b04427884b18a77372406660bc3cf682486a4a1R11 . However, foyer is locked in tokio: https://github.com/foyer-rs/foyer/blob/main/Cargo.toml#L41 . Considering the scenarios Tonbo plans to support: WASM, Python, are there any plans to remove the requirement of Tokio?


feat(routing): allow to discover mediator pickup strategy

Add option to detect the pickup strategy that should be used for picking up messages using the discover features protocol.
This is only used if no pickup strategy is defined in the startup config. If fetched, it will be stored in the mediation record so it can be reused later.
Fixes #490
BREAKING CHANGE: the default mediatorPickupStrategy value has been removed. This allows for the value to be determined using the discover features protocol. If you would like the original behaviour, make sure to set the mediatorPickupStrategy in the agent config to MediatorPickupStrategy.Explicit

Codecov Report

Merging #669 (0b68516) into main (6cf5a7b) will increase coverage by 0.31%.
The diff coverage is 97.67%.

@@            Coverage Diff             @@
##             main     #669      +/-   ##
==========================================
+ Coverage   85.62%   85.93%   +0.31%
==========================================
  Files         340      340
  Lines        7338     7368      +30
  Branches     1141     1146       +5
==========================================
+ Hits         6283     6332      +49
+ Misses       1054     1035      -19
  Partials        1        1

Impacted Files
Coverage Δ

...ckages/core/src/modules/routing/RecipientModule.ts
71.93% <97.14%> (+4.66%)
:arrow_up:

packages/core/src/agent/AgentConfig.ts
94.54% <100.00%> (-0.10%)
:arrow_down:

.../src/modules/routing/repository/MediationRecord.ts
91.42% <100.00%> (+0.25%)
:arrow_up:

...s/core/src/storage/didcomm/DidCommMessageRecord.ts
96.77% <100.00%> (ø)

packages/core/src/utils/messageType.ts
100.00% <100.00%> (ø)

packages/core/src/agent/Agent.ts
98.09% <0.00%> (+0.01%)
:arrow_up:

...s/core/src/modules/proofs/services/ProofService.ts
85.67% <0.00%> (+1.50%)
:arrow_up:

packages/core/src/modules/ledger/IndyPool.ts
85.36% <0.00%> (+2.43%)
:arrow_up:

...ules/discover-features/messages/DiscloseMessage.ts
100.00% <0.00%> (+4.76%)
:arrow_up:

...odules/discover-features/DiscoverFeaturesModule.ts
100.00% <0.00%> (+20.83%)
:arrow_up:

... 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 6cf5a7b...0b68516. Read the comment docs.

@jakubkoci @JamesKEbert @blu3beri can someone please review? :)

@TimoGlastra this seems interesting. So basically it will use explicit strategy only if mediator supports Batch Pickup message, and implicit otherwise?
I guess if mediator is AFJ-based, it will take explicit strategy, isn't it?

So basically it will use explicit strategy only if mediator supports Batch Pickup message, and implicit otherwise?

Correct!

I guess if mediator is AFJ-based, it will take explicit strategy, isn't it?

Yes indeed, AFJ only supports the explicit method. In the future we can add support for pickup v2 which we can also detect if the mediator supports it


value matching should be described in terms of a toggle and a value

The definition of value matching is currently described in terms of two values.  However, it uses a list of states, so I think it should really be described in terms of one toggle (whose list of states and value are used) and one other value.  I think this is currently somewhat implicit in both of the two references to the concept, but it would probably be better to be more explicit.

Ah yup, ended up doing this already. "Match values" now takes a toggle and a value, and optionally a list of states to override the toggle's states with.


(shell.js) Use of eval in "node_modules/lottie-web/build/player/lottie.js" is strongly discouraged as it poses security risks and may cause issues with minification.

vue v3 + vite v4.2.1
"highlight.js": "^11.8.0",
Use of eval in "node_modules/lottie-web/build/player/lottie.js" is strongly discouraged as it poses security risks and may cause issues with minification.

I don't think that message is related to us?


RelationalConnection.DbTransaction should be an extension method

Filing this in case I miss the API review

@AndriySvyryd why do you want this to be an extension method rather than instance method on the return type?

RelationalConnection shouldn't be coupled to implementation details of RelationalTransaction.
Sent from my Windows Phone

From: Rowan<EMAIL_ADDRESS>Sent: ý3/ý30/ý2015 11:44 AM
To<EMAIL_ADDRESS>Cc: Andriy<EMAIL_ADDRESS>Subject: Re: [EntityFramework] RelationalConnection.DbTransaction should be an extension method (#1922)
@AndriySvyrydhttps://github.com/AndriySvyryd why do you want this to be an extension method rather than instance method on the return type?
—
Reply to this email directly or view it on GitHubhttps://github.com/aspnet/EntityFramework/issues/1922#issuecomment-87787097.

We'll go over all this in API review


#1169: add accept header to ensure client requests json

Fixes #1169
This PR should serve the issue, that a config-client is served XML instead of JSON when the config-server is also running eureka (or has the jackson-dataformat-xml dependency included due to some other reason).

Codecov Report

Merging #1171 into 2.0.x will increase coverage by 0.21%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##              2.0.x    #1171      +/-   ##
============================================
+ Coverage     77.98%   78.19%   +0.21%
- Complexity      946      947       +1
============================================
  Files           113      113
  Lines          3352     3353       +1
  Branches        461      461
============================================
+ Hits           2614     2622       +8
+ Misses          570      561       -9
- Partials        168      170       +2

Impacted Files
Coverage Δ
Complexity Δ

...fig/client/ConfigServicePropertySourceLocator.java
69.71% <100%> (+3.76%)
25 <0> (ø)
:arrow_down:

...rk/cloud/config/client/ConfigClientProperties.java
91.37% <0%> (+1.72%)
41% <0%> (+1%)
:arrow_up:

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 2e5933a...7d5e1ab. Read the comment docs.

Merged with a test via 7f9c9dd4ca2f571cba4d957049ee2c5b5bc9deba


#1 made images from services transparent

I have made all the images from the services section and hero section transparent.

looking good


Narrowing converting instruction mismatch issue for number infinity

If a number is infinity in FP64, after converting it into FP32, will it be infinity or of max magnitude? According to spike, it is infinity but according to RTL implementation, it is of max magnitude.Actually, overflow and infinity are handled together i.e saturating it or making it max magnitude. I think it is fine to handle overflow like this, but for infinity, there should be another case i.e infinity should remain infinity.

In principle I would agree that infinity stays infinity whatever operation happens to it...

Indeed, inf should always map to inf, no matter the rounding mode or format in use. Under which circumstances do you observe max magnitude being returned? A quick glance into the RTL indicates that this issue should only happen when casting infs with round mode RDN or RTZ (which should be fixed, of course).

In my case it was RTZ mode. I think the following part could be fixed.
      // Overflow or infinities (for proper rounding)
      if ((destination_exp_q >= signed'(2**fpnew_pkg::exp_bits(dst_fmt_q2))-1) ||
          (~src_is_int_q && info_q.is_inf)) begin
        final_exp       = unsigned'(2**fpnew_pkg::exp_bits(dst_fmt_q2)-2); // largest normal value
        preshift_mant   = '1;                           // largest normal value and RS bits set
        of_before_round = 1'b1;


chore(deps): update dependencies to latest to demo Apollo Client with Vite 3

Updating dependencies to latest to demo @apollo/client usage with vite v3. After updating, the only deprecation warning was the following:

Making that prescribed change to the options passed to vite.createServer eliminated the warning. The demo app runs as expected and behaves as it did when previously built with vite v2:

Closed and re-opened the PR to kick off the tests again, sorry for the noise :)

In my final commit I also updated the vue example + test so it doesn't skip on v3. Looks like we're all green \o/


The absolute pathing, especially with the tilde ("~"), passes on local but fails on CI.  This is because the CI isolates the source code from the home directory.


[test]fix e2e test

What this PR does / why we need it:
Special notes for your reviewer:
Does this PR introduce a user-facing change?

Codecov Report

Merging #543 (30cac0d) into main (e2ae209) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #543   +/-   ##
=======================================
  Coverage   28.69%   28.69%
=======================================
  Files          24       24
  Lines        1338     1338
=======================================
  Hits          384      384
  Misses        900      900
  Partials       54       54

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


OktaSSO function app deployment failure since new repo update

Describe the bug
Since the new update 2 weeks ago to the repo it seems to have to broke the function app. While the function app deploys it does not deploy the actual function code to polls the API and push the data to Sentinel.
Issue is URL link to package goes points to a broken URL
{
"name": "WEBSITE_RUN_FROM_PACKAGE",
"value": "https://aka.ms/sentineloktaazurefunctioncodev2-solution"
}
To Reproduce
Steps to reproduce the behavior:

Deploy Okta Solution to Sentinel
Go to Sentinel / Data connectors and then the okta data connector
deploy the function app attached to the okta data connector.
Go to function app and under functions you will see no functions are deployed

Expected behavior
Function app is deployed with functions.
Additional context
Add any other context about the problem here.

Also experiencing this issue. Broke our Okta Logging....
Looks like the aka.ms short url needs to be updated to point to the new location

++ This has broken our Okta logging

aka ms should point to
https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Okta Single Sign-On/Data Connectors/OktaSingleSign-On/AzureFunctionOktaSSO_V2/AzureFunctionOktaSSO.zip?raw=true
currently points to (spaces in Okta Single Sign-On)
https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Okta Single Sign-On/Data Connectors/Okta Single Sign-On/AzureFunctionOktaSSO_V2/AzureFunctionOktaSSO.zip?raw=true

Further update as a hotfix I am manually updating the deployment code to the correct URL which seems to fix it. However hoping someone can do a proper fix with a code update.
Also if the function app was already deployed before the bug you can update application settings and the URI value to the correct URL and do a restart which also fixes it

@philfy20 ,Will work on the above issues analysis ,will get back to you on 01Nov23

@philfy20 We have analysed the master path i.e. https://github.com/Azure/Azure-Sentinel/raw/master/Solutions/Okta Single Sign-On/Data Connectors/OktaSingleSign-On/AzureFunctionOktaSSO_V2/AzureFunctionOktaSSO.zip
Short link path: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Okta Single Sign-On/Data Connectors/OktaSingleSign-On/AzureFunctionOktaSSO_V2/AzureFunctionOktaSSO.zip?raw=true
Both are same,Please verify and let us know if any issue

the short link which was flagged "https://aka.ms/sentineloktaazurefunctioncodev2-solution" is now resolving to the correct URL. Previously "https://aka.ms/sentineloktaazurefunctioncodev2-solution" would point to a URL that did not exist. As this is now resolved this can be closed. thanks


Remove .DS_Store leftovers + add it to .gitignore

As discussed on mattermost, starting to contribute for the build scripts branch dev here with this PR.
It seems some folders had .DS_Store files laying around. I did 2 things in this PR:

add a .gitignore to ignore .DS_Store files so that this does not come back
removed all .DS_Store that were present in the repo

adding more context:
the .DS_Store causes compile error:
#PHP Warning:  file_get_contents(/Users/ndeet/htdocs/btcpayserver-web/build-tool/components/json/.DS_Store.json): failed to open stream: No such file or directory in /Users/ndeet/htdocs/btcpayserver-web/build-tool/build.php on line 51
PHP Stack trace:
PHP   1. {main}() /Users/ndeet/htdocs/btcpayserver-web/build-tool/build.php:0
PHP   2. file_get_contents() /Users/ndeet/htdocs/btcpayserver-web/build-tool/build.php:51

This PR fixes it by removing .DS_Store which makes sense anyway. But the underlying problem is that line 51 of the build script does not check if a file exists but assumes all files in the json/ subdir are json files. See https://github.com/btcpayserver/btcpayserver.github.io/blob/dev/build-tool/build.php#L51
So this fix is fine, a more robust solution would be to check if a .json file exists and not extending and assume all files to be .json in that directory.

That's what I get for cmd + a and drag to GitHub desktop. Thanks for cleaning that up. Cheers


Image list for eirini images

Is your feature request related to a problem? Please describe.
All the eirini images should be present in image_list.json.
Describe the solution you'd like
Alter the build so it contains all the images mentioned in #744 .

We need to take care of the downloader,executor and uploader images too: https://github.com/cloudfoundry-incubator/eirini-release/blob/master/helm/eirini/templates/configmap.yaml#L20


Add an option to overwrite/skip .png files that already exist in the target directory

Hi
I am using this script to generate some images but was having issues where I was generating tens of thousands of permutations. Occasionally Photoshop would get interrupted and I had to start all over again.
To resolve this I have added an extra prompt to ask if the user wants to overwrite pre-existing .png files. If they opt not to overwrite them, then there is a check before a .png file is written, and if the file already exists then the script continues directly to the next combination without saving.
This is totally independent of .psd image generation.

Simplify this:
// If this is false then we need to check before writing a file so we
// can skip pre-existing files
if (!overwritePreExistingPngFlag) {
var fileHandle = File(fileFullPath + '.png');
  if (fileHandle.exists) {
    // Do nothing as the file already exists (to save time)
  } else {
      saveDocumentAsPNG(fileFullPath);
  }
} else {
    // Just save the file regardless of if it exists as we are always overwriting
   saveDocumentAsPNG(fileFullPath);
}

if(includePSDFiles) saveDocumentAsPSD(fileFullPath);

To:
if(overwritePreExistingPngFlag) saveDocumentAsPNG(fileFullPath);
// save only when the file doesn't exist
else  ! File(fileFullPath + '.png').exists && saveDocumentAsPNG(fileFullPath);

if(includePSDFiles) saveDocumentAsPSD(fileFullPath);

Other than that the commit is ready to merge.

Thanks @mechanicious!
I actually just had a continue in my version as I don't care about the PSD files.
I prefer using full block statements for readability but that's just my preference.
You could almost reduce it to this, I think? (Some of the finer points of my JS are not the best)
if (overwritePreExistingPngFlag || !File(fileFullPath + '.png').exists) {
   saveDocumentAsPNG(fileFullPath);
}

Yeah, you can reduce it to that, see:

overwrite
file doesn't exist

T
T
save

T
F
save

F
T
save

F
F
don't save

However, you're splitting a hair here.

Absolutely.
Thanks again for making this script - saved me a ton of time!

Absolutely.
Thanks again for making this script - saved me a ton of time!


Increase threshold for failure in collector integration test

Let me see if I can get the test grid harness to break out results on a per test basis as well as add periodics before I merge this so we can actually verify that this fixed the flake.


Segment images without patches

Checklist

[x] I've given this PR a concise, self-descriptive, and meaningful title
[x] I've linked relevant issues in the PR body
[x] I've applied the relevant labels to this PR
[ ] I've added relevant tests for my contribution
[ ] I've updated the documentation and/or added correct docstrings
[x] I've assigned a reviewer
[x] I've consulted ADS's internal developer documentation to ensure my contribution is in line with any relevant design decisions

Description
This PR adds the option to segment without patches with the --no-patch flag in the CLI (as implemented in ivadomed v2.9.7).
The PR is still a draft, TODO:

[x] Fix default overlap when using the no-patch option here
[x] Update documentation
[x] Update docstrings
[x] Add test

Linked issues
Fixes #676

This PR is now ready for review.
The new "no-patch" feature only applies to CLI and not to fsleyes where the behavior is unchanged,
@Stoyan-I-A, do you think we should integrate it in fsleyes or wait to do it in Napari?

It should be pretty easy to add this option in FSLeyes, so I'd say we should do it.
Now, should we do it in this PR or in another one?

It should be pretty easy to add this option in FSLeyes, so I'd say we should do it.
Now, should we do it in this PR or in another one?

I would say probably separately because there is a small catch:
the "no-patch" option is supposed to be used without the "overlap" option. If both are used on the CLI, currently the "no-patch" option supersedes the "overlap" option and a warning is shown in the terminal from ivadomed.
So to make it clean in fsleyes, we would need to somehow disable the "overlap" option in the GUI when using the "no-patch" option. I don't know enough about the plugin to estimate if that is complicated or not.

I would say probably separately

Ok, let's do it this way.

we would need to somehow disable the "overlap" option in the GUI when using the "no-patch" option

For the user, I'm thinking of greying out (disabling) the "overlap" box in the settings menu when a no-patch checkbox is selected.

Tests pass successfully on my local machine. I had to not only update my conda env (expected) but also re-do pip install -e . (thought for some reason that I wouldn't have to, but no-patch option wasn't working until I did so).

Tested functionality with and without no patch option. I feel like just from this first test, the no-patch option results in better segmentation quality for several axons, in particular it fixes "irregular artifacts" in myelin.
Without patching

Without patching

GIF

Documentation looks good

Thanks for adding a test 🎉


dataclasses is not avaliable in python 3.6

dataclasses is added in python 3.7, please update required python version as python >= 3.7

Fixed.


Tiff image format

Can we have browser support for tiff image format please?

+1

+1

+1

https://en.wikipedia.org/wiki/Comparison_of_web_browsers#Image_format_support

+1

+1


Add MSI Alpha 15 to the list

Hi, I tested this tool in MSI Alpha 15 with SparkyLinux and it work perfectly.
Can you add this model to the supported model list?
Very thanks!!

Can confirm, works like a charm :)
I guess the internal name would be A3DD
(BTW, thank you @juanro49 for your review!)


[docs] Demo options as JSON

It's setting up the infrastructure needed for #9474. For instance:
A simple example of a scrollable image `GridList`.

{{"demo": "pages/demos/grid-list/ImageGridList.js", "hideEditButton": true}}

In practice, it's interpreted as JSON. Even if we decided to roll back the hideEditButton feature. It's still allowing extra configuration power for the future.

I see what you meant now


Higher-order components as STDlib API Pattern (FP in FBP)

Neva supports interfaces and (static) dependency injection, we investigate how handy it is to use that pattern to handle cases like map/filter/reduce or even scenarios like working with resources that needs to be closed (kinda like passing callbacks in FP languages)
Example
Let's imagine ForEach component that accepts IHandler interface as a dependency. It's goal to do something for every element of a stream (list, map, etc).
interface Handler {
    <T>(v T) (v T)
}

component ForEach<T>(seq maybe<T>) (seq maybe<Y>) {
    nodes { Handler<T>, Unwrap<T>, Wrap<Y> }
    net {
        :seq -> unwrap
        unwrap:some -> handler -> wrap -> :seq
        unwrap:none -> :seq // FIXME order is not guaranteed
    }
}

component PrintEachInt(seq maybe<int>) (seq maybe<int>) {
    nodes {
        printEvery ForEach<int> { Println<int> }
    }
    net { :seq -> printEvery -> :stop }
}

P.S - please note that this implementation is naive (I'm talking about the FIXME part), but that's another thing to discuss.

Related to #575

This how type-safe e.g. Map could look like
interface IMapper<T, Y>(data T) (res Y)

component Map<T, Y>(data stream<T>) (res stream<Y>) {
    nodes { mapper IMapper<T, Y>, builder Struct<StreamItem> }
    net {
        :data.data -> mapper -> builder:data
        :data.idx -> builder:idx
        :data.last -> builder:last
        builder -> :res
    }
}

component Main(start) (stop) {
    nodes {
        Map<int, string> { IntToStr<int, string> }
    }
    net {
        // ...
    }
}

component IntToStr<T int, Y int>(data T) (res Y) {
    // ...
}

Problem
To provide type-safety (because of how Nevalang's type-system works) we have to
component IntToStr<T int, Y int>(data T) (res Y)
...
Map<int, string> { IntToStr<int, string> }

Instead of just
component IntToStr(data int) (res string)
...
Map<int, string> { IntToStr }

Weak solution
It's possible to replace type-parameters in the interface with any. This makes everything simpler:
interface IMapper(data any) (res any)
...
nodes { mapper IMapper }
...
component IntToStr(data int) (res string)
...
Map<int, string> { IntToStr }

But the problem is that we can now pass anything as a Map's dependency (as long as it has data and res ports), types could be anything, we won't get compiler error if they are not compatible with what we've passed to Map<T,Y> type parameters.

 I mean we could implement map/filter/reduce/for/you-name-it but they block. Like, if you pass a stream to for, then flow gonna be blocked until all the elements are processed.
Ofc we could implement this and sell it like a "easy default way of solving problems" and if you'll need extra perf then use some more "advanced" API (e.g. from streams package). That makes sense and sounds ok but... Hey? Should't we make the default way of solving problems performant?
I know perf is not goal at Alpha but it's about streaming, not some CPU cycles... Okay enough words. Lemme show some code
Blocking API example
Let's say we wanna map each element of a list and then perform some side-effect (we gonna print for simplicity)
component Main(start) (stop) {
    nodes { lists.Map{Heavy}, PrintEach }
    :start -> ($lst -> map -> printEach -> :stop)
}

Everything is ok but the program could be faster if map wasn't blocking. We gonna first map the whole list (let's say it's 100 of deeply nested objects, let's say that would take us 100s), then we gonna print each object. So _first mapped object gonna be printed after 100s.
Non-blocking API example
The idea is to have wrapper, that does safe unwrapping of a stream-item inside, just like previous version, but instead of blocking until all stream processed it wraps
component Main() () {
    nodes { lists.Map{Heavy}, For{Println} }
    $l -> map -> for.last -> if:then -> :stop
}

lists.Map takes list, iterates over it, on each iteration "calls" mapper (Heavy in this case), then "wraps" result into stream item and sends downstream
For receives a stream-item, calls handler (Println) with it and sends downstream
We select .last field of each item and send to if node, if last==true it sends to ->:stop and terminate, otherwise nothing happens (we don't use if:else so these messages just deleted)

First mapped object gonna be printed after 1s which is x100 faster

These APIs are BLOCKING

But maybe you can just pass handler inside For that will do the mapping AND side-effect in that case? Passing some custom component.
Also should be possible (even tho not idiomatic) to pass mapper with side-effect?

I'll close this one because a few APIs are already in main and it's clear where to go next

FP + FBP = <3 (this is the way)
By FP we mean higher order components that works with streams and/or collections
No problems with blocking APIs, there are non-blocking alternatives that are not something synthetic but rather natural (Like Map)


Postgres types are not recognized?

This is my column data
{ tableName: 'users',
  columnName: 'id',
  ordinalPosition: 1,
  isNullable: 'NO',
  dataType: 'character varying',
  udtName: 'varchar',
  columnKey: 'PRI',
  columnType: null }

And this is the error I get
nhandled rejection Error: Type "character varying" not recognized
    at getType (/home/playlyfer-4/.nvm/v0.10.40/lib/node_modules/sql-to-graphql/steps/column-to-object.js:127:19)

Thanks for the report. Postgres adapter has a few issues right now, indeed. I'll see if I can look into it later today.

Man That was fast..

Fixed the character varying type but then,
Ok I use custom domains for column types like
CREATE DOMAIN Name      VARCHAR(100)   NOT NULL;

This might be harder than I thought
{ tableName: 'users',
  columnName: 'name',
  ordinalPosition: 2,
  isNullable: 'YES',
  dataType: 'name',
  udtName: 'name',
  columnKey: null,
  columnType: null }
Unhandled rejection Error: Type "name" not recognized

needs a little research..

I was looking to use this but "json" type is also not supported

@heri the authors wrote thousands and thousands of lines of code for this project and published it for you for free. Maybe you can take some time to add support for the json type in postgres.

Hi @tjwebb I'll look into it and see what I can do -- however I have already transformed my db into graphql by hand.

This fails with, "timestamp with time zone" I am assuming the postgres support is not great.

@sheki This is true. I don't have any personal projects using Postgres, so there are probably several issues related to Postgres.
I'd be willing to take a look at a basic fix for data types if someone can provide me with:

A simple schema with the data type
A few rows of sample data for it
Some thoughts on the preferred way of exposing this through GraphQL - whether it be a custom data type, cooerce to a primitive etc.

One more type I would recommend for postgreSQL is to add the type 'timestamp without time zone'. I fixed it locally on my system by adding the line
case 'timestamp without time zone':
Just after the line
case 'timestamp with time zone':
in steps/column-to-object.js/time

NB -- citext also causes a problem:
$ sql2graphql ...
SELECT enum_range(NULL::citext) AS citext - function enum_range(citext) does not exist


Panic to close a running ResponseStream

It' s not safe to close a running ResponseStream.
ResponseStream.Close() will set header field to nil, but header feild may be concurrently accessed by the ResponseStream.Run() which is executed in another goroutine.
The defer/recover pattern does not slove that problem, and may cause resource leaking.

How to gracefully close a connection is not a simple task, I think it should be redisgned.

Thanks for the help


Preview Button is not appearing i.e. ShowOpertaion is not working as expected in Backpack 4.0V

Bug report
The preview button is not showing. i.e. Show Functionality is not working in my CRUD Controller.
What I did
I have added this to my controller class
use Backpack\CRUD\app\Http\Controllers\Operations\ShowOperation;

public function setupShowOperation()
    {
        $this->crud->addColumn([
            'name' => 'name',
            'label' => 'Name',
            'searchLogic' => function ($query, $column, $searchTerm) {
                $query->orWhere('name', 'ilike', '%' . $searchTerm . '%');
            }
        ]);
    }

??
What I expected to happen
I would like to see the preview button in ListView but it is not there.
What happened
The preview button is not there. but If I add $this->crud->setFromDb();
it is showing three-dot on the right side,  when you click on it is popping up all the columns. I wanna show only a few columns, not all the columns.
What I've already tried to fix it
I have tried many including loading a custom show blade file still it is not working as expected.
Backpack, Laravel, PHP, DB version
I'm in Backpack 4.0 Version
Thanks in Advance

Hello @sandeepchowdary7 and thanks for the report.
$this->crud->allowAccess('show'), my guess is that in some other place you are doing $this->crud->allowAccess('create/delete/wtv') so only those are allowed.
Let me know.
Pedro

Hello @sandeepchowdary7 and thanks for the report.
$this->crud->allowAccess('show'), my guess is that in some other place you are doing $this->crud->allowAccess('create/delete/wtv') so only those are allowed.
Let me know.
Pedro

Closing due to incactivity.
Please re-open if needed.
Best,
Pedro

Closing due to incactivity.
Please re-open if needed.
Best,
Pedro


Add support for using multiple DuckDNS domains simultaneously

The use of the plugin as a local installation as well as a Docker image should allow the use of multiple DuckDNS domains without multiple docker containers or command calls.

This feature cannot be implemented because of the limitation of the number of TXT records by DuckDNS. For more information, please refer to the Readme.


Feat: adapt to peopledoc org and custom to fit SRE needs

Add codeowners
Enhance role to fit needs

https://github.com/peopledoc/ansible-role-fluentbit#requirements

This role is only tested on Debian 10.x (Buster).

Did you tested it on Debian 9?
Also, shouldn't we add molecule tests? What do you think?


Calculate Player x,y Position

We have to calculate the x,y position of the player based on the current rotation angle when moving forwards/backwards

Included in #30


Install JDK into docker image (for testing JNI wrapper).

Do not land until HWY is updated past 376176136.

Rebuilt image and updated hash. PTAL

LGTM


vuln fix for CVE-2023-28840

copy from: https://github.com/chartmuseum/helm-push/pull/189

Hi @czhujer,
Out of curiosity, are you planing to use helm-push from your own repository? If I'm not the only one who feels things are moving too slow on the original repo, I could take a similar approach at some point. That's a too big responsibility to take, however, it will be easier to progress I suppose.
Cheers,

Hi @leventyalcin,
for now, probably i have to :)
Because I wanted use version from origin main, because there are fixed some CVEs.
But looks like bump version of cobra library's caused some issues https://github.com/chartmuseum/helm-push/issues/187.
And after i've send MR/PR with fix, I'm cherry picked also your's FIX :)

Yes, we will see :)

@czhujer Just to let you know, your PR and mines are merged and a new version released. 👍

@leventyalcin yes, i've seen. thank you for info :)


Added back pipefail with condition

Closes #1

@renatoabreu11 can you take a look at this?

@renatoabreu11 can you take a look at this?

@faogustavo Sure. Next time if needed please request a review so that I get a notification immediately.


UINavigationBar appearance not being applied

Hi there, first of all, really great work!
Issue
I'm having issues updating the UINavigationBar appearance from StandardAppearance. Uncommenting this block:
UINavigationBar.appearance.tap do |o|
  o.barTintColor = rmq.color.black
  o.setTintColor rmq.color.black

  o.setTitleTextAttributes( {
    UITextAttributeFont => rmq.font.medium,
    UITextAttributeTextColor => rmq.color.white
    #UITextAttributeTextShadowColor => color.clear
  })
end

Yields no change to the styles.
Env

iOS Simulator - iPhone 6 / iOS 8.4
redpotion (1.4.0)
Rubymotion 4.0 AND 3.14

Please let me know if you need any other info and any advice would be greatly appreciated!

+1. Any changes made for UINavigationBar in StandardAppearance don't take effect.

+1. I'm actually finding that no changes made in StandardAppearance seem to take effect.

iOS Simulator iPhone 5s and 6 / iOS 9
redpotion 1.4.0
Rubymotion 4.3

This could be related to the ApplicationStylesheet is only initiated when it's first used. This is a problem that needs to be fixed. Try this in your app delegate on_load (first thing):
ApplicationStylesheet.new(nil).application_setup

That may not run before your screen is created though. You could put it directly in the app delegate class so it's run when the singleton code is run.

This worked for me.
Move StandardAppearance out of the ApplicationStylesheet and into the app delegate
def on_load(app, options)
cdq.setup
StandardAppearance.apply
open TrainScreen.new(nav_bar: true)
end

Thanks for the discussion! @twerth's suggestion worked for me. Are there any implications with manually instantiating ApplicationStylesheet? Will it be instantiated here AND as it normally does?

Thank's all! @twerth's suggestion to call
ApplicationStylesheet.new(nil).application_setup

in the app delegate class works for me.
@dsalzr's suggestion works as well, but only if I'm not using any custom rmq colors/fonts/etc., since it seems those will not be loaded yet in on_load

There is no problem with that @jonlunsford , it will only happen once. We should just put that in RedPotion's app delegate class.

An easy PR for someone ^ :-)

Good point @mikowitz. I'll give @twerth's solution a try also.

I can PR it up unless someone else is on it already.

PR: https://github.com/infinitered/redpotion-template/pull/14


Fix tor status changing to 'connecting' when nodes count updates

Currently whenever node count updates tor icon in status bar gets set back to "Connecting over Tor network". It should simply update the connection status via the proper function instead

I've noticed this after the latest patch. Now it immidately gets set to connectced when the first node connects. (which makes nense imo)

Excellent!
Many thanks!


Update README.md

modified output structure for kata v.1.0.3.

I also modified interface.ts so that it properly refer to the geojson module.


SLIM-779 Changes deviceIdentification to reflect the port number the simulator…

… will be running on.

This pull request makes the build fail.

This pull request makes the build fail.

Build successful http://<IP_ADDRESS>/job/OSGP_Integration-Tests_pr/519/


Create dc.Dockerfile

It doesn't look like you are doing the build in Docker here. Remember that the only available commands in the build environment are make and docker
Also something to keep in mind in the future, go deps is deprecated.

It doesn't look like you are doing the build in Docker here. Remember that the only available commands in the build environment are make and docker
Also something to keep in mind in the future, go deps is deprecated.

Done the required changes in latest commit, please validate @cdmurph32


To ignite and maintaining campfire

Below is the user acceptance criteria for this enhancement:
Players should be able to collect/ gather firewood so that they can start a campfire.
Campfire can be maintained by using fuel, which extands the burning duration.
Campfire will encourages the players to interact among themself.

take the issue into in progess

Move the issue to In progress

move the issue to In progress


Add support image/* Mime Type

Is your feature request related to a problem? Please describe.
Swag should be provide support to image/{png,jpeg,gif} Mime Types.
Describe the solution you'd like
add Mime Types to Accept and Produce keywords on operation.go

Thx


Support xml referencing another xml in utbot-spring-analyzer

Description
Current implementation of utbot-spring-analyzer takes into account that xml file may contain a reference to properties file. So, when xml is copied from users project to out custom project builder, we replace real properties file name with fake one.
Actually, xml config may contain not only reference to properties file, but to another xml config file also.
We need to deal with this situation.
Expected behavior
Real xml file reference is replaced with another reference to fake xml file.

Replaced with https://github.com/UnitTestBot/UTBotJava/issues/2120


支持dubbo2.6吗

支持dubbo2.6吗

测试的是 dubbo 2.7， 2.6 应该也是支持的。
On Thu, Sep 22, 2022 at 11:26 AM JianNie @.***> wrote:

支持dubbo2.6吗
—
Reply to this email directly, view it on GitHub
https://github.com/aeraki-mesh/dubbo2istio/issues/32, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKCWIRVHBSPEAAMO6B3ZVDV7PGWNANCNFSM6AAAAAAQSULDHE
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


ocamlPackages.janeStreet 0.14.x set

I've been working on updating cstruct to 6.0.0, currently I have a few build failures caused by different versions of dependencies being propagated in tls. I'm pretty sure this can be fixed by updating ppx_sexp_conv to 0.14.1 (which uses a newer ppxlib).
This begs the question: Should be provide a 0.14.x janeStreet package set? Are there any plans towards this yet? Any possible problems?
cc @vbgl

#106386 brings JaneStreet packages at version 0.14. Then it should be easier to update cstruct, JSoO, etc.

That's great! I was kinda hoping someone else could do it because I'm not too familiar with the janestreet infrastructure. I'll try to test and review the PR in the next days.


Include a Code of Conduct Page

We need a separate code of conduct page that we can refer to in various events and locations.
Basis for this is the code of conduct already linked from our older events page.
Propose we update/change to look more like the contributor code of conduct here: https://www.contributor-covenant.org/version/2/0/code_of_conduct/
This should go under the About Us Tab

https://innersourcecommons.net/about/codeofconduct/


feat(rollup): handle exex notifications

after #8
after #31

After initializing the pipeline, the main loop will involve taking incoming Chain notifications from the Driver and:

handling both the committed and reverted cases
updating the providers with the newly committed chain and blobs
sending the FinishedHeight notification to the Driver

here is a reference implementation:
async fn handle_exex_notification(
        &mut self,
        notification: ExExNotification,
        pipeline: &mut RollupPipeline,
    ) -> Result<()> {
        if let Some(reverted_chain) = notification.reverted_chain() {
            self.chain_provider.commit(reverted_chain.clone());
            let l1_block_info = info_from_header(&reverted_chain.tip().block);

            // handle the reverted chain...
        }

        if let Some(committed_chain) = notification.committed_chain() {
            let tip_number = committed_chain.tip().number;
            self.chain_provider.commit(committed_chain);

            if let Err(err) = self.ctx.events.send(ExExEvent::FinishedHeight(tip_number)) {
                bail!("Critical: Failed to send ExEx event: {:?}", err);
            }
        }

        Ok(())
    }

@merklefruit  Could I try this one?

@merklefruit Could I try this one?

Hey, sorry I had already started a draft PR of this in #57, but forgot to tag it here. My bad!


Update CZML validation document.

Adds validation for #8580.

Thanks for the pull request @shunter!

:heavy_check_mark: Signed CLA found.
:grey_question: CHANGES.md was not updated.

If this change updates the public API in any way, please add a bullet point to CHANGES.md.

Reviewers, don't forget to make sure that:

[ ] Cesium Viewer works.
[ ] Works in 2D/CV.
[ ] Works (or fails gracefully) in IE11.


ThinkArray-challenge-4/5.md

ThinkArray-challenge-5.md-main -- This is for Challenge 5
ThinkArray-challenge-4.md--main -- This is for Challenge 4

Closing this PR as submisison guidelines were followed incorrectly.


Update vowpalwabbit version

Issue #, if available:
#2686
Description of changes:

Update vowpalwabbit version
This should hopefully fix Py310 MacOS install
Note: Bug in vowpalwabbit>=9.5 : Model is not saved correctly, so avoiding that version for now.

This PR is low risk: vowpalwabbit is an optional dependency not installed by default, and it is not imported unless the user specifies vowpalwabbit to be trained.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/platform_tests


Project_Card_Tag_Bug

@smaranjitghose I'd like to fix this. You are talking about space within and between elements, right?

@smaranjitghose I'd like to fix this. You are talking about space within and between elements, right?

@smaranjitghose I'd like to fix this. You are talking about space within and between elements, right?

Assigned for 2 days.

@smaranjitghose I'd like to fix this. You are talking about space within and between elements, right?

Assigned for 2 days.

@smaranjitghose I'd like to fix this. You are talking about space within and between elements, right?

Assigned for 2 days.

@smaranjitghose I'd like to fix this. You are talking about space within and between elements, right?

Assigned for 2 days.

@smaranjitghose I'd like to fix this. You are talking about space within and between elements, right?

Assigned for 2 days.

The small comma

@smaranjitghose I'd like to fix this. You are talking about space within and between elements, right?

Assigned for 2 days.

The small comma


feat: add global optional user goosehints file

addresses: https://github.com/square/goose/issues/72

from ~/.goosehints:
I want you to say "good morning sunshine" when starting a new session always%

@lukealvoeiro yeah I did think of that - when you say sequentially added - you mean when goose starts a session or when code moves around dirs as part of the session?

yep could be in goose config - but I don't know if we want to commit to making it more complicated/smart just yet? ease into it?

is in goose config dir now


Is there a way for the legend to show layers with spaces in their names?

Is there a way to accept layer IDs with spaces in them? It looks like mapbox GL handles layers with spaces in their names just fine, but those don't show in the legend.

Never mind. I found the answer (use the metadata name) in the documentation.


Added Objective-C support

Hello @PiXeL16, here is the PR for issue #33.
Please do test it before merging, I have not done a PR before and I do not want to break anything 😅.
Thank you again.

I ran the tests locally with:
xcodebuild -workspace RevealingSplashView.xcworkspace -scheme "RevealingSplashView" -destination "OS=10.3.1,name=iPhone 6s Plus" test GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES | xcpretty -c
And I believe it did worked because I got the following output:

I do not know what went wrong.

Awesome thanks! 🎉 Will fix CI in separate PR!

BTW pushed version 0.4.0 with your fix https://cocoapods.org/pods/RevealingSplashView 👍

Nice! Thank you! 👍


grep error

Git add:
~/repo git:master ❯❯❯ git add "inside/Library/Application Support/Sublime Text 3/Packages/User/Preferences.sublime-settings"

Git commit:
~/repo git:master ❯❯❯ git commit -m 'Minor update'
grep: inside/Library/Application: No such file or directory
grep: Support/Sublime: No such file or directory
grep: Text: No such file or directory
grep: 3/Packages/User/Preferences.sublime-settings: No such file or directory
[master 6ec4a48] Minor update
 1 file changed, 1 insertion(+), 1 deletion(-)

I see some grep commands in the main file but don't which is causing the issue.

It looks like the spaces in paths are not being correctly escaped… might need to change the quoting…,


Added exceptions and errors handling

To get exception or error details in TestNG report, we need to assert first column in first row of results table.
@agozhiy could you please review this PR?

@agozhiy could you please verify changes

@agozhiy could you please verify changes

+1


Include settings for number of working hours number of working days per week

@sonamvg please add description or close if already done/not needed.


refactor: rename BUILD -> BUILD.bazel

Fixes: https://github.com/googleapis/google-cloud-cpp/issues/7720
Bazel supports BUILD and BUILD.bazel. The latter seems to be preferable because it's less likely to conflict with something else, and it will make our imports a bit easier. I also changed WORKSPACE -> WORKSPACE.bazel.
This change should be transparent to our users.
NOTES:

There are still generic uses of the term "BUILD" file. This is common in bazel's docs, and I think it's fine in ours as well. That is, we can still say "update the BUILD file", and it means to update whichever bazel build file you have (either BUILD or BUILD.bazel). There were a few places where we referred to a specific file, and in those cases I updated the documentation.
We still have some bazel/*.BUILD files. I left these because they already have specific names. We could rename them to something like foo.BUILD.bazel or foo.bazel instead, but that didn't seem much clearer.

This change is

I knew I should have assigned the issue to myself before working on this, or at least check that no one else had. That said, I also had edits to ci/generate-markdown/generate-packaging.sh (and therefore to doc/packaging.md), in the "we provide Bazel files" bit.

Ahh, sorry for wasting your time! We should have coordinated better. Done.


Yatin: Watch advisorwellness.org

Yatin requests the watch of the watch_keyword advisorwellness\.org. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

advisorwellness\.org has been seen in 1 true positive, 0 false positives, and 0 NAAs.

advisorwellness\.org has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by cigien in Charcoal HQ

Approved by cigien in Charcoal HQ


Imports sorting should be deterministic

We have always been implicitly enforcing a specific sorting for imports, but without the linter actually checking it, many files are adopting different standards.
A pr was merged and got into the latest relese of golangci-lint, reenabling gci autofix. So I suggest enabling gci as a linter and setting any required configuration.
The implicit standard we have been following I think was (standard libraries, everything else, local packages) separated by a line, but feel free to suggest any other standard we should enforce from now on.

I like the idea. We need to merge #437 before implementing this. Otherwise, it will trigger gosec alerts, as explained in #436.

This issue on gci would be good to solve before implementing this enhancement https://github.com/daixiang0/gci/issues/65

we are waiting for a release that contains https://github.com/daixiang0/gci/pull/88

It is released and available in the latest golangci-lint version 1.147.3


multi-node distributed training, submitit & composer integration demo

What does this PR do?
This PR adds a Jupyter notebook demo of how to submit a multi-node distributed training job on the SLURM cluster without using the composer launcher. Specifically, I show how to use submitit with composer in the multi-node distributed training setting. submitit automates SLURM cluster job submission in python scripts without any shell scripts, and this implementation shows how to properly set up the distributed training environment variables in python.
What issue(s) does this change relate to?
It's related to some of the requests posted on the MosaicML slack channel.
Before submitting

[Yes] Have you read the contributor guidelines?
[Yes] Is this change a documentation change or typo fix? If so, skip the rest of this checklist.
[ ] Was this change discussed/approved in a GitHub issue first? It is much more likely to be merged if so.
[ ] Did you update any related docs and document your change?
[ ] Did you update any related tests and add any new tests related to your change? (see testing)
[ ] Did you run the tests locally to make sure they pass?
[ ] Did you run pre-commit on your change? (see the pre-commit section of prerequisites)

@YilunKuang thanks for opening this PR! Just wanted to confirm this is ready for review / we can take a look at it?
CC: @dakinggg @bandish-shah

@YilunKuang thanks for opening this PR! Just wanted to confirm this is ready for review / we can take a look at it?
CC: @dakinggg @bandish-shah

@mvpatel2000 Yes, this is ready for review. The only change I made is I added another Jupiter notebook as a guide to do distributed training with composer without the composer launcher and I didn't change the rest of the codebase.
If this guide is accepted, I would recommend adding a reference to this guide in the Distributed Training doc https://docs.mosaicml.com/en/stable/notes/distributed_training.html

Hi @YilunKuang this is great thanks for submitting this PR with an example for submitit.  Unfortunately I think we'll have to mask out this specific notebook from running through our typical CI tests since we don't have any SLURM infra setup to test with.
  If so could you please post some screen shots of the output a user is expected to see in the description of this PR?  We can use that as a stop gap for any users interested in leveraging this example as well as evidence the that notebook code is functional, at least at the time of this submission.

Hi @YilunKuang this is great thanks for submitting this PR with an example for submitit. Unfortunately I think we'll have to mask out this specific notebook from running through our typical CI tests since we don't have any SLURM infra setup to test with.
 If so could you please post some screen shots of the output a user is expected to see in the description of this PR? We can use that as a stop gap for any users interested in leveraging this example as well as evidence the that notebook code is functional, at least at the time of this submission.

@bandish-shah Sure no problem. I just thought this might be helpful for someone else working with the SLURM system. Here is a screenshot of the output:

These outputs are not generated directly from the Jupyter notebook but are generated by running the last code block in the Jupyter notebook as a python file.
Also, I ran my script in a multi-node setting (2 nodes, each with 4 GPUs) so there are in total 8 output files from SLURM. Let me know and I can send over the whole zip file containing output from 8 GPUs.

@YilunKuang it's very helpful as we've had others ask questions around how to use Composer with SLURM.  Thank you again for doing this!

@YilunKuang it looks like there's a few minor CI issues that need to be addressed before we can let this through.

Failing code quality checks, this can likely addressed by running the pre-commit hooks locally: https://www.notion.so/Training-Runtime-QA-430bc81aaba34e02be7bd58f46d84602
Failing doctest, need to manually add the example to the Tutorials toctree, please see: https://github.com/mosaicml/composer/blob/dev/docs/source/index.rst#L73

2. https://github.com/mosaicml/composer/blob/dev/docs/source/index.rst#L73

@bandish-shah Glad to help!
For 1, it seems like I cannot access the notion page. I got a message saying "You do not have access to MosaicML. Please contact an admin to add you as a member".
For 2, thanks I will try to add the additional changes to the pull request these two days

Typo on my end, meant to post a link to our style guide which details how to run pre-commit hooks locally, not a notion page 😅.  URL fixed in the original comment.

Typo on my end, meant to post a link to our style guide which details how to run pre-commit hooks locally, not a notion page 😅. URL fixed in the original comment.

@bandish-shah Gotcha thanks! Will push my changes this weekend.

@bandish-shah Just checked the two things you mentioned! My last commit (db9a8b9) seems to pass all the test, but when I manually merged the latest change from the dev branch with this commit 0c3aa3e something failed. Can you point me to what I should do about it? Thanks!

@YilunKuang Looks like it was a transient error :) I merged dev again and it looks like everything is passing, thanks!

@dakinggg Thanks for looking into it! Feel free to close this pull request.


plugin tool problems with scripts not being loaded properly without "fake"-rebuild

Godot version:
3.1.1 official

OS/device including version:
Windows 10

Issue description:
To be able to run certain tool-classes, i have to "fake"-edit them, to get godot to rebuild them or something, to properly work again.
My expectation:
The Scripts just work as intended on startup.
I am building a plugin for my project, to be able to generate definitions for items, skills etc. by using the plugin instead of writing directly to json-list/dictionary.
Additionally the error-tracing is really hard with tool-scripts, as they usually dont show the exact error, but only "invalid call" because he couldnt load the target script, because it has an error.
Please point me out if i have done some gross mistake.

Steps to reproduce:
When i open the reproduction Project, navigate to the "Asset Editor" main-dock tab and then click on any of the buttons, I get the error:

This error will only resolve, by navigating to the "Skill_Element.gd" class, fake-editing the file (adding one empty line, removing one empty line, and then saving).
After doing this and then reloading the plugin (by deactivating and activating) i can click on one of the skills and the sub-menue will properly pop up, but another error will show for another script that is being used, with the same way to solve that problem.
When closing and reopening the project, the same errors will exist again in need of manually fixing.
Minimal reproduction project:

Reproduction Project tool.zip

At the moment, working with tool-scripts seem to be a real hassle. Could be that im too experienced or am not using them in a way they are not made for.

It seems like this problem actually originates of off some cyclical references (visible in output on startup of the project). Im trying to clean them up and see if it then works properly. Didnt give those cyclical reference errors much thought yet, because they usually resolve themselves or are not causing imminent problems.

I could solve this, by resolving all the errors shown on startup. Seemed like it didnt like me preloading a scene in multiple scripts at once. Changed one of the preloads to a load and now its working as intended.


interpolate_pos_encoding(x, pos_embed) doesnt return correct dimension for images that is not square (w != h)

I notice the generation of positional embedding in interpolate_pos_encoding method is slightly different than the one in the forward_selfattention method. The following simple modification bring both into the same page, to your interest.
    def interpolate_pos_encoding(self, x, pos_embed, w, h):  # passing w and h as arguments
        npatch = x.shape[1] - 1
        N = pos_embed.shape[1] - 1
        if npatch == N:
            return pos_embed
        class_emb = pos_embed[:, 0]
        pos_embed = pos_embed[:, 1:]
        dim = x.shape[-1]
        w0 = w // self.patch_embed.patch_size  # just copy paste from forward_selfattention
        h0 = h // self.patch_embed.patch_size
        pos_embed = nn.functional.interpolate(
            pos_embed.reshape(1, int(math.sqrt(N)), int(math.sqrt(N)), dim).permute(0, 3, 1, 2),
            scale_factor=(w0 / math.sqrt(N), h0 / math.sqrt(N)),  # replace math.sqrt(npatch / N) with one from forward_selfattention
            mode='bicubic',
        )
        pos_embed = pos_embed.permute(0, 2, 3, 1).view(1, -1, dim)
        return torch.cat((class_emb.unsqueeze(0), pos_embed), dim=1)

I realized this solution is prone to floating point error, an example for such an error would be the following
npatch = 3904
N = 784
w, h = 491, 532
self.patch_embed.patch_size = 8
w0 = w // self.patch_embed.patch_size  # 61
h0 = h // self.patch_embed.patch_size   # 64
pos_embed = nn.functional.interpolate(
            pos_embed.reshape(1, int(math.sqrt(N)), int(math.sqrt(N)), dim).permute(0, 3, 1, 2),
            scale_factor=(w0 / math.sqrt(N), h0 / math.sqrt(N)),
            mode='bicubic',
        )
pos_embed = pos_embed.permute(0, 2, 3, 1).view(1, -1, dim)  # pos_embed.shape[1] is 3840 (60 * 64) which is supposed to be 3904 (61 * 64)

This happens because w0 / math.sqrt(N) * math.sqrt(N) is not equal w0 and nn.functional.interpolate casts int on the scale_factor (I assume) and w0 / math.sqrt(N) * math.sqrt(N) is something like 60.999999999.. and it become 60 when int is casted on. Now a solution for this problem would be adding a small number (0.1) to w0 and h0.
However this brings another question, does interpolating the positional embedings makes sense?, I mean does this operation happen during training or all the images in the training are just in the right shape and interpolation never occur? Because in that case interpolating positional embeddings (learned positional embedding) would be illegitimate right?

Hi @enverfakhan
Thanks for raising this issue. Yes I totally agree that something could be done to simplify/unify a bit the code there...
For the floating point error I've found that workaround:
https://github.com/facebookresearch/dino/blob/1d06521adfc53c80dece1a74902f718873e9821d/vision_transformer.py#L235-L240

I mean does this operation happen during training or all the images in the training are just in the right shape and interpolation never occur?

This operation actually happens during training. Indeed, with multi-crop the model is trained both with images of 224x224 and images of 96x96. So when forwarding a batch of 96^2 images we need to interpolate the encodings. As a matter of fact in my experiments I also tried having two sets of encodings. In practice that means that I was using differents encodings for the 224x224 and for the 96x96 inputs. This solution has exactly the same performance as when performing bicubic interpolation, which makes me think that the interpolation solution makes sense.

Hi @mathildecaron31 thanks for the response and also I appreciate the insight about the interpolation vs separate pos_embed a lot. I would be curios about how would that behave in the wild with completely different sizes. I actually tried the deit_small(patch_size=8) for retrieval task on a in-house data, it seems to be working on par with a supervised vgg imagenet, however I had to set the image sizes to [224, 224] because some of the images blow the memory during the attention computation.
About the workaround for the floating point error, I feel like incrementing the w0 and h0 a small amount is more legit than zero padding the pos_embed but it is probably not a big deal especially if the image size is relatively big.
Looking forward for the Dino on large, random, uncurated dataset.

I actually tried the deit_small(patch_size=8) for retrieval task on a in-house data, it seems to be working on par with a supervised vgg imagenet,

That's slightly disappointing :/. Have you tried the other models ? For example on copy detection datasets, I've found the base models to perform significantly better than the small ones.

I picked the Small 8x8 because it was shown that that performs better with k-NN ImNet and because I was going to try with zero shot for retrieval task this choice mad more sense at the time. The result was indeed slightly disappointing, however I haven't experimented exhaustively and I dont have quantitative result either, I only check qualitatively which you can only do it for a handful of query, so this result is not definitive at all. But I should say the in-house data is very different than the imagenet, so I wouldn't be very surprised if I got some weird result with either model.

As a matter of fact, on copy detection datasets, I've found the base models to perform clearly better than the small ones: I get better performance with Base16x16 than with Small8x8 though Small8x8 is better at k-NN ImNet.

What is the rationale behind Small models being better than Base models at the k-NN ImNet task?

But I should say the in-house data is very different than the imagenet, so I wouldn't be very surprised if I got some weird result with either model.

I wonder if finetuning DINO models on the in-house data you have might help? But you mentioned, that results are on par with vgg pretrained on imagenet so I am not very sure. Probably still worth trying.

I actually tried the deit_small(patch_size=8) for retrieval task on a in-house data, it seems to be working on par with a supervised vgg imagenet

I guess I caused a misinformation unintentionally. The images were RGBA and I was treating them as RGB. I'm sorry if I caused any confusion. However after I accounted for that image format, the result still varies from query (image) to query. In some cases Dino outperforms a vgg_16 ImNet by far, but in some other cases they are almost on par or even worse. I haven't detected a consistent pattern for which images that Dino outperform or under-perform, but so far it seems like, anecdotally, Dino outperform in colorful images  and it is on par (or worse) with vgg_16 ImNet for black and white images. By the way, I'm testing OpenAI's clip model with ViT too and Clip model seems to be the worst among the three (I was betting on the clip model that it would be the best, but couldn't be more wrong :) )
it's hard to come up with a quantitative evaluation. The images are multi--tagged and we are trying to retrieve similar images given a query. The tags are not reliable for evaluation because some similar images doesn't share any tag, or reverse is also the case, different images may share some common tag (instagram logo vs instagram app image). I'm planning to do a finetunining as multi class classification and try to get some numeric assessment out of that.

I wonder if finetuning DINO models on the in-house data you have might help?

I believe it would definitely help, but I wonder which model would perform better after finetuning with each. However the preliminary result that Dino is working better on colorful images is worth to pay attention.

By the way, I'm testing OpenAI's clip model with ViT too and Clip model seems to be the worst among the three (I was betting on the clip model that it would be the best, but couldn't be more wrong :) )

Not surprised. cf. https://github.com/openai/CLIP/issues/1 :D
https://openai.com/blog/multimodal-neurons/

Thank you for the reference to the issue, it was super fun to read and check the examples (and of course eye opening :) ). So the Clip model is out of option.

@mathildecaron31 I have a question about copy detection. I am trying to evaluate the pretrained DINO models on a dataset for copy detection task and I am trying to follow the steps from the paper. Even with different image input sizes in Table 4 we see that final embedding dimension is 1536. I am not able to understand we can get same embedding dimension after concatenating CLS embedding and GeM pooled output patch tokens. Maybe I am missing a point here. Here is what I did:
Added the following method to VisionTransformer to return output patch tokens and cls output.
def forward_output_patch_tokens_cls(self, x):
        B = x.shape[0]
        x = self.patch_embed(x)

        cls_tokens = self.cls_token.expand(B, -1, -1)
        x = torch.cat((cls_tokens, x), dim=1)
        pos_embed = self.interpolate_pos_encoding(x, self.pos_embed)
        x = x + pos_embed
        x = self.pos_drop(x)

        for blk in self.blocks:
            x = blk(x)
        if self.norm is not None:
            x = self.norm(x)

        return x

Using GeM module from here
def gem(x, p=3, eps=1e-6):
    "x: BS x num tokens x embed_dim"
    return F.avg_pool1d(x.clamp(min=eps).pow(p), (x.size(-1))).pow(1./p)

class GeM(nn.Module):

    def __init__(self, p=3, eps=1e-6):
        super(GeM,self).__init__()
        self.p = nn.Parameter(torch.ones(1)*p)
        self.eps = eps

    def forward(self, x):
        return gem(x, p=self.p, eps=self.eps)

    def __repr__(self):
        return self.__class__.__name__ + '(' + 'p=' + '{:.4f}'.format(self.p.data.tolist()[0]) + ', ' + 'eps=' + str(self.eps) + ')'

Collect embeddings (CLS + GeM Pooled Output Patch Tokens)
all_image_features = []
with torch.no_grad():
    for imgb in progress_bar(image_dl):
        outputs = model.forward_output_patch_tokens_cls(imgb.cuda())
        cls_token, output_patch_tokens = outputs[:,0],outputs[:,1:]

        cls_features   = cls_token
        patch_features = gem_pooling(output_patch_tokens).squeeze(-1)
        concat_features = torch.cat([cls_features,patch_features],dim=-1)
        all_image_features.append(concat_features.cpu())

Following this and using an image size of 224 for dino_vitb8 my final embedding dimension is 1568. Which can also be calculated as:
(image size // patch size)**2 + cls_feature_dim = (224//8)**2 + 768

Also, during copy detection task do you learn the pooling parameter p or is it picked based on validation set? I didn't quite understand the whitening part is it same as regular unsupervised PCA? If so, did you pick the first 1536 principal components and is that why we have 1536d for every image size and model?

Hi @KeremTurgutlu , let me open a new issue :)
@enverfakhan I have incorporated your suggested fix for the floating point error and have also been trying to improve the forward logic in the vision_transformer.py code. Thanks a lot for your suggestion and feedback is appreciated if you do have some time :). https://github.com/facebookresearch/dino/blob/6687929d7cdc2e7a5150f6e24c2b6713293944ac/vision_transformer.py#L174-L233
I'm closing this issue. Feel free to reopen is there is other problem related to the interpolation of the positional encodings.

@mathildecaron31

This operation actually happens during training. Indeed, with multi-crop the model is trained both with images of 224x224 and images of 96x96. So when forwarding a batch of 96^2 images we need to interpolate the encodings. As a matter of fact in my experiments I also tried having two sets of encodings. In practice that means that I was using differents encodings for the 224x224 and for the 96x96 inputs. This solution has exactly the same performance as when performing bicubic interpolation, which makes me think that the interpolation solution makes sense.

patch_pos_embed = nn.functional.interpolate(
    patch_pos_embed.reshape(1, int(math.sqrt(N)), int(math.sqrt(N)), dim).permute(
        0, 3, 1, 2
    ),
    scale_factor=(w0 / math.sqrt(N), h0 / math.sqrt(N)),
    mode="bicubic",
)

So when a 96x96 cropped image is fed to the model during its training, the positional embeddings of the original 224x224 model get scaled down to 96x96? (assuming a patch size of 8, pos embeddings of size 392x392 will get downsized to 72x72)
Couldn't we just use a subset of the original embeddings for the smaller images? Like in text models, we can give the model smaller sequences with no problems. Again assuming a patch size of 8, this means gettings the first 72x72 subset of the whole 392x392 positional embeddings.
I guess the current interpolation regime will make model more invariant to the scale of the images ...

Hi!
I stumbled on the same issue when using dinov2, the code crashed on the same function when using rectangular input...
In the function to encode positions, this github issue was referenced:
def interpolate_pos_encoding(self, x, w, h):
        previous_dtype = x.dtype
        npatch = x.shape[1] - 1
        N = self.pos_embed.shape[1] - 1
        if npatch == N and w == h:
            return self.pos_embed
        pos_embed = self.pos_embed.float()
        class_pos_embed = pos_embed[:, 0]
        patch_pos_embed = pos_embed[:, 1:]
        dim = x.shape[-1]
        w0 = w // self.patch_size
        h0 = h // self.patch_size
        print(f'DEBUG dinov2 vision_trasnformer.py: w0={w0}, h0={h0}')
        # we add a small number to avoid floating point error in the interpolation
        # see discussion at https://github.com/facebookresearch/dino/issues/8
        w0, h0 = w0 + self.interpolate_offset, h0 + self.interpolate_offset
        print(f'DEBUG dinov2 vision_trasnformer.py: add small number w0={w0}, h0={h0}')

        sqrt_N = math.sqrt(N)
        sx, sy = float(w0) / sqrt_N, float(h0) / sqrt_N
        patch_pos_embed = nn.functional.interpolate(
            patch_pos_embed.reshape(1, int(sqrt_N), int(sqrt_N), dim).permute(0, 3, 1, 2),
            scale_factor=(sx, sy),
            mode="bicubic",
            antialias=self.interpolate_antialias,
        )
        print(f'DEBUG dinov2 vision_trasnformer.py: patch_pos_embed.shape={patch_pos_embed.shape}')

        assert int(w0) == patch_pos_embed.shape[-2]
        assert int(h0) == patch_pos_embed.shape[-1]
        patch_pos_embed = patch_pos_embed.permute(0, 2, 3, 1).view(1, -1, dim)
        return torch.cat((class_pos_embed.unsqueeze(0), patch_pos_embed), dim=1).to(previous_dtype)

I checked the output by feeding rectangular image and found out the small addition did not change the w and h,  see output:
 image_crop.shape=torch.Size([1, 3, 434, 546])
DEBUG dinov2 vision_trasnformer.py: w0=31, h0=39
DEBUG dinov2 vision_trasnformer.py: add small number w0=31.0, h0=39.0
DEBUG dinov2 vision_trasnformer.py: patch_pos_embed.shape=torch.Size([1, 384, 31, 38])

And go the errors:
File "home/.cache/torch/hub/facebookresearch_dinov2_main/dinov2/models/vision_transformer.py", line 204, in interpolate_pos_encoding
    assert int(w0) == patch_pos_embed.shape[-2]
AssertionError

Is there a reason the interpolate call doesn't set the output size directly to (w0,h0) using the size parameter, rather than using the scale_factor parameter?

Is there a reason the interpolate call doesn't set the output size directly to (w0,h0) using the size parameter, rather than using the scale_factor parameter?

+1
Why cannot we just do
patch_pos_embed = nn.functional.interpolate(
            patch_pos_embed.reshape(1, h0, w0, dim).permute(0, 3, 1, 2),
            mode="bicubic",
            antialias=self.interpolate_antialias,
            **kwargs,
        )


Is there a headless influxdb2 option?

After some googling I didn't manage to find this so I'm asking here. We are writing some unit tests which are integrating through influxdb in our stack and the tests are running relatively slowly (I know it's subjective). Is there an option to use influxdb2 as a library to run it when the test[s] start, input that relatively low amount of data, run 2-3 queries and shut it down? This would also be great in out CI later

Hi @Kungitoo, we don't offer an "official" solution for this use-case, but if your testing infrastructure is using / could use Go you can roll your own setup by adding github.com/influxdata/influxdb/v2 as a dependency in your go.mod. You could then spin up an instance of influxd (or a sub-component) programmatically. The _test.go files in this directory show how we do it for our own integration testing.

https://docs.influxdata.com/influxdb/v2.1/reference/config-options/#ui-disabled


Added #112 sign with cosignatories

Issue: #112
Added a few methods to cope with off chain aggregated complete transaction co signing.
Please refer to this scenario currently been discussed.
Problem found from discussion:

Alice needs to create - sign - recreate - sign again
CosignatureTransaction cannot be created before aggregated transaction's been announced.
signTransactionWithCosignatories(initiatorAccount: Account, cosignatories: Account[]) requires both initiator and the cosigners's account details, which makes it impossible to sign off chain.

Solution proposed in this PR:

Alice creates the aggregated tx and serialize it, and generate the hash. Then send to Bob & Carol

Use the newly exposed transaction.serialize() methods to create transaction payload (without an initial signing). This method will create binary payload with signer and signatures showing as 0000000.....0000
transaction payload can then be send to Bob & Carol off the chain.

Bob & Carol validate the transaction and cosigns the tx and sends it back to Alice

Created a new method CosignatureTransaction.signTransactionPayload(account, transactionPayload) which can sign the transaction with its payload.
It will return object CosignatureSignedTransaction with signatures Alice expected.

const signedTxBob = CosignatureTransaction.signTransactionPayload(accountBob, txPayloadHex);
const signedTxCarol = CosignatureTransaction.signTransactionPayload(accountCarol, txPayloadHex);

Alice collects the cosignatures, recreate, sign, and announces the transaction

Alice will collect those signatures.

const cosignatureSignedTransactions = [
      new CosignatureSignedTransaction(signedTxBob.parentHash, signedTxBob.signature, signedTxBob.signer),
      new CosignatureSignedTransaction(signedTxCarol.parentHash, signedTxCarol.signature, signedTxCarol.signer),
  ];

Alice then recreate the ACT from payload

const recreatedTx = TransactionMapping.createFromPayload(aggregateTransactionPayload) as AggregateTransaction;

To sign the transaction, Alice now use the new method which does not require both initiator Account and cosigners accounts.

aggregatedTx.signTransactionGivenSignatures(accountAlice, cosignatureSignedTransactions);

Passing just the hash around is dangerous, as Bob and Carol will not know what they are signing.
I would suggest that CosignatureTransaction.signTransactionHashWith receive a transaction payload rather than just the hash to force developers to pass the entire transaction rather than just the hash (even though the function doesn't do any checks).
The reason behind this is that if the function accepts a hash, most developers will just pass around the hash, making applications that are vulnerable (signing compromised transactions). By forcing the transaction payload, it will notify the developers to think, Hey, maybe I need to get the other side to check if the transaction I'm signing is correct; or make it easier for developers to implement the check (on Bob and Carol's side).

Passing just the hash around is dangerous, as Bob and Carol will not know what they are signing.
I would suggest that CosignatureTransaction.signTransactionHashWith receive a transaction payload rather than just the hash to force developers to pass the entire transaction rather than just the hash (even though the function doesn't do any checks).
The reason behind this is that if the function accepts a hash, most developers will just pass around the hash, making applications that are vulnerable (signing compromised transactions). By forcing the transaction payload, it will notify the developers to think, Hey, maybe I need to get the other side to check if the transaction I'm signing is correct; or make it easier for developers to implement the check (on Bob and Carol's side).

Fair point, cheers @jontey 👍

tests failing due to needed library update

Pull Request Test Coverage Report for Build 493

4426 of 6638 (66.68%)  changed or added relevant lines in 199 files are covered.
23 unchanged lines in 4 files lost coverage.
Overall coverage decreased (-18.6%) to 60.468%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/core/format/RawUInt64.ts
33
34
97.06%

src/infrastructure/Http.ts
0
1
0.0%

src/infrastructure/Listener.ts
0
1
0.0%

src/infrastructure/TransactionHttp.ts
4
5
80.0%

src/infrastructure/model/accountDTO.ts
3
4
75.0%

src/infrastructure/model/accountIds.ts
3
4
75.0%

src/infrastructure/model/accountInfoDTO.ts
3
4
75.0%

src/infrastructure/model/accountMetaDTO.ts
3
4
75.0%

src/infrastructure/model/accountNamesDTO.ts
3
4
75.0%

src/infrastructure/model/accountPropertiesDTO.ts
3
4
75.0%

Files with Coverage Reduction
New Missed Lines
%

src/infrastructure/MosaicHttp.ts
1
34.92%

src/infrastructure/NamespaceHttp.ts
1
18.0%

src/infrastructure/TransactionHttp.ts
1
32.35%

src/infrastructure/AccountHttp.ts
20
32.0%

Totals

Change from base Build 375:
-18.6%

Covered Lines:
5806

Relevant Lines:
8284

💛  - Coveralls

can you rebase @rg911 please ?

can you rebase @rg911 please ?

done


Complicated scrolling in the download queue

Steps to reproduce
Scroll up or down in the download queue either in anime or manga
Expected behavior
Should scroll up or down without needing extreme precision
Actual behavior
When scrolled up or down to see the queued entries it often scrolls left or right to go to anime or manga download page even while being quite precise
Crash logs
No response
Aniyomi version
<IP_ADDRESS>
Android version
Android 14
Device
Samsung galaxy A34 5G ; SM-A346B/DSN
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] If this is an issue with an official extension, I should be opening an issue in the extensions repository.
[X] If this is an issue with an official manga extension and this issue can be replicated in the Tachiyomi app, that I should be opening an issue in Tachiyomi's extensions repository.
[X] I have gone through the FAQ and troubleshooting guide.
[X] I have updated the app to version <IP_ADDRESS>.
[X] I have updated all installed extensions.
[X] I will fill out all of the requested information in this form.

Duplicate of #1215