Production version fails to negotiate WebSocket upgrade

Problem
The production version of the poll voting app (https://poll.utm.utoronto.ca/) does not allow clients to upgrade to WebSockets for communication, forcing them to use inefficient HTTP polling instead. This could lead to heavy network traffic when there are many concurrent users.
Expected behavior
This screenshot is taken by running the production docker-compose.yaml setup (including the Nginx proxy) locally and browsing to the root page.

Actual behavior
This screenshot is taken by browsing to https://poll.utm.utoronto.ca/.

I have gotten the local setup to use HTTPS with a self-signed certificate. Surprisingly, WebSockets still seem to work, so there must be some other difference between this and production. :thinking:

I wonder if this related to Shibboleth (It's what we use for UofT SSO)

It very well could be if Shibboleth proxies HTTP requests. Is there a way of setting up a local instance of that?

I haven't tried it but this might work
https://isea.utoronto.ca/services/weblogin/sso-howto-weblogin/

Thanks for your help @embeddedt !!!
Just to summarize the solution, we ended up using your configuration for the apache reverse proxy. In addition to that there was a misconfiguration in the reverse proxy which lead to sending the /socket.io requests to the wrong place.


iOS - popover views stop responding to taps after backgrounding/re-foregrounding app

Haxe version: 4.0.0-preview.5+7eb789f
OpenFL version: 8.9.0
Lime version: 7.5.0
Affected targets: iOS

On iOS popover views stop responding to taps after the user backgrounds and then re-foregrounds the app. Any views then remain stuck on top of everything and unresponsive to input.
My repro steps: launch app on an iPhone 6 Plus running iOS 12.3, show a GameCenter authentication/login view (e.g. using https://github.com/HaxeExtension/extension-gamecenter). Notice that the view will receive touch input. Hit the home button (backgrounding the app), and then select the app icon to bring it back to foreground. At this point, the main stage/game will be receiving all the touch input, while the popovers will remain on top, unresponsive to input.
The same issue occurs with different popovers like interstitial ads, webviews etc, so isn't specific to the GameCenter authentication popover/GameCenter haxelib.
I couldn't repro any behavior like this on Android, so this is most likely an iOS-specific problem.
Workaround: I downgraded OpenFL 8.8.0 and lime 7.2.1 and this issue stopped occurring, so this only appears to affect the most recent versions of Lime/OpenFL.

I investigated this more, pretty sure it's a bug in SDL that can be patched around as discussed here: https://discourse.libsdl.org/t/touch-mouse-broken-on-ios/26139

It looks like there are additional fixes in the dev version of SDL that also refactor how this code was handled
We'll have to update SDL entirely and see how it works out


⚠ EntVenture has degraded performance

In 63d6988, EntVenture (https://entventure.org) experienced degraded performance:

HTTP code: 200
Response time: 23408 ms

Resolved: EntVenture performance has improved in 64e4530.


Can we write a generic interface that deletes any contract table data?

I found that I could use the db_remove_i64 function to delete table data, but I don't know how to pass the parameters of the db_remove_i64 function in the system contract

What do you mean generic interface? Can you give me an example code or function signature?

What do you mean generic interface? Can you give me an example code or function signature?

I mean action that removes other contract table data from the system contract

You can't. Deleting data on other contract table is not allowed.

You appear to be attempting to implement deleting contract table data into the standard system contract.  If you intend to generate a pull request, be sure to base your work on the version of the contract in the eosio.contracts repository, not the eos repository.  The version in the eos repository is obsolete, currently only used for automated testing.  It will eventually be removed.

I think it would be a very nice feature to have, in some form or other.  Unfortunately as it stands now, it's impossible.  From void apply_context::db_remove_i64():
   const key_value_object& obj = keyval_cache.get( iterator );

   const auto& table_obj = keyval_cache.get_table( obj.t_id );
   EOS_ASSERT( table_obj.code == receiver, table_access_violation, "db access violation" );

If you want to delete a table that belongs to the same contract then there are some options.
If efficiency is not a concern you could just take a multi_index table for you and do something like the following:
auto itr = table.begin();
const auto end = table.end();
while (itr != end) {
table.erase(*itr++);
}
or you could be a little more efficient and do something like:
template<uint64_t TableName, typename T, typename... Indices>
void delete_table(eosio::multi_index<TableName, T, Indices...>& table) {
uint64_t dummy = 0;
int32_t itr = db_lowerbound_i64(table.get_code(), table.get_scope(), TableName, 0);
while (itr > -1) {
const int32_t to_remove = itr;
itr = db_next_i64(itr, &dummy);
db_remove_i64(to_remove);
}
}
Obviously this won't be as efficient as it being implemented on the other side of the C API, but I believe this would be the fastest way without changing the C API.

Should probably make it
template<uint64_t TableName, typename T, typename... Indices>
void delete_table(eosio::multi_index<TableName, T, Indices...>& table, uint32_t max_rows = std::numeric_limits<uint32_t>::max()) {
   uint64_t dummy = 0;
   int32_t itr = db_lowerbound_i64(table.get_code(), table.get_scope(), TableName, 0);
   uint32_t rows_deleted = 0;
   while (itr > -1 && rows_deleted++ < max_rows) {
      const int32_t to_remove = itr;
      itr = db_next_i64(itr, &dummy);
      db_remove_i64(to_remove);
   }
}

To allow you to be able to pass your action a number of rows so you can make multiple passes to delete larger tables or work around a low staking scenario.


Bug: Unable to assign multiple roles to a person when editing

The edit command does not support the assigning of multiple roles to a person.
This effectively means that the only time we can assign multiple roles to a person is when adding the person for the first time in the address book.
Such commands should be valid:
edit 1 r/attendee r/sponsor

This will assign the roles attendee and sponsor to the person with index 1.

Same as #116


Bug or intentinal? Sample rate setting is forgotten when closing the program

The format (WAV, FLAC, etc) setting and the bitdepth (24bit, 32bit, etc) settings are all remembered when you close the program.
But the sample rate setting is forgotten when you close the program and always resets back to "Source".
Is this a bug, or is this intentional behavior?  The json file that contains the settings even has a field for "Sample Rate" but it doesn't seem to make a difference...
For reference, I'm using the x64 appimage on Linux Mint Xfce 20.3 that's been fully updated as of 2023-05-07.

Looks like a bug; it should either store it, or if not, use 48000 by default as it's what should be used most of the time.


[Bug] Sourcegit overwrites my GPG signature config

When I just open the Preferences dialog and close it without making any change, Sourcegit adds this at the end of my global git config:
[commit]
	gpgsign = false
[tag]
	gpgsign = false
[gpg "openpgp"]
	program = c:/Program Files (x86)/GnuPG/bin/gpg.exe

This overwrites a previous setting that sets commit.gpgsign to true. I only realized because the Github project I push to is configured to only accept signed commits.
Note that my Git config is a bit unusual. I use the same computer for work and personal projects, so I have a setup like this:
[includeIf "gitdir:C:/Personal/code/"]
	path = C:/Personal/code/.gitconfig
[includeIf "gitdir:C:/Work/code/"]
	path = C:/Work/code/.gitconfig

The GPG signature settings (user.signingkey and commit.gpgsign) are set in the included files, not directly in the global .gitconfig file.

It doesn't overwrite settings that were directly set in the global .gitconfig, only those specified in the included config files.

If some of the configuration data is only used by specified repository, why not use local configure file  of that repository directly?

If some of the configuration data is only used by specified repository, why not use local configure file of that repository directly?

Because it affects many repositories, and I don't want to repeat the config in each one.
Anyway, it's a valid Git configuration, so it should be handled correctly by Sourcegit.
I don't think Sourcegit needs to specifically handle the includeIf part. Just calling git config commit.gpgsign in a repo gives the correct value, taking the includes into account.

Because it affects many repositories, and I don't want to repeat the config in each one.

To clarify, the paths specified in includeIf are not paths to a specific repository, but to a directory that contains many repositories.

Another way to resolve this issue is that you can move this settings before includeIf section. For example:
[commit]
	gpgsign = false
[tag]
	gpgsign = false
[gpg "openpgp"]
	program = c:/Program Files (x86)/GnuPG/bin/gpg.exe

...

[includeIf "gitdir:xxx"]
...

I guess I could, but that's a workaround, not a fix 😉
How is Sourcegit reading the configuration? Doesn't it just use git config? Or the libgit equivalent?

I guess I could, but that's a workaround, not a fix 😉 How is Sourcegit reading the configuration? Doesn't it just use git config? Or the libgit equivalent?

Yes, for Preference window, it use git config --global command to get or set global git configuration.

Ah, I see. With --global it won't show the location specific settings.
Not sure what the right solution would be. It would make sense to have my includeIf at the end of the global git config, so that it overrides everything that comes before, but every time I set a global setting it will be added at the end, potentially overriding my location-specific config...
I guess it's an issue with Git rather than Sourcegit, then. Feel free to close, unless you have a great idea to fix it!

This project do not use any other libraries to read or write repositories. Instead, it only use official git commands. That's why git is required by this app.

Related: https://stackoverflow.com/questions/78634897/git-config-option-not-being-overriden-in-an-includeif-config-file

In fact, I really don't have a better idea. That's why the label for this issue has changed from bug to question.

That's fine. I understand the problem better now, and I don't think there's anything Sourcegit can do to fix it. Except, maybe, not touching the git config for settings I didn't changes in the Preferences window?
Anyway, thanks for listening!

That's fine. I understand the problem better now, and I don't think there's anything Sourcegit can do to fix it. Except, maybe, not touching the git config for settings I didn't changes in the Preferences window?

I tried this way. When implemented in this way, the code feels awkward. And I also need to be very careful about the configuration that may added in the future

When implemented in this way, the code feels awkward.

I won't fight you on this, but it doesn't sound like a very good reason... The user doesn't care about what the code looks like 😉

You can try the latest build from https://github.com/sourcegit-scm/sourcegit/actions/runs/10823102678

I'll give it a try, thanks!

It just added this:
[gpg "openpgp"]
	program = c:/Program Files (x86)/GnuPG/bin/gpg.exe

Which is much better!
Does it need to be added though? I already had this and it worked fine:
[gpg]
	program = c:/Program Files (x86)/GnuPG/bin/gpg.exe
	format = openpgp

it's because this value has been changed through auto detection

it's because this value has been changed through auto detection

Yes, I understand that. What I meant is that this setting isn't really necessary. Anyway, that's good enough for me. Thanks!


Add SRV support to Cloudflare provider

Cloudflare provider was missing SRV support, this PR adds support for this record type.

Fwiw I had originally run into problems with Cloudflare being more stringent than other dns providers on what they would allow for the name of a SRV record. I think maybe they require it to conform to the _service._protocol... name format, but everyone else would allow arbitrary names.
I'm 👍  on adding support, I just hadn't gotten around to figuring out how we should handle the case of other providers allowing the record, but CloudFlare rejecting it. Possibilities I'd thought about:

Adding octoDNS validations that require the "standards" be adhered to (need to make sure this can be ignored)
Adding code specifically to the Cloudflare provider during the plan phase that would detect that there's going to be a problem and blow up
Nuanced SRV support for CloudFlare that would sync things that conform and ignore things that don't

I'd probably lean towards the first option there as it seems to align with octoDNS general encouragement to follow the standards. If we want to move forward with this prior to getting validations in place it'd probably make sense to add a comment to the Cloudflare provider's notes section in the README. Thoughts?

I'm absolutely for following the standards, Cloudflare looks to follow RFC 2782 here too. I agree that option one to add a validator is the best option.

@ross I was just looking at the validator for SRV records and it looks like there is already some validation on the name format.
https://github.com/github/octodns/blob/master/octodns/record.py#L843
re.compile(r'^_[^\.]+\.[^\.]+')
While I think we can change this to: re.compile(r'^_[^\.]+\._[^\.]+') as the RFC states:

The symbolic name of the desired protocol, with an underscore
(_) prepended to prevent collisions with DNS labels that occur
in nature.

These looks to be no validation of the record data but that should make no difference between providers or prevent this PR to be merged.
I think it's fine to merge this PR and create an issue to address SRV content value validation.
What do you think?

What do you think?

Doh. I guess I added that in the big validation pass and it didn't occur to me to go back and update CloudflareProvider since that would have resolved the original issue. This looks good. Will poke at it a bit now and get it merged.


[Feature] Logic for "Ctrl + Tab" to change ContextRecord focus

Stale issue. The IDE needs a release version and the issues are cluttered. I want to focus on getting high priority items listed and low priority items listed.
This would aid in anyone who has interest in the Luthetus.Ide project, what the triage is looking like for v1


feat: Cookbook Onboard (AI Assistant) integration

Preview
Preview link: https://near-docs-cookbook.vercel.app/
Ask Cookbook AI Assistant
Cookbook's Ask Cookbook AI assistant and co-pilot is trained on all existing NEAR Protocol resources (source code, docs website, etc.) and is available as a standalone modal, embeddable as a button on any page (recommended for technical docs). It answers developer questions about building on NEAR, acting as an enhanced and streamlined technical documentation search tool as well as a Solidity/Rust coding co-pilot.
Ask Cookbook AI can also access context from thousands of data sources indexed by Cookbook.dev in addition to NEAR-specific data sources, providing the best blockchain developer-focused answers of any chatbot on the market. Cookbook will assist in the tuning and calibration of the AI assistant to ensure the highest answer quality.

I would strongly suggest to not add this AI assistant, as it is too opinionated, talks about technology that we don't support anymore (it recommended me to use Assemblyscript), and it gave me a wrong example on how to swap keys.
People would use it, and shoot themselves in the foot.

@ClockRide with that being said, I do think there is value on an AI Assistant that gives 0 opinions and only points to valid documentation

closing it so nobody merges it by mistake


Whenever Concentration tick box checked, Craftsim addon is crashed

Whenever Concentration tick box checked (ex: the box in the Simulation Mode, and in the Craft Queue at the bottom beside 'Add Patron Orders' ) Craftsim addon does not work properly anymore and it brings following lua error code.
This is korean region just in case

5x CraftSim/Classes/RecipeData.lua:1209: attempt to index field 'concentrationData' (a nil value)
[string "@CraftSim/Classes/RecipeData.lua"]:1209: in function CanCraft' [string "@CraftSim/Classes/CraftQueueItem.lua"]:45: in function CalculateCanCraft'
[string "@CraftSim/Modules/CraftQueue/UI.lua"]:1306: in function <CraftSim/Modules/CraftQueue/UI.lua:1305>
[string "=[C]"]: in function foreach' [string "@CraftSim/Modules/CraftQueue/UI.lua"]:1302: in function UpdateFrameListByCraftQueue'
[string "@CraftSim/Modules/CraftQueue/UI.lua"]:1340: in function UpdateQueueDisplay' [string "@CraftSim/Modules/CraftQueue/CraftQueue.lua"]:211: in function AddRecipe'
[string "@CraftSim/Modules/CraftQueue/CraftQueue.lua"]:178: in function <...ceCraftSim/Modules/CraftQueue/CraftQueue.lua:153>
[string "@CraftSim/Libs/GUTIL/GUTIL.lua"]:938: in function <CraftSim/Libs/GUTIL/GUTIL.lua:927>
Locals:
self =  {
supportsQualities = true
reagentData =  {
}
specializationDataCached = false
relativeProfitCached = 33
recipeIcon = 609901
specializationData =  {
}
supportsCraftingStats = true
professionStats =  {
}
supportsCraftingspeed = true
isAlchemicalExperimentation = false
learned = true
isBaseRecraftRecipe = false
recipeInfoCached = false
priceData =  {
}
maxQuality = 3
recipeInfo =  {
}
concentrationCost = 401
baseOperationInfo =  {
}
concentrationCurveData =  {
}
maxItemAmount = 2
professionStatModifiers =  {
}
supportsMulticraft = true
expansionID = 10
cooldownData =  {
}
subRecipeDepth = 0
isOldWorldRecipe = false
parentRecipeInfo =  {
}
orderData =  {
}
supportsSpecializations = true
baseProfessionStats =  {
}
concentrating = true
isEnchantingRecipe = false
crafterData =  {
}
isCrafterInfoCached = true
isCooking = false
isSoulbound = false
recipeID = 430612
averageProfitCached = 6032788.960000
buffData =  {
}
minItemAmount = 2
categoryID = 1974
baseItemAmount = 2
isRecraft = false
resultData =  {
}
hasQualityReagents = true
isQuestRecipe = false
recipeName = "구명의 은총 영약"
optimizedSubRecipes =  {
}
supportsIngenuity = false
isSimulationModeData = false
subRecipeCostsEnabled = false
professionGearCached = false
hasReagents = true
isGear = false
isSalvageRecipe = false
professionGearSet =  {
}
supportsResourcefulness = true
professionData =  {
}
operationInfoCached = false
numSkillUps = 1
}
amount = 1
hasEnoughReagents = false
craftAbleAmount = 0
isChargeRecipe = false
concentrationAmount = Infinite
(*temporary) = nil
(*temporary) = nil
(*temporary) =  {
1 =  {
}
2 =  {
}
3 =  {
}
4 =  {
}
}
(*temporary) = 1
(*temporary) = "attempt to index field 'concentrationData' (a nil value)"

for every recipe?
if not please state

addon version
profession
recipe

I only do with Enchanting, Alchemy and Tailoring
The crash happened within those professions for every recipe
addon version: 18.2.0
Following is an error code which have happened with the latest version
=======================
1x CraftSim/Classes/RecipeData.lua:1209: attempt to index field 'concentrationData' (a nil value)
[string "@CraftSim/Classes/RecipeData.lua"]:1209: in function CanCraft' [string "@CraftSim/Classes/CraftQueueItem.lua"]:45: in function CalculateCanCraft'
[string "@CraftSim/Modules/CraftQueue/UI.lua"]:1306: in function <CraftSim/Modules/CraftQueue/UI.lua:1305>
[string "=[C]"]: in function foreach' [string "@CraftSim/Modules/CraftQueue/UI.lua"]:1302: in function UpdateFrameListByCraftQueue'
[string "@CraftSim/Modules/CraftQueue/UI.lua"]:1340: in function UpdateQueueDisplay' [string "@CraftSim/Modules/CraftQueue/CraftQueue.lua"]:211: in function AddRecipe'
[string "@CraftSim/Modules/CraftQueue/CraftQueue.lua"]:785: in function AddOpenRecipe' [string "@CraftSim/Modules/CraftQueue/UI.lua"]:511: in function clickCallback'
[string "@CraftSim/Libs/GGUI/GGUI.lua"]:1873: in function <CraftSim/Libs/GGUI/GGUI.lua:1871>
Locals:
self =  {
supportsQualities = true
reagentData =  {
}
specializationDataCached = false
relativeProfitCached = 120
recipeIcon = 4549251
specializationData =  {
}
supportsCraftingStats = true
professionStats =  {
}
supportsCraftingspeed = true
isAlchemicalExperimentation = false
learned = true
isBaseRecraftRecipe = false
recipeInfoCached = false
priceData =  {
}
maxQuality = 3
recipeInfo =  {
}
concentrationCost = 466
baseOperationInfo =  {
}
concentrationCurveData =  {
}
maxItemAmount = 1
professionStatModifiers =  {
}
supportsMulticraft = true
expansionID = 10
cooldownData =  {
}
subRecipeDepth = 0
isOldWorldRecipe = false
parentRecipeInfo =  {
}
supportsSpecializations = true
baseProfessionStats =  {
}
concentrating = true
isEnchantingRecipe = false
crafterData =  {
}
isCrafterInfoCached = true
isCooking = false
isSoulbound = false
recipeID = 447001
averageProfitCached = 175179051.220550
buffData =  {
}
minItemAmount = 1
categoryID = 2105
baseItemAmount = 1
isRecraft = false
resultData =  {
}
hasQualityReagents = true
isQuestRecipe = false
recipeName = "서광 마법실타래"
optimizedSubRecipes =  {
}
supportsIngenuity = false
isSimulationModeData = false
subRecipeCostsEnabled = false
professionGearCached = false
hasReagents = true
isGear = false
isSalvageRecipe = false
professionGearSet =  {
}
supportsResourcefulness = true
professionData =  {
}
operationInfoCached = false
numSkillUps = 2
}
amount = 1
hasEnoughReagents = false
craftAbleAmount = 0
isChargeRecipe = false
concentrationAmount = Infinite
(*temporary) = nil
(*temporary) = nil
(*temporary) =  {
1 =  {
}
2 =  {
}
3 =  {
}
4 =  {
}
}
(*temporary) = 2
(*temporary) = "attempt to index field 'concentrationData' (a nil value)"


Updated README.md to include node label/taint details

Signed-off-by: Umanga Chapagain<EMAIL_ADDRESS>[skip ci]

/retest

/lgtm


DOP-3571: Add README.md

Adds a barebones README.md file to the repository.
Additional testing details to come as we setup CI.

Haha, that would indeed be good to add!


Abitlity to define optional resources

Hi,
thanks for great work!
as i see, currently any failure in loading files, rejects the promise and as a result routing will be blocked.
it would be nice if we have notion of optional files which won't reject promise in case of failure.
is it doable?

Hi,
it's a promise, so you should handle the rejection in the reject callback, isn't it possible ?

Hi,
ok, I don't feel too comfortable with promises! so help me.
you mean by returning some value in the next chain?
do I have enough information to decide whether rejection is caused by an optional or required file, there?

Let's say that you load a file like this:
$ocLazyLoad.load({
    name: 'TestModule',
    files: ['testModule.js']
});

You can use then to chain the load function:
$ocLazyLoad.load({
    name: 'TestModule',
    files: ['testModule.js']
}).then(function success(data) {
  // it worked
}, function error(err) {
  // it failed
});

The second callback handles the error, and the parameter of this callback is a js Error object that contains the error message.
The error message should contain the url that failed, you can test it with a regex.
If you want, you can handle the rejection here. If you'd rather decide whether you'll stop here or continue, you can use the finally function instead of then:
$ocLazyLoad.load({
    name: 'TestModule',
    files: ['testModule.js']
}).finally(function (data) {
  // it worked or failed, check data to see if it's a js error
});

ok, three things.
I applied ocLazyLoad in resolve property of router, so it's not only a matter of handling error. I have to resolve promise in case it is optional, but i think it's possible to resolve the returning promise in error callback.
but what if i have multiple optional and required files? does error message contain all information needed about all failed files or just the first one?
after all, I look at the code, and it seems to me, there shouldn't be much to add this feature.
all you need to do is to check if the failed file is optional or required in onerror event of

First of all, the then function and finally function are both promises, you can return then to the resolve, so this should work.
Then yes I could add an option for optional files, but I'm not sure that it would be of much use to people. I won't add a new feature that you would be the only one to use...
The best way to do it then would be for you to define your own jsloader and handle the errors as you want.
You can copy the current one and change it for your own use.
The parameters are supplied to the loaders, so if you add new ones they should be given to your custom function.
The next major version of ocLazyLoad will have the loader as independent files so that you can use my own or not (you can already do that but you load a few kb of data for nothing).

fair enough.
thanks. you can close this issue.


Drowned use their fishing poles

Drowned can spawn with fishing poles, which they do nothing with. I thought that it could be an interesting buff to them if they could cast their fishing pole to attempt to hook and reel in their targets, much like what a player can do with their own fishing pole.

I've received an overwhelming number of feature requests over the week and they are filling up the issue tracker and making it difficult to keep track of what is even going on. I've enabled Discussions on the repo as a new location for feature requests. Unfortunately, GitHub has "temporarily" disabled the ability to convert issues to discussions, so I'm closing all feature request issues. However, I'm tracking all the closed issues in a Project board; despite being closed, they're still on my radar on the board. All new feature requests must go to Discussions. Feature requests opened as issues going forward will be closed.

I've received an overwhelming number of feature requests over the week and they are filling up the issue tracker and making it difficult to keep track of what is even going on. I've enabled Discussions on the repo as a new location for feature requests. Unfortunately, GitHub has "temporarily" disabled the ability to convert issues to discussions, so I'm closing all feature request issues. However, I'm tracking all the closed issues in a Project board; despite being closed, they're still on my radar on the board. All new feature requests must go to Discussions. Feature requests opened as issues going forward will be closed.


curious about the contract coding

    function mint(uint mintAmount) external returns (uint) {
        mintAmount; // Shh
        delegateAndReturn();
    }

Why mintAmount here? What's the meaning of Shh

mintAmount is used to remove warnings.
there is mintAmount for future use.

mintAmount is for future use.
there is command to remove compile warning and to show that it will be used in the future.


PodGC not executed from WorkflowTemplate in version v3.3.2

Summary
PodGC not cleaning up pods when workflow submitted from a WorkflowTemplate.
However when submitting a workflow directly, the PodGC runs correctly after workflow completion:
The following does not occur when workflow is submitted from template.
time="2022-04-22T08:48:28.582Z" level=info msg="cleaning up pod" action=deletePod key=argo/pod-gc-strategy-638708029/deletePod
time="2022-04-22T08:48:28.582Z" level=info msg="cleaning up pod" action=deletePod key=argo/pod-gc-strategy-3264102947/deletePod

Template used:
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: pod-gc-strategy
spec:
  entrypoint: pod-gc-strategy
  podGC:
    # Pod GC strategy must be one of the following:
    # * OnPodCompletion - delete pods immediately when pod is completed (including errors/failures)
    # * OnPodSuccess - delete pods immediately when pod is successful
    # * OnWorkflowCompletion - delete pods when workflow is completed
    # * OnWorkflowSuccess - delete pods when workflow is successful
    strategy: "OnWorkflowCompletion"

  templates:
    - name: pod-gc-strategy
      steps:
        - - name: fail
            template: fail
          - name: succeed
            template: succeed

    - name: fail
      container:
        image: alpine:3.7
        command: [sh, -c]
        args: ["exit 1"]

    - name: succeed
      container:
        image: alpine:3.7
        command: [sh, -c]

When submitting the workflow directly, I just changed WorkflowTemplate to Workflow
What version are you running?
v3.2.2
I tested from a clean installation of argo.
 Give it a 👍. We prioritise the issues with the most 👍.

Related change https://github.com/argoproj/argo-workflows/pull/7176. cc @alexec

The code should not care if the workflow was submitted from WorkflowTemplate or not. It should be easy to verify this issue.

This reproduces. Only affects submission from workflow template.

@dpadhiar @sarabala1979 @terrytangyuan we get a lot of issues where something works with a Workflow, but not with a WorkflowTemplate. We could write WorkflowTemplate tests in the future to prevent this.

Ugh. I've found another bug!


Fix wrong declarations in CoreApi.md

Thanks for the PR! These files are generated automatically, so you'd have to change the template to fix this like https://github.com/goauthentik/client-go/commit/930ec96edd4850990b91cbf0f5517da720803859, see https://openapi-generator.tech/docs/customization and https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/main/resources/go/api_doc.mustache


Validate initial input value, offers context on what is wrong

Fixes #84
The create project wizard will now validate the default value injected in the field:

The error messages for invalid groupId, artifactId, package name etc. now provide context:

Also, I've noticed that there doesn't seem to be version validation for https://code.quarkus.io/. Is version something that should be validated for Maven projects in general?
Before, the version was validated against this regex:  [A-Za-z0-9_-.]+$
Signed-off-by: David Kwon<EMAIL_ADDRESS>

fixed


Insert a view to the collectionView?

Hi, I am trying to insert a custom view to the bottom of JSQMessagesViewController's collectionView, as it was a message. After it there will be no more messages added and the typing indicator won't be shown (I am inserting it in the end of a conversation).
Here's what I am doing:
NSArray *cells = self.collectionView.visibleCells;
NSLog(@"%@", cells);
UICollectionViewCell *lastCell = [cells lastObject];
CGFloat y = 0;
if(lastCell) {
    y = lastCell.frame.origin.y+lastCell.frame.size.height;
}
self.customViewToInsert.frame = CGRectMake(0, y, self.collectionView.frame.size.width, 45);
[self.collectionView addSubview:self.adView];
[self.collectionView setNeedsDisplay];

The problem is that self.collectionView.visibleCells always returns an empty array even if there are messages.
Could you please suggest how to add a view correctly?
Thank you

Hey @TediumRemedy, a few tips

I'm pretty sure that visibleCells is nondeterministic. It does not guarantee order, so lastObject is not going to work.

You should use the CGGeometry functions instead of accessing frame properties directly. (e.g., CGRectGetHeight() instead of frame.size.height)
It's a bad idea to add subviews directly to a collection view. You will have issues with this. This is what cells, supplemental views, and accessory views are for.

Regarding visibleCells being empty, there's nothing specific to this library that should cause that. If you are calling this while the view is appearing/disappearing/updating then that might be your problem. Otherwise, this is probably a question for StackOverflow.

Thanks @jessesquires


Fix "datatime" typo and body, and add two more snippets.

Assuming https://github.com/honza/vim-snippets was used as the inspiration for this repo, I change 'datatime' to 'datetime' and removed the 'T' from its body, matching the definition in the original.
I also added an new date snippet for the format common in the United States, as well as a time snippet with seconds.

thanks!


Machine mac-24 lost external connection from iPhone device.

Machine mac-24 lost external connection from iPhone device.

External connection has been restored by rebooting mac-24.


Update idn-th.ttl

Four concepts were narrower concepts of 'Aboriginies' - these have been promoted to topConcpet of the IDN Themes.
Maybe the broader concept has been deprecated? https://vocabularyserver.com/apais/xml.php?skosTema=27. There are still a number of references to it (e.g. skos:related). When a concept is removed from a concept scheme, any narrow concepts need to be rehoused, or they get orphaned and can't be navigated to (they can still be searched for).

Rejecting this change in favour of PR #33


Add close feature to Dialog

Feature request
Overview
Hello Radix UI programmers. I would have asked you, please if you add the option to optionally close to the "Dialog" component. I mean closing the component without any setstates.
Examples in other libraries
https://ant.design/components/modal#modalmethod in this link showed the onCancel function with this function we can close the modal ourselves

Radix dialog has a component called Dialog.Close that will close the dialog as long as its used within Dialog.Root:
<Dialog.Close>
    Close
</Dialog.Close>

Would that solve yout issue?

I'm sorry, but it didn't help me. The modal must be closed after the work on my asynchronous function is completed.
It works exactly when I click on this CLOSE in the solution you said, For me, the function must be closed when it is finished

Then it sounds like you are trying to do something react wasnt made for. Closing the modal is a ui change and since the ui is a function of state. You have to change some state to change the ui.
Why so you need to close the modal without any setStates?

#2864
I think this could be the solution.


Security issue: Rename .env file to prevent credentials leak

If the file is not manually properly secured, in production the file .env may be accessible by anyone by just visiting the site as example.com/.env. If that's the case, database and mail (SMTP, …) passwords may be exposed.
That's why you'd be better of by renaming it to .env.php (or similar) as the file is then parsed by every usual webserver and thus not displayed as plain-text when visiting the site.
BTW: Your website is down or not yet set up.

I think renaming .env to .env.php will be pain for developer with editor using autodetect language, linter or code fixer (e.g. php-cs-fixer).
But, +1 for not use .env in production. Already mentioned in The Dotenv Component, better use "real" environment variables.

Symfony Dotenv should only be used in development/testing/staging environments. For production environments, use "real" environment variables.

Or so… In any case keep them out from potentially accessible files.

@rugk I put the .env-example file just for listing all the environment variables. Actually, in production, it will be better to use the real environment variables. Well, I should give a new condition here https://github.com/Tanibox/tania/blob/master/app/AppKernel.php to not load the .env file while it in production mode.
Btw, yes the gettania.org is down. We are attempting to migrate it to Github project page.


Export CCB Users does not provide content

I want to export the CCB Users from the User Information tab but it exports 0 records. The export for All User Documents or Invalid Users works though.

This bug is tracked as DNEXT-23853 and will be fixed in the next version 1.2.1


Incorrect help message (number of blocks for mining validation)  [Low priority]

[Low priority]
Verge-qt / QUI info message when double clicking on a mined coin transaction incorrectly displays the following help text:

Generated coins must mature 25 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.

It appears the actual confirmation block count is now 140. This text should be updated.

Thanks for the heads up -- pull req created !


checkstyle: 8.42 -> 8.43

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/checkstyle/checkstyle/releases.
meta.description for checkstyle is: "Checks Java source against a coding standard"
meta.homepage for checkstyle is: "http://checkstyle.sourceforge.net/"
meta.changelog for checkstyle is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

/nix/store/qwf5zkc6c8192bj2lwx3cvmvz5s6an2g-checkstyle-8.43/bin/checkstyle passed the binary check.

1 of 1 passed binary check by having a zero exit code.

1 of 1 passed binary check by having the new version present in output.

found 8.43 with grep in /nix/store/qwf5zkc6c8192bj2lwx3cvmvz5s6an2g-checkstyle-8.43

found 8.43 in filename of file in /nix/store/qwf5zkc6c8192bj2lwx3cvmvz5s6an2g-checkstyle-8.43

directory tree listing: https://gist.github.com/1d4225874457b686dd84922765da6396

du listing: https://gist.github.com/9dc88e0f8640e68a4ae9c08e0c436929

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
0 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
checkstyle

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/qwf5zkc6c8192bj2lwx3cvmvz5s6an2g-checkstyle-8.43 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A checkstyle https://github.com/r-ryantm/nixpkgs/archive/dfd426aedeba0de1b1dcdd7db56e29b73e8eb16f.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/qwf5zkc6c8192bj2lwx3cvmvz5s6an2g-checkstyle-8.43
ls -la /nix/store/qwf5zkc6c8192bj2lwx3cvmvz5s6an2g-checkstyle-8.43/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

checkstyle

Maintainer pings
cc @pSub for testing.

Result of nixpkgs-review pr 125022 at dfd426ae run on x86_64-linux 1

1 package built successfully:

checkstyle

1 suggestion:

warning: unclear-gpl
lgpl21 is a deprecated license, please check if project uses lgpl21Plus or lgpl21Only and change meta.license accordingly.
Near pkgs/development/tools/analysis/checkstyle/default.nix:33:5:
   |
33 |     license = licenses.lgpl21;
   |     ^


A tooltip for admiral name

This is an old commit (so probably should be re-tested), but it adds some extra information in a tooltip for admiral name.

I think it is a good function. Thank you for your contribution.
By the way, what does "exp:" mean? I could not think of the purpose of that function.

It is average experience per battle and average experience per win (just totals divided). It can indicate how much ranking one does, as it will be significantly higher when the majority of sorties is full 5-4 runs.

Merged at ee81cbaa15833789dd6b410f0dd74eb24bc42425. Thank you very much.
Slight modification was done at 4bfc0f72f703b10939715d348b07ebdbe9576559.

Unified line feed code to \r\n which is used elsewhere.
I made it different line for exp. This is because the tool tip was stretched sideways.
(Although rare, but just in case) I added a code to avoid div/0 error.


Not proper error message

Not proper error message
Exception message: "mssql: There is insufficient result space to convert a money value to varchar.

To Reproduce
create table auser( name varchar );

	prepareStmt := fmt.Sprintf("INSERT INTO auser (name) VALUES ($1)")
	stmt, err = db.Prepare(prepareStmt)
	_, err = stmt.Exec("ttt")
	if err != nil {
		log.Error(err)
		return err
	}

Error: "msg":"mssql: There is insufficient result space to convert a money value to
varchar."
But no money value type in my code, It makes me feel weird and difficult to find the real issue.
Search the docs and then I know this is because varchar has no size value, so change it to
create table auser( name varchar(64));

Run the code again, it fixes the issue, no error shows again.
Expected behavior
The error message can be improved like this
String or binary data would be truncated in table 'dbname.dbo.auser', column 'name'. Truncated value: 't'. This is from mssql-cli error message.
or just tell you more friendly words to debug.
Further technical details
Azure SQL

Oh, I found it.
MSSQL does not use $ as place holder, that's the reason I got money. [sweat]


perf(parser): faster offset calculation

A faster way to calculate offset in the lexer.
This only moves the needle because it's on the hottest path in the lexer - Lexer::offset is called for every token in Lexer::read_next_token.

@overlookmotel This is hard to understand without context, can you add some inline comments regarding why this is better than the previous version?
Something like:
// This is changed from self.source.len() - self.current.chars.as_str().len(),
// where ... (bunch of assembly instructions)

Yes sure. Have added a new commit with a comment.


State parameter included twice in the Form Post Response Body

Describe the issue:
The response body received for a form post response mode authorization request contains the state parameter twice.

This issue was identified by the OIDC conformance test suite run against the IS-6.2.0-m5 pack.
This happens when building the response body for form post mode using the method [1] where the jsonPayLoad already contains the state parameter and at [2] the state parameter is added to the response again.
How to reproduce:

Send an authorization request in form post response mode.

Ex: https://localhost:9443/oauth2/authorize?client_id=5Q4qIUjhqFsk1YeRynFy4lk9SgYa&redirect_uri=https://oidcdebugger.com/debug&scope=openid%20offline_access&state=4WMtLOuy23&nonce=MtSTAuYusI&response_type=code&response_mode=form_post&prompt=consent

Check the parameters received in the response body.

Expected behavior:
The state parameter should be included only once.
Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: IS-6.2.0-m5

[1] https://github.com/wso2-extensions/identity-inbound-auth-oauth/blob/master/components/org.wso2.carbon.identity.oauth/src/main/java/org/wso2/carbon/identity/oauth2/responsemode/provider/impl/FormPostResponseModeProvider.java#L70
[2] https://github.com/wso2-extensions/identity-inbound-auth-oauth/blob/master/components/org.wso2.carbon.identity.oauth/src/main/java/org/wso2/carbon/identity/oauth2/responsemode/provider/impl/FormPostResponseModeProvider.java#L95

seems like this has been introduced with https://github.com/wso2-extensions/identity-inbound-auth-oauth/pull/2037
@anjuchamantha could you please send a fix?

sure, will check

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


useQueries queries property does not allow for setting network mode

Describe the bug
In React Query 5.8.0, using the following:
useQueries({
queries: ids.map(id => ({
      queryKey: ...,
      queryFn: ....,
      networkMode: 'always'
})
})

fails. I get a typescript error that Type 'string' is not assignable to type 'NetworkMode | undefined'.
I am able to set the network mode option this way in useQuery and useInfiniteQuery.
Your minimal, reproducible example
https://www.typescriptlang.org/play?#code/JYWwDg9gTgLgBAbwK4GcCmBFJaoE8A0cqm2UwaKAvnAGZQQhwDkAAjAIYB2KHAxgNYB6KGna8YAWgCOpXEwDcAKEW8I3eMSgo4AXjgBtBMAAmALjgBGSoSNm4AJmuIT5gMyUAukpVqetNDC8ABYAquhQAEK4AJLGunAAFC5wnEggAEY4AJS6AHxE4SgAdDTAnMYJmnkFOEUmujp6Jlnequo1UFg45Np6xF1kFAkIinBjcDLdFOaaxSDsYAmV4Tk6+SPj4yIwSFCciKOb45N4ANJouOb6TJpMhJp1xh74h0cTsgBinOYJq-k0AWCYRwUViy1qzRebzGnACAHdoPwALIQYxocxMdgAGzh7FwKCYr3GlCJlCyLzJ8iAA
Steps to reproduce
See description and typescript sandbox.
Expected behavior
I expect that I can set the networkMode option in useQueries in the queries property, to any of the following strings: 'online' | 'always' | 'offlineFirst'.
How often does this bug happen?
None
Screenshots or Videos
No response
Platform
OS 13.6
Tanstack Query adapter
react-query
TanStack Query version
v5.8.0
TypeScript version
No response
Additional context
No response

I think this is because typescript doesn't infer literals in objects inside arrays. You'd need networkMode: 'always' as const

the best way to get type safety is to wrap the option itself in queryOptions:
https://www.typescriptlang.org/play?#code/JYWwDg9gTgLgBAbwI4FcCmUCeB5MNgQB2AzgDRwrFoCK6UwaxAvnAGZQQhwDkAAjAEMSggMYBrAPRQ0AkTAC0qDJm4AoVSKLF4lDMTgBeOAG0EwACYAuOAEYm5M1bgAme4gvWAzEwC6AbnVNYTY0GBEACwBVKigAIUwASXNDOAAKDzhCFBAAIwwASkMAPgoY4gA6VmBCc1TdKGLSjHKLQwMjC3yAjS0dGNoMBn0jXQH6RlSEVTgZuCVx4mt6ipABMFS6mMKDEqnZ2ekYFChCObocPAISSen92fnMAGk0TGtjbnrucnqW8x9SW53M7KABihGsqW2JVYoQi0Qw8SSm2anQBQJmhFCAHdoGIALIQcxoazcAQAGyxAkwxDUQKY+UBcHpAPpfiAA


Autocomplete and send buttons are too close together on mobile

On mobile, it is extremely easy to hit the wrong button, or both.
I  know you can hide them with css, but I feel that you shouldn't have to add custom css to be able to use thelounge properly.

This was a less-than-ideal-but-better-than-nothing solution. It will be elegantly fixed by https://github.com/thelounge/lounge/pull/787.


Google Colab script fails

Trying to run the below, which uses the scripts here:
https://colab.research.google.com/github/Transcripts4All/tools4all/blob/main/whisper-diarization.ipynb
https://github.com/Transcripts4All/tools4all/
https://github.com/Transcripts4All/tools4all/issues/6
import os
!git clone https://github.com/MahmoudAshraf97/whisper-diarization
os.chdir("/content/whisper-diarization")
!git checkout a7635077d76a5288a27998ab3a13d519541f063d
!pip install git+https://github.com/m-bain/whisperX.git@78dcfaab51005aa703ee21375f81ed31bc248560
!pip install "nemo-toolkit[asr]>=2.dev"
!pip install --no-deps git+https://github.com/facebookresearch/demucs#egg=demucs
!pip install git+https://github.com/oliverguhr/deepmultilingualpunctuation.git
!pip install git+https://github.com/MahmoudAshraf97/ctc-forced-aligner.git

It fails when I try to run it. It worked about 30 days ago, but not until issues were resolved first, similar to this time.
Using PasteBin to get around Github's max character limit:
Step 1 (above): https://pastebin.com/H8D1XXuw
Runtime -> Restart Session
Step 2: https://pastebin.com/RnHYQMKk
I noticed this from Step 1:
Line 335:
sentence-transformers 3.2.1 requires transformers<5.0.0,>=4.41.0, but you have transformers 4.39.3 which is incompatible.
Line 606:
gcsfs 2024.10.0 requires fsspec==2024.10.0, but you have fsspec 2024.9.0 which is incompatible.
Line 607:
sentence-transformers 3.2.1 requires transformers<5.0.0,>=4.41.0, but you have transformers 4.39.3 which is incompatible.

This notebook is not a one that I maintain, please use the one in this repo

Thanks for the fast reply. The linked script looked like it was mainly using yours, but I probably got that wrong.
I tried using your notebook, but it hangs when I start the "Processing" step, the green arrow is seems to be stuck at line 3, return_code = os.system(.
I have audio_path = "Example.wav" where Example.wav is in the content directory.
I restarted the runtime after cell 1 under "Installing Dependencies" had completed.


"Select cluster command" should provide the option to create a new cluster

"Select cluster command" should provide the option to create a new
cluster
Fixes #103
Signed-off-by: azerr<EMAIL_ADDRESS>

OK to merge after you fix the wrong indentation in the changelog


Stuck on black loading screen.

When I try to load my world it gets stuck on the black loading screen, this has been happening when I tried to change my texture to the old legacy textures.

Fixed


Using PaletteGenerator.gd always results in "Assertion failed: No selected node has 'texture' property with a valid Texture."

The shader itself is working just fine, and I've been able to manually create palettes and have them work as expected, but I can't seem to use the provided palette generator script at all. I've tried it on both AnimatedSprite2D and Sprite2D and neither seem to work - just gives me this same error.

Do you run the script with Sprite2D node selected? Does it have a texture assigned?

I have my AnimatedSprite2D node selected when running it, it has animations and sprites present in its SpriteFrames, the "Texture" dropdown in the inspector only shows "Filter" and "Repeat" fields (which are both set to "Inherit")

The generator only works on nodes with texture property that holds any Texture2D. "Texture" category is something else and unrelated.
Though maybe the detection could be improved. It wasn't intended to be super reliable though; at worst you can just drop the texture to 2D editor, which will create a sprite, and use it to generate palette.


Blazor IdS custom domains and token signing

Fixes #23180
@niem94 ... Here's the direction that I'm headed thus far 🚧⛏👷. I might ultimately decide not to go this way, but this shows one way to compose coverage for these features.

Split token signing from custom domains. These are independent concepts.
Place the new App Service setup in the two new token signing sections (... but I might decide to take all of the new App Service coverage bits out because other docs exist for it in our doc set and in the Azure docs already. That way, all of this IdS coverage can just focus on the token signing and custom domain config.)
We'll keep the IdS app token signing configuration for Windows as a gesture in the appsettings.json file, where it uses the Windows cert store.
Let's consider NOT using the more complicated Azure Key Vault client to load a cert, as I suggested in our discussion on the issue. Given that Barry 🎯 is ok with just grabbing the cert at the path on the server where it's placed by App Service was approved :+1:, I think we can just do that. However, I don't want to do it the way that you proposed with the word "Password" appearing in the config file 😨. It's conceptually something that we're trying to stop devs from considering generally 🐉. Therefore, the approach on the PR is to load it via code with AddSigningCredential from the path.
I might need to get a tiny bit of coverage in here for AddDeveloperSigningCredential. I'll consider that later. It might be as simple as a cross-link to the API doc to raise awareness on it.

This is merely a DRAFT at this point. I'm sure that it needs work that will require me to walk the steps. Because we're focused on 6.0 docs at the moment and other high priority issues, I'll return to this as I get time here and there to wrap it up. I might be able to do so in the coming days prior to 6.0 RC1 coming out ... that's when I'll get really busy with 6.0 bits again.
In the meantime, you can look this over and see what you think about the approach thus far. If you have time to test the proposed Linux code with AddSigningCredential without the app settings file config, I hope you'll be able to report back that it works. If you don't have time, no worries ... that's what I'll be testing when I get back to this PR.
... and don't worry about any little text problems ... e.g., a misspelled word 🙈, a broken phrase 🙈, a missing period 🙈 ... things like that ... this has all just been typed right in on a first pass. There are bound to be little text problems at this early stage, and I'll get those little devils 😈 out later.

@niem94 ... I'll take feedback on the new content that relies on existing documentation for Duende IdS automatic token signing with DP keys in Azure Key Vault and the new content for loading the cert manually on Linux. This topic is scheduled for a full overhaul in 2022, and I'll take another look at all of this in more detail when I reach it. Thanks again for your help.

@guardrex Yes, I will add a comment here when I get the time to test it out :-) Happy to have been of help! :-)


"Cilibia" is listed in the drop-down menu

Description:
"Cilibia" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Cilibia" in the search bar.

Expected results
The location is listed in the drop-down menu as "Cilibia, Buzău".


OpenMetadata Config - SLACK_CHAT_SLACK_URL should have default value

Under conf/openmetadata.yaml file should have SLACK_CHAT_SLACK_URL defaulting to https://openmetadata.slack.com/ which is our open community Slack URL.

Hi, can i work on this ?

Yes!. Thanks @talalio


Admob ads not showing after building signed released apk

The problem is when i build my signed released apk using "flutter build apk"
And when i test it on real device ads are not showing.
Points to be noted:
First my ads are 4 days old so there will be no issue of newly created ad unit Id.
The test ads are working fine on emulator and real device.
Even when i change the test ads with real ads it was working fine in debug mode that is "flutter run" even it's working on unsigned released apk .
But as soon as i generate signed apk it's stopped working.
Dependence used:
firebase_admob: ^0.9.0+7

@tsvillain Adds will start to load after a certain period of time when users starts to hit the google ad service. If its working with the testID it will work on the real app as well

@dimityrivanoiv Okay Thanks

Did it work after a period of time?

Yes it worked after submitting playstore url to admob.
On Sat, 23 May, 2020, 5:36 PM Emmanuel Haankwenda<EMAIL_ADDRESS>wrote:

@dimityrivanoiv Okay Thanks
Did it work after a period of time?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/43888#issuecomment-633038632,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKBQCZ55CU43N3ML3PELL6LRS633PANCNFSM4JHFIDQA
.

How did you submit playstore url to Admob
and how many days did it take to show ads after submitting playstore url
On Sat, May 23, 2020, 15:41 Tekeshwar Singh<EMAIL_ADDRESS>wrote:

Yes it worked after submitting playstore url to admob.
On Sat, 23 May, 2020, 5:36 PM Emmanuel Haankwenda, <
<EMAIL_ADDRESS>wrote:

@dimityrivanoiv Okay Thanks
Did it work after a period of time?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
<https://github.com/flutter/flutter/issues/43888#issuecomment-633038632
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AKBQCZ55CU43N3ML3PELL6LRS633PANCNFSM4JHFIDQA
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/43888#issuecomment-633055894,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIW4ULOAGVGI5LAHVMO2QC3RS7HAHANCNFSM4JHFIDQA
.

1-2 days
On Sat, 23 May, 2020, 7:50 PM Emmanuel Haankwenda<EMAIL_ADDRESS>wrote:

How did you submit playstore url to Admob
and how many days did it take to show ads after submitting playstore url
On Sat, May 23, 2020, 15:41 Tekeshwar Singh<EMAIL_ADDRESS>wrote:

Yes it worked after submitting playstore url to admob.
On Sat, 23 May, 2020, 5:36 PM Emmanuel Haankwenda, <
<EMAIL_ADDRESS>wrote:

@dimityrivanoiv Okay Thanks
Did it work after a period of time?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
<
https://github.com/flutter/flutter/issues/43888#issuecomment-633038632
,
or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/AKBQCZ55CU43N3ML3PELL6LRS633PANCNFSM4JHFIDQA

.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<https://github.com/flutter/flutter/issues/43888#issuecomment-633055894
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AIW4ULOAGVGI5LAHVMO2QC3RS7HAHANCNFSM4JHFIDQA
.

—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/43888#issuecomment-633063044,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKBQCZZZJ76M3ZD3ZXNTV3TRS7LS3ANCNFSM4JHFIDQA
.

I dont want to publish my app on playstore then how I will get ads as my app and admob ids are old Plz help plz reply

@dimityrivanoiv Okay Thanks

I am facing the same issue now. Did worked for you?

Not yet
On Fri, Sep 18, 2020, 16:33 jayanth97-R<EMAIL_ADDRESS>wrote:

@dimityrivanoiv Okay Thanks
I am facing the same issue now. Did worked for you?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/43888#issuecomment-694803698,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APNPCCJJ7GEXM6GECG4HG7DSGM47HANCNFSM4JHFIDQA
.

I think you have to find another platform to publish your app instead of play store

Not yet
…
On Fri, Sep 18, 2020, 16:33 jayanth97-R @.***> wrote: @dimityrivanoiv Okay Thanks I am facing the same issue now. Did worked for you? — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#43888 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/APNPCCJJ7GEXM6GECG4HG7DSGM47HANCNFSM4JHFIDQA .

I think you have to find another platform to publish your app instead of play store

Thanks, I'll check it out.
On Wed, Dec 16, 2020, 5:26 PM myanar7<EMAIL_ADDRESS>wrote:

I think you have to find another platform to publish your app instead of
play store
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/43888#issuecomment-746175124,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APNPCCJ6WJO3ENBCTATALODSVCN5VANCNFSM4JHFIDQA
.


Inference in batches and multiple GPU

I am trying to use infer model on multiple GPU but I get an error of unathurised access to GPU.Do I need to config the repo accordingly / how to use cuda visible devices ?
Can I infer with images batches?

I did inference on multiple GPUs on vast.ai and I didn't have problems. The only things I did was to give privileges to dist_test.sh.
You can try either chmod +x dist_test.sh or chmod 777 dist_test.sh


Input box of operators not functioning when input 'tab' char

Environment

OS: OSX 11.2
Java Version: Java 8
Python Version: 3.9
Pip Version: 23.2.1
Browser: Chrome

Description
When I input tab(\t) into the input box of operators, if the box is blank, the box cannot be selected or input anything anymore.
If the box is not blank, the tab won't be displayed in the input box, but the backend will still receive the characters.

@Xiao-zhen-Liu will look into it.


Fix results initialization race condition

Traceback was:
TypeError: Cannot read property 'length' of undefined
    at Runner.render (/Users/me/somewhere/node_modules/glow/dist/legacy/Runner.js:306:17)
    at Env.<anonymous> (/Users/me/somewhere/node_modules/glow/dist/legacy/Runner.js:101:24)
    at emitOne (events.js:96:13)
    at Env.emit (events.js:188:7)
    at Env.setFilters (/Users/me/somewhere/node_modules/glow/dist/legacy/Env.js:72:10)
    at Screen.<anonymous> (/Users/me/somewhere/node_modules/glow/dist/legacy/Interface.js:156:17)
    at Screen.EventEmitter._emit (/Users/me/somewhere/node_modules/blessed/lib/events.js:94:20)
    at Screen.EventEmitter.emit (/Users/me/somewhere/node_modules/blessed/lib/events.js:114:17)
    at Program.<anonymous> (/Users/me/somewhere/node_modules/blessed/lib/widgets/screen.js:592:12)
    at emitTwo (events.js:106:13)

Note that I'm on flow 0.53.1 (sadness, I know), which isn't supported. I only see this when running glow --watch some of the time, but didn't take the time to debug extensively.
Because I didn't find a minimal repro case, I couldn't come up with a good test for this, but I figured the basic null check couldn't hurt.

 Thanks! ❤

BTW might be cool if it didn't clear the console.
I also spotted this bug:
Property not found in

/Users/me/somwhere.jsx:64
  62 |
  63 | // Requests
> 64 | export type AllFoo = {|
     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 65 |   // data: {|
     | ^^^^^^^^^^^^^^^^^^^^^^^
> 66 |   //   amount?: {
     | ^^^^^^^^^^^^^^^^^^^^^^^
... (it's a long object)
> 96 | |};
     | ^^^ object type

(seems the middle of an object is printing with monotonous length or something). note this is on flow 0.53.1. I hope to submit a fix but thought I'd let you know in case the fix is obvious to you.
Relatedly, I also noticed a scrolling bug in watch mode where the highlighted bit gradually moved down the screen as you scrolled, until you could barely seen the highlighted error. I hope to take a look at that... "later".
hope you don't mind the no-issues loophole here 😄 NRE

Damn it, I thought I had solved the scrolling issue

I wasn't on latest (I was on 1.1.1) and I only saw it once... 🤷♂

Cool if I report back here with details if I see it again?

Sure


Add support for optimized web app images

Related to https://github.com/carbon-design-system/carbon-platform/issues/499, we want to use the Next.js Image component to leverage its performance optimizations. Those optimizations require statically imported image files, or if the images are remote, you have to specify width, height, and blurDataURL manually.
Post-v1
After v1, we'll be rendering remote images from both github.com and github.ibm.com (GitHub Enterprise, GHE.) Once the platform's web app is sourcing IBM internal content from GHE, we'll need an image service that either proxies image requests, or persists (and optimizes) images for the web app.
Because v1 is only rendering open-source libraries and asset, and because the platform's source (this repo) is also open-source, all images that we'll want to render are publicly available (not requiring authentication). Because of that, the image service isn't required for v1.
v1
Local images
Option A
To keep things simple, the local MDX files used as source for non-library, non-asset, pages can have image imports in each file. That means:

Images can live in the /pages subdirectories and not all in the /public directory
Image optimizations and blur placeholders provided by Next.js
Minimal migration to add image imports and update Img MDX instantiations to use those imports

Option B
Or, if we don't want to migrate any MDX, we can migrate just the images by mirroring directory structures. E.g. if /pages/foo/bar.mdx is referencing relative images like /baz.png, we place that image in /public/pages/foo/baz.png. This means:

Images are not optimized and there are no blur placeholders provided by Next.js

Remote images
In v1 we'll be rendering library and asset images that are hosted on github.com.
Option A
The easiest option is to use the absolute image URL in the Next.js Image component, but that means:

Images are not optimized and there are no blur placeholders provided by Next.js

Option B
In either getStaticProps() or getServerSideProps(), we gather every remote image URL that the page needs to render, and we process it with plaiceholder so each image has it's original source, but also a height, width, and width, height, and blurDataURL.
Proof of concept
This issue is to demonstrate remote images option B, for when we turn to rendering remote MDX for libraries and assets.

Here's a demo of this working after a next build and next start. Mapping the examples to the options above:

Local image option A: demo 1
Local image option B: demo 4
Remote image option A: demo 5
Remote image option B: demos 2 and 3

https://user-images.githubusercontent.com/1691245/163063302-76bd2157-22cb-412b-a37e-8c87cf9ba91c.mov

If you pause at the 3s mark, you'll see the placeholders. The demo 2 and 3 placeholders generated by the plaiceholder library look close enough to demo 1 which is the Next.js static import. Not bad!

@alisonjoseph @francinelucca notice how demo 4 pushes the page content down as it loads. That's expected because we don't know the height and width so the Next.js Image component can't properly size itself before the image loads.
We didn't really consider this when discussing MDX migration options. For local MDX, we can prevent that by using static image imports (demo 1).

If anybody wants to check this out, do-not-delete/image-placeholder-demo branch. https://github.com/carbon-design-system/carbon-platform/tree/do-not-delete/image-placeholder-demo

Here's the good stuff from that branch:
https://github.com/carbon-design-system/carbon-platform/blob/do-not-delete/image-placeholder-demo/services/web-app/pages/testing/images.js
https://github.com/carbon-design-system/carbon-platform/blob/do-not-delete/image-placeholder-demo/services/web-app/lib/image.js

@alisonjoseph I'm going to mark this as done by closing it. We can reference this code later when rendering remote MDX in the dependent issue.


cannot complete vacuum full because size limit is reached

@lubennikovaav AFAIK, we planned to allow vacuum operations even when size limit is reached, so I'm not sure if this already should work or it is in the TODO list
VACUUM FULL
Reconnecting...
Reconnected!
could not extend file because cluster size limit (10000 MB) has been exceeded
HINT:  This limit is defined by zenith.max_cluster_size GUC

dupe of https://github.com/neondatabase/neon/issues/1245


Allow additional types in @KotlinCoreEnvironmentTest annotation

This change allows #5182 to be tested.
When the test compiler is initialized, only the kotlin standard lib and kotlin coroutines are available to the binding context. This change allows additional jars to be added to the compiler environment via the @KotlinCoreEnvironmentTest annotation. The jars are determined by defining a type from the jar that should be added.

I mean, in my case my code compiled correctly. I mean, the compiler knew all the types correctly.

That is acutally not the case. For regular test execution, the compilation is effectively deactivated (System.getProperty("compile-snippet-tests", "false")). After activation, the test failed with Given Kotlin code is invalid..

Shouldn't we add "by default" all the classes that we have inside the classpath?
I do not think so. The BindingContext should (in general) only need to resolve kotlin language types. For library specific rule sets this is may be different. There it might be reasonable to add spring or compose or ... to the test compiler via this annotation.

I had one of the test that was invalid (a private extension function that can't be private because the script restriction). But the other ones compile properly I use ./gradlew :detekt-rules-ruleauthors:test -Pcompile-test-snippets=true and all the snippets compile for that reason I feel this is strange.

(I'm ok merging this but I think that we should take a look on that because it could create some noise for us and/or third party authors)

You are right. The KotlinScriptEngine uses the current classpath to compile the script, The KtTestCompiler on the other hand does not when creating the KotlinCoreEnvironment.
Maybe @3flex can shed some light on this. I only have a very vague understanding of what is going on here.

I think I can also shed some light on the KotlinScriptEngine, since I introduced JSR223 to detekt back then. I don’t get the question. Is it about the support of private extension functions? Private extension functions are not supported, as already mentioned.

No, the issue that we have is that in #5182 the test snippets compile perfectly fine BUT the BindingContext that is generated lacks from Rule and BaseRule information so the tests fail. That's the problem, the classpah for the compilation check and the classpath to generate the BindingContext are different.
We can fix it with this PR but the behaviour is counter intuitive and third party rule authors are more likely to find this error because they want to check integration with libraries (that's the case of #5182 where I'm checking against detekt itself).

Let me try to summarize the discussion here as there are multiple threads.

The problem this PR is trying to solve (or put a band-aid on) is that the BindingContext used for type resolution in tests by default can only use types from the stdlib and the coroutines lib. By allowing test authors to add types to the annotation, they become available for type resolution.
As @BraisGabin pointed out it is counter intuitive that the script compilation in tests can import all types that are available on the classpath, but only those from stdlib and coroutines are available for type resolution. (I will investigate further and create a separate issue)
I moved the tests to the same module as the annotation itself, but since the BindingContext for tests is created in  the detekt-test (KotlinCoreEnvironmentExtensions.kt) module instead of the detekt-test-utils module, this function had to be copied as well which is far from ideal. Can we move it?


chore(release): 2.0.2 [skip ci]

2.0.2 (2021-09-04)
Bug Fixes

expose currentTime on the service and the base sound (14103e9)

Documentation

Update documentation and examples for using the test helpers (f99e987)

:tada: This PR is included in version 2.0.3 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


buyer_dashboard: include message if user has projects awaiting outcome information

Trello https://trello.com/c/4Ub332Ty/70-fe-7-you-need-to-tell-us-the-outcome-for-1-saved-search-to-be-added-dynamic
I seem to have unconsciously added a full stop to the end of the sentence - @karlchillmaid is this desired or not?

@risicle this is something that keeps coming up. It's basically a judgement call between pedants like me who think we should use punctuation even if it looks ugly at the end of short sentences and sentences-that-end-in-links, and anyone who thinks we shouldn't.
Personally I think the full stop should stay. It was there in the original draft, but was removed to be consistent with all the other missing full stops.
If we do add it, we'd need to add one to the equivalent 'You have no saved searches' message – and do the same for the DOS messages.
There are probably many instances like this on DM, so we might be creating some content debt by adding a full stop in this case.
What do you think @tracy-content and @constancecerf?

@karlchillmaid back in the day making this consistent was in our content debt... This obviously didn't happen so I assume full stops have been inconsistently applied or not.
What do we say in the style guide? If we don't say anything, maybe we should make a rule now and add it to the guide. Hopefully then we'll have a consistent approach from now on.
I'd go for adding a full stop too!

O.k. I'm. putting. them. in. everywhere.


Infinite render graph force-directed on parameter "randomize": false

Hello!
I found problem of infinite render page (or graph i don't know what exactly)
Bug: infinite render (Chrome Version 116.0.5845.187 (Official Build) (arm64))
Basic dependencies for convenience:
"cytoscape": "^3.0.0",
"react-cytoscapejs": "^2.0.0",
"cytoscape-euler": "^1.2.2",
The main problem is in the CytoscapeСomponent (all code of the Graph component on React) and in the layouts object, namely the property "randomize": false.
One of the main reasons, it seems to me, is the following:

Problem in React. There may be something with the life cycles of rendering components that conflict with the library itself. Although of course they did, but still.
Perhaps some fields in the layout object are ignored, because the "numIter" object parameter simply does not work in this situation.

With randomize: true,  all works good
just in case, I attach the entire component code
{
  "name": "project",
  "version": "0.1.0",
  "private": true,
  "homepage": "/",
  "dependencies": {
    "@reduxjs/toolkit": "^1.9.3",
<EMAIL_ADDRESS>"^2.9.38",
    "@types/chartjs": "^0.0.31",
    "@types/cytoscape": "^3.19.11",
    "@types/react": "^18.0.29",
    "@types/react-cytoscapejs": "^1.2.2",
    "@types/react-dom": "^18.0.11",
    "@types/react-redux": "^7.1.25",
    "@types/styled-components": "^5.1.27",
    "@types/webpack-bundle-analyzer": "^4.6.0",
    "ajv": "^8.11.0",
    "chart.js": "^3.9.1",
    "chartjs-adapter-date-fns": "^3.0.0",
    "chartjs-adapter-moment": "^1.0.1",
    "chartjs-plugin-datalabels": "^2.2.0",
    "chartjs-plugin-piechart-outlabels": "^0.1.4",
    "cytoscape": "^3.0.0",
    "cytoscape-cola": "^2.5.1",
    "cytoscape-euler": "^1.2.2",
    "date-fns": "^2.30.0",
    "dotenv-webpack": "^8.0.1",
    "export-from-json": "^1.7.3",
    "graphology-types": "^0.24.7",
    "i18next": "23.2.3",
    "i18next-browser-languagedetector": "7.1.0",
    "i18next-http-backend": "^2.2.1",
    "moment": "^2.29.4",
    "popper.js": "^1.16.1",
    "react": "^18.2.0",
    "react-bootstrap": "^2.8.0",
    "react-chartjs-2": "^4.3.1",
    "react-cytoscapejs": "^2.0.0",
    "react-dom": "^18.2.0",
    "react-i18next": "13.0.1",
    "react-json-pretty": "^2.2.0",
    "react-json-view": "^1.21.3",
    "react-redux": "^8.1.1",
    "react-router-dom": "6.14.0",
    "react-scripts": "^5.0.1",
    "redux": "^4.2.1",
    "styled-components": "^6.0.7",
    "tippy.js": "^6.2.5",
    "uuid": "^9.0.0",
    "web-vitals": "3.3.2"
  },
  "scripts": {
    "test_debug": "webpack serve --open --config webpack.test_debug.ts",
    "test_release": "webpack --config webpack.test_release.ts",
    "preprod_debug": "webpack serve --open --config webpack.preprod_debug.ts",
    "preprod_release": "webpack --config webpack.preprod_release.ts",
    "prod_debug": "webpack --config webpack.prod_debug.ts",
    "prod_release": "webpack --config webpack.prod_release.ts",
    "development": "webpack serve --open --config webpack.development.ts",
    "production": "webpack --config webpack.production.ts",
    "lint": "eslint src/**/*.{ts,tsx}",
    "lint:fix": "eslint --fix 'src/**/*.{ts,tsx}'",
    "format": "prettier --write 'src/**/*.{ts,tsx,css}'",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@types/cytoscape-euler": "^1.2.1",
    "@types/cytoscape-popper": "^2.0.1",
    "@types/lodash": "^4.14.196",
    "@types/node": "^18.15.11",
    "@types/react-d3-graph": "^2.6.4",
    "@types/uuid": "^9.0.1",
    "@types/webpack": "^5.28.1",
    "@typescript-eslint/eslint-plugin": "^5.59.7",
    "@typescript-eslint/parser": "^5.59.7",
    "autoprefixer": "^10.4.14",
    "bootstrap": "^5.2.2",
    "clean-webpack-plugin": "^4.0.0",
    "copy-webpack-plugin": "^11.0.0",
    "css-loader": "^6.8.1",
    "css-minimizer-webpack-plugin": "^5.0.0",
    "eslint": "^8.41.0",
    "eslint-config-prettier": "^8.8.0",
    "eslint-config-standard-with-typescript": "^34.0.1",
    "eslint-import-resolver-typescript": "^3.5.5",
    "eslint-plugin-import": "^2.27.5",
    "eslint-plugin-n": "^15.7.0",
    "eslint-plugin-prettier": "^4.2.1",
    "eslint-plugin-promise": "^6.1.1",
    "eslint-plugin-react": "^7.32.2",
    "html-webpack-plugin": "^5.5.1",
    "node-sass": "^9.0.0",
    "postcss": "^8.4.23",
    "postcss-loader": "^7.3.3",
    "prettier": "^2.8.8",
    "sass-loader": "^13.3.2",
    "style-loader": "^3.3.2",
    "ts-loader": "^9.4.2",
    "ts-node": "^10.9.1",
    "typescript": "^5.0.4",
    "webpack": "^5.81.0",
    "webpack-bundle-analyzer": "^4.8.0",
    "webpack-cli": "^5.0.2",
    "webpack-dev-server": "^4.13.3",
    "webpack-merge": "^5.8.0"
  },
  "overrides": {
    "@svgr/webpack": "^8.1.0"
  },
  "volta": {
    "node": "18.17.1"
  }
}

Source code:

import { useParams } from "react-router-dom";
import React, { FC, useCallback } from "react";
import {
  CollectionReturnValue,
  Core,
  EventObject,
  LayoutOptions,
  NodeSingular,
  Stylesheet,
  use,
} from "cytoscape";
import styled from "styled-components";
import CytoscapeComponent from "react-cytoscapejs";
import euler from "cytoscape-euler";

import { useGenerateGraph } from "../../hooks/use-generate-graph/useGenerateGraph";
import user from "../../assets/userId.svg";
import device from "../../assets/deviceId.svg";
import ip from "../../assets/ip.svg";
import deviceHash from "../../assets/deviceHash.svg";
import app from "../../assets/applicationId.svg";
import { Error } from "../error/Error";
import { Spinner } from "../ui/spinner/Spinner";
use(euler);

const CytoscapeComponentStyled = styled.div`
  width: 800px;
  height: 600px;
  border: 2px solid #ccc;
  border-radius: 5px;
`;
export const layouts = {
  random: {
    name: "random",
    animate: true,
    randomize: false,
  },
  grid: {
    name: "grid",
    animate: true,
    randomize: false,
  },
  circle: {
    name: "circle",
    animate: true,
    randomize: false,
  },
  breadthfirst: {
    name: "breadthfirst",
    animate: true,
    randomize: false,
  },
  klay: {
    name: "klay",
    animate: true,
    randomize: false,
    padding: 4,
    nodeDimensionsIncludeLabels: true,
    klay: {
      spacing: 40,
      mergeEdges: false,
    },
  },
  fcose: {
    name: "fcose",
    animate: true,
    randomize: false,
  },
  cose: {
    name: "cose",
    animate: true,
    randomize: false,
  },

  cola: {
    name: "cola",
    animate: true,
    randomize: false,
  },
  dagre: {
    name: "dagre",
    animate: true,
    randomize: false,
  },
  euler: {
    name: "euler",
  },
};

export const Graph: FC = () => {
  const { user_id: userId } = useParams();
  const nodeType: "user" | "device" | "application" | "ip" | "subnet" = "user";
  const {
    elements,
    status,
    error: { statusCode, statusMessage, statusText },
  } = useGenerateGraph(nodeType, userId as string, 3, ["subnet"]);

  const stylesheet = [
    {
      selector: "node",
      style: {
        // label: "data(title)", // Отключаем текстовую надпись
        "text-max-width": "50px", // Максимальная ширина текста
        "text-margin-x": "-60px", // Внешний отступ по горизонтали
        "text-margin-y": "-25px", // Внешний отступ по горизонтали
        "background-color": "#e5e1e1",
        color: "#000000",
        "text-valign": "center",
        "overlay-padding": "6px",
        "text-outline-color": "#ffffff",
        "text-outline-width": "2px",
        fontSize: 13,
        "border-width": "1px",
      },
    },
    {
      selector: "edge",
      style: {
        width: 1,
        "line-color": "rgba(199,198,198,0.56)",
        "curve-style": "bezier",
      },
    },
    {
      selector: `node[id="${sessionStorage.getItem(
        "team",
      )}:${nodeType}:${userId}"]`,
      style: {
        width: 50,
        height: 50,
        "background-image": `url(${user})`,
        "background-repeat": "no-repeat",
      },
    },
    {
      selector: `node[label="user"]`,
      style: {
        "background-image": `url(${user})`,
        "background-repeat": "no-repeat",
      },
    },
    {
      selector: 'node[label="device"]',
      style: {
        "background-image": `url(${device})`,
        "background-color": "rgb(227,172,172)",
        "background-repeat": "no-repeat",
      },
    },
    {
      selector: 'node[label="application"]',
      style: {
        "background-image": `url(${app})`,
        "background-color": "rgb(161,188,225)",
        "background-repeat": "no-repeat",
      },
    },
    {
      selector: 'node[label="device_hash"]',
      style: {
        "background-image": `url(${deviceHash})`,
        "background-color": "rgb(148,211,158)",
        "background-repeat": "no-repeat",
      },
    },
    {
      selector: 'node[label="ip"]',
      style: {
        "background-image": `url(${ip})`,
        "background-color": "rgb(203,177,215)",
        "background-repeat": "no-repeat",
      },
    },
    {
      selector: ".highlighted",
      style: {
        "background-color": "green",
        "line-color": "green",
        "target-arrow-color": "green",
      },
    },
  ] as Stylesheet[];

  const handleNodeMouseOver = useCallback((event: EventObject) => {
    const node: NodeSingular = event.target as NodeSingular;
    const neighbors: CollectionReturnValue = node.neighborhood();
    const divGraphTooltip = document.getElementById("graphTooltip");
    if (divGraphTooltip) {
      divGraphTooltip.style.opacity = "1";
      divGraphTooltip.style.padding = "0.5rem";
      divGraphTooltip.style.cursor = "pointer";
      //divGraphTooltip.style.transform = "translate(-50%, 75%)"
      divGraphTooltip.style.position = "absolute";
      divGraphTooltip.style.zIndex = "9999";
      divGraphTooltip.innerText = node.data("title");
      divGraphTooltip.style.background = "rgba(0,0,0,0.7)";
      divGraphTooltip.style.borderRadius = "3px";
      divGraphTooltip.style.color = "#fff";
      divGraphTooltip.style.transition = "all .1s ease";

      const graphCanvasPosition = document.getElementById(
        "graphCanvasPosition",
      );
      graphCanvasPosition?.addEventListener("mousemove", (e) => {
        divGraphTooltip.style.left = e.x + "px";
        divGraphTooltip.style.top = e.y + 100 + "px";
      });
    }
    neighbors.edges().style("line-color", "#3dbe20");
    neighbors.edges().style("width", 4);
  }, []);

  const handleNodeMouseOut = useCallback((event: EventObject) => {
    const node: NodeSingular = event.target as NodeSingular;
    const divGraphTooltip: HTMLElement | null =
      document.getElementById("graphTooltip");
    if (divGraphTooltip) divGraphTooltip.style.opacity = "0";
    const neighbors = node.neighborhood();

    neighbors.edges().style("line-color", "rgba(199,198,198,0.56)");
    neighbors.edges().style("width", 1);
  }, []);

  const layouts = {
    name: "euler",
    animate: false,
    // refresh: 10,
    gravity: -3,
    dragCoeff: 0.02,
    padding: 25,
    numIter: 100,
    // minTemp: 1.0,
    randomize: true,
   /* fit: true,*/
    /*componentSpacing: 100,
    coolingFactor: 0.99,
    fit: true,
    timeStep: 2,*/
    /*   initialTemp: 1000,
    minTemp: 1.0,
    nestingFactor: 1.2,
    ungrabifyWhileSimulating: true,
    nodeDimensionsIncludeLabels: false,
    nodeOverlap: 4,
    numIter: 200,
    ,*/
    // springCoeff(edge: any): number {
    //   return 0.0008;
    // },
    // springLength(edge: any): number {
    //   return 80;
    // },
    // mass(node: any): number {
    //   return 8;
    // },
  } as LayoutOptions

  return (
    <>
      {status === "error" && (
        <Error
          statusCode={statusCode}
          statusText={statusText}
          statusMessage={statusMessage}
        />
      )}
      {status === "loading" && (
        <CytoscapeComponentStyled>
          <Spinner />
        </CytoscapeComponentStyled>
      )}
      {status === "success" && (
        <CytoscapeComponentStyled>
          <CytoscapeComponent
            id="graphCanvasPosition"
            elements={elements}
            stylesheet={stylesheet}
            minZoom={0.25}
            maxZoom={5}
            layout={layouts}
            style={{
              width: "100%",
              height: "100%",
              backgroundColor: "#f1f4fa",
              margin: "0",
              padding: "0",
            }}
            cy={(cy: Core) => {
              cy.on("mouseover", "node", handleNodeMouseOver);
              cy.on("mouseout", "node", handleNodeMouseOut);
              return () => {
                cy.off("mouseover", "node", handleNodeMouseOver);
                cy.off("mouseout", "node", handleNodeMouseOut);
              };
            }}
          />
          <div id="graphTooltip" />
        </CytoscapeComponentStyled>
      )}
    </>
  );
};

It looks like you may have a good start to specifying your issue.  Two points:
(1) Issues for cytoscape-reactjs should go to that repo, and the folks at Plotly will address it accordingly: https://github.com/plotly/react-cytoscapejs
(2) To expedite your issue, it would be best for you to have a reproducible demo.  Codepen allows for demos that require build steps.

Thanks for the answer, will be trying your advices. Codepen is a good idea, but simulation in Codepen may be different than in Browsers (Firefox, Chrome and etc.) But it's worth a try

@maxkfranz: I have the same problem (without react): when there are a lot of nodes in the same spot (x:0, y:0) and randomize is false, then the browser freezes during the euler layout.
You can see this with the current version of SNIK Graph ( 24.06, commit date 2024-06-18T15:51:11+02:00, release 24.06) at
https://www.snik.eu/graph/ when you press CTRL+ALT+R (restores all hidden nodes which are at position 0,0) and then CTRL+ALT+T ("tight layout", or click on the tight layout button), then it often freezes.

This layout is fairly basic as far as force-directed layouts go.
The purpose of randomise:false is to provide your own initial positions.  If you leave everything at (0,0), you haven't specified any positions.  The way a FD layout would typically handle inputs of nodes with identical initial positions would be either:
(1) Throw an error (i.e. because of user error), e.g. IdenticalPositionsForbiddenError
(2) Randomise the overlapping positions
You can do (2) yourself by using randomize:true.
In general, I'd recommend using FCOSE (faster, better) instead of this layout unless you have a very strong justification for not using FCOSE.

The reason for not using FCOSE is that we created our application in 2016 when it didn't exist, so I will switch to it and see if it fits our use cases the same way :-)


Is get_uri misspelled in nft.aes?

Is get_uri misspelled in nft.aes?
In line 77, should get_uri be get_url ? (i->l or I->L)

You are probably right. However this repo is outdated, because it was made before the AEX proposal for NFTs. I am currently updating everything and new examples will be available soon. I would not recommend using the examples currently in this repo.


HA Log full of "WARNING (MainThread) [pymiele.pymiele] Connection was closed, restarting"

The problem
Hello
I am getting the following error in the HA Logs. at least 5 in a minute so it filling my logs.
"WARNING (MainThread) [pymiele.pymiele] Connection was closed, restarting"
Everything seems to be working with the integration, so not sure why I am getting these messages. Any help would be appreciated
Thanks
Version of miele integration having the issue?
0.1.14
Version of Home Assistant Core having the issue?
2023.6.2
Anything in the logs that might be useful for us?
WARNING (MainThread) [pymiele.pymiele] Connection was closed, restarting

Additional information
No response

I am getting these as well. @astrandb is this "expected"/ normal behavior or this is something due to our side?

@olympia I wouldn't say it is expected, I have never seen it myself in my production or development systems.
The message is just a warning that the data stream from the Miele API timed out and that the integration restarted the connection.

Stale issue - closing


on_client_gone

To help us save time and help you faster
"on_client_gone" plugin method :  haw to know if client has disconnected gracefully (has sent disconnect request) or forced disconnect (connexion browken).

Hi @medaboub
There is at the moment no way to see the difference here - but this is a great idea and I'll tag this for VerneMQ 2.0. Thanks!

Closing this until we start work on VerneMQ 2.0.


Add functional  tests for Iteration feature

Add functional tests for Iteration feature
#646, #647,#648

CRUD is not complete yet , so will take up this task once its complete

#813 , Implementation with Spring #126  is covered in this PR


moveit docs fix

Description

Pull request checklist

[ ] Issue created that explains the change and why it's needed
[ ] Tests are part of the PR (for bug fixes / features)
[ ] Docs reviewed and added / updated if needed (for bug fixes / features)
[ ] Format and Lint checks (make check) pass locally
[ ] PR applies Apache 2.0 License to all code files

Pull request type

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[x] Documentation changes
[ ] Other (please describe)

Current behavior

New behavior

How to test

order


Stroy tree 1

Proposed changes:

...

Status (please check what you already did):

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

@JEM-Mosig this still relies on stories having unique names right? I would suggest the following:

if the user runs this command and there are duplicate story names, we ask the user if they want to make the story names unique

if the user says yes, we add a (random or sequential) number to the end of the duplicate story names, then either
a  quit and save (overwriting the story files) OR
b. dump the uniquely-named stories to a separate file

we tell the user to run the command a second time

@amn41 I did it a bit differently:

rasa data validate and rasa data validate stories will warn you if there are duplicate story names.
To fix this, you can run rasa data clean, which creates a new file for every story file by appending .new to the file name. These new story files are identical to the old ones, except that story names are unique. This is experimental, of course, and just hacked in so we can use it.

I renamed the branch, so the PR draft is now here: https://github.com/RasaHQ/rasa/pull/4740


USN-3438-1: Git vulnerability

Package git-core should be upgraded in quay.io/deis/slugbuilder image due to USN-3438-1

See https://github.com/deis/slugrunner/issues/68#issuecomment-334510669. I've also gone ahead and performed the same fix for the builder so we're good on all fronts.

re-opening due to https://github.com/deis/slugrunner/issues/68#issuecomment-335589286 (thanks @stuszynski for the heads up).

done.


demo

Uploading chart.js.firefox_glitch.mp4…

https://github.com/evgenyneu/Cosmos/assets/880411/176f4046-c168-44f9-8d39-ea4a523545ed


python310Packages.json-schema-for-humans: 0.44.3 -> 0.44.4

Changelog: https://github.com/coveooss/json-schema-for-humans/releases/tag/v0.44.4
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

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

[ ] Fits CONTRIBUTING.md.

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

4 packages built:

json-schema-for-humans (python310Packages.json-schema-for-humans)
json-schema-for-humans.dist (python310Packages.json-schema-for-humans.dist)
python311Packages.json-schema-for-humans
python311Packages.json-schema-for-humans.dist


pipchecker - Detection of Github rate limit broken

I was randomly getting either:
  File "/usr/local/lib/python3.6/site-packages/django_extensions/management/commands/pipchecker.py", line 102, in handle
    self.check_github()
  File "/usr/local/lib/python3.6/site-packages/django_extensions/management/commands/pipchecker.py", line 276, in check_github
    elif frozen_commit_data["sha"] in [branch["commit"]["sha"] for branch in branch_data]:
  File "/usr/local/lib/python3.6/site-packages/django_extensions/management/commands/pipchecker.py", line 276, in <listcomp>
    elif frozen_commit_data["sha"] in [branch["commit"]["sha"] for branch in branch_data]:
TypeError: string indices must be integers

or
  File "/usr/local/lib/python3.6/site-packages/django_extensions/management/commands/pipchecker.py", line 102, in handle
    self.check_github()
  File "/usr/local/lib/python3.6/site-packages/django_extensions/management/commands/pipchecker.py", line 276, in check_github
    elif frozen_commit_data["sha"] in [branch["commit"]["sha"] for branch in branch_data]:
KeyError: 'sha'

when running pipchecker on Travis (something else seems to have broken there, but never mind).
The reason for this cryptic error is that in the guard clause at https://github.com/django-extensions/django-extensions/blob/master/django_extensions/management/commands/pipchecker.py#L250 , it checks message for "API Rate Limit Exceeded", but Github now sends the text API rate limit exceeded (note the lowercase).
Github recommends checking the header X-RateLimit-Remaining instead.

For every request.get we probably need to check status code or at least use raise_for_status so that we get clear error messages on non 200 responses.
Then start handling the rate limiting response headers :-)


Rename Application parameter from loglevel to log_level

Setting the log level in the Application object is done with the parameter loglevel. Is there a reason why it's named as such when it seems for consistency log_level would be more appropriate?
We could have:
app = Application(
    broker_address="localhost:9092",
    consumer_group="group_a",
    auto_offset_reset="latest",
    log_level="DEBUG"
)

Rather than:
app = Application(
    broker_address="localhost:9092",
    consumer_group="group_a",
    auto_offset_reset="latest",
    loglevel="DEBUG"
)

Hey @stereosky !
There's no particular reason why it's named loglevel vs log_level to be honest :)
I'd keep the current name to avoid backward compatibility issues.


Firebird and BLOB Data

Hi -
I have recently been working with php and Firebird to upload BLOB files to a database. For some time I thought my upload was being corrupted as when I used the "Edit / Save As" option - the resulting file was the wrong size and was no longer in the format it was originally uploaded in.
Specifically, image data. I uploaded an image - used the Save as option and when I tried to view the saved file - got an error basically saying it could not be identified as an image.
Does DBeaver do some processing of the data before saving that would account for this ? Shame its not working as being able to save blob fields is very useful when testing.
Thanks.

I have just inserted and retrieved a sizable image file using DBeaver and it loads just fine without corruption, and the inserted image has exactly the same size as the image on disk (both before insert and after loading). Without a suitable reproduction recipe, it is more likely that your PHP application corrupted the image on save.
Note: I'm not part of the DBeaver team, but I maintain the Firebird JDBC driver

A blob sub_type 1 is a blob sub_type text, which means you are trying to store binary data in a text column. That is not going to work (or at least, you'll get corruption because of character set transliteration issues).
If you want to store binary data, you need to use a blob sub_type binary (== blob sub_type 0).

Ahh ok, that would explain it then. Sorry for wasting your time and thanks for all the work you do :)
Cheers.