Failed EAS build, error related to PayCardsRecognizerResult.h

We got this error on the Run fastlane step of EAS build for iOS:
$ set -o pipefail && xcodebuild -workspace ./ZionBank.xcworkspace -scheme ZionBank -configuration Debug -destination 'generic/platform=iOS' -archivePath /Users/expo/Library/Developer/Xcode/Archives/2024-07-03/ZionBank\ 2024-07-03\ 16.18.10.xcarchive archive | tee /Users/expo/workingdir/logs/ZionBank-ZionBank.log > /dev/null

❌  error: Multiple commands produce '/Users/expo/Library/Developer/Xcode/DerivedData/ZionBank-dgtqcfaxpmiehehgfqbvtqbiqwfz/Build/Intermediates.noindex/ArchiveIntermediates/ZionBank/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/RNCardScanner.framework/Headers/PayCardsRecognizer.h'

❌  error: Multiple commands produce '/Users/expo/Library/Developer/Xcode/DerivedData/ZionBank-dgtqcfaxpmiehehgfqbvtqbiqwfz/Build/Intermediates.noindex/ArchiveIntermediates/ZionBank/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/RNCardScanner.framework/Headers/PayCardsRecognizerResult.h'

I am not sure what causes that but it points to the PayCardsRecognizer header file
Our package.json:
"dependencies": {
    "@dev-plugins/react-navigation": "^0.0.6",
    "@dev-plugins/redux": "^0.0.1",
    "@expo/metro-runtime": "~3.2.1",
    "@expo/react-native-action-sheet": "4.1.0",
    "@formatjs/intl-getcanonicallocales": "^2.3.0",
    "@formatjs/intl-locale": "4.0.0",
    "@formatjs/intl-pluralrules": "5.2.14",
    "@formatjs/intl-relativetimeformat": "11.2.14",
    "@gorhom/bottom-sheet": "4.6.3",
    "@react-native-async-storage/async-storage": "1.23.1",
    "@react-native-community/netinfo": "11.3.1",
    "@react-native-firebase/app": "^20.1.0",
    "@react-native-firebase/messaging": "^20.1.0",
    "@react-navigation/elements": "^1.3.30",
    "@reduxjs/toolkit": "2.2.6",
    "@sentry/react-native": "~5.22.0",
<EMAIL_ADDRESS>"2.6.1",
<EMAIL_ADDRESS>"2.2.7",
    "clsx": "2.1.1",
    "concurrently": "^8.2.2",
    "expo": "^51.0.17",
    "expo-blur": "~13.0.2",
    "expo-camera": "~15.0.13",
    "expo-clipboard": "~6.0.3",
    "expo-constants": "~16.0.2",
    "expo-crypto": "~13.0.2",
    "expo-dev-client": "~4.0.19",
    "expo-device": "~6.0.2",
    "expo-font": "~12.0.7",
    "expo-haptics": "~13.0.1",
    "expo-image": "~1.12.12",
    "expo-image-picker": "~15.0.7",
    "expo-linear-gradient": "~13.0.2",
    "expo-linking": "~6.3.1",
    "expo-local-authentication": "~14.0.1",
    "expo-localization": "~15.0.3",
    "expo-network": "~6.0.1",
    "expo-notifications": "~0.28.9",
    "expo-router": "~3.5.17",
    "expo-secure-store": "~13.0.2",
    "expo-sharing": "~12.0.1",
    "expo-splash-screen": "~0.27.5",
    "expo-status-bar": "~1.12.1",
    "expo-system-ui": "~3.0.7",
    "expo-web-browser": "~13.0.3",
    "i18next": "23.11.5",
    "lodash": "^4.17.21",
    "lottie-react-native": "6.7.0",
    "moment": "^2.30.1",
    "nativewind": "^4.0.36",
    "postinstall-postinstall": "^2.1.0",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "react-i18next": "14.1.2",
    "react-native": "0.74.3",
    "react-native-gesture-handler": "~2.16.1",
    "react-native-gifted-charts": "1.4.14",
    "react-native-gifted-chat": "^2.4.0",
    "react-native-mask-input": "^1.2.3",
    "react-native-qrcode-svg": "^6.3.1",
    "react-native-reanimated": "~3.10.1",
    "react-native-safe-area-context": "4.10.1",
    "react-native-screens": "3.31.1",
    "react-native-sse": "^1.2.1",
    "react-native-svg": "15.2.0",
    "react-native-switch": "^1.5.1",
    "react-native-toast-message": "^2.2.0",
    "react-native-url-polyfill": "^2.0.0",
    "react-native-web": "~0.19.12",
    "react-redux": "9.1.2",
    "rn-card-scanner": "^1.1.2",
    "tailwind-merge": "2.3.0",
    "tailwindcss": "3.4.4",
    "usehooks-ts": "^3.1.0",
    "zod": "^3.23.8",
    "expo-build-properties": "~0.12.3"

    ```

Any news about that?

I faced similar issue with React Native 0.75.4 and XCode 16.1
The solution for me was to remove use_frameworks! :linkage => :static from application target in Podfile:
target 'Application' do
  config = use_native_modules!

  use_frameworks! :linkage => :static # <---- ❌ Remove this line
  $RNFirebaseAsStaticFramework = true

  use_react_native!(
    :path => config[:reactNativePath],
    # An absolute path to your application root.
    :app_path => "#{Pod::Config.instance.installation_root}/.."
  )

  ...

This line was required by Firebase services and after removing it, I got the following errors in build process:
module GoogleUtilities not found
module FirebaseCore not found
Those errors were fixed by adding the following lines to top level of Podfile:
pod 'GoogleUtilities', :modular_headers => true
pod 'FirebaseCore', :modular_headers => true

My resulting Podfile looks like this:
def node_require(script)
  # Resolve script with node to allow for hoisting
  require Pod::Executable.execute_command('node', ['-p',
    "require.resolve(
      '#{script}',
      {paths: [process.argv[1]]},
    )", __dir__]).strip
end

node_require('react-native/scripts/react_native_pods.rb')
node_require('react-native-permissions/scripts/setup.rb')

platform :ios, min_ios_version_supported
prepare_react_native_project!

# uncomment wanted permissions
setup_permissions([
  # 'AppTrackingTransparency',
  # 'Bluetooth',
  ...
])

pod 'GoogleUtilities', :modular_headers => true
pod 'FirebaseCore', :modular_headers => true

linkage = ENV['USE_FRAMEWORKS']
if linkage != nil
  Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
  use_frameworks! :linkage => linkage.to_sym
end

target 'Application' do
  config = use_native_modules!

  $RNFirebaseAsStaticFramework = true

  use_react_native!(
    :path => config[:reactNativePath],
    # An absolute path to your application root.
    :app_path => "#{Pod::Config.instance.installation_root}/.."
  )

  target 'Application' do
    inherit! :search_paths
    # Pods for testing
  end

  post_install do |installer|
    # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
    react_native_post_install(
      installer,
      config[:reactNativePath],
      :mac_catalyst_enabled => false,
      # :ccache_enabled => true
    )
  end
end

Hope this will be help


chore(release): v1.0.1 🎉

:robot: I have created a release beep boop
1.0.1 (2024-05-25)
Bug Fixes

pkg: deploy under @ehmpathy namespace to npm (1721fe8)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/ehmpathy/uni-time/releases/tag/v1.0.1 :sunflower:


Disable input fields if locked out

If a member has been locked out as a result of failed login attempts, the authenticator input fields should be disabled to make the lockout obvious.
It would be nice if this functionality could be passed down from this module to the authenticating method modules, but unsure how feasible that is.
Fields that I can think of:

when entering the TOTP code
at the point of initiating the webauthn auth request? not really a field....

Notes:

This scenario is only really relevant when the member is locked out while within the MFA app. For example, they failed entering the TOTP code 'x' times.

I've raised something similar for the login-forms module: https://github.com/silverstripe/silverstripe-login-forms/issues/19

Thinking about this I think we should just return the user to the login form. It doesn't really make sense to leave them on MFA.

I've updated the user story and title based on @ScopeyNZ's feedback

After testing, if a user is locked out during e.g. TOTP authentication, if they wait the allotted time (and their session doesn't also time out) then they can continue to enter the correct code at the same screen (TOTP verification).
With this in mind a redirect does not need to happen, as it is not required for the user to begin the whole log-in process again. To that end this issue becomes more around making the error message stand out, and ensure that the correct message is shown (e.g. "you are locked out" instead of "invalid code"). These last two points are handled by #157

@brynwhyman are you happy with this assessment?

Yes I think so


Support video file previews

will rebase on #1806 if it's merged in first (assume it will be)

👏

Hmm, any reason you didn't merge, @astorije ? We have 2 approvals now.
Sadly, I can't approve for some reason as I get this, so someone else will have to.

any reason you didn't merge, @astorije ?

I just thought this PR required changes per @MaxLeiter's PR description, and also I didn't test it. Feel free to merge whenever you deem it ready. Great job @MaxLeiter!

Probably should be re-approved, changed layout of msg_preview.tpl quite a bit.
ping @astorije @YaManicKill

Looks good, merging :-) thanks @MaxLeiter


chore: update packages

:tada: This PR is included in version 10.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Mistake when recognize number 5

hi,
there is a mistake when recognize number 5.
when I recognize a image contain number 5 the result is  "S"
Image attached below.
Thank you. :)

Just whitelist the chars you want to recognize... see here --> http://stackoverflow.com/questions/2363490/limit-characters-tesseract-is-looking-for

I mean when I recognize "SIN002536" the result is "SIN002S36"   5==>S

You can tweak some with the resolution of the image to see if it get's better and otherwise write some logic yourself. Like when the char on the left and right is a number then the S has to be a 5. OCR'ing is not always 100% bulletproof.

And see this... it could be helpfull --> http://vietocr.sourceforge.net/training.html

yes, let me see.
Thank you. :)

Your welcome

Thanks Kees
On 14/01/2016 8:12 pm, "Kees"<EMAIL_ADDRESS>wrote:

Your welcome
—
Reply to this email directly or view it on GitHub
https://github.com/charlesw/tesseract/issues/237#issuecomment-171581012.

I found that increasing the size of the image and slicing out the part of the image that you want to ocr helps a lot.  For me there is big difference when the size goes to 3x but not much more difference at 5x.  This probably depends on your font and font size.


cp_model does not have MODEL_SAT

The code_samples_sat.ipynb notebook seems to have an out of date reference to a MODEL_SAT field:
https://github.com/google/or-tools/blob/caca08f3f131f7779335f60705da3b61a4787ae2/examples/notebook/code_samples_sat.ipynb
In particular this block
def MinimalCpSat():
  # Creates the model.
  model = cp_model.CpModel()
# Creates the variables.
  num_vals = 3
  x = model.NewIntVar(0, num_vals - 1, "x")
  y = model.NewIntVar(0, num_vals - 1, "y")
  z = model.NewIntVar(0, num_vals - 1, "z")
  # Create the constraints.
  model.Add(x != y)

  # Create a solver and solve.
  solver = cp_model.CpSolver()
  status = solver.Solve(model)

  if status == cp_model.MODEL_SAT:
    print("x = %i" % solver.Value(x))
    print("y = %i" % solver.Value(y))
    print("z = %i" % solver.Value(z))

And thus throws an AttributeError
AttributeError                            Traceback (most recent call last)
<ipython-input-18-17bb331b02a7> in <module>()
----> 1 MinimalCpSat()

<ipython-input-14-b666e42ea70e> in MinimalCpSat()
     14     status = solver.Solve(model)
     15     print(status)
---> 16     if status == cp_model.MODEL_SAT:
     17         print("x = %i" % solver.Value(x))
     18         print("y = %i" % solver.Value(y))

AttributeError: module 'ortools.sat.python.cp_model' has no attribute 'MODEL_SAT'

I just found this commit and it seems to confirm the problem: https://github.com/google/or-tools/commit/bd04f656b30b69b9ce3a55e30043ea598511dc33

Yes, I forgot to update the ipynb after the renaming.
Thanks


Rudimentary Automatic Parallelism

Summary
Applying linear operations over lots of data is a common operation in data science. As these operations often are not interdependent they can fairly easily benefit from parallel execution. This task deals with creating a proof-of-concept implementation of automated parallelism for computations.
Value
We prove that it is possible to do.
Specification

[ ] Determine an algorithm for automated parallelism of computations that:

[ ] Discover situations where there exist strictly separated dataflows.
[ ] Execute these dataflows in parallel on available threads.
[ ] There should be a thread pinned to each available core.

[ ] The implementation should explore techniques to reduce the overhead of spawning threads and (potentially) moving data to the threads to gain the best benefit from parallelism.
[ ] The implementation should provide a runtime option that determines whether or not this automated parallelism is enabled.
[ ] The resultant algorithm should rely on technologies that are currently available in the compiler and interpreter. It may, as a result, make some assumptions about the computations that it is parallelising (regarding observable side effects).
[ ] It must show that processing of 4x 10MB dataframes in parallel results in a 3-4 times speedup. This analysis can assume the existence of a CPU with at least four cores and need not run in the IDE.

Acceptance Criteria & Test Cases

[ ] The difference between parallel and serial should be 3-4 times speedup in favour of parallel execution, assuming an available at least 4-core processor and using single-threaded algorithms processing data in each of the flows.

Consider the following program that should be amenable to parallelisation:
main =
    frame_1 = Table.read_csv "./data.csv"
    frame_1' = frame_1.filter (...)
    frame_2 = Table.read_csv "./data.csv"
    frame_2' = frame_2.filter (...)
    frame_3 = Table.read_csv "./data.csv"
    frame_3' = frame_3.filter (...)
    frame_4 = Table.read_csv "./data.csv"
    frame_4' = frame_4.filter (...)

    Table.merge [frame_1, frame_2, frame_3, frame_4]

This program consists of four strictly-separate streams of data processing that are merged in the final line. Each of these flows performs a filtering operation on the input table to create another table; each of these operations are entirely independent of each other.
While further development could discover seperable data-flows in the program, this task deals only with the parallelisation of already separate data flows.

Consider the following program that should be amenable to parallelisation:
main =
    frame_1 = Table.read_csv "./data.csv"
    frame_1' = frame_1.filter (...)
    frame_2 = Table.read_csv "./data.csv"
    frame_2' = frame_2.filter (...)
    frame_3 = Table.read_csv "./data.csv"
    frame_3' = frame_3.filter (...)
    frame_4 = Table.read_csv "./data.csv"
    frame_4' = frame_4.filter (...)

    Table.merge [frame_1, frame_2, frame_3, frame_4]

This program consists of four strictly-separate streams of data processing that are merged in the final line. Each of these flows performs a filtering operation on the input table to create another table; each of these operations are entirely independent of each other.
While further development could discover seperable data-flows in the program, this task deals only with the parallelisation of already separate data flows.

The initial instinct is to annotate calls that are safe to have their inputs parallelised at the definition site. However, for a call x.f, we do not know what the eventual call target for f will be (due to the fact that methods are dynamically dispatched).
While we could limit usage of this annotation to the statically-dispatched locals (functions, rather than methods), this case degenerates purely to annotating a call to a particular function. Much like we have a @Tail_Call annotation that is placed at a call site, we could add an @Auto_Parallel annotation that is also used at a call site. An informal description of the semantics of this annotation are as follows:

For arguments a_1, ..., a_n, at a call-site annotated with @Auto_Parallel, determine the edges in the dataflow graph that end at these arguments.
Where some subset of these edges are independent, mark these computations as to be parallelised.
When executing the expression containing the annotated call, execute these computations in parallel to obtain their results. Join on the parallel threads and then compute the result of the annotated call.

Edge Separation
The first major question about this approach is how and to what extent do we determine whether edges are separate. As it turns out, we already have comprehensive dataflow information within top-level definitions in the compiler for caching purposes, making it relatively simple to perform this analysis and determine whether all incoming edges to the function arguments are made up of distinct regions in the graph.
Using the dataflow information for this task, however, imposes a number of caveats on the parallelism approach. As we do not yet have comprehensive purity information, the compiler has to take the presence of the @Auto_Parallel annotation as a promise from the programmer that there are no data races or side effects observable between the parallel data flows. With this guarantee, the compiler is then at liberty to run what it determines as separate data flows in parallel.
Compiler and Runtime Changes
The second major question of this approach is how you actually architect such an approach at the runtime and compiler level. As far as I can see at this point, it requires the following moving parts.

Discovery and attribution of the @Auto_Parallel annotation applied to applications.
A pass to enumerate the arguments to the annotated call discover which of the associated data-flows are able to be parallelised. This pass will then handle transforming the program to insert IR nodes denoting parallel fork and join operations, re-parenting the separate data-flows to these nodes.
The separate flows should be wrapped into nullary functions so they are represented as CallTargets at runtime.
The Join IR node will need to be inserted directly before the annotated call, and will need to ensure that the resultant variable names are still in scope for the annotated call.
These new nodes will require changes to alias, dataflow, and tail position analysis.
To compliment these, new runtime nodes will need to be added: ForkNode and JoinNode.

ForkNode will be responsible for spawning threads to execute the individual data-flows, and registering those threads with the ThreadManager.
JoinNode will be responsible for waiting on joining the parallel data-flows, and then executing the expression that depends on them.

Code generation will create these truffle nodes from the corresponding IR nodes.

It should be noted that doing this in this fashion will introduce an overall slowdown to the compiler. Much like any late-stage transformation of the compiler IR, this parallelism discovery pass will require both alias and dataflow analysis to be re-run after it. Alternatively, it must be responsible for updating the results of those analysis passes, but this is infeasible as a not-insignificant part of both passes logic would need to be replicated. Perhaps this is an opportunity to explore making those monolithic passes easier to run on more granular portions of the code than an entire module.
In interest of expediency, however, the simplest approach for now is to provide a global option to the runtime that enables or disables this behaviour, along with the additional analysis passes.
Notes

As this approach only deals with non-interdependent data-flows, there is no need to insert locking.
If the threads have the chance of interacting with the Context, then we need to ensure that we call Language::initializeThread and Language::disposeThread at the start and end of thread execution.

Open Questions

Does Truffle/Graal have a special API for threads like it does for files? I can't find one, but that does not mean it does not exist.
What are the scoping implications of this? Careful consideration is needed of the case where the result of the @Auto_Parallel call is assigned to a variable. I suspect that, because the dataflows are separate, they can be treated as being in their own scope that is part of the assignment. It remains to be seen exactly the changes that will be needed to be made to the analyses that depend on program structure.
How does threading interact with the language context? Are we going to end up with orphan nodes? I would imagine that the closure executed by the spawned thread would be a call target, which I think avoids this issue.

The initial instinct is to annotate calls that are safe to have their inputs parallelised at the definition site. However, for a call x.f, we do not know what the eventual call target for f will be (due to the fact that methods are dynamically dispatched).
While we could limit usage of this annotation to the statically-dispatched locals (functions, rather than methods), this case degenerates purely to annotating a call to a particular function. Much like we have a @Tail_Call annotation that is placed at a call site, we could add an @Auto_Parallel annotation that is also used at a call site. An informal description of the semantics of this annotation are as follows:

For arguments a_1, ..., a_n, at a call-site annotated with @Auto_Parallel, determine the edges in the dataflow graph that end at these arguments.
Where some subset of these edges are independent, mark these computations as to be parallelised.
When executing the expression containing the annotated call, execute these computations in parallel to obtain their results. Join on the parallel threads and then compute the result of the annotated call.

Edge Separation
The first major question about this approach is how and to what extent do we determine whether edges are separate. As it turns out, we already have comprehensive dataflow information within top-level definitions in the compiler for caching purposes, making it relatively simple to perform this analysis and determine whether all incoming edges to the function arguments are made up of distinct regions in the graph.
Using the dataflow information for this task, however, imposes a number of caveats on the parallelism approach. As we do not yet have comprehensive purity information, the compiler has to take the presence of the @Auto_Parallel annotation as a promise from the programmer that there are no data races or side effects observable between the parallel data flows. With this guarantee, the compiler is then at liberty to run what it determines as separate data flows in parallel.
Compiler and Runtime Changes
The second major question of this approach is how you actually architect such an approach at the runtime and compiler level. As far as I can see at this point, it requires the following moving parts.

Discovery and attribution of the @Auto_Parallel annotation applied to applications.
A pass to enumerate the arguments to the annotated call discover which of the associated data-flows are able to be parallelised. This pass will then handle transforming the program to insert IR nodes denoting parallel fork and join operations, re-parenting the separate data-flows to these nodes.
The separate flows should be wrapped into nullary functions so they are represented as CallTargets at runtime.
The Join IR node will need to be inserted directly before the annotated call, and will need to ensure that the resultant variable names are still in scope for the annotated call.
These new nodes will require changes to alias, dataflow, and tail position analysis.
To compliment these, new runtime nodes will need to be added: ForkNode and JoinNode.

ForkNode will be responsible for spawning threads to execute the individual data-flows, and registering those threads with the ThreadManager.
JoinNode will be responsible for waiting on joining the parallel data-flows, and then executing the expression that depends on them.

Code generation will create these truffle nodes from the corresponding IR nodes.

It should be noted that doing this in this fashion will introduce an overall slowdown to the compiler. Much like any late-stage transformation of the compiler IR, this parallelism discovery pass will require both alias and dataflow analysis to be re-run after it. Alternatively, it must be responsible for updating the results of those analysis passes, but this is infeasible as a not-insignificant part of both passes logic would need to be replicated. Perhaps this is an opportunity to explore making those monolithic passes easier to run on more granular portions of the code than an entire module.
In interest of expediency, however, the simplest approach for now is to provide a global option to the runtime that enables or disables this behaviour, along with the additional analysis passes.
Notes

As this approach only deals with non-interdependent data-flows, there is no need to insert locking.
If the threads have the chance of interacting with the Context, then we need to ensure that we call Language::initializeThread and Language::disposeThread at the start and end of thread execution.

Open Questions

Does Truffle/Graal have a special API for threads like it does for files? I can't find one, but that does not mean it does not exist.
What are the scoping implications of this? Careful consideration is needed of the case where the result of the @Auto_Parallel call is assigned to a variable. I suspect that, because the dataflows are separate, they can be treated as being in their own scope that is part of the assignment. It remains to be seen exactly the changes that will be needed to be made to the analyses that depend on program structure.
How does threading interact with the language context? Are we going to end up with orphan nodes? I would imagine that the closure executed by the spawned thread would be a call target, which I think avoids this issue.

The result of the above design would produce code that looks similar to the following:
main =
    frame_1 = Table.read_csv "./data.csv"
    frame_1' = frame_1.expensive_operation (...)
    frame_2 = Table.read_csv "./data.csv"
    frame_2' = frame_2.expensive_operation (...)
    frame_3 = Table.read_csv "./data.csv"
    frame_3' = frame_3.expensive_operation (...)
    frame_4 = Table.read_csv "./data.csv"
    frame_4' = frame_4.expensive_operation (...)

    @Auto_Parallel Table.merge [frame_1, frame_2, frame_3, frame_4]

The result of the above design would produce code that looks similar to the following:
main =
    frame_1 = Table.read_csv "./data.csv"
    frame_1' = frame_1.expensive_operation (...)
    frame_2 = Table.read_csv "./data.csv"
    frame_2' = frame_2.expensive_operation (...)
    frame_3 = Table.read_csv "./data.csv"
    frame_3' = frame_3.expensive_operation (...)
    frame_4 = Table.read_csv "./data.csv"
    frame_4' = frame_4.expensive_operation (...)

    @Auto_Parallel Table.merge [frame_1, frame_2, frame_3, frame_4]

Instead of a ForkNode, JoinNode duality we could instead have an async/await-style architecture. Where we have code similar to
x = table1.doThing
y = table2.doThing

print "Hello world"

z = x + y

We can perform a static translation to something equivalent to
x_async = Async.spawn (table1.doThing)
y_async = Async.spawn (table2.doThing)

print "Hello World"

x = x_async.await
y = y_async.await

z = x + y

Async.spawn and await would require the creation of special IR nodes and special ExpressionNodes to represent these.

Instead of a ForkNode, JoinNode duality we could instead have an async/await-style architecture. Where we have code similar to
x = table1.doThing
y = table2.doThing

print "Hello world"

z = x + y

We can perform a static translation to something equivalent to
x_async = Async.spawn (table1.doThing)
y_async = Async.spawn (table2.doThing)

print "Hello World"

x = x_async.await
y = y_async.await

z = x + y

Async.spawn and await would require the creation of special IR nodes and special ExpressionNodes to represent these.

An alternative approach is to annotate statically known methods as @Pure. Pure methods could then be parallelised with an async/await style process as above. @Pure methods would have to disallow lazy arguments such that we can always guarantee that the arguments are evaluated before forking, and join points would have to join on the thread handles.
Threads should be handled through the TruffleLanguage.Env API. We do not know ahead of time whether you can execute a node directly, but we can always execute a CallTarget. The VirtualFrame would need to be materialized.

An alternative approach is to annotate statically known methods as @Pure. Pure methods could then be parallelised with an async/await style process as above. @Pure methods would have to disallow lazy arguments such that we can always guarantee that the arguments are evaluated before forking, and join points would have to join on the thread handles.
Threads should be handled through the TruffleLanguage.Env API. We do not know ahead of time whether you can execute a node directly, but we can always execute a CallTarget. The VirtualFrame would need to be materialized.


Changes for nuttx issue 1883

Summary
Fix for nuttx issue # 1883. When proc file-system is not mounted, running ifconfig should give output as "ifconfig: procfs is not mounted" instead of "ifconfig: opendir failed: 20".
Impact
When proc file-system is not mounted, running ifconfig should give output as "ifconfig: procfs is not mounted" instead of "ifconfig: opendir failed: 20".
Testing
Should be built and tested against relevant h/w platforms.
Since I don't have necessary h/w platform yet, couldn't test functionality on real hardware by (un/re)mounting procfs.

I think we could give this error for any command, not just ifconfig (considering that code which is used by other commands). The message could also read "Could not open /proc/net dir (is procfs mounted?)" so that one knows what is being tried to access.

@v01d I agree. The command output "Could not open /proc/net dir" seems more accurate. I'll incorporate necessary changes. Thank you.

Looks like I messed up. I made changes to my local branch and then performed fetch which resulted in merge conflict. Afterwards, I tried doing git rebase and that made things worse. :(

Creating a fresh pull request instead.


Further problems about beat detector

It can be detected that when a beat occurs in a song through your program. Now, I have a new problem. Did you clap when someone is singing a song?  How to detect when i should clap? I‘m looking forward to your reply....

 If that's the case, what you're wanting is instrument detection, which lwbd doesn't yet support. If that's not what you meant, please provide some more details.

I‘m sorry for not expressing a clear meaning.Due to my lack of musical knowledge, I want to express my intent with a song.Did you heard a song called rolling in the deep(live)? In this song, you can heard that audience clap their hands according to the song's rhythm.Now,given an ordinary song(not a live song) , I want to know when  i should clap my hands. In other words,is it possible that computers know when to clap hands like audience in an ordinary song?


Fix future pylint messages

Description:
Fixes new pylint warnings introduced in pylint 2.0, namely
Do not use `len(SEQUENCE)` as condition value (len-as-condition)
and
Unnecessary "else" after "return" (no-else-return)
This should wait after all currently open PRs get merged so it doesn't create merge conflicts.
Checklist:

[x] PR Location (usually master for hotfixes, dev for general development)

14-day PR review window rule ... merging.

Hey @renekliment I just want to thank you for keeping this going.  I know that my life has been too busy for more than just the odd "trying to help people out" moments, but I want you to know that you're not operating in a vacuum.
I hope to get more time to work on some testing etc., but for now, know that I for one appreciate your efforts.


[FEATURE]: toggle switch in tailwind

Description
Need to create code for toggle switch  as per below image.

The final code should be placed under path tailwind_components/forms with file name as toggle_switch.jsx
The file as to be imported to tailwind_components/forms/collection.js file as per example and added to the formCollections list
The toggle switch should be responsive to user actions
Post these process, go to components tab (components/forms) in website and check whether the codepen is updated

For PR reference - https://github.com/jsvigneshkanna/tailwind_ui_components/pull/76/files
For any issue while creating / importing the component code file, check below sample files
https://github.com/jsvigneshkanna/tailwind_ui_components/tree/master/tailwind_components/buttons
For icons please refer - https://heroicons.com/
Screenshot of the tailwind component

Are you taking this fetaure implementaion
no

Hello could I be assigned this?

Sure @HondaChan14 ,
Also please check alert component design in issue tabs

Hi @HondaChan14 ,
let me know if any help needed on this issue!

Hi @HondaChan14 , unassigning you from this issue as it was inactive for more than 3 days

Hello @jsvigneshkanna can I give it a try?

Sure @AFPedreros , please go ahead
The creativity on color and size is upto you

Thank you!


CAMEL-18315: camel-hyperledger-aries - Add support for single tenancy…

… agent

The GH action says there is a test error

It seems that checkstyle issues (which should be fixed now) are reported as test errors


managing sitemap at runtime in swr with data from an headless cms

Details
So, as stated in the nuxt-seo-kit I've noticed that simple-sitemap needs to prerender all the pages so that it could create the sitemap. Quite fine for SSG but not so much when on SSR with SWR and ISR...
So I started studying how dynamic urls setup works, but if I understand it correctly, for the loc I should provide the slug and not the full url right? But then where I put the full url? In the sitemap.siteUrl inside nuxt.config.ts? But if I do so doesn't it reactivate the prerendering?

Hey @Sandros94, in the latest version of nuxt-simple-sitemp it reads from the request headers to determine the site URL. You should be able to just leave siteUrl undefined if you're generating the sitemap at runtime.

Thanks, as soon as I manage to list the slugs from my backend and test this I'll update.

Hey @Sandros94, in the latest version of nuxt-simple-sitemp it reads from the request headers to determine the site URL. You should be able to just leave siteUrl undefined if you're generating the sitemap at runtime.

Hi, I added some slugs statically for now (to check if they are added to the sitemap, before fetching them from my CMS) to the code and my code looks like this:
export default cachedEventHandler(async () => {
    // const [
    //   posts,
    // ] = await Promise.all([
    //   {
    //     url:'/blog/hello-world',
    //     updatedAt:'8998',
    //   }
    // ])
    // return [posts].map((p) => {
    //   return { loc: p.url, lastmod: p.updatedAt }
    // })
    return [
        {
            loc: 'hello-there', lastMod: '8378787'
        },
        {
            loc: 'hello-world', lastMod: '8378787'
        },
    ]
  }
  , {
    name: 'sitemap-dynamic-urls',
    maxAge: 60 * 10 // cache URLs for 10 minutes
  }
  )

I generated a build and I cant see the list of those in the sitemap.xml file. Only the prerendered routes are available.
What must be going wrong? I am new to Nuxt in general.

@arjunhadke7 Does it work in dev? If so, what method are you using to build / preview?

@arjunhadke7 Does it work in dev? If so, what method are you using to build / preview?

No it doesnt show up at all on dev.

@harlan-zw For now I am relying on Start-time dynamic URLs.
This section: https://github.com/harlan-zw/nuxt-simple-sitemap#start-time-dynamic-urls
Since I dont have a lot many posts or pages that are being called from the CMS.

Will track this as part of https://github.com/harlan-zw/nuxt-simple-sitemap/issues/80

Will track this as part of #80

Sounds good.
Currently I'm still scratching my head around how should I handle this in the backend (not to mention a small bug in the directus flow). But we do agree that it is best suited there, since the data handled by the backend and nuxt only creates the interactivity.

@Sandros94 I'm also struggling with Directus and this repository, did you find a solution?

@Sandros94 I'm also struggling with Directus and this repository, did you find a solution?

Not really, I got offtrack when the new SDK released.
Currently I'm testing stuff around the nuxt-directus module and the new SDK. Only then I would have come back to this topic.


AIMA4e reimplement Chp 9 CNF from AIMA3e branch

@ctjoreilly  - I am just curious, why we need to reimplement it? I see a lot of reimplementing issues. I am a beginner to this repository, sorry if my question is very silly.  I want to contribute here; I am confused on what should I re-implement it. Is it just copy the code from AIMA3e branch to AIMA4e Branch?
Thank you
AjAy


Ignore non-native LocationChanges in native navigation effect

The createRenderEffect in charge of resetting submissions when a native navigation occurs currently fires whenever any navigation occurs, including when the router first mounts.
Because of this, when a route first loads or is navigated to that invokes an action in onMount, a race condition occurs between the action's submission and the effect's submission reset:

The render effect runs (render phase), queueing submissions[1]([]) onto the next microtask by wrapping it in start for a transition.
onMount runs (post-render phase), invoking the action and creating an entry in submissions.
The next microtask comes and submissions[1]([]) runs, wiping out the previously created entry in submissions.

I've fixed this by adding an internal intent property to LocationChange, which if present instructs the render effect to actually run, so it will not run on page load or from navigate(). The property has @internal so it doesn't show up in the generated .d.ts.
Fixes #433
I also ran the pretty script bc my local formatter messed some formatting up. If needed I can take just the important changes and get rid of all the formatting changes.

I have to admit on its own the formatting would have been fine.. but I'm trying to compare this against #442 so not quite clear the differences are. @Brendonovich do you have any thoughts on #442?

#422 looks good, it addresses the same things as this PR and some more, I'll close this and suggest some improvements on the other.


not able to reorder on mobile/tablet devices

Hello! Not sure if there is a quick fix for this, works perfectly on desktop/laptop but when it's on mobile or tablet i am not able to click the element to drag.

We're bundling a prehistoric version of jQuery UI for the draggable behavior (1.11.4, from 2015). Maybe a newer version would work?

I think this is improved by #26


Dependency upgrades and Vulnerabilities removed

upgrade dependencies & remove vulnerabilities & remove redundant suppression's
New make target added to align with pipeline targets

CI: Security warnings found!

CI: Security warnings found!

CI: Security warnings found!


Hide legend items if associated series is zero

Now users are often confused to see a color in the legend which does not appear in the chart.

This is only the case for perticular charts not for all charts. I know that the d3 merit chart has this  feature already.


Support SILVA: add silva roles

Describe the task
Create silva roles as requested.
Acceptance Criteria

[ ] Create SILVA roles with role name, role type and purpose
[ ] Add new roles to all env, SILVA_DEV, SILVA_TEST and SILVA_PROD

Additional context
Roles:
Viewer: View Silva data for assigned clients or organizational units.
Submitter: View and update Silva data, including activity reporting and milestone declarations.
Approver: Review and approve or reject submissions on behalf of the Minister or designate.
Planner: Conduct planning and managing activities for government-funded programs.
Admin: Manages Silva data and performs administrative tasks.

@MCatherine1994 roles and definitions have been verified with Caroline.

Tagging @jazzgrewal so he knows when the roles are set up.


4.1.0 Matrix Expand Collapse not working in packaged version

I created a visual with Matrix expand collapse feature. I was successful in creating it. In development mode it works like a charm but when I try to package it, it gets stuck and expand collapse does not work on calling this.selectionManager.toggleExpandCollapse(nodeSelectionId) and the same throws error in desktop mode.
visuals-tools: 4.0.4
visuals-api: 4.1.0
I have given a link to the repo below and the data set I used.
https://github.com/vicktor3/matrixviz
mode2AutoGen.csv
Reference: https://docs.microsoft.com/en-us/power-bi/developer/visuals/dataview-mappings#expanding-and-collapsing-row-headers

@vicktor3 Thank you for this issue.
It should work fine in the newest version.
You can reach out to<EMAIL_ADDRESS>or create a new issue if the problem still appears on your end.


Add support for tool Laravel Pint

name: 🎉 New Feature
about: add a new feature
labels: enhancement

A Pull Request should be associated with a Discussion.

If you're fixing a bug, adding a new feature or improving something please provide the details in discussions,
so that the development can be pointed in the intended direction.

Related discussion: #613

Further notes in Contribution Guidelines
Thank you for your contribution.

Description
This PR adds support for Laravel Pint

In case this PR introduced TypeScript/JavaScript code changes:

[x] I have written test cases for the changes in this pull request
[x] I have run npm run format before the commit.
[x] I have run npm run lint before the commit.
[x] I have run npm run release before the commit.
[x] npm test returns with no unit test errors and all code covered.

In case this PR edits any scripts:

[x] I have checked the edited scripts for syntax.
[ ] I have tested the changes in an integration test (If yes, provide workflow YAML and link).

@d8vjork Thanks for the contribution 🎉


feat(pegboard): add process monitoring, wip sqlite

Changes

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#1146  👈
#1145
#1144
#1143
#1142
#1141
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @MasterPtato and the rest of your teammates on  Graphite


bump to version 17.14.0

Includes:

Change paragraph to div for descriptions to support govspeak (PR #985)

I would say this is probably a patch release, so 17.13.1

@vanitabarrett good point, updated

Now that #988 is in, could we rebase and make it 17.14.0 again? 😁

@alex-ju updated


No handlers could be found for logger "grpc._plugin_wrapping"

I am getting the following error:
No handlers could be found for logger "grpc._plugin_wrapping" (full error text) similar to https://github.com/googlecodelabs/iot-data-pipeline/issues/6
Using python and google-cloud, google-cloud-language
Expected no error, code was previously working.

Are you sure it is not a higher level library issue?
Please give us a reproduction case directly using gRPC if you think it's a gRPC issue.  Or at least give us more details on what broke on which version?

No change was made afaik. The difference was no error, and now the error
occurs.
On Wed, Sep 5, 2018 at 4:20 PM Nathaniel Manista<EMAIL_ADDRESS>wrote:

What's the difference between "code was previously working" and now? Did
you recently change Python interpreter versions? Did you recently change
gRPC Python versions?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/grpc/grpc/issues/16350#issuecomment-418867808, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ADTkLDCYjwZBsTi2-MxYCGIq8Iq4D92mks5uYDIPgaJpZM4V8sHQ
.

--
David Anderton-Yang

Huh. Interesting.
With what version of the Python interpreter are you seeing the problem? On what version of what platform? With what version of gRPC Python?

+1

@tomaskracka: on what version of what platform are you seeing the problem, and with what version of what Python interpreter and what version of gRPC Python?

@nathanielmanistaatgoogle here's what I've got with pip freeze:
cachetools==2.1.0
certifi==2018.8.24
chardet==3.0.4
enum34==1.1.6
futures==3.2.0
google-api-core==1.3.0
google-api-python-client==1.7.4
google-auth==1.5.1
google-auth-httplib2==0.0.3
google-cloud-monitoring==0.30.1
google-cloud-pubsub==0.37.2
googleapis-common-protos==1.5.3
grpc-google-iam-v1==0.11.4
grpcio==1.14.2
httplib2==0.11.3
idna==2.7
oauth2client==4.1.3
protobuf==3.6.1
pyasn1==0.4.4
pyasn1-modules==0.2.2
pytz==2018.5
requests==2.19.1
rsa==3.4.2
six==1.11.0
uritemplate==3.0.0
urllib3==1.23
Windows 10 64bit.
I'm trying to run this code and getting the error which is mentioned here:
client = monitoring_v3.MetricServiceClient() project_name = client.project_path(project_id) interval = monitoring_v3.types.TimeInterval() now = time.time() interval.end_time.seconds = int(now) interval.end_time.nanos = int(     (now - interval.end_time.seconds) * 10**9) interval.start_time.seconds = int(now - 300) interval.start_time.nanos = interval.end_time.nanos results = client.list_time_series(     project_name,     'metric.type = "compute.googleapis.com/instance/cpu/utilization"',     interval,     monitoring_v3.enums.ListTimeSeriesRequest.TimeSeriesView.FULL) for result in results:     print(result)

@dwanderton, if you are building from source, can you please try https://github.com/grpc/grpc/pull/16378. If not, you can use nightly builds from https://packages.grpc.io

Yes We are using grpc as a package dependency of google api package so
unfortunately no real control. :(
On Thu, Sep 13, 2018 at 1:28 PM Srini Polavarapu<EMAIL_ADDRESS>wrote:

@dwanderton https://github.com/dwanderton, if you are building from
source, can you please try #16378
https://github.com/grpc/grpc/pull/16378. If not, you can use nightly
builds from https://packages.grpc.io
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/grpc/grpc/issues/16350#issuecomment-421087390, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ADTkLExrpnBQ01VtPbpgtX1GzJlfFd4wks5uapW8gaJpZM4V8sHQ
.

--
David Anderton-Yang

@dwanderton I suspect you should still be able to force install a gRPC package after installing google api package with pip install to test. Please try:
pip install --pre --upgrade --force-reinstall --extra-index-url \
    https://packages.grpc.io/archive/2018/09/ea232d16d37b8e88806fca3843a360cc338d1a17-9fa370e7-6ac9-402a-ba0c-2e614d232cd2/python \
    grpcio

after installing googleapi package.

Hi @mehrdada,
Now a new error as below:
ERROR:grpc._plugin_wrapping:AuthMetadataPluginCallback "<google.auth.transport.grpc.AuthMetadataPlugin object at 0x7fd78bbddb10>" raised exception!
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/grpc/_plugin_wrapping.py", line 80, in __call__
    callback_state, callback))
  File "/usr/local/lib/python2.7/dist-packages/google/auth/transport/grpc.py", line 77, in __call__
    callback(self._get_authorization_headers(context), None)
  File "/usr/local/lib/python2.7/dist-packages/google/auth/transport/grpc.py", line 61, in _get_authorization_headers
    self._credentials.before_request(
AttributeError: 'dict' object has no attribute 'before_request'

Just built the google sentiment example from github. Run into the same exact issues as detailed above, and from applying the fix you suggested.
https://github.com/GoogleCloudPlatform/python-docs-samples.git
https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/language/sentiment

Hi @dwanderton,
I tried on Linux, macOS, Docker, gRPC 1.14.2/1.15 and various Python 2.7 subversions. I failed to reproduce the error you mentioned.
Can you give more detail about the environment for reproducing? Like package versions, OS, even the method of authentication for Google Cloud.

@dwanderton: are you still talking about a problem related to logging? If not, perhaps conversation on this new topic should take place in a new issue?

Switched to Watson from Google Cloud, more $$ less pain it seems...
but fyi, @lidizheng I was using virtualenv on mac OS 10.13.6 and authenticating to google cloud using the environment var credential json as in the google cloud tutorial.

@nathanielmanistaatgoogle sure I think I'm off this thread for now, thanks for everyones effort. I believe the issue is the same, the proposed resolution spawned a new issue for me as I detailed above.
As for now I think practically I need to find a solution by switching api. thanks again to all.

Closing this issue because it is fixed by https://github.com/grpc/grpc/pull/17064.


What about ThingsBoard Stack size.

Someone please expand about thingsboard stack size.

When i initial ThingsBoard. How is difference between

ThingsBoardSized<128> tb(mqttClient, MAX_MESSAGE_SIZE);

and
ThingsBoard tb(mqttClient, MAX_MESSAGE_SIZE);

Maximum size of anything in below this
What is Default_Max_Stack_Size , Default_Buffering_Size ,Default_Payload , Default_Fields_Amt

If i would like to send multi telemetry in once time. What is the right way to config max telemetry size?.

If you see the documentation of the class, should appear in VsCode when hovering over ThingsBoard constructor you should see this comment.
/// @tparam MaxFieldsAmount Maximum amount of key value pair that we will be able to sent or received by ThingsBoard in one call, default = Default_Fields_Amount (8)
 /// @param bufferSize Maximum amount of data that can be either received or sent to ThingsBoard at once, if bigger packets are received they are discarded
/// and if we attempt to send data that is bigger, it will not be sent, the internal value can be changed later at any time with the setBufferSize() method
/// alternatively setting THINGSBOARD_ENABLE_STREAM_UTILS to 1 allows to send arbitrary size payloads if that is done the internal buffer of the MQTT Client implementation
/// can be theoretically set to only be as big as the biggest message we should every receive from ThingsBoard,
/// this will mean though that all messages are sent over the StreamUtils library as long as they are bigger than the internal buffer,
/// which needs more time than sending a message directly but has the advantage of requiring less memory.
/// So if that is a problem on the board it might be useful to enable the THINGSBOARD_ENABLE_STREAM_UTILS option
/// and decrease the internal buffer size of the mqtt client to what is needed to receive all MQTT messages,
/// that size can vary but if all ThingsBoard features are used a buffer size of 256 bytes should suffice for receiving most responses.
/// If the aforementioned feature is not enabled the buffer size might need to be much bigger though,
/// but in that case if a message was too big to be sent the user will be informed with a message to the Logger.
/// The aforementioned options can only be enabled if Arduino is used to build this library, because the StreamUtils library requires it, default = Default_Payload (64)
/// @param maxStackSize Maximum amount of bytes we want to allocate on the stack, default = Default_Max_Stack_Size (1024)
/// @param bufferingSize Amount of bytes allocated to speed up serialization, only used if THINGSBOARD_ENABLE_STREAM_UTILS is set to 1, default = Default_Buffering_Size (64)

I hope this somewhat helps explain the different values and possible template arguments to the class.

That all
Thank you.


Support async commands with Window handle on Windows

Is your feature request related to a problem? Please describe.
I have an async [tauri::command] that includes a Window.  This command compiles on Linux, but not compile on Windows.  On Windows I get an error that Window is not Send and not Sync.
Describe the solution you'd like
Window object on Windows should be Send + Sync as same on Linux.
Additional context
Here is the code that compiles on Linux, but does not compile on Windows
#[tauri::command]
pub async fn update<'r>(
  io: tauri::State<'r, Io>,
  window: tauri::Window,
  serial: String,
  update: Update,
) -> Result<(), String> {
  let mut count = 0;
  let total = update.len();
  io.channel(&serial)
    .map_err(|e| e.to_string())?
    .requests(update)
    .try_for_each(|_| {
      count = count + 1;
      window
        .emit(
          "update",
          Some(UpdateProgress {
            serial: serial.clone(),
            count,
            total,
          }),
        )
        .expect("failed to emit update status");
      future::ready(Ok(()))
    })
    .map_err(|e| e.to_string())
    .await?;
  Ok(())
}

Here are some clips of the compiler errors
13 |   #[tauri::command]
   |   ^^^^^^^^^^^^^^^^^ future returned by `update` is not `Send`

   = help: within `tauri::Window`, the trait `std::marker::Sync` is not implemented for `*mut winapi::shared::windef::HWND__`
note: future is not `Send` as this value is used across an await

   = help: within `tauri::Window`, the trait `std::marker::Sync` is not implemented for `std::sync::mpsc::Sender<tauri_runtime_wry::Message>`
note: future is not `Send` as this value is used across an await

[Windows info]
Operating System - Windows, version 10.0.19041 X64
Webview2 - 91.0.864.54

Node.js environment
  Node.js - 14.15.4
  @tauri-apps/cli - 1.0.0-beta.1 (outdated, latest: 1.0.0-beta.3)
  @tauri-apps/api - Not installed

Global packages
  npm - 6.14.10
  yarn - 1.22.10

Rust environment
  rustc - 1.53.0
  cargo - 1.53.0

App directory structure
/src
/src-tauri

App
  tauri.rs - 1.0.0-beta.2
build-type - bundle
CSP - default-src blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self' img-src: 'self'
distDir - ../../../dist/app-companion/
devPath - http://localhost:4500

[Linux info]
Operating System - Fedora, version 32.0.0 X64

Node.js environment
  Node.js - 14.17.0
  @tauri-apps/cli - 1.0.0-beta.1 (outdated, latest: 1.0.0-beta.3)
  @tauri-apps/api - Not installed

Global packages
  npm - 6.14.13
  yarn - 1.22.10

Rust environment
  rustc - 1.53.0
  cargo - 1.53.0

App directory structure
/src
/src-tauri

App
  tauri.rs - 1.0.0-beta.2
build-type - bundle
CSP - default-src blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self' img-src: 'self'
distDir - ../../../dist/app-companion/
devPath - http://localhost:4500

I believe c_void does not have Send + Sync auto traits. So you might need to wrap this handle?  No idea if that is sound or not but perhaps this is why the Window is not Send
  #[cfg(windows)]
  pub fn hwnd(&self) -> crate::Result<*mut std::ffi::c_void> {
    self.window.dispatcher.hwnd().map_err(Into::into)
  }

As a work around, i am no longer using window.emit and driving the update feature client side using a request/response pattern. I think what is actually needed for this use case is the concept of a stream.  Where instead of returning a future resolving a single response, we return a stream of responses. Maybe that would go in a different feature request

You should move the window to the try_for_each closure (probably needs to clone a window for each iteration).


Fixes to color casting

I know this repository is marked as unmaintained but I was hoping you would consider this PR. This library right now has two bugs that are causing me problems:

_sc-pow() doesn't handle the power of 0 correctly
_sc-hex-to-dec calculates the hex equivalent of a hexadecimal completely wrong; this bug causes the to-color() function change the color.

e.g. e0 is calculated as 238 when it really should be 224

Here are two snippets showing what I mean:
git master: https://www.sassmeister.com/gist/f59a56e001aeced7549648e1576516f6
my fixes: https://www.sassmeister.com/gist/855ebd982cb19f5b37ea45409b71a602

Sure thing. I’ll do a release. :)

Released in 2.0.1, thank you!

Awesome! thank you very much 👍


Edgeware can't start due to syntax error

Just tried to test a friend's pack and I got a syntax error. Continues occurring even after reinstall and using the test pack, but I saw complete brackets when I checked it over so I have no clue what happened
Error message copied below for ease of your copypasting, and a screenshot below that for how it displayed for me:
File "D:\My_Games\EdgewarePlusPlus-main\EdgewarePlusPlus-main\edgeware\src\main.py", line 4, in
from features.corruption import handle_corruption
File "D:\My_Games\EdgewarePlusPlus-main\EdgewarePlusPlus-main\edgeware\src\features\corruption.py", line 4, in
from pack import Pack
File "D:\My_Games\EdgewarePlusPlus-main\EdgewarePlusPlus-main\edgeware\src\pack_init_.py", line 9, in
from pack.load import list_media, load_captions, load_corruption, load_discord, load_info, load_media, load_moods, load_prompt, load_web
File "D:\My_Games\EdgewarePlusPlus-main\EdgewarePlusPlus-main\edgeware\src\pack\load.py", line 149
return Info(info["name"], Data.MOODS / f"{info["id"]}.json", info["creator"], info["version"], info["description"])
^^
SyntaxError: f-string: unmatched '['

This is a Python version issue, try updating to Python 3.12 and it should be resolved.


Creating an Animated JavaFX field Validation alert

Proposed title of the article
Creating an Animated JavaFX field Validation alert
Introduction paragraph (2-3 paragraphs):
Organizations always want to keep users info in their systems. This info helps them in following up on users feedback, follow-ups, statistics and product advertisements. Users, on the other hand, sometimes find the sign-up and login form boring. This process deters some from the data-entry process. To deal with this issue, developers have added interactive features.
Modern login and sign up forms have continuously evolved from the ancient static types to more interactive types. In addition, they have included validations, style effects, animations, and some other features that make the interaction with them so good and exciting. These additions capture the user's attention till the data entry of personal information is over.
In this article, you shall be able to do some input validations, effects and animations based on the outcome on the form.
Key takeaways:
At the end of the article, you will have done the following:

Create a JavaFX login form
Apply styling to the application
Create an input validation method
Add effects based on the outcomes of the validation
Add animations on the controls

Pre-requisites
The basics needed to follow up with the tutorial quickly include:

Must have used Java language
Java language installed
A JavaFX IDE installed
A good internet connection

References:
N/A
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

Good afternoon and thank you for submitting your topic suggestion. @justusmbuvi
Your topic form has been entered into our queue and should be reviewed (for approval) as soon as a content moderator is finished reviewing the ones in the queue before it.

@justusmbuvi
Sounds like a helpful topic - lets please be sure it adds value beyond what is in any official docs and/or what is covered in other blog sites. (the articles should go beyond a basic explanation - and it is always best to reference any EngEd article and build upon it).
Please be attentive to grammar/readability and make sure that you put your article through a thorough editing review prior to submitting for final approval. (There are some great free tools that we reference in EngEd resources.)
ANY ARTICLE SUBMITTED WITH GLARING ERRORS WILL BE IMMEDIATELY CLOSED.
Please be sure to double check that it does not overlap with any existing EngEd articles, articles on other blog sites, or any incoming EngEd topic suggestions (if you haven't already) to avoid any potential article closure, please reference any relevant EngEd articles in yours. - Approved

@justusmbuvi
Sounds like a helpful topic - lets please be sure it adds value beyond what is in any official docs and/or what is covered in other blog sites. (the articles should go beyond a basic explanation - and it is always best to reference any EngEd article and build upon it).
Please be attentive to grammar/readability and make sure that you put your article through a thorough editing review prior to submitting for final approval. (There are some great free tools that we reference in EngEd resources.)
ANY ARTICLE SUBMITTED WITH GLARING ERRORS WILL BE IMMEDIATELY CLOSED.
Please be sure to double check that it does not overlap with any existing EngEd articles, articles on other blog sites, or any incoming EngEd topic suggestions (if you haven't already) to avoid any potential article closure, please reference any relevant EngEd articles in yours. - Approved


Use topojson for driving-side

It's a much more compact format for polygons sharing edges

Covered by https://github.com/a-b-street/country-geocoder/issues/2


An element is duplicated in a collection

Bug Report
An new element of a collection is duplicated when the collection is updated

Q
A

BC Break
no

Version
1.1.2

Summary
When you update a field of the root document, a field of the embedded document and try to add an element to a collection present in the embedded document, this element is duplicated
Current behavior
A new element in the mentioned collection ends up duplicated.
How to reproduce
Using the following collection structure:
{
  updatedAt: ISODate("Whatever_1"),
  embeddedDoc: {
    field: 1,
    collection: [
      { elemField: 1, anotherField: 1 },
      { elemField: 2, anotherField: 2 },
      ...
    ]
  }
}

Insert a document with values in those fields and one element in the collection as follows:
{ updatedAt: ISODate("Whatever"), embeddedDoc: { field: 1,  collection: [{ elemField: 1 }]}}
Update the document as follows:

Update the updatedAt field
Update embeddedDoc.field with 2
Add a new element to the collection collection as follows: { elemField: 2 }

When you flush that document, the following queries are performed:

"$set" : {
  "updatedAt" : ISODate("Whatever_2"),
  "embeddedDoc.collection.1.elemField" : 2,
  "embeddedDoc.field" : 2
},
"$unset" : {
  "embeddedDoc.collection.1.anotherField" : true,
}

and
"$pushAll" : {
  "embeddedDoc.collection" : [
    {
	"elemField" : 2
    }
  ]
}

So the second element is added twice to the db
Expected behavior
With pushAll as the default storage strategy for this collection, the first query should have not include the new element of the collection, so it could be pushed in the second one without being duplicated.
The same happens with the rest of the collection storage strategies, with the difference that with  setArray the second query persists the whole array, so the changes performed by the first query are overwritten, and the collection ends up containing only two elements instead of three. Although with setArray the element is not duplicated, two updates were performed to do the same thing, which doesn't look right either.

@dossorio is this happening with 1.2.x version of ODM as well? Asking since 1.1 branch is not maintained. Also reading your extensive description it seems like you have a code to reproduce the issue. Any chance you could submit us a failing test case?

Many thanks @malarzm for your message and your suggestion.
I have just tested with 1.2.6 and its still happening.
The only difference I have noticed is that the second query uses $push and $each now:
"$push" : {
  "embeddedDoc.collection" : {
    "$each" : [
      {
	"elemField" : 2
      }
    ]
  }
}

I'll try to get a failing test case asap

@dossorio when you get to it please open a PR against 1.2.x branch, we'll first fix it there. If needed I'll take care of moving fixes to master branch after.

The only difference I have noticed is that the second query uses $push and $each now

This is because the $pushAll operator was deprecated, so we work around this by using $push and $each. The end result is the same 👍

I'll close this, as I figured out that the place where I was calling persist and flush affected the shape of the first query.
By having changed that, the element of the array is not specified in the first query anymore, only in the second, so its not added twice

Glad you got it fixed. Thanks for letting us know!


Xib is not loaded

Hi,
thank you for your awesome view.
I did managed to make your library working once but is is not working anymore.
I set the file owner to my custom view
I let the main UIView as an UIView
I named the xib to the same name as the class.
The only thing I changed is that I used custom live rendering view inside my xib (Those views don't use xib file so it renders well in the xib).
Do you have any idea ?
Here is the code :
import UIKit
class HeaderFicheClientView: NibDesignable {
@IBOutlet weak var nameCustomer: UILabel!

@IBInspectable internal var nameText:String = "Nathalie Beaudry"{
    willSet{
        nameCustomer.text = nameText
    }
}

@IBInspectable internal var borderColor:UIColor = UIColor.blackColor(){
    willSet{
        self.layer.borderColor = borderColor.CGColor
        self.layer.borderWidth = 1
    }
}

}

I am not sure exactly what it is that is not working for you?
One issue could be that you use willSet and not didSet, so when you access borderColor and nameText they are not yet set.

I'm closing this due to inactivity.


6-hourly updates of epidemiology data are missing for the last 27 hours

The file epidemiology.csv was last updated Mon, 21 Sep 2020 21:58:56 GMT
Updating the file every 6 hours is one of the key competitive advantages of this repository. To maintain this advantage I'd suggest to implement a watchdog service. It would use GCP Alerting Policy to send emails if an update was skipped escalating to SMS if several consecutive updates are missing.

Next update took place at  Wed, 23 Sep 2020 02:57:08 GMT

Where does it states that the file is updated every 6 hours? I can only read descriptions about basic schema but can't find information about data arrival anywhere.

Where does it states that the file is updated every 6 hours?

It is not documented but it was de facto update frequency for days. Documenting when updates take place (e.g. stating 15 min update window or something similar) would be a good idea and in line with what others do.

It looks like the epidemiology.csv file was finally updated yesterday, but it has not been updated again since then so I'll keep an eye on it. We're dealing with some stability issues which causes jobs to fail more often than normal, I'll keep this issue open until that is resolved.

To maintain this advantage I'd suggest to implement a watchdog service. It would use GCP Alerting Policy to send emails if an update was skipped escalating to SMS if several consecutive updates are missing.

Thanks for the suggestion, this is a great idea. Unfortunately, we don't have the resources necessary to have someone on-call for this project. I like the idea of a watchdog service that can restart the data pipeline automatically, though.

Thanks for the update!

The pipeline is now back to regular data updates. We're still working on making things more reliable and increase frequency of updates, but there's no timeline for that yet.


Cleanup of Catch[CN]-related restart utilities in ./GEOSsurface_GridComp/Utils/mk_restarts

This pull request addresses a major overhaul of the mk restarts utilities, with a focus on Catch[CN] restarts.
I started a branch specifically for this PR that already includes a few minor corrections and in-line comments.  Feel free to commit to this branch or make sure to stay in sync with it.
Here's a first draft of the task list (not necessarily in the order in which tasks are best addressed):

Clean up duplication of code across "mk Catch[CN] restarts" utilities:

mk_GEOSldasRestarts.F90 and mk_Catch[CN]Restarts.F90 -- Merge into one program? (Probably need model-specific modules.)
mk_catch_restart, mk_catch_restart.F90 -- Are these obsolete?  (A quick check suggests this is not used in GEOSgcm_GridComp, GMAO_Shared, GEOSgcm[_App], or GEOSldas, but need to verify.)
Scale_Catch.F90 and Scale_CatchCN.F90 -- Merge into one program?  (Probably need model-specific modules.)

Interface new "mk_CatchX_Restarts" utility with:

GMAO_Shared/GEOS_Util/post/regrid.p[l,y] (perl and/or python version, depending on status of GMAO_Shared)
GEOSldas setup
GCM setup (?) - may be addressed through "regrid.p[l,y]"

Remove obsolete code (need to verify that code is indeed obsolete):

replace_params.F90
strip_vedyn.F90
newvegdyn.F90
newcatch.F90 (??)
old_catch.ctl -- "Old" here likely refers to a very old format and tile space.  Note hardcoded number of catchments.
new_catch.ctl -- Note hardcoded number of catchments. Hardcoded list of variables is probably outdated or too inflexible (e.g., TSURF was removed from GEOSldas restarts).

Move potentially still useful plotting scripts into new sub-directory:

check_land_restarts.pro -- Would this still work? If not, delete.
catchplt -- Obsolete? If yes, delete.

Address duplication of subroutines across ./Utils/Raster/ and ./Utils/mk_restarts/ (and possibly elsewhere)

haversine()
to_radians()
ReadCNTilFile() [comp_CATCHCN_AlbScale_parameters.F90] and ReadTileFile_RealLatLon()  [getids.F90]

Update README file.

Clean up .gitignore ?

For reference, here's a list of related pull requests and issues:
Open:

https://github.com/GEOS-ESM/GEOSldas/issues/360
#344 (may have been addressed)
#116 (presumably addressed fully for Catch, not sure about CatchCN)
https://github.com/GEOS-ESM/GMAO_Shared/pull/238
https://github.com/GEOS-ESM/GMAO_Shared/pull/257

Merged:

#402
#368
#224

cc: @gmao-jkolassa @rdkoster @biljanaorescanin @weiyuan-jiang

In line 281 of mk_Restarts, the CatchCN restart file name is referenced as "catchcn_internal_rst", but didn't we make the CatchCN restart file names specific to the CatchCN version (ie, CatchCNCLM40 and CatchCNCLM45)?
https://github.com/GEOS-ESM/GEOSgcm_GridComp/blob/d59a8154dd5a772aaaa8997ef9fbe1a7230ad88b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/Utils/mk_restarts/mk_Restarts#L281
Presumably, the mk_Restarts file would fail if we try to regrid (re-tile) a newer CatchCN restart file.

In line 60 of mk_CatchRestarts.F90, getarg() is used to read command line argument number 6, but earlier in the code the number of command arguments was constrained to 4 or 5.
https://github.com/GEOS-ESM/GEOSgcm_GridComp/blob/d59a8154dd5a772aaaa8997ef9fbe1a7230ad88b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/Utils/mk_restarts/mk_CatchRestarts.F90#L60
I'm probably misunderstanding something here but thought I should flag this, just in case.

In line 281 of mk_Restarts, the CatchCN restart file name is referenced as "catchcn_internal_rst", but didn't we make the CatchCN restart file names specific to the CatchCN version (ie, CatchCNCLM40 and CatchCNCLM45)?
https://github.com/GEOS-ESM/GEOSgcm_GridComp/blob/d59a8154dd5a772aaaa8997ef9fbe1a7230ad88b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/Utils/mk_restarts/mk_Restarts#L281
Presumably, the mk_Restarts file would fail if we try to regrid (re-tile) a newer CatchCN restart file.

That line was used for very old cn. Now cnlen is always 4 in the regrid.pl

In line 60 of mk_CatchRestarts.F90, getarg() is used to read command line argument number 6, but earlier in the code the number of command arguments was constrained to 4 or 5.
https://github.com/GEOS-ESM/GEOSgcm_GridComp/blob/d59a8154dd5a772aaaa8997ef9fbe1a7230ad88b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/Utils/mk_restarts/mk_CatchRestarts.F90#L60
I'm probably misunderstanding something here but thought I should flag this, just in case.

I think it is just for old version of the output ( read or write)

I got zero-diff from M36 to M09 for catchment. That is a good start. Will try cnclm45 @gmao-rreichle


Have core providers verify they can be used

Currently the core providers (at this time ssh is the only one) simply assume the resources they need (ssh in this case) exist and are available within path. This is incorrect behavior and the provider should instead verify it can be used during its initialization. Likely means we need to change the init to be required and have it return a boolean for is_usable (as an example)

This issue is better covered in Issue #13 API Overhaul


Textarea value is not bound to the model

I'm trying to use textarea control like this:
<BsForm
  @model={{answer}}
  @onSubmit={{action "submit"}} as |form|
>
  <form.element
    @controlType="textarea"
    @property="comment"
  />

  ...

</BsForm>

But it doesn't update comment property on answer model when I type in textarea. It also doesn't work with @value={{answer.comment}}

I am not able to reproduce this. It's covered by tests, and it seems to be working just fine on ember-bootstrap.com:

@simonihmig so my apologies. Turns out the problem was how I was peeking record in setupController and omniting model hook. That bugged the form.


SSL: CERTIFICATE_VERIFY_FAILED using proxy server

(Describe your issue and goal here)
The Slack SDK version
3.15.2
Python runtime version
3.7.4
OS info
RHEL 7
Steps to reproduce:
I am using the slack_sdk behind a corporate proxy that has its own SSL certificate chain. If I attempt to make a request to the Slack API using the requests library, the request is successful.
If I try using the slack_sdk, I get a urllib error:
urllib.error. URLError: urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)>
I suspect there is a magic incantation I need to point it at our certificate chain, either an environment variable to set or some code to add to my Python script, but as of yet I am unsure what that is. I have tried all of the environment variables in this thread with no luck.

Thanks, I was able to create an SSL context using the cafile parameter and apply it to the client. That solved it.
-CW
On Thu, May 19, 2022, at 10:30 AM, Fil Maj wrote:

Hey @radiocolin https://github.com/radiocolin,
I assume you are using the web client construct from the slack_sdk? One of 'web api clients' listed at the top of this repo's reference docs page https://slack.dev/python-slack-sdk/api-docs/slack_sdk/? i.e. slack_sdk.web.client or slack_sdk.web.async_client? If so, how are you constructing the client? These clients have two relevant properties: ssl and proxy (see the constructor details here https://slack.dev/python-slack-sdk/api-docs/slack_sdk/web/client.html - though, granted, the docs here could use some additional details on how these two properties are used).
For full reference, the key area of the code where ssl and proxy are used is here https://github.com/slackapi/python-slack-sdk/blob/main/slack_sdk/web/base_client.py#L521-L539. Depending on what combination of these two properties are used, the logic is a bit different on how they are leveraged.
The ssl property is an instance of SSLContext https://docs.python.org/3/library/ssl.html#ssl-contexts, which has helper methods like load_cert_chain https://docs.python.org/3/library/ssl.html#ssl.SSLContext.load_cert_chain which is probably what you are looking for to leverage your own certificate chain.
Let me know if/how that works for you, happy to help further.
—
Reply to this email directly, view it on GitHub https://github.com/slackapi/python-slack-sdk/issues/1214#issuecomment-1131779064, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHSGIIXGSBA3HTEJG5KK5TVKZF7XANCNFSM5WMLUXCA.
You are receiving this because you were mentioned.Message ID: @.***>

Great news. I will keep this issue open as I want to add some additional documentation in the API docs around the relevant proxy and ssl constructor parameters.

OK more documentation around the proxy and ssl parameters has been merged. In the next release we will also update the published docs. Closing this!


Variable naming

@Hickles02
https://github.com/Hickles02/FYP478/blob/a8602db12ab3d42400b8d11ba9b025b0a76e91a4/MATLAB/simulate_ODEs.m#L5
It's important to write code that is readable. Why are you naming both your molar hold-up and your mol fraction as "MM"?
Rather let:
MM = x(1:p.N);
X = x(p.N+1 : end);

I tried doing it that way but the code was running. But I'll give it a go again.

Please fix it. It's very difficult to read + debug your code with the strange variable naming you have in place now.

@tmlouw Just updated the code with the new naming.


Test max functionality

Test the max properties to see if an image is returned which is outside of the allowed bounds:
https://iiif.io/api/image/3.0/#52-technical-properties
This would be an optional test and wouldn't necessarily use the test image.

This issue was created almost 3 years ago. It seems that Mirador 3.0 now uses the "max" syntax rather than full, even when communicating with a IIIF 2.0 compliant image server.  Bumping this test for "max" syntax up in priority and releasing an updated version of the validator here: https://iiif.io/api/image/validator would be most helpful as "max" is clearly part of the last 2.x specification.

For info I think this is a bug in Openseadragon bug report which has been fixed in OSD 3.0.0. I believe Mirador is currently using 2.4.2.


[Bug] Does not save in UTF-8 BOM

Does not save text and symbols in UTF-8 BOM encoding:

Create a new tab and it will work.


How to set up plantuml-model-hook to support company-dabbrev in doom？

What I want to achieve
company-dabbrev The keywords in all currently opened buffers are displayed as complements

What have you tried?

;;(use-package! plantuml-mode
;;  :hook (plantuml-mode . (lambda ()
;;                           (set (make-local-variable 'company-backends) '(company-dabbrev)
;;                                ))))
;;(add-hook 'plantuml-mode-hook
;;           (lambda ()
;;             (setq (make-local-variable 'company-backends) '((company-dabbrev-code) company-dabbrev))
;;             ))
(after! plantuml-mode
  (add-hook 'plantuml-mode-hook
           (lambda ()
             (setq (make-local-variable 'company-backends) '((company-dabbrev-code) company-dabbrev))
             )))

How to set up plantuml-model-hook to support company-dabbrev in doom？

You need to use (set (make-local-variable ...) ...), not (setq (make-local-variable ...) ...).

((company-dabbrev-code) company-dabbrev) is unnecessarily nested. I also suggest you use one or the other, rather than both.

A simpler way to change a mode's company backends is to use set-company-backend!:
(after! plantuml-mode
  (set-company-backend 'plantuml-mode 'company-dabbrev-code))

Hope that helps!

@hlissner
i  add this config  in  .doom.d/config.el
(after! plantuml-mode
  (set-company-backend 'plantuml-mode 'company-dabbrev-code))

it not ok when open a test.plantuml file:
File mode specification error: (void-function set-company-backend)

Your first snippet is still using setq though?
For future reference, you can also use setq-hook! to do this more succinctly:
(setq-hook! 'plantuml-mode-hook company-backends '(company-dabbrev-code))

But if set-company-backend! works for you, that is the best option.

I try update this config, don't work.
(setq-hook! 'plantuml-mode-hook company-backends '(company-dabbrev-code))


As a new user I can read a short user guide

...so that I can familiar with the app quickly

Closes #184.


[BUG] LOD continues to use editor camera when it should use active scene camera during runtime.

Godot version
Specify a numerical Godot version you are using. Include Git commit hash if possible.
v4.2.1.stable.mono.official [b09f793f5]
Plugin version
Specify a numerical Spatial Gardener version you are using.
Windows 10
Issue description
Describe your issue. What is expected to happen? What actually happened?
When trying out the plugin in a scene of my own, I noticed it would only use the editor viewpoint for LOD updates, during runtime that area would remain loaded, and nothing new would load in with the runtime active camera. I then tried using the provided showcase to see if it had the same issue, and it did, the area where the editor camera was left would remain active, and while following the train it wouldn't cause further updates.
Steps to Reproduce
Describe steps for others to reproduce this issue

Open demo project and scene provided on GitHub
Move editor camera away from area
Play scene and ride the train, grass won't appear as it thinks it's still outside the LOD range

Minimal reproduction project
If applicable, please paste a link to minimal reproduction project that shows this issue in action.
Demo project on this GitHub

Playing around a bit more, it actually seems to entirely delete the multimeshes in the octrees if you move out of render range, swap to another scene in editor, and then swap back. The plant count goes from 7000 for example, to 0, after doing changing the scene while the plants weren't being currently rendered.

Consolidating into #37


containerize e2e tasks

Which issue this PR addresses:

Fixes
What this PR does / why we need it:

Test plan for issue:

Is there any documentation that needs to be updated for this PR?

Closing the PR, as this was only a reference for PR: https://github.com/Azure/ARO-RP/pull/2567


new Function('return this')() is eval == bad code

I'm considering using this library in a Firefox Addon, but because of the last line my addon will be rejected by Mozilla Addon reviewers, as it is using eval.
Is there a special reason for that ?
Why not typeof global != 'undefined' ? global : this ?

Hm... It's really strange decision by Mozilla reviewers. new Function('return this')() is most compact and robust construction to get real "global".

Why not

There is no guarantee that this points to global.
Anyway going to solve issue.

I'm not 100% sure they will reject exactly this context, they might accept it as an exception.
But according to documentation and automated validation tools, it is likely to be rejected, or at least would require a manual review...
There is no guarantee this points to global in all environments, but if you target only browsers and node.js typeof global != 'undefined' ? global : this is enough.
I susspect there might be issues with build tools like WebPack, but not sure.


euler subgraph improvements

Besides the possible method problem with protocolSideRevenue (#1115), a few improvements to the euler subgraph implementation:

The implementation relies on calling EulerGeneralView.doQuery() on ~100 markets on every major events. It is so inefficient  that the current implenetation has to skip 119 blocks between calling it again. Call doQuery on the market emitted the event is an easy improvement; It is also possible to access individual value from relevant events/contract(s) for even better efficiency.
The subgraph uses the address of underlying token as the id of the corresponding market and it is different than the specification in the schema. For example, the id for the wstETH market is 0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0, and it is the address for the wstETH contract. It should be the euler eTokenAddr (asset) 0xbd1bd5C956684f7EB79DA40f582cbE1373A1D593 or dTokenAddr (debt) 0x436548baAb5Ec4D79F669D1b9506D67e98927aF7

Possible simplifying protocolSideRevenue calculation (from #1115):

Realized I am not comparing apple-to-apple here: at any time, the collateral asset amount > borrow amount. If taking into account the difference, they should be equal: borrow amount * borrow APY * (1 - reserve fee ratio) = collateral asset * lending APY.

This means the current method for calculating protocol side revenue is correct, but more complex than needed
Market Deposits Balance * ((Market Supply APY / (1 - Market Reserve Fee)) - Market Supply APY)

=

Borrow Balance * Borrow APY * Reserve Fee

@tnkrxyz I wonder if there is a clean way to get revenue from euler. For example in compound we have AccrueInterest(). When looking at this a while back I couldn't find anything, but maybe it is more convoluted.

This might be out event to watch https://github.com/euler-xyz/euler-contracts/blob/master/contracts/Events.sol#L32
And then every time it is emitted we take the difference from the last to the current value of interestAccumulator then multiply by the spot price of the asset. lmk what you think

Haven't looked into the euler contracts to know much about this, but what you propose makes sense to me.

Dug into the contract a bit more. I agree AssetStatus is a better way to get interest/revenues. It seems to me the interestAccumulator is an index, instead of actual interest (L215.
My reading of the contract (https://github.com/euler-xyz/euler-contracts/blob/master/contracts/BaseLogic.sol#L213-L228) is that total Revenue = newTotalBorrows - totalBorrows and the reserve / protocol side revenue = newReserveBalance - reserveBalance , and the difference is supply side revenue = total revenue - protocol side revenue. Because the event only gives the current totalBorrows and reserveBalance, we need an entity to keep track of their previous values (per market).
@dmelotik , can you help me see if there are holes in my logic?

Hey @tnkrxyz for some clarity on how I am thinking about this (some of this may already be implemented):
AssetStatus is emitted at every transaction. And if you look this occurs after the deposit, withdraw, borrow, etc. So prices of the relevant token should be updated before or during the creation of a transaction. This way we get a proper USD price in the transaction.
Then in the AssetStatus handler we can update the market input tokens, Tvl, protocol tvl, borrows, rates, revenues, outputtokensupply, revenues, outputtoken price, etc. (everything but price). This can all be done for just the market that is being emitted on.
Now for the actual revenue calculation: To me it looks like it is either totalRevenue = totalBorrows * (currInterestAccum / prevInterestAccum) OR totalRevenue = totalBorrows * (currInterestAccum - prevInterestAccum). It would be ideal to do it this way to avoid any new contract calls.
Then protocol side revenue = total revenue * reserveFee
suppy side = total * (1 - reserveFee)

Note; make sure to update the readme with notes and make good comments about how you are deriving the revenue. This is the most difficult metric to calculate in euler and we want to be as transparent as possible.

Euler's subgraph: https://thegraph.com/hosted-service/subgraph/euler-xyz/euler-mainnet

Thanks for the response! One minor issue with the method you propose is that totalBorrows already included interestRate accrued for the period (https://github.com/euler-xyz/euler-contracts/blob/1ad10e95f2991f13e32e601d791b2c3fa9c1bd45/contracts/BaseLogic.sol#L233), so multiplying it with (currInterestAccum / prevInterestAccum) double count the interest (total revenue). Of course it may be possible to reverse the process & calculate the totalBorrows before interest and apply interestAccumulator on top of it.
A simpler approach I found is to track the reserveBalance, and protocol side revenue = reserveBalance - previous reserveBalance, and because protocol side revenue = total revenue * reserve fee/Reserve Fee Scale,  total Revenue = protocol side revenue * Reseve Fee Scale / reserve fee. And finally, supply side revenue = total Revenue - protocol side revenue.
Do you know, is the code for Euler's subgraph available? I checked their github and could not find it.

Do you know, is the code for Euler's subgraph available?
Unfortunately I think it is private now

I think the issue with using reserve balance is that it can be subtracted from https://github.com/euler-xyz/euler-contracts/blob/master/contracts/modules/Governance.sol#L95. How do you account for this?
I see what you are saying about over estimating though. I think it would be spot on to find totalRev = newTotalBorrows - newTotalBorrows * oldInterestAccum / newInterestAccum then using reserveFee for protocol / supply side. I am just deconstructing this line: https://github.com/euler-xyz/euler-contracts/blob/1ad10e95f2991f13e32e601d791b2c3fa9c1bd45/contracts/BaseLogic.sol#L215
What do you think?

@tnkrxyz I think the issue with using reserve balance is that it can be subtracted from https://github.com/euler-xyz/euler-contracts/blob/master/contracts/modules/Governance.sol#L95. How do you account for this?

Yes, I am. I can add a handler for GovConvertReserves that emits when reserve is removed.

I see what you are saying about over estimating though. I think it would be spot on to find totalRev = newTotalBorrows - newTotalBorrows * oldInterestAccum / newInterestAccum then using reserveFee for protocol / supply side. I am just deconstructing this line: https://github.com/euler-xyz/euler-contracts/blob/1ad10e95f2991f13e32e601d791b2c3fa9c1bd45/contracts/BaseLogic.sol#L215

This can work, but likely more complex than tracking reserveBalance. For example, in DToken.borrow(), the interest rate is calculate before adding the new borrow amount, and then logAssetStatus is emitted with the new borrow amount. In this case, event.params.totalBorrows will include the new borrow amount and is different than the value used in calculating interest. To get the correct borrow amount for interest accounting, we will need to track the new borrow amount and deduct from the event.params.totalBorrows.

BTW, @dmelotik, I checked with Vincent, and he approves that I will work on refactoring the euler finance subgraph in the next few days.

@tnkrxyz I see what you are saying there, the other place I could imagine special logic would be liquidations. Is this true?

@tnkrxyz I see what you are saying there, the other place I could imagine special logic would be liquidations. Is this true?

That's correct - I will have to think about how best to handle liquidation.
This will fix the issue that the current implementation does not included in the protocol side revenue the % of liquidation is credited to the reserve (2%).  But I need a special handle that the protocol side revenue from the liquidation  is not shared with the supplier.

@dmelotik I figured out a way to rollback revenue from liquidation fees in helper.ts/rollbackRevenue(). Implemented in #1242

closed with #1242 merged


Corrects a typo: sever -> server

Corrects a common typo across the repository: "sever" instead of "server"
@aczechowski,  please review

Thanks @exchange12rocks for the contribution, good catch. I'm not sure if the redirect metadata tag will work. Instead can you please add an entry to the .openpublishing.redirection.json file at the root of the repository?
Start with the comma, end with the closing curly bracket (other characters included for context):
        },
        {
            "source_path": "sccm/develop/reference/core/clients/deploy/sms_clientbaseline-sever-wmi-class.md",
            "redirect_url": "/sccm/develop/reference/core/clients/deploy/sms_clientbaseline-server-wmi-class",
            "redirect_document_id": false
        }
   ]

Let me know if you have questions. (Given the extent of your other edits, I'm assuming you can handle this as well. 😄 )

@exchange12rocks : Thanks for your contribution! The author, @aczechowski, has been notified to review your proposed change.

@exchange12rocks : Thanks for your contribution! The author, @aczechowski, has been notified to review your proposed change.

Well, should be something like this, @aczechowski

Thanks @exchange12rocks I think this looks good. Unfortunately we aren't able to preview the changes first in this repository. I'll #sign-off and wait for separate review to get another set of eyes on this change given the extent of it.
Once merged, this should be live with the next daily publishing process. Right now that should be tomorrow (Tuesday, 9 October) around 11:00 Pacific time. No further action needed from you.

@exchange12rocks : Thanks for your contribution! The author, @aczechowski, has been notified to review your proposed change.

Thanks @exchange12rocks for making the change. I think that looks ok now, but will defer to reviewer. #sign-off from me.

I realized we can't test the redirect in advance of merging because the content isn't staged, but it looks correct. Please test the redirect when the content is live to verify that it works. Thanks!

The redirect works flawlessly! Cool!

Awesome, thanks again for this contribution. 😃


Cannot Send payload - Connection not established!

I have a connection problem.
I tried to use the code from the example but it says to me that.
Cannot Send payload - Connection not established!
But does not indicate an error.
I tried to use an atorted connection. The result was the same.
I tried to run from the development of the pyharm.
What could be the problem?

Yep I am having this issue too.
Just installed the module with pip and ran this as a test script and got the error which is coming from the Connector class
I added in my api keys to see if it was an authentication problem but this made no change to the response

I'm not sure if this is relevant but I'm using Python 3.6 on this, pehaps thats part of the issue?

Try to run the example: (downgraded websocket-client from 0.57 to 0.48) but no effect.
I'm not authenticated because it's a public api ...
Cannot Send payload - Connection not established!
Exception in thread Thread-4:
Traceback (most recent call last):
File "../lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "", line 117, in run
File "", line 113, in _connect
File ".../lib/python3.8/site-packages/websocket/_app.py", line 207, in run_forever
raise WebSocketException("socket is already opened")
websocket._exceptions.WebSocketException: socket is already opened

Set a time.sleep(10) of at least 10 seconds after you open the websocket connection


build: pass the framework path to the importer

This is to silence the warning when building the lldb test suite.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

CC: @dcci @gottesmm

@swift-ci please test and merge

That sounds like a Clang bug, since Clang is the linker. Right?

@jrose-apple - fair enough.  I don't have a problem with fixing that in clang, but, I think that we should at least do this as a temporary thing.

That makes sense. If you end up making more changes, then, mind inserting a comment to that effect?
Thanks for the explanation!

@swift-ci please clean test macOS platform


add Docker support

Thanks for the suggestion.
I have never used Docker myself, so I would like someone else to test if they can get this working on their machines as well.
@johndpope would you mind trying this? You talked about Docker in pull request https://github.com/Hvass-Labs/TensorFlow-Tutorials/pull/27
@sorend have you used Docker? Could you try if this works for you as well?

Thanks.
To test, please follow these steps: (See  Makefile for details.)

Install docker on your Mac/Windows.
make docker to make a local docker image on your computer.
make notebooks to launch Juypter notebook.
make tensorboard to launch tensorboard.

Thanks again for the pull request. It seems I will have to test it myself. I need to understand and test it better before I merge into master. As I have a lot of work at the moment and I haven't used Docker before, it'll be a while before I can get around to it. But I'll leave the issue open and you can update the files if you need to. Other people can download them as well if they need Docker support for these tutorials.

@Hvass-Labs Since you added requirements.txt in the last update, your tutorials now work with binder, you can run binder docker vm at this URL: http://mybinder.org/repo/hvass-labs/tensorflow-tutorials. If you have new code, just rebuild at this URL: http://mybinder.org/status/hvass-labs/tensorflow-tutorials
Here are a few screenshots of running binder vm on iPhone:

Since the Docker solution is found, I will close this PR. For people who needs a Dockerfile, they might want to use binder version:
FROM andrewosh/binder-base:latest

RUN mkdir /home/main/notebooks
RUN chown main:main /home/main/notebooks
WORKDIR /home/main/notebooks
USER root
COPY . /home/main/notebooks/
RUN chown -R main:main $HOME/notebooks
USER main

RUN find $HOME/notebooks -name '*.ipynb' -exec jupyter trust {} \;

ADD requirements.txt requirements.txt
ADD handle-requirements.py handle-requirements.py
RUN python handle-requirements.py

USER main
WORKDIR $HOME/notebooks

Thanks for the good work.


Splat .ply export not supported by multiple viewers

Describe the bug
Documentation here states
Nerfstudio’s splat export currently supports multiple third-party splat viewers:
Polycam Viewer
Playcanvas SuperSplat
WebGL Viewer by antimatter15
Spline
Three.js Viewer by mkkellogg
but an exported splat .ply generated from a sample Lion statue video (here) on 2/9 fails to be viewed properly in all 3rd party viewers but Polycam.
To Reproduce
Steps to reproduce the behavior:

Download sample Lion statue video (here)
run ns-process, ns-train splatfacto, and ns-export
Go to each viewer listed above
Upload the .ply file, compare results to polycam

Expected behavior
All viewers at least approximately look similar
Screenshots
e.g.,
Polycam

Supersplat

Additional context
Even if Nerfstudio can't support the listed viewer, it would be helpful to describe any transformations and changes to exported splat .ply files that are typically required to be viewable in, say, Supersplat and other viewers. This would support frontend UI development against NerfStudio splat output.

Your splat can by rendered in supersplat ( you need to set splat size to 0 on the left panel). You just need to rotate and room a bit to see the lion ...
The applied transform was lost in PLY exporter, if you use nerfstudio viewer, it will restore properly and see the lion on the startup frame.

But I agree that one should be able to see the "applied transform" and "scale" as metadata from exporter such that, one can use them to generate proper renders in external viewers.
@brentyi Do you think this is worthwhile to add a metadata json to document those information aside PLY exporter.