Optimizing TaxonCount inserts by using a bulk insert operation.

Description
Issue IDSEQ-335.
We were facing some deadlock conditions in our result_monitor that led to this optimization.
I noticed the insert operation was taking several minutes (in my local environment, I had a sample taking around 3 minutes).
The bulk insert operation (using activerecord-import) is around 30X faster, and since we are speeding up this insert operation.
Although this change might reduce the likelihood of index/page locks conditions on that table, I have the impression the reason behind this issue might be a race condition that is processing same pipeline_run_id. Please, refer to this JIRA comment for a more detailed investigation.
Type of change

[X] Performance improvement

Test and Reproduce
Dead-locks are tricky to reproduce, and might be triggered by different conditions. The exact nature of this aforementioned issue is unknown, but I could reproduce it by executing load_taxons in parallel for the same pipeline_run_id. We cannot assume this is the reason behind this error (although I suspect it is related, as I described in this JIRA comment).
Steps I used to reproduce it locally:

Open two rails console instances pointing to your local database (please, don't do that in production, since it can destroy data)
Find an existing pipeline_run_id (in my tests I used 18840)
Get a test refined_taxon_counts.json. Best way to do that is visiting the corresponding sample result_folder (https://idseq.net/samples/10399/results_folder) and finding the file refined_taxon_counts.json there. Save it to a local folder. I created a folder ~tmp.
In both consoles, execute p = PipelineRun.find(18840).
In ONE console, execute TaxonCount.where(pipeline_run_id: p.id).delete_all(). This will delete previous lines from taxon_counts table, so we can insert new entries.
Now in BOTH console, type p.load_taxons("~tmp/refined_taxon_counts.json", true) and try to hit ENTER fast enough to execute them in parallel (2 or 3 seconds difference is fine). If the sample is large enough, that will trigger the race condition
(you can see evidence here in this Google Slides)

Note that if you use this test procedure after applying this PR, you will see a different error, related to duplicated lines. This is expected, since this PR is not fixing the race-condition scenario, it is only optimizing the operation.
Impacted Areas in Application
List general components of the application that this PR will affect:

Result Monitor

Testing Script:
###Single Upload

Using an AWS path that doesn't exist throws an error
Successfully uploaded files from a folder (use test host)
Uploading a duplicate file throws an error
Pipeline gets initiated successfully
Sample is processed without errors

Checklist:

[ ] I have run through the testing script to make sure current functionality is unchanged.
[X] I have done relevant tests that prove my fix is effective or that my feature works
[X] I have spent time testing out edge cases for my feature
[X] I have updated the test script or pull request template if necessary
[X] New and existing unit tests pass locally with my changes

I'm still trying to understand who I should be tagging as reviewers. I'm kind of randomly tagging people here, so please let me know if it doesn't make sense tagging some of you guys.

Interesting analysis.

executing load_taxons in parallel for the same pipeline_run_id

Would this occur during normal pipeline runs?

This is just a hypothesis for now, not necessarily what happened, but that
could explain the deadlock condition.
That’s why I want to understand this module more in depth and the
technologies involved (Resque), to see if there is an issue in the way it
is configured or in the way we are using it.
Also I’m planning to add the missing log events, but I need to spend some
time first to understand it before making changes.
On Wed, Apr 17, 2019 at 10:36 AM Greg Dingle<EMAIL_ADDRESS>wrote:

Interesting analysis.
executing load_taxons in parallel for the same pipeline_run_id
Would this occur during normal pipeline runs?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/chanzuckerberg/idseq-web/pull/2156#issuecomment-484189104,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHtabISZaoWPBI8DdL94rsSqDdOREhYaks5vh1t_gaJpZM4c0CCz
.

--
David Rissato Cruz
Software Engineer - IDSeq
<EMAIL_ADDRESS>c: +1<PHONE_NUMBER>

Interesting analysis.

executing load_taxons in parallel for the same pipeline_run_id

Would this occur during normal pipeline runs?

My opinion is that this cannot occur and what was observed were sequential retries (because we do have 1 retry in the code). But without proper logging we can't know for sure ha! I'm sure David will figure it out :)
The deadlock can still occur if two different pipeline_runs try to write to the taxon_counts table at the same time and take too long

The deadlock can still occur if two different pipeline_runs try to write to the taxon_counts table at the same time and take too long

I believe innodb storage only locks rows on insert or update, so a different pipeline with a different id should not deadlock, but I'm not expert in this.

I’m not an expert on InnoDB storage as well, but I’d say we could be facing
some index locks that could lead to deadlocks as well, although I don’t
think this is the case, since our index is unique.
Another thing to investigate is if we are hitting IIOPs limit on RDS. Maybe
these huge inserts are being capped on disk writes, that could also be
displayed as a deadlock.
On Wed, Apr 17, 2019 at 11:08 AM Greg Dingle<EMAIL_ADDRESS>wrote:

The deadlock can still occur if two different pipeline_runs try to write
to the taxon_counts table at the same time and take too long
I believe innodb storage only locks rows on insert or update, so a
different pipeline with a different id should not deadlock, but I'm not
expert in this.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/chanzuckerberg/idseq-web/pull/2156#issuecomment-484201024,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHtabLh2tv-kZQXiptdA8JQC8uTaDoPGks5vh2MUgaJpZM4c0CCz
.

--
David Rissato Cruz
Software Engineer - IDSeq
<EMAIL_ADDRESS>c: +1<PHONE_NUMBER>

Well, I just realized I'm missing something on my PR. I'll send a fix in a few minutes.

This PR is an improvement on itself (we can maybe discuss the max batch size)... but
we actually seem to have log detection enabled, and we can see at least the last know instance of deadlock.
From SHOW ENGINE INNODB STATUS in prod:
------------------------
LATEST DETECTED DEADLOCK
------------------------
2019-04-13 04:33:52 2b0cebc7d700
*** (1) TRANSACTION:
TRANSACTION 323795934, ACTIVE 6 sec inserting
mysql tables in use 1, locked 1
LOCK WAIT 3 lock struct(s), heap size 376, 2 row lock(s), undo log entries 2041
MySQL thread id 15474, OS thread handle 0x2af594a46700, query id 2896744 <IP_ADDRESS> idseqmaster update
INSERT INTO `taxon_counts` (`tax_id`, `tax_level`, `count`, `created_at`, `updated_at`, `count_type`, `percent_identity`, `alignment_length`, `e_value`, `genus_taxid`, `pipeline_run_id`, `family_taxid`) VALUES (-201352827, 2, 2, '2019-04-13 04:33:45', '2019-04-13 04:33:45', 'NT', 95.75, 106.0, -54.26582633479392, -201352827, 25673, 1352827)
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 170 page no 948001 n bits 53 index `index_pr_tax_hit_level_tc` of table `idseq_prod`.`taxon_counts` trx id 323795934 lock_mode X locks gap before rec insert intention waiting
Record lock, heap no 53 PHYSICAL RECORD: n_fields 5; compact format; info bits 0
 0: len=8; bufptr=0x2afdfa07c712; hex=<PHONE_NUMBER>006449; asc       dI;;
 1: len=4; bufptr=0x2afdfa07c71a; hex= 74111f6e; asc t  n;;
 2: len=2; bufptr=0x2afdfa07c71e; hex= 4e54; asc NT;;
 3: len=4; bufptr=0x2afdfa07c720; hex= 80000002; asc     ;;
 4: len=8; bufptr=0x2afdfa07c724; hex=<PHONE_NUMBER>f8faf1; asc         ;;

*** (2) TRANSACTION:
TRANSACTION 323796059, ACTIVE 1 sec fetching rows
mysql tables in use 2, locked 2
LOCK WAIT 11717 lock struct(s), heap size 376, 45576 row lock(s), undo log entries 8730
MySQL thread id 15467, OS thread handle 0x2af593e86700, query id 2896200 <IP_ADDRESS> idseqmaster Sending data
UPDATE taxon_counts, taxon_lineages
      SET taxon_counts.superkingdom_taxid = taxon_lineages.superkingdom_taxid
      WHERE taxon_counts.pipeline_run_id=25670
            AND (3 BETWEEN taxon_lineages.version_start AND taxon_lineages.version_end)
            AND taxon_counts.tax_id > -100000000
            AND taxon_lineages.taxid = taxon_counts.tax_id
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 170 page no 948001 n bits 53 index `index_pr_tax_hit_level_tc` of table `idseq_prod`.`taxon_counts` trx id 323796059 lock_mode X waiting
Record lock, heap no 53 PHYSICAL RECORD: n_fields 5; compact format; info bits 0
 0: len=8; bufptr=0x2afdfa07c712; hex=<PHONE_NUMBER>006449; asc       dI;;
 1: len=4; bufptr=0x2afdfa07c71a; hex= 74111f6e; asc t  n;;
 2: len=2; bufptr=0x2afdfa07c71e; hex= 4e54; asc NT;;
 3: len=4; bufptr=0x2afdfa07c720; hex= 80000002; asc     ;;
 4: len=8; bufptr=0x2afdfa07c724; hex=<PHONE_NUMBER>f8faf1; asc         ;;

*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 170 page no 948001 n bits 53 index `index_pr_tax_hit_level_tc` of table `idseq_prod`.`taxon_counts` trx id 323796059 lock_mode X waiting
Record lock, heap no 53 PHYSICAL RECORD: n_fields 5; compact format; info bits 0
 0: len=8; bufptr=0x2afdfa07c712; hex=<PHONE_NUMBER>006449; asc       dI;;
 1: len=4; bufptr=0x2afdfa07c71a; hex= 74111f6e; asc t  n;;
 2: len=2; bufptr=0x2afdfa07c71e; hex= 4e54; asc NT;;
 3: len=4; bufptr=0x2afdfa07c720; hex= 80000002; asc     ;;
 4: len=8; bufptr=0x2afdfa07c724; hex=<PHONE_NUMBER>f8faf1; asc         ;;

Not sure yet why it happened, but it confirms the deadlock and that these are operations with different pipeline_run_ids and also shows another operation that creates the conflict.

This PR is an improvement on itself (we can maybe discuss the max batch size)... but
we actually seem to have log detection enabled, and we can see at least the last know instance of deadlock.
From SHOW ENGINE INNODB STATUS in prod:

This is a great finding Tiago. This information is really valuable. Let me analise this carefully.
I'll copy your findings to our Jira ticket, to keep track of the story in a single place, since this current PR is just an optimization that eventually could "help" with this issue, but has never intended to solve the problem.

It seems like we have an index page lock (Same space id / page id):
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 170 page no 948001 n bits 53 index `index_pr_tax_hit_level_tc` of table `idseq_prod`.`taxon_counts` trx id 323795934 lock_mode X locks gap before rec insert intention waiting

*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 170 page no 948001 n bits 53 index `index_pr_tax_hit_level_tc` of table `idseq_prod`.`taxon_counts` trx id 323796059 lock_mode X waiting

This PR can actually help in this situation, since locks will be held for less time, but I don't expect it to entirely solve the original problem. We might need to change the isolation level or create chunked updates.


All the new collections are getting the same name: "Basilisk-Sama"

What happened?
I tried to create a collection with a different name("Bridge"), and after creating it, it was named "Basilisk-Sama". I tried again twice with totally different names.... now I have 3 Basilisk Sama collections.
Please reproduce in steps
Create new BSX collection - classic - fill everything.
Expected Behavior
I want my collection to be named after what I came up with. Imagine you will have your own baby, you will name it Suzanne but you will get her birth certificate with the name Ignacio.
What browsers are you seeing the problem on?
Chrome
At which address did you encounter bug?
kodadot.xyz
Are you logged in?
Yes
Which wallet you are using?
PolkadotJS
Screenshots

Relevant log output
No response
Payment link for reward
https://kodadot.xyz/transfer/?target=<My_Kusama_Address_check_https://github.com/kodadot/nft-gallery/blob/main/CONTRIBUTING.md#creating-your-ksm-address>
Code of Conduct

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

This was fixed, I guess?

yes, looks like that.


fix: check cluster recovery

Signed-off-by: zhuzhenfan<EMAIL_ADDRESS>
What type of PR is this?
/kind bug

What this PR does / why we need it:
Incorrect component code for k8s detection after cluster recovery
Which issue(s) this PR fixes:

Fixes #253
Special notes for reviewers:

Does this PR introduced a user-facing change?

None

Additional documentation, usage docs, etc.:

@x893675 @Metrora

Codecov Report

Merging #254 (f639697) into master (f1cb534) will decrease coverage by 0.01%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #254      +/-   ##
==========================================
- Coverage   13.12%   13.11%   -0.02%
==========================================
  Files          98       98
  Lines       15341    15356      +15
==========================================
  Hits         2014     2014
- Misses      13088    13103      +15
  Partials      239      239

Impacted Files
Coverage Δ

pkg/scheme/core/v1/k8s/cluster.go
0.12% <0.00%> (-0.01%)
:arrow_down:

pkg/apis/core/v1/handler.go
0.33% <0.00%> (-0.01%)
:arrow_down:

/lgtm

/milestone v1.3.1

/lgtm

/approve


libinjection: patch for python3 builds

Description of changes
Use proxysql's patch for python3 builds in libinjection.

Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

I guess it builds a valid static archive...
Result of nixpkgs-review pr 169601 run on x86_64-linux 1

1 package built:

libinjection


Issue with importing APIs using CLI tool when the Secure Endpoint is enabled

Description
With the current implementation, the endpoint password is removed from the import and export web application. This needs to be fixed by setting endpointSecured false or set a dummy password and ask users to configure it via the available options.
Affected product version
wso2am-2.6.0

Fixed with https://github.com/wso2/carbon-apimgt/pull/8123


Double head banner in deck.gl's website

When blog is clicked, I saw this

That would be another change we made on master instead of 4.0-release...
Xiaoji

From: Shaojing Li <notifications<EMAIL_ADDRESS>Sent: Tuesday, May 30, 2017 9:43 PM
Subject: [uber/deck.glhttp://deck.gl] Double head banner in deck.glhttp://deck.gl's website (#670)
To: uber/deck.glhttp://deck.gl <deck.gl<EMAIL_ADDRESS>Cc: Subscribed <subscribed<EMAIL_ADDRESS>When blog is clicked, I saw this
[screen shot 2017-05-30 at 9 40 55 pm]https://cloud.githubusercontent.com/assets/21322704/26616097/f410c9d2-4580-11e7-9e7b-396062a27bcb.png
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/uber/deck.gl/issues/670, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AB9sIj-A_BT2gixPiwqidY1QqD5yq4C5ks5r_O_ygaJpZM4NrJlY.

That would be another change we made on master instead of 4.0-release...

How do we fix this? The demo is on 4.0-release and the blog is on the blog branch - do they still have a dependency on master? Is that the root cause that we should fix?

I have cherry-picked the missing commits into 4.0-release. The site should be fixed now.


Bug: Cannot lint both inside and outside code blocks

Environment
ESLint version: 9.13.0
@eslint/markdown version: 6.2.1
Node version: 23.1.0
npm version: 10.9.0
Operating System: Ubuntu 24.04
Which language are you using?
commonmark
What did you do?
Configuration
// eslint.config.js
import markdown from '@eslint/markdown'

export default [
  {
    plugins: {
      markdown,
    },
  },
  {
    files: ['**/*.md'],
    processor: 'markdown/markdown',
    language: 'markdown/commonmark',
    rules: {
      'markdown/no-duplicate-headings': 'error',
    }
  },
  {
    files: ['**/*.md/*.js'],
    rules: {
      'no-undef': 'error',
    },
  },
]

Markdown file
This is test.md

# Title

# Title

```js
test
```

Actual behavior
$ ls
eslint.config.js  node_modules  package.json  package-lock.json  test.md
$ eslint

/home/ether/Desktop/try_eslint/test.md
  6:1  error  'test' is not defined  no-undef

✖ 1 problem (1 error, 0 warnings)

If I comment out the processor: 'markdown/markdown' line in my eslint.config.js, I get this instead:
$ eslint

/home/ether/Desktop/try_eslint/test.md
  3:1  error  Duplicate heading "Title" found  markdown/no-duplicate-headings

✖ 1 problem (1 error, 0 warnings)

What did you expect to happen?
I expect to get both linting errors at the same time.
What actually happened?
I either get linting applied to the contents outside of the code blocks, or inside of the code blocks, depending on whether processor is specified in my eslint.config.js.
Link to Minimal Reproducible Example
https://github.com/ehmicky/eslint-markdown-bug
Participation

[ ] I am willing to submit a pull request for this issue.

Additional comments
No response

This is a limitation of ESLint itself, not with this plugin. We're working on it:
https://github.com/eslint/eslint/issues/14745

Hi @nzakas,
Thanks and sorry as this is a duplicate of https://github.com/eslint/markdown/issues/276.
It seems like the above issue might take a little time to resolve. Are there any known workarounds in the meantime?

The only workaround is to run ESLint twice, one with each configuration. That's what this repo does.

Thanks for your answer @nzakas.


Ability to add files to a workspace

One of the most time-consuming things for me is changing files that are in places like C:<user>.<folder). Mostly configuration/profile files.
I thought it would be great to get them under the same roof and simply save it as a admin-like workspace but we can't add singular files.
I think there isn't a workaround for this at the moment? What do you think about this feature? Does it make sense?

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


XMLHttpRequest not work for me on android

I create Downloader to download file , but run code on android and got crash.
Here's my Downloader class code
//Downloader class
'use strict';
import React, {
  PropTypes
} from 'react-native';

export default class Downloader {
  request: XMLHttpRequest;
  canceled: boolean;
  progress: number;
  url: string;
  contentLength: number;

  constructor(url) {
    this.url = url;
    this.canceled = false;
    console.log(url);
  }

  start(progressCallback: func, failCallback: func, successCallback: func) {

    this.request && this.request.abort();

    var request = this.request || new XMLHttpRequest();
    request.onreadystatechange = () => {
      console.log(request.readyState);
      if(request.readyState === request.HEADERS_RECEIVED) {
        this.contentLength = parseInt(request.getResponseHeader('Content-Length'), 10);
        console.log(this.contentLength);
      }
      else if(request.readyState === request.LOADING) {
        console.log(request.response);
        progressCallback(request.responseText.length/this.contentLength);
      }
      else if(request.readyState === request.DONE) {
        if(this.canceled) {
          this.canceled = false;
          return;
        }
        console.log(request);
        console.log("finish");
        if(request.status === 200) {
          console.log("successCallback");
          successCallback(request.responseText);
        }
        else if(request.status !== 0) {
          failCallback('Error: Server returned HTTP status of' + request.status + ' ' + request.responseText);
        }
        else {
          failCallback('Error: ' + request.responseText);
        }
      }
    }
    request.open('GET', this.url);
    //Avoid gzip so we can actually show progress
    request.setRequestHeader('Accept-Encoding', '');
    request.send();
    this.request = request;
  }
}

And i use it to download file
    var url = 'http://<IP_ADDRESS>/myTest/ZendStudio-8.0.1.dmg';
    var downloader = new Downloader(url);
    downloader.start(
      (progress) => {
        console.log(progress);
        this.setState({
          progress: progress
        });
      },
      (response) => {
        console.log(response);
      },
      (err) => {
        console.log(err);
      }
    );

Run it and i got log, then app crashed, here's debug log
http://<IP_ADDRESS>/myTest/ZendStudio-8.0.1.dmg
1
2
308402494

Then, i change the value of url to http://<IP_ADDRESS>/myTest/1.txt, and it work fine.
So i am confused, and don't known how to solve it.
Device Info: Galaxy S6 Android 5.1.1

Seems to be an issue with your dmg file. Can you recheck with some other files

My file no problem. I also encountered the same crash when download PDF file.

It could be a memory issue? Try turning off chrome debugger.

There are issues with downloading binary files using fetch. Could be a memory issue, or issue with JSC.

Without a way to repro this, it's not clear to me how to make progress on this issue. I'm going to close it - if people can't get this to work then you might need to provide more info (in which case please feel free to reopen an issue) or post on Stack Overflow.


Exception Report
SAMM Information:	Manager Version: 1.1.4
	Current Game: Sonic Adventure DX
	Game Directory: C:\Users\kenil\Downloads\Sonic Adventure DX Disc 1
	Mod Loader Version (Hash): 7f9670822ba35a2916cbc31f4ecb290123e702a8

Exception Information:
	Type: Win32Exception
	Exception: An error occurred trying to start process 'C:\Users\kenil\Downloads\Sonic Adventure DX Disc 1\sonic.exe' with working directory 'C:\Users\kenil\Downloads\Sonic Adventure DX Disc 1'. The requested operation requires elevation.
	Source: System.Diagnostics.Process
	In Function: Boolean StartWithCreateProcess(System.Diagnostics.ProcessStartInfo)
	StackTrace:    at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
	   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
	   at SAModManager.MainWindow.StartGame()
	   at SAModManager.MainWindow.SaveAndPlayButton_Click(Object sender, RoutedEventArgs e)
	   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
	   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
	   at System.Windows.Controls.Primitives.ButtonBase.OnClick()
	   at System.Windows.Controls.Button.OnClick()
	   at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
	   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
	   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
	   at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
	   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
	   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
	   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
	   at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
	   at System.Windows.Input.InputManager.ProcessStagingArea()
	   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
	   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
	   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
	   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
	   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
	   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
	   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
	   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
	   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
	   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
	   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
	   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
	   at System.Windows.Application.RunDispatcher(Object ignore)
	   at System.Windows.Application.RunInternal(Window window)
	   at SAModManager.App.Main()

As the error mention, this looks like a permission issue which you can probably fix by running the Manager as admin.
Either way, reading the path, this looks like a pirated copy, we do not support such version, the game is not even 10 bucks on Steam and often less with sales.

Based on the path and the error, I think they downloaded an original ISO of the game.
More specifically, they are trying to run the game from the installer, rather than installing a game and run the installed copy.
The error they ran into is probably from trying to run a SafeDisc protected EXE from manager not running as admin.


paramsNonEmpty returns NonEmptyList[A]

As it was discussed earlier: https://github.com/finagle/finch/pull/577#issuecomment-202103686

Current coverage is 72.88%

Merging #582 into master will decrease coverage by -1.60% as of 92240d6

Powered by Codecov. Updated on successful CI builds.

Thanks @ImLiar! Merging this!


Move Manage Players item to players menu

Might be personal preference. Feel free to dismiss. But I believe that the Manage Players item should be in the players menu, rather than settings. I actually never saw it there, until I decided to click any item I could find. But I thought it would be nice to have quick access to various aspects of players right from the player menu.
Oh, and this is my first Vue experience. Yay! Feel free to fix it :-D

This one I'm not sure about. If this is moved there, perhaps so should player settings? But then that's a setting... Also, if the user has lots of players, it will then be at the bottom of the menu.

I think settings and player control are different features. One is everyday use, the other only every now and then. I'd therefore still prefer to have the manager with the players rather than in a settings menu. This way I have one menu to go to if I want to control playback of any of my players, not two. But as I said: this is just my personal preference.

I've merged this now. Now that this is there, do you think I should remove the "Switch On/Off" menu item? As in this functionality can be achieved via the dialog. Only asking as I never actually switch my players off - seeing as they are not real squeezeboxes.

Thanks! No, I think the power button must stay, as the manager would only be shown if there were more than one player. Plus it's to control the current player, like play/pause/volume.


Possible to pick/omit?

Hi, I'm trying to utilize my existing sanity-typed-schema-builder document to create a new Zod document. I want to pick fields from the former to add to the latter. Is this possible somehow?
Example:
export const programSanitySchema = s.document({
  name: 'program',
  title: 'Program',
  fields: [
    {
      name: 'title',
      title: 'Title',
      description: 'The title of the program',
      type: s.string(),
    },
    {
      name: 'description',
      title: 'Description',
      description: 'The description of the program',
      type: s.string(),
    }
  ],
});

export const programPreviewZodSchema = z.object({
  title: programSanitySchema.pick({title: true})
});

Thanks

const zodOfDocument: ZodType = s.document({ ... }).zod;

// Do what you want with zodOfDocument

const zodOfDocument: ZodType = s.document({ ... }).zod;

// Do what you want with zodOfDocument

Thanks, I tried that, but TypeScript says:
Property 'pick' does not exist on type ZodType ...

can you show me a repro? Your code snippet has programSanitySchema.pick({title: true}) which is incorrect.

Here is a codesandbox: https://codesandbox.io/s/silent-thunder-7pg960?file=/src/App.tsx

ah, I see. the object returned is of type ZodType, not ZodObject, so it doesn't have the object specific methods. I think that's a change we can make!

FYI until we fix it, you should just be able to cast it into a ZodObject. I think it actually is a ZodObject so this shouldn’t be an issue.

Yeah I actually tried that for awhile the other day. I settled on using as ZodObject<any>, which works, but doesn't give me the options when I use pick. Not a huge problem while I wait for a fix, but I'm curious if there is a way to fix this. Seems the only way (other than recreating a Zod object) is as ZodObject<programSchema.zod>, but that obviously doesnt work because if it did none of this would be a problem lol

Tried a whole bunch but i don't get it to work.
Same problem if you are trying to follow references the given .parse method is unusable
e.g. :
const data = await sanity_client.fetch(`//groq
    *[_type == "jobs"]{
        ...,
        kategorie[]->,
        modell[]->,
        ansprechpartner->
    }`);

const parsed_data = jobs.zod.array().parse(data); //Error 'invalid_literal' bc of


add data drift example notebook for text data

Related to :
#392
What does this implement?
This adds an example notebook for detecting data drift for text data using evidently

[x] add data drift for text data
[x] add relevant headings
[x] explanation at each step
[x]  references and citation for datasets used

Summary of things in the example notebook :

I've used averaged glove vectors representing each sentence(record) across, IMDB movie review train , test and amazon echo-dot review datasets. I've used Glove 50dim for calculating the average vector for each record

I've created visualization based on Dashboard and created drift measurement based on TestSuite using wasserstein distance for numerical features.

Dataset used for  reference (train and test): IMDB movie reviews.
Dataset used for current(Unseen dataset for drift comparison) : Amazon Echo-Dot reviews

Please let me know if improvements could be made in measuring data drift for text. Not completely sure if this is the right approach.
I tried using the word counts after  and using  Chi-squared test on the word counts between train and test, and
train and unseen datasets, It didn't seem to work well.
I'm reading the data from  my raw.githubusercontent, please let me know if there is a better way to store and read data from, or perhaps data could be stored in a separate folder.
Attaching a link to colab notebook.
https://colab.research.google.com/drive/1Y5X-MkZELIQv3-OHeWZTyyfftE5Lju58?usp=sharing
Thanks !

@SangamSwadiK we are exited to have an example with text data! Thank you.
Are you going to add more commits to this PR? I marked it as a hacktoberfest-accepted, to give you a chance to add something if you want.
And I kindly ask you to move your example from "sample_notebooks" to "how_to_questions", cause it fits there perfectly. It answers a question "How to calculate drift on top of the text data".

Hi @SangamSwadiK!
I take a loot to the dataset.
1. loading glove vectors
I agree with your approach. If a user decides to run it locally, it can easily uncomment  the downloading and unpacking code and run it.
2. dataset in evidently/examples/how_to_questions/data
We discussed that, and we decided against storing data in the repo directly. The main reason is that we do not want to have our data collection now and support it further (especially when it comes to storing many datasets which can originally be distributed under variety of licences).
I suggest to add a link to the original dataset together with the comment on how this data were processed to get https://github.com/SangamSwadiK/test_dataset, and keep using test_dataset. What do you think?


allow ones to set global parameters in conf file

I'd like the framework to allow ones to set global parameters in conf file.
{
   settings : {
      global_param1 : val1
   }
  dictionary : [
    {
        :
    }
  ]
  processors : [
    settings : {
      proc_global_param1 : val1
    }
  ]
  deployers : [
    settings : {
      depl_global_param1 : val1
    }
  ]
}

Where the parameter global_param1 can be seen from Dictionary, Processors and Deployers. The parameter proc_global_param1 can be seen from Processors, etc.
Those global parameters can be overridden by local parameters if the names are same.

That's good idea.
I will code this feature in a couple of days.

I created the add_default_settings branch which includes this new feature.
Please try this branch.

Thanks! I added test code and merged it to master. I think this ticket should be still opened as I'd like to have processor, validator and deployer-level global settings, that can override the global settings and can be overridden by local settings in processor, validator and deployer respectively.
I've mentioned it at the beginning of this ticket like this.
  processors : [
    settings : {
      proc_global_param1 : val1
    }
  ]

When I wrote test code, I realized that the syntax of this json is wrong. :(
Can you change the structure to such like:
  processors : {
    settings : {
      proc_global_param1 : val1
    }
   processorChain : [
      class : MyProcessor
      settings : {
      }
   ]
  }

Oh, sorry.
I misunderstand a part of the spec.
I try to fix it.


resolveSchema

Do you want to request a feature, report a bug, or improve documentation?
Part bug, part improved documentation.
If you are reporting a bug?
What is the current behavior?
Was on version 2.0.10 and upgraded to 2.0.13.  For version 2.0.10 resolveSchema was exported from resolve.utils.js and it returned a path to the resource schema.  Upgraded to version 2.0.13 and started getting errors for validateString() within calls to require() within my resource services.  I believe this is because resolveSchema now is exported from schema.utils.js.
What is the expected behavior?
My code was expecting resolveSchema to return a path that then would get passed into require(), just like the example services in the node-fhir-server-mongo project.  However, that behavior changed with this commit:
https://github.com/Asymmetrik/node-fhir-server-core/commit/7410e4a1090a7718d4b4170c37409c044ba2b72f#diff-1fdf421c05c1140f6d71444ea2b27638
So instead of resolveSchema returning a path, it returns a class.  Trying to require() the output of resolveSchema will cause an error saying that the class is not a string.
What are the steps to reproduce?
Could probably reproduce this error by upgrading the version of node-fhir-server-core used by node-fhir-server-mongo, since that project still assumes that resolveSchema is being exported from resolve.util.js and not schema.util.js.  I'm not sure if this change was widely documented anywhere; if it was I missed it.  Is there a place like a change log for the project that I can check before upgrading versions?
I was able to fix this problem on my end by removing the wrapping require() statements around resolveSchema.
What OS are you using and what version of node.js and @asymmetrik/node-fhir-server-core are you running?
Node 14.

Thanks. It looks like that commit was a breaking change! Oh no! It should have been a minor change (~2.1.0). Sorry! Newer functionality aims to reduce the runtime requires of resources due to it's inability to support TypeScript (https://github.com/Asymmetrik/node-fhir-server-core/pull/213) and limitation in regards to babel/bundling down to lower versions.
// Old way
const Patient = require(resolveSchema('4_0_0', 'Patient'))
// New way
const Patient = resolveSchema('4_0_0', 'Patient')

I will aim try to update Documentation, publish a new minor release (2.1.0), and perhaps unpublish 2.0.11, 2.0.12, and  2.0.13, to prevent breaking projects.

Thanks for the response @zeevosec and for confirming my understanding of the problem.  I guess I would hesitate to unpublish already published versions on npm.  But 2.0.11+ haven't been out there very long, so maybe it's okay?

@dwwinters I have deprecated them. Feel free to continue using 2.0.13, downgrade to 2.0.10, or upgrade to 2.1.0.
Thanks for this catch.


A supplement to the mechanics

Description
Checking the sighting status of mechanics (as in eye=true/false)
scope=true/false
For example:
@Source{offset= x x x, eye=true/false, scope=true/false}"
Configuration

Payment (optional)

[ ] I'm willing to pay for this feature

what does it do? Does it check if the targeted entity is scoping?

what does it do? Does it check if the targeted entity is scoping?
If shooter in scope - do this mechanic

This parameter is needed for example for mechanics FakeItem, if we use it to make the shells, then when you aim the vector of the shell should change because the sight and the standard state different models

what does it do? Does it check if the targeted entity is scoping?

https://github.com/WeaponMechanics/MechanicsMain/wiki/SimpleConditions#scoping-condition


I cant sign into my account

Hi. I finished the installation and the last screen asked to setup my username and password. I entered them, but when i then try to login it says 'invalid username the entered username was not found' do you have anyway to resolve this if possible? The site looks great by the way!

Hi there. Please make sure you are signing in to the admin panel and not the bank login. DSJAS has a login for the admin panel and for the fake bank dashboard. Please see here for help on logging in to the admin panel.
As for the fake bank, you get a default user called "edna" for the bank. For some specific instructions, see this section of the user manual.
For future reference, any help you need about the site can usually be found in the docs directory in the site's source.
I'm glad you like the site - if you need any more help, just send me back a reply and I'll get back to you as soon as I can. Good luck and happy scambaiting!

Hi there. Please make sure you are signing in to the admin panel and not the bank login. DSJAS has a login for the admin panel and for the fake bank dashboard. Please see here for help on logging in to the admin panel.
As for the fake bank, you get a default user called "edna" for the bank. For some specific instructions, see this section of the user manual.
For future reference, any help you need about the site can usually be found in the docs directory in the site's source.
I'm glad you like the site - if you need any more help, just send me back a reply and I'll get back to you as soon as I can. Good luck and happy scambaiting!

Ah ok thats fine. Im actually having another issue. I have set up the URL spoofing as per the docs and when i enter the URL I have put into the hosts file, i get a 403 forbidden page with this message:
"Forbidden
You don't have permission to access this resource.
Apache/2.4.48 (Win64) OpenSSL/1.1.1k PHP/8.0.9 Server at brownings.bank.net Port 443"
I noticed the server is 8.0.9 and not <IP_ADDRESS>. Im not sure if that is the issue or how i would resolve that.

Can you post a copy/link to your Apache config and error logs? They are usually located either in the same directory as your Apache executable, or in locations like /etc/httpd.conf or /var/log/apache2.
The fact that this still works on localhost but nowhere else suggests that your Apache is configured to only allow connections from the localhost domain, which is easily fixable once we pinpoint the problem.
In the error log, we'll be looking for error lines that look like this:
access to /blah denied (filesystem path
'/home/whoever/Sites/mySite') because xyz

[Sun Aug 15 11:39:06.733566 2021] [ssl:warn] [pid 12400:tid 580] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 15 11:39:06.764821 2021] [ssl:warn] [pid 12400:tid 580] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 15 11:39:06.796072 2021] [mpm_winnt:notice] [pid 12400:tid 580] AH00455: Apache/2.4.48 (Win64) OpenSSL/1.1.1k PHP/8.0.9 configured -- resuming normal operations
[Sun Aug 15 11:39:06.796072 2021] [mpm_winnt:notice] [pid 12400:tid 580] AH00456: Apache Lounge VS16 Server built: May 18 2021 10:45:56
[Sun Aug 15 11:39:06.796072 2021] [core:notice] [pid 12400:tid 580] AH00094: Command line: 'C:\xampp\apache\bin\httpd.exe -d C:/xampp/apache'
[Sun Aug 15 11:39:06.808578 2021] [mpm_winnt:notice] [pid 12400:tid 580] AH00418: Parent: Created child process 3448
[Sun Aug 15 11:39:07.159408 2021] [ssl:warn] [pid 3448:tid 644] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 15 11:39:07.191521 2021] [ssl:warn] [pid 3448:tid 644] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 15 11:39:07.211583 2021] [mpm_winnt:notice] [pid 3448:tid 644] AH00354: Child: Starting 150 worker threads.
[Sun Aug 15 11:39:32.380672 2021] [ssl:warn] [pid 7816:tid 716] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 15 11:39:32.418899 2021] [ssl:warn] [pid 7816:tid 716] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 15 11:39:32.434528 2021] [mpm_winnt:notice] [pid 7816:tid 716] AH00455: Apache/2.4.48 (Win64) OpenSSL/1.1.1k PHP/8.0.9 configured -- resuming normal operations
[Sun Aug 15 11:39:32.434528 2021] [mpm_winnt:notice] [pid 7816:tid 716] AH00456: Apache Lounge VS16 Server built: May 18 2021 10:45:56
[Sun Aug 15 11:39:32.434528 2021] [core:notice] [pid 7816:tid 716] AH00094: Command line: 'c:\xampp\apache\bin\httpd.exe -d C:/xampp/apache'
[Sun Aug 15 11:39:32.434528 2021] [mpm_winnt:notice] [pid 7816:tid 716] AH00418: Parent: Created child process 9776
[Sun Aug 15 11:39:32.770023 2021] [ssl:warn] [pid 9776:tid 672] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 15 11:39:32.801279 2021] [ssl:warn] [pid 9776:tid 672] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 15 11:39:32.816905 2021] [mpm_winnt:notice] [pid 9776:tid 672] AH00354: Child: Starting 150 worker threads.
[Sun Aug 15 11:41:45.991503 2021] [ssl:warn] [pid 3948:tid 512] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 15 11:41:46.024772 2021] [core:warn] [pid 3948:tid 512] AH00098: pid file C:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Sun Aug 15 11:41:46.024772 2021] [ssl:warn] [pid 3948:tid 512] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 15 11:41:46.040400 2021] [mpm_winnt:notice] [pid 3948:tid 512] AH00455: Apache/2.4.48 (Win64) OpenSSL/1.1.1k PHP/8.0.9 configured -- resuming normal operations
[Sun Aug 15 11:41:46.040400 2021] [mpm_winnt:notice] [pid 3948:tid 512] AH00456: Apache Lounge VS16 Server built: May 18 2021 10:45:56
[Sun Aug 15 11:41:46.040400 2021] [core:notice] [pid 3948:tid 512] AH00094: Command line: 'c:\xampp\apache\bin\httpd.exe -d C:/xampp/apache'
[Sun Aug 15 11:41:46.040400 2021] [mpm_winnt:notice] [pid 3948:tid 512] AH00418: Parent: Created child process 7172
[Sun Aug 15 11:41:46.372035 2021] [ssl:warn] [pid 7172:tid 664] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 15 11:41:46.418913 2021] [ssl:warn] [pid 7172:tid 664] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 15 11:41:46.434539 2021] [mpm_winnt:notice] [pid 7172:tid 664] AH00354: Child: Starting 150 worker threads.
[Sun Aug 15 11:41:55.600603 2021] [php:warn] [pid 7172:tid 1860] [client <IP_ADDRESS>:61763] PHP Warning:  Undefined array key "setup_authorised" in D:\BrowningsBank\include\install\Utils.php on line 104
[Sun Aug 15 11:57:32.451570 2021] [authz_core:error] [pid 7172:tid 1856] [client <IP_ADDRESS>:61983] AH01630: client denied by server configuration: C:/xampp/htdocs/
[Sun Aug 15 11:57:32.852624 2021] [authz_core:error] [pid 7172:tid 1856] [client <IP_ADDRESS>:61983] AH01630: client denied by server configuration: C:/xampp/htdocs/favicon.ico, referer: https://brownings.bank.net/
[Sun Aug 15 12:00:40.477655 2021] [authz_core:error] [pid 7172:tid 1856] [client <IP_ADDRESS>:61992] AH01630: client denied by server configuration: C:/xampp/htdocs/
[Sun Aug 15 12:00:40.646548 2021] [authz_core:error] [pid 7172:tid 1856] [client <IP_ADDRESS>:61992] AH01630: client denied by server configuration: C:/xampp/htdocs/favicon.ico, referer: https://brownings.bank.net/
[Sun Aug 15 12:02:45.216115 2021] [ssl:warn] [pid 9056:tid 528] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 15 12:02:45.250520 2021] [core:warn] [pid 9056:tid 528] AH00098: pid file C:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Sun Aug 15 12:02:45.250520 2021] [ssl:warn] [pid 9056:tid 528] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 15 12:02:45.281774 2021] [mpm_winnt:notice] [pid 9056:tid 528] AH00455: Apache/2.4.48 (Win64) OpenSSL/1.1.1k PHP/8.0.9 configured -- resuming normal operations
[Sun Aug 15 12:02:45.281774 2021] [mpm_winnt:notice] [pid 9056:tid 528] AH00456: Apache Lounge VS16 Server built: May 18 2021 10:45:56
[Sun Aug 15 12:02:45.281774 2021] [core:notice] [pid 9056:tid 528] AH00094: Command line: 'c:\xampp\apache\bin\httpd.exe -d C:/xampp/apache'
[Sun Aug 15 12:02:45.281774 2021] [mpm_winnt:notice] [pid 9056:tid 528] AH00418: Parent: Created child process 6276
[Sun Aug 15 12:02:45.619871 2021] [ssl:warn] [pid 6276:tid 668] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 15 12:02:45.651133 2021] [ssl:warn] [pid 6276:tid 668] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 15 12:02:45.666751 2021] [mpm_winnt:notice] [pid 6276:tid 668] AH00354: Child: Starting 150 worker threads.
[Sun Aug 15 12:04:57.036318 2021] [authz_core:error] [pid 6276:tid 1860] [client <IP_ADDRESS>:62023] AH01630: client denied by server configuration: C:/xampp/htdocs/
[Sun Aug 15 12:04:57.152252 2021] [authz_core:error] [pid 6276:tid 1860] [client <IP_ADDRESS>:62023] AH01630: client denied by server configuration: C:/xampp/htdocs/favicon.ico, referer: https://brownings.bank.net/
[Sun Aug 15 12:09:19.619922 2021] [authz_core:error] [pid 6276:tid 1860] [client <IP_ADDRESS>:62049] AH01630: client denied by server configuration: C:/xampp/htdocs/
[Sun Aug 15 12:09:19.735757 2021] [authz_core:error] [pid 6276:tid 1860] [client <IP_ADDRESS>:62049] AH01630: client denied by server configuration: C:/xampp/htdocs/favicon.ico, referer: https://brownings.bank.net/
[Sun Aug 15 12:18:54.775300 2021] [php:error] [pid 6276:tid 1860] [client <IP_ADDRESS>:62148] PHP Fatal error:  Uncaught ArgumentCountError: The number of variables must match the number of parameters in the prepared statement in D:\BrowningsBank\include\DB.php:254\nStack trace:\n#0 D:\BrowningsBank\include\DB.php(254): mysqli_stmt->bind_param('i', '2')\n#1 D:\BrowningsBank\include\Banking.php(395): DB->prepareQuery(Object(PreparedStatement))\n#2 D:\BrowningsBank\admin\bank\accounts.php(35): closeAccount('2')\n#3 {main}\n  thrown in D:\BrowningsBank\include\DB.php on line 254, referer: http://localhost/admin/bank/accounts.php?closeAccount=2&csrf=xYDT16yrLpLcXGpQy5fzKFjQXcleOonP
[Sun Aug 15 12:19:19.116384 2021] [php:error] [pid 6276:tid 1860] [client <IP_ADDRESS>:62166] PHP Fatal error:  Uncaught ArgumentCountError: The number of variables must match the number of parameters in the prepared statement in D:\BrowningsBank\include\DB.php:254\nStack trace:\n#0 D:\BrowningsBank\include\DB.php(254): mysqli_stmt->bind_param('i', '4')\n#1 D:\BrowningsBank\include\Banking.php(395): DB->prepareQuery(Object(PreparedStatement))\n#2 D:\BrowningsBank\admin\bank\accounts.php(35): closeAccount('4')\n#3 {main}\n  thrown in D:\BrowningsBank\include\DB.php on line 254, referer: http://localhost/admin/bank/accounts.php?closeAccount=4&csrf=B4OnyRXDQVcurXzmzV4OEKKjy9gFnFoP
[Sun Aug 15 12:21:07.301906 2021] [php:error] [pid 6276:tid 1860] [client <IP_ADDRESS>:62249] PHP Fatal error:  Uncaught ArgumentCountError: The number of variables must match the number of parameters in the prepared statement in D:\BrowningsBank\include\DB.php:254\nStack trace:\n#0 D:\BrowningsBank\include\DB.php(254): mysqli_stmt->bind_param('i', '1')\n#1 D:\BrowningsBank\include\Banking.php(395): DB->prepareQuery(Object(PreparedStatement))\n#2 D:\BrowningsBank\admin\bank\accounts.php(35): closeAccount('1')\n#3 {main}\n  thrown in D:\BrowningsBank\include\DB.php on line 254, referer: http://localhost/admin/bank/accounts.php?closeAccount=1&csrf=Ki5g6ESdIOS9uqMOgryYRNTO2ivhFv3W

Im not sure if that is the correct error log

error.log sorry I didnt realise I could drag and drop files

The offending lines are the following:
[Sun Aug 15 11:57:32.451570 2021] [authz_core:error] [pid 7172:tid 1856] [client <IP_ADDRESS>:61983] AH01630: client denied by server configuration: C:/xampp/htdocs/
[Sun Aug 15 11:57:32.852624 2021] [authz_core:error] [pid 7172:tid 1856] [client <IP_ADDRESS>:61983] AH01630: client denied by server configuration: C:/xampp/htdocs/favicon.ico, referer: https://brownings.bank.net/
[Sun Aug 15 12:00:40.477655 2021] [authz_core:error] [pid 7172:tid 1856] [client <IP_ADDRESS>:61992] AH01630: client denied by server configuration: C:/xampp/htdocs/
[Sun Aug 15 12:00:40.646548 2021] [authz_core:error] [pid 7172:tid 1856] [client <IP_ADDRESS>:61992] AH01630: client denied by server configuration: C:/xampp/htdocs/favicon.ico, referer: https://brownings.bank.net/

Somewhere in your configuration file, you are denying users who do not come from localhost. All we need to find now is the place where. Would you mind attaching your server config like you did the error log, so that I can find the problem?

would that be httpd.conf? If so i have tried attaching that file and the file format is not supported. Could i copy the file and change it to .txt or .log?

httpd.log Just incase that is the correct file

Does the custom domain when accessed using just HTTP, rather than HTTPS?

If i type http:// it just redirects to https://

Try changing the text after "ServerName" in your config file from "localhost:80" to the name you want to use. Be sure to restart your server using the Xampp control panel!

Just for reference, this is what my hosts file displays now (just to make sure i havent messed anything up there):
Copyright (c) 1993-2009 Microsoft Corp.

This is a sample HOSTS file used by Microsoft TCP/IP for Windows.

This file contains the mappings of IP addresses to host names. Each
entry should be kept on an individual line. The IP address should
be placed in the first column followed by the corresponding host name.
The IP address and the host name should be separated by at least one
space.

Additionally, comments (such as these) may be inserted on individual
lines or following the machine name denoted by a '#' symbol.

For example:

<IP_ADDRESS>     rhino.acme.com          # source server
<IP_ADDRESS>     x.acme.com              # x client host
localhost name resolution is handled within DNS itself.
<IP_ADDRESS>       localhost
::1             localhost
DSJAS Domain Mapping
<IP_ADDRESS>   brownings.bank.net

I have changed the text after "servername" and still the same issue

Ok, after some quick research, this may have been caused by some default XAMPP HTTPS settings. If you open the file "C:\xampp\apache\conf\extra\httpd-ssl.conf", you will see a line around line 86 which reads DocumentRoot "/opt/lampp/htdocs". You need to change this to your actual document root, which I believe is D:\BrowningsBank.
Try this and get back to me. If this fixes the issue, I will amend the documentation to tell other users who are using HTTPS of this issue.

Ok im really sorry, i have found the issue! In the installation steps, where you are told to select config in XAMPP and change the document root to the path we installed the zip file in.......in XAMPP there are 3 apache config files, 2 of them contain a "document root" setting and 1 does not. I only changed it in the first config file and not in the second. I have just changed it in the second and it has worked! Im really sorry for wasting your time. And again thankyou for the website it is amazing!

Yes that is the config file in XAMPP that i have just amended. Thankyou again for all the help

No worries at all. If you need any more help in the future, just open up another issue and I'll get right to it. Good luck and happy scambaiting.


Release Google.Cloud.SecurityCenter.V1 version 3.1.0

Changes in this release:
New features

Added contacts field to findings attributes, specifying Essential Contacts defined at org, folder or project level within a GCP org (commit 70ddfdb)
Added process signature fields to the indicator attribute that helps surface multiple types of signature defined IOCs (commit 70ddfdb)

Created release for Google.Cloud.SecurityCenter.V1-3.1.0


Get player's score for a certain week

When using the parameter {'scoringPeriodId': 2} to fetch stats for a given week, the player's score is returned as the player's season total, not his weekly total. When the scoringPeriodId parameter is not used, the current week's stats are collected and the current points for a player is his weekly total. How can I get a weekly total for a week that has already passed?
>> matchups = requests.get(url, cookies = cookies, params = {'view' : 'mMatchup', 'scoringPeriodId': 2}).json()
# See Lamar Jackson's stats for week 2
>> matchups['teams'][0]['roster']['entries'][16]['playerPoolEntry']['appliedStatTotal']
64.44
# 64.44 is his season total, not his weekly total

Check out the the "schedule" object instead of "teams" object.
Like
>> matchups = requests.get(url, cookies = cookies, params = {'view' : 'mMatchup', 'scoringPeriodId': 2}).json()
>> matchups['schedule'][0]['away']['rosterForCurrentScoringPeriod']['entries']...

I tried this but it does the same thing.

Interesting, I just tried it out on my league and was able to get week 1s player score using the same endpoint. In the schedule object make sure you go to the correct scoring period you want to look at. It should have more fields and under “rosterForCurrentScoringPeriod”.
Could you show me how you are accessing the object returned from the API?

The rosterForCurrentScoringPeriod option isn't showing up for me.
>>> matchups = requests.get(url, cookies = cookies, params = {'view' : 'mMatchup', 'scoringPeriodId': 2}).json()
>>> matchups['schedule'][0]['away'].keys()
dict_keys(['cumulativeScore', 'gamesPlayed', 'pointsByScoringPeriod', 'teamId', 'totalPoints'])
>>> matchups['schedule'][0]['away']['rosterforCurrentScoringPeriod']
Traceback (most recent call last):
  Python Shell, prompt 7, line 1
builtins.KeyError: 'rosterForCurrentScoringPeriod'

Try adding “view”: “mMatchupScore” to params for the request.

It didn't change anything.
>>> matchups = requests.get(url, cookies = cookies, params = { 'scoringPeriodId': 2, 'view' : 'mMatchupScore'}).json()
>>> matchups['schedule'][0]['away'].keys()
dict_keys(['adjustment', 'cumulativeScore', 'teamId', 'tiebreak', 'totalPoints'])

I think I might know the problem. If you are passing scoringPeriodId=2 then you will have to start “schedule” index at 5 if you want the first matchup in week two for a 10 man league.

So using this method I am able to get the weekly score, but a lot of other data is missing in this structure. Previously, I was able to get the player's name, playerId, acquisitionType, eligibleSlots, injuryStatus, and a couple of other metrics. Here, there are far fewer attributes.
>>> p = matchups['schedule'][5]['away']['rosterForCurrentScoringPeriod']['entries'][1]
>>> p.keys()
dict_keys(['lineupSlotId', 'playerPoolEntry'])
>>> p = p['playerPoolEntry']
>>> p.keys()
dict_keys(['player'])
>>> p = p['player']
>>> p.keys()
dict_keys(['stats'])
>>> p = p['stats']           # This is a list with two identical structures, but with different values
>>> p[0].keys()
dict_keys(['appliedStats', 'appliedTotal', 'proTeamId', 'scoringPeriodId', 'seasonId', 'statSourceId', 'statSplitTypeId', 'stats', 'variance'])
>>> p[1].keys()
dict_keys(['appliedStats', 'appliedTotal', 'proTeamId', 'scoringPeriodId', 'seasonId', 'statSourceId', 'statSplitTypeId', 'stats', 'variance'])

I don't know what the difference is in the final two lists. I have found that when week 1 is the scoringPeriodId then the 0 index has the correct score, and when week 2 is the scoringPeriodId then the 1 index has the correct score, but in both weeks there are exactly 2 elements in the list. Also, I am not able to get the players id or name anywhere.

If you checkout how box_scores() function works in league.py and follow that all the way through that should be able to help with some of those questions. In that function call I pass view=mMatchup and view=mMatchupScore to the ESPN API that will give you all of the player data with it.

Yes thats it! Having both 'view' : 'mMatchupScore' and 'view' : 'mMatchup' (and weirdly it has to be in that order) solved all my issues! Just curious, how do you know what all of the possible parameters are? Is there a way to see all callable parameters?

That's good to hear! Unfortunately there is no easy way to find the different ESPN API endpoints and params. I watch the network calls from the ESPN website and see what API endpoints and the parameters are passed.

Just reading through this...I think I found a player's total season fantasy points like this:
ENDPOINT = "https://fantasy.espn.com/apis/v3/games/FFL/seasons/" + str(year) + "/segments/0/leagues/" + str(league_id)

params = {
    'view': 'mRoster',
}
r = requests.get(ENDPOINT, params=params, cookies=cookies)

data = r.json()
data['teams'][6]['roster']['entries'][1]['playerPoolEntry']['ratings']['0']

This example is Nick Chubb:
{'positionalRanking': 11, 'totalRanking': 58, 'totalRating': 49.399998}

I validated against another player, as well. Hope it helps.


[helm][es-exporter] Metrics are delayed with a single node ES cluster with low Prometheus scrape interval

Hey everyone,
I'm trying to leverage the exporter to get some "real-time" statistics regarding our ELK cluster.
It's a singlenode and the usage is pretty low so I know that it's quick to answer (looking at the Dev tools for the request time for /_nodes/stats and /_all/_stats show that it takes about 100ms each to answer.
I've setup Prometheus to scrape the exporter every 10 seconds, thinking that it would let the metric refresh in between and I could get enough granularity.
But I can see that the retrieval metric is around 2 minutes still - using elasticsearch_clusterinfo_last_retrieval_success_ts (if it means what I think it does)

Prometheus config
- job_name: elasticsearch-exporter
  honor_timestamps: true
  scrape_interval: 10s
  scrape_timeout: 10s
  metrics_path: /metrics
  scheme: http
  follow_redirects: true
  static_configs:
  - targets:
    - URL_HERE:9108

I can see that Prometheus does scrape the exporter every 10 seconds in the Targets page of the server.
But if I look at the stats actually collected, it can take up to 20 minutes for the data to update (for metrics that I know should move faster)
Using elasticsearch_indices_docs_total for an indice that I know is actively receiving docs.

Any ideas?

It's hard to tell exactly what the second graph is showing because the time axis is not shown. I need to take a look at the docs_total metric and how elasticsearch handles the metric internally, but that could be related to a refresh (elasticsearch term), but I'm not potitive. The elasticsearch_clusterinfo_last_retrieval_success_ts metric actually records the timestamp of the most recent success, so that will go up forever (as time always moves forward). That metric actually looks correct to me. The cluster info is not updated every scape. See the --es.clusterinfo.interval flag on the executable.

Ah, got for clusterinfo, I do see the updated log from the exporter itself.
That said, looking at other metrics, there always seem to be an interval of increase that I cannot match to the scrape interval. You can ignore the small bump 15:20, this was us restarting the exporter.
Assuming the flow is
HttpRequest to /metrics for exporter --> Exporter --> ElasticSearch --> Fetch current counters from /_nodes/stats and /_all/_stats, I can't explain the slow updates of the metrics in Prometheus.

I guess it's possible that there is some hidden aggregation done inside Elasticsearch. But if the out is parsed from /_nodes/stats and /_all/_stats, I can see it clearly change in the ELK Tools tab.

So there could also be something else in play. Looking at another metric + switching to a 1 minute interval, I can clearly see it updates every 60 seconds.


chart.svg.querySelectorAll('.ct-vertical') leads to error

I have trouble selecting particular elements, ie. whenever I do chart.svg.querySelectorAll('.ct-vertical') it will leads to the following error:
Uncaught InvalidCharacterError: Failed to execute 'createElementNS' on 'Document': The qualified name provided ('[object HTMLSpanElement]') contains the invalid name-start character '['.

Demo: http://jsbin.com/yatodamexo/2/edit?html,js,output

Hey there
Thanks for the issue! This is clearly a bug. The problem is with the foreignObject labels. Only the foreign objects are SVG elements but the labels inside are spans. Chartist.Svg was designed to only handle SVGElement and if it's not an SVG element it will assume you wanted to pass a name for creating a new element. The stack trace is:
Svg (chartist.js:1374)
constr (chartist.js:1115)
SvgList (chartist.js:1905)
constr (chartist.js:1115)
querySelectorAll (chartist.js:1490)

As the querySelectorAll creates a new SvgList that creates new Svg elements based on the Node list selected by Element.querySelectorAll.
The Problem is this part: https://github.com/gionkunz/chartist-js/blob/v0.7.3/src/scripts/svg.js#L33-L37
As you can see the name parameter is checked if this element is a SVGElement, and if so it only creates a wrapper element. Otherwise it will create a new element in the DOM.
If you force Chartist to use SVG text instead of foreign objects the error you have seen disappears: http://jsbin.com/pemahi/1/edit
I think there are two approaches to fix this issue.
A: Change the CSS selectors and make the actual foreign Object contain the classes and make the styles to also apply to span found in the foreign Object. This would be nice since we are reducing out concerns to SVG only.
B: Change the SVG module to something more generic like a DOM module that does not freak out with regular HTML Elements.
C: Quick fix by just changing the SVGElement detection to Element and close eyes from any design issues that this may reveal
Thoughts?

@gionkunz since you choose to include foreignObject support in the first place I'd say (B) seems to be the most generic solution which will enhance the lib's capability to manipulate embedded HTML elements; meanwhile I can get around this issue using the workaround found in your demo ;-)

@gsklee I've considered to go down route B, but it brings a lot of issues with backwards compatibility. I've implemented the quick fix and will open a ticket for B to be implemented for 1.0.0

Fixed in 50e9724

@gionkunz thanks!


Add .npmignore

Added .npmignore to ignore dev files from dist.
Goal is to make this module bandwidth efficient.
Even though in this case it only saves a few KB, I think it's a best practice to include .npmignore in every module.
· test and src don't work without the devDependencies, so are useless in production.
· examples are accessible from the documentation (GitHub), so they don't really need to be downloaded every time the module is required.

@marcbachmann are you alive?

😀 sorry. Busy. In general the change is ok.  Pdf files are already excluded by the .gitignore file.
Imo the improvement of the npm cache has a higher priority. Maybe we can help in there 😀.
I'll merge it somewhen.


Easy way to add custom extension on Android

Won't this intent-filter cause the Unity app to be included in the list of apps presented to the user when another application calls startActivityForResult for ACTION_VIEW? This would be very bad for UX. I think it would be enough fileTypes to new string[] { "*/*" };?

Thank you for your reply, I tried ‘“/”’ but showing up ‘No apps can perform this action’ . So I tried to add the intent-filter,May be this is just only my problem?

NativeFilePicker.PickFile( callback, new string[] { "*/*" } ); is supposed to work on Android. Can I see your code that uses */* without declaring any intent-filters?

Sorry for taking so long to reply.
       extUTI = "*/*";
and
`NativeFilePicker.PickFile((path) =>
{
if (path == null || Path.GetExtension(path) != ".rosz")
{
Debug.Log("Operation cancelled");
Loadroszpath = "Operation cancelled";
roszpath = "";
}
else
{
                    Debug.Log("Picked file: " + path);
                    Loadroszpath = Path.GetFileName(path);
                    roszpath = path;
                }
            }, new string[] { extUTI });`

When I run the android app without adding intent-filter , it showing up no apps can perform this action .

Your code works fine for me without any intent-filters on Galaxy S8. I suspect that only a fraction of Android devices suffer from this issue. You can try adding the following code in your Awake/Start function to see if resolves the issue for problematic devices, as well:
using( var ajc = new AndroidJavaClass( "com.yasirkula.unity.NativeFilePickerPickFragment" ) )
	ajc.SetStatic( "pickerMode", 2 );

NativeFilePicker.PickFile( callback, new string[] { "*/*" } ); is supposed to work on Android. Can I see your code that uses */* without declaring any intent-filters?

Is there any way to add custom extension on ExportFile( string filePath, FilesExportedCallback callback = null )?
When I export with the ".pc" extension it just said "no apps can perform this action"

@Yiming075 Can you replace Plugins/NativeFilePicker/Android/NativeFilePicker.aar with this one and see if it works (you need to unzip the zip archive to find the new aar)?

Yes, it works. 👍

Awesome, I've published the fix with the latest commit.


TypeError when inserting into mssql table with multiple primary key columns

Hello,
I connect to an M$ SQL Server (details see below) using bookshelf, knex and mssql node modules. The server has a database table with two primary key columns, therefore idAttribute is not set in my bookshelf model.
I can fetch models from the database allright. Problem is with inserting values:
it('should insert my model', () => {
    const model = new MyModel({
      Key1: 1,
      Key2: 2,
      SomeValue: 'Insert test'
    });
    return expect(model.save(null, { method: 'insert' }))
      .to.eventually.be.fulfilled;
});

The insert succeeds, but a TypeError occurs in the bookshelf event handler which runs after the insert has finished:

TypeError: Cannot read property '0' of undefined
at null. (/.../node_modules/bookshelf/lib/model.js:1015:57)
at tryCatcher (/.../node_modules/bookshelf/node_modules/bluebird/js/main/util.js:26:23)

which translates to line 981 of src/model.js
  }).then(function (resp) {
    // After a successful database save, the id is updated if the model was created
    if (method === 'insert' && this.id == null) {
      const updatedCols = {};
      updatedCols[this.idAttribute] = this.id = resp[0];

Apart from the fact that this.idAttribute is an empty string (not undefined), the variable resp is in this moment undefined.
My assumptions:

Some kind of returning value should be requested from the knex dialect for mssql (see line 24 of knex mssql dialect compiler.js), so that variable resp will exist in the code snippet given above

Technical details

SQL Server Express 64 bit v12.0.2269.0 running on Win10 64bit (MS Windows NT 6.3 10586)
Bookshelf 0.9.5
Knex 0.11.7
mssql 3.3.0

Side notes

The knex debug output looks like this:
{ method: 'insert',
options: {},
timeout: false,
cancelOnTimeout: false,
bindings: [ 1, 2, 'Insert test' ],
__knexQueryUid: 'c67475a2-a65c-48f2-9e35-2e13bdf3a429',
sql: 'insert into [dbo].[my_model] ([Key1], [Key2], [SomeValue]) values (?, ?, ?)',
returning: undefined }

I tested the model with SQLite and it worked. Then, resp is an array where the only element is some integer.

I tested with a model with 1 primary key where idAttribute ist set. It works in mssql, the knex debug output then contains the line sql: 'insert into [dbo].[MY_MODEL2] ([Key1], [some_value]) output inserted.[Key1] values (?, ?)', returning: 'Key1'

As a fix, I suggest to change line 979 in the code snippet above to
if (method === 'insert' && this.id == null && this.idAttribute) {

As mentioned above, this.idAttribute is an empty string in case of multiple primary keys. So the rest of the code in the if-clause doesn't make sense anyway.

I experience the same issue after upgrading from Bookshelf 9.5 to 14.2  ( big jump I know )
Unfortunately however I had to rollback to the old version because I keep getting errors while inserting data.
As the original poster, the
Around line 1131:
return this.triggerThen(
            method === 'insert' ? 'saving creating' : 'saving updating',
            this,
            attributesToSave,
            options
          )
            .bind(this)
            .then(function() {
              return sync[options.method](attributesToSave);
            })
            .then(function(resp) {
              // After a successful database save, the id is updated if the model was created
              if (method === 'insert' && this.id == null) {
                const updatedCols = {};
                updatedCols[this.idAttribute] = this.id = resp[0];  <<<--- This line
                const updatedAttrs = this.parse(updatedCols);

The line updatedCols[this.idAttribute] = this.id = resp[0];
Generates an error because resp is undefined

TypeError: Cannot read property '0' of undefined
at Child. (/home/sremillard/projects/erp/node_modules/bookshelf/lib/model.js:1131:63)
at Child.tryCatcher (/home/sremillard/projects/erp/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/home/sremillard/projects/erp/node_modules/bluebird/js/release/promise.js:512:31)
at Promise._settlePromise (/home/sremillard/projects/erp/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/home/sremillard/projects/erp/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/home/sremillard/projects/erp/node_modules/bluebird/js/release/promise.js:694:18)
at _drainQueueStep (/home/sremillard/projects/erp/node_modules/bluebird/js/release/async.js:138:12)
at _drainQueue (/home/sremillard/projects/erp/node_modules/bluebird/js/release/async.js:131:9)
at Async._drainQueues (/home/sremillard/projects/erp/node_modules/bluebird/js/release/async.js:147:5)
at Immediate.Async.drainQueues [as _onImmediate] (/home/sremillard/projects/erp/node_modules/bluebird/js/release/async.js:17:14)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)

The database is Microsoft SQL Server


Enemy Spawn Issue

Enemy peds wont spawn after a few successful runs, but friendly peds still do. I redownloaded the mod and scripthook but nothings changed

I think that happened to me sometimes too. I will look into it. In the meantime, a possible workaround would be to reload ScriptHookRDR2 DotNet scripts with the Insert key (it can be changed in the ScriptHookRDRDotNet.ini file).


Support non version pages on the website

Description:

Describe the desired behavior, what scenario it enables and how it
would be used.

Currently user docs such as https://gateway.envoyproxy.io/v0.6.0/user/ have the version as a path prefix.
This makes it hard to save this page in other locations because it points a specific version (which will soon become an older version) .
Instead we should also support https://gateway.envoyproxy.io/user/ which points to the current version
[optional Relevant Links:]

Any extra documentation required to understand the issue.

cc @Xunzhuo

The 'latest' version is always fixed, https://gateway.envoyproxy.io/latest/design/goals/.

do you mean select current version(0.6.0) as default?

I would like to add reference in other projects/documentations that do not have version in the path prefix e.g.  https://gateway.envoyproxy.io/user/ , but take the user to the newest stable version (v0.6.0 as of today, maybe v0.7.0 once its releases)

I'm not sure, but maybe https://github.com/istio/istio.io/pull/15092/files will help.

fixed by https://github.com/envoyproxy/gateway/pull/3819


prefer-const requires all destructured array items to be the same

Bug Report

TSLint version: 5.1.0
TypeScript version: 2.2.2
Running TSLint via: (pick one) CLI / VSCode

TypeScript code being linted
let [month, year] = '12/12'.split('/').map(v => +v);
year += 2000;

with tslint.json configuration:
"prefer-const": true,

Actual behavior
[tslint] Identifier 'month' is never reassigned; use 'const' instead of 'let'. (prefer-const)
Expected behavior
No error. I can't use const because I'm altering one of the vars so both need to be let in such a case.

that's what you want:
"prefer-const": [true, {"destructuring": "all"}],

Damn, searched issues but couldn't find anything. Should have checked the docs. Thanks :)


Bug with latest patch

It seems like the nameplates don't update unless the quick menu is open accompanied by the error spamming in the console

Apologies, this patch was made for a newer deobfuscation map which hasn't been released just yet, it should hopefully be out in the next few days.

lel i have the same Spamming shitlike that:
[22:26:04.912] [NameplateStats] [ERROR] Exception in IL2CPP-to-Managed trampoline, not passing it to il2cpp: System.TypeLoadException: Could not resolve type with token 0100005b (from typeref, class/assembly VRC.NameplateManager, Assembly-CSharp, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null)
at NameplateStats.NameplateStatsManager.UpdateNameplatePosition (UnityEngine.Transform nameplateTransform) [0x00037] in <91341fca57ec43839378f335336fcb50>:0
at NameplateStats.NameplateStatsManager.NameplateUpdate () [0x00145] in <91341fca57ec43839378f335336fcb50>:0
at NameplateStats.NameplateStatsManager.set_QuickMenuOpen (System.Boolean value) [0x00008] in <91341fca57ec43839378f335336fcb50>:0
at NameplateStats.Managers+<>c.b__1_1 () [0x00001] in <91341fca57ec43839378f335336fcb50>:0
at NameplateStats.ObjectListener.OnDisable () [0x0000a] in <91341fca57ec43839378f335336fcb50>:0
at (wrapper dynamic-method) NameplateStats.ObjectListener.Trampoline_VoidThisNameplateStats.ObjectListenerOnDisable(intptr,UnhollowerBaseLib.Runtime.Il2CppMethodInfo*)

It seems to be taking longer than expected, so I will create a new version with the obfuscated class name, apologies for the delays.

Should be fixed with 980b35b


[Blades in the Dark] Fix for missing line from CSS to fix current production-impacting bug

Missing line from CSS to fix current production-impacting bug

Submission Checklist
Required

[x] The pull request title clearly contains the name of the sheet I am editing.
[x] The pull request title clearly states the type of change I am submitting (New Sheet/New Feature/Bugfix/etc.).
[x] The pull request makes changes to files in only one sub-folder.
[x] The pull request does not contain changes to any json files in the translations folder (translation.json is permitted)

Changes / Description
I was asked not to submit this fix for a known issue with last week's pull request update due to Roll20 dev needing to fix a separate code issue on their side that the prior deployment revealed. Folks are still complaining loudly about this CSS-based issue, though, so we need to get this out to production ASAP. (It's thankfully a small and simple thing)

Character Sheet Info Roll20 Internal Use only.


Implement JsValue::into_json_string

Motivation
I want to track errors in deserialization using libraries like serde_ignored and serde_path_to_error.
Proposed Solution
implement JsValue::into_json_string function that returns String.
Alternatives
Implement JsValue::into_serde_deserializer that returns serde_json::Deserializer::from_str(&s) instead of serde_json::from_str(&s).
Additional Context
none

Seems reasonable to me to add!

or maybe i could use string api
Are there any performance benefits of using JsValue::from_serde(&value)
instead of
JsValue::from_str(&serde_json::to_string(&value))
and then JSON.parse on the JS side?

I think the performance of those two should be roughly comparable, but I'd recommend testing just to make sure.

Would something like below implementation work @alexcrichton?
    #[cfg(feature = "serde-serialize")]
    pub fn into_serde_deserializer<T>(&self) -> serde_json::Deserializer<serde_json::de::StrRead> {
        unsafe {
            let ret = __wbindgen_json_serialize(self.idx);
            let s = String::from_abi(ret);
            serde_json::Deserializer::from_str(&s)
        }
    }

if you think it's a good approach then I am happy to create a PR. This change needs to enable raw_values feature in serde_json.

That could work, but I think I'm missing something? How's that different from into_serde

Forgive me I don't have great understanding around serde and wasm-bindgen. I thought this issue would an easy one to tackle and I just jumped in :)
What I could see from the tests of into_serde that it returns a Result<T> where T is a type that is deserialized from JavaScript. And what into_serde_deserializer would do is it just returns a deserializer.

I think that could work.
@alexcrichton with that API then I could do this:
struct X { a: u32 }
...
let mut deserializer = js_value.into_serde_deserializer();
let result = serde_path_to_error::deserialize(&mut deserializer);

The error message will be more descriptive. It will point to the field, that causes the deserialization to fail.

Hm that's true, yeah, although I think it would be best perhaps to not support that natively but rather provide bindings to JSON.stringify in js-sys maybe?

How is that gonna help me use serde_path_to_error?

Well the idea is that once you have a JSON string you can do whatever you'd like to deserialize it, basically what the proposed method is doing, except in your crate you're working on.

I will just use the as_string API.


Installation issue: Could not find or load main class com.hortonworks.registries.webservice.RegistryApplication

I was trying to install the registry by following the official documentation, and I ran into issues. Neither bootstrap-storage.sh or registry-server-start.sh works.
$ ./bootstrap/bootstrap-storage.sh create
Using Configuration file: ./bootstrap/../conf/registry.yaml
Error: Could not find or load main class com.hortonworks.registries.storage.tool.sql.TablesInitializer

./bin/registry-server-start.sh conf/registry.yaml

Error: Could not find or load main class com.hortonworks.registries.webservice.RegistryApplication

In fact, registry-server-start.sh puts *.jar files into CLASSPATH as follows:
for file in $base_dir/libs/*.jar;
do
    CLASSPATH=$CLASSPATH:$file
done

But the lib directory does not exist. Am I looking at a wrong document?
FYI: I've checked out fae1adce.

@suminb was this issue resolved?

It was long time ago and I've moved away from the project I was working on back then, so I kind of lost where I was with this issue. I believe I was not able to resolve this issue.

Closing due to inactivity.


Refactor component parsing and update dependencies

Revised ComponentParser and MetaComponent structure to improve maintainability and introduced support for MetaComponentV2. Updated ruff dependency to version 0.8.4, added mypy target to the Makefile, and switched GitHub workflow to make for uniform task execution.

Codecov Report
Attention: Patch coverage is 92.30769% with 2 lines in your changes missing coverage. Please review.

Project coverage is 98.23%. Comparing base (279b799) to head (7560502).

Files with missing lines
Patch %
Lines

ml_orchestrator/comp_parser.py
92.30%
1 Missing :warning:

ml_orchestrator/meta_comp.py
90.90%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #74      +/-   ##
==========================================
- Coverage   99.24%   98.23%   -1.01%
==========================================
  Files          11       11
  Lines         266      284      +18
==========================================
+ Hits          264      279      +15
- Misses          2        5       +3

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Loading network with CuDNNLSTM on a CPU fails

I'm trying to use a network trained with CuDNNLSTM layers on a CPU - as I understand it this is now a supported scenario if I recreate the network with "simple" LSTM layers and then load the weights (ref. https://github.com/keras-team/keras/pull/8307)
Here is a script that as I understand it should work:
https://gist.github.com/optiluca/18629eb8aa74e6043ef857ae0f4cb5da
But:
ValueError: Dimension 0 in both shapes must be equal, but are 400 and 800. Shapes are [400] and [800]. for 'Assign_2' (op: 'Assign') with input shapes: [400], [800].
Did that change ever make it into a release?  I'm on keras 2.2.4.  I've tried messing with preprocess_weights_for_loading and other things I saw elsewhere, but am failing on all fronts at the minute.
Thanks,
Luca

Hi! Any news on this issue? Thanks!

Looks like it works loading the Weights Layer by layer...
From your example @optiluca
import numpy as np
from keras.layers.core import Dense, Activation, Dropout
from keras.layers import CuDNNLSTM, LSTM
from keras.models import Sequential
from keras.models import load_model
from keras import optimizers
from keras.engine.saving import preprocess_weights_for_loading
import keras

sample_size = 100

l1gpu = CuDNNLSTM(input_shape=(sample_size, 10), return_sequences=True,
                        units=100)
l2gpu = CuDNNLSTM(input_shape=(sample_size, 10), return_sequences=False,
                        units=100)

l1cpu = LSTM(input_shape=(sample_size, 10), return_sequences=True,
                   units=100, recurrent_activation='sigmoid')
l2cpu = LSTM(input_shape=(sample_size, 10), return_sequences=False,
                   units=100, recurrent_activation='sigmoid')

# GPU
model_gpu = Sequential()

model_gpu.add(l1gpu)
model_gpu.add(Dropout(0.3))
model_gpu.add(l2gpu)
model_gpu.add(Dropout(0.3))
model_gpu.add(Dense(1))
model_gpu.add(Activation("tanh"))
model_gpu.compile(loss="mse", optimizer=optimizers.Adam(lr=0.0001))
print(model_gpu.summary())

# CPU
model_cpu = Sequential()
model_cpu.add(l1cpu)
model_cpu.add(Dropout(0.3))
model_cpu.add(l2cpu)
model_cpu.add(Dropout(0.3))
model_cpu.add(Dense(1))
model_cpu.add(Activation("tanh"))
model_cpu.compile(loss="mse", optimizer=optimizers.Adam(lr=0.0001))
print(model_cpu.summary())

l1cpu.set_weights(preprocess_weights_for_loading(l1cpu, l1gpu.get_weights()))
l2cpu.set_weights(preprocess_weights_for_loading(l2cpu, l2gpu.get_weights()))

TF 2.0 addresses this


Dev guide update

For https://github.com/CS2103-AY1819S1-F10-2/main/issues/117 , fixing the points that I've tagged my name with.

Unclean PR


How Do People Profile Mruby Code?

As the topic asks, what methods do people use to profile their mruby code (in particular the ruby portion, not the C bits)?
I've got a reasonably large project mruby with ~17k-50k lines of ruby (depending upon how it's measured) and ~4.5k lines of C in addition to the mruby+other-mruby-gems used. I'm trying to use this for a user interface which needs to be responsive and optimizing the ruby side is rather tricky IMO.
Most of my ruby based optimizations have been guessing as to what's the problem, creating a test script, adding Time.new calls to see how long the test takes, and trying optimizations to lower the total run time. Ideally this would be replaced by some sort of instrumentation based profiling, but I'd be happy to have a basic sampling profiler. A sampling would catch a ton of the time where the program was sleeping due to frame limits, but that ought to be easy enough to work around.
So, is there a way to easily instrument mruby code built in?
are there any gems which tackle this problem?
does anyone have any external tool or mruby patches which making profiling easier?

Here's an update since no one else pointed it out:
After stumbling across the mruby-profiler gem and using it for some optimization work I ended up summarizing some of my notes taken while getting used to the profiler. mruby-profiler isn't perfect by any means, but it's certainly the best option I've seen for dealing with the ruby side of a mruby powered codebase.

Hmm, that's a great article, thanks for contributing that. Maybe we really should write a mruby book on wikibooks or so...

@beoran I personally don't have enough time to invest in something akin to a fully populated wikibook. I'd suggest keeping stuff at a smaller scale targeting trickier subjects. IMO these sorts of topics are best covered either with the guides shipped in the mruby src or in medium length blog style articles.

stumbled about your article, the gem is sadly broken cause mruby changed too much internally for it to still work.
i would really like to be able to profile mruby and c extension code, but its sadly not possible it seams anymore.

Poking around the mruby-profiler repo for an hour or so, I can get it to spit out opcode sequences along with hit rates. So, while it doesn't look like it would be an entirely trivial effort, it should be possible to resurrect that specific gem to get the same type of output that was previously available.


Vape Server

Thanks For The Compiled Server.

my recoded Vape Lite and Vape V4 is now working. :)


Long-term tracking of files to avoid initial full path

have a hidden file keeping track of all files (basically something corresponding to the watched_files dictionary).
when compiling (without a forcing argument), check if there's a diff or new files
recompile what has diff-ed.

Should still probably compile 1 of the file so that it triggers the refresh for browser sync, either that or just make a small modif so that it triggers? Could also just apply "open" in the run scrpit.

Note that this should be used in JuDoc.publish() so that user could make a small edit, and directly call JuDoc.publish knowing that the change will be applied (at the moment it's not so you have to run the JuDoc.serve before JuDoc.publish.

To be honest that's somewhat irrelevant. all the overhead is warming up the Judoc engine (takes 2-3seconds) after that we're talking milliseconds per page so probably hair splitting... would still be good for very large projects with thousands of pages but we're not quite there yet.


[automated] Update Lotus version in API tests

Changes

Updates Lotus version in the JSON-RPC API tests to the latest release.

Lotus 1.30 is buggy. We'll wait for 1.31.

@lemmih Leshy is not as smart as the dependabot, he'll open the same PR soon. Best is to keep it open, just mark it as do not merge.


Bump to Theo 3.1.2

Makes it so that SSL connections no longer need their own certificate, and removed dependency on ShellOut for macOS and Linux. Also add support back in for iOS, macOS, Linux, tvOS and watchOS


Warning while installing use --local=global instead of global for npm install -g npm@latest/v && npm install –location=global create-react-app

npm install –location=global create-react-app
npm WARN config global --global, --local are deprecated. Use --location=global instead.
npm ERR! arg Argument starts with non-ascii dash, this is probably invalid: –location=global
npm ERR! code EINVALIDTAGNAME
npm ERR! Invalid tag name "–location=global" of package "–location=global": Tags may not have any characters that encodeURIComponent encodes.
npm -v
npm WARN config global --global, --local are deprecated. Use --location=global instead.
8.12.2
npm install -g npm@latest
npm WARN config global --global, --local are deprecated. Use --location=global instead.
npm WARN config global --global, --local are deprecated. Use --location=global instead.
np
added 1 package, and audited 202 packages in 11s
11 packages are looking for funding
run npm fund for details

You for got a "-" in location. Try again with the following "npm install –-location=global create-react-app"

The issue was that npm was not installed globally. It was resolved after installing it globally.


test: final cypress tests for info page

Issue
https://gravitee.atlassian.net/browse/APIM-2075
Description
Info page tests for APIs in APIM.
Splitting out my General and Plan commits, with updated code and faker details.
This is final PR (finished test). Including conflict resolve and lint fixes.
Tests for Danger Zone to be continued at a later date when I understand full consequence and can fulfil end-to-end test.
(See JIRA)
Additional context

📚  View the storybook of this branch here

squashed commits and moved to https://github.com/gravitee-io/gravitee-api-management/pull/4790


Allow classes to override is_a() to return an object's class.

This allows several instances of the same class to have different metatables.

Coverage decreased (-0.1%) to 80.659% when pulling 03d7b54ee5ef2c1165da1359c96bba654033ab7b on jvprat:overridable_is_a into 16d149338af9efc910528641c5240c5641aeb8db on stevedonovan:master.

We have to think this one through - why would an object want to do this? I suppose I'm looking for a motivational application for this...

Bump? It's a cool idea, but again I need some examples of where it solves real problems.

It's been some time, so I don't remember all the details, but here's an overview.
For my use case, I implemented "typed tables", as a way to control which members can a table contain, and their types (an attempt to bring strong typing to Lua at runtime).
The next step was to use these typed tables as the instances of Penlight's classes (typed classes). This allows for all instances to have the same restrictions.
I don't remember the implementation details, but I needed a way for each instance to return its class type, and this is the only way I found.
I hope it makes sense.

imo too much an edgecase to include in a general purpose lib. My 2cts.

That's my feeling also.  Every new wheel we add to this class abstraction will need to be documented. It does feel a little specialized.

If we're not merging, can we close this?


First article in latest shouldn't be treated special

@bruskiza & @saeedmb8 ready for review.

:+1:


SQL Server Agent: Job Filter Lost

SQL Operations Studio Version: 0.31.4
SQL Server Agent: 0.31.4
Steps to Reproduce:

Filter jobs
View detail of a job
click back

Expected: Filter would be retained
Actual: Filter is reset

it would also be very helpful if the job just viewed would retain the focus or highlight, instead of reverting to the top of the job list.


[@SoftDelete]db.delete()  cannot syncing data to Elasticsearch when use "@softDelete

my meet an error is :
when invoke SoftDelete,[mysql] execute "update" operation after that [ElasticSearch] followed it,do a "update bulk".
But i am glad to see [ElasticSearch] can receive a "delete bulk" request.

As I see it this is a duplicate of https://github.com/ebean-orm/avaje-ebeanorm-elastic/issues/12
We should probably close this issue and process the other one.

Closing this, will look to progress ebean-orm/avaje-ebeanorm-elastic#12

got it ，thanks very much!


[WIP] Support assigning to class

Supports the following:
a.__class__ = B

Note at the moment this incorrectly allows, but this is a wider issue(#1979 ):
a.__class__ = int

I used https://docs.rs/arc-swap/0.4.7/arc_swap/, for both the typ and dict fields within PyObject as it seems like that would have a slightly lower overhead than a Mutex. A benchmark with just the dict mutex replaced with ArcSwap showed a small improvement. Even with that, this PR has caused a regression of around 25% :disappointed:, due to the typ field being accesed quite a lot(I think).

re: accessing typ a lot, maybe there could be pub(crate) method that returns an arc_swap::Guard so that internal method lookup doesn't have to go through the cost of load_full()

Or I suppose the field is already pub(crate) you could just do obj.typ.load()

I have been able to reduce the performance regression of this PR down to just under 10% by using PyLease(wrapper around arc_swap::Guard) in a lot of places. Is this an acceptable regression? Otherwise I will have to look again where I can improve performance around this.

What's the performance regression like if you use IndependentArcSwap? That might be better, since it shouldn't have to deal with multiple locks on ALL __class__ fields at once

That actually made it worse :cry:. The benchmark results for bench_rustpy_mandelbrot are as follows:
master:                        1,473,571,865 ns/iter (+/- 9,875,746)
ArcSwap:                     1,562,154,302 ns/iter (+/- 8,891,651)
IndependentArcSwap: 1,691,609,695 ns/iter (+/- 14,180,686)
I'm a little bit surprised by the amount these change are having on the overall performance.

I guess 3+ atomic ops on every method lookup compared to just an offset of the pyobject does have a decent impact. Kinda just curious now, but how does this compare to a parking_lot::RwLock? If that's easy to do for you. Maybe these "optimizations" are just more work than locking an uncontended RwLock (which is just one atomic op, I think). Idk, if not, the regression is probably fine. Maybe we could have cargo features to disable obscure python features like this in order to get a performance speedup.

RwLock test bench_rustpy_mandelbrot 1,318,745,820 ns/iter (+/- 5,858,271) :tada:
The above includes the changes I have made within this PR that reduces the amount of clones that we perform, that is why it's faster than no locking. I'm surprised that the RwLock performs so well.

Under the hood, it looks like arc-swap has their own sort of parking lot with shards and stuff, but that naive implementation with a bunch of work done on each lock + only a limited number of total locks can't beat parking_lot with its 1 atomic op for uncontended locking and parking lot for determining contention.

This is ready for review now.

#1568


<EMAIL_ADDRESS>shebang is removed with<EMAIL_ADDRESS>

Steps to reproduce in a empty folder run:
npm install<EMAIL_ADDRESS>
npm install<EMAIL_ADDRESS>
Create index.js with the following content:
#!/usr/bin/env node
console.log("hello world");

Running just prettier returns the correct result:
npx prettier index.js

#!/usr/bin/env node
console.log("hello world");

Running with @homer0/prettier-plugin-jsdoc removes the shebang:
npx prettier --plugin "@homer0/prettier-plugin-jsdoc" index.js

console.log("hello world");

Not sure if this is a bug in @homer0/prettier-plugin-jsdoc or in prettier.
It works when using<EMAIL_ADDRESS>
Tested also other plugins like<EMAIL_ADDRESS>where this works correctly with both versions of prettier.

@campersau Hey 👋
I wasn't aware that Prettier 3 was out! I'll check this today, regardless which package cause the issue, it should be an easy fix.

@campersau 👋
It took more than I expected, but after adding support for V3, it seems like the shebang issue is gone. I added a test for it, and, just in case, here's a video:
https://github.com/homer0/packages/assets/6949310/11b4a3f8-c16d-4585-b608-d97eb98a412f
Have fun!


Improved handling of AppBar's action Icon sizes

Adds checks for ancestor AppBar widgets to IconButton. Unfortunately, they seem unable to simply run an elegant merge on ancestor IconThemeData classes, because IconButtons additionally wrap themselves in SizedBoxes, which require knowledge of the final size.
Resolves #58752
Pre-launch Checklist

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I signed the [CLA].
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test-exempt.
[x] All existing and new tests are passing.

I don't know if it's important to capture the Close/Back buttons in this change, but it would seem that to do so would require adding a size parameter with runtime resolution, which would remove their const declaration.

Is this merged? it doesn't seems so, not even in master branch.
https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/material/app_bar.dart