lb/Consolidate gias school and school models

Context
Originally, we had a school record joined to the GiasSchool record. In practice, this is becoming unweildy as every detail we need for a school needs to be delegated to the GiasSchool
Changes proposed in this pull request

Adds all the GiasSchool columns, validations, and pg_search scopes to the School model
The GiasCsvImporter upserts School records
School.all returns all GIAS schools
The GiasSchool model and db table have been removed
Seeds have been updated
Adds Faker gem so not all our schools are named Hogwarts
Updates erd document to reflect changes

Guidance to review
If we were in production, I would have done this in a couple PRs, but since we're not...
Two things to test:

run migrations, then run the rake gias_update and make sure everything works
like a new developer on the team, drop / create / migrate and seed the database and make sure everything works

Link to Trello card
https://trello.com/c/3Ke94xwX
Things to check

[NA] If the code removes any existing feature flags, a data migration has also been added to delete the entry from the database
[x] This code does not rely on migrations in the same Pull Request -- It does, but since we're not in production, that's ok!
[x] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[NA] If this code adds a column to the DB, decide whether it needs to be in analytics yml file or analytics blocklist
[NA] API release notes have been updated if necessary
[NA] If it adds a significant user-facing change, is it documented in the CHANGELOG?
[NA] Required environment variables have been updated or added to the Azure KeyVault

Screenshots
No screen shots etc -- everything should just work as it did before the changes.

 Consolidate GiasSchool and School models


Bump Json.NET and NUnit dependencies

Remove NUnit test adapter from nuget dependencies as the 2.x version is
not compatible and 3.x is intended to be run with an adapter installed
through other means (see new readme)
Correct a failing unit test not compatible with 3.x

Replaces #21 since the deps have increased again since then and this has a slightly different unit test format.

@oconnetf this still look okay to you? I bumped the deps to the new versions and had a little different take on the fixed unit test, also added a readme for adapter installation.

Small comment re: preferred syntax. Otherwise, :+1:.

@bscSCORM thoughts?

So it seems that based on this discussion we probably should lean towards Assert.That , perhaps except in the case of ThrowsAsync, though there is disagreement on that as well... in any case, this seems good enough to merge and this discussion is useful for future reference.


config_hash converts strings to integers => breaks port mappings

In the consul config_hash it is possible to disable the http port by setting it to -1, and enabling the https service instead by setting it to the appropiate port, 8500:
      'ports' =>              {
        'http'  =>  -1,
        'https' => 8500,
      },

The generated config.json results in:
  "ports": {
    "https": "8500",
    "http": -1
  },

Current behaviour (Release 1.0.0)
-1 is looking good, and is still an integer, whilst the https ports was converted to a string. The consul agent does not support strings as port numbers and therefore fails to launch.
Expected behaviour
-1 as well as 8500 should be integers.
Workaround
Tell puppet to treat "8500" as an integer by multiplying with 1 * :
      'ports' =>              {
        'http'  =>  -1,
        'https' =>  1 * 8500,
      },

Yea, we explicitly try to "cast" these into ints for service:
https://github.com/solarkennedy/puppet-consul/blob/master/manifests/service.pp#L49
Then we do it on a bit more keys here:
https://github.com/solarkennedy/puppet-consul/blob/master/manifests/config.pp#L82-L98
I'm... up for suggestions?
We could take a advantage of the fact that we have a custom function to write the json down:
https://github.com/solarkennedy/puppet-consul/blob/master/lib/puppet/parser/functions/consul_sorted_json.rb
In ruby we could look at each key, and if it looks like an int, make it an int?
Seems a little dangerous, but a tad better than whitelisting keys?

Something like this?
irb(main):001:0> iffy_integers = ['-1', '+1', '-goats', 'moats-', '8500', '2+3', '-3454', '-this is A-']
=> ["-1", "+1", "-goats", "moats-", "8500", "2+3", "-3454", "-this is A-"]

irb(main):002:0> iffy_integers.map { |i| i.match(/\A[-]?[0-9]+\z/) ? i.to_i : i }
=> [-1, "+1", "-goats", "moats-", 8500, "2+3", -3454, "-this is A-"]

Yea, that looks like it achieves the desired effect.
@aj-jester want me to whip that into a PR or did you want to?

@solarkennedy https://github.com/solarkennedy/puppet-consul/pull/156

@weitzj this should be fixed on the latest master thanks to @aj-jester

Thank you. :)


[BUG] System.AggregateException: One or more errors occurred. (The given key 'content-platform-dictionaries.zip' was not present in the dictionary.)  [Inner Exception] System.Collections.Generic.KeyNotFoundException: The given key 'content-platform-dictionaries.zip' was not present in the dictionary.

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] I have thoroughly looked through the available Wiki articles and could not find a solution to my problem.
[X] I am using the latest version of Bloxstrap.
[X] I did not answer truthfully to all the above checkboxes.

Bloxstrap Version
v2.8.1
What problem did you encounter?
First of all, I would like to say that I use Google Translate because my English is very poor. When I installed Bloxstrap, it encountered an error for those who don't know anything about code, so please fix it. Thank you!
Bloxstrap Log
2024-11-23T08:08:08Z [App::OnStartup] Starting Bloxstrap v2.5.3
2024-11-23T08:08:08Z [App::OnStartup] Compiled Tuesday, 18 June 2024 at 11:39:08 PM from DESKTOP-FGF6DO8\User
2024-11-23T08:08:08Z [App::OnStartup] Loaded from %UserProfile%\AppData\Local\Bloxstrap\Bloxstrap.exe
2024-11-23T08:08:08Z [InstallChecker::FirstTimeRun] Running first-time install
2024-11-23T08:08:08Z [Logger::Initialize] Initializing at %UserProfile%\AppData\Local\Temp\Bloxstrap_20241123T080808Z.log
2024-11-23T08:08:08Z [Logger::Initialize] Finished initializing!
2024-11-23T08:08:08Z [JsonManager<Dictionary`2>::Load] Loading from ClientSettings\ClientAppSettings.json...
2024-11-23T08:08:08Z [JsonManager<Dictionary`2>::Load] Failed to load!
2024-11-23T08:08:08Z [JsonManager<Dictionary`2>::Load] Could not find a part of the path 'C:\Windows\system32\ClientSettings\ClientAppSettings.json'.
2024-11-23T08:08:08Z [FastFlagManager::SetValue] Setting of 'FFlagHandleAltEnterFullscreenManually' to 'False' is pending
2024-11-23T08:08:08Z [FastFlagManager::SetValue] Setting of 'FLogNetwork' to '7' is pending
2024-11-23T08:08:08Z [FastFlagManager::SetValue] Setting of 'DFIntTaskSchedulerTargetFps' to '144' is pending
2024-11-23T08:08:08Z [MainWindow::MainWindow] Initializing menu
2024-11-23T08:08:15Z [NotifyIconWrapper::NotifyIconWrapper] Initializing notification area icon
2024-11-23T08:08:15Z [App::OnStartup] Initializing bootstrapper
2024-11-23T08:08:15Z [App::OnStartup] Initializing bootstrapper dialog
2024-11-23T08:08:15Z [Bootstrapper::Run] Running bootstrapper
2024-11-23T08:08:15Z [Bootstrapper::Run] Performing connectivity check...
2024-11-23T08:08:15Z [Bootstrapper::SetStatus] Connecting to Roblox...
2024-11-23T08:08:15Z [RobloxDeployment::GetInfo] Getting deploy info for channel LIVE (extraInformation=False)
2024-11-23T08:08:15Z [HttpClientLoggingHandler::ProcessRequest] GET https://clientsettingscdn.roblox.com/v2/client-version/WindowsPlayer/channel/LIVE
2024-11-23T08:08:16Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://clientsettingscdn.roblox.com/v2/client-version/WindowsPlayer/channel/LIVE
2024-11-23T08:08:16Z [Bootstrapper::Run] Connectivity check finished
2024-11-23T08:08:16Z [RobloxDeployment::GetInfo] Getting deploy info for channel LIVE (extraInformation=False)
2024-11-23T08:08:16Z [RobloxDeployment::GetInfo] Deploy information is cached
2024-11-23T08:08:16Z [DeployManager::DefaultBaseUrl.Set] Testing connection to 'https://setup.rbxcdn.com'...
2024-11-23T08:08:16Z [HttpClientLoggingHandler::ProcessRequest] GET https://setup.rbxcdn.com/version
2024-11-23T08:08:16Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://setup.rbxcdn.com/version
2024-11-23T08:08:16Z [DeployManager::DefaultBaseUrl.Set] Connection successful!
2024-11-23T08:08:16Z [HttpClientLoggingHandler::ProcessRequest] GET https://setup.rbxcdn.com/version-8aa36bbf0eb1494a-rbxPkgManifest.txt
2024-11-23T08:08:16Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://setup.rbxcdn.com/version-8aa36bbf0eb1494a-rbxPkgManifest.txt
2024-11-23T08:08:16Z [HttpClientLoggingHandler::ProcessRequest] GET https://setup.rbxcdn.com/version-8aa36bbf0eb1494a-rbxManifest.txt
2024-11-23T08:08:16Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://setup.rbxcdn.com/version-8aa36bbf0eb1494a-rbxManifest.txt
2024-11-23T08:08:16Z [Bootstrapper::SetStatus] Installing Roblox...
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.RobloxApp.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading RobloxApp.zip...
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.content-avatar.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading content-avatar.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read RobloxApp.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read content-avatar.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\content\avatar\...
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.content-configs.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading content-configs.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read content-configs.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\content\configs\...
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.content-fonts.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading content-fonts.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read content-fonts.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\content\fonts\...
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.content-models.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading content-models.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read content-models.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\content\models\...
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.content-sky.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading content-sky.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read content-sky.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\content\sky\...
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.content-sounds.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading content-sounds.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read content-sounds.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\content\sounds\...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting content-configs.zip
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting content-sounds.zip
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting content-sky.zip
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.shaders.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading shaders.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read shaders.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\shaders\...
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.ssl.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading ssl.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read ssl.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\ssl\...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting ssl.zip
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting content-models.zip
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting content-avatar.zip
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.content-textures2.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading content-textures2.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read content-textures2.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\content\textures\...
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.content-textures3.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading content-textures3.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read content-textures3.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\PlatformContent\pc\textures\...
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.content-terrain.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading content-terrain.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read content-terrain.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\PlatformContent\pc\terrain\...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting content-terrain.zip
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.content-platform-fonts.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading content-platform-fonts.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read content-platform-fonts.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\PlatformContent\pc\fonts\...
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.content-platform-dictionaries.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [AsyncHelpers::ExceptionHandler] An exception occurred while running the task 'extracting content-platform-dictionaries.zip'
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.extracontent-places.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading extracontent-places.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read extracontent-places.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\ExtraContent\places\...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting content-fonts.zip
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting extracontent-places.zip
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.extracontent-luapackages.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading extracontent-luapackages.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read extracontent-luapackages.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\ExtraContent\LuaPackages\...
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.extracontent-translations.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading extracontent-translations.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read extracontent-translations.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\ExtraContent\translations\...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting extracontent-translations.zip
2024-11-23T08:08:17Z [App::FinalizeExceptionHandling] System.AggregateException: One or more errors occurred. (The given key 'content-platform-dictionaries.zip' was not present in the dictionary.)
 ---> System.Collections.Generic.KeyNotFoundException: The given key 'content-platform-dictionaries.zip' was not present in the dictionary.
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Bloxstrap.Bootstrapper.ExtractPackage(Package package)
   --- End of inner exception stack trace ---
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting content-platform-fonts.zip
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting content-textures3.zip
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting shaders.zip
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.extracontent-models.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading extracontent-models.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read extracontent-models.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\ExtraContent\models\...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting extracontent-luapackages.zip
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.extracontent-textures.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading extracontent-textures.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read extracontent-textures.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a\ExtraContent\textures\...
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.WebView2.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Reading WebView2.zip...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Read WebView2.zip. Extracting to %UserProfile%\AppData\Local\Bloxstrap\Versions\version-8aa36bbf0eb1494a...
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting WebView2.zip
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.WebView2RuntimeInstaller.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [Bootstrapper::DownloadPackage.redist.zip] Package is already downloaded, skipping...
2024-11-23T08:08:17Z [AsyncHelpers::ExceptionHandler] An exception occurred while running the task 'extracting redist.zip'
2024-11-23T08:08:17Z [App::FinalizeExceptionHandling] System.AggregateException: One or more errors occurred. (The given key 'redist.zip' was not present in the dictionary.)
 ---> System.Collections.Generic.KeyNotFoundException: The given key 'redist.zip' was not present in the dictionary.
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Bloxstrap.Bootstrapper.ExtractPackage(Package package)
   --- End of inner exception stack trace ---
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting RobloxApp.zip
2024-11-23T08:08:17Z [Bootstrapper::ExtractPackage] Finished extracting extracontent-models.zip
2024-11-23T08:08:18Z [Bootstrapper::ExtractPackage] Finished extracting extracontent-textures.zip
2024-11-23T08:08:18Z [Bootstrapper::SetStatus] Configuring Roblox...
2024-11-23T08:08:19Z [Bootstrapper::ExtractPackage] Finished extracting content-textures2.zip

you have an executor installed named wave
so first you're gonna need to uninstall it cause it's the one causing the issues
then you can update peacefully https://bloxstraplabs.com/


Add Interacting AccountID of SmartContract to Hbar Cost Metric

Problem
We want a breakdown of the Associated Hbar costs incurred by the relay, by interacting smart contract entity (accountId)
Solution
Add accountID as a new dimension or label to the metrics collector that keeps track of the incurred costs
Alternatives
N/A


added a builtin url() helper that wraps django.core.urlresolvers.reverse()

While we are loathe to start jamming helpers into the template loader library, url() is the one that is needed by most every django jinja2 app.

This looks great, thanks.
Can you squash your commits, tests + code should be in the same commit.  The 3-rd-party merge commit is never pretty in the timeline.
Cheers,
-d

Closing this request to create a clean commit.


Please use uvloop>=0.14.0 to support python 3.8.x

From python 3.8.x, sys.set_coroutine_wrapper is removed. So while we use old uvloop version, responder also doesn't run on python 3.8.0 or later. Please upgrade dependencies.

Hey, thanks, now responder v2.0.5 supports python 3.8 :tada:


As a user, I'd like to be able to run the Data Importer without having the Customize Application system permission

This is a fairly brute-force way of solving the problem. There will still be an error if the user doesn't have Customize App AND there's no org instance yet, but at least the error is pushed further up the chain.
Contribution Info
This external contribution was submitted by @cdcarter and Fixes #1707
Critical Changes
Changes
With this change, non-system admins can be configured to do batch data importing.
Issues

Moved over to #1880 to fix metadata issues.


Debug option to print FPS prints the editor FPS while running a game

On the beta snapshot

Personally I just want to see the games FPS, but I could see making a separate option to print the editor FPS as well without having two identical strings printing to the console.
Interestingly, if you enable the FPS option before the game is running, then while it runs untick it, it will continue to print the games FPS.

@Zephilinox have you tried this one? https://i.imgur.com/ROphFAI.png

Oh neat, thanks.

@akien-mga I suppose this ticket can be closed

No, I still think that it's a bug if the project setting option prints both the game and the editor's FPS in the same output dialog.

@akien-mga what if just to remove "Print Fps" option in editor settings due to its useless (fps monitoring in output window tab, eh...)? And add support to "View FPS" to display fps when in 2D.


New logo for gwallet

Hello @knocte I designed a logo for gwallet. how do these look? If you like any of these, I can send you a pr.

Hey @reallinfo sorry for the super late reply. The logo looks grand! but turns out I was already thinking to rename the wallet.
However, the new name is actually very close to the old one! "geewallet" (I took this one mainly because "gwallet" wasn't available on twitter...) And thinking about it, the way you have finished the "G" part of the icon, to close it like if it was a wallet, seems like a reverse "E", right?
Maybe if you can do a shadow on the E, it would look like two E's. And then we have the desired logo :) Let me know what you think!

(Also if by adding the shadow you manage to make the "G" part square-sized instead of rectangular, it would fit better in mobile/desktop-icon scenarios!)

Closing because of lack of replies, and anyway we got a new logo now, sorry and thanks!


Fixed issue #5: Deprecated code in xml2json dependency

Upgraded the xml2json dependency version to 0.7.1 (latest), this fixes issue #5
P.s. This is my first pull request / issue fixing on Github, sorry in advance for any screw-ups ;)

Cannot reproduce


Make wrapError public and overridable

Unfortunately wrapError is a private method. It should instead be an overridable method e.g. on Model.prototype or Backbone.wrapError. This is an important bottleneck and should be part of the public API. This also addresses #690, #386 and #437. @jashkenas in #437 says "why not override sync?" Rather, the correct question is why should we have to override sync and have an extra level of wrapping for the error handler when we just want to override wrapError?   Really, let's address common issues rather than simply closing them with a perfunctory remark.

The above commit exposes wrapError as you request. I don't think you should need to be overriding it, so it'll be an undocumented API, but feel free to use it if you like.


Baseline series type

Is it possible to fill Area from predefined level (ex. 0)?
If you draw graph with negative values it currently fills area up from minimum value.
It maybe will be more logical to fill are from maximum to minimum.
https://jsfiddle.net/axtm3wr0/

It looks like Baseline chart type (you can see it on www.tradingview.com/chart).

It looks like Baseline chart type (you can see it on www.tradingview.com/chart).

Yep, it is.

In fact, I'm working with this with the interface in like:
basePrice: number;
underBaseTopColor: string;
underBaseBottomColor: string;
underLineColor: string;

It might not fit in future but feel free to give me suggetion

At the time in charting_library for baseline chart type we have the following properties, probably we can use some names/properties from them:
baselineColor // the color of baseline line
topFillColor1 // the start color of top area
topFillColor2 // the end color of top area
bottomFillColor1 // the start color of bottom area
bottomFillColor2 // the end color of bottom area
topLineColor // the color of top line (above the baseline)
bottomLineColor // the color of bottom line (below the baseline)
topLineWidth // line width of top baseline
bottomLineWidth // line width of bottom baseline
baseLevelPercentage // percentage value of baseline, it might be from 0 to 100 and it is based on the current viewport, not on absolute chart value

All make sense except baseLevelPercentage I think the base ine determined by price is more useful and configruable than level percentage

All make sense except baseLevelPercentage I think the base ine determined by price is more useful and configruable than level percentage. So my suggestion is basePrice

@thanhlmm Yeah, probably we can make it configurable and do something like baseValue: { type: 'price', price: number } for now? In the future, if we'll decide to add new type of baseline value we can easily without a breaking change add it.
Also, I think it should be a different chart type with their own options (not extending the current one like line or area). Just to make it clearly and explicitly.
What do you think?

Agree on both of your ideas

Closed in #813


How do I use this in reactjs?

Can you please provide a new or existing example of using this with reactjs and outputting the art to the console? Currently I have a static txt file which contains ascii.

This library produces terminal encoded ascii art using ansi codes ( https://en.wikipedia.org/wiki/ANSI_escape_code ) expanding this to work with html styles is a pretty major task (but one I'd love someone to pick up). Currently I'm working on support for ansi256 which lays the groundwork for supporting ansiart and after that petscii(these goals support other input formats, rather than display formats). My main priority is support for the existing standards and formats. It would be cake to plug this library into ansi-to-html ( https://www.npmjs.com/package/ansi-to-html ) or strip-ansi ( https://www.npmjs.com/package/strip-ansi ) to get what you want though (though maybe questionable to do all that work, transfer the image, work in canvas, transform it to ascii, then strip ansi codes (and not save any of it) for what is ultimately displayed as text).

Are the ANSI codes the same, just different escape sequences in the terminal vs browser?

There are no ansi codes in the browser. Usually (in the browser) people want span-wrapped characters or ansi-free art, which is why I suggest the modules above.

The next major release (3.0) will emphasize a webcomponent to do all the browser interaction as well as introducing some new functionality. Until then, the above still applies.

So I've long been recommending other libs for converting to HTML, however given the other libs are all using regex, that can lead to security issues. So instead, I'd just offer a simple stopgap:
var ansi = reuire('ascii-art-ansi');
var Color = reuire('ascii-art-ansi/color');
module.exports = function(str){
    return ansi.map(str, function(chr, codes, rowcol, pos, shortcircuit){
        if(chr === "\n") return '
';
        var foregroundList = codes.filter(function(code){
            return ansi.is.it.foregroundcolor(code);
        });
        var backgroundList = codes.filter(function(code){
            return ansi.is.it.backgroundcolor(code);
        });
        var foreground = foregroundList[foregroundList.length-1];
        var background = backgroundList[foregroundList.length-1];
        var style = '';
        if(foreground) style += ' color: '+Color.value(foreground)+';';
        if(background) style += ' background-color: '+Color.value(background)+';';
        if(chr === " ") return ''+" "+'';
        return ''+chr+'';
    }, true);
};

This will use a single pass scan to convert, respects background and foreground and should have a better performance with respect to long strings.

webcomponent support has landed, so closing this out... you are still welcome to use ascii-art programmatically, though.


data-toggle on two actions

For default is impossible set data-toggle for tooltips (on hover) and data-toggle for modal/popover/tab/dropdown (on click) events on one DOM element
To separate events "on hover" and "on click" i offer change default "data-toggle" attribute on "data-toggle-hover" and "data-toggle-click"
It will be obviously

Agreed - it was possible with 2.x and 3.x to have elements that have a popover/tooltip as well as having a click event to trigger a modal. I used rel="tooltip" or rel="popover", and then data-toggle for modals.

I think a better solution is to change the selector in Bootstrap's dropdown.js
from
[data-toggle="dropdown"]
to
[data-toggle~="dropdown"]
See ref: MDN: Attribute Selectors

Closing as stale and as a won't fix.


Detected 770 messages but deleted 0 message

I am trying to delete messages about 20 months ago(2018.02). When I press 'Start' button, result says there are 770 messages but deletes 0 message. I scrolled to that message and tried again. Same thing happened.
In this case, I didn't set 'Range' option. But When I set 'Range' option starting from very first message I've sent to last message I've sent, It stops to delete message at 26th deletion, so #23 might be related to.
Started at 2019. 11. 22. 오전 12:44:29
authorId="REDACTED" channelId="REDACTED" afterMessageId="REDACTED" beforeMessageId="REDACTED" hasLink=false hasFile=false
Total messages found: 704	(Messages in current page: 25, Author: 25, System: 0)	offset: 0
Delete delay: 100ms, Search delay: 100ms	Last Ping: 681ms, Average Ping: 681ms
Estimated time remaining: 0h 9m 12s
Waiting for your confirmation...

Total messages found: 704	(Messages in current page: 0, Author: 0, System: 0)	offset: 0
Delete delay: 100ms, Search delay: 100ms	Last Ping: 301ms, Average Ping: 277ms
Estimated time remaining: 0h 4m 28s
Ended because API returned an empty page.
Ended at 2019. 11. 22. 오전 12:44:40! Total time: 0h 0m 10s
Delete delay: 100ms, Search delay: 100ms	Last Ping: 301ms, Average Ping: 277ms
Rate Limited: 0 times. Total time throttled: 0h 0m 0s.
Deleted 25 messages, 0 failed.

I get this exact issue as well. It finds all my messages but it just stops
Ended because API returned an empty page.
same as the above user

Having this issue as well.

I also starting hitting this issue. Maybe the API was updated so we need a fix?

it seems as though they are rate limiting by changing the search results, notably making the first page blank.
has anyone been able to figure out the endpoint called when scrolling through pages in the search history on the official client? i believe that there just needs to be another conditional inside of recurse() to handle the situation of no results but total > 0

They announced in their changelog, that now you can search by oldest. They could also have changed something else in there.
maybe this new sorting option could be also used to  delete messages more efficiently.

Someone opened a pull request #25, but it doesn't look right, because it seems that there's no end condition now, and it will run forever, until you tell it to stop.
it seems that this line for some reason is triggering too soon.
https://github.com/victornpb/deleteDiscordMessages/blob/3835fe7864070c118e37a8fd7fcd1a5dc4b32e9c/deleteDiscordMessages.js#L273

your 'offset' isn't increasing, so the 'page' is always the first one.
open fiddler and check the request when you change the search page, the 'offset' increases by 25 everytime.
all i did, cuz i needed a fast fix and didn't care about it being perfect or permanent, was to check if the page was empty like u do, and sum 25 to the offset, so it goes to the next page.

to permanent fix it, just figure out what is the max offset you can go, and if the offset goes higher than it, return and close it, else, keep adding to the offset.

@zyhp I'm sorry, but I'm not as experienced as you.  Would you please explain what you did in simpler terms so I can get a temporary fix?  I'm running into this same error on a particular DM I need to deal with.

look at the changes he made to the code. he only changed two lines
in the exit condition (api gives empty page) he changed it so it will not end(), but will instead add 25 to the offset and call recurse() again.

I feel like a complete idiot, and I'm sure I'm seen as that way, but I don't understand what lines were changed.  I am so sorry, I just have zero programming experience.  Would someone please be so kind as to give me something to paste and tell me where to paste it?

https://github.com/victornpb/deleteDiscordMessages/blob/e2ee9c30867554d70bf3562370ea3ce4f571ffe8/deleteDiscordMessages.js
this is a link to zyhp's pull request.
paste his pull request instead of the current version.
it is IMPORTANT that you watch this thing work. when you get lots of empty results you MUST refresh the discord page to stop the script. hammering the api like that is very noticeable and very bad for your account

i will see if i can push a solid fix later, as soon as i have time again i will take a look.

Ah, this is working @nacorv .  Thank you so much!  So very, very much!

do not leave it unattended. stop it the moment you get a couple empty results in a row.
it is important to realize the script can lead to account termination even when it is working correctly.

Gotcha.  It hit that point and I stopped it.  Should I wait X amount of time and start it again?

if there are still messages in the dm then it is not done
the issue i am referring to is when you let it run after the last message is deleted. it is safe to run until then.

Oooh, that's odd.  It got a couple of page errors, so I stopped it, closed Chrome, re-opened it, and started up again.. and it was just empty page errors one after the other, so I stopped it again.  There are still many messages in the thread.

Gave it a few minutes and tried again and it's working.  Seriously, thank you all so much.

your 'offset' isn't increasing, so the 'page' is always the first one.
open fiddler and check the request when you change the search page, the 'offset' increases by 25 everytime.
all i did, cuz i needed a fast fix and didn't care about it being perfect or permanent, was to check if the page was empty like u do, and sum 25 to the offset, so it goes to the next page.

The way I wrote it, it was supposed to keep calling the first page, because as you delete messages, more and more messages gets shifted to the first page, so I only had to use the offset to skip messages that were system messages. It seems that the API no longer behaves like this.
I'm just too busy atm so I can't work on this rn, but I'm willing to accept pull requests once a more robust algorithm comes up.

The last adjustment seems to make it work again. Good work!! Performance is pretty poor, but it does what it suppose to do: delete all messages :)

                if ( (offset * 25)  > grandTotal) {
                    log.warn('Ended because API returned an empty page.');
                    return end();

                }

                log.debug(`Cur offset ${offset} : total  : ${total}  ${grandTotal}`)
                // Forcefully increase offset owo
                offset = offset + 25;
     			return await recurse();

            }

This one should work.. and stop hopefully

I did some testing and it seems that discord is using 2 different search endpoints. I think I got it behaving just like the discord app. I ran a test on both DM channel and a Server (guild) channel.
The new endpoint for searching server channel messages requires you to pass a guildId, so I had to an extra field for that also. The good thing is that it only took me a few minutes.
And there's no need to increase the offset manually, as it would cause issues with system messages #15.

Test
Started at 12/1/2019, 5:11:30 PM
authorId="REDACTED" guildId="REDACTED" channelId="REDACTED" afterMessageId="REDACTED" beforeMessageId="REDACTED" hasLink=false hasFile=false
Total messages found: 132	(Messages in current page: 25, Author: 25, System: 0)	offset: 0
Delete delay: 100ms, Search delay: 100ms	Last Ping: 371ms, Average Ping: 371ms
Estimated time remaining: 0h 1m 2s
Waiting for your confirmation...
OK
0.76% (1/132)	Deleting ID:REDACTED REDACTED (REDACTED): REDACTED
1.52% (2/132)	Deleting ID:REDACTED REDACTED (REDACTED): REDACTED
2.27% (3/132)	Deleting ID:REDACTED REDACTED (REDACTED): REDACTED
3.03% (4/132)	Deleting ID:REDACTED REDACTED (REDACTED): REDACTED
Being rate limited by the API for 39ms! Adjusted delete delay to 139ms.
 Adjusted delete delay to 181ms.

Total messages found: 5	(Messages in current page: 1, Author: 1, System: 0)	offset: 0
Delete delay: 181ms, Search delay: 100ms	Last Ping: 278ms, Average Ping: 273ms
Estimated time remaining: 0h 0m 2s
101.52% (134/132)	Deleting ID:REDACTED REDACTED (REDACTED): REDACTED
Searching next messages in 100ms...
Total messages found: 0	(Messages in current page: 0, Author: 0, System: 0)	offset: 0
Delete delay: 181ms, Search delay: 100ms	Last Ping: 256ms, Average Ping: 266ms
Estimated time remaining: 0h 0m 0s
Ended at 12/1/2019, 5:12:48 PM! Total time: 0h 1m 17s
Delete delay: 181ms, Search delay: 100ms	Last Ping: 256ms, Average Ping: 266ms
Rate Limited: 2 times. Total time throttled: 0h 0m 0s.
Deleted 134 messages, 0 failed.

incredible. thanks for the fast fix

@nacorv thank you for all the feedback.
I'll let more people manifest to see if the last release fixed for them before closing this issue.
Testing is sorta hard, because I have to first generate hundreds of messages, and sometimes it works on my end.
I noticed the search results sometimes are not "realtime" and have some kind of caching, which sometimes causes issues, because as we are deleting messages, we are also changing the search results.
I don't know exactly what kind of architecture discord uses to index messages, but it is very likely that this is a computationally expensive process, so they probably have some sort of speed layer combined with a long term layer. To circumvent this I could change the algorithm to first discover all messages and then start deleting them, but there are also trade offs in doing that.

they use elasticsearch on the backend for this. I'm not very familiar with how that works but i believe that mass deletions do cause changes to the historical index.
additionally, bot accounts do deletion differently. they are only limited to 2 weeks of history and can either delete individual messages, ranges of them, or the bulk deletion endpoint which throws them away in groups of 100(?). i think the conservative limits of bot accounts points toward the resource intensiveness of mass search and deletion on discord's end.

New release fully fixed it for me, I just deleted thousands of messages on different servers. Thanks for your work.


Why no _stream->flush(); used?

I had issues with the slave, It response so fast the Master didn't put the MAX485 in receive mode yet, missing the first byte of the slave sending.
I changed:
"delayMicroseconds((len + 8 + 2) * _microsPerByte); //  + 2 to be sure..."
in
"void RS485::send(uint8_t receiverID, uint8_t msg[], uint8_t len) {}"
to
"_stream->flush();"
Works perfectly on 2 baud rates, master and slave. Verified on a DPO2024B. Why are timers used?
The master is a Arduino Nano ESP32 with a MAX3471CUA+T.
The slave is a Arduino Zero with a MAX3471CUA+T.
Finally a nice layer library for RS-485. Thanks for the lib.
with "delayMicroseconds((len + 8 + 2) * _microsPerByte); //  + 2 to be sure..." (the blue is the _sendPin)

with "f_stream->flush();"

Thanks for this issue.
I used delayMicroseconds() to be sure to wait long enough - as throughput can be calculated.
Apparently the latter part (about calculation) is an assumption on my side as I assumes a certain throughput.
I will check the proposed change flush() as it looks like a more robust way to handle it.

Finally a nice layer library for RS-485. Thanks for the lib.

Thankyou and you're welcome!

had a quick look and it looks good. There are 2 more places to patch the code.
It could imply that
  //  baudRate must match Serial baudRate
  //  micros are needed before RS485 stream may be reset
  //  to (default) receiving mode.
  void     setMicrosPerByte(uint32_t baudRate);
  uint32_t getMicrosPerByte();

is not needed anymore thereby simplifying the code.

Will test Asap.

Created a develop branch to prepare version 0.3.0 with your proposal.
Build-CI is running.

PR created, build runs.

Works perfect!
I saw you removed the timed versions, but it could be "flush" doesn't work on other devices as I tested.
I tested it on 38400 and 57600 baud.
Thank you!
overview

zoomed in switching from tx to rx

zoomed in last byte from slave sending, hex

zoomed in last byte from slave sending ascii

Works perfect!

good to hear,

but it could be "flush" doesn't work on other devices

The build-CI test it on 5 platforms so I expect it will work.   (see .arduino-ci.yml)
- uno
# - due
# - zero
# - leonardo
- m4
- esp32
- esp8266
# - mega2560
- rpipico
If flush is not supported, users should report this, and I will search for a new solution (conditional code)

NOte: I cannot view the images in detail => errror
This private-user-images.githubusercontent.com page can’t be found
with a large URL,

I will merge the PR asap.


Add numpy version

Update unittest for new test that is inconsistent.
Note: the unittest fails when num_new_cs = 1, so this has been updated to choose a number between 2 and 4 instead of 1 and 4.

Do you know why the error is occurring when num_new_cs==1? I see that it's not that the test fails when num_new_cs==1, it's that an exception is raised in demo_np.py:
Traceback (most recent call last):
  File "C:\Users\circleci\repo\tests\test_integration.py", line 119, in test_same_bqm
    bqm_np = demo_numpy.build_bqm(potential_new_cs_nodes, num_poi, pois, num_cs, charging_stations, num_new_cs)
  File "C:\Users\circleci\repo\demo_numpy.py", line 86, in build_bqm
    q2 = quad_col[dist_mat != 0]
IndexError: boolean index did not match indexed array along dimension 0; dimension is 90601 but corresponding boolean dimension is 903

So it seems like something needs to be adjusted in the demo_numpy.py formulation, if num_new_cs==1 is a valid argument.

Also, I see that in demo_numpy.py, when num_new_cs>1, the dist_mat calculated for constraint 2 seems to be ignored/overwritten by constraint 3. I'm not familiar with this formulation, so I wanted to double check with you that the new dist_mat equation for constraint 3 also takes constraint 2 into consideration. (My assumption is that it does, since the unit test you wrote passes in this case)

The distance matrix getting written over is correct because it's a different distance matrix each time - I just reused the same object.

@hhtong this should be resolved now.


Disable unused import warnings for haxelibs by default

Not good for libs like Nape:

Would be nice if they could still be enabled on request though via some config flag, if you're the one developing the lib.

Doesn't it only report this for open files anyway?

I might have been in a Nape file briefly via Go To Definition, but they warnings definitely didn't go away after that.

I'll look into this, maybe it's extension's job to clear diagnostics for closed documents.

Well, you don't want to clear anything if you do some sort of global diagnostics run, assuming that's a thing. But I also noticed errors/warnings sticking around too long, not sure how to approach this.

I guess this is covered by "haxe.diagnosticsPathFilter" now, which is limited to the workspace by default.


Nextflow SGE Job Names

By running qsub directly, names can be assigned to a job using -N.
How can SGE job names be configured by using nextflow.

The nextflow equivalent to -N should be the "tag" command.
See: http://www.nextflow.io/docs/latest/process.html?highlight=cpu#clusteroptions


[Bug]

Description
As mentioned in the web page https://docs.microsoft.com/en-us/xamarin/community-toolkit/views/shield
Shield have StatusTextColor property. But the property not present in the current nuget 1.0.2.
Steps to Reproduce

Create a new xamarin app.
Add Xamarin community toolkit nuget in the application. Add shield in the page
<xct:Shield
Subject="chat"
Status="on discord"
StatusBackgroundColor="SeaGreen"
StatusTextColor="White"
Margin="2,0" />

Expected Behavior
Have Status TextColor Property.
Actual Behavior
Property was not found in the type shield.
Basic Information

Version with issue: 1.0.2

Last known good version:

IDE:

Platform Target Frameworks:

iOS:
Android:
UWP:

Android Support Library Version:

Nuget Packages:

Affected Devices:

Workaround

Reproduction imagery

Reproduction Link

It will be available on the next release, for now you can use TextColor which will be deprecated in future

Yeah it was merged a bit too early :) 1.1 should be released soon. Sorry for the confusion


Added new directory structure

Description of Work
I know it is tedious, but please look through the code in detail and tell me if some places were harder to understand. It would help a bunch since this is supposed to be extendable code and we want users to be able to understand it easily and not struggle so much (like I did). Thank you.
I suggest checking out #93  and testing that, then, if that works, closing both PRs
Fixes #77
Added a new directory struncture in which functions are organized into modules and subdirectories. Prepared the way to extending the tool to use other minimizers outside mantid.
Testing Instructions

In the mantidpython terminal, run /example_scripts/example_runScripts.py .
Check if the output tables are as expected (i.e. produce the same results as master).

Notes:

EVS14188-90_processed Gaussian peaks 1 visual display page does not work. This is a known issue, check #92
The functions lack descriptions in the current state. They will be added in #88 , as discussed.

Tested and results as expected.
Re-packaging / re-structuring probably in the right direction - speak later about this

Every function gets a description in the next PR
Empty lines removed
Markdown file only requires little changes, I was planning to write some proper documentation though.


Only binary state for flap lock when can be four values??

The problem

The flap is either locked or unlocked, the flap supports locked, unlocked, in only, or out only.
On another note the lock state should also be able to be set, this can be done by sending {"locking":"{{ state }}"} to /api/device/{{ flap.id }}/control ... where state is 0 none, 3 locked, 1 out, 2 in.
Hub led brightness, curfew, and pet location can also be set, this is demo'ed at https://github.com/alextoft/sureflap
Environment

Home Assistant release with the issue: 0.104.3
Last working Home Assistant release (if known):
Operating environment (Hass.io/Docker/Windows/etc.): Docker
Integration causing this issue: Sure Petcare
Link to integration documentation on our website: https://www.home-assistant.io/integrations/surepetcare/

The PR including this is already opened as WIP


Fix BUILD.gn for Fuchsia platform build.

In order for the Fuchsia source tree to update its
version of SPIRV-Tools to a newer upstream, the
BUILD.gn needs to be slightly altered to take care
of the fact that it can be used with a different
GN //build set of rules and configs than the
Chromium one.
This is done by using |build_with_chromium|, already
defined by //build_overrides/build.gni, to guard
Chromium-specific statements.

Add a target to generate spirv-opt which is used by
Fuchsia to optimize shaders at build time for some of
its graphics libraries.

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

For the record, I've signed the CLA (multiple times). Does anyone knows why this is ignored? Thanks.

For the record, I've signed the CLA (multiple times). Does anyone knows why this is ignored? Thanks.

If you have signed it since it originally posed, you may have to click the link about re-checking it.
For me atleast, this often this occurs when I have set the patch author in git as a different account then my GitHub one. Make sure that the user.email in your .git/config is set to the account associated with your GitHub account. You may have to amend the patch to update the author.

For the record, I've signed the CLA (multiple times). Does anyone knows why this is ignored? Thanks.

If you have signed it since it originally posed, you may have to click the link about re-checking it.
For me atleast, this often this occurs when I have set the patch author in git as a different account then my GitHub one. Make sure that the user.email in your .git/config is set to the account associated with your GitHub account. You may have to amend the patch to update the author.

Thank you, that's very likely to be the cause for this problem. My github email uses a<EMAIL_ADDRESS>suffix to help filtering emails :-/ This explains why the rechecks didn't do anything.
I will have to to amend my patch then. Wow!

I totally understand and agree. Thanks and sorry.

I totally understand and agree. Thanks and sorry.

Does this PR need any changes, like the shaderc one did?

Yes, I'm preparing a patch. Sorry about that...

I think this still needs a fresh version with the correct author for the CLA check.

Ah yes, there was a typo in the ameneded author name in the latest commit (I used @google.cm instead of @google.com) and couldn't see it clearly. I was really puzzled why this wasn't working. I'll fix it. Thanks!


Important memory leak of v4l2-relayd service after each camera start

Hi dear developers,
Some time ago, I noticed an important memory leak of v4l2-relayd service on my Ubuntu 22.04.4 LTS laptop : a couple of GB after some video calls.
I decided to investigate using valgrind and found it comes from this lib.
I noticed memory is leaked each time camera is restarted.
==65931== 1,080 bytes in 2 blocks are definitely lost in loss record 5,731 of 6,137
==65931==    at 0x484DA83: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==65931==    by 0xA305045: icamera::CIPR::Command::Command(icamera::CIPR::PSysCommandConfig const&) (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA28BB49: icamera::PGCommon::createCommand(icamera::CIPR::Buffer*, icamera::CIPR::Command**, icamera::CIPR::Buffer**, int) (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA28BDAD: icamera::PGCommon::createCommands() (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA28C7A7: icamera::PGCommon::iterate(std::map<unsigned int, std::shared_ptr<icamera::CameraBuffer>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<icamera::CameraBuffer> > > >&, std::map<unsigned int, std::shared_ptr<icamera::CameraBuffer>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<icamera::CameraBuffer> > > >&, ia_binary_data*, ia_binary_data const*) (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA27FD91: icamera::PipeLiteExecutor::runPipe(std::map<icamera::Port, std::shared_ptr<icamera::CameraBuffer>, std::less<icamera::Port>, std::allocator<std::pair<icamera::Port const, std::shared_ptr<icamera::CameraBuffer> > > >&, std::map<icamera::Port, std::shared_ptr<icamera::CameraBuffer>, std::less<icamera::Port>, std::allocator<std::pair<icamera::Port const, std::shared_ptr<icamera::CameraBuffer> > > >&, std::vector<std::shared_ptr<icamera::CameraBuffer>, std::allocator<std::shared_ptr<icamera::CameraBuffer> > >&, std::vector<icamera::EventType, std::allocator<icamera::EventType> >&) (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA281851: icamera::PipeLiteExecutor::processNewFrame() (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA249A37: ??? (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA29032E: icamera::Thread::_threadLoop(icamera::Thread*) (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA015252: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
==65931==    by 0x4C16AC2: start_thread (pthread_create.c:442)
==65931==    by 0x4CA7A03: clone (clone.S:100)

==65931== 36 bytes in 1 blocks are definitely lost in loss record 2,892 of 6,137
==65931==    at 0x484DA83: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==65931==    by 0xA30470C: icamera::CIPR::Context::registerBuffer(icamera::CIPR::MemoryDesc*) (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA289916: icamera::PGCommon::createUserPtrCiprBuffer(int, void*, bool) (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA28A304: icamera::PGCommon::registerUserBuffer(int, void*, bool) (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA28B678: icamera::PGCommon::prepareTerminalBuffers(ia_binary_data const*, std::map<unsigned int, std::shared_ptr<icamera::CameraBuffer>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<icamera::CameraBuffer> > > > const&, std::map<unsigned int, std::shared_ptr<icamera::CameraBuffer>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<icamera::CameraBuffer> > > > const&, long) (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA28C5A2: icamera::PGCommon::iterate(std::map<unsigned int, std::shared_ptr<icamera::CameraBuffer>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<icamera::CameraBuffer> > > >&, std::map<unsigned int, std::shared_ptr<icamera::CameraBuffer>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::shared_ptr<icamera::CameraBuffer> > > >&, ia_binary_data*, ia_binary_data const*) (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA27FD91: icamera::PipeLiteExecutor::runPipe(std::map<icamera::Port, std::shared_ptr<icamera::CameraBuffer>, std::less<icamera::Port>, std::allocator<std::pair<icamera::Port const, std::shared_ptr<icamera::CameraBuffer> > > >&, std::map<icamera::Port, std::shared_ptr<icamera::CameraBuffer>, std::less<icamera::Port>, std::allocator<std::pair<icamera::Port const, std::shared_ptr<icamera::CameraBuffer> > > >&, std::vector<std::shared_ptr<icamera::CameraBuffer>, std::allocator<std::shared_ptr<icamera::CameraBuffer> > >&, std::vector<icamera::EventType, std::allocator<icamera::EventType> >&) (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA281851: icamera::PipeLiteExecutor::processNewFrame() (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA249A37: ??? (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA29032E: icamera::Thread::_threadLoop(icamera::Thread*) (in /usr/lib/x86_64-linux-gnu/libcamhal/plugins/ipu6ep.so)
==65931==    by 0xA015252: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
==65931==    by 0x4C16AC2: start_thread (pthread_create.c:442)

I plan to investigate a little bit further myself, please do not hesitate if you need more precisions :)
Best regards

Thank you @thomasarmel . Would you help attach the full valgrind report?

What was your test flow? When libcamhal is killed, valgrind will report many places leaked but I added num-buffers=5 to make it automatically exit after 5 frames. In this case, valgrind only reported 3 leak points which are all in libia_cca.so.

After capturing a few frames I sent a SIGINT to the process, in order to ensure Valgrind exited correctly (which is not the case using SIGKILL).
But anyway the memory leak is obvious regarding memory consumption of the service.
My OS is Ubuntu 22.04.4 LTS.
My laptop is a Dell Precision 5480.
Camera format is NV12, 1280x720, 30 fps.

What is the application are you using?

For the valgrind report I shared it was google-chrome, but it works with any application that uses the camera.

I looked into our source code and did some tests on my side. I found that:

The memory leakages in your valgrind report are all handled in normal exiting flow of LibCamHAL. When sending SIGINT to valgrind, the destructors to free resources are not run so valgrind will definitely report it as lost.

When set num-buffers=10 to let gstreamer exit normally, we noticed some minor leakage in libia_cca, which has already reported by another customer and fixed. The fix should be applied in next release, however I don't think it can cause such a significant memory leak.

Internally we directly use gst-launch-1.0 command to run camera preview. Our internal stress test shows that memory consumption keeps ~ 170 MB at 720p 30fps during 100 minutes, so I don't think 1.5 GB memory consumption comes from the components below gstreamer.

I tested with v4l2-relayd + Cheese. With first several times opening, v4l2-relayd consumed from ~170 MB to over 800 MB.

Concluding from the above, the memory leakage should happens in the v4l2-relayd or v4l2loopback. Canonical owns v4l2-relayd and v4l2loopback now, so I think we need their help to look into this issue.

Hi,
Ok nice thanks for your support!

Could you execute sudo gst-launch-1.0 icamerasrc ! autovideosink to check if the memory leakage still exists?

Hi,
It seems that v4l2-relayd doesn't leak when I execute this command.


Added suport for Discord as well as custom endpoints.

This pull request allows you to register endpoints instead of using the default one with environment variables.
Examples:
"AUTH_VIEW_PATH": "/authorize",
"CALLBACK_VIEW_PATH": "/redirect",

I also added support for Discord and added .vscode to gitignore.

Thank you for this, I'll definitely pull in the discord provider.
I'll have to think a little on the customized routes, it doesn't really seem necessary but if I decide to pull it in I may go another route so it's not pulling from the env and a user can pass it in from whatever method they want.

Hi, when you created this PR @devKurieita did you enable "Allow edits from maintainers"?
I've updated the labels for you to be included in hactoberfest (in case you are interested) and just want to make a few changes before merging + publishing a new version. I am so sorry for my delay - I've been traveling a bit this last month!


Update example_app.md.erb

Description

Fixed 2 typos in one sentence (an extra article and a wrong preposition spelling).
Related Issue

Motivation and Context

I came across these typos while reading the article and thought that it was a good chance for me to start contributing.
How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Thanks!

I didn't expect it would happen so fast. Cool!
Not at all!

Thanks all!
On Mon, Sep 2, 2019 at 1:29 AM Dmitriy Beglov<EMAIL_ADDRESS>wrote:

I didn't expect it would happen so fast. Cool!
Not at all!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/codetriage/codetriage/pull/1064?email_source=notifications&email_token=AAAOSYAK6DQJIG22UZHYZU3QHQCXTA5CNFSM4ISXTN6KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5UIBVY#issuecomment-526942423,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAOSYEKSNF72S3GBL3QZF3QHQCXTANCNFSM4ISXTN6A
.

--
Richard Schneeman
https://www.schneems.com


Improving of trade arrows

I'm really lack of feature to have order history from begin (this can be trade arrow itself) to finish (cross maybe?) with dotted line from begin to end and customized text label for trade(profit/loss, take profit/stop loss ratio, name of robot executed this trade).
Could you add this or any hints on how this can be done? Sad that you haven't forum for project to ask questions :)

If you have an array of trades representing your order history, you can use techan.plot.tradearrow.
There is an example in the gallery: http://bl.ocks.org/andredumas/3c0eefdd77a6380b1a35
Define the trade arrows:
                var tradearrow = techan.plot.tradearrow()
                          .xScale(x)
                          .yScale(y)
                          .orient(function (d) {
                              return d.type.startsWith("buy") ? "up" : "down";
                          });
                          // .on("mouseenter", enter)
                          // .on("mouseout", out);

Append the trade arrows to the chart:
                ohlcSelection.append("g")
                    .attr("class", "tradearrow");

Update the trade arrows with your custom payload (P/L, agent and so on):
                    myTrades = trades.map(function (trade) {
                        return {
                            date: new Date(trade.openTime),
                            type: trade.currentUnits > 0 ? "buy" : "sell",
                            price: trade.price
                        };
                    });
                    svg.select("g.tradearrow").datum(myTrades).call(tradearrow);

Enjoy. :)

albertosantini - thanks for the explanation. I was wondering if there is an easy way to change the styles of the arrows. Like, instead of the arrow shape, I want to show some other image/symbol? Is it possible?

@manishpgupta I don't think so.
SVG arrow is defined here:
https://github.com/andredumas/techan.js/blob/fcb12dd2f9c0c84dca7c594801959af5b51d5969/src/svg/arrow.js


Fix Leiningen artifact template

The artifact template for Leiningen has an extra } that creates incorrect dependency information.
This pull request makes the following changes:

Removes the extra } from the Leiningen artifact template string

Before screenshot:

After screenshot:

@lambdahands thanks for the contribution! Technically we need you to sign the CLA but we'll likely merge it either way.

@DarthHater Just signed it - thanks for the fast response! 😄

Fixed in: 1bf4b30c9d0a02f66c59491bc7a143793e49b017


jsonEncode is converting double to int when used in Web

In the Web, jsonEncode is converting double to int when the fractional part is zero.
Given that Dart/Flutter is being used in multi-platform projects, this behavior becomes problematic for serializable data classes as shown in the example below:
// DartPad - Based on Flutter 1.26.0-17.8.pre Dart SDK 2.10.4
import 'dart:convert';

void main() {
  final data = Data(x: 3.0, y: 3.1);
  final jsonString = data.toJson();
  print(jsonString); // prints {"x":3,"y":3.1}
  // works on web, throws in iOS/Android when trying to decode the printed string above.
  final dataFromJson = Data.fromJson(jsonString);
}

class Data {
  final double x;
  final double y;

  Data({this.x, this.y});

  Map<String, dynamic> toMap() {
    return {
      'x': x,
      'y': y,
    };
  }

  factory Data.fromMap(Map<String, dynamic> map) {
    if (map == null) return null;

    return Data(
      x: map['x'],
      y: map['y'],
    );
  }

  String toJson() => json.encode(toMap());

  factory Data.fromJson(String source) => Data.fromMap(json.decode(source));
}

Is there a way to keep the fractional part when converting a double to json?

No.
On the web there is only one 1 value, not distinct integer 1 and double 1.0 values.
The JSON encoding does not provide a way to specify a format, so it has to pick a representation for the value 1 blindly. It choses 1 because that can still be parsed as both int (using int.parse) and double (using double.parse) at the other end.
The default JSON decoder will parse it as an int because that's what it does.
I recommend treating all JSON number values as having type num. The JSON format is a text format, it does not specify the meaning of a numeral. Each parser can do what it wants. So, when you get a number our, you should convert it to what you want (using .toDouble() if you want a double, or .toInt() if you want an int).
So:
return Data(
      x: map['x'].toDouble(),
      y: map['y'].toDouble(),
    );

Don't assume anything about the source or the representation, because the JSON might have been generated in a completely different language, or it might have been read and re-written by a third-party tool. All JSON promises is that it's a numeral.

Thank you @lrhn for the detailed response and recommendations.


Some questions about the backbone model

I noticed that the backbone model used for the regularization based GNNs is GCN. While GRAND seems to use a mixed-order propagation backbone. Is this a fair comparison? I wonder if GRAND benefits a lot from the large receptive field.

GRAND adopts various techniques to promote the performance on this task. Mixed-order propagation is one of the components of GRAND, which can reduce over-smoothing for two reasons: 1) focusing more on local information, 2) removing non-linear transformation between layers.  Employing this propagation to perform random data augmentation is also a contribution of this work. And the results of other regularization methods are directly taken from their original paper for convenience. I think combine other regularization methods (e.g. mixup) with this propagation rule is a good research direction, you can have a try if you have interests :).

GRAND adopts various techniques to promote the performance on this task. Mixed-order propagation is one of the components of GRAND, which can reduce over-smoothing for two reasons: 1) focusing more on local information, 2) removing non-linear transformation between layers.  Employing this propagation to perform random data augmentation is also a contribution of this work. And the results of other regularization methods are directly taken from their original paper for convenience. I think combine other regularization methods (e.g. mixup) with this propagation rule is a good research direction, you can have a try if you have interests :).


nginx.conf template in install docs has an alignment typo >= v0.6

Up to version 0.5 the beginning of the embedded nginx.conf at app/docs/0.5.x/configuration.md looks like this:
nginx: |
  worker_processes auto;
  error_log logs/error.log error;
  daemon on;
   ...

...and from 0.6.x onwards it looks like this:
nginx: |
worker_processes auto;
  error_log logs/error.log error;
  daemon on;

...note the misaligned worker_processes line in the latter version which causes a yaml-parsing error when starting kong.

Thanks, just fixed and deployed.


The twin_sticks template fires while clicking menu items

It would inform me very much, when someone would add code that grabs away the clicks made in the menu UI. I suggest the formost items should be called for the clicks first and should stop further propagation like in fullblown GUIs.

Will move this issue to the repository at https://github.com/armory3d/armory_templates, marking this one as deprecated and intended for b27 usage.


Project agenda button has wrong dropdown menu

The projector button for agenda has no option any more to project main items only or all sub items... And if you have only one projector you get the default projector in the drop down list.
Maybe it's lost while a merge conflict?

@emanuelschuetze If there are no subitems, this option is hidden from the user.

@FinnStutzenstein Yes. But if you have only one projector and no subitems the drop down menu should NOT displayed for agenda project button.


export data_dir of Test.pm, which was forgotten in #5928

As commented already there 3 days ago.

Merged.
fa92c69aafc40a87c9b0dded9c365348a8ac4b33 export data_dir of Test.pm, which was forgotten in #5928


Fix request method

-
-

Decisions
Fix request method for updating some entities.

@3rdvision when you do an "auxiliary" PR because of an issue you're working on please link that issue, so that we better understand where is this coming from.

@3rdvision when you do an "auxiliary" PR because of an issue you're working on please link that issue, so that we better understand where is this coming from.

When I opened this PR there was no auxiliary PR to relate. This is a bug fix, currently the methods to update the entities client iteration and project don't work.
Now there is https://github.com/ripe-tech/ripe-registry-ui/pull/15 which will use updateIteration.

@3rdvision when you do an "auxiliary" PR because of an issue you're working on please link that issue, so that we better understand where is this coming from.

When I opened this PR there was no auxiliary PR to relate. This is a bug fix, currently the methods to update the entities client iteration and project don't work.
Now there is ripe-tech/ripe-registry-ui#15 which will use updateIteration.

That's correct, but it only means the original issue is https://github.com/ripe-tech/ripe-registry/issues/1 . That's what I meant by "the issue you're working on".


Write a TypeScript program to convert standard date format to julian date and vice-versa

Description
Write a TypeScript program to convert standard date format to julian date and vice-versa
A Julian date is a way of displaying a date that combines the current year with the number of days since the beginning of the year. For example, January 1, 2007 is 2007001, and December 31, 2007 is 2007365.
The first two digits of a Julian date represent the year, and the last three digits represent the number of days since the beginning of the year. For example, 21-001 represents January 1, 2021, and 22-165 represents June 14, 2022.
Example
Input  : 2023-06-10
Output : 2023160

Contributed by - @magar51

How to contribute

Comment !assign to assign this issue to yourself
Fork this repository
Create a new branch
Save the solution in program/program/convert-standard-date-format-to-julian-date-and-vice-versa/ConvertStandardDateFormatToJulianDateAndVice-versa.ts
Commit the changes
Create a pull request

!assign

!assign


Backward compatible behaviour for SQLConditionalExpression::getJoins

Patch for https://github.com/silverstripe/silverstripe-framework/pull/8918 to keep backward compatible behaviour.
Related: https://github.com/silverstripe/silverstripe-postgresql/issues/95

Added a test for that yet (sorry it slipped my mind).


Clipvalue not working as expected when using AdamW and SGDW optimizer - destructive updates destroy model weights

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Windows 10
TensorFlow version and how it was installed (source or binary):2.9.1
TensorFlow-Addons version and how it was installed (source or binary): 0.17.1
Python version: 3.10
Is GPU used? (yes/no): Yes

Describe the bug
DecoupledWeightDecayExtension
https://github.com/tensorflow/addons/blob/b2dafcfa74c5de268b8a5c53813bc0b89cadf386/tensorflow_addons/optimizers/weight_decay_optimizers.py#L25
Computes and applies its gradients without any reference to the loss.  Which is fine and intended - that's why it's called decoupled.  The problem is that it also does not respect clipvalue (and clipnorm) because of this.
Code to reproduce the issue
https://colab.research.google.com/drive/1G3rJMs_V6cI6TkHDgXCyQOapQEcuCWeW?usp=sharing
EDIT: Playing around a bit more, there's definitely a bug, but I'm not sure my explanation of it is the true one.  The problem doesn't seem to arise except for large (>1) values of weight_decay.  However, I can tell you that in real practice I am getting very poor results as well as nans while trying to use AdamW even with a clipvalue in place that should prevent any such nans from occurring.  I'll investigate further as I have time.
EDIT EDIT:
Removed the whole part where I speculated on the cause, I was wrong and misunderstood how the weight decay is implemented.  Read the paper linked on the doc page more closely and figured out the real culprit, which is not what I thought, it's just that the weight decay here is literally multiplying every single weight by (1-wd) every epoch.  At the very least, this is poorly documented - you can only figure it out by reading the linked paper, when it should be right on the docs page as it's pretty important to know.  Additionally, there is no check for invalid weight_decay values (e.g. >1).
One of the first results when someone googles AdamW and wants to learn about it is https://www.fast.ai/2018/07/02/adam-weight-decay/ which recommends a value of .3 for the weight decay parameter.  Now, again a closer look reveals that they are multiplying this number by the learning rate - which is also apparently the case in torch implementation https://pytorch.org/docs/stable/generated/torch.optim.AdamW.html
This is, I suppose, convenient if you want to have your decay scale with some learning rate schedule without doing any extra work.  By the same token, inconvenient if you don't.
In any case, AdamW presents itself as an optimizer, and clipvalue on an optimizer is supposed to mean that gradient updates larger than the clipvalue don't happen.  Nonetheless, the weight decay on AdamW can certainly make gradient updates in excess of the clipvalue.  I understand why now, but I do think there should be some additional warning/documentation on this, to make it completely clear up front that the weight decay step is completely independent and not affected by anything you might usually think affects an optimizer (e.g. learning rate, clipvalue, etc.), even though it is all being done by an optimizer class object.

AdamaW Is now in Keras if you want to add something to the doc you need to do It there:
https://github.com/keras-team/keras/blob/master/keras/optimizers/optimizer_experimental/adamw.py

TensorFlow Addons is transitioning to a minimal maintenance and release mode. New features will not be added to this repository. For more information, please see our public messaging on this decision:
TensorFlow Addons Wind Down
Please consider sending feature requests / contributions to other repositories in the TF community with a similar charters to TFA:
Keras
Keras-CV
Keras-NLP


Bugfix/refactor

replace try macro with ?
clean compiler warning

@brson can somebody review that?

Oop sorry for the delay, thanks for the PR!


Use of deprecated Well#sample

Sample on well is deprecated as wells can contain multiple samples, and referencing a single sample is ambiguous.
https://github.com/sanger/sequencescape/blob/6dc4fe9a8491b4e2f2a65d8c332c27a8afe0ab86/app/helpers/plates_helper.rb#L17

Handling as part of asset refactor

Fixed in:
https://github.com/sanger/sequencescape/commit/53218c107374e10919172743728d0c1d44d9ced5


[wip] National minimum living wage

In general this looks pretty good to me, but as you requested, I'll add some comments with suggestions about how it might be good to organise the commits.

Regarding the regression tests, I think we've used two main approaches:

This is the preferred approach, but it's not always realistic e.g. if the regression tests for the flow take too long to run. Update all the relevant regression test files after every commit, so that the regression tests all pass after every commit. If your commits are already small enough, then the changes to the regression test files shouldn't be too big and it should be easy to see what's going on.

This is a variation of approach 1. If one or more of your commits is quite big and you can't see a way to make it smaller while still keeping it atomic, then I think it's reasonable to split the related changes to the regression test files into one or more separate commits immediately following the commit where the actual change was made. This should make it easier for someone looking at the diffs to see what's going on.

If the tests take too long to run to make either approach 1 or 2 feasible, I think it's reasonable to group all the changes to the regression test files into one or more commits which appear after the commits containing all your actual changes. The problem with this is when there are a lot of changes it's hard to know whether all the changes were intentional.

Note that we haven't used approach 1 or 2 much recently, because most of the changes have been to flows whose regression tests take a long time to run e.g. marriage-abroad.

I hope that helps. Let me know if you have any questions. I should be online, at least for a while, first thing tomorrow (Thursday).

Hi @floehopper,

Thanks for the review of this branch, and for being so responsive when I pinged you out of normal working hours.
Unifying commits national living wage into National Living Wage: Good call. :+1:
Agree on option 1 as the preferred for regression tests and commits; not sure if I will be able to do it for this PR considering the deadline of 1st April; I guess I will try to do 2), and follow 3) if I see any risks with the deadline.
Commits granularity: I am happy to break them up. I’m used to squash them into bigger commits with detailed descriptions, but seems like a good idea to follow the same approach you are following in other PRs. Thanks for sharing your suggestion about the way to break them up, by the way.
I will try to address the other comments are part of the remaining work.

Again, thank you for the early review

@pmanrubia:
My suggestions are all inevitably somewhat subjective, so please feel free to do things differently if you're short of time or you can see a better way.
I'd suggest closing this PR now that it's served it's purpose.

Thanks for your suggestions @floehopper.
They have been very valuable. I am trying to address all of them.
Closing this PR as it was intended for getting feedback.


Android App crash: Fatal signal 11 (SIGSEGV), code 1

Description
When I run the app:
react-native run-android
On physical devices the application sometimes (just sometimes) just closes itself without visible error.  while in Android Emulator it works okay.
In android studio Logcat, as error throws me this when the app crashes:
2020-08-26 18:17:22.063 21369-21417/com.geslubapp A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 21417 (mqt_js), pid 21369 (com.geslubapp)

React Native version:
react-native: 0.62.2
react: 16.11.0

For me it was because Realm.js Issue

How do you know it's not a react native problem。

How do you know it's not a react native problem。

For me it was because Realm.js Issue

How do you know it's not a react native problem。

For me it was because Realm.js Issue

How do you know it's not a react native problem。

How to debug such an error?


Improved boot2docker version detection

Mount boot2docker iso into a known path instead of trying to find it in
/Volumes
Also fixes that the previous code broke when some volumes in /Volumes were not accessible.

@johanneswuerbach LGTM.


Please provide installation details especially in Docker environment

This plugin is available in the 2.1.0-alpha.1 which you can find here: https://hub.docker.com/r/kong/kong/tags?page=1&name=2.1.0
If you're trying to install this plugin in a earlier version of Kong follow the instructions outlined here


Invalid metric name in DSE

When used with DSE, the new metrics endpoint generates one metric that has a dot in its name, making it invalid:
2023-01-20T09:19:48.789766Z ERROR source{component_kind="source" component_id=cassandra_metrics component_type=prometheus_scrape component_name=cassandra_metrics}: vector::internal_events::prometheus: Parsing error. url=http://localhost:9000/metrics error=WithLine { line: "# TYPE com_datastax_bdp.type_performance_objects_name_cql_slow_log_metrics_queries_latency histogram", kind: ExpectedSpace { input: ".type_performance_objects_name_cql_slow_log_metrics_queries_latency histogram" } } error_type="parser_failed" stage="processing" internal_log_rate_limit=true

We'd need to rename it appropriately.

Actually, in this case the error is not a metric with a dot in the name, but an extra # TYPE, which the Victoria Metrics does not understand.

I was able to get things to work once I filtered out any metric matching com_datastax_bdp\\..*


Include md output: spfx commands

Related to #3754

Update the documentation to include the md output for all the commands under the service:

spfx documentation location

You can reference the commands planner plan and planner bucket. They are already contain the Markdown reponse in their documentation.
For more information what guidelines to follow, be sure to check out the epic issue #3754

Can I work on this?

Please do @nanddeepn!


Typescript ignores prototype of object literals assigned to index signatures

TypeScript Version:  3.8.3 & nightly 2020-04-14

Search Terms:

Object.create
index signatures
prototype

Code
// This should not be possible but is:
const unsafeStringMap: { [key: string]: string } = {};
const notActuallyAString: string | undefined = unsafeStringMap['constructor'];
console.log(
    `Typescript thinks this is a string (or undefined), but it's actually a ${typeof notActuallyAString}.`
);

// This is a correct implementation of the same:
const safeStringMap: { [key: string]: string } = Object.create(null);
const aString: string | undefined = safeStringMap['constructor'];
console.log(
    `Typescript thinks this is a string (or undefined), and indeed it's ${typeof aString}.`
);

// Typescript seems to correctly handle this when instantiating the `Object` constructor.
const correctlyHandledStringMap: { [key: string]: string } = new Object();

// Typescript also seems to be aware of an object literal's prototype chain for other purposes.
const foo: { constructor: typeof Object.prototype.constructor } = {}

Expected behavior:
Assigning {} to { [key: string]: string } should fail, because it does not have a compatible signature. In javascript, an "object literal" {} is equivalent to new Object() and TS should treat it accordingly.
Actual behavior:
TS allows the assigning of {} to { [key: string]: string }, leading to runtime crashes and potential security issues (including prototype pollution) when a key with the same name as a member of Object.prototype (constructor, __proto__, etc) is accessed or set.
Playground Link:
Link
Related Issues:
https://github.com/microsoft/TypeScript/issues/13778

This is a potential problem, but the type system was designed prior to the existence of Object.create(null) and many correct programs use { } in places where the keys, by construction, don't overlap with any built-in names (or are always set as own properties first).

Thanks for the note!
Ya you're definitely right that there will be use-cases that happen to be safe (for example where we know from some external guarantee that key names are UUIDs), but it isn't really provable via the type system, making it painfully easy to introduce type errors or worse when that assumption gets broken.
I've personally messed this up enough to suspect that there are very real safety issues with the vast majority of cases that would become invalid with this fix.
From an ergonomics perspective this fix would ideally be accompanied by my suggestion over here, to support __proto__ in object literal declarations only, since object spreads have gained considerable popularity.
You mention that you suspect there is a design limitation here, but the last two examples in my code block suggest that this information is being tracked, and just not enforced in the cases of indexed objects (although I certainly don't know how it's implemented). I'm curious to know what the limitation might be?

The "limitation" is "we don't want to break a ton of existing correct code" 😉

Ah haha, makes sense :) I suppose we could make this behavior suppressible via an option (maybe supressIndexedObjectPrototypeErrors), or possibly "opt-in" via a new "strict" option (maybe strictIntexedObjects).

While working on #38385 I discovered that Object.create(null) was part of the 2009 ES5.0 spec, so I'd argue that this behavior has never been correct...
The problem is quite prevalent.
I quickly searched github for indexed object signatures in typescript files, and found an astonishing number of potentially serious issues that would have been caught by correct type checking here.
I also spent a moment to look through the documentation and external resources (blog posts, etc) that describe this feature, and I have yet to see this implemented safely, with either Object.create(null) or { __proto__: null }.
Unless I missed a whole contingent of the internet, this means that the VAST majority of cases where this feature is being used, it is giving a false sense of safety...
This appears to be part of a broader problem with index signatures.
Further experimentation has brought me to the opinion that unconstrained indexed object signatures are severely safe in TypeScript at the moment. (I'm ignoring scenarios where index signatures are constrained by another type, like {[k in keyof Foo}: null | F[k]}.) For example:
function expectsNumberValues(arg: {[key: string]: number}) {
  return Object.values(arg).reduce((acc, arg) => acc + arg, 0);
}

function acceptsLiteral(arg: { prop1: number }): void {
  // This should fail, since arg does NOT define an exhaustive property signature.
  expectsNumberValues(arg)
}

// The "extra" prop2 property here is definitely not a number...
const someObject = { prop1: 5000, prop2: { foo: "bar"} };

acceptsLiteral(someObject);

The problem isn't just that the prototype of object literals is ignored, but that more broadly, index signatures describe an exhaustive set of properties. Accordingly, it's really never safe to "refine" one from a type that only defines a partial set of properties.
It's possible that these are two different issues, but I'd like to treat them as one, since the initial pushback was against introducing errors into codebases that currently (although incorrectly) compile. Based on my initial reasoning, both fixes expose the same kind of safety issue, and should be released together to avoid unnecessary developer toil.

Property exhaustiveness problem relates to #12936.

@mike-marcacci this is a known soundness hole; optional properties have the same problem. While it's sometimes possible to construct an adversarial repro to cause an issue to occur, in practice this doesn't cause problems and it's an intentional usability trade-off that we allow it.

@RyanCavanaugh thanks for the reply. That makes sense. I've updated my comment to retract the "exhaustiveness" problem from the scope of this issue, which can continue to focus on the original problem.
Is there a place that lists these soundness caveats? Having them is certainly an acceptable call, but it would be nice to know the intended limits of type safety that TS can provide.


Mitigate glitching of calls within Trng generate

From Nick Galloway<EMAIL_ADDRESS>An additional edge case that could be glitched in the early boot sequence before the first random delay happens:

rom_entry calls caliptra_cfi_lib::cfi_counter::CfiCounter::reset

reset calls caliptra_drivers::trng::Trng::generate

generate uses ureg::read_volatile_slice and compiler_builtins::mem::memcpy::memcpy

Either of which could be attacked with a glitch to trigger a buffer overflow, such as with an instruction skip or bit flip

Reopening until we have a test-case checking that there is no memcpy

Reopening until we have a test-case checking that there is no memcpy

Reopening until we have a test-case merged checking that there is no memcpy


Multiple Instances

https://docs.microsoft.com/en-us/azure/azure-monitor/app/troubleshoot-faq#should-i-use-single-or-multiple-application-insights-resources
This doesn't make it clear if this applies to regions too. Although we should segment by tier and independent applications should separate instances be used per region? Our application is split across numerous regions, would having application insights only in US East for example bog down the others with latency? Would an outage in US East pull down the other regions with it?

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

ID: 0526b200-ba5c-5427-35a8-1290d23bcada
Version Independent ID: 4ca174bd-6fbb-7b74-8065-eaabdb10a699
Content: Azure Application Insights FAQ
Content Source: articles/azure-monitor/app/troubleshoot-faq.md
Service: application-insights
GitHub Login: @mrbullwinkle
Microsoft Alias: mbullwin

@phawxby Thank you for your feedback! We will review and provide an update as appropriate.

@phawxby As answered in Microsoft/ApplicationInsights-Home#299:

Application insights sends data to their backend asynchornously - so the actual network RT time should not matter. Also, even though the app insights is in East US, the 'ingest' endpoints are globally distributed, and telemetry is always sent to the nearest available 'ingest' point.

and our Official docs about the overhead of using App Insights:

The impact on your app's performance is very small. Tracking calls are non-blocking, and are batched and sent in a separate thread.

We've had similar questions in the past around detailing the best practices for implementing Application Insights, and this answer elaborates it all.
Please take a look at the above pointers and feel free to revert if you still have questions!

All very interesting, thank you.
I feel like the additional information should be distilled and added to the docs page added above. Currently it's a series of disparate posts in different places which isn't obvious.

@phawxby I totally understand the ask. Thanks a lot for your feedback! I will work with our Content Teams to get this addressed.
We will now proceed to close this thread as resolved, but if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.


Order of workflows in a collection is random and non-deterministic

Describe the bug
The order of workflows on the collections page seems to be random. Refreshing the page can end up with the workflows in a different order.
To Reproduce

Go to https://dev.dockstore.net/organizations/HuBMAP/collections/HuBMAP
Note the order of the workflows
Refresh the page
Note the order of the workflows is probably different than what it was in step 2.

Expected behavior
The workflows should always be in the same order.

Sorted by date or alphabetically by name.
By org curator's preference.

Additional context

UI version: 2.5.1-rc.1-44-gcb9b4d8a
Webservice version: 1.9.0-alpha.9-SNAPSHOT

┆Issue is synchronized with this Jira Story
┆Issue Type: Story
┆Sprint: Backlog
┆Issue Number: DOCK-1307

Ideally the sorting should be handled by the webservice or database


Web Component Fails to Dynamically Update Vue.js i18n Messages in Angular Project

Vue version
v3.4.14
Link to minimal reproduction
https://stackblitz.com/edit/stackblitz-starters-4hu361?file=src%2Fmain.ts
Steps to reproduce

Open the reproduction link
Click the toggle button

What is expected?
Once the toggle button is clicked, it should render the web component with the message Hello i18n Working !
What is actually happening?
Once the toggle button is clicked, the vuei18n key message.greet is rendering instead of the actual value.

System Info
No response
Any additional comments?
In Vue the Vue.provide(VueI18n.I18nInjectionKey, i18n.value); suppose to pass the updated i18n.value But it's not passing.
While Using this web component in Angular I'm having this issue. How to pass the updated i18n.value into provide.

Add immediate: true for watchEffect and it should be worked


There is no possibility to remove background color in attributes panel

Technical
Platform: Both
Description
Background-color can be set but cannot be removed or set as transparent or semi-transparent.
Steps to reproduce

Create a new project in the Design Editor.
Add some widget.
Set background colour

Expected behaviour
Some way to set semi-transparent colours (RGBA) and remove background colour.
Actual behaviour
No way to do it. Background once created always been in application.

PR #332 is merged. I close an issue.


fix misspelling

only HTTP, HTTPS, SOCKS4 and SOCKS5 are the correct spelling

Hi @helloanoop, I made a pull request that fix this. Can you please approve this pull request #1299

@CRAZy-Monk3Y
I feel the smallcase is cleaner, less noisy and elegant.
Is this just a preference / Is there a technical reason why it should be Capitalised ?

@helloanoop It was an issue requested by an user.
Although there is no direct technical reasoning. Using standardized spellings like HTTP, HTTPS, SOCKS4, and SOCKS5 aligns with globally accepted conventions and industry standards. Consistent terminology enhances code readability and maintains cohesion with widely recognized naming conventions. This conformity fosters a more accessible and comprehensible codebase, facilitating collaboration and reducing potential confusion among developers.

Hmm..

It was an issue requested by an user.

Do you have a link to the issue / conversation ?
I actually prefer smallcase, its clean and eleqouent.
@Its-treason @mirkogolze Do you guys have a strong stance that we should capitalize it ?

I think we should use the correct / most used spelling for all words, and HTTPS, SOCKS5 etc. seems to be written in UPPERCASE everywhere. So I would vote for merging https://github.com/usebruno/bruno/pull/1299.

In alignment to the often used environment variables for proxies, I'd would prefer upper case too.

Do you have a link to the issue / conversation ?

Actually this is the issue thread raised by @ghost where I got to know about this.

Thank you @CRAZy-Monk3Y @Its-treason @mirkogolze !
Merged!


Update ICO_Template.cs

I have no rights, we can merge? @erikzhang

@shargon Can you review https://github.com/neo-project/proposals/pull/44


Stage1

Notes:

The first step is to create the Context class and start to move the core AdaptDL mathematics into that class.

The AdaptiveDataLoader should get refactored to use the Context class for those AdaptDL logic to prevent duplication of logic.

But the changes to AdaptiveDataLoader are purely implementation changes, users of the class shouldn't need to see any difference.

close via a new PR #123


Fix double escape in dpkg version check.

A previous commit 8f5ad028d563371b2b59bc1e1613ae6590330942 added an extra escape to the version check for the Debian family of operating systems which broke the version check. This commit fixes that part of the commit.
Note related SO question here: http://stackoverflow.com/questions/42417864/serverspec-doesnt-check-package-version-correctly
RSpec test intentional failure shows that characters are now only being escaped once with the code update.

Thanks!

Released as v2.67.2.

RedHat's package matcher is doing the same thing.  I fixed mine locally by monkey-patching the method rather than having developers adjust all their specs (this is a regression).

@LTangaF i just checked the code and you seem to be correct. That would be a quick fix too.


Update Python If-Else.py

Using Elif instead of multiple if. As it may confuse beginner and it is not conventional to iuse multiple if in same heirarchy
Screenshots - If Any (Optional)
Issue ticket number and link - If any
Checklist before requesting a review

[ ] My code follows the style guidelines of this project
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have performed a self-review of my code

Using Elif


There should be a way to re-initialize a single Datepicker element

Is your feature request related to a problem? Please describe.
I'm using HTMX to load content into the page dynamically. Some of this dynamic content consists of Datepicker inputs. When these inputs enter the DOM, the DOMContentLoaded event is NOT fired, so initDatepickers therefore doesn't run.
To get around this, I can manually wire up an event listener to HTMX content being loaded and run initDatepickers. However this re-initializes ALL the datepickers on the page when I would like to re-initialize them ad-hoc.
Describe the solution you'd like
It would REALLY help if you added an initDatepicker(elementId: str) method that can be used in these ad-hoc cases. This would make re-initializing date pickers much easier.
Describe alternatives you've considered
From the docs, it seems like Flowbite wants us to use the Javascript API to create Datepicker objects for these ad hoc. I am unable to do that using the minified JS file (there's no Datepicker constructor available for use). I'm using Flowbite in the context of Django templates without NPM and have no plans to set up Webpack in Django.
Additional context
Appreciate your time

Follow up question - is there a reason why the Datepicker object isn't exported and available for use from the minified JS file? This is rather different than the API provided by the rest of Flowbite. I'm able to use the Modal constructor, why not the Datepicker?

Hey @lobot1010,
Working on this feature now: https://github.com/themesberg/flowbite/tree/datepicker-instance
Cheers,
Zoltan

Hey @lobot1010 , can you please share your workaround? I am having the same issue but have not been able to solve it

I am sharing here my solution:
`
{% block scripts %}

{% endblock %}
`

Hey everyone,
v2.4.1 is now released so the datepicker component is part of the main instance object:
https://flowbite.com/docs/components/datepicker/index.html#javascript-behaviour
It will now work exactly like any other component from Flowbite.
Cheers,
Zoltan