WIP | Separate download torrent from install script

While trying to make the game more accessible, I found that coupling install and download model causes a lot of headache. This PR seeks to separate them so that user can pick the method they would like to get the model.

Just realized this will conflict with #93 ...

Yeah, I was just about to comment that. IMO, I don't think it's necessary to split the installer and the model download like this. If there is really a need for it, then we can add optional command line flags to skip steps in the install script

@dyc3 I think it is necessary to do so, because as I went through your PR, I found that the logic checking for dependency can get large (i.e, the part where user is instructed to install python3.6).
I think splitting them make more sense when you look from the perspective of running this game from a notebook environment like google collab. I think it is easier to reason about the error and debug it when these feature are separated into separate script.
One problem I faced recently was when the runtime on collab expire and I have to reconnect the instance, the git clone and folder are there, but the runtime has no dependency installation. The install script failed to recognize that and thus it does not run pip install.

I've never encountered that. Usually, if the collab session expires I just rerun all the blocks and it works just fine

Hey #93 was merged to develop, can you look at the conflict that causes?

Yup will do!

@ben-bay Should be good for review

Since the model is such a bear, I like the decomposition here. Before merge, can you add this to CHANGELOG.md under [Unreleased] (probably counts as a "Change")?

Probably should inform the user to run download_model.sh to make it more clear.


Use random port number when starting cardano-testnet

Description
This PR makes cardano-testnet use random port range when starting the testnet. The issue arises in Hydra, when cardano-testnet is executed for multiple architectures at once, using separate invocations of cabal test. This can result in clashes in occupied ports by different testnets and test failure similar to this (taken from https://ci.iog.io/build/3734298/nixlog/1):
Cardano node process did not start:
cardano-node: DiffusionError Network.Socket.bind: resource busy (Address already in use)
Cardano node process did not start:
cardano-node: DiffusionError Network.Socket.bind: resource busy (Address already in use)
Cardano node process did not start:
cardano-node: DiffusionError Network.Socket.bind: resource busy (Address already in use)

Checklist

[ ] Commit sequence broadly makes sense and commits have useful messages
[ ] New tests are added if needed and existing tests are updated.  These may include:

golden tests
property tests
roundtrip tests
integration tests
See Runnings tests for more details

[ ] Any changes are noted in the CHANGELOG.md for affected package
[ ] The version bounds in .cabal files are updated
[ ] CI passes. See note on CI.  The following CI checks are required:

[ ] Code is linted with hlint.  See .github/workflows/check-hlint.yml to get the hlint version
[ ] Code is formatted with stylish-haskell.  See .github/workflows/stylish-haskell.yml to get the stylish-haskell version
[ ] Code builds on Linux, MacOS and Windows for ghc-8.10.7 and ghc-9.2.7

[ ] Self-reviewed the diff

Note on CI
If your PR is from a fork, the necessary CI jobs won't trigger automatically for security reasons.
You will need to get someone with write privileges.  Please contact IOG node developers to do this
for you.

@smelc

Multiple architectures are trying to use the same port number of one machine? How can this happen? Are the architectures being emulated and so are sharing the same pool of ports of one physical machine?

Hydra. It's cross-compiling and running tests on the same host.

So wouldn't it be simpler to multiply numberOfPorts by the number of architectures?
Do you mean to use that instead of maxPortsPerRequest? I'd have to find out and hash the architecture currently used to get different starting port offset too.


RFC: curly braces instead of end

Problem

Most text editors autocomplete { with } and automatically insert indentation after you hit enter, but few editors autocomplete def x(...) with end, which makes programming languages that use end much harder to write. In fact, it's much harder for the editor to complete with end since there are a variety of situations in which end should be inserted (class definitions, method/function definitions, blocks), but only one situation where a close bracket should be inserted (after an open bracket).
It's more succinct. {} is two characters whereas end is three.
Curly braces are more popular so people are likely to know about them.
Using curly brackets would get rid of two magic keywords (do and end) and thus would simplify the syntax so it is easier to read. It also frees you up to use do and end as variables.

Proposal
This would apply to blocks, function/method definitions, and class definitions.
Instead of this:
class Example
  def self.hello
    3.times do
      puts "Hello, World!"
    end
  end
end

It would be this:
class Example {
  def self.hello {
    3.times {
      puts "Hello, World!"
    }
  }
}

This would be a major breaking change but backwards compatibility measures can be taken (supporting both curly braces and end, for example). And Crystal isn't 1.0 yet so backwards compatibility shouldn't be that big of a deal.
The idea is mentioned by @j8r here: https://github.com/crystal-lang/crystal/issues/9080#issuecomment-641563245
I know this might be an unwelcome proposal but please do consider developing a unique syntax based on developer ergonomics instead of doing whatever Ruby does (Ruby is great in a lot of ways but IMO end is one of its weak points).

His idea was related to that PR, allowing 1 line methods.  I don't think the intent was to suggest replacing end with {} across the board.
Given this would be a massive breaking change right before 1.0.0, I doubt it'll ever happen.
Also for whatever it's worth, using {} for blocks is also valid.  I.e. your two 3.times examples are equivalent, although do ... end is the more idiomatic way if there is more than 1 line of code in the block.

This has been proposed and discussed multiple times in the past. We will not do this.


Bug: windows support

This library is not working on windows

Can you show me how it's not working?

I don't have windows currently. But I remember that
https://github.com/GervinFung/ts-add-js-extension/blob/d5796197bfa692ab45240865f64028e5cefb836e/src/traverse-and-update.ts#L41-L58
The filePath here in windows is 'lib\\foo\\bar' but in macOS is  'lib/foo/bar' .

Let me provide you some e2e test

@xiaoxiangmoe is the test ready?

I found your test case is good enough to find windows compatibility issues.
By the way, I fixed the bug, see pr for details.

I don't have windows currently. But I remember that
https://github.com/GervinFung/ts-add-js-extension/blob/d5796197bfa692ab45240865f64028e5cefb836e/src/traverse-and-update.ts#L41-L58
The filePath here in windows is 'lib\\foo\\bar' but in macOS is 'lib/foo/bar' .

Ok, understood, recently just got Windows work laptop, can find the issue

@GervinFung  See my fix https://github.com/GervinFung/ts-add-js-extension/pull/45


Allow user to replace docker repo prefix from image names

Example usage:
replacements:
  imageNamePrefixes:
    '123456789012.dkr.ecr.us-east-1.amazonaws.com': '<prod>'
    '923456789999.dkr.ecr.us-east-1.amazonaws.com': '<dev>'

Closes #316

Tested locally and it works like a charm. Thanks @miles170 !

Thanks @miles170 and @jesseduffield!


Fix ONNX mnist example

$ python examples/onnx2xla.py
interpreted:
2020-03-07 06:36:50.670108: W external/org_tensorflow/tensorflow/compiler/xla/service/hlo_pass_fix.h:49] Unexpectedly high number of iterations in HLO passes, exiting fixed point loop.
[[-1.7834076  -1.5465244  -0.62322634  0.8309603  -1.6586142   1.6030703
   2.7646823  -3.4099061   1.6252056  -0.16226588]]
compiled:
2020-03-07 06:36:51.006654: W external/org_tensorflow/tensorflow/compiler/xla/service/hlo_pass_fix.h:49] Unexpectedly high number of iterations in HLO passes, exiting fixed point loop.
[[-1.7834076  -1.5465244  -0.62322634  0.8309603  -1.6586142   1.6030703
   2.7646823  -3.4099061   1.6252056  -0.16226588]]
a derivative with respect to inputs:
2020-03-07 06:36:51.332267: W external/org_tensorflow/tensorflow/compiler/xla/service/hlo_pass_fix.h:49] Unexpectedly high number of iterations in HLO passes, exiting fixed point loop.
2020-03-07 06:36:51.826406: W external/org_tensorflow/tensorflow/compiler/xla/service/hlo_pass_fix.h:49] Unexpectedly high number of iterations in HLO passes, exiting fixed point loop.
[[[[-0.19625956 -0.535938   -0.34380013]
   [-0.09520985 -0.37791467 -0.16941234]
   [-0.46761942 -0.31263122 -0.56464744]]]]

@googlebot I signed it!

Thanks!


Deploy in PythonAnywhere

Anyone has successfuly deployed in PythonAnywehere? If, yes how did you configure it?

It looks that python anywhere does not support web sockets https://www.pythonanywhere.com/forums/topic/28393/. That means that you will not be able to deploy chainlit apps there.
We have guides on how to self host here https://docs.chainlit.io/cloud/deploy (more to come)

i followed the tutorial to deploy on flyio but it keeps giving me this error: gru [error] instance refused connection. is your app listening on <IP_ADDRESS>:8080? make sure it is not only listening on <IP_ADDRESS> (hint: look at your startup logs, servers often print the address they are listening on).
Any idea how to fix it?


depend_on's ordering in stopping case

hello! thanks for this great gem!
i want to monitor kafka process via eye.
in standalone setup, it consists of 1 zookeeper and 1 broker.
we should start zookeeper first, then broker.
I use the DSL depend_on to achieve this goal, and it works as expected.
but when I call stop all, the broker cannot be stopped properly.
because zookeeper has already been stopped before broker is fully down.
I check eye's code, and find that it did schedule a stop command to broker.
but it didn't wait until broker was fully stopped.
I'm not sure how to solve this problem. anyone has idea?
here's my config BTW
require 'fileutils'

CWD = File.dirname(__FILE__)
EYE_LOG_PATH = File.expand_path('logs/eye.log', CWD)
FileUtils.touch EYE_LOG_PATH

Eye.config { logger EYE_LOG_PATH, 'daily', 134_217_728 }

Eye.application('kafka') do
  working_dir CWD

  group('standalone') do
    chain grace: 5.seconds
    process(:zookeeper) do
      start_command 'bin/zookeeper-server-start.sh config/zookeeper.properties'
      pid_file 'tmp/pids/zookeeper.pid'
      stdall File.expand_path('logs/zookeeper.log', CWD)
      daemonize true
      stop_signals [:TERM, 1.minute, :KILL]
    end
    process(:broker) do
      start_command 'bin/kafka-server-start.sh config/server.properties'
      pid_file 'tmp/pids/broker.pid'
      stdall File.expand_path('logs/broker.log', CWD)
      daemonize true
      depend_on [:zookeeper]
      stop_signals [:TERM, 15.minutes, :KILL]
    end
  end

depend_on is a set of triggers which added for both processes with default depends behaviour, you can add your own trigger, example:
(this is just draft, need to check or debug it)
class Eye::Trigger::WaitChildToStop < Eye::Trigger
  param :child_name, String
  param :wait_timeout, [Numeric], nil, 15.seconds

  def check(transition)
    wait_until_stop if transition.event == :stopping
  end

private

  def wait_until_stop
    child = Eye::Control.find_nearest_process(child_name, process.group_name_pure, process.app_name)
    return unless child

    process.wait_for_condition(wait_timeout, 0.5) do
      info "wait for #{child_name} until it :down"
      (child.state_name == :unmonitored) || (child.state_name == :down)
    end
  end
end

CWD = File.dirname(__FILE__)
EYE_LOG_PATH = File.expand_path('logs/eye.log', CWD)
FileUtils.touch EYE_LOG_PATH

Eye.config { logger EYE_LOG_PATH, 'daily', 134_217_728 }

Eye.application('kafka') do
  working_dir CWD

  group('standalone') do
    chain grace: 5.seconds
    process(:zookeeper) do
      start_command 'bin/zookeeper-server-start.sh config/zookeeper.properties'
      pid_file 'tmp/pids/zookeeper.pid'
      stdall 'logs/zookeeper.log'
      daemonize true
      trigger :wait_child_to_stop, :child_name => :broker
      stop_signals [:TERM, 1.minute, :KILL]
    end
    process(:broker) do
      start_command 'bin/kafka-server-start.sh config/server.properties'
      pid_file 'tmp/pids/broker.pid'
      stdall 'logs/broker.log'
      daemonize true
      depend_on [:zookeeper]
      stop_signals [:TERM, 15.minutes, :KILL]
    end
  end

btw, you not need to write this stdall File.expand_path('logs/broker.log', CWD), it is already expand with working_dir, stdall 'logs/broker.log'

Fast response!
As you advised, I write a custom trigger and it works now. Thanks!
I also change stdall's argument to use relative path now.
here's the implementation.
class Eye::Trigger::RequiredBy < Eye::Trigger::Custom
  param :names, [Array], true
  param :wait_timeout, [Numeric], nil, 15.seconds

  def check(transition)
    wait_required_by_process if transition.to_name == :stopping
  end

  private

  def wait_required_by_process
    processes = names.map do |name|
      Eye::Control.find_nearest_process(name, process.group_name_pure, process.app_name)
    end.compact.reject { |p| p.state_name == :unmonitored || p.state_name == :down }

    return if processes.empty?

    processes = Eye::Utils::AliveArray.new(processes)

    res = true

    processes.pmap do |p|
      name = p.name

      res &= process.wait_for_condition(wait_timeout, 0.5) do
        info "wait for #{name} in #{wait_timeout}s until it :down or :unmonitored. now it's #{p.state_name}"
        p.state_name == :down || p.state_name == :unmonitored
      end
    end

    unless res
      warn "#{names} are not transition to :unmonitored"
    end
  end
end

For convenience, I also patch depend_on
module ProcessDSLRequiredBySupport
  def depend_on(names, opts = {})
    super(names, opts)

    nm = @config[:name]
    names.each do |name|
      parent.process(name) do
        trigger("required_by_#{unique_num}", opts.merge(names: [nm]))
      end
    end
  end
end

Eye::Dsl::ProcessOpts.send(:prepend, ProcessDSLRequiredBySupport)


Discussion group does not exist?

README.md contains a link to https://groups.google.com/forum/#!forum/hashtable-benchmarks, but when I visit it says:

This group either doesn't exist, or you don't have permission to access it.

Has the group been closed? Or is it not publicly accessible?

permissions error on my part.  Should be fixed now.  Sorry about that


Enable Auto builds in DockerHub

Hey this is nice work.
Is it possible to enable auto builds in DockerHub for this repo so that any upstream changes triggers a new build?

@hardikns unfortunately, this not is not finished yet and we don't recommend to use it. That's why it's not published on Docker Hub and has no versions updates.
We can't give any ETAs when it will be finished. However, you're free to use as the basis for your own Docker image.


Span propagation with 'instrumentation-type=decorate-queues' does not work properly when a 'onEachOperator' is added

Describe the bug
An application with:
spring-boot: 2.4.5
spring-cloud-dependencies: 2020.0.2  (sleuth: 3.0.2)
If an 'onEachOperator' hook is added (it does not matter what the hook is doing), for example the following hook:
static {
        Hooks.onEachOperator("my-key", Operators.lift((sc, sub) -> sub));
}

The following GetMapping does not propagate the correctly the span:
Sample
@GetMapping(path = "otherflux2")
public Flux<String> otherflux2() {
  return Flux.just("one", "two", "three")
     .publishOn(Schedulers.boundedElastic())
     .flatMap(str -> Mono.just(str))
     .map(str -> {
         System.out.println("item: " + str);
         System.out.println("span: " + this.tracer.currentSpan());
         System.out.println("thread: " + Thread.currentThread().getName());
         System.out.println();

         return str;
    });
}

It prints out the following output:
item: one
span: LazySpan(9fd3bf22239d60c3/9fd3bf22239d60c3)
thread: boundedElastic-1

item: two
span: null
thread: reactor-http-nio-2

item: three
span: null
thread: reactor-http-nio-2

Note that:

There is a 'publishOn' before doing a flatMap
The span is correctly propagated for the first item
From second to the last item, the span is not propagated

It is curious that, also from the second item, the code is executed in the reactor-http-nio thread.
I have attached the code of the project to reproduce it. sleuth-propagation.zip.
In order to execute the piece of code shown previously, just make a get request to http://localhost:8080/otherflux2

@simonbasle :scream: please help

@JordiMartinezVicent can you check the latest snapshots (2020.0.3-SNAPSHOT) ? I was fixing one thing with the decorate on queues there so maybe it helped?

It works with the snapshot :)

Great! Let's close it then. So the problem was that I've forgotten to add the onLastOperator for the decorate queues option.


Surface ES startup errors to the Rally log

It can be frustrating to troubleshoot why a Rally-managed Elasticsearch instance is not starting. Currently, we only log in the console the sub process's return code, with no further information. If you are intimately familiar with where installations go, and how to preserve them, you can troubleshoot this manually, but it would seem to be better to log the issue the first time rather than requiring a round of reproduction and a process of manually trying it yourself.
A straightforward reproduction of this issue is the following invocation, with a too small heap size:
esrally race --track geonames --distribution-version 8.1.0 --car-params '{"heap_size": "1m"}'

This change uses the subprocess.run function introduced in Python 3.5 to check the subprocess and print its output to the log on failure. There is some background to why we do not do this currently in #879, but I believe the output is worthwhile, and at the time I think 3.5 was very recently our minimum Python version so this option may have been overlooked... or there may be a more technical reason I am missing.

Precipitating forum post: https://discuss.elastic.co/t/esrally-exceptions-launcherror-daemon-startup-failed-with-exit-code-1/302323/2

I believe the build was interrupted after 80 minutes, which explains the failure. @dliappis Do you know how we can bump the timeout?

I believe the build was interrupted after 80 minutes, which explains the failure. @dliappis Do you know how we can bump the timeout?

As we don't have .ci definitions stored within this repo (see https://github.com/elastic/rally/pull/1395) unfortunately this is controlled in a different private repo.

I've been looking at this the last couple hours and very consistently getting the timeout on this branch, I think the regression is legit

Would you still be interested in a review? I've been waiting for the investigation of that regression.


MMCA-4445-customs-guarantee-account-frontend

Could you please have a look at below aggregate comments?

Below are in normal code (command - sbt scalastyle)
warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/connectors/CustomsFinancialsApiConnector.scala:79:36: Magic Number
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/connectors/CustomsFinancialsApiConnector.scala:108:34: Magic Number
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/services/AuditingService.scala:72:6: Public method must have explicit type

Not sharing the scalastyle comments as you are still working on it

Below are when sbt clean compile is done
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/controllers/DownloadCsvController.scala:77:65: Auto-application to () is deprecated. Supply the empty argument list () explicitly to invoke method filenameWithDateTime,
[warn] or remove the empty argument list from its definition (Java-defined methods are exempt).
[warn] In Scala 3, an unapplied method like this will be eta-expanded into a function.
[warn]             s"${disposition.getOrElse("attachment")}; filename=$filenameWithDateTime"
[warn]                                                                 ^
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/controllers/DownloadCsvController.scala:98:8: adapted the argument list to the expected 2-tuple: add additional parens instead
[warn]         signature: Try.apply[T](r: => T): scala.util.Try[T]
[warn]   given arguments: LocalDate.parse(from), LocalDate.parse(to)
[warn]  after adaptation: Try((LocalDate.parse(from), LocalDate.parse(to)): (java.time.LocalDate, java.time.LocalDate))
[warn]     Try(LocalDate.parse(from), LocalDate.parse(to)) match {
[warn]        ^
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/controllers/RequestTransactionsController.scala:42:47: parameter value eh in class RequestTransactionsController is never used
[warn]                                               eh: ErrorHandler,
[warn]                                               ^
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/controllers/RequestTransactionsController.scala:43:47: parameter value appConfig in class RequestTransactionsController is never used
[warn]                                               appConfig: AppConfig) extends FrontendController(mcc) with I18nSupport {
[warn]                                               ^
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/views/ErrorTemplate.scala.html:1:1: Unused import
[warn] @*
[warn] ^
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/views/Layout.scala.html:1:1: Unused import
[warn] @*
[warn] ^
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/views/Layout.scala.html:28:9: parameter value govukBackLink in class Layout is never used
[warn]         govukBackLink: GovukBackLink,
[warn]         ^
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/views/Layout.scala.html:31:9: parameter value h2 in class Layout is never used
[warn]         h2: components.h2,
[warn]         ^
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/views/Layout.scala.html:32:9: parameter value p in class Layout is never use
[warn]         p: components.p
[warn]         ^
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/views/Layout.scala.html:37:9: parameter value helpAndSupport in method apply is never used
[warn]         helpAndSupport: Boolean = true,
[warn]         ^
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/views/Layout.scala.html:40:9: parameter value dutyDeferment in method apply is never used
[warn]         dutyDeferment: Boolean = false
[warn]         ^
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/views/components/button.scala.html:1:1: Unused import
[warn] @*
[warn] ^
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/views/components/errorSummary.scala.html:1:1: Unused import
[warn] @*
[warn] ^
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/views/components/exceededThreshold.scala.html:1:1: Unused import
[warn] @*
[warn] ^
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/views/components/guarantee_account_summary.scala.html:1:1: Unused import
[warn] @*
[warn] ^
[warn] /Users/vineet.tyagi/hmrc/codebase/customs-guarantee-account-frontend/app/views/components/guarantee_c18_reference.scala.html:1:1: Unused import
[warn] @*
[warn] ^
[warn] 16 warnings found

Note: - Unused import warnings for the views could be silenced by using below after adding in scalaoptions.
"-P:silencer:pathFilters=target/.*"

Please replace "" with emptyString in tests wherever applicable

Please address below as well

AppConfig - please remove unused values mrnEncryptionKey, guaranteeAccountInterval, guaranteeAccountTimeout, registerCdsUrl, govUkHomepage. Also remove the relevant application conf enteries

AppDependencies - replace  sbt._ with sbt.* at line no 2

forms.mappings.Formatters.  at line 51 and 52, update to  as below as Either is by default right based
.bind(key, data)
.map(_.replace(comma, emptyString))
.flatMap {
also better to add return type for bind and unbind method

ErrorHandler - keep parameters on separate lines at line 28 and 31 to avoid long lines

GuaranteeAccountControllerSpec - replace import scala.collection.JavaConverters._ with scala.jdk.CollectionConverters as JavaConvereters is depracated

FileInformation -  at line 39, update to below
implicit val metadataWrites: Writes[Metadata] = (o: Metadata) => {
JsArray(o.items.map(
item => Json.obj(("metadata", item.key), ("value", item.value))))
}

MongoDateTimeFormats - update localDateTimeWrite to as below
implicit val localDateTimeWrite: Writes[LocalDateTime] = (dateTime: LocalDateTime) => Json.obj(
"$date" -> dateTime.atZone(ZoneOffset.UTC).toInstant.toEpochMilli
)

Logic in below views should be taken out and will be done as part of separate tickets

views/individual_transaction.scala.html
views/components/guarantee_c18_reference.scala.html

Could you please address below as these are still to be addressed?

GuaranteeAccount.scala - Remove extra line breaks at line no 43 and 44
CSVWriter - very long line at 25, keep parameters on separate line
AuditingService - Please create a constant in Utils for "_" and make use of that. Also add test case for it
application.conf - remove below unused entries
application.guarantee-account.updateTime.intervalMilliseconds
application.guarantee-account.updateTime.timeoutMilliseconds

5.AccountsAndBalances.scala - remove unused totalNumberOfAccounts
AppConfig - remove unused footerLinkItems and related entries from application.conf
domain - remove unused  type LinkId = String, or is it being used?
EncryptedValue.scala - Parameter message: String, at line 33
FileInformation.scala - asMap at line no 31 is unused, please check and if unused remove it and then class declaration
should only be case class Metadata(items: Seq[MetadataItem])
HtmlHelper.scala - seems isOpen is unused , please cross check and remove if not being used


DO NOT MERGE Updated limitations-of-babelfish.md for 1.1.0, removing/updating tabl…

…e per notes shared by Rob.  DO NOT APPLY THIS PATCH UNTIL RELEASE TIME
Signed-off-by: susanmdouglas<EMAIL_ADDRESS>Description
This pull request removes the features from the unsupported features list for version 1.1.0.
Issues Resolved
[List any issues this PR will resolve]
Check List

[x ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the BSD-3-Clause License.

This PR will have merge conflicts with PR #179 and PR #177 - in both cases, we should accept the changes in those PRs.


Add concepts entry to documentation

Contributes to #137
Extracted from the readme.

Codecov Report

Merging #144 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #144   +/-   ##
=======================================
  Coverage   75.42%   75.42%
=======================================
  Files          26       26
  Lines        1184     1184
=======================================
  Hits          893      893
  Misses        216      216
  Partials       75       75

Continue to review full report at Codecov.

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


Plugin does not ignore commented-out expect statements or test exclusions with .only

Bug

babel-jest-assertions version: 0.0.1
node version: 8.3.0
npm (or yarn) version: 5.3.0

Relevant code or config
test('dummy', () => {
  // expect(1).toBe(1);
})

What you did: Run jest on the above test file.
What happened (please provide anything you think will help):jest-babel-assertions incorrectly inserts expect.asertions for the commented out expect, causing the test to fail:
expect.hasAssertions()

    Expected at least one assertion to be called but received none.

Another file that causes the same problem:
test('does not run', () => {
  expect(1).toBe(1);
})
test.only('runs', () => {
  expect(1).toBe(1)
})

In this case the error is on the does not run test.
Reproduction repository (if possible):

Hey @huy-nguyen thanks for raising this issue and nice catch!
I'm on holiday at the moment and don't have a computer with me 😢 so I won't be able to fix this right now.
How would you feel about sending a PR with the fix for the commented out expects?
The basic logic of this plugin is that it turns the test into a string and matches on all expect( patterns found to determine the count. What we need to change is the code string being used to do the match on.
On line 42 in src/index.js. You would need to put a normalised version of code variable by removing all comments in the code string. Once normalised we would use the new variable to determine the count, hasAssertions and expect.assertions already exists.
const normalisedCode = code.replace(/\/\/(.*)/g, '').replace(/\/\*([\s\S]*)\*\//g, '');

If you could add test cases for this with the following formats that would be great.
test('returns 2 when given 1 and 1', () => {
  /*
  expect(1).toBe(1);
  */
  const a = 1; /* expect(a).toBe(1) */
  const b = 1; // expect(b).toBe(1)
  expect(add(a, b)).toBe(2);
  // expect (add(1, 2)).toBe(3);
})

If you don't have time to send a PR no worries dude just let me know and I'll try and find someone who can help in my absence 😄

As for the second issue with .only tests, this appears to be an issue in jest see. Until this is fixed the hasAssertions will break in this plugin, perhaps we should remove it until then?

PR in #2

Thanks @huy-nguyen for the issue and @hiddentao for the PR. Now got to figure out how to release without a computer 😂
Once I've published the fix I'll let you know.

Re-opening for the issue with focussed tests and Jests hasAssertions

@huy-nguyen Jest hasAssertions has been fixed in the above PR, just waiting on a release of Jest.

I've just published v0.0.2 with the fix for commented out expects and the issue in jest should be released within a week 🎉


is dynamo too expensive?

Throughput units
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ProvisionedThroughput.html
Read
If your items are smaller than 4 KB in size, each read capacity unit will yield one strongly consistent read per second or two eventually consistent reads per second.

2 property reads / second === 1 write capacity unit

Write
If your items are smaller than 1 KB in size, each write capacity unit will yield one write per second.

1 property write / second === 1 write capacity unit

Quick projection
quick n dirty calculation: timeline and snapshot table with 100 read/write for snapshot and 1 read / 100 w write for timeline table: $307.28 / month. In terms of write this is 50 concurrent users watching video (nothing else), in terms of read its harder to project, but a couple of logins / second would bust this limit is my guess. If this is an average over the entire month then it might not be super bad, but we should make a serious cost projection for sure.

i think for now its fine, we wait until our boys from zeit finished mem (which is dirt cheap) then just go for that


./deposit.sh install failure on Mac OS

Running ./deposit.sh install on Mac OS failed to install because of lack of write permissions in /Library/Python/3.7:
Installing collected packages: eth-hash, eth-typing, toolz, cytoolz, eth-utils, mypy-extensions, cached-property, py-ecc, pycryptodome, click, six, pyrsistent, lru-dict, ssz
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Library/Python/3.7'
Consider using the `--user` option or check the permissions.

That output was hidden in the middle of the install output though so I missed it initially.
Creating a venv and then rerunning ./deposit.sh install worked correctly. ie:
python3 -m venv env
source env/bin/activate
./deposit.sh install

Interesting. I don't even own a python3.7 at /Library/Python so I am personally unable to recreate the issue. That said I also use venvs everywhere to avoid these types of problems. The idea was to try to avoid requiring users to install Virtualenv if possible. (I thought it was built into python these days, but tests run on my server indicate otherwise. :/)
@hwwhww, do you have any bright ideas on how to solve this one?

I'm not really sure how I got a /LibraryPython my machine has a fairly long and sordid history.  It's possible that I'm just very special and this is a rare configuration problem but I don't know.
I also don't know how I got the env module installed...

Having a comparable issue on ArchLinux:
error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

    [Errno 13] Permission denied: '/usr/lib/python3.8/site-packages/test-easy-install-40369.write-test'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

    /usr/lib/python3.8/site-packages/

Perhaps your account does not have write access to this directory?  If the
installation directory is a system-owned directory, you may need to sign in
as the administrator or "root" account.  If you do not have administrative
access to this machine, you may wish to choose a different installation
directory, preferably one that is listed in your PYTHONPATH environment
variable.

For information on other options, you may wish to consult the
documentation at:

  https://setuptools.readthedocs.io/en/latest/easy_install.html

Please make the appropriate changes for your system and try again.

@ajsutton @q9f could you help to test if --user flag works for you?
MacOS
pip install -r requirements.txt --user
python setup.py install

Linux
pip3 install -r requirements.txt --user
python3 setup.py install

pip install is working fine even without --user
python3 setup.py install fails with the error above.

pip3 install -r requirements.txt --user

works

python3 setup.py install

running install
error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

    [Errno 13] Permission denied: '/usr/local/lib/python3.8/dist-packages/test-easy-install-9231.write-test'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

    /usr/local/lib/python3.8/dist-packages/

Perhaps your account does not have write access to this directory?  If the
installation directory is a system-owned directory, you may need to sign in
as the administrator or "root" account.  If you do not have administrative
access to this machine, you may wish to choose a different installation
directory, preferably one that is listed in your PYTHONPATH environment
variable.

For information on other options, you may wish to consult the
documentation at:

  https://setuptools.readthedocs.io/en/latest/easy_install.html

Please make the appropriate changes for your system and try again.

I'm on ubuntu 20.04, user is in the sudo group

Can confirm I had same issue as @ilhanu on Ubuntu Server 20.04.  python3 setup.py install --user worked for me to complete the install.  Was then able to generate keys.

The following patch fixed it for me
https://gist.github.com/q9f/0f57fa13aa37279d1ba4c8b8e767241b

Maybe try virtualenv installation if it still doesn't work for you: https://github.com/ethereum/eth2.0-deposit-cli#option-3-build-deposit-cli-with-virtualenv
I'm closing it now. Let me know if you want to reopen it.


Transposes numbers while typing

On IE11 when you type in a credit card number, it transposes some numbers. This is only in version 3.1.7

I created a pull request to address this issue. #170
This is my first ever PR, so please let me know if I did anything wrong.


Pretrain model cannot get results

I want to test faster rcnn with pretrain model. It can't detect anything, but only show the original image.
I tried as follow:
python tools/test.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py models/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth --show

Hi @zhangzishuo123 , does this page help? Make sure you load pretrained model from the correct path, or will decrease the arguments 'show-score-thr' help?

@v-qjqs Thanks for reply! I download pretrained model from configs/faster_rcnn/README.md. I also tried to change 'score_thr' to 0.05 in show_result, but it still can't detect anything. If there are other ways that I can do?

Hi, is there any mismatch (e.g. unexpected or missing keys) between your model and loaded state dict.


Hybrid remote mode

Issue Type

[x] Question

Specs
What version are you using?
"vue-good-table": "^2.21.10",
Question
Is possible to use the remote mode in a hybrid way?
I want the sorting to happen on the back-end and the pagination on both, let me clarify: I want to fetch the first 500 rows and make pagination for these 500 rows on the front-end but at the last page, or the one before that, I want to fetch the next 500 rows.
Is possible to do something like that? And what would be the best way to accomplish that?
Thanks!

Thank you for the reply!


community: add coze chat model

add coze chat model, to call coze.com apis

@baskaryan please review this pr, thanks

@baskaryan already add notebook docs.
and there are 2 issues, i dont understand which this mean.
first, https://github.com/langchain-ai/langchain/actions/runs/8842400719/job/24281000395?pr=20770, it say should import from langchain_community, i already do , i dont understand.
second, https://github.com/langchain-ai/langchain/actions/runs/8842400719/job/24281063026?pr=20770, i dont understand

@baskaryan thank you, can you review this

@baskaryan all fiexed, please review

@baskaryan all fiexed, please review, thanks


fix(assets): updating visualization for the asset display name in global variable

Pull Request
🤨 Rationale
When there's not asset name in the dropdowns, the row renders an empty string which makes choosing an asset very difficult.
Improving the existing flow to render the asset identifier parameters when the name/alias is empty

👩💻 Implementation
Implemented the logic to construct the identifier when the name attribute is missing
🧪 Testing

Manual testing
Unit testing

✅ Checklist

[x] This PR has a title that follows the commit message format.

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

v3.43.6
GitHub release

Your semantic-release bot :package::rocket:


.uwu command incorrectly transforms emojis in their raw text form

Description
The current .uwu feature does not handle or preserve external emojis
Steps to Reproduce
Example 1

Example 2

Expected Behaviour
Either ignoring external emojis, preserving them in place (may not be possible), or transforming them into emoticons instead of the normal text-transform rules. In my opinion, the emoticon replacement is most suitable.
Possible Solutions

Detect external emojis by checking for the emoji ID within the bot's known emoji list.
For custom emojis, the bot would not be able to send the emojis back, such, escape this from text-transform rules, and instead replacing the custom emoji with a random emoticon from the emoticon list.

Would you like to implement a fix?

[x] I'd like to implement the bug fix
[ ] Anyone can implement the bug fix

instead replacing the custom emoji with a random emoticon from the emoticon list.

Since this command is just for fun, I think this approach is fine.

Couldn't we make use of the emojis library, that is already a dependency?
https://github.com/alexandrevicenzi/emojis

Couldn't we make use of the emojis library, that is already a dependency? alexandrevicenzi/emojis

Well, built-in emojis do work right now. And third-party emojis (such as those in python-discord) would work if the bot is in the server.
However third-party emojis wouldn't be able to be sent since SirLanceBot isn't in those servers, and as such doesn't have access to post those emojis. This is what this issue is for.


HLS transcoding causes error:2

Your app has finally made it possible to use PMS with my LG TV without a lot of dropped frames. Thank you for all the great work!
I am using an 2012 model LG TV: 42LS575S. As the app isn't available (yet) for the 2012 models, I am using it via USB. I have noticed three different issues:

I am unable to change the audio track within PlayZ, or turn subtitles off (they can be turned on, but not off again). This problem can be helped by turning HLS transcoding on, disabling the controls in PlayZ, but allowing the presets in PMS to take over.

Unfortunately, when HLS transcoding is on, video's with 'reference frames: 8' have an 'error:2' when trying to play. I have tested this with numerous video's and so far the only common denominator with video's that have this error is that the amount of reference frames is 8. All other video's seem to be unaffected. Also, the amount of audio tracks or the presence or absence of subtitles do not seem make a difference.

When HLS transcoding is on, PMS does not correctly register that an episode has been watched. Its status does changed to watched in the PlayZ environments, but is shown as being partially watched in the PMS environment.

I'm getting the same Error 2 message on several videos through playZ. I know you say it's a TV issue, but the same videos play fine when I select the Plex media server from the tv input menu. Surely that means the TV is able top play the files but the playZ isn't able to?
Any help would be great.

Simonjhogan: How is the subtitle problem a TV issue when it works fine in another WebOS app (SmartShare) on the same TV?

SmartShare is a DLNA client not a web application using the netcast api … that’s why!
S

On 18 Feb 2015, at 11:24 am, ryballs<EMAIL_ADDRESS>wrote:
Simonjhogan: How is the subtitle problem a TV issue when it works fine in another WebOS app (SmartShare) on the same TV?
—
Reply to this email directly or view it on GitHub https://github.com/simonjhogan/PLAYz-Media-for-PLEX/issues/57#issuecomment-74785850.

So you're saying there's nothing you can do and I have to strip the
subtitles out of all my videos just to use your application? If that's the
case you should state it on the LG store description. I'm sure I'm not the
only person who was unaware of this limitation when I purchased the app.
On Wed, Feb 18, 2015 at 8:40 AM, Simon J. Hogan<EMAIL_ADDRESS>wrote:

SmartShare is a DLNA client not a web application using the netcast api …
that’s why!
S

On 18 Feb 2015, at 11:24 am, ryballs<EMAIL_ADDRESS>wrote:
Simonjhogan: How is the subtitle problem a TV issue when it works fine
in another WebOS app (SmartShare) on the same TV?
—
Reply to this email directly or view it on GitHub <
https://github.com/simonjhogan/PLAYz-Media-for-PLEX/issues/57#issuecomment-74785850
.

—
Reply to this email directly or view it on GitHub
https://github.com/simonjhogan/PLAYz-Media-for-PLEX/issues/57#issuecomment-74787759
.

Thanks for the suggestion … Check the application forum for solutions to your issue … transcoding resolves the issue, which is the default behaviour for most PLEX clients ...
LG publishes information around which subtitles are supported … Integrated subtitle support is flakey via the LG netcast api/sdk …
So yes there isn’t a lot I can do ….

On 18 Feb 2015, at 12:14 pm, ryballs<EMAIL_ADDRESS>wrote:
So you're saying there's nothing you can do and I have to strip the
subtitles out of all my videos just to use your application? If that's the
case you should state it on the LG store description. I'm sure I'm not the
only person who was unaware of this limitation when I purchased the app.
On Wed, Feb 18, 2015 at 8:40 AM, Simon J. Hogan<EMAIL_ADDRESS>wrote:

SmartShare is a DLNA client not a web application using the netcast api …
that’s why!
S

On 18 Feb 2015, at 11:24 am, ryballs<EMAIL_ADDRESS>wrote:
Simonjhogan: How is the subtitle problem a TV issue when it works fine
in another WebOS app (SmartShare) on the same TV?
—
Reply to this email directly or view it on GitHub <
https://github.com/simonjhogan/PLAYz-Media-for-PLEX/issues/57#issuecomment-74785850
.

—
Reply to this email directly or view it on GitHub
https://github.com/simonjhogan/PLAYz-Media-for-PLEX/issues/57#issuecomment-74787759
.

—
Reply to this email directly or view it on GitHub https://github.com/simonjhogan/PLAYz-Media-for-PLEX/issues/57#issuecomment-74791958.

Hi Simon,
I know there had been a little talk in January about implementing a standard HTML5 player (at least for the webOS units) rather then the netcast api, would that eliminate the subtitle issue?


Updated Key Binding

I don't know where to put this so I'll put it here.
If you have a mouse with more buttons, you can't assign them with the mod. I tweaked the scripts gameVars and gameOverride a little to make that possible. Here are the codes (just click):
gameVars.js
gameOverride.js
EDIT: There's a bug that cause to record input on mouse down and up. I'll try to fix this also.
EDIT 2: Noticed that you can't switch to weapon 1, causing that switch weapon cheat is broken. I'll try to fix this.

I don't know where to put this so I'll put it here.
If you have a mouse with more buttons, you can't assign them with the mod. I tweaked the scripts gameVars and gameOverride a little to make that possible. Here are the codes (just click):
gameVars.js
gameOverride.js

I'll look into this later if gator has not already

Cheat menu and changelogs broken. I can try to fix it.


Update issue-management.md

Updated to reflect new labels:
split Area-Cmdlets into Utility, Management, and Core.  Added Security and Providers.

Cc @PowerShell/area-documentation


Vulnerability fix for AzureFileCopyV2

Task name: AzureFileCopyV2
Description: Latest vulnerability fix for task AzureFileCopyV2
Documentation changes required: (Y/N)
Added unit tests: (Y/N)
Attached related issue: (Y/N) https://dev.azure.com/mseng/PipelineTools/_componentGovernance/184/alert/79428?typeId=12858
Checklist:

[x] Task version was bumped - please check instruction how to do it
[x] Checked that applied changes work as expected
[x] node make.js build --task AzureFileCopyV2
[x] node make.js test --task AzureFileCopyV2

/azp run

/azp run


Start styling privacy modes ui

mock:

todos:

[x] translations
[x] hooking up logic
[x] stealing @staltz's dropdowny component
[x] look into doing the grid stuff with tailwind

aiight this is what it looks like atm:
cc @cryptix @staltz

@staltz thanks for the review! :)
regarding moving the logic to a separate page due to planned work, i would suggest that can be done when that work is actually in the pipeline? from #118, it seems that might be coming quite a bit down the road (and end up being left on the cutting floor, due to overriding priorities):

@cryptix: Definitely a version 2.1 thing, though.

if this would have been signaled earlier, i would have taken that into account from the start :~

regarding moving the logic to a separate page due to planned work, i would suggest that can be done when that work is actually in the pipeline?

There are 3 reasons why to put it on a separate page: (1) #118, (2) Dashboard is for read-only high-level information, not for configuring the room, (3) room-wide configurations should be available only to admins and mods. You're right that (1) is future work, but (2) and (3) are currently applicable. If you need help, we can merge and I can do this page-moving work if you want.

if this would have been signaled earlier, i would have taken that into account from the start :~

We could have communicated better, like from my part the spec uses "Dashboard" to mean "all the pages behind a login", while "Dashboard" in this repo is just one page with some counters.

Alright, well let's merge this then & perform the larger change in a separate PR 👍. Whether you do that or I do it doesn't really matter as much.

oh ya btw i tottttallly missed the part ranging over the IDs https://github.com/ssb-ngi-pointer/go-ssb-room/blob/ff028699d2cb490bc14f05970bea46260ace00c7/web/templates/admin/dashboard.tmpl#L80-L86


The specified value "2017-1" is not a valid number. The value must match to the following regular expression: -?(\d+|\d+.\d+|.\d+)([eE][-+]?\d+)?

steps to reproduce -

hover over the year and then use down arrow key to select 2015
now keep clicking on the left icon to change month until you reach Dec 2014

Hello,
Thanks a lot for the report!
In the change listener function of cur_year, event.target.value turned out to be a string, thus self.currentYear was being set to a string.
Pushing a commit as we speak and I'll publish a new release asap.
Regards

thanks!


docs: Add sample apps and integrations to Built on Safe page

Merge the Safe open info Apps page 1 and Adoption and integrations section 2 into the Safe docs and remove the existing Safe open info Apps page and section once merged.

Hey @adam-hurwitz, thank you very much for your Pull Request :)
However, I'm closing this one given that the Ecosystem page in the Safe website is now available at https://safe.global/ecosystem

That makes sense. Thank you for reviewing @germartinez!
It'd be awesome in the future to build in a process for community notes and open info in the ecosystem view.

@adam-hurwitz could you elaborate a little bit more? :)

@germartinez, The Safe ecosystem hub has the largest breadth of coverage for apps powered by Safe which is incredible.

Category, integration type, and network type
Value propositions
Site, social, and GitHub code

My goal in starting the Safe apps section of Safe open info is to map more details on Safe apps that can evolve over time through community contributions.

Features
Adoption by known protocols, projects, teams, individuals, etc.
Investors
Related current events and news
etc.

A potential proof-of-concept (PoC) for the ecosystem hub could be to have "detail pages" for each listing that include more in-depth info outlined above. Contributions in the PoC could be made through pull requests and evolve as more decentralized content governance structures are tested.


#0: Go back to github-hosted runners to see runtime and do not use LFS checkout as we're using artifacts

…

Didn't help with runtime as it tried to rebuild, since we're using self-hosted we shouldn't be using as much LFS BW


Add CircleCI builds

Test the Honeycomb.Tests project and build Honeycomb and Honeycomb.AspNetCore packages.

doesn't publish a release to GitHub, yet. I think we need to transfer ownership in NuGet first
built packages can be found in the artifacts tab for each build

@MikeGoldsmith can you take a closer look? Is this how one dotnets?

@MikeGoldsmith can you take a closer look? Is this how one dotnets?

@MikeGoldsmith this is rebased with your changes to project setup

@MikeGoldsmith this is rebased with your changes to project setup


formAPI's onChange not called

Describe the bug
formAPI's onChange doesn't seem to be called at all and it expects the same return type as fieldAPI's onChange. If we want to allow doing validation at the form level in onChange, we probably need it to return a mapping of errors per field (same with onBlur and async methods). Here is a repro of this.
Your minimal, reproducible example
https://codesandbox.io/p/sandbox/determined-mayer-yn4qfc?file=%2Fsrc%2Findex.tsx%3A43%2C29
Steps to reproduce

Open the repro link
Make some changes to either field
Check the console: nothing is logged despite console.log("****onChange called!"); inside onChange()

Expected behavior
"****onChange called!" should be logged in the console.
Also, onChange returns "An error!" and I'm not sure what should happen with it. It could make more sense to return a mapping of errors per field.
How often does this bug happen?
Every time
Screenshots or Videos
No response
Platform

OS: Windows
Browser: Chrome 118.0.5993.71

Tanstack Form adapter
react-form
TanStack Form version
0.4.2
TypeScript version
No response
Additional context
No response

This is a known bug, duplicate of:
#466
This is the first thing I'm aiming to fix today


Incorrect Embedding of SPM Library in iOS Frameworks, Libraries, and Embedded Content Category

Description
I've encountered a problem with the Swift Package Manager (SPM) that involves incorrect embedding of a library intended for watchOS into the iOS Frameworks, Libraries, and Embedded Content category. The library is being embedded into an iOS target despite being defined to exclusively support watchOS in the Package.swift file.
Could it be an spm bug, or perhaps, I may have done something wrong.
Thanks for. your attention to this matter, beforehand. Please let me know if any additional information is required to address this issue effectively.
Expected behavior
The AppleWatchLogger package should only be available and embedded in watchOS projects, as specified in the Package.swift configuration due to the exclusive watchOS platform constraint.
Actual behavior
Despite specifying the package's support exclusively for watchOS, the AppleWatchLogger library is being embedded in the iOS Frameworks, Libraries, and Embedded Content category when integrated into an iOS project.

Steps to reproduce

Create an watchOS project with companion iOS app
Add package dependencies to the project.
git location: https://github.com/inwoodev/AppleWatchLogger.git
Various errors occur and build fails, as the library was meant to support watchOS only, but was embedded into the IOS frameworks.
The issue could be resolved by relocating the embedded iOS frameworks library to the watchOS frameworks. However, committing this change directly seems to be a suboptimal solution due to its manual nature and potential maintenance complexities.

Swift Package Manager version/commit hash
Swift Package Manager - Swift 5.8.1
Swift & OS version (output of swift --version ; uname -a)
swift-driver version: 1.75.2 Apple Swift version 5.8.1 (swiftlang-<IP_ADDRESS>.5 clang-14<IP_ADDRESS>.100)
Target: arm64-apple-macosx13.0

Sorry, it was a human error. Closing this issue.


Proofpoint POD Connector References a GitHub file which was moved

https://github.com/Azure/Azure-Sentinel/blob/a5c6a759146d06e4be39b549b1b19c0e3ec985fe/Solutions/ProofPointPOD/Data Connectors/azuredeploy_Connector_Proofpoint_AzureFunction.json#L154
The ProofPointPOD Sentinel Connector references a zip file in the Azure Function App which was moved. Line 154 has a configuration value called "WEBSITE_RUN_FROM_PACKAGE", which points to a zip file in GitHub.
The current location of this file is: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/ProofPointPOD/Data Connectors/ProofpointSentinelConn.zip?raw=true
But the connector was updated to use a permalink, which is now broken since the files were moved: https://aka.ms/sentinel-ProofpointSentinelConn-functionapp
This permalink is a reference to the old file location: https://github.com/Azure/Azure-Sentinel/blob/master/DataConnectors/ProofpointPOD/ProofpointSentinelConn.zip?raw=true

We are looking into this

Apologies for the inconvenience caused the links has been updated... Please feel free to open this if issue persists... Thanks!!


Issue getting pcloud to work

The problem
Hello, I am trying to setup the addon following the documentation, I am pretty new to rclone.
My conf is as follow:
[pcloud]
type = pcloud
client_id = My_CLIENT_ID
client_secret = MY_CLIENT_SECRET
username = XXX
password = XXX
token = XXX <= Access token that I got from PCloud using postman
use_trash = false

[hassbackup]
type = crypt
remote = pcloud:Backup/Home Assistant
filename_encryption = off
directory_name_encryption = false
password = XX
password2 = XX

When I open the gui, if i try to see the conf, I get an error:

What version of Rclone Backup has the issue?
3.0.0
What version of Home Assistant are you running?
2022.11.5
What type of installation are you running?
Home Assistant OS
If you're running HA OS/Supervised, what version of the Supervisor are you running?
2022.11.2
Example YAML snippet
- name: Sync Daily Backups
  schedule: 10 4 * * *
  command: sync
  sources:
    - /backup
  include: []
  exclude: []
  flags: {}
  destination: "hassbackup:"

Anything in the logs that might be useful for us?
10 4 * * * sync "Sync Daily Backups"; /backup -> hassbackup:
2022/12/01 17:13:01 ERROR : rc: "operations/list": error: failed to configure Pcloud: invalid character 'Y' looking for beginning of value
2022/12/01 17:13:14 NOTICE: Make sure your Redirect URL is set to "http://localhost:53682/" in your custom config.
2022/12/01 17:13:14 NOTICE: If your browser doesn't open automatically go to the following link: http://<IP_ADDRESS>:53682/auth?state=v9TA12NfpFG5CmQJq3Slxw
2022/12/01 17:13:14 NOTICE: Log in and authorize rclone for access
2022/12/01 17:13:14 NOTICE: Waiting for code...

Additional information
No response

I tried with OneDrive, getting the same issue :(

Hmm, well it looks like your config may be invalid try placing double quotes around any strings contain Y.
You could also try it with the rclone comma d line separately if you want.

It doesnt work, when I use the gui, I go in the conf, click on next next and it immediately redirect me to the gui main page. In the log I get this:

I made this gif to show you the redirect:

Please help

Hello @jcwillox , could you help me, I really tried everything. As soon as the gui should open a page I get an error notification.
In the log I get that:
2022/12/27 14:38:01 NOTICE: Make sure your Redirect URL is set to "http://localhost:53682/" in your custom config.
2022/12/27 14:38:01 NOTICE: If your browser doesn't open automatically go to the following link: http://<IP_ADDRESS>:53682/auth?state=p9uJCOQra3x7
Obviously it doesnt work, this port doesnt seems open and we are using ingress.
Pleeeease help :)

It works!
I followed this rclone/pcloud doc, installed Rclone on my MacBook, got the token (/!\ format : {{"access_token":"•••••••••••••••••••••••••••","token_type":"bearer","expiry":"0001-01-01T00:00:00Z"}} ), configured hassio-rclone-backup and voilà!
I hope you will solve your problem.
Best regards,
Patrick.

Hello, I didnt update my message but yes, i got it working in a similar way, I was just expecting the gui to make the process simpler...

@lbouriez would you mind sharing how you worked around this?

@AlecRust , i didn't use the GUI but the manual setup of rsync. For that I needed to install rsync in my windows machine to generate the token.
1- start the manual setup in the docker container
2- when it asks for the token, go on rsync in your windows machine and generate it


Task 7.2 Set up 4 different rolls for access rights (One for Owning company, admin, remanufacture (car mechanic) and user.

Related to user story #15

4 rolls are created


yarn run start:web / Explorer status "Offline"

Expected Behavior
Running yarn run start:web should start the explorer and have it connected to the daemon.
Actual Behavior
Running  yarn run start:web

The explorer runs on localhost:8081, but the status stays on "Offline"

Steps to Reproduce the Problem

clone repo
install deps
edit config for mongo and rpc
run script/cron_block.sh (which worked fine and got all the way to the last blocK)
Run other cron commands:

yarn run cron:coin
yarn run cron:masternode
yarn run cron:peer
yarn run cron:block
yarn run cron:rich

All worked fine and gave the "Done in x seconds" reponse.

yarn run build:web
yarn run start:web

Localhost:8081 lists the explorer, but the status stays "Offline"
Specifications

Version: Github Master branch
Platform: Linux
Subsystem: Ubuntu 16.04

I'm having the exact same issue. Any idea on how I can fix it?

This was due to wrong config. Changing 443 for portworker(default) to 3000 fixed the issue.
Navigating to http://localhost:8081/ instead of http://localhost:3000/ solved the issue for @sotblad
By looking at XHR in Chrome we noticed that /api/coin was going to http://localhost:8081 instead of http://localhost:3000


⚠ Bofrost.de has degraded performance

In aa110e6, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 713 ms

Resolved: Bofrost.de performance has improved in 8552d40 after 6 minutes.


Ftsp bench

Description
This PR adds circuit files and benchmark scripts for evaluating our fault-tolerant state preparation protocol.
Furthermore, this PR adds a module for working with codes in QECC.
Checklist:

[ ] The pull request only contains commits that are related to it.
[ ] I have added appropriate tests and documentation.
[ ] I have made sure that all CI jobs on GitHub pass.
[ ] The pull request introduces no new warnings and follows the project's style guidelines.

I am fairly sure, that you do not want to distribute these files and benchmark scripts as part of the mqt.qecc package. They will bloat the binary distributions of the package without adding much value.
Hence, I would suggest to move these files out of the src folder and into a separate top-level eval or scripts or <insert suitable name>.
If you should move these files, please also adjust the linter config so that these files are also properly linted.

Furthermore, this seems to contain some changes that are also in #244. Maybe updating the branch also here helps.

I am fairly sure, that you do not want to distribute these files and benchmark scripts as part of the mqt.qecc package. They will bloat the binary distributions of the package without adding much value. Hence, I would suggest to move these files out of the src folder and into a separate top-level eval or scripts or <insert suitable name>. If you should move these files, please also adjust the linter config so that these files are also properly linted.

Given that other subpackages of qecc also have evaluation scripts distributed with the sources I figured I would do the same. Also, given that synthesizing some of these circuits takes a long time I think it is best to provide some utility to load these circuits directly instead of recomputing them. If people want to use the circuits from our paper they can then directly use them from the python code.
The bloat is not very high since there are only a couple of small qasm files. Of course, it's a good idea to pull all evaluations into a top-level benchmark folder. But I would rather treat that as a separate issue.

Furthermore, this seems to contain some changes that are also in #244. Maybe updating the branch also here helps.

That is true. The other PR contains commits that are not related to it. I'll have to remove them from #244 once this is done.

I am fairly sure, that you do not want to distribute these files and benchmark scripts as part of the mqt.qecc package. They will bloat the binary distributions of the package without adding much value. Hence, I would suggest to move these files out of the src folder and into a separate top-level eval or scripts or <insert suitable name>. If you should move these files, please also adjust the linter config so that these files are also properly linted.

Given that other subpackages of qecc also have evaluation scripts distributed with the sources I figured I would do the same. Also, given that synthesizing some of these circuits takes a long time I think it is best to provide some utility to load these circuits directly instead of recomputing them. If people want to use the circuits from our paper they can then directly use them from the python code.

Point taken. If this is part of the package functionality, it naturally makes sense to include the files. Excuse my ignorance.

The bloat is not very high since there are only a couple of small qasm files. Of course, it's a good idea to pull all evaluations into a top-level benchmark folder. But I would rather treat that as a separate issue.

👍🏼 Would you mind creating such an issue to keep track of that?
I guess it would be best to move all evaluation scripts to a top-level eval or (probably better) scripts directory (with potential subfolders if deemed necessary).

Issue is created. Thanks for your input :+1:


Improve node conditions management

Description
This PR improves the management of the virtual node conditions by the liqo provider, including custom reason and messages to provide additional information and the correct update of the last transition/heartbeat timestamps.
Fixes #616
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.

[x] Unit testing (with additional tests)
[x] E2E testing

/test

/test

/rebase

/test

/rebase

/test

/merge


Adding contributor icons in readme file.

✨ Feature Request
Description of the Feature

Problem Statement

Proposed Solution

Alternatives Considered

Additional Context

Please assign this issue to me under gssoc'24 EXTENDED with label gssoc'24 and hacktoberfest.

[x] Yes
[ ] No

Intresting @Mehtarishita
go ahead make PR asap


adding robot.md to the repository

Hi,
My name is Alberto Abreu and this is my finished prework. I hope you enjoy it and if you have any questions please let me know.
Cheers,


feat: add onhover animation on social icons in footer

use social icons from https://react.useanimations.com/

I want to work on this issue.


Save interferance data

Hi, I want to take my inference data and save it to a file. Is this possible and how?
I want to save the label, bbox, and score of each object detected in a picture.
Thanks!

You can convert your data to the COCO format (tutorial is here), and then use jsonfile_prefix or --out to save the prediction results, see examples.


Node Graph Recursion, Performance and Improvements

During my endeavours to improve object rendering performance, we fixed an issue with graphing always having to update parents submission #5040
over a 10 second window we walked we spent 1362ms walking graphs to validate they are not dirty, basically 13% overhead in graph traversal  this is not insignificant.
Nodes use code recursive not data recursive methods, mainly because the nodes could evaluate themselves differently.
In addition to this freezing matrices has to be done per node. This should be per branch or even tree.  If I freeze the root with all children this should explicitly set all children. This could mean we use the a set of root flags to determine frozen states for static geometry once the world matrix is computed it remains static.  Having a root object per node shortcut would then let us just skip to the head of the line to determine node properties for the tree or branch quickly thus removing the necessity to check all parents states.
Im proposing a couple of changes here.

a method to freeze all matrices in the tree by selecting the root node. Along with a method to detect that changes at the node level rapidly without code recursion.
a method to flag the set and test the dirty flag on the trees depth.
for animations a fast data recursive method to traverse the nodes rapidly looking for hierarchy changes
re-evaluate performance and determine if we need any additional steps.

This is really great!!
I'm now really curious on how you would like to implement all these great ideas

Node Graph Changes Proposals
Some fundamentals

The node graph is code recursive.
Its traverses up when computing transform nodes
Normally this means checks if cached all the way up.
Then a child can get rendered and we do the same thing.
Its kind of cumbersome and inefficient.

This is due to evaluateActiveMeshes actually walking all meshes and computesWorldMatrix on each mesh.. This means we walk the tree many times.  Yep not good.
Ideally we would want to do a run over the entire graph once and as quick as possible this means flagging the graph as to what’s changed and where. Simplest is to flag a rootNodeContainer in the scene which all subsequent children can talk to,  should for example a child node get updated it would register itself with the rootnode as being updated.
So we create a new function ComputeAllWorldTransforms. This will walk through the tree and update all objects however we should clue list tree traversal into being somewhat smart. Why walk the entire tree if branches arent even dirty so we can easily do this just on the parent tree.
First steps
Node structure adds value and a rootNodeReference : Node
When we do any processing of transforms, IE change position etc we update the rootNodeReference.DirtyFlag = true;
We process all rootNodes in the scenes. Anything with the dirty flag is evaluated.
We traverse down the graph checking for dirty nodes, once we find a dirty node, from that point on we update the transforms all the way down to the leaves.
The function ComputeAllWorldTransforms is not code but data recursive it's basically walking the tree looking for transform nodes to transform that are flagged dirty.
This basically means we change evaluateActiveMeshes so it does not call computeWorldMatrix but just GetWorldMatrix now and this should resolve recursion.

I would have no problem coding on this and testing the results difference and obviously making sure it  passes the validation tests :)

I thought about this long time ago but the main problem with dirty flags was: how can we make sure that mesh.position.x = 1 will trigger the dirty flag? It is not possible to move the vector3 class to use properties as everything else will be dead slow.
But I really like the idea of going down the tree only once while evaluating the active meshes. We would need rootNodes but this should be OK to get and from there we could evaluate the WM more efficiently. The evaluateActiveMeshes function will start from rootNodes and evaluate if their wm needs to be updated if yes then we could flag the node as wasUpdated. Then going down the tree we could just check if a node needs an update (with the cache of its own values or if parent.wasUpdated). If updated then we flag it. And so on. Obviously when arriving on a node we just have to first flag it as wasUpdated = false.
The only overall problem I see with this approach is when you change something related to WM during rendering (like onBeforeDraw). In this case the update will not be visible before next frame (unless the user call getWorldMatrix(true) first)

Also to keep backward compatibility, the current computrWorldMatrix function should remain unchanged and we can introduce the change by adding an optional parameter (default is false) which will turn on the wasUpdated way
Thoughts?

The first things to do:

[ ] add a scene.rootNodes array
[ ] update node constructor to add all nodes to this array
[ ] expose the node.children property to get direct access to children
[ ] update node.parent property to add/remove mode from/to scene.rootNodes

(I'm wondering if we need a rootNodes or only a rootTransformNodes as we do not care about Node from a WM standpoint)

Setters should get around the issue.  Use private on the transforms and only allow access through the const getter/setter method this should ensure the vector is updated only through setter. likewise for rotation and scale.  This gets around a lot of those position/rotation checks.
you dont need to worry about parent is updated because once you find the dirty node and start data recursing down that branch you've just set the update flag in the function for all cwm as they are parented from that point onwards, gets around redundancy testing.  in fact you could call a single function in the branch to computeWorldMatricesInBranch. So that there is an optimal just recompute dont bother testing (except for frozen matrices).
in regards to frozen matrices, you can do frozen including children. vs frozen only.  This difference would then let us freeze trees rather than just freeze a single node.. so freeze + children on the rootnode freezes everything ..
so I think some things are redundant because we are computing all world matrices anyway so having to test if a parent is updated is kind of mute at that point.
scene.rootNodes makes total sense.  I was thinking of adding an updatedRootsNode so we only have to test those nodes per frame as well.  this is cleared to empty post rendering (or at least double buffered for debugging purposes , ie currentUpdate/previousUpdate and flip each frame)
this way if you have 4000 scene objects but only 30 moving .. we are just adding and walking those 30 nodes anyway dont even have to test then we know they updated :)
-[ ] add a scene.rootNodes array
-[ ] add a scene.dirtyRootNodes array (possibly double buffered for debug)
-[ ] update node constructor to add all nodes(topmost) to this array
-[ ] expose the node.children property to get direct access to children
-[ ] update node.parent property to add/remove node from/to scene.rootNodes
-[ ] update node.dispose to remove nodes from rootNodes when no parent
-[ ] add setter/getter accessors for position, rotation, scale for each transform.node
-[ ] add frozenChildren flag to transform.node
-[ ] add a scene.computeAllWorldMatrices() function and call it around here. This function will call computeWorldMatrix with the new parameter set to true on the node and then recursively on all children. After having gone through all children of a node wasUpdated is set to false.
-[ ] scene.recomputeAllWorldMatricesInBranch(branchnode :Node) // indicating every after this requires a forced update unless frozen
think this is shaping out well :)

oooh i see your problem sublevel properties are not immutable even with const getter only the object itself is unchangeable.  the graph could just private the position/rotation/etc and only allow setters on the transform node.  Then add a get function thats basically a shallow copy.  Ideally you'd want to store locations etc in your own structures and just set them to the scene transformnode.
Rarely do you want to use that to store your data.

We cannot add setter to position, rotation or scaling to earn about deprecation as we do not Deprecated because backward compatibility is a top priority

We can't go down the dirty flag path. If you look in the playground examples, developers are using position.x to animate meshes a lot.
So I think my initial idea with wasUpdated is the good tradeoff

so ok I understand your backward compatibility logic although I thought I had addressed that using deprecated warnings.  modifying transforms without using an interface really is a not a good idea.   Also a programmer shouldnt be creating a new vector each time to modify position. etc they would have a gaming structure with position etc. and then that would set that which would basically do a shallow copy...
However, all said and done, to keep with this architecture then we can figure this out:
This approach tweek is to keep track of the active transform nodes separately and walk those before computing world matrices.  That way we get the testing out of the way independent of graph traversal. It should be faster still and this is a simple update check.

[ ] register all transform nodes not frozen into a list scene.activeTransformNodes

[ ] register all nodes into scene graph as described above

[ ] add a dirtyCounter to the rootnode

[ ] nodes frozen and unfrozen are added or removed from the scene.activeTransformNodes

[ ] walk this list testing for changes with position etc.  this function would be scene.updateActiveTransformNodes. This would effectively call node._IsDirty = !node._isSynchronized(); on the transform.node and not check for parents. It will only check active transforms. Dirty flags would then increment a node.rootNode.DirtyCounter++.

[ ] scene.computeAllWorldMatrices would walk the the scene root nodes checking for the rootNode.DirtyCounter for updating, if so we would walk through as before checking for nodes to update in the graph.  Decrementing the rootNode.DirtyCounter-- as we find those nodes

rootNode.DirtyCounter is useful for traversing just a branch updating.  If we get a single leaf at the end of a branch need updating we know once we hit the dirty counter we are done.  This is useful for endpoints in a graph updating.  Its not completely optimal because could be the last leaf ever tested.

Well I need to see the tests now because it seems overkill to manage this dirty flags where we can just walk the tree once a frame (that you will have to do anyway if I understand correctly).
When will you update this flag? I guess once per frame by going through the list of active transform (which should be comparable to walking the tree).
I'm still convinced that the dirty Counter is not required but happy to change my mind if numbers prove that it is worth it:)

I'll implement the rootNodes changes
THen I'll do a PR for the wasUpdated and we can then compare performance

rootNodes done..

actually anything we can do to avoid doing a computeWorldMatrix is good, we should look at optimizing that code. for example we compute the inverse but dont store the determinate computed in the use of the inverse. then we compute the determinate right after..  where as could store the determinate or just create an inverse using it..  either/or.
so the entire point of dirty flag is to

A) avoid traversal if possible.
B) avoid computeWorldMatrix
C) avoid calling isSyncronized as much as possible though this is now called per transformnode
D) using isDirty boolean walking data is way faster than calling isSync function.. overhead is minimal

long term it may open for optimzation pipe where we can avoid updating all transforms and just manually flag dirty for 'advanced' engine users perhaps ?
checking out the nodes tonight..

But as we can't use properties the dirtyFlag has to be tested with isSynchronized which can be done while walking the tree so no need for dirtyFlag at all. We just walk the tree, check if the node isSyncrhonized, if not we computeWorldMatrix, set the node.wasUpdated = true, run down the children and reset node.wasUdpated after processing children.
I agree that computeWorldMatrix must be avoided as much as possible and that's what we tend to do already
D) Sorry but I don't see why this is needed as we need to call isSync to get the isDirty

By the way, do you have a test scene in the PG by any chance?

Ok I did the PR, you can have a look when you have a chance

I checked out the branch I created a test scene thats just spheres but might not be a good example, its spending more time in MeshRender than it is in graphing.
node-test.zip

btw, Im on Pacific timezone, but not available till evenings so, sorry about sluggish response times :)
i ran that on the graphImprovements and we are slower walking through all I am rotating just root node though..  in comparision I ran 1000 spheres without parenting @ 60hz.. could be parenting is re-rendering that sphere hierarchy multiple times :)

I'm on PST as well (seattle :))
So I'm seeing an improvement regarding performance of WM computation.
From:

To:

Not a big deal but still improvement and code is cleaner so I'll merge it

ok so i thought we could do better here but not certain.  I still think we are overwalking and over transforming.  Question though ? how can I reference a single created sphere and render through references to that sphere rather than running out of memory creating 10,000 of them ?

You can use clone which will share the geometry but still do a draw call per mesh.
Or you can use createInstance and then it will be only a single draw call


Crash when running on Windows 11 on ARM

Describe the bug
An unhandled exception of type 'System.AccessViolationException' occurred in Avalonia.Win32.dll
Attempted to read or write protected memory. This is often an indication that other memory is corrupt
To Reproduce
Run new Avalonia app from template on Windows 11 on ARM
Expected behavior
No crash
Screenshots

Desktop (please complete the following information):

OS: Windows 11 on ARM
Version 0.10.x

Additional context
Running inside VM MacOS M1 Parallels
Disabling WindowsUIComposition avoids crash.
new Win32PlatformOptions() {  UseWindowsUIComposition = false }

https://github.com/AvaloniaUI/Avalonia/blob/1eead138fc649dcc2a2bd77148e91b2ea01f2b4f/src/Windows/Avalonia.Win32/WinRT/winrt.idl#L445-L446
https://github.com/dotnet/runtime/issues/72321
[External Code]
> dcomp.dll!Microsoft::WRL::Details::DelegateArgTraits<long (__cdecl Windows::Foundation::IAsyncActionCompletedHandler::*)(Windows::Foundation::IAsyncAction *,enum ABI::Windows::Foundation::AsyncStatus)>::DelegateInvokeHelper<Microsoft::WRL::Implements<Microsoft::WRL::RuntimeClassFlags<2>,Windows::Foundation::IAsyncActionCompletedHandler,Microsoft::WRL::FtmBase>,<lambda_2a41ea20f21462c29868894764bbafd5>,-1,Windows::Foundation::IAsyncAction *,enum ABI::Windows::Foundation::AsyncStatus>::Invoke() Unknown
  dcomp.dll!Microsoft::WRL::InvokeTraits<-2>::InvokeDelegates<<lambda_235ffb6b1ffc6a4928642e92ab1f25a5>,Windows::Foundation::IAsyncActionCompletedHandler>() Unknown
  dcomp.dll!<lambda>(void)() Unknown
  dcomp.dll!Microsoft::WRL2::ContextSession::LeaveSession_Callback<<lambda>(void)>() Unknown
  dcomp.dll!Windows::UI::Composition::CompositorCommon::OnCommitCompletion(void) Unknown
  CoreMessaging.dll!CFlat::SehSafe::Execute<<lambda_19cca5ef35227df66cdfebe4b6644b4b>>() Unknown
  CoreMessaging.dll!Microsoft::CoreUI::Dispatch::WaitCallback::ImportAdapter$() Unknown
  CoreMessaging.dll!Microsoft::CoreUI::Dispatch::RegisteredWait::DoCallback() Unknown
  CoreMessaging.dll!Microsoft::CoreUI::Dispatch::DeferredCall::Callback_Dispatch() Unknown
  CoreMessaging.dll!Microsoft::CoreUI::Dispatch::DeferredCallDispatcher::Callback_OnDispatch() Unknown
  CoreMessaging.dll!Microsoft::CoreUI::Dispatch::EventLoop::Callback_RunCoreLoop() Unknown
  CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::DrainCoreMessagingQueue(enum Microsoft::CoreUI::Dispatch::UserAdapter$UserPriority,void * *) Unknown
  CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::OnUserDispatch(bool,enum Microsoft::CoreUI::Dispatch::UserAdapter$UserPriority,void * *) Unknown
  CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::OnUserDispatchRaw(enum Microsoft::CoreUI::Dispatch::UserAdapter$UserPriority,bool,void * *) Unknown
  CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::DoWork(struct HWND__ *,enum Microsoft::CoreUI::Dispatch::UserAdapter$UserPriority,bool) Unknown
  CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::WindowProc(struct HWND__ *,unsigned int,unsigned __int64,__int64) Unknown
  user32.dll!UserCallWinProcCheckWow(struct _ACTIVATION_CONTEXT *,__int64 (*)(struct tagWND *,unsigned int,unsigned int64,__int64),struct HWND *,enum _WM_VALUE,unsigned __int64,__int64,void *,int) Unknown
  user32.dll!DispatchClientMessage() Unknown
  user32.dll!__fnDWORD () Unknown
  ntdll.dll!KiUserCallbackDispatcherReturn () Unknown
  win32u.dll!NtUserGetMessage () Unknown
  user32.dll!GetMessageW() Unknown
  [External Code]
  kernel32.dll!BaseThreadInitThunk() Unknown
  ntdll.dll!RtlUserThreadStart() Unknown

[Managed to Native Transition]
Avalonia.Win32.dll!Avalonia.Win32.WinRT.Impl.__MicroComICompositionGraphicsDeviceProxy.CreateDrawingSurface(Avalonia.Win32.Interop.UnmanagedMethods.SIZE sizePixels, Avalonia.Win32.WinRT.DirectXPixelFormat pixelFormat, Avalonia.Win32.WinRT.DirectXAlphaMode alphaMode)
Avalonia.Win32.dll!Avalonia.Win32.WinRT.Composition.WinUICompositorConnection.CreateWindow(nint hWnd)
Avalonia.Win32.dll!Avalonia.Win32.WinRT.Composition.WinUiCompositedWindowSurface.CreateGlRenderTarget()
Avalonia.Skia.dll!Avalonia.Skia.GlRenderTarget.GlRenderTarget(SkiaSharp.GRContext grContext, Avalonia.OpenGL.Surfaces.IGlPlatformSurface glSurface)
Avalonia.Skia.dll!Avalonia.Skia.GlSkiaGpu.TryCreateRenderTarget(System.Collections.Generic.IEnumerable<object> surfaces)
Avalonia.Skia.dll!Avalonia.Skia.PlatformRenderInterface.CreateRenderTarget(System.Collections.Generic.IEnumerable<object> surfaces)
Avalonia.Controls.dll!Avalonia.Controls.TopLevel.CreateRenderTarget()
Avalonia.Controls.dll!Avalonia.Controls.TopLevel.Avalonia.Rendering.IRenderRoot.CreateRenderTarget()
Avalonia.Base.dll!Avalonia.Rendering.Composition.Server.ServerCompositionTarget.Render()
Avalonia.Base.dll!Avalonia.Rendering.Composition.Server.ServerCompositor.RenderCore()
Avalonia.Base.dll!Avalonia.Rendering.Composition.Server.ServerCompositor.Render()
Avalonia.Base.dll!Avalonia.Rendering.RenderLoop.TimerTick(System.TimeSpan time)
Avalonia.Win32.dll!Avalonia.Win32.WinRT.Composition.WinUICompositorConnection.RunLoopHandler.Invoke(Avalonia.Win32.WinRT.IAsyncAction asyncInfo, Avalonia.Win32.WinRT.AsyncStatus asyncStatus)
Avalonia.Win32.dll!Avalonia.Win32.WinRT.Impl.__MicroComIAsyncActionCompletedHandlerVTable.Invoke(void* this, void* asyncInfo, Avalonia.Win32.WinRT.AsyncStatus asyncStatus)
[Native to Managed Transition]
dcomp.dll!Microsoft::WRL::Details::DelegateArgTraits<long (__cdecl Windows::Foundation::IAsyncActionCompletedHandler::*)(Windows::Foundation::IAsyncAction *,enum ABI::Windows::Foundation::AsyncStatus)>::DelegateInvokeHelper<Microsoft::WRL::Implements<Microsoft::WRL::RuntimeClassFlags<2>,Windows::Foundation::IAsyncActionCompletedHandler,Microsoft::WRL::FtmBase>,<lambda_2a41ea20f21462c29868894764bbafd5>,-1,Windows::Foundation::IAsyncAction *,enum ABI::Windows::Foundation::AsyncStatus>::Invoke()
dcomp.dll!Microsoft::WRL::InvokeTraits<-2>::InvokeDelegates<<lambda_235ffb6b1ffc6a4928642e92ab1f25a5>,Windows::Foundation::IAsyncActionCompletedHandler>()
dcomp.dll!<lambda>(void)()
dcomp.dll!Microsoft::WRL2::ContextSession::LeaveSession_Callback<<lambda>(void)>()
dcomp.dll!Windows::UI::Composition::CompositorCommon::OnCommitCompletion(void)
CoreMessaging.dll!CFlat::SehSafe::Execute<<lambda_19cca5ef35227df66cdfebe4b6644b4b>>()
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::WaitCallback::ImportAdapter$()
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::RegisteredWait::DoCallback()
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::DeferredCall::Callback_Dispatch()
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::DeferredCallDispatcher::Callback_OnDispatch()
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::EventLoop::Callback_RunCoreLoop()
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::DrainCoreMessagingQueue(enum Microsoft::CoreUI::Dispatch::UserAdapter$UserPriority,void * *)
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::OnUserDispatch(bool,enum Microsoft::CoreUI::Dispatch::UserAdapter$UserPriority,void * *)
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::OnUserDispatchRaw(enum Microsoft::CoreUI::Dispatch::UserAdapter$UserPriority,bool,void * *)
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::DoWork(struct HWND__ *,enum Microsoft::CoreUI::Dispatch::UserAdapter$UserPriority,bool)
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::WindowProc(struct HWND__ *,unsigned int,unsigned __int64,__int64)
user32.dll!UserCallWinProcCheckWow(struct _ACTIVATION_CONTEXT *,__int64 (*)(struct tagWND *,unsigned int,unsigned int64,__int64),struct HWND *,enum _WM_VALUE,unsigned __int64,__int64,void *,int)
user32.dll!DispatchClientMessage()
user32.dll!__fnDWORD ()
ntdll.dll!KiUserCallbackDispatcherReturn ()
win32u.dll!NtUserGetMessage ()
user32.dll!GetMessageW()
[Managed to Native Transition]
Avalonia.Win32.dll!Avalonia.Win32.WinRT.Composition.WinUICompositorConnection.RunLoop()
Avalonia.Win32.dll!Avalonia.Win32.WinRT.Composition.WinUICompositorConnection.TryCreateAndRegisterCore.AnonymousMethod__0()
[Native to Managed Transition]
kernel32.dll!BaseThreadInitThunk()
ntdll.dll!RtlUserThreadStart()

same behavior on Windows on Arm/Project Voltera/Windows DevKit 2023 machine. Exception in Avalonia.Win32.dll <IP_ADDRESS> at
Avalonia.Win32.WinRT.Impl.__MicroComICompositionGraphicsDeviceProxy.CreateDrawingSurface(Avalonia.Win32.Interop.UnmanagedMethods.SIZE, Avalonia.Win32.WinRT.DirectXPixelFormat, Avalonia.Win32.WinRT.DirectXAlphaMode)

to add to that, now that Rider has made its first appearance on arm64/Windows it reports System.Security.VerificationException here

@olifink great findings. Are you able to submit a PR with a fix for it?

@timunie I'd be happy to help but I have no idea what needs to be done to fix this. I've just shared any sights I found.

for what it's worth, I've checked out the repo to see if I can find out more what's happening. The exception is thrown from code that appears to be generated at build time from winrt.idl - specifically this method:
interface ICompositionGraphicsDevice : IInspectable
{
    HRESULT CreateDrawingSurface([in] SIZE sizePixels, ...

now SIZE here is defined in UnmanagedMethods.cs as a struct of two ìnt` which are passed as 0,0 (which appears to be ok)
however the Size datatype used by CreateDrawingSurface are defined as floats. So possibly arm64 is more stringent as to the type or marshalls memory differently, because it reports Attempted to read or write protected memory  in the exception, and float are larger than int - which could explain this.
there also appears to exist a CreateDrawingSurface2 which indeed does differ in defining the sizePixel parameter type as SizeInt32, maybe that could be used.
but, I have no idea how Avalonia actually is intended to work here...

@olifink unfortunately I don't think anybody in the core team has Windows ARM right now. But I can help you with MicroCOM related changes, if you have time to try possible fixes you mentioned above.
You can create another SIZE structure with floats in it defined in the same class, let's say SIZE_F.
Then all you need is to update COM interface method declaration:
HRESULT CreateDrawingSurface([in] SIZE_F sizePixels

And in the beginning of winrt.idl file you will need to define mapping for this struct:
@clr-map SIZE_F Avalonia.Win32.Interop.UnmanagedMethods.SIZE_F

After you build a project, generated code will use a new struct in this method. Most likely you will need to update usage of this method to use a correct struct as well, there will be helpful compile errors.

About CreateDrawingSurface2, it seems it can be used, yes. It was added later in another SDK update (10.0.15063.0). But Avalonia uses these APIs only on even newer Windows builds (I think 10.0.17xxx and newer, don't remember exactly). So it's safe to use that.
To do so, I found IDL definition for this interface:
https://github.com/tpn/winsdk-10/blob/9b69fd26ac0c7d0b83d378dba01080e93349c2ed/Include/10.0.16299.0/winrt/windows.ui.composition.idl#L1016
Slightly adapted it to the MicroCOM IDL syntax:
[uuid(0FB8BDF6-C0F0-4BCC-9FB8-084982490D7D)]
interface ICompositionGraphicsDevice2 : IInspectable
{
    HRESULT CreateDrawingSurface2([in] SIZE sizePixels, [in] DirectXPixelFormat pixelFormat, [in] DirectXAlphaMode alphaMode, [out] [retval] ICompositionDrawingSurface** result);
}

And replaced old call with a new one:
using var device2 = _device.QueryInterface<ICompositionGraphicsDevice2>();

using var drawingSurface = device2.CreateDrawingSurface2(new UnmanagedMethods.SIZE(), DirectXPixelFormat.B8G8R8A8UIntNormalized,
    DirectXAlphaMode.Premultiplied);

Seems to work fine on my x64 machine with this new method. I wonder if it solves it for ARM.

@Lakritzator if you can test this branch or build on your device, please do https://github.com/AvaloniaUI/Avalonia/pull/9342

@maxkatz6 just to be clear, I unfortunately do not have an ARM device. I tried to build the branch, but after getting into all kinds of activities like downgrading workloads etc, I quit after an hour. Also needing .NET Core 2.1 with all the reported CVEs (e.g. CVE-2021-24112) made me second guess. So I didn't manage to test anything, sorry

@Lakritzator my apologies, I pinged a wrong person.
@olifink thank you testing these changes. If you will find anything else, please let me know.

@maxkatz6 that was quick, I was about to do the changes today. So, I have rebuilt from master with your changes and have good news and bad news:
Good it fixes the crash memory corruption with CreateDrawingSurface2 and no exception occurs at that location
Bad in that doesn't mean it's working yet: there are no exceptions but we end up with an empty window frame and it doesn't appear that whatever gets painted on the drawing surface is moved back into the window.
Could be similar cause that's just not hitting a memory exception, I see if I can narrow it down a bit more.

Did you try running using .NET 7 RC2 ARM64 SDK ? I had run successfully app on that SDK without issues.

@maxkatz6 that was quick, I was about to do the changes today. So, I have rebuilt from master with your changes and have good news and bad news:
Good it fixes the crash memory corruption with CreateDrawingSurface2 and no exception occurs at that location
Bad in that doesn't mean it's working yet: there are no exceptions but we end up with an empty window frame and it doesn't appear that whatever gets painted on the drawing surface is moved back into the window.
Could be similar cause that's just not hitting a memory exception, I see if I can narrow it down a bit more.

Did you try running using .NET 7 RC2 ARM64 SDK ? I had run successfully app on that SDK without issues.

@wieslawsoltes yes, I am building and running on 7.0.0-rc.2.22472.3 - that's where no content is shown

@wieslawsoltes same results with the final release of net 7.0 - empty window on a real Windows Arm machine. It seems very likely that mac Parallels replaces/redirects the display driver/compositor to macOS native/metal, so the behavior in rendering is different on Windows Arm hardware than on emulation
Also, when I try the original workaround you described with UseWindowsUIComposition = false I get a completely black window, same as any other Avalonia based app I try to run (Lunacy, dotMemory, dotTrace)

@wieslawsoltes same results with the final release of net 7.0 - empty window on a real Windows Arm machine. It seems very likely that mac Parallels replaces/redirects the display driver/compositor to macOS native/metal, so the behavior in rendering is different on Windows Arm hardware than on emulation
Also, when I try the original workaround you described with UseWindowsUIComposition = false I get a completely black window, same as any other Avalonia based app I try to run (Lunacy, dotMemory, dotTrace)

Try disabling GPU rendering and other thing to try Direct2D1 backend


nvidia: drop

I no longer have an Nvidia GPU, so i cannot ensure if updates work or not.

Thank you for maintaining nvidia while you could!
\


no such pattern

When i run the tool according to the usage instruction in the READ me file i get an error message which says "no such pattern". Any help??

Sorry for the comment i didn't  get the instructions clearly but i got it now..

Sorry for the comment i didn't get the instructions clearly but i got it now..

Can you please share the instructions, as I'm facing the same problem. TIA

@Princ3g
Try this
git clone https://github.com/1ndianl33t/Gf-Patterns
mkdir .gf
mv ~/Gf-Patterns/*.json ~/.gf

@zinminphyo0
Tq brother

"style="position:fixed;top:0;left:0;border:999em solid green;" onmouseover="alert(document.domain)"
{{_c.constructor('alert(1)')()}}
{{constructor.constructor('alert(1)')()}}
"style="position:fixed;top:0;left:0;border:999em solid green;" onmouseover="alert(document.domain)"
{{_c.constructor('alert(1)')()}}
{{constructor.constructor('alert(1)')()}}["style="position:fixed;top:0;left:0;border:999em solid green;" onmouseover="alert(document.domain)"
{{_c.constructor('alert(1)')()}}
{{constructor.constructor('alert(1)')()}}]("style="position:fixed;top:0;left:0;border:999em solid green;" onmouseover="alert(document.domain)"
{{_c.constructor('alert(1)')()}}
{{constructor.constructor('alert(1)')()}})

sacac

@Princ3g Try this git clone https://github.com/1ndianl33t/Gf-Patterns mkdir .gf mv ~/Gf-Patterns/*.json ~/.gf
Sloved

for me not sloveing why can you help me please

I saw a video in nahamsec he is using gf servers but I cant do this

Sorry for the comment i didn't get the instructions clearly but i got it now..

Can you please share the instructions, as I'm facing the same problem. TIA