Stats page

How many pages scraped?
How many DataCatalogs? etc

Ideally this page would replace the live deploys page.

Current draft:
https://lxbisel.macs.hw.ac.uk:8080/EE-WebApp/stats
Not pretty. Needs sorting. Perhaps a pie chart?
Possibly a list of top level URLS?

Probably want some high level stats, e.g. number of resources (databases), number of pages, number of pages by type. I'm not sure that the number of triples is that meaningful.
For the by type we may want to focus the list to Bioschemas types of interest, i.e. omit blog.
Probably no need to show the full URLs of types, just their hyperlinked names would suffice. Can we order the types by their name or even let the user dynamically sort by name or size.
We possibly want some ways of doing into which resources have been marked up with which types and then links to structured testing tool for an example page, similar to the live deploys page. We want to make it easy for people to get to the markup of a resource so they can copy and hack it to their needs.
We could also have some way of getting a list of all URLs that been indexed.
http://www.macs.hw.ac.uk/~ajg33

From: Ken McLeod<EMAIL_ADDRESS>Sent: Thursday, June 6, 2019 3:00:46 PM
To: HW-SWeL/Scraper
Cc: Gray, Alasdair J G; Comment
Subject: Re: [HW-SWeL/Scraper] Stats page (#13)
Current draft:
https://lxbisel.macs.hw.ac.uk:8080/EE-WebApp/stats
Not pretty. Needs sorting. Perhaps a pie chart?
Possibly a list of top level URLS?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/HW-SWeL/Scraper/issues/13?email_source=notifications&email_token=AAIWUEN5F7NFDW2Z3DHHKC3PZEKA5A5CNFSM4HMYZYD2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXC5XYA#issuecomment-499506144, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAIWUENDD4L6MEFQERVO3A3PZEKA5ANCNFSM4HMYZYDQ.

Heriot-Watt University is The Times & The Sunday Times International University of the Year 2018
Founded in 1821, Heriot-Watt is a leader in ideas and solutions. With campuses and students across the entire globe we span the world, delivering innovation and educational excellence in business, engineering, design and the physical, social and life sciences. This email is generated from the Heriot-Watt University Group, which includes:

Heriot-Watt University, a Scottish charity registered under number SC000278
Edinburgh Business School a Charity Registered in Scotland, SC026900. Edinburgh Business School is a company limited by guarantee, registered in Scotland with registered number SC173556 and registered office at Heriot-Watt University Finance Office, Riccarton, Currie, Midlothian, EH14 4AS
Heriot- Watt Services Limited (Oriam), Scotland's national performance centre for sport. Heriot-Watt Services Limited is a private limited company registered is Scotland with registered number SC271030 and registered office at Research & Enterprise Services Heriot-Watt University, Riccarton, Edinburgh, EH14 4AS.

The contents (including any attachments) are confidential. If you are not the intended recipient of this e-mail, any disclosure, copying, distribution or use of its contents is strictly prohibited, and you should please notify the sender immediately and then delete it (including any attachments) from your system.

Stats page is returning an error

2019/09/03 09:16:08 [error] 3384#0: *2073 upstream timed out (110: Connection timed out) while reading response header from upstream, client: <IP_ADDRESS>, server: lxbisel.macs.hw.ac.uk, request: "GET /EE-WebApp/stats HTTP/1.1", upstream: "http://<IP_ADDRESS>:8081/EE-WebApp/stats", host: "lxbisel.macs.hw.ac.uk:8080", referrer: "https://github.com/HW-SWeL/Scraper/issues/13"

Stats page is returning an error

Need to pre calculate answers in a summary graph.

For the by type we may want to focus the list to Bioschemas types of interest, i.e. omit blog.

Done.

Probably no need to show the full URLs of types, just their hyperlinked names would suffice

Done

Can we order the types by their name or even let the user dynamically sort by name or size.

That should be easy. should because I'm fighting virtuoso which doesn't seem to work on mac due to a kernel error: 'Server is out of memory and should be killed to prevent data corruption'.
This is questionable as top suggests there is 2GB free and I have min settings on which should use far less than 2GB.

We possibly want some ways of doing into which resources have been marked up with which types and then links to structured testing tool for an example page, similar to the live deploys page. We want to make it easy for people to get to the markup of a resource so they can copy and hack it to their needs.

Search by type? Or do you mean something more complex?
Making it easy to copy markup may have issues. Firstly you propagate junk. Secondly, copyright.

We could also have some way of getting a list of all URLs that been indexed.

If you mean sites OK. If you actually mean URLs I imagine that is way too slow...

We possibly want some ways of doing into which resources have been marked up with which types and then links to structured testing tool for an example page, similar to the live deploys page. We want to make it easy for people to get to the markup of a resource so they can copy and hack it to their needs.

Moving this into a new issue, as rest done


[Bug] Framework not found

What happened?
When defining SPM dependencies
in .podspec
s.spm_dependency 'Package/Product1'
s.spm_dependency 'Package/Product2'

in target's Podfile
spm_pkg "Package",
	 :url => "https://github.com/",
	 :branch => "main",
	 :products => ["Product1", "Product2"],
	 :linkage => :dynamic

I've setup the project as above, and when it compiles, the build fails complaining that ld: framework not found.
When looking at the DerivedData folder, the target compiles the dependent framework with .o .swiftmodule, but the .framework files are missing.
Is there anything that I'm missing to setup the podspec?
CocoaPods environment
No response
Anything else?
No response

Hi @jhoongo
May I know what package you were using (if you're comfortable sharing it)?
I notice that in your case, you're using :linkage => :dynamic. Please note that this :linkage option must match the library type declared in Package.swift.
let package = Package(
  ...
  products: [
    .library(name: "Foo", targets: ["Foo"]),                // <-- static
    .library(name: "Bar", type: .dynamic, targets: ["Bar"]) // <-- dynamic
  ]
)

By default (without this option), the plugin assumes static library --> It expects a .o binary in the build products.
With :linkage => :dynamic, it's treated as dynamic --> It expects a framework under PackageFrameworks dir.

In this case, I doubt that the library you're using might be static, not dynamic. If so, please remove the option :linkage => :dynamic in Podfile.

@trinhngocthuyen Thanks for your prompt answer. I'm sorry that I should've clarified. I tried both static/dynamic option and you were right that I was using dynamic whereas it defines them as static in their package definition. However, it still fails to build. I'm using opentelemetry-swift SDK.
With static, it fails with
Undefined symbols for architecture arm64:
  "_$s13SwiftProtobuf7MessagePAAE14serializedData7partial10Foundation0E0VSb_tKF", referenced from:
      _$s33OpenTelemetryProtocolExporterHttp04OtlpeD4BaseC13createRequest4body8endpoint10Foundation10URLRequestV13SwiftProtobuf7Message_p_AG3URLVtF in OpenTelemetryProtocolExporterHTTP.o
      _$s33OpenTelemetryProtocolExporterHttp26StableOtlpHTTPExporterBaseC13createRequest4body8endpoint10Foundation10URLRequestV13SwiftProtobuf7Message_p_AG3URLVtF in OpenTelemetryProtocolExporterHTTP.o
  "_$s13SwiftProtobuf7MessagePAAE4withyxyxzKXEKFZ", referenced from:
      _$s33OpenTelemetryProtocolExporterHttp04Otlpe3LogD0C6export10logRecords15explicitTimeout0aB3Sdk12ExportResultOSayAG08ReadableG6RecordVG_SdSgtF in OpenTelemetryProtocolExporterHTTP.o
      _$s33OpenTelemetryProtocolExporterHttp04Otlpe3LogD0C5flush15explicitTimeout0aB3Sdk12ExportResultOSdSg_tF in OpenTelemetryProtocolExporterHTTP.o
      _$s33OpenTelemetryProtocolExporterHttp04Otlpe6MetricD0C6export7metrics12shouldCancel0aB3Sdk0gD10ResultCodeOSayAG0G0VG_SbycSgtF in OpenTelemetryProtocolExporterHTTP.o
      _$s33OpenTelemetryProtocolExporterHttp04Otlpe6MetricD0C5flush0aB3Sdk0gD10ResultCodeOyF in OpenTelemetryProtocolExporterHTTP.o
      _$s33OpenTelemetryProtocolExporterHttp020StableOtlpHTTPMetricD0C6export7metrics0aB3Sdk12ExportResultOSayAF0F10MetricDataVG_tF in OpenTelemetryProtocolExporterHTTP.o
      _$s33OpenTelemetryProtocolExporterHttp020StableOtlpHTTPMetricD0C5flush0aB3Sdk12ExportResultOyF in OpenTelemetryProtocolExporterHTTP.o

[...]

clang: error: linker command failed with exit code 1 (use -v to see invocation)

Any thought or suggestion would be really appreciated. Thank you!

Also, I notice that the SPM package update isn't reflecting easily 🤔 . For example, if I switch to a different branch/version or different repo, the resolved package in the project isn't resolving to the latest target. Is this related to cocoapods-spm?

So, it turns out that if I fork the repo and switch the library type to dynamic, it works fine 🤔 . But with static linking, it still throws an error mentioned above.

Yes, dynamic works fine.
The root cause of this problem is that dependencies of a package were not linked.
In this case, for example, OpenTelemetrySdk depends on OpenTelemetryApi. OpenTelemetryApi needs to be linked as well. So, in Pods-App.debug.xcconfig, we should have OTHER_LDFLAGS as follows:
- OTHER_LDFLAGS = $(inherited) -ObjC -l"OpenTelemetrySdk.o"
+ OTHER_LDFLAGS = $(inherited) -ObjC -l"OpenTelemetrySdk.o" -l"OpenTelemetryApi.o"

This is a plugin's bug indeed.

There are a few options to tackle this bug:
1/ Link products with the "Link Binary With Libraries" in the build phases

Pros: Xcode handles nested dependencies (ie. we don't need to care about manually linking its dependencies).
Cons: When adding a package's product to multiple targets, an error (about duplicate symbols) occurs, especially when the -ObjC is present in the linker flags.

2/ Detect nested dependencies and add them to the linker flags (as above)

Pros: This aligns with how CocoaPods links frameworks/libraries
Cons: Complicated and error-prone :(

Sounds good, and thanks for the clarification @trinhngocthuyen . I think I'm okay on my end as it is for now; if the plugin can handle the static framework and its dependency, that would be nice. Feel free to close the issue.

I'm trying to use a library that only supports SPM and I received the same error as above "Framework not found". I followed the steps described in https://github.com/trinhngocthuyen/cocoapods-spm/issues/42#issuecomment-2038921046 and now I'm getting the error: "205 duplicate symbol"
library that I'm trying to install in my pod: https://github.com/Telefonica/mistica-ios/blob/main/Package.swift
my podfile:

source "https://github.com/material-components/material-components-ios.git"
source 'https://github.com/CocoaPods/Specs.git'

# Plugin que converte SPM em Cocoapds
plugin "cocoapods-spm"

# Resolve react_native_pods.rb with node to allow for hoisting
require Pod::Executable.execute_command('node', ['-p',
  'require.resolve(
    "react-native/scripts/react_native_pods.rb",
    {paths: [process.argv[1]]},
  )', __dir__]).strip

platform :ios, min_ios_version_supported
prepare_react_native_project!

# Plugin que converte SPM em Cocoapds
config_cocoapods_spm(
  dont_prebuild_macros: true,
  default_macro_config: "debug"
)

# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.
# because `react-native-flipper` depends on (FlipperKit,...) that will be excluded
#
# To fix this you can also exclude `react-native-flipper` using a `react-native.config.js`
# ```js
# module.exports = {
#   dependencies: {
#     ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),
# ```
flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled

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 'MisticaReactNativeExample' do
  config = use_native_modules!

  # use_frameworks!

  # $RNFirebaseAsStaticFramework = true
  # $RNGoogleMobileAdsAsStaticFramework = true
  # $RNAdMobAsStaticFramework = true
  # use_frameworks! :linkage => :static

  # use_modular_headers!

  spm_pkg "Mistica", :url => "https://github.com/Telefonica/mistica-ios.git",
          :tag => "29.7.3",
          :products => ["Mistica", "MisticaCommon", "MisticaSwiftUI"]
  spm_pkg "SDWebImage", :url => "https://github.com/SDWebImage/SDWebImage.git", :tag => "5.19.1"
  spm_pkg "SDWebImageSVGCoder", :url => "https://github.com/SDWebImage/SDWebImageSVGCoder.git", :tag => "1.7.0"
  spm_pkg "Lottie", :url => "https://github.com/airbnb/lottie-ios.git", :tag => "4.4.1"
  # spm_pkg "SnapshotTesting", :url => "https://github.com/pointfreeco/swift-snapshot-testing.git", :tag => "1.8.2"

  pod 'MaterialComponents/Buttons', '~> 124.2.0', :modular_headers => true
  pod 'MaterialComponents/TextControls+FilledTextAreas', '~> 124.2.0', :modular_headers => true
  pod 'MaterialComponents/TextControls+FilledTextFields', '~> 124.2.0', :modular_headers => true
  pod 'MaterialComponents/TextControls+OutlinedTextAreas', '~> 124.2.0', :modular_headers => true
  pod 'MaterialComponents/TextControls+OutlinedTextFields', '~> 124.2.0', :modular_headers => true

  use_react_native!(
    :path => config[:reactNativePath],
    # Enables Flipper.
    #
    # Note that if you have use_frameworks! enabled, Flipper will not work and
    # you should disable the next line.
    # :flipper_configuration => flipper_config,
    # An absolute path to your application root.
    :app_path => "#{Pod::Config.instance.installation_root}/.."
  )

  target 'MisticaReactNativeExampleTests' do
    inherit! :complete
    # 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
    )

    # installer.pods_project.targets.each do |target|
    #   target.build_configurations.each do |config|
    #     # Force CocoaPods targets to always build for x86_64
    #     config.build_settings['ARCHS[sdk=iphonesimulator*]'] = 'x86_64'
    #   end
    # end

  end
end

my podspec
require "json"

package = JSON.parse(File.read(File.join(__dir__, "package.json")))
folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'

Pod::Spec.new do |s|
  s.name         = "mistica-react-native"
  s.version      = package["version"]
  s.summary      = package["description"]
  s.homepage     = package["homepage"]
  s.license      = package["license"]
  s.authors      = package["author"]

  s.platforms    = { :ios => min_ios_version_supported }
  s.source       = { :git => "https://github.com/pablords/mistica-react-native.git", :tag => "#{s.version}" }

  s.source_files = "ios/**/*.{h,m,mm,swift}"

  s.dependency 'MaterialComponents/Buttons'
  s.dependency 'MaterialComponents/TextControls+FilledTextAreas'
  s.dependency 'MaterialComponents/TextControls+FilledTextFields'
  s.dependency 'MaterialComponents/TextControls+OutlinedTextAreas'
  s.dependency 'MaterialComponents/TextControls+OutlinedTextFields'

  s.spm_dependency "Mistica/Mistica"
  s.spm_dependency "SDWebImage/SDWebImage"
  s.spm_dependency "SDWebImageSVGCoder/SDWebImageSVGCoder"
  s.spm_dependency "Lottie/Lottie"
  # s.spm_dependency "SnapshotTesting/SnapshotTesting"

  # Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
  # See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
  if respond_to?(:install_modules_dependencies, true)
    install_modules_dependencies(s)
  else

  s.dependency "React-Core"

  # Don't install the dependencies when we run `pod install` in the old architecture.
  if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
    s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1"
    s.pod_target_xcconfig    = {
        "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
        "OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1",
        "CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
    }
    s.dependency "React-RCTFabric"
    s.dependency "React-Codegen"
    s.dependency "RCT-Folly"
    s.dependency "RCTRequired"
    s.dependency "RCTTypeSafety"
    s.dependency "ReactCommon/turbomodule/core"
   end
  end

end

@pablords Thanks for reporting.
I'm working on a fix to detect recursive dependencies in the liking process (approach 2 in https://github.com/trinhngocthuyen/cocoapods-spm/issues/42#issuecomment-2038921046). That would solve the problem for cases like OpenTelemetrySdk.
In your case, you're not using use frameworks!. I'm not sure if the fix I'm working on fits your case.
I'm wondering if we could have a simplified demo project to reproduce the issue for follow-up fixes.
Thank you!

Hi @jhoongo
The fix for transitive deps not being linked has been available.
Could you please try again with the latest from main?
I have updated the example project with this package (ie. opentelemetry-sdk) as well: examples/Podfile#L39-L42.
Thank you!

Closing this issue as it's fixed on the latest. Feel free to reopen if it persists


Discussion: Replace AppCRD with our own

AppCRD looks abandoned, last commit in 2020.

Lot of fields that are not useful to us
We can't extend it with our fields, like stage history, git repo creds
No versioned client for use to use
Uses old v1beta1 CRD format, not v1

I assume OAM is significant overkill for our needs?

OAM ? Unable to parse this TLA ...

Open Application Model: https://oam.dev/

I suspect that you are correct in assuming that this is overkill for us.

Currently we don't use the controller and only use the CRD as an abstraction to "hang" resources on it. E.g. when we want to define env vars on an application that hasn't even been pushed yet. It doesn't really matter what the CRD looks like for this use. Let's stick to AppCRD (because we already have that) and if we need more from it in the future we can discuss replacing it. Closing.


Drive Get Test

A test for drive.get() written for learning the ropes of the repository.

Tests fail, because it's missing the hyperdrive dependency. To fix:
npm i hyperdrive
I pushed a fix to main so the CI uses the public runner. Can you sync your fork to main of this repository? Then the CI will run on this PR and it will be clearer

To make sure the new code path is tested, add
    'hypercorescale_read_hyperdrive{nr_blocks="10",block_byte_size="10"}',
    'hypercorescale_read_hyperdrive{nr_blocks="10",block_byte_size="100"}'

to the expectedEntries in test.js, and increase the tMetrics.plan to 10
This ensures that the metrics corresponding to the new test are indeed exposed

i have run npm test on the latest commit and it succeeds, and also npm run.js works as intended. The CI shouldn't complain anymore

Looks good now, thanks!


Calculate accurate tax

I am trying to calculate tax based on percentage which can be 5%, 12%, 18%.
Current behavior
$tax = 5;
$amount = 89453;
$totalAmount= $amount->multiply( $tax /100)->getAmount(); // $totalAmount= 4472

What I am expecting
$tax = 5;
$amount = 89453;
$totalAmount= $amount->multiply( $tax /100)->getAmount(); // $totalAmount= 4472.65

In short, I require exact precision in my decimal how can this be achieved .

@4nik3t did you find a solution to this? I'm guessing that it's a case of having to change the rounding rule used, but not can't find any explanation as to what they all mean.

No I didn't find a solution for this . I went with storing in cents

I'm not sure if you can edit your example code above, but they are currently calling multiply() on an integer, you want a Money object there instead.
Anyhow, the point of the Money library is that calculations give you results in multiples of the currency unit (which is typically a cent). You seem to want fractions of a unit, which simply defies this goal. Since you can't pay a fraction of the unit, that also doesn't make sense, you must round at some point.

@UlrichEckhardt what I'm trying to do is to store a tax exclusive value in the DB, convert it to a Money object, and then calculate the tax on it.
In this particular case, I know that the tax inclusive price needs to be calculated as £39.99, with tax (VAT) at 20%.
So the tax exclusive price should be £33.325.
I can store the decimal value 33.325 in the DB but, when converting it into a Money object, it rounds the value up 33.33. This means that when I add the tax, it is using a slightly higher value than it should, to calculate  the gross value.
33.325 * 1.2 == 39.99
33.33 * 1.2 = 39.996

So:
$baseValue = Money::GBP(33.325);  // converts amount to `33.33`
$taxRate = 0.2;

$grossValue = $baseValue->multiply(1 + $taxRate);

echo $grossValue->getAMount(); // 40.00 because the trailing `6` causes the value to be rounded up.

I'm not sure how to get around this and calculate the correct gross amount. I'm happy for any suggestions.

@GreenImp which version of moneyphp/money are you using ?
$baseValue = Money::GBP(33.325); should have throw an invalid exception. (it require an integer).

Ah yes, sorry, I'm actually using https://github.com/cknow/laravel-money which is a Laravel wrapper for Money PHP.
It has a class for automatically casting decimal values to instances of Money: https://github.com/cknow/laravel-money/blob/3431fe3663efac5db883459b55949a269cb0880b/src/MoneyCast.php#L44
        return Money::parseByDecimal(
            $value,
            $this->getCurrency($attributes),
            Money::getCurrencies()
        );

parseByDecimal is defined as:
    /**
     * Parse by decimal.
     *
     * @param string            $money
     * @param string|null       $forceCurrency
     * @param \Money\Currencies $currencies
     *
     * @return \Cknow\Money\Money
     */
    public static function parseByDecimal($money, $forceCurrency = null, Currencies $currencies = null)
    {
        $parser = new DecimalMoneyParser($currencies ?: static::getCurrencies());

        return static::parseByParser($parser, $money, $forceCurrency);
    }

And it's calling the DecimalMoneyParser defined in this package: https://github.com/moneyphp/money/blob/master/src/Parser/DecimalMoneyParser.php
So Laravel Money will take a value like 33.325 and call the decimal parser on it, which does the rounding, and parses to an int. IT then uses that value to create the Money instance.

@GreenImp  I think money default behaviour is to handle 2 digits avec point for GBP currency and it round the value.
Since it internally uses DecimalMoneyParser, i think a solution may be to simply override minorUnit for GBP currency.
(allowing 3 instead of 2, but i did not test myself).
In laravel-money "currencies" configuration option it seems you can specify your own currencies (but never tested myself).

@kslimani thanks. I think that changing the minorUnit to allow 3, instead of 2 might cause formatting issues down the line.
I think that what I'm going to have to do is to store the value as an integer, like 33325, and then either don't use Money at all, or just use it for formatting.

@GreenImp i my project, i also store money value as integer to avoid floating issue and it is convenient because Money library work internally with integer. Just ensure to use Money object methods for each operations on money value instances.

Yeah, I think that's probably the right way to go. Thanks!


Distributed message queue + Queue type improvements

If we spread large server in similar geographical locations, considering that users are most likely so send messages within the same region, all incoming/outgoing messages could be handled by the same server without hitting the distributed message queue. For offline users or users in a different zone, we could still fall back to Redis and more persistent options.

As an intermediate step, we can switch to channels in the Queue type rather than concurrent-maps..


Consider state slot in getDomain

Resolves https://github.com/ChainSafe/lodestar/issues/4428
Add a stateSlot: Slot parameter to getDomain. This matches the ergonomics of the consensus function.
Note: getDomain still relies on the configured fork schedule rather than the on-chain fork schedule (state.fork)

refactored similarly to your solution, please rereview


Neuron consolidate is not creating model.safetensors.index.json

When training a model with TP, weights are saved as sharded TP weights. This means we need to consolidate/convert them into regular weights using optimum neuron consolidate command. But the command currently is not creating the correct structure. It only saves the model-00001-of-00002.safetensors and misses the model.safetensors.index.json.
Additionally we should also copy the config.json to the target directory if available. Since it is also always needed to run the model.

Addition:
It seems the model.safetensors.index.json is being created but at the wrong level, when using.
optimum-cli neuron consolidate dolly_llama_sharded/tensor_parallel_shards dolly_llama_sharded

the model.safetensors.index.json is added at ../dolly_llama_sharded but should be in dolly_llama_sharded next to the weights.

This small change appears to resolve the issue
diff --git a/optimum/neuron/distributed/checkpointing.py b/optimum/neuron/distributed/checkpointing.py
index 58a11f8..9fcb986 100644
--- a/optimum/neuron/distributed/checkpointing.py
+++ b/optimum/neuron/distributed/checkpointing.py
@@ -15,6 +15,7 @@
 """Functions handling checkpointing under parallel settings."""

 import json
+import os
 from pathlib import Path
 from typing import Dict, Literal, Union

@@ -95,6 +96,6 @@ def consolidate_tensor_parallel_checkpoints_to_unified_checkpoint(
             torch.save(shard, output_dir / shard_file)
     if index is not None:
         save_index_file = SAFE_WEIGHTS_INDEX_NAME if save_format == "safetensors" else WEIGHTS_INDEX_NAME
-        with open(save_index_file, "w") as fp:
+        with open(os.path.join(output_dir, save_index_file), "w") as fp:
             content = json.dumps(index, indent=2, sort_keys=True) + "\n"
             fp.write(content)


Orientdb distributed setup not working when one node goes down

OrientDB Version, operating system, or hardware.- v2.2.13
Operating System

[x] Linux

I have two node in Orientdb distributed mode named "server1" at port "2424" and "server2" at port "2425".
I am running them as "dserver.sh". both running as shown below :
`+--------+--------+-------------------------------------------+-----+---------+--------------------+--------------------+-------------------------+
|Name    |Status  |Databases                                  |Conns|StartedOn|Binary              |HTTP                |UsedMemory               |
+--------+--------+-------------------------------------------+-----+---------+--------------------+--------------------+-------------------------+
|server1*|STARTING|GratefulDeadConcerts=SYNCHRONIZING (MASTER)|1    |12:39:58 |<IP_ADDRESS>:2424|<IP_ADDRESS>:2480|27.59MB/491.50MB (5.61%) |
|server2 |ONLINE  |GratefulDeadConcerts=ONLINE (MASTER)       |2    |12:25:20 |<IP_ADDRESS>:2425|<IP_ADDRESS>:2481|64.33MB/480.50MB (13.39%)|
+--------+--------+-------------------------------------------+-----+---------+--------------------+--------------------+-------------------------+
`

When both are "online" insertion, replication and everything is working. But when I am making "Server1 at port 2424" offline by force closing (for testing), default behavior should be ,
It should connect to "Server2" automatically and start inserting data there.
But I am getting the following error :
java.sql.SQLException: Error while executing command
	at com.orientechnologies.orient.jdbc.OrientJdbcPreparedStatement.executeCommand(OrientJdbcPreparedStatement.java:118)
	at com.orientechnologies.orient.jdbc.OrientJdbcStatement.execute(OrientJdbcStatement.java:112)
	at com.orientechnologies.orient.jdbc.OrientJdbcPreparedStatement.execute(OrientJdbcPreparedStatement.java:204)
	at GraphDatabase.Serv
GraphDatabase.Services.Edge.createOrUpdateEdge(Edge.java:35)
	at GraphDatabase.Controller.Brain.execute(Brain.java:50)
	at GraphDatabase.DataSource.DataSource.execute(DataSource.java:47)
	at GraphDatabase.DataSource.DataSource.run(DataSource.java:19)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

**Caused by: com.orientechnologies.orient.server.distributed.ODistributedException: Quorum (2) cannot be reached because it is major than available nodes (1)**
	at sun.reflect.GeneratedConstructorAccessor3.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at com.orientechnologies.orient.client.binary.OChannelBinaryAsynchClient.throwSerializedException(OChannelBinaryAsynchClient.java:437)
	at com.orientechnologies.orient.client.binary.OChannelBinaryAsynchClient.handleStatus(OChannelBinaryAsynchClient.java:388)
	at com.orientechnologies.orient.client.binary.OChannelBinaryAsynchClient.beginResponse(OChannelBinaryAsynchClient.java:270)
	at com.orientechnologies.orient.client.binary.OChannelBinaryAsynchClient.beginResponse(OChannelBinaryAsynchClient.java:162)
	at com.orientechnologies.orient.client.remote.OStorageRemote.beginResponse(OStorageRemote.java:2167)
	at com.orientechnologies.orient.client.remote.OStorageRemote$27.execute(OStorageRemote.java:1160)
	at com.orientechnologies.orient.client.remote.OStorageRemote$2.execute(OStorageRemote.java:196)
	at com.orientechnologies.orient.client.remote.OStorageRemote.baseNetworkOperation(OStorageRemote.java:235)
	at com.orientechnologies.orient.client.remote.OStorageRemote.networkOperationRetry(OStorageRemote.java:193)
	at com.orientechnologies.orient.client.remote.OStorageRemote.networkOperation(OStorageRemote.java:204)
	at com.orientechnologies.orient.client.remote.OStorageRemote.command(OStorageRemote.java:1136)
	at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:69)
	at com.orientechnologies.orient.jdbc.OrientJdbcPreparedStatement.executeCommand(OrientJdbcPreparedStatement.java:116)

I am connecting to the remote database as following
Connection conn = (OrientJdbcConnection) DriverManager.getConnection("jdbc:orient:remote:"  + IP+ ":" + "2424" + ";" + IP + ":" + "2425" + "/"
						+ appName, info);

What I want to achieve :

Set up a distributed database
If one server(node) goes down, it should automatically switch to other

How can I achieve this?
Thanks ..!

You have to look at distributed.autoRemoveOfflineServers (default -1) https://orientdb.com/docs/last/Configuration.html#distributedautoremoveofflineservers

I tried by giving distributed.autoRemoveOfflineServers = 0.
Below is my database connection code :
distributed.autoRemoveOfflineServers = 0
`Properties info = new Properties();
info.put("user", "root");
info.put("password", "pcp");
info.put("distributed.autoRemoveOfflineServers", "0");
Connection conn = (OrientJdbcConnection) DriverManager.getConnection("jdbc:orient:remote:"  + UserflowConstant.ip + ":" + UserflowConstant.port + ";" + UserflowConstant.ip + ":" + UserflowConstant.port2 + "/"
+ appName, info);
			System.out.println(" Database Connection  instance returned for : " + appName  + " for thread ID : " + Thread.currentThread().getId());

			return conn;`

But getting this error :
Quorum (2) cannot be reached because it is major than available nodes (1)

You can't use that setting through JDBC, but you have to put it in orientdb-server-config.xml file, in the last section.
Starting from OrientDB 2.2.13 (GA, not SNAPSHOT) you can also set this in your distributed-config.json file this setting: "newNodeStrategy": "dynamic". This is the whole file:
{
  "autoDeploy": true,
  "readQuorum": 1,
  "writeQuorum": "majority",
  "executionMode": "undefined",
  "readYourWrites": true,
  "newNodeStrategy": "dynamic",
  "servers": {
    "*": "master"
  },
  "clusters": {
    "internal": {
    },
    "*": {
      "servers": ["<NEW_NODE>"]
    }
  }
}

By distributed-config.json  do you mean  config/default-distributed-db-config.json because there is no such file  distributed-config.json in my conf directory.
If yes then  "newNodeStrategy": "dynamic"`` din't worked.
Here is my default-distributed-db-config.json for both servers (server1 and server2)
server1
{
  "autoDeploy": true,
  "readQuorum": 1,
  "writeQuorum": "majority",
  "executionMode": "undefined",
  "readYourWrites": true,
  "newNodeStrategy": "dynamic",
  "servers": {
    "*": "master"
  },
  "clusters": {
    "internal": {
    },
    "*": {
      "servers": ["<NEW_NODE>"]
    }
  }
}

Server2
{
  "autoDeploy": true,
  "readQuorum": 1,
  "writeQuorum": "majority",
  "executionMode": "undefined",
  "readYourWrites": true,
  "newNodeStrategy": "dynamic",
  "servers": {
    "*": "master"
  },
  "clusters": {
    "internal": {
    },
    "*": {
      "servers": ["<NEW_NODE>"]
    }
  }
}

Got same error :
Caused by: com.orientechnologies.orient.server.distributed.ODistributedException: Quorum (2) cannot be reached because it is major than available nodes (1)
	at sun.reflect.GeneratedConstructorAccessor13.newInstance(Unknown Source)

Here is few more things I tested :

Set up a distributed node server (Server1 & Server2)
Connect to database as follows (Server1 IP first, then Server2)

Connection conn = (OrientJdbcConnection) DriverManager.getConnection("jdbc:orient:remote:"  + ip + ":" + port + ";" + ip + ":" +port2 + "/"
                        + appName, info);

Keep Server1 offline and run your program

Got the same error

Caused by: com.orientechnologies.orient.server.distributed.ODistributedException: Quorum (2) cannot be reached because it is major than available nodes (1)
    at sun.reflect.GeneratedConstructorAccessor13.newInstance(Unknown Source)

default-distributed-db-config.json is same on both server and it's
{
  "autoDeploy": true,
  "readQuorum": 1,
  "writeQuorum": "majority",
  "executionMode": "undefined",
  "readYourWrites": true,
  "newNodeStrategy": "dynamic",
  "servers": {
    "*": "master"
  },
  "clusters": {
    "internal": {
    },
    "*": {
      "servers": ["<NEW_NODE>"]
    }
  }
}

This is very simple use case and I think this should at-least work

Once the cluster is running the distributed cfg is the one stored in each database's folder. Please set that   "newNodeStrategy": "dynamic" in all of them.

In v2.3 dynamic will be the default, but we cannot change the default behaviour in an hot-fix, sorry.

Dear Luca,
thanks for your prompt reply.
I did what you said, "newNodeStrategy": "dynamic" on both server but got same error
Caused by: com.orientechnologies.orient.server.distributed.ODistributedException: Quorum (2) cannot be reached because it is major than available nodes (1)
    at sun.reflect.GeneratedConstructorAccessor13.newInstance(Unknown Source)

distributed-config.json file of my database on both server :
{"@type":"d","@version":0,"autoDeploy":true,"readQuorum":1,"writeQuorum":"majority","executionMode":"undefined","readYourWrites":true,"newNodeStrategy":"dynamic","servers":{"@type":"d","@version":0,"*":"master","server1":"MASTER","server2":"MASTER"},"clusters":{"@type":"d","@version":0,"internal":{"@type":"d","@version":0},"*":{"@type":"d","@version":0,"servers":["server1","server2","<NEW_NODE>"]},"e":{"@type":"d","@version":0,"servers":["server2","server1","<NEW_NODE>"]},"e_1":{"@type":"d","@version":0,"servers":["server2","server1","<NEW_NODE>"]},"ofunction_0":{"@type":"d","@version":0,"servers":["server1","server2","<NEW_NODE>"]},"oschedule_0":{"@type":"d","@version":0,"servers":["server2","server1","<NEW_NODE>"]},"orole_0":{"@type":"d","@version":0,"servers":["server2","server1","<NEW_NODE>"]},"v_1":{"@type":"d","@version":0,"servers":["server2","server1","<NEW_NODE>"]},"v_2":{"@type":"d","@version":0,"servers":["server2","server1","<NEW_NODE>"]},"ouser_0":{"@type":"d","@version":0,"servers":["server1","server2","<NEW_NODE>"]},"osequence_0":{"@type":"d","@version":0,"servers":["server1","server2","<NEW_NODE>"]},"_studio":{"@type":"d","@version":0,"servers":["server2","server1","<NEW_NODE>"]},"_studio_3":{"@type":"d","@version":0,"servers":["server1","server2","<NEW_NODE>"]},"_studio_2":{"@type":"d","@version":0,"servers":["server2","server1","<NEW_NODE>"]},"ouser":{"@type":"d","@version":0,"servers":["server2","server1","<NEW_NODE>"]},"ofunction":{"@type":"d","@version":0,"servers":["server2","server1","<NEW_NODE>"]},"osequence":{"@type":"d","@version":0,"servers":["server2","server1","<NEW_NODE>"]}},"version":23}

One more thing I want to ask

I put my first server down (for testing), and run my application
connected to db as  follows

Connection conn = (OrientJdbcConnection) DriverManager.getConnection("jdbc:orient:remote:"  + ip + ":" + port + ";" + ip + ":" +port2 + "/"
                        + appName, info);

What it should ideally do is : connect to IP+PORT2 as IP+PORT1 is offline.
But I is giving same error
Caused by: com.orientechnologies.orient.server.distributed.ODistributedException: Quorum (2) cannot be reached because it is major than available nodes (1)
    at sun.reflect.GeneratedConstructorAccessor13.newInstance(Unknown Source)

Note : vale of "newNodeStrategy": "dynamic" in distributed-config.json

Ok, with the old configuration both servers are registered. Please remove both servers from the "servers" configuration:
"servers": []

I did "servers": []
distributed-config.json file of server 2 :
{"@type":"d","@version":0,"autoDeploy":true,"readQuorum":1,"writeQuorum":"majority","executionMode":"undefined","readYourWrites":true,"newNodeStrategy":"dynamic","servers":{"@type":"d","@version":0,"*":"master","server1":"MASTER","server2":"MASTER"},"clusters":{"@type":"d","@version":0,"internal":{"@type":"d","@version":0},"*":{"@type":"d","@version":0,"servers":[]},"e":{"@type":"d","@version":0,"servers":[]},"e_1":{"@type":"d","@version":0,"servers":[]},"ofunction_0":{"@type":"d","@version":0,"servers":[]},"oschedule_0":{"@type":"d","@version":0,"servers":[]},"orole_0":{"@type":"d","@version":0,"servers":[]},"v_1":{"@type":"d","@version":0,"servers":[]},"v_2":{"@type":"d","@version":0,"servers":[]},"ouser_0":{"@type":"d","@version":0,"servers":[]},"osequence_0":{"@type":"d","@version":0,"servers":[]},"_studio":{"@type":"d","@version":0,"servers":[]},"_studio_3":{"@type":"d","@version":0,"servers":[]},"_studio_2":{"@type":"d","@version":0,"servers":[]},"ouser":{"@type":"d","@version":0,"servers":[]},"ofunction":{"@type":"d","@version":0,"servers":[]},"osequence":{"@type":"d","@version":0,"servers":[]}},"version":20}
didn't work , gave same error
I think when distributed server is starting, its overwriting these distributed-config.json files.
I request you to please release some hotfix.
Or
Any other way I can achieve this :

Set up a distributed database
If one server(node) goes down, it should automatically switch to other

Thanks..!

When you stop the cluster, are you 100% sure you set "servers": [] in all distributed-config.json files of all the databases directories of all the servers?
What really matter is the first server that starts, you could even change it on the first server only (the file in the database directories) and then start the other servers. The other servers just download the configuration from the first node.

Ok ..! I will try it with a fresh installation.
and will shortly report back..!
Do you want me to make
"servers":{"@type":"d","@version":0,"*":"master","server1":"MASTER","server2":"MASTER"}
also blank i.e
"servers":{}

Dear Luca,
It worked :+1 (when one node goes down it shift to other):
But here are few issues I got during my Testing of Orientdb v2.2.13 :
I have two servers server1 & server2

When server1 went down it shifted to server2 but when server1 came online I got the following message and exception on console

Orientdb shutting down
Exception in thread "main" java.lang.NullPointerException
	at test.Services.App.preparedStatement(VertexService.java:129)

Writing speed at server2  is slower than writing speed at server1

Hi @prakashpandey
Seem that your configuration is wrong.

"writeQuorum": "majority"

It means that OrientDB need N/2 + 1 servers alive in case you want to write something to DB.
with N is number of servers. In your case it is: 2/2 + 1 = 2 servers.
Please refer to this link for more detail information.
Hope this help.
Thanks.

Hi Tan Ho,
I tried with 3 Nodes server1, server2, server3 all running in distributed mode.
When server1 went down and came back got same exception
My writeQuorum is default (majority)
3/3 + 1 = 2 (server2, server3 are alive)

when server1 went offline, other 2 server worked well
but when server1 came back online , got same exception

Exception in thread "main" java.lang.NullPointerException
    at test.Services.App.preparedStatement(VertexService.java:129)

Hi, VertexService is your class, so the NPE is on your code. Could you please share it with me?

I solved it.
I think it take some time to switch between servers(when one server goes down)
Null pointer exception was because it take some time to switch between servers and if you hit server between switching you get this exception,
Schema is not created and cannot be loaded
	DB name="TestDb"

I solved it by making thread sleep for some time and than everything executed well.
The only problem I am facing now is :
When it switch from Server1 to Server2 speed of writing is slower than that in Server1 (both have same configuration as they are copy of each other).

@prakashpandey About the speed, what's the difference? Where the client and servers are located in the network?


FTPSync [default] > Upload failed {index.php} [Exception: [Errno 0] Error]

Hi There,
I'm not able to use FTP Sync with SublimeText since the last months. It's not working in SublimeText 2 nor SublimeText 3. The error that FTPSync shows in the console is: FTPSync [default] > Upload failed {index.php} [Exception: [Errno 0] Error].
Any idea about how to solve it?
Thanks in advance!
Alberto

No one here to give me any help on this?

Hi,
I might have to add some more logging, since this error message is not very helpful so to say. Has it been working for you before? Can you think of anything that has changed in your environment or in the FTP?
Maybe try adding into the connection setting:
 "debug_extras": {
    "print_ensure_folders": true,
    "debug_remote_paths": true,
    "debug_get_local_path": true
}

https://github.com/NoxArt/SublimeText2-FTPSync/wiki/All-settings
if anything, it might make it clearer in which phase it occured

Thank you so much for your fast answer.
Here you can see below the message in the sublimeText console after trying to upload a file called test.php. It seems the problem is in the function that gets the metadata, isn't it?.
Looking forward your feedback,
Alberto

FTPSync > Loading config: cache hit (key: /Users/alberto/new_web/test.php)
FTPSync > Checking {test.php} if up-to-date
FTPSync > Loading config: cache hit (key: /Users/alberto/new_web/test.php)
FTPSync [default] > Connected to: <IP_ADDRESS>:21 (timeout: 30) (key: 9a615752fe71130f5cb5eaed3980b410)
FTPSync [default] > Authentication processed
FTPSync [default] > Logged in as: dreampack (using password: YES)
(u'//public_html/', [u'public_html'])
FTPSync  list path /Users/alberto/new_web/test.php => /public_html/test.php
FTPSync [default] > Getting metadata failed: {test.php} [Exception: ]
FTPSync > Exception in user code:
Traceback (most recent call last):
File "./FTPSync.py", line 1838, in execute
File "./ftpsyncwrapper.py", line 819, in list
File "./ftpsyncwrapper.py", line 949, in __execute
File "./ftpsyncwrapper.py", line 783, in action
FileNotFoundException
FTPSync > Closing connection
FTPSync > No version of {test.php} found on any server
FTPSync > Loading config: cache hit (key: /Users/alberto/new_web/test.php)
Writing file /Users/alberto/new_web/test.php with encoding UTF-8
FTPSync [default] > Connected to: <IP_ADDRESS>:21 (timeout: 30) (key: 9a615752fe71130f5cb5eaed3980b410)
FTPSync [default] > Authentication processed
FTPSync [default] > Logged in as: dreampack (using password: YES)
FTPSync  list path /Users/alberto/new_web/test.php => /public_html/test.php
FTPSync [default] > Getting metadata failed: {test.php} [Exception: ]
FTPSync > Exception in user code:
Traceback (most recent call last):
File "./FTPSync.py", line 1838, in execute
File "./ftpsyncwrapper.py", line 819, in list
File "./ftpsyncwrapper.py", line 949, in __execute
File "./ftpsyncwrapper.py", line 783, in action
FileNotFoundException
FTPSync > Closing connection
FTPSync > Loading config: cache hit (key: /Users/alberto/new_web/test.php)
FTPSync [default] > Connected to: <IP_ADDRESS>:21 (timeout: 30) (key: 9a615752fe71130f5cb5eaed3980b410)
FTPSync [default] > Authentication processed
FTPSync [default] > Logged in as: dreampack (using password: YES)
FTPSync [default] > Upload failed: {test.php} [Exception: [Errno 0] Error]
FTPSync > Exception in user code:
Traceback (most recent call last):
File "./FTPSync.py", line 1421, in action
File "./ftpsyncwrapper.py", line 467, in put
File "./ftpsyncwrapper.py", line 949, in __execute
File "./ftpsyncwrapper.py", line 430, in action
File "./ftpsyncwrapper.py", line 290, in retryingCommand
File "./ftpsyncwrapper.py", line 284, in call
File "./lib2/ftplib.py", line 753, in storbinary
File "./lib2/ssl.py", line 258, in unwrap
error: [Errno 0] Error
FTPSync > Closing connection

Hi NoxArt!
Did you have the time to take a look on this?
Thanks!

Nothing to do with this?
No solution yet?
Thanks!

Hi, the initial issue is reported in "LIST -a " + path => str(e).find('No such file')
Can you please enable the settings I posted above and post the results (or send them to me via mail)? Also check the results if they seem to be correct according to the paths in your FTP
Thanks

Hi there,
you can see below the data inside my ftpsync.settings file. It seems to be correct, am I wrong?
What I send you in the previous messages are the lines that appears in the SublimeText console after trying to connect. Should I look for the debug information you need in another place inside SublimeText?
BTW, I have no idea on SublimeText programming, so for me "LIST -a " + path => str(e).find('No such file') has no meaning, I'm so sorry for that.
FYI, I haven't changed nothing in my enviroment, and as far as I know nothing changed in my FTP server. I'm connecting with no problem to my FTP server via Filezilla. At any case, this happens in several machines with different operative systems, and on every domain that I have hosted in the same server. All was working perfect until a couple of weeks. It's really weird!
Any idea?
Thank you soooo much for your help on this!

{
"default": {

	"host": "my host number",
	"username": "my username",  // or null for anonymous login
	"password": "my password",
	"path": "/public_html/",

	"upload_on_save": true, // set *false* if you do not want to upload on save!

	// "port": 21,
	"tls": true,
	// "timeout": 30, // [seconds]

	"passive": true,
	"download_on_open": true,
	"overwrite_newer_prevention": false,
	//"default_folder_permissions": "755",
	"max_threads": 1,

	"debug_extras": {
	    "print_ensure_folders": true,
	    "debug_remote_paths": true,
	    "debug_get_local_path": true
	}
}

}

I forgot to comment you one important thing that maybe has something to do with this issue.
I'm not sure if FTPSync connect or not with my server, but I guess that Yes, it really does, because after trying to update a file this file in the server is completely empty. So that, each time I want to test if FTPSync works, I have to access via Filezilla to my server, copy the code of the file and put into the file again, because FTPSync removed all the code inside. Do you understand me?
So maybe, FTPSync connect with my server, but something happens in the update process that rermoves completely the code inside the file. At this moment FTPSync It's really dangerous for me, that's the reason I'm pretty interested ton solve this issue.
Thank you so much for your support!

Hi there again!
After some checkings with the people of my server, we determined that the problem is TLS. TLS is active and works fine with cPanel and Filezilla, but does not work at this moment with FTPSync. The cPanel is updated regulary, and maybe the SSL Certificate is not working now with FTPSync and has some conflict. Who knows?
My server has relaxed the need to make a Explicit TLS connection to connect via FTP to the server, and now, changing the TLS to false in the ftpsync.settings file I'm able to use FTPSync as before.
If you find more users having the same issue, please, write the solution here for me.
Thanks for all your time looking for a solution to this and for this awesome plugin that save a lot of time to me everyday!

Hi,
'm glad you found the cause. FTPSync supports TLS in some cases, but it's not really perfect. I've tried extending the support, surprisingly found no library that would help out yet, and haven't finished my implementation, but I could give it another try. I am unfortunately short on time, but this is one of the highest priorities for me. I'll look into it tomorrow

I think it might have something to do with some cPanel or Php updates actually, because one week ago everything was working perfectly with TLS = true. Who knows? Maybe something change in cPanel or its certificate that makes TLS protocol more restrictive, and that's all!
BTW, my cPanel version is: 1.0 (RC1), Hope it helps!

I got a fix.
-You gotta be root, with WHM access-
Service Configuration -> FTP Server Configuration -> Broken Clients Compatibility -> Change to YES
That'll do it. At least it worked for me.


Mapping SSL Certs in docker fails with error EISDIR: illegal operation on a directory, read

Description
I am running this docker command
docker run -it -p 8888:8080 -v path/to/certs/cert.crt:/home/coder/certs/cert.crt codercom/code-server --cert /home/coder/certs/cert.crt
and I get the error message
error EISDIR: illegal operation on a directory, read
I have removed the --cert command and the container starts correctly and when I go into bash in the container I can see cert.crt and doing ls -l gives
drwxrwxrwx 2 coder coder 4096 Feb  1 03:46 cert.crt
so I'm not sure what the error is (other than a typo by me ;) )

See #1331


Make libxml-ruby play nice with other consumers

libxml-ruby registers a global callback with libxml for node
deletions. If a node's _private field is not NULL, libxml-ruby
reaches through the pointer and clobbers a few fields. This interacts
badly with other consumers of the underlying libxml library, such as
Nokogiri. This fixes the behaviour by maintaining a hashtable of node
pointers which we own and not allowing writing through any others.
We have been running this in production for close to 48 hours and so far
it's stopped all occurrences of segmentation faults where previously we
would be receiving ~25 per hour. We've been monitoring for memory leaks
but have not yet seen anything.

Nice detective work. So nokogiri also sets the private field in newer versions?  Is that the cause of the issue?

I feel that is the case since there are a few places which Nokogiri is setting node->_private to NULL which could be leading us down this path.
I've also just found this code comment and this commit which shows me Nokogiri tried to protect (?) against some of this behaviour.

Ok, that makes sense.

Closing in favour of refactor in #119 and the refactor in there.


DTWAIN_EnumSources not working as expected

Hi
I want to find out all devices connected, So I use the API DTWAIN_EnumSources, but turns out -1 count.
I have a Scanner connected to computer. When using official demo, it lists the device in select dialog.
I use the example in chm file, codes below
DTWAIN_SOURCE MySource;
LONG nSources;
DTWAIN_ARRAY SourceArray;
TCHAR szProductName[256];
void SourceInfo() {

    if (!DTWAIN_IsTwainAvailable()) {
        printf("[ERROR] twain is not available");
        return;
    }

    if (!DTWAIN_SysInitialize()) {
        printf("[ERROR] init failed");
        return;
    }

   /* Get all of the Sources installed (note the use of the address of the DTWAIN_ARRAY) */
  DTWAIN_EnumSources(&SourceArray);
   /* Get the number of sources */
   nSources = DTWAIN_ArrayGetCount( SourceArray );
    printf("Source Count %ld", nSources);
   /* return if none found */
   if ( nSources == 0 )
   {
      DTWAIN_ArrayDestroy(SourceArray );
       return;
   }
   else /* Sources were found */
   {
       int Count;
       for (Count=0; Count < nSources; ++Count ) {
           /* Get DTWAIN_SOURCE from Array*/
          DTWAIN_ArrayGetAt(SourceArray, Count, &MySource );
          DTWAIN_GetSourceProductName(MySource, szProductName, 255 );
          printf("Source Name is %s", szProductName);
      }
      DTWAIN_ArrayDestroy( SourceArray );
  }
}

`
and the output always
Source Count -1
please help me, thanks.

Are you running the 32-bit version of DTWAIN or the 64-bit version?  If it's the 64-bit version, and the TWAIN drivers you have are 32-bit, then you cannot use 32-bit drivers in a 64-bit application.  The same thing vice-versa -- you cannot use 64-bit drivers in a 32-bit program.
I tested the program below, compiled as a 32-bit version, 32-bit drivers, using dtwain32.dll as the DTWAIN library, and had no issues:
#include <dtwain.h>
#include <stdio.h>

DTWAIN_SOURCE MySource;
LONG nSources;
DTWAIN_ARRAY SourceArray;
TCHAR szProductName[256];
void SourceInfo() {
	if (!DTWAIN_IsTwainAvailable()) {
		printf("[ERROR] twain is not available");
		return;
	}

	if (!DTWAIN_SysInitialize()) {
		printf("[ERROR] init failed");
		return;
	}

	/* Get all of the Sources installed (note the use of the address of the DTWAIN_ARRAY) */
	DTWAIN_EnumSources(&SourceArray);
	/* Get the number of sources */
	nSources = DTWAIN_ArrayGetCount(SourceArray);
	printf("Source Count %ld\n", nSources);
	/* return if none found */
	if (nSources == 0)
	{
		DTWAIN_ArrayDestroy(SourceArray);
		return;
	}
	else /* Sources were found */
	{
		int Count;
		for (Count = 0; Count < nSources; ++Count) {
			/* Get DTWAIN_SOURCE from Array*/
			DTWAIN_ArrayGetAt(SourceArray, Count, &MySource);
			DTWAIN_GetSourceProductName(MySource, szProductName, 255);
			printf("Source Name is %s\n", szProductName);
		}
		DTWAIN_ArrayDestroy(SourceArray);
	}
}

int main()
{
	SourceInfo();
}

The number of TWAIN drivers installed in the system I am currently on is 7:
Source Count 7
Source Name is EPSON GT-S50
Source Name is TWAIN2 Software Scanner
Source Name is HP CLJM277 Scan Driver TWAIN
Source Name is WIA-HP CLJM277 Scan Driver
Source Name is Plustek OpticPro A380L-TWAIN
Source Name is Plustek SmartOffice PS186-TWAIN
Source Name is Plustek PS286 Plus-TWAIN

Similarly, I also have 64-bit drivers, and when I build the application as a 64-bit application, the result is shown (dtwain64.dll) was used
Source Count 4
Source Name is Plustek OpticPro A380L-TWAIN
Source Name is TWAIN2 Software Scanner
Source Name is Plustek SmartOffice PS186-TWAIN
Source Name is Plustek PS286 Plus-TWAIN

So please check if you are running the correct application (32-bit, 64-bit) that matches the type of TWAIN drivers you have installed.

Also, your code does not check if any of the DTWAIN function calls return a failure code.  You should check the return codes of all of the functions.

Closing, as the issue cannot be duplicated.


Public account script

I used to use your script for public account on tampermonkey 2 years ago, it worked well on all browser I was using (opera, ff, chrome, edge). However, till yesterday it suddenly got blank page. Are there any errors with the script now?

Hi, I just tried to log in again with FF and chrome, and both work well.
You could try to clear the cache and cookies at exhentai.org, e-hentai.org, forums.e-hentai.org.
Then log in using this script again.

Thx for reply, I tried to clear all of them but still got blank page. Just for sure, I use script for public account, so is it necessary to login ? i use this one ExHentai.org自动登录... . I also try  ExHentai / E-Hentai Auto Login, but it got same issue as well.

@raitoakpro Sorry, this script only provides an interface to let you log in.

So if you have an account you can just follow the instructions to log in.
It looks like your public account script is no longer working.

@MinoLiu Seems like that, of course I have tried your Let-s-panda as well. However, I watched your comments in other issue posts and u said that account created from Asia isn't probably accepted. btw my account has created for 3 years and still couldn't access exh. I also tried all ways people said on github and reddit but it seems impossible for me, so I decided to use public account instead. And now public account doesn't work too... How sad! thx you anyway.


Feature: Multi monitor support for webview command

The webview command location parameters only allow for the window to be placed on the main monitor.

Is your feature request related to a problem? Please describe.
I have the webview pop-up when the doorbell is pressed with video stream from the doorbell, but this can cause issues if I'm running something in full-screen on my main monitor.
Describe the solution you'd like
I'd like to be able to choose the monitor I want to use as well as the location x/y
Describe alternatives you've considered
I have tried setting x/y to negative and over positive values too, it's just stuck to 1 screen

I have looked into it, and have a solution, in case this is still wanted, and nobody is already fixing this.

This PR fixes this, and only needs to be merged. I tested this with two (and single) screen, any feedback is welcome if bugs pop up.
https://github.com/hass-agent/HASS.Agent/pull/158


Vercel serves an XML file unstead of the home page of the blog

Describe the bug
On most (5 times out of 6) production builds on vercel, an XML file is being deployed as the home page of the blog.
To Reproduce
I don't have any way to reproduce it as of now.
Expected behavior
I expect the home page to render as an HTML with CSS..
Screenshots

System Info (if dev / build issue):

OS: [e.g. iOS] => Vercel default
Node version (please ensure you are using 12+) => Node 14.x
Npm version => Yarn

Additional context
You can see for yourself on https://blog.axolo.co/blog. If you go on https://blog.axolo.co/blog/p and then click on the logo on the top left, it will take you to https://blog.axolo.co/blog without troubles.
here is my next.config.js file:
I wonder if it comes from webpack5.
const withBundleAnalyzer = require('@next/bundle-analyzer')({
  enabled: process.env.ANALYZE === 'true',
})

module.exports = withBundleAnalyzer({
  basePath: '/blog',
  reactStrictMode: true,
  pageExtensions: ['js', 'jsx', 'md', 'mdx'],
  future: {
    webpack5: true,
  },
  webpack: (config, { dev, isServer }) => {
    config.module.rules.push({
      test: /\.(png|jpe?g|gif|mp4)$/i,
      use: [
        {
          loader: 'file-loader',
          options: {
            publicPath: '/_next',
            name: 'static/media/[name].[hash].[ext]',
          },
        },
      ],
    })

    config.module.rules.push({
      test: /\.svg$/,
      use: ['@svgr/webpack'],
    })

    if (!dev && !isServer) {
      // Replace React with Preact only in client production build
      Object.assign(config.resolve.alias, {
        react: 'preact/compat',
        'react-dom/test-utils': 'preact/test-utils',
        'react-dom': 'preact/compat',
      })
    }

    return config
  },
})

It might be an easy fix, was wondering if anyone had a clue of where I should look at ! thank you for your time 🙏

Sounds like you are using an older version of the template that has this issue. See related issue - https://github.com/timlrx/tailwind-nextjs-starter-blog/issues/16. If so, there are two ways of fixing it:

Change https://github.com/timlrx/tailwind-nextjs-starter-blog/blob/master/scripts/generate-sitemap.js#L50 to sitemap.xml or something other than index.xml. You can then add a 301 redirect to that page if you were using index.xml previously. This is the current approach the template takes.

Patch to manually map / to index/ - https://github.com/timlrx/timlrx.com/pull/17. This has some issues while developing, you might need to refresh, but otherwise, it works.

Appreciate the quick response, let me try that !

Alright, so I've manage to get it working as a single app, but now I'm trying to have it working with basePath.

was already implemented in my version of the blog.

and 2)
I tried different combinaison but still can't get it to work. Our blog section is served as
axolo.co/blog
So our basePath is /blog for the app containing the blog.
Do you know how I should set up the rewrites for it to work?
Here is how my next.config.js file looks like:
const withBundleAnalyzer = require('@next/bundle-analyzer')({
  enabled: process.env.ANALYZE === 'true',
})

module.exports = withBundleAnalyzer({
  basePath: '/blog',
  //.... some webpack stuff
  async rewrites() {
    return {
      beforeFiles: [
        // These rewrites are checked after headers/redirects
        // and before pages/public files which allows overriding
        // page files
        // we do the rewriting from blog to blog/index
        {
          source: '/',
          destination: '/index',
        },
      ],
    }
  },
})

I didn't realize that the homepage was set to https://blog.axolo.co/blog instead of the more typical https://blog.axolo.co. For some reason there's a https://axolo.co/blog/index.xml created which should not be the case if you have already done (1). There's no need to do (2) if (1) is already done.
Can you check that this is similar on your side: https://github.com/timlrx/timlrx.com/blob/master/pages/blog/[...slug].js#L36
Basically, you need to find where is the index.xml coming from and remove / fix it.

Yup, looking at the xml file in more detail, it's actually the RSS feed. So one of the generateRss functions is saving as /blog/index.xml. You should change that to /blog/feed.xml or something else.

@timlrx Thank you that solved the issue ! You rock


changed increment socket name to use unix timestamp

Thanks for this very helpful module. We're using it to set up a (relatively) high performance JSON API, and keep running into an issue in Lambda where socket ports are still in use:
EADDRINUSE /tmp/server0.sock incrementing socketPathSuffix.
EADDRINUSE /tmp/server1.sock incrementing socketPathSuffix.
EADDRINUSE /tmp/server2.sock incrementing socketPathSuffix.
EADDRINUSE /tmp/server3.sock incrementing socketPathSuffix.
EADDRINUSE /tmp/server4.sock incrementing socketPathSuffix.
EADDRINUSE /tmp/server5.sock incrementing socketPathSuffix.
...
Not sure what the problem is, or if others are having similar issues, but we forked and started using unix timestamps instead of incrementing integers, and we don't see it happen anymore.

Hi @willstepp, could you check your CW logs and see if you got any javascript errors? We have seen this once before and it was due to not exiting gracefully. We added error handling to prevent this, but maybe it doesn't catch everything. Also check for anything else suspicious in your logs prior to seeing the "EADDRINUSE" message (especially invokes immediately before getting that message). The socket incrementing was added only for local testing/development and we did not expect it to show up when run in Lambda since the setup only occurs once per container.
I would rather find the root cause and apply the relevant patch than mask the bug. When we got this perviously, we also saw performance impact on invokes immediately after an invoke threw an error, see #5.

@brettstack I checked and no errors, but I do see timeouts. After the first timeout is when I start seeing the 'EADDRINUSE...' in the logs. I had assumed the timeouts were a side effect, but maybe they are the cause?

Ahh, yes, that is certainly the cause. For now, stick with your branch. I'll look into a solution that targets the root cause.

Great, makes sense. Thanks for looking into it!


ibm-toggle set value=undefined

Ibm-toggle component is setting the value to undefined at
https://github.com/IBM/carbon-components-angular/blob/master/src/toggle/toggle.component.ts#L65
and this is violation for AAT.
Checkbox input and others with the name "undefined" are not grouped together
Violation
Related sets of radio buttons or checkboxes should be programmatically grouped

ibm-toggle is setting the value of the input to what ever the user set the value attribute to. The same way checkbox does. Perhaps we could default it to false.

@shroffsmiti after rereading the issue you brought up, it doesn't seem to be due to value attribute, but due to missing name.
name input is something a developer should set for each group. It would look something like
<ibm-toggle name="your-name"></ibm-toggle>

When you add the name, do you still get the same violation?

@zvonimirfras thanks for this info, when we add name it does not throw any violation.
Plz close this issue.

Thank you for verifying 🙂


🐛 [Bug report]: Glitch in homepage navigation bar

Descrcibe the bug?
In the homepage, while clicking on the heart icon in the navigation bar, the navigation bar moves right.
Steps to reproduce the bug?

Go to http://localhost:3000 or https://reactplay.io/ on laptop/desktop browser.
Click on heart icon on the top right.
You will find that navigation bar is moving to the right.

Expected behavior
Navigation bar shouldn't change position because of clicking actions.
Desktop (Please provide your system information)
OS: MacOS
Browser: Chrome
Version: 106.0.5249.119
Mobile (Please provide your device information)
No response
Screenshot / Screenshare
No response
Relevant log output
No response
Code of Conduct

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

I would like to contribute to this issue.

@kd100100 , Can you attach the screenshot or recordings?

nav-error-recording.webm

I would like to take it up.

hello @kd100100 would you like to work on this issue?

hello @priyankarpal I like to work on this issue

hello @priyankarpal I like to work on this issue

sure

I want to help with this issue.

I want to help with this issue.

sure

hello @priyankarpal I like to work on this issue

I am assigning this issue to someone because it has been pending for two weeks


Make Uninstall work for MSI wrapper

Currently I am unable to make the MSIWrapper uninstall the solution correctly.
The App Deploy Toolkit for this works just fine, the MSI is just not executing the uninstall command for some reason.

Double wrapped with Inno Setup. works as expected.


PKO v2 Migration guide

Document any steps needed, and differences to be aware of for users to adopt the new PKO resources

Added to epic https://github.com/pulumi/pulumi-kubernetes-operator/issues/586

Key points (WIP):

cross-namespace references are strictly disallowed

Git auth needs to be specified as secret refs
Adding SSH known hosts → layer them into the container

More draft material:
What's Changed

The Operator is natively multi-tenant and can only be installed cluster-wide, not on a per-namespace basis.
Each stack runs in a separate pod in the Stack object's namespace.  These pods are known as workspace pods.
The workspace pod runs with a 'restricted' (low-privilege) security profile.
The workspace pod stays running after the update has been applied, with minimal resource usage.  It runs with a burstable class-of-service by default.
Your Stack uses the pod's ServiceAccount to authenticate to the Kubernetes API.  Previously, the Operator's own ServiceAccount served as the identity.
When a Stack configuration setting or other spec element is changed, the stack is updated.  Previously, stack updates occurred only due to source code changes.
New customization points:  It is now possible to mount volumes, init containers, and sidecars to a stack's pod.

Migration

Create a ServiceAccount for your stack.
Grant the system:auth-delegator ClusterRole to the ServiceAccount, using a ClusterRoleBinding.
Ensure that you aren't using cross-namespace references, e.g. for secret references or for stack dependencies.
Ensure that you aren't using "file" refs.
If using Flux sources, install the provided Network Policy to allow the workspace pod to access the Flux source controller.

Handled in #657


How to build on FreeBSD?

Hi can you fix so I can compile on FreeBSD. I have Xlib headers installed already.
herbe.c:1:10: fatal error: 'X11/Xlib.h' file not found
#include <X11/Xlib.h>
^~~~~~~~~~~~

I created a patch: https://github.com/dudik/herbe/pull/16
I don't use FreeBSD anymore, but I tried the patch in a virtual machine and it seemed to work.

Thank you
On Wed, Sep 16, 2020 at 08:12:46AM -0700, Samuel Dudík wrote:

I created a patch: #16
I don't use FreeBSD anymore, but I tried the patch in a virtual machine and it
seemed to work.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.*

I got it built. But how do I get it to show me notifications when I change songs from ncmpcpp or hexchat messages etc like dunst? When I run 'herbe' I get Usage: herbe body.

You can use tiramisu to call herbe, but herbe can't listen for libnotify notifications on it's own. Basically it only displays text, that's it. I should probably put it somewhere in the README.md.

➜  tiramisu git:(master) ✗ ./tiramisu | herbe
Usage: herbe body
^C%

I don't use tiramisu so I don't know how to make it work, I just know it's possible.


Add mouse controls for overworld

The overworld could largely be controlled with a mouse or touchscreen. Left click to move/activate/advance text. We can get rid of the touchscreen buttons for movement, too.

This is related to #197 , and completing one is likely to complete (or get close to) the other.

Closing due to removal of freeroam mode (#1257)


Use Kernel.exec when delegating to compose

When we are calling compose we want to completely turn over execution
over. Kernel.exec replaces the current (Ruby) process with the executed
command.
Resolves #85
Resolves #86

@blankenshipz - Tagging you manually as this should resolve both of the Issues you've recently opened.

👍


Can I use this library to 'flatten' and 'unflatten' a Jackson tree?

I'd like to start with a tree of Jackson JsonNode objects, and end up with a Map<String, Object> where the keys are paths and the values are the leaves of the tree.
And then I'd like to reverse the process; take such a map and end up with a tree. It seems as if this might be in the capacity of this library, but my first read didn't illuminate me.

This is not supported in the current version.


Fixing start symbol for command line arguments.

@cos or @daejunpark please review.

@radumereuta Does this fix the IO problem?

No, it's unrelated.
But I think I'm hitting flaky tests, because I tested the failing tests on my computer and they worked.
The second time I run the tests, different examples failed.

@radumereuta, comment out the flaky tests and document them here: #1959

I don't think the tests are flaky. I think there is something in krun which fails from time to time.
Over time I noticed a wide variety of tests that fail, and all of them at krun.

Yes, there are several tests failing, but generally in lambda/lambda++. I think there is some unwanted non-determinism there. If you could spare some time to look into the non-determinism, that would be great. Otherwise, my suggestion is to comment out the tests and document the fact.

Again: First and foremost, make sure that RV-Predict does NOT report any data-race in K.  How can we claim that we have a program verifier if it has random behaviors, in particular data-races?
Please: do not comment definition/tests out only because you feel like they are flaky.  Unless you guys bring evidence that the lambda definitions or tests are indeed non-deterministic due to mistakes in their design, I would say that it is a WRONG approach to remove them only because they are inconvenient.  And if they have indeed non-deterministic (but equivalent) results, which may well happen in the case of environment-based definitions of lambda calculi because the closures can get different locations, then why don't you run those tests with the search option and thus get even more powerful tests out of them?

I decided to merge this into the module qualified sorts. It will be reviewed with the rest.
It is more likely the bug that made these tests flaky will be fixed there.


feat: use Windows contianerd v1.7.1 in k8s version 1.27+

What type of PR is this?
/kind feature

What this PR does / why we need it:
use Windows contianerd v1.7.1 in k8s version 1.27+
Which issue(s) this PR fixes:

Fixes #
Requirements:

[x] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 61.973%

Totals

Change from base Build<PHONE_NUMBER>:
0%

Covered Lines:
2544

Relevant Lines:
4105

💛  - Coveralls


hoek security vulnerability

A dependency defined in ./package-lock.json has known security vulnerabilities and should be updated.
Is this an easy one to fix?

Maybe there: https://forums.meteor.com/t/solved-email-from-github-security-vulnerability-in-package-lock-json/43422/4

Thanks I managed :-)


Update chisel3, chisel3-plugin to 3.6.0-RC3

About this PR
📦 Updates

edu.berkeley.cs:chisel3
edu.berkeley.cs:chisel3-plugin

from 3.6.0-RC2 to 3.6.0-RC3
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "edu.berkeley.cs" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "edu.berkeley.cs" }
}]

labels: library-update, early-semver-pre-release, semver-spec-pre-release, version-scheme:pvp, commit-count:1

Superseded by #66.


FetchService is running always in backgound?

i have noticed that after calling fetch.release(); method on fetch instance the FetchService is not stop it is running forever even  if not downloading anything. did i need to do anything else to stop this service.

@KulwinderSinghRahal The FetchService is not stopped when calling fetch.release(). The FetchService only stops after all downloads are complete. Are you able to reproduce this bug?

Actually I am creating Download manager app with your library therefore I'm creating Service in which getting  instance of Fetch. my service class handles actions like start,stop,pause etc. So when my app is destroyed I'm sending Bus(otto) message to service to stop my service class if not downloading anything. it destroy the service and release fetch if not downloading but after destroying service fetchservcie is still running and after some time my service is also restarted.
I'm also want to know that is I'm doing it right or there any better way to do it with help of  library ?

Thanks for the amazing library!
As the OP said, the service runs in the background even after all downloads have been completed.
Tried calling remove(id) removeAll() and release() but the service doesn't stop. Is this the correct way to stop the service?

It seems that there is a bug thats preventing fetch from stopping properly. I am looking into it and will update as soon as possible. In the mean time a work around is to call context.stopService(new Intent(context,FetchService.class)).

This has been fixed and will make it in the next version of Fetch 1.1.2. The new version will be released in a few days. Please check back.


Unable to lchown  volume

Hello. I have centos 7.7 on 2 servers. I successfully creates volume with this command:
[lanadmin@mordred ~]$ docker volume create --driver vieux/sshfs -o sshcmd=lanadmin@<IP_ADDRESS>:/home/test -o password=mypass sshvolume

But when i tries to use this volume in container i have an error like this:
[lanadmin@mordred ~]$  docker run -it -v sshvolume:/etc busybox ls /etc
docker: Error response from daemon: failed to copy file info for /var/lib/docker/plugins/518a1874166cf493dd0700d9efec1c3e2d7649cb4a560d44a2af1a6aa16f0526/propagated-mount/5cd59d97ef5e801349f7c06a8f2c113d: failed to chown /var/lib/docker/plugins/518a1874166cf493dd0700d9efec1c3e2d7649cb4a560d44a2af1a6aa16f0526/propagated-mount/5cd59d97ef5e801349f7c06a8f2c113d: lchown /var/lib/docker/plugins/518a1874166cf493dd0700d9efec1c3e2d7649cb4a560d44a2af1a6aa16f0526/propagated-mount/5cd59d97ef5e801349f7c06a8f2c113d: permission denied.
See 'docker run --help'.

Also if i tries to use empty directory everything work fine.
And the most funny thing is when i put some file in /home/test there is no error with coping files when container runs and i have this files in /home/test:
lanadmin@ganimed ~]$ ls -lah /home/test/
итого 8,0K
drwxrwxrwx. 2 lanadmin   lanadmin   4,0K сен 21 23:15 .

drwxr-xr-x. 5 root     root     4,0K сен 21 18:48 ..

-rwxr-xr-x. 1 lanadmin lanadmin    0 сен 21 23:15 hostname

-rwxr-xr-x. 1 lanadmin lanadmin    0 сен 21 23:15 hosts

-rw-rw-r--. 1 lanadmin lanadmin    0 сен 21 23:14 notest.file

-rwxr-xr-x. 1 lanadmin lanadmin    0 сен 21 23:15 resolv.conf

Did you manage to solve this?


Invalid http response

Whenever I am trying to set contract or create wallet/account the following error is showing-
Error 3200002: invalid http response
Error Details:
Invalid content-length response

try to start nodeos with --http-validate-host=false

You may also need to start keosd with the same argument.  Alternatively, when specifying your --wallet-url, be sure to use an exact match for the binding address used by keosd.  If keosd is bound to <IP_ADDRESS>:8900 for instance, use exactly --wallet-url http://<IP_ADDRESS>:8900.  If keosd is bound to localhost:8900, use exactly --wallet-url http://localhost:8900.  The two are not synonyms in this context since exact match is required.
You may also use the --http-alias option to add alternatives to the list of possible matches, e.g.
keosd --http-server-address=<IP_ADDRESS>:8900 --http-alias=localhost:8900
allows you to write
cleos --wallet-url=http://<IP_ADDRESS>:8900 or cleos --wallet-url=http://localhost:8900 and both work equally well.

@flylee2004 Paste what commands you have tried and the resulting errors.  Preferably into a new ticket unless the error you are seeing is identical to the one in this issue.

@jgiszczak @taokayan I have the same issue.
i have tried all your suggestion but still getting the same error.
cleost='docker exec -it eosio /opt/eosio/bin/cleos --url https://jungle.eosio.cr:443 --wallet-url http://<IP_ADDRESS>:5555' set contract xxxxtestacct /contracts/test

and i get back
Error 3200002: invalid http response
Error Details:
Invalid content-length response

here is how i start my docker

docker run --name eosio \
  --publish 7777:7777 \
  --publish <IP_ADDRESS>:5555:5555 \
  --volume /Users/felix.ling/project/eosio/contracts:/contracts \
  --detach \
  eosio/eos:v1.4.2 \
  /bin/bash -c \
  "keosd --verbose-http-errors --http-validate-host=false --http-server-address=<IP_ADDRESS>:5555 & exec nodeos -e -p eosio --plugin eosio::producer_plugin --plugin eosio::chain_api_plugin --plugin eosio::history_plugin --plugin eosio::history_api_plugin --plugin eosio::http_plugin -d /mnt/dev/data --config-dir /mnt/dev/config --http-server-address=<IP_ADDRESS>:7777 --access-control-allow-origin=* --contracts-console --http-validate-host=false --verbose-http-errors --filter-on='*'"

I have solved my problem by changing  --url https://jungle.eosio.cr:443 to  --url http://jungle2.cryptolions.io:80


Remove ^UC superscript as well

Everything involving firearms usually has UC appended, for example.

Will be merged with the next version.


Store/table not dropped if not exist on new stores version

Stores/tables are not being dropped/removed when the new stores version removes some store.
Documentation tells that:

If a previous version is installed, Dexie will filter out the diff between each version and add/remove stores and indexes sequencially. So also with any registered upgrader function

On the next example, "monsters" should not exist on version 2, but store still exists:
https://jsfiddle.net/nevcos/d1x5wyj4/
Tested with Dexie 1.3.6.

It's actually by design. But when I try googling my own doc, I can't find where it's documented even though I recall I've documented it. To delete a table, one must specify null. The purpose of this is when having lots of tables and just changing one of them, it's a bit cumbersome having to repeat all of them. So it's ok to just specify the changed table schemas. So in your sample, it should be :
db.version (2).stores({
  cats: 'id',
  dogs: 'id',
  monsters: null
});

Cool! So it's just a documentation issue.
Thanks and congrats about this great project!

Updated docs https://github.com/dfahlander/Dexie.js/wiki/Design#database-versioning
Closing issue.


Why your mock doesn’t work / Ned Batchelder

URL:
https://nedbatchelder.com/blog/201908/why_your_mock_doesnt_work.html
Review (1-2 sentences): I have often come across situations where my Mock didn't work as I expected. I always hated python language for that. This pretty short article showed me that I should have hated someone else [most likely underinvestment into languate]. I just misunderstood the basics. If you like me this is a must-read article. It has a brief explanation of how exactly variable assignment in import statements works in python and what we should keep in mind working with Mock.

Published in Digest #28.


Extended Profile rdfs:seeAlso vs foaf:isPrimaryTopicOf discrepancy

I believe I may have come across some conflicting information on how to properly discover a user's full extended profile.
The current website [source] mentions that you can follow a rdfs:seeAlso predicate on the WebID Profile Document to reach the extended profile.
However on a WebID Profile Document from WebID created today on https://start.inrupt.com/, once a pod is created, the profile document is referred to via the foaf:isPrimaryTopicOf predicate. Example: https://id.inrupt.com/inruptmatt
This new behavior seems to be correct according to PR #2.
Possibly related discussions: #40
If this is correct, would it be possible to update the website with this new information?

The whole point of issue #40 is to see if it's possible to align the spec with the kind of server setup that uses foaf:priamraryTopicOf.  So until that issue is settled some servers will remain out of sync with the spec you pointed to.  Since this spec was very recently published and is in flux, there is no reason to expect servers to follow it yet.  Hopefully we will soon come up with a solution that works for all.

Closing ,as it is entirely depend on #40.  Please direct further discussion there.


[sharing-ng] Resources shared from inside of the project space is not listed by /v1beta1/me/drive/sharedWithMe endpoint

Describe the bug
Resources shared from inside of the project space is not listed by /v1beta1/me/drive/sharedWithMe endpoint
Steps to reproduce

Share a folder or file that is inside of a project space to user einstein
List the share received by following the request

curl -X 'GET' \
  'https://localhost:9200/graph/v1beta1/me/drive/sharedWithMe' \
  -H 'accept: application/json' -ueinstein:relativity -vk | jq

Expected behavior
The response should list the resources shared form a project space with a user like it does for the personal space
Actual behavior
Request returns with
{
  "value": null
}

Setup
Please describe how you started the server and provide a list of relevant environment variables or configuration files.

 PROXY_ENABLE_BASIC_AUTH=true
OCIS_INSECURE=true
OCIS_ASYNC_UPLOADS=true
IDM_CREATE_DEMO_USERS=true
OCIS_LOG_LEVEL=debug
MICRO_REGISTRY=natsjs
MICRO_REGISTRY_ADDRESS=<IP_ADDRESS>:9233

Additional context
Add any other context about the problem here.

See also https://github.com/owncloud/ocis/issues/6993


Unify Text() and Caption()?

VisualBasic has only one property that serve the purpose of Text() and Caption() together. Maybe it's worth it.

Not for now.


I/O error on one particular user's public listing

When i do an:
/keybase/public $ ls USERNAME

for the USERNAME mentioned in the logs, I get an I/O error.
my log id: cf323fd57709d213cce9541c

The user's key was reset, so doing:
keybase track USERNAME

was able to fix it.

Great, glad it works now!


Filter deleted products and locations for base

See attached card.

 2.0 Filter deleted products and locations for Base field


MRG: Suggest to use conda-libmamba-solver instead of mamba in install docs

Since there were reports that some users got confused by our suggestion to use the mamba command. Now we say to use conda, yet we can still ensure that the mamba solver is being utilized.
Also make use of --override-channels instead of --strict-channel-priority (should achieve the same thing but is less to type)

Rendered docs:
https://output.circle-artifacts.com/output/job/52eb1fef-8b82-45ec-9e14-8ec13e70ee27/artifacts/0/html/install/manual_install.html#manual-install


New Permission Check implementation

The former permission check implementation only checked for a single permission for each session. This new implementation will request both permissions on first launch. Additionally, I improved the workflow for a better user experience with an initial Toast to explain why they are being prompted for the permission.
Commit is a bit confusing. I moved the ListView choice selection to the top, and rewrote both permission methods from scratch.
Travis CI states the build is passing

despite the travis failures, i'm going to merge it. the failures are not code or test related.


Replace node HTML on load

When the graph is exported the node HTML is saved however in cases where the HTML data is dynamic (such as a changing list of options in a select input) loading a past snapshot leads to stale data.  Is there a way to update the node html when importing an exported graph.
Great library by the way.  Thanks for building this.

Hello
Usign df-attributes
Example:

https://github.com/jerosoler/Drawflow/issues/421

Or editing html:

https://github.com/jerosoler/Drawflow/issues/40


Flatpak packaging

Flatpak is the most popular way to ship Linux desktop apps these days, would love to see it on Flathub soon.

We use electron-builder to build Grist Desktop. Unfortunately, it currently doesn't support publishing to Flatpak repositories. We will consider adding a Flatpak build once electron-builder supports it.


Sourcemap of Cesium.js (iife) points to missing source files (v1.121.0)

What happened?
#11993 was fixed in v1.118 but it comes back in v1.121.0.

Sourcemap for<EMAIL_ADDRESS>points to missing source files

Reproduction steps

pnpm i
pnpm dev

The warning will be throwed by vite server.
Sandcastle example
none
Environment
Browser: Edge
CesiumJS Version: v1.121.0
Operating System: windows 10

Thanks for catching this @s3xysteak
We should not normally be publishing source maps. I believe this slipped in after I ran an extra build command while troubleshooting some issues publishing 1.121. This should be addressed in 1.121.1 which was just published. I'll be opening a separate issue to start taking a look at some better release automation/checks so this sort of thing doesn't happen again shortly.
Please let me know if the new version doesn't fix this

Thank you for such a quick response! In my application, it has been fixed in v1.121.1 so I gonna close the issue.

@jjspace It came back again in v1.122.0 😇

Thanks for bringing it up again @s3xysteak. Not really sure what the cause is, our release guide should be preventing this but maybe something's slipping through. We're not planning to do a minor release this time but this should be resolved on future releases.
@ggetz in addition to potentially reviewing the steps in the release guide I had some other thoughts for more automated prevention
The make-zip build process does not generate the sourcemaps at all but build does.
I see a couple options to fix/prevent this but not sure what's the best process wise?

add /Build/**/*.js.map to the .npmignore so it never gets published

I think this would work but could also end up being a "band-aid" that bites us later if build and make-zip generate different JS files

Update the release guide to say run npm run make-zip again right before the publish steps
add a prepublishOnly script to the package.json to run gulp makeZip before every publish to guarantee it's the files we want

I think this is the best case? it makes the publish command a bit slower to wait for it to generate the docs and stuff but is probably the safest and most foolproof

Thoughts on some or all of the above changes?
CC @lukemckinstry since you're doing the next release

@jjspace I'm thinking the problem here is that we run some build steps as a part of the test command. Perhaps we should come up with a better strategy for dependent tasks.
In the meantime, I think 1 –

add /Build/**/*.js.map to the .npmignore so it never gets published

– is the most straightforward to prevent this particular issue from showing up. Since it's relatively simple, I don't see why we shouldn't do it.

@jjspace it sounds like you have a solution for this, could you get it in by next Wednesday in advance of the next release?


Fix wording in code-walkthrough.md

Fix wording and number of parameters in code-walkthrough.md

Messages

:book:

Thanks for contributing to our documentation. We :heart: our documentarians!

:book:
:sparkles: Thanks for your contribution to Shields, @PaulaBarszcz!

  Generated by :no_entry_sign: dangerJS against 8f512254711d05db0576176b4de0ba11af3a7d61


Créer un rôle admin_cdb distinct du rôle admin

:tada: This issue has been resolved in version 1.65.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[Suggestion] Advance running isolate a bit when deploying

When running npx firebase deploy using firebase-tools-with-isolate, firebase-tools will still perform some checks before calling isolate. That way, if the package is not built yet (first run, fresh project, ./isolate folder empty, etc) then firebase-tools will throw errors like this:
Error: Could not detect runtime for functions at C:\Users\frani\IdeaProjects\cdljovemaju\functions\isolate

or
Error: could not deploy functions because the "functions\isolate" directory was not found. Please create it or specify a different source directory in firebase.json

If we run npx isolate before deploying, or add isolate to the predeploy tasks, the files will be up to date and the deploy will succeed.
My suggestion is that isolate, from firebase-tools-with-isolate, should be called before the initial checks that firebase-tools performs.

@Eufranio Thanks for reporting. Sounds like you're right. I will look into it but it might take me a while...


Fix example in README to actually work as intended

It's now also included as an actual compiled example.
Choose one: is this a 🐛 bug fix

Checklist

[x] tests pass
[x] tests and/or benchmarks are included
[x] documentation is changed or added

Will update, because it now won't work as is.

This is still relavant, right? Would it make sense to add this as a docmatic test?


How to use ATEPC for APC inference

Hi,
Thanks for creating this repo, it's very useful!
So I've created a ATEPC model, and now only want to do APC inference - is that possible?
Don't see that in the examples so far.
Thanks, Yi Peng

check this parameter: https://github.com/yangheng95/PyABSA/blob/058ae4ef2ac9d150da75dec534118b3125b1f78a/examples/aspect_term_extraction/extract_aspects.py#L40

We cannot use atepc model predict sentiment only now, it's a additional feature of atepc task.

I see, thanks for the clarification!
On Sat, 19 Jun 2021, 16:11 YangHeng, @.***> wrote:

We cannot use atepc model predict sentiment only now, it's a additional
feature of atepc task.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/yangheng95/PyABSA/issues/31#issuecomment-864373926,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKHA2KYHR6ZDMGDLEBOS4TDTTRGMXANCNFSM4662VLJA
.


Source code release?

Is there a plan to release the source code on this project? I'd like to test-drive it myself.

Hoping too!

Hi, I release the code now!
please enjoy it.
If you have any question in using it, please concact me.
Wechat<PHONE_NUMBER>0
Or my email in the readme.

@meteorshowers Thank you !

Thank you! 🙇

Thank you! 🙇 Would you be able to share some of your pre-trained models as well?

cannot import name 'StereoNet'，is that normal?

cannot import name 'StereoNet'，is that normal?

There is no StereoNet model in the code. The code is not complete.

@JVillella @zhixuanli @laxusvip @flamehaze1115
Hello, I update the code now.
Sorry for the late reply!
Enjoy yourself!


Nativefier should better validate arguments

Description
I tried to nativefy the website aminoapps.com with the flags: internal urls: "*." (all links will open in the app) and hide window frame. The command is working, I did this with youtube a month ago and it worked perfectly
Steps to reproduce issue
1: nativefier aminoapps.com -internal-urls "*." -hide-window-frame
Details

Are you nativefying a public website? Yes
Full nativefier command used to build your app: nativefier aminoapps.com -internal-urls "*." -hide-window-frame
Version of Nativefier (run nativefier --version): v7.6.7
Version of node.js (run node --version): v8.11.3
OS: Windows 10 64bit x84
Error message / stack trace (if any):

Downloading tmp-1944-0-electron-v-r-win32-x64.zip
Error: GET https://github.com/electron/electron/releases/download/v-r/electron-v-r-win32-x64.zip returned 404
Error: Failed to find Electron v-r for win32-x64 at https://github.com/electron/electron/releases/download/v-r/electron-v-r-win32-x64.zip
    at Request.<anonymous> (C:\Users\danie\AppData\Roaming\npm\node_modules\nativefier\node_modules\nugget\index.js:169:61)
    at emitOne (events.js:116:13)
    at Request.emit (events.js:211:7)
    at Request.onRequestResponse (C:\Users\danie\AppData\Roaming\npm\node_modules\nativefier\node_modules\request\request.js:1066:10)
    at emitOne (events.js:116:13)
    at ClientRequest.emit (events.js:211:7)
    at HTTPParser.parserOnIncomingClient (_http_client.js:543:21)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:112:17)
    at TLSSocket.socketOnData (_http_client.js:440:20)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
    at TLSSocket.Readable.push (_stream_readable.js:208:10)
    at TLSWrap.onread (net.js:597:20)

@PancakeGD nativefier --help says it's used like nativefier [options] <targetUrl>, not nativefier <targetUrl> [options]
So, nativefier --internal-urls '*.' --hide-window-frame aminoapps.com, not nativefier aminoapps.com -internal-urls "*." -hide-window-frame
Nativefier could/should do a better job at detecting bad options like these, and complaining rather than crashing (in a weird way). Renaming the issue to suggest this. @PancakeGD / passersby, PR welcome 🙂.

This is fixed in 8.0.4: with the above-mentioned example, Nativefier now shows the help page instead of crashing. Closing.

Damn, this is an old issue.


New Map extension

Maps with primitve wrapper types as keys can now be persisted

I like the change of the API for the extensions, but we might want some simpler APIs for common use cases in the future, but thats another issue I guess.

I've created an issue for that (#69).


Charm and skin changer ?

why don't you add charm and skin changer into Anubis ?
I believe it very important for a legit cheat. just a simple one is enough, no need multiple layers charm

its chams, not charms

just use osiris


Add event stream

Details
Adds an ADR proposing a couple of possible approaches to an event notification stream, along with a proposal about what the message format might look like.
I think Option 3 (telemetry) probably doesn't make sense, but I'd appreciate thoughts on Option 1 (specify notification mechanism) vs Option 2 (leave it up to implementations). For now I've done the implementation for Option 2, but Option 1 is a build on that.
Also, it might seem like AsyncAPI is the better fit for describing this, but it's quite high-friction for both HTTP webhooks and AWS EventBridge, which are the two possible implementations we've previously talked about, so using OpenAPI seemed the better approach for a spec.
I'd also appreciate thoughts on how Sources should work - see comments in the OpenAPI doc.
Pivotal Story (if relevant)
Story URL: https://www.pivotaltracker.com/story/show/187071067
Related PRs
N/A
Submitter PR Checks
(tick as appropriate)

[X] PR completes task/fixes bug
[X] API version has been incremented if necessary
[ ] ADR status has been updated, and ADR implementation has been recorded
[X] Documentation updated (README, etc.)
[X] PR added to Pivotal story (if relevant)
[ ] Follow-up stories added to Pivotal

Reviewer PR Checks
(tick as appropriate)

[ ] PR completes task/fixes bug
[ ] Design makes sense, and fits with our current code base
[ ] Code is easy to follow
[ ] PR size is sensible
[ ] Commit history is sensible and tidy

Info on PRs
The checks above are guidelines. They don't all have to be ticked, but they should all have been considered.

Similar to the HTTP object store choice, maybe a message format plus a implementation would help get some form consensus of what is needed? Something like Option 2 plus a simple example implementation, but not going as far as Option 1 just yet.

How's 8dcf44d for that?
Downside is it adds a bit of complexity to the API and it's a bit difficult to specify adequately in schema without being unduly prescriptive. But I think making it optional mitigates that a bit? Plus webhooks come with quite a few additional security considerations - I found https://webhooks.fyi/best-practices/webhook-providers#implement-security-on-egress-communication to be interesting reading.