🐛 Firebase Analytics: UnimplementedError: setDefaultEventParameters() is not implemented

Bug report
Describe the bug
The error
UnimplementedError: setDefaultEventParameters() is not implemented

is thrown when called on web
Steps to reproduce
Steps to reproduce the behavior:

Create a firebase web app with analytics
Call the method FirebaseAnalytics.instance.setDefaultEventParameters({"version":"1.0.0"});
See error thrown in console.

Expected behavior
Error is not thrown in console.
Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
PS C:\GitHub\stockpile> flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 2.5.3, on Microsoft Windows [Version 10.0.22000.318], locale en-AU)
[√] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
[√] Chrome - develop for the web
[√] Android Studio (version 2020.3)
[√] VS Code (version 1.62.3)
[√] Connected device (2 available)
• No issues found!

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
PS C:\GitHub\stockpile> flutter pub deps -- --style=compact
Dart SDK 2.14.4
Flutter SDK 2.5.3
stockpile 1.0.15
dependencies:

firebase_analytics 9.0.0 [firebase_analytics_platform_interface firebase_analytics_web firebase_core firebase_core_platform_interface flutter]
firebase_core 1.10.3 [firebase_core_platform_interface firebase_core_web flutter meta]
flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine]
flutter_localizations 0.0.0 [flutter intl characters clock collection meta path typed_data vector_math]
google_fonts 2.1.0 [flutter http path_provider crypto]
logging 1.0.2
package_info_plus 1.3.0 [flutter package_info_plus_platform_interface package_info_plus_linux package_info_plus_macos package_info_plus_windows package_info_plus_web]

dev dependencies:

cider 0.1.0 [args change klizma intl markdown marker path pub_semver version_manipulation yaml rfc_6901 pubspec_parse]
flutter_launcher_icons 0.9.2 [args image path yaml]
flutter_lints 1.0.4 [lints]
flutter_native_splash 1.3.2 [args image meta path xml yaml universal_io]
flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher meta source_span stream_channel string_scanner term_glyph typed_data]
integration_test 0.0.0 [flutter flutter_driver flutter_test path vm_service archive async boolean_selector characters charcode clock collection crypto fake_async file matcher meta source_span stack_trace stream_channel string_scanner sync_http term_glyph test_api typed_data vector_math webdriver]

transitive dependencies:

archive 3.1.2 [crypto path]
args 2.3.0
async 2.8.1 [collection meta]
boolean_selector 2.1.0 [source_span string_scanner]
change 0.3.0 [markdown marker pub_semver intl]
characters 1.1.0
charcode 1.3.1
checked_yaml 2.0.1 [json_annotation source_span yaml]
clock 1.1.0
collection 1.15.0
crypto 3.0.1 [collection typed_data]
fake_async 1.2.0 [clock collection]
ffi 1.1.2
file 6.1.2 [meta path]
firebase_analytics_platform_interface 3.0.0 [firebase_core flutter meta plugin_platform_interface]
firebase_analytics_web 0.4.0 [firebase_analytics_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins js]
firebase_core_platform_interface 4.2.0 [collection flutter meta plugin_platform_interface]
firebase_core_web 1.5.0 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
flutter_driver 0.0.0 [file flutter flutter_test fuchsia_remote_debug_protocol path meta vm_service webdriver archive async boolean_selector characters charcode clock collection crypto matcher platform process source_span stack_trace stream_channel string_scanner sync_http term_glyph test_api typed_data vector_math]
flutter_web_plugins 0.0.0 [flutter js characters collection meta typed_data vector_math]
fuchsia_remote_debug_protocol 0.0.0 [process vm_service file meta path platform]
http 0.13.4 [async http_parser meta path]
http_parser 4.0.0 [charcode collection source_span string_scanner typed_data]
image 3.1.0 [archive meta xml]
intl 0.17.0 [clock path]
js 0.6.3
json_annotation 4.4.0 [meta]
klizma 0.2.0
lints 1.0.1
markdown 4.0.1 [args charcode meta]
marker 0.2.2 [markdown]
matcher 0.12.10 [stack_trace]
meta 1.7.0
package_info_plus_linux 1.0.3 [package_info_plus_platform_interface flutter path]
package_info_plus_macos 1.3.0 [flutter]
package_info_plus_platform_interface 1.0.2 [flutter meta plugin_platform_interface]
package_info_plus_web 1.0.4 [flutter flutter_web_plugins http meta package_info_plus_platform_interface]
package_info_plus_windows 1.0.4 [package_info_plus_platform_interface ffi flutter win32]
path 1.8.0
path_provider 2.0.7 [flutter path_provider_android path_provider_ios path_provider_linux path_provider_macos path_provider_platform_interface path_provider_windows]
path_provider_android 2.0.9 [flutter path_provider_platform_interface]
path_provider_ios 2.0.7 [flutter path_provider_platform_interface]
path_provider_linux 2.1.2 [flutter path path_provider_platform_interface xdg_directories]
path_provider_macos 2.0.4 [flutter meta path_provider_platform_interface]
path_provider_platform_interface 2.0.1 [flutter meta platform plugin_platform_interface]
path_provider_windows 2.0.4 [ffi flutter meta path path_provider_platform_interface win32]
petitparser 4.4.0 [meta]
platform 3.0.0
plugin_platform_interface 2.0.2 [meta]
process 4.2.3 [file path platform]
pub_semver 2.1.0 [collection meta]
pubspec_parse 1.2.0 [checked_yaml collection json_annotation pub_semver yaml]
rfc_6901 0.1.0
sky_engine 0.0.99
source_span 1.8.1 [collection path term_glyph]
stack_trace 1.10.0 [path]
stream_channel 2.1.0 [async]
string_scanner 1.1.0 [charcode source_span]
sync_http 0.3.0
term_glyph 1.2.0
test_api 0.4.2 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph matcher]
typed_data 1.3.0 [collection]
universal_io 2.0.4 [collection crypto meta typed_data]
vector_math 2.1.0
version_manipulation 0.1.0 [pub_semver]
vm_service 7.1.1
webdriver 3.0.0 [archive matcher path stack_trace sync_http]
win32 2.3.1 [ffi]
xdg_directories 0.2.0 [meta path process]
xml 5.3.1 [collection meta petitparser]
yaml 3.1.0 [collection source_span string_scanner]

Checked on latest master wherein, I don't get the said log, but getting the same on latest stable:
Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  FirebaseAnalytics.instance.setDefaultEventParameters({"version":"1.0.0"});
  await Firebase.initializeApp(

 console error log

Error: UnimplementedError: setDefaultEventParameters() is not implemented
    at Object.throw_ [as throw] (http://localhost:53138/dart_sdk.js:5063:11)
    at firebase_analytics_web.FirebaseAnalyticsWeb.new.setDefaultEventParameters
    (http://localhost:53138/packages/firebase_analytics_platform_interface/src/platform_interface/platform_interface_firebase_analytics.dart.lib.js:131:17)
    at firebase_analytics.FirebaseAnalytics.__.setDefaultEventParameters (http://localhost:53138/packages/firebase_analytics/firebase_analytics.dart.lib.js:118:31)
    at setDefaultEventParameters.next (<anonymous>)
    at runBody (http://localhost:53138/dart_sdk.js:40211:34)
    at Object._async [as async] (http://localhost:53138/dart_sdk.js:40242:7)
    at firebase_analytics.FirebaseAnalytics.__.setDefaultEventParameters (http://localhost:53138/packages/firebase_analytics/firebase_analytics.dart.lib.js:117:20)
    at main (http://localhost:53138/packages/triage/main.dart.lib.js:818:53)
    at main.next (<anonymous>)
    at runBody (http://localhost:53138/dart_sdk.js:40211:34)
    at Object._async [as async] (http://localhost:53138/dart_sdk.js:40242:7)
    at main$ (http://localhost:53138/packages/triage/main.dart.lib.js:816:18)
    at main (http://localhost:53138/web_entrypoint.dart.lib.js:37:29)
    at main.next (<anonymous>)
    at http://localhost:53138/dart_sdk.js:40192:33
    at _RootZone.runUnary (http://localhost:53138/dart_sdk.js:40062:59)
    at _FutureListener.thenAwait.handleValue (http://localhost:53138/dart_sdk.js:34983:29)
    at handleValueCallback (http://localhost:53138/dart_sdk.js:35551:49)
    at Function._propagateToListeners (http://localhost:53138/dart_sdk.js:35589:17)
    at _Future.new.[_completeWithValue] (http://localhost:53138/dart_sdk.js:35437:23)
    at http://localhost:53138/dart_sdk.js:34617:46
    at _RootZone.runUnary (http://localhost:53138/dart_sdk.js:40062:59)
    at _FutureListener.then.handleValue (http://localhost:53138/dart_sdk.js:34983:29)
    at handleValueCallback (http://localhost:53138/dart_sdk.js:35551:49)
    at Function._propagateToListeners (http://localhost:53138/dart_sdk.js:35589:17)
    at _Future.new.[_completeWithValue] (http://localhost:53138/dart_sdk.js:35437:23)
    at async._AsyncCallbackEntry.new.callback (http://localhost:53138/dart_sdk.js:35458:35)
    at Object._microtaskLoop (http://localhost:53138/dart_sdk.js:40330:13)
    at _startMicrotaskLoop (http://localhost:53138/dart_sdk.js:40336:13)
    at http://localhost:53138/dart_sdk.js:35811:9

 stable flutter doctor -v
[✓] Flutter (Channel stable, 2.8.0, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-GB)
    • Flutter version 2.8.0 at /Users/dhs/documents/fluttersdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision cf44000065 (10 hours ago), 2021-12-08 14:06:50 -0800
    • Engine revision 40a99c5951
    • Dart version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 30)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Users/dhs/Library/Android/sdk
    • Java binary at: /Users/dhs/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/202.7486908/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Users/dhs/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/202.7486908/Android
      Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.57.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (4 available)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 93.0.4577.82

• No issues found!

Checked on latest master wherein, I don't get the said log, but getting the same on latest stable:
Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  FirebaseAnalytics.instance.setDefaultEventParameters({"version":"1.0.0"});
  await Firebase.initializeApp(

console error log
stable flutter doctor -v

It happens on web - but this is intended since this method is not supported on web - we're sorting a PR to make the error message more explicitly say it's not supported on web - but for this issue I'd say it's working as intended

Would be good to suggest that in the docs: https://firebase.flutter.dev/docs/analytics/usage#default-parameters
Can I ask why is it not supported? Is there a fundamental reason or is it just yet to be implemented?
Thanks for your time.

@ted-marozzi It's not supported by the underlying web firebase-js -sdk. Will update documentation as you suggested.

For anyone that arrives here wanting this feature, I opened an issue on the firebase-js-sdk which you can thumbs up.


[General][All] Add Description for all notebooks

In every notebook, we need to give a brief of our repository so anyone going through any lab would know the contents of our repository and can explore the materials. We also need to provide relevant references so that anyone interested will become aware of our Hackathons.
For example, at the end of this Notebook
I found the following lines with relevant hyperlinks.

Examples and tutorials
Here are some examples for using distribution strategy with custom training loops:

Tutorial to train MNIST using MirroredStrategy.
Guide on training MNIST using TPUStrategy.
TensorFlow Model Garden repository containing collections of state-of-the-art models implemented using various strategies.

Which made me curious to check out their repository and the collection of models they have.
So if we can add a couple of lines about what we do in our repository and hackathons, more people would be aware of our work and interested people could contact us.

https://github.com/gpuhackathons-org/gpubootcamp/pull/62


Question about truncation trick in Big GAN.

I think the PyTorch implementation slightly differs from that from Tensorflow Hub w.r.t. truncation trick. Here is the situation: when I set truncation as 1, these two models (tf model v.s. pth model converted from tf model) produce same results. However, it no longer holds when truncation is less than 1.
According to the code on https://colab.research.google.com/github/tensorflow/hub/blob/master/examples/colab/biggan_generation_with_tf_hub.ipynb, the truncation factor not only works on the input latent vector, but is also passed to the module by a placeholder. Differently, in this PyTorch version, truncation factor only affects the input noise z in sample.py.
I have also found that the following two settings give same outputs:
(1) With Tensorflow Hub,
z = 0.02 * truncnorm.rvs(-2, 2, size=(1, dim_z), random_state=np.random.RandomState(0))
truncation = 1.0

(2) With PyTorch,
z = 0.02 * truncnorm.rvs(-2, 2, size=(1, dim_z), random_state=np.random.RandomState(0))

But the following two settings give different syntheses:
(3) With Tensorflow Hub,
z = 0.02 * truncnorm.rvs(-2, 2, size=(1, dim_z), random_state=np.random.RandomState(0))
truncation = 0.02

(4) With PyTorch,
z = 0.02 * truncnorm.rvs(-2, 2, size=(1, dim_z), random_state=np.random.RandomState(0))

Would you please help me figure this thing out? I want to know how the official Big GAN play the truncation trick besides truncating the latent code. BTW, I experimented on the 512x512 BigGAN model (https://tfhub.dev/deepmind/biggan-512/2).

Hi ShenYujun,
The difference is that the TFHub version has a pre-computed set of BatchNorm statistics that it uses depending on the truncation level, as the distribution of activations will vary as the statistics of the latent vector are changed. As mentioned in the README in this repo's TFHub folder, this port does not support this particular setting, and you will need to accumulate new stats yourself in order to use truncation.


How to configure & encrypt root EBS volume?

Is your request related to a new offering from AWS?
Is this functionality available in the AWS provider for Terraform? See CHANGELOG.md, too.

No 🛑: please wait to file a request until the functionality is avaialble in the AWS provider
Yes ✅: please list the AWS provider version which introduced this functionality

Is your request related to a problem? Please describe.

For self-managed node group, there used to be a variable called root_encrypted and root_kms_key_id inside launch config default map.
Now launch config is replaced with launch template, I can find only block_device_mappings: https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/examples/self_managed_node_group/main.tf#L229
Is this block_device_mappings for custom EBS volume? I'm assuming so because in the example, non-complete node groups don't specify this block device mapping: https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/examples/self_managed_node_group/main.tf#L107-L163
If this block_device_mappings is not for root EBS volume, how can I configure encryption of the root EBS volume? Or has AWS changed it so that root EBS volume is encrypted by default?
_
Describe the solution you'd like.

Describe alternatives you've considered.

Additional context

Correct - you should use block_device_mappings to enable this

You mean even for root EBS volume?

you can look up the root device volume for the instance you are using to get these details - see more here https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/RootDeviceStorage.html

I see. I have integrated the latest AWS EKS module codes and ran terraform plan, and EKS cluster needs to be replaced (create replacement and destroy).
Are there non-disruptive way to integrate new version of EKS module without deleting? Replacing will cause serious downtime where I need to manually install bunch of stuff to EKS cluster again (CA, Istio, and apps).
Here is the terraform plan output:
 # module.eks.module.eks_cluster.aws_eks_cluster.this[0] must be replaced
+/- resource "aws_eks_cluster" "this" {
      ~ arn                       = "arn:aws:eks:us-east-1:xxxx:cluster/xxx" -> (known after apply)
      ~ certificate_authority     = [
          - {
              - data = "xxxx"
            },
        ] -> (known after apply)
      ~ created_at                = "2021-01-04 19:43:03.467 +0000 UTC" -> (known after apply)
        enabled_cluster_log_types = [
            "api",
            "audit",
            "authenticator",
            "controllerManager",
            "scheduler",
        ]
      ~ endpoint                  = "https://xxxx.gr7.us-east-1.eks.amazonaws.com" -> (known after apply)
      ~ id                        = "xxxx" -> (known after apply)
      ~ identity                  = [
          - {
              - oidc = [
                  - {
                      - issuer = "https://oidc.eks.us-east-1.amazonaws.com/id/xxxx"
                    },
                ]
            },
        ] -> (known after apply)
        name                      = "xxxx"
      ~ platform_version          = "eks.7" -> (known after apply)
      ~ role_arn                  = "arn:aws:iam::xxxx:role/xxxx202101041851yyyy -> (known after apply) # forces replacement
      ~ status                    = "ACTIVE" -> (known after apply)
        tags                      = {
            "Application"                                               = "xxxx"
            "Environment"                                               = "prod"
            "k8s.io/cluster-autoscaler/xxxx" = "true"
            "kubernetes.io/cluster/xxxx"     = "shared"
        }
        tags_all                  = {
            "Application"                                               = "xxxx"
            "Environment"                                               = "prod"
            "k8s.io/cluster-autoscaler/xxxx" = "true"
            "kubernetes.io/cluster/xxxx"     = "shared"
        }
        version                   = "1.19"

        encryption_config {
            resources = [
                "secrets",
            ]

            provider {
                key_arn = "arn:aws:kms:us-east-1:xxxx:key/xxxx"
            }
        }

      ~ kubernetes_network_config {
          ~ ip_family         = "ipv4" -> (known after apply)
          ~ service_ipv4_cidr = "<IP_ADDRESS>/16" -> (known after apply)
        }

      ~ timeouts {
          - create = "30m" -> null
          - delete = "15m" -> null
        }

      ~ vpc_config {
          ~ cluster_security_group_id = "sg-xxxx" -> (known after apply)
            endpoint_private_access   = false
            endpoint_public_access    = true
            public_access_cidrs       = [
                "<IP_ADDRESS>/0",
            ]
          ~ security_group_ids        = [
              - "sg-xxxx",
            ] -> (known after apply) # forces replacement
            subnet_ids                = [
                "subnet-xxxx",
                "subnet-xxxx",
                "subnet-xxxx",
                "subnet-xxxx",
            ]
          ~ vpc_id                    = "vpc-xxxx" -> (known after apply)
        }
    }

Since two days ago, older version of EKS module stop working (data for fetching AMI no longer returns AMI, hence can't do terraform apply).

I don't follow - what exactly is your question?
Here is where Terraform is telling you whats forcing the replacement so you should focus there
 ~ security_group_ids = [
       - "sg-xxxx",
   ] -> (known after apply) # forces replacement

Closing for now - please feel free to provide additional details if your question was not answered or open a new issue if you are facing a different issue

hi @bryantbiggs,

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/RootDeviceStorage.html

Sorry to re-open an archived thread. I can't seem to get this to work. I've opened up a testing eks and tried to get an eks managed node group up and running having the root volume encrypted as well.
As following:
  eks_managed_node_groups = {
    thor = {
      min_size     = 2
      max_size     = 3
      desired_size = 2

      instance_types = ["t3.micro"]
      capacity_type  = "SPOT"
      block_device_mappings = {
        xvda = {
          device_name = "/dev/xvda"
          ebs = {
            volume_size           = 20
            volume_type           = "gp3"
            encrypted             = true
            kms_key_id            = aws_kms_key.qa_eks.arn
            delete_on_termination = false
          }
        }
      }
    }
  }

Computer says NO.
So what am I doing wrong in here, or is the functionality simply not there right now and would it be a feature request,  or something I'd have to code and merge-request myself?
The EKS documentation in the README.md is very sparse when it comes to the block_device_mappings.
Perhaps you can send a sample to learn from?

Hey there, I was running into this issue as well, but discovered a difference in my config helped actually respect the block_device_mappings. I have one node group where the block device mappings aren't respected:
    bottlerocket_encrypted = {
      create_launch_template = false
      launch_template_name   = ""

      ami_type = "BOTTLEROCKET_x86_64"
      platform = "bottlerocket"

      block_device_mappings = {
        xvdb = {
          device_name = "/dev/xvdb"
          ebs = {
            volume_size           = 50
            volume_type           = "gp3"
            iops                  = 150
            encrypted             = true
            kms_key_id            = aws_kms_key.eks.arn
            delete_on_termination = true
          }
        }
      }

      desired_size = var.bottlerocket_nodes_desired
      min_size     = var.bottlerocket_nodes_min
      max_size     = var.bottlerocket_nodes_max
    }

And I added a new node group that is having its mappings respected:
    br_encrypted_v2 = {
      ami_type = "BOTTLEROCKET_x86_64"
      platform = "bottlerocket"

      block_device_mappings = {
        xvdb = {
          device_name = "/dev/xvdb"
          ebs = {
            volume_size           = 50
            volume_type           = "gp3"
            iops                  = 150
            encrypted             = true
            kms_key_id            = aws_kms_key.eks.arn
            delete_on_termination = true
          }
        }
      }

      desired_size = var.bottlerocket_nodes_desired
      min_size     = var.bottlerocket_nodes_min
      max_size     = var.bottlerocket_nodes_max
    }

I think the mapping was ignored due to the fact that I wasn't creating my own launch template, but letting EKS do it for me.


fix(docs): Add userID groupID parameters to docker call

Without this parameter, the directory .devcontianer (and all files created in it) will belong to root. Thus changes to those files from within your IDE will be difficult.
Closes #3
Closes qdm12/rustdevcontainer#4

Moien Quentin,
I took the liberty to add the uid / gid parameters to your README.


chore:  move to One Big Cargo Workspace

This commit changes the Cargo workspace setup to put all crates in One
Big Workspace, rather than having separate workspaces for some targets.
We now use the per-package-target unstable cargo feature to build
different crates for different targets. This means that cargo commands
in the root workspace now work without requiring the user to cd into a
particular directory to build a platform target --- for example, I can
now run:
# in the repo root directory
$ cargo build -p mnemos-d1 --bin mq-pro

and build a MnemOS binary for the MQ Pro, without having to cd into
the MQ Pro directory.
This is also necessary in order to make the x86_64 build process added
in PR #216 work, since it relies on cargo artifact dependencies, which
appear not to work across workspaces.
One issue is that cargo build --workspace (and check --workspace,
etc) still does not work correctly, due to some weird issues
with feature unification which I don't entirely understand. However, as
a workaround, I've changed the workspace Cargo.toml to add a
default-members field, so that running cargo build or cargo check
without --workspace will build the subset of crates in the
default-members key. This way, cargo {build, check, etc} in the repo
root will do something reasonable by default, and the actual platform
targets can be built/checked with cargo $WHATEVER --package $CRATE.
IMO, this is still substantially nicer than having a bunch of separate
workspaces.

Overall LGTM, it would be nice to document somewhere the nightly cargo trickery we are using and why, and link to the related tracking issues so we know when we can get rid of them, but if it still works and produces valid binaries for the various targets, no objections here.

Mostly, we are just using features that haven't yet been stabilized. These aren't workarounds for bugs, per se. I'm happy to add links to the tracking issues for those features.

@jamesmunns https://github.com/tosc-rs/mnemos/pull/219/commits/069c07aca23559e3d0f1d8a0e3e217d33e5b17a1 adds comments explaining the various unstable features & stuff.


[salesforce-search] Stay logged in

Extension
https://www.raycast.com/sven/salesforce
Description
I have to login to salesforce multiple times per day. I've tried all kinds of salesforce settings and couldn't figure out a way to stop it. A co-worker is using https://www.scratchpad.com/ which never gets logged out. Would be great if someone can reproduce this behaviour here.
cc @joshknowles @pernielsentikaer
Who will benefit from this feature?
Every Salesforce user!
Anything else?
No response

Hm, for me, the login is working for multiple days, but I'm not sure which Salesforce settings are influencing this. I get an access and a refresh token from Salesforce. If the access token expires, I get a new one using the refresh token. If the refresh token also expired, a relogin is necessary. Normal OAuth flow. Not much I can do about it.


Will the dataset used in this paper be made public?

I have noticed that this paper has created a dataset that includes both fruits and robots. Will this dataset be made public, including the visual-inertial information and the robot's ground truth data?

Sorry for the very late reply.
We have recently provided a public dataset and benchmark on fruit shape completion in the greenhouse. The RGB-D images, instance labels of the fruits and the camera poses of the robot are provided. The ground truth shape point clouds measured by the handheld scanner are also provided for the training split.
For more details, please check the report: https://arxiv.org/pdf/2407.13304
and the dataset webpage: https://www.ipb.uni-bonn.de/data/shape_completion/index.html


loosing the SkypeTextMsg object when itterating through the list of msgs

i want to delete all the messages of all conversations that are older than 48 hours
but when i want to itterate over a list of messages and delete i cannot delete the messages please have a look at my code.
when iam itterating at filer_old_messages
for msg in msgs:
msg
the value of msg i am getting is this:
[SkypeTextMsg]
Id:<PHONE_NUMBER>220
Type: RichText
Time: 2020-11-23 11:20:05.596000
ClientId:<PHONE_NUMBER>8127693454
UserId: live:.cid.8ed3804eae146773
ChatId: 8:alyboghani
Content:
what value of msg i think i need is this:
SkypeTextMsg(id='1606130410220', type='RichText', time=datetime.datetime(2020, 11, 23, 11, 20, 5, 596000), clientId='11201302558127693454', userId='live:.cid.8ed3804eae146773', chatId='8:alyboghani', content='')
i think iam loosing the object of class SkypeTextMsg and getting raw data i looked ,
i donot know how can i reconstruct the object from raw data to make it able to delete kindly help
Account type  --- normal user
<!--
from skpy import Skype
from datetime import datetime , timedelta
import time

class Skype_:
    def __init__(self,username,password):
        self.username = username
        self.password = password
        self.sk = Skype(self.username, self.password)

    def get_conversation_id_list(self):
        contacts_list = []

        for contact in self.sk.contacts:
            contacts_list.append(self.sk.contacts[contact.id].chat.id)

        return contacts_list

    def get_conversation_msgs(self, contact_id):
        conversation = []
        while True:
            time.sleep(1)
            msgs = None
            msgs = self.sk.chats[contact_id].getMsgs()

            if msgs == []:
                for i in range(10):
                    msgs = self.sk.chats[contact_id].getMsgs()
                    if msgs == []:
                        pass
                    else:
                            for msg in msgs:
                                 conversation.append(msg)
                break

            else:
                for msg in msgs:
                                 conversation.append(msg)
        return conversation

    def filter_conversation_old_msgs(self):
       now_time = datetime.now() - timedelta(hours=48)
        conversation_ids = self.get_conversation_id_list()

        for Id in conversation_ids:
            try:
                print('\n\n---------- :')
                msgs = self.get_conversation_msgs(Id)
               for msg in msgs:
                     if msgs.time < now_time:
                                   msg.delete()

            except:
                print(f"\n\n\nError Occured ------------- {id}\n\n\n")

obj = Skype_('username,password')

obj.filter_conversation_old_msgs()

As far as I can see, you've not lost anything, those are both representations of the same message object -- most SkPy objects provide a read-friendly output when str()'d, presumably you are print()ing it in the first case:
>>> msg
SkypeTextMsg(id='1606130410220', ...)

>>> print(msg)
[SkypeTextMsg]
Id:<PHONE_NUMBER>220
...

As far as I can see, you've not lost anything, those are both representations of the same message object -- most SkPy objects provide a read-friendly output when str()'d, presumably you are print()ing it in the first case:
>>> msg
SkypeTextMsg(id='1606130410220', ...)

>>> print(msg)
[SkypeTextMsg]
Id:<PHONE_NUMBER>220
...

Then can you please try my script and tell me what you think? Why i can't
delete all the older msgs for all conversations kindly help fix that bug
On Thu, Jan 28, 2021, 9:02 PM Terrance<EMAIL_ADDRESS>wrote:

As far as I can see, you've not lost anything, those are both
representations of the same message object -- most SkPy objects provide a
read-friendly output when str()'d, presumably you are print()ing it in
the first case:

msgSkypeTextMsg(id='1606130410220', ...)

print(msg)
[SkypeTextMsg]Id:<PHONE_NUMBER>220
...

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Terrance/SkPy/issues/165#issuecomment-769187482, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AL2GTSZCIOJM4UURXN7V2D3S4GDBFANCNFSM4WXBENLQ
.

Then can you please try my script and tell me what you think? Why i can't
delete all the older msgs for all conversations kindly help fix that bug
On Thu, Jan 28, 2021, 9:02 PM Terrance<EMAIL_ADDRESS>wrote:

As far as I can see, you've not lost anything, those are both
representations of the same message object -- most SkPy objects provide a
read-friendly output when str()'d, presumably you are print()ing it in
the first case:

msgSkypeTextMsg(id='1606130410220', ...)

print(msg)
[SkypeTextMsg]Id:<PHONE_NUMBER>220
...

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Terrance/SkPy/issues/165#issuecomment-769187482, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AL2GTSZCIOJM4UURXN7V2D3S4GDBFANCNFSM4WXBENLQ
.

https://pastebin.com/GWNHZh7M

https://pastebin.com/GWNHZh7M

from skpy import Skype
from datetime import datetime , timedelta
import time
class Skype_:
def init(self,username,password):
self.username = username
self.password = password
self.sk = Skype(self.username, self.password)
def get_conversation_id_list(self):
    contacts_list = []

    for contact in self.sk.contacts:
        contacts_list.append(self.sk.contacts[contact.id].chat.id)

    return contacts_list

def get_conversation_msgs(self, contact_id):
    conversation = []
    while True:
        time.sleep(1)
        msgs = None
        msgs = self.sk.chats[contact_id].getMsgs()

        if msgs == []:
            for i in range(10):
                msgs = self.sk.chats[contact_id].getMsgs()
                if msgs == []:
                    pass
                else:
                    for msg in msgs:
                        conversation.append(msg)
            break

        else:
            for msg in msgs:
                conversation.append(msg)

    return conversation

def filter_conversation_old_msgs(self):
    conversation_ids = self.get_conversation_id_list()
    now_time = datetime.now() - timedelta(hours=48)

    for id in conversation_ids:
        try:
            print('\n\n---------- :',id)
            msgs = self.get_conversation_msgs(id)

            for msg in msgs:
                if msg.time <now_time:
                    print(msg)
                    # msg.delete()
                    # print(msg.content, ' ------  ', msg.time)

        except:
            print(f"\n\n\nError Occured ------------- {id}\n\n\n")
        break

obj = Skype_(username,password)

from skpy import Skype
from datetime import datetime , timedelta
import time
class Skype_:
def init(self,username,password):
self.username = username
self.password = password
self.sk = Skype(self.username, self.password)
def get_conversation_id_list(self):
    contacts_list = []

    for contact in self.sk.contacts:
        contacts_list.append(self.sk.contacts[contact.id].chat.id)

    return contacts_list

def get_conversation_msgs(self, contact_id):
    conversation = []
    while True:
        time.sleep(1)
        msgs = None
        msgs = self.sk.chats[contact_id].getMsgs()

        if msgs == []:
            for i in range(10):
                msgs = self.sk.chats[contact_id].getMsgs()
                if msgs == []:
                    pass
                else:
                    for msg in msgs:
                        conversation.append(msg)
            break

        else:
            for msg in msgs:
                conversation.append(msg)

    return conversation

def filter_conversation_old_msgs(self):
    conversation_ids = self.get_conversation_id_list()
    now_time = datetime.now() - timedelta(hours=48)

    for id in conversation_ids:
        try:
            print('\n\n---------- :',id)
            msgs = self.get_conversation_msgs(id)

            for msg in msgs:
                if msg.time <now_time:
                    print(msg)
                    # msg.delete()
                    # print(msg.content, ' ------  ', msg.time)

        except:
            print(f"\n\n\nError Occured ------------- {id}\n\n\n")
        break

obj = Skype_(username,password)

<EMAIL_ADDRESS>you can send me the debugged code  here

<EMAIL_ADDRESS>you can send me the debugged code  here

Quoting the more relevant part not included here:
> # when you call j[0]
# you will get
'''SkypeTextMsg(id='1608795158242', ...)
        '''
# but when you itterate over this j list the data will be messed up and you cannot call functions like j[0].delete()
'''
    for i in j:
        i.delete()    this will raise error
        '''

You haven't specified what the error is.  When you do, include a full traceback rather than just printing the error.
At first glance, get_conversation_msgs() returns a plain Python list, so if you can access items by index without issue, but not by iteration, then there's a more fundamental problem that your code isn't illustrating.
However:

you can send me the debugged code here

I am not here to debug your code.  This is the place to report bugs and request help with the library, not with general use of Python.  Consider asking for help somewhere like discuss.python.org or pythondiscord.com.

Quoting the more relevant part not included here:
> # when you call j[0]
# you will get
'''SkypeTextMsg(id='1608795158242', ...)
        '''
# but when you itterate over this j list the data will be messed up and you cannot call functions like j[0].delete()
'''
    for i in j:
        i.delete()    this will raise error
        '''

You haven't specified what the error is.  When you do, include a full traceback rather than just printing the error.
At first glance, get_conversation_msgs() returns a plain Python list, so if you can access items by index without issue, but not by iteration, then there's a more fundamental problem that your code isn't illustrating.
However:

you can send me the debugged code here

I am not here to debug your code.  This is the place to report bugs and request help with the library, not with general use of Python.  Consider asking for help somewhere like discuss.python.org or pythondiscord.com.

sorry for the inappropriate information let me come to the point
now i cannot delete the message i myself observed that the script can delete the ' sent messages ' but now the ' received messages '
skype_task - Jupyter Notebook.pdf

sorry for the inappropriate information let me come to the point
now i cannot delete the message i myself observed that the script can delete the ' sent messages ' but now the ' received messages '
skype_task - Jupyter Notebook.pdf

I read the deleteRaw function in which you are doing edit msg = empty , thats why i can't delete recieved messages because i don't have permisions to edit the other's messages

I read the deleteRaw function in which you are doing edit msg = empty , thats why i can't delete recieved messages because i don't have permisions to edit the other's messages

skype_task - Jupyter Notebook.pdf

You've just leaked your Skype account username and password.  You'd best change your password ASAP.

the deleteRaw function in which you are doing edit msg = empty

That was the old way of deleting messages; you can see in your traceback that this is no longer the case and it sends a proper delete request:
~\anaconda3\lib\site-packages\skpy\chat.py in sendRaw(self, editId, **kwargs)
    132                 arriveTime = self.editRaw(editId, msg)
    133             else:
--> 134                 arriveTime = self.deleteRaw(editId)
    135         else:
    136             # Skype timestamps are integers and in milliseconds, whereas Python's are floats and in seconds.

~\anaconda3\lib\site-packages\skpy\chat.py in deleteRaw(self, msgId)
     92
     93    def deleteRaw(self, msgId):
-->  94         resp = self.skype.conn("DELETE", "{0}/users/ME/conversations/obj.filter_conversation_old_msgs()
     95                                          .format(self.skype.conn.msgsHost, self.id, msgId),
     96                                auth=SkypeConnection.Auth.RegToken)

...and that's coming back as unauthorised.  Does Skype even let you delete received messages?  The Skype for Web UI doesn't show an option for it; where sent messages have a Remove option, received have Report in its place.  If Skype itself doesn't support this then there's nothing we can do about it.

skype_task - Jupyter Notebook.pdf

You've just leaked your Skype account username and password.  You'd best change your password ASAP.

the deleteRaw function in which you are doing edit msg = empty

That was the old way of deleting messages; you can see in your traceback that this is no longer the case and it sends a proper delete request:
~\anaconda3\lib\site-packages\skpy\chat.py in sendRaw(self, editId, **kwargs)
    132                 arriveTime = self.editRaw(editId, msg)
    133             else:
--> 134                 arriveTime = self.deleteRaw(editId)
    135         else:
    136             # Skype timestamps are integers and in milliseconds, whereas Python's are floats and in seconds.

~\anaconda3\lib\site-packages\skpy\chat.py in deleteRaw(self, msgId)
     92
     93    def deleteRaw(self, msgId):
-->  94         resp = self.skype.conn("DELETE", "{0}/users/ME/conversations/obj.filter_conversation_old_msgs()
     95                                          .format(self.skype.conn.msgsHost, self.id, msgId),
     96                                auth=SkypeConnection.Auth.RegToken)

...and that's coming back as unauthorised.  Does Skype even let you delete received messages?  The Skype for Web UI doesn't show an option for it; where sent messages have a Remove option, received have Report in its place.  If Skype itself doesn't support this then there's nothing we can do about it.

Sir can we report spam msgs ?

Sir can we report spam msgs ?

SkPy doesn't implement reporting messages, no.  Bulk-reporting all messages in a conversation will probably be seen as abuse and/or will end up flagging the other user, so it's not a sensible solution for removing conversation history.

SkPy doesn't implement reporting messages, no.  Bulk-reporting all messages in a conversation will probably be seen as abuse and/or will end up flagging the other user, so it's not a sensible solution for removing conversation history.

Ok, thanks.
On Fri, Jan 29, 2021, 3:34 AM Terrance<EMAIL_ADDRESS>wrote:

SkPy doesn't implement reporting messages, no. Bulk-reporting all messages
in a conversation will probably be seen as abuse and/or will end up
flagging the other user, so it's not a sensible solution for removing
conversation history.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Terrance/SkPy/issues/165#issuecomment-769444109, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AL2GTS5XBVHD4ALINWGKZJDS4HRAZANCNFSM4WXBENLQ
.

Ok, thanks.
On Fri, Jan 29, 2021, 3:34 AM Terrance<EMAIL_ADDRESS>wrote:

SkPy doesn't implement reporting messages, no. Bulk-reporting all messages
in a conversation will probably be seen as abuse and/or will end up
flagging the other user, so it's not a sensible solution for removing
conversation history.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Terrance/SkPy/issues/165#issuecomment-769444109, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AL2GTS5XBVHD4ALINWGKZJDS4HRAZANCNFSM4WXBENLQ
.

sir another thing sir the script is now deleting all my sent messages that are older than 48 hours working fine but its not deleting my sent messages from groups do you know why its not deleting them?
New Text Document.txt

sir another thing sir the script is now deleting all my sent messages that are older than 48 hours working fine but its not deleting my sent messages from groups do you know why its not deleting them?
New Text Document.txt

its not deleting my sent messages from groups do you know why its not deleting them?

Because you're iterating over contacts, not groups.  Moved to #167.

its not deleting my sent messages from groups do you know why its not deleting them?

Because you're iterating over contacts, not groups.  Moved to #167.


Updated README expansion title

Closes #353
Code Changes

[ ] updated README.md with <summary> tag update in step 4

Steps to Confirm

[ ] read the README for flow and reduced repetition

Pre-Merge Checklist

[ ] All CI Pipelines Succeeded
[ ] Documentation Updated

Description Of Changes
updating README with feedback from @banagale to reduce repetition and increase readability

@iamkelllly anything I can do to help get this merged?

@banagale re-requested your review here, also ccing @conceptualshark to review as well!

Thank you for opening this issue and the readability review @banagale - Looking forward to more contributions from you :)


feature(create_cmd): use --plugins=goimports+mock+swagger to enable plugins

use --plugins=goimports+mock+swagger to enable plugins list, instead of original --mock, --swagger options.
based on this refactor, we can extend gorpc-cli's functionalities more easily.

close #15


Create GHA workflow

Add a workflow to ops (or create a reusable workflow in skrooge?) that can be triggered manually and pass in the various options as inputs.
I could see getting a comment-driven workflow going: /skrooge estimate -i c2-standard-30 -r 16 -c 2000 -m 3072 and it responds with an estimate after running the GHA

Super-mega bonus points: figure out how to pull enough information from a PR changing a single k8s value (eg. changing the replica count) in order to get a skrooge estimate

Previous art - install sentry-kube, render.. this could be enough to get the info for running skrooge: https://github.com/getsentry/ops/blob/master/.github/workflows/diff-k8s-render.yaml

Alternatively leverage materialized manifests (snuba-only currently) and use that to push for more manifests across our services.

All services have materialized manifests now.


Can't select blobs using NVDA

Storage Explorer Version:
OS Version:
Steps to Reproduce:

Expected Experience:
Actual Experience:
I opened a blob container and seem to be able to navigate the table displaying the list of blobs in this container, but don't seem to be able to actually select the one I believe I've selected.
In my particular case, I only have 2 blobs in the container, one is an image, the other is a plain text file. I want to open the text file but every time I try to open the context menu when I hear the row representing the plain text file spoken and then select open to view the contents, I am always presented with a standard windows dialog asking whether I want to open image files using whatever.
When I select the properties menu, the image blob properties are displayed, so I'm assuming that the first blob is selected. However, I can't find any way to select the second blob.
I'm using the latest version of NVDA (2018.1.1)  on Windows 10

Fixing this will close:

https://msdata.visualstudio.com/Cosmos/_workitems/edit/120385
https://msdata.visualstudio.com/Cosmos/_workitems/edit/120429
https://msdata.visualstudio.com/Cosmos/_workitems/edit/125316
https://msdata.visualstudio.com/Cosmos/_workitems/edit/120413
https://msdata.visualstudio.com/Cosmos/_workitems/edit/123415
https://msdata.visualstudio.com/Cosmos/_workitems/edit/123416
https://msdata.visualstudio.com/Cosmos/_workitems/edit/120975
https://msdata.visualstudio.com/Cosmos/_workitems/edit/120385
https://msdata.visualstudio.com/Cosmos/_workitems/edit/125331
https://msdata.visualstudio.com/Cosmos/_workitems/edit/125333

Hey @blindfrustratio , please let us know of any feedback you have regarding the improved experience with the table of blobs. Thanks!


rework the Item pickup text UI to be a general event log

move the text UI out to its own module with an event listener. it should dismiss events after their time has passed and fade out events in the log

Closed by b20d53a5ca0fb36cbe07e8e55a97aa26eb9db2ff


Added options for more prefix mangling

Now you can specify more prefix handling if you don't e.g. want the same
prefix for all hosts going through this collector.
NOTE: The default behaviour stays the same, but if you are using
prefixes you will need to update your configuration data.

Thanks!
Updating some README.md, removing the unused collectd_set_graphite_prefix from defaults and adding testing of this in https://github.com/CSC-IT-Center-for-Science/ansible-role-collectd/tree/test_prefixes


Investigate and possibly add the ability to manage multi-tenancy

We can take inspiration from Hibernate multi-tenancy support described here https://www.baeldung.com/hibernate-5-multitenancy

There is tenant middleware
https://twinlogix.github.io/typetta/chapters/advanced/multi-tenancy


Stopping via max_tokens should include captures if in a matched state

TLDR: stopping generation when we hit max_tokens should include matches if "properly" stopping at this point (e.g. via an EOS) would include matches. Related to issue #15.
Below is a bit verbose and meanders its way to the central issue. This is only included for historical reasons ;)
The bug
import re
from guidance import models, gen

model = models.Transformers("microsoft/Phi-3-mini-4k-instruct")

prompt = "2 + 2 = "
pattern = r"\d+\.\d+"

m = model + prompt + gen(name="test", regex=pattern, max_tokens=40)
assert re.fullmatch(pattern, m["test"])

>> KeyError: "Model does not contain the variable 'test'"

What's going on here...?
str(m)
>> '2 + 2 = 4.000000000000002᠐᠓᠑᠐᠓᠑᠐'

We generated some weird stuff. Technically, this stuff matches our espression, so maybe this isn't necessarily related to the problem. The only way out of the gen expression is an EOS, which may somehow be less likely than these weird characters (yes, changing the stop condition helps... adding decimals to the prompt also helps).
But why aren't we capturing the output? We actually DO have a match...
re.fullmatch(pattern, '4.000000000000002᠐᠓᠑᠐᠓᠑᠐') is not None
>> True

Clearly, we hit max_tokens and didn't emit a capture despite being in a "matched" state.

@mmoskal I take this back -- I don't think my original title nor message captures the underlying issue. If that were the case, we wouldn't capture anything with
m = model + gen(max_tokens=3, name='gen')

(which is just fine)

Furthermore, changing the prompt to "2.0 + 2.0 = " yields
str(m)
>> '2.0 + 2.0 = 4.00000000000000000000000000000000000000'

m["test"]
>> '4.00000000000000000000000000000000000000'

which is also behaving as expected. The long tail of zeroes feels odd, but it goes away if you give the gen a stop of \n, so it's just an artifact of waiting for an EOS and not getting it...
Maybe the weird unicode digits ARE to blame?

So what is the repro?
import os
import guidance
from guidance import gen

def main():
    os.environ["LLGUIDANCE_LOG_LEVEL"] = "10"
    lm = guidance.models.LlamaCpp(
        "/Users/mimoskal/.cache/huggingface/hub/models--TheBloke--Llama-2-7B-GGUF/snapshots/b4e04e128f421c93a5f1e34ac4d7ca9b0af47b80/llama-2-7b.Q5_K_M.gguf"
    )
    lm += "2 + 2 = " + gen(name="test", regex=r"\d+\.\d+", max_tokens=8)
    print(lm["test"])

main()

This seems to work for various values of 8

@mmoskal I think the phi3 tokenizer is to blame. I know there is some WEIRD stuff lurking there.
Try the first code block I sent, where LlamaCpp = Transformers, TheBloke--Llama-2-7B-GGUF = microsoft/Phi-3-mini-4k-instruct, and 8 = 40

Ok, tracked down the issue. For the phi tokenizer above, the non-ASCII digits are multi-token digits (corresponding to the individual bytes of some three-byte unicode codes). The token limit just so happens to stop in the middle of a multi-token digit here, causing the parser to be in a non-accepting state and preventing a capture.
In all, I would say that this isn't really a bug, just somewhat confusing behavior. Tests weren't hitting this on main due to the old regex implementation not supporting general unicode. I'll call this a test misspecification and close the issue.


Values not exist with loop over a range

Follow this issue#1055
trying to do the same think with:
{{ range $k, $v := until (atoi (quote .Values.Replicas) | default 5) }}
apiVersion: v1
kind: Service
metadata:
  name: zookeeper-{{$v}}
  namespace: {{ .Values.Namespace }}
  labels:
    node: "zookeeper-{{$v}}"
  annotations:
    "helm.sh/created": {{ .Release.Time.Seconds | quote }}
    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
spec:
  ports:
  - port: {{.Values.PeerPort}}
    name: peer
  - port: {{.Values.LeaderElectionPort}}
    name: leader-election
  - port: {{.Values.ClientPort}}
    name: client
  selector:
    component: "{{.Release.Name}}-{{.Values.Component}}"
    zookeepernode: "zookeeper-{{$v}}"
{{ end }}

But i get this error:
Error: render error in "zookeeper/templates/deployment.yaml": template: zookeeper/templates/deployment.yaml:6:22: executing "zookeeper/templates/deployment.yaml" at <.Values.global.names...>: can't evaluate field Values in type int

May be i forget something, any idea?

finally i find a trick, but may be it's something we can improve.
{{- $root := . -}}

{{ range $k, $v := until (atoi (quote .Values.Replicas) | default 5) }}
apiVersion: v1
kind: Service
metadata:
  name: zookeeper-{{$v}}
  namespace: {{ $root.Values.Namespace }}
  labels:
    node: "zookeeper-{{$v}}"
  annotations:
    "helm.sh/created": {{ $root.Release.Time.Seconds | quote }}
    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
spec:
  ports:
  - port: {{$root.Values.PeerPort}}
    name: peer
  - port: {{$root.Values.LeaderElectionPort}}
    name: leader-election
  - port: {{$root.Values.ClientPort}}
    name: client
  selector:
    component: "{{$root.Release.Name}}-{{$root.Values.Component}}"
    zookeepernode: "zookeeper-{{$v}}"
{{ end }}

Oh, yes... that is one of the more esoteric things about Go templates. The . scope gets overridden in a control structure.

I tried a few ways of working around this, but the best is the solution in the example above. Marking this closed.

This bit me as well :(
@technosophos Maybe you could consider changing this behavior? i.e. deprecate iterating with range without explicitly assigning variables, and preserve the scope

This is something that Go performs as part of text/template, so there's nothing actionable in Helm directly. Scope is changed when iterating through a control structure like range. Your best bet to change this behavior would be to file a bug upstream with Go itself.

relevant docs from text/template:

A variable's scope extends to the "end" action of the control structure ("if", "with", or "range") in which it is declared, or to the end of the template if there is no such control structure. A template invocation does not inherit variables from the point of its invocation.

For some reason the $root workaround seemed to work for me momentarily but now it's choking on it:
Error: UPGRADE FAILED: unable to recognize "": no matches for /, Kind=Deployment
I didn't work on the project for a while. I have no idea what changed in between. It works when I specifically remove the $root assignment (and also the range iteration).

Ok, so it started working again when I removed the - resulting in {{- $root := . }}. I don't understand why yet.

@worldsayshi For what it's worth, I just ran into this same issue, and it turns out there's a relevant bit of documentation from the variables section:
However, there is one variable that is always global - $ - this variable will always point to the root context. This can be very useful when you are looping in a range need to know the chart’s release name.
Turns out it's simpler to just do something like this if you need access to the root context from within a range block:
{{- range $key, $value := .Values.someHash }}
  {{ $key }}: {{ print $.Values.prefix ":" $value | quote }}
{{ -end }}

If anyone is coming here as confused as I was on how to apply @DeviateFish 's elegant solution to template functions (like the ones you get for free on helm create), you just need to pass the proper context into the template function.
{{ range tuple "fizz" "buzz" }}
...
{{ template "foobar.fullname" $ }}  # Worky.
{{ template "foobar.fullname" . }}  # No worky.
...
{{ end }}

I have some issue with this scope and I get the error - Error: UPGRADE FAILED: template: maas360/charts/consumer/templates/_consumer.tpl:84:33: executing "loadconsumerConfigFiles" at <$root.Files.Glob>: nil pointer evaluating interface {}.Glob.
I have my configmap.yaml which calls one template as below -
{{- $root := . -}}
{{ range $instance_id, $value := .Values.instance_names }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $.Release.Name }}-{{ $.Values.maasappname }}-{{$instance_id}}-configmap
data:
{{template "loadconsumerConfigFiles" (dict $instance_id) $}}
{{end}}
And I have this loadconsumerConfigFiles in template file -
{{- define "loadconsumerConfigFiles" -}}
{{- $root := . -}}
{{- $arg1 := index . "0" -}}
{{- $file := .Files }}
{{- range $path, $byte := $root.Files.Glob "config/*" }}
I get this error. Basically am trying to pass instance_id as a parameter to the loadconsumerConfigFiles so that I can use this inside that template. Could you please help what am i missing. I already have that root context passed. still it is showing the error.

This worked for me to reset the scope back to root and preserve the item I'm iterating over.  This had the benefit of working around a bug in IntelliJ where it could not find the definition of variables referencing $root
{{- range .Values.deployments }}
{{- $rangeItem := . -}}
{{- with $ }}
---
apiVersion: apps/v1
kind: Deployment
  name: {{ $rangeItem.name }}
  labels:
    - organization: {{ .Values.organization }}
# etc etc
...
{{- end }}
{{- end }}

ok, thanks a lot.

Similar to the previous comment about templates: https://github.com/helm/helm/issues/1311#issuecomment-435030457 The same error "can't evaluate field Values in type int" happen with include in a range loop:
{{ include "app.service.port" . }}    # does not work
{{ include "app.service.port" $ }}   # works


[20.03] pythonPackages.ldaptor: fix build

(cherry picked from commit 50f3704c2f8bf4fbdcdfb7aeca967d94028045e8)

Motivation for this change
Backports #80834
ZHF: #80379
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build python27Packages.ldaptor


perform(click()) is doing a long press randomly and causing tests to fail

Espresso 2.2.1, Genymotion 2.6.0
We are using the perfom(click()) method to navigate through the application by selecting certain elements on screen. Randomly the click() method will long press on an object rather than just click and in that case it will cause tests to fail. This happens more frequently when pressing items in the action bar as they have help text. So rather than clicking on a share icon in the actionbar it will long press it and show the help text, causing the test to fail.
We have also tried click(click()) as a work around, but that just causes most of the other tests to fail. If it does long press and it is successful, it will try and click again and the test will fail as the element is no longer there.
We are running are tests via Android Studio and it also happens when running through Gradle and adb.
What steps will reproduce the problem?

Have an app with a few pages to navigate through
Have a few tests to navigate through the application and test various part of the app

Outcome:
Tests will randomly fail do to long clicks when it is not expecting them.
Expected:
Remove the random long press and make the click() method consistent for tests.
Also posted this on the google page:
https://code.google.com/p/android/issues/detail?id=199544&thanks=199544&ts=1453722149

Setting -> Accessibility -> Touch & hold delay
http://stackoverflow.com/questions/32330671/android-espresso-performs-longclick-instead-of-click


Enable One host could run several nodes at the same time

Enable One host could run several nodes at the same time

now it can be done by run a shell program


New function: MakeDatabaseCopy

MakeDatabaseCopy creates a deep copy of the given Database, so elements of the copied DB can be safely updated without affecting the original one.
This function will be helpful when trying to attempt a merge multiple times, while not wanting to corrupt the original Database struct.
Also see: https://github.com/AndreasSko/go-jwlm/pull/24

Coverage decreased (-0.01%) to 81.707% when pulling 7fb782e912c47103df5a78e21e6c0d0f7e86bbe5 on db_copy into 86ed452b2fb09f247da403ac4be017095f8661f7 on master.


Please confirm these before moving forward

[X] I have searched for my issue and not found a work-in-progress/duplicate/resolved issue.
[X] I have not been informed if the issue is resolved in a preview version of the winget client.

Category of the issue
Other
Brief description of your issue
Winget keeps telling me that that I have to upgrade KDE Krita even though I already have the latest version 5.1.4.
Steps to reproduce

Let winget upgrade KDE Krita.
Run winget upgrade again.
Note how it tells you that you need to upgrade it, again.

Actual behavior
...
Expected behavior
To tell me that I don't have to upgrade the software, again.
Environment
Windows Package Manager (Preview) v1.4.3132-preview
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.22621.963
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.19.3132.0

Logs: %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale

Screenshots and Logs
No response

How long have you seen this issue? The most recent KDE.Krita manifest update adds a 4th set to the version number, so I'm wondering if it's causing an issue with the sort order.

https://github.com/microsoft/winget-pkgs/pull/91769

I just started having this issue.

@msftbot reset feedback

Krita (x64) 5.1.4     KDE.Krita      > 5.1.1 <IP_ADDRESS> winget
This is what winget says,

I'm having the same problem.
Krita is <IP_ADDRESS> but winget still complains
> winget upgrade
Name                                    ID                                     Version          Verfügbar        Quelle
-----------------------------------------------------------------------------------------------------------------------
Krita (x64) 5.1.4                       KDE.Krita                              > 5.1.1          <IP_ADDRESS>        winget

neither upgrade nor uninstall+installresolve this issue

that's not a good idea. if KDE would update only that part, you could not differentiate between the two.
The better way should be to update ALL of the older Versions, and add the extra explicit .0. Some older Versions actually have this:
https://github.com/microsoft/winget-pkgs/tree/master/manifests/k/KDE/Krita
Or even better: winget should recognize this and implicitly add zeros to make the comparable.
Because, what happens if some makes a PR, with a new 3-Part Version, and then yet a new 4-Part PR gets created.
Then this issue would happen all over again i presume.
But like, how is it sorting in the first place? By Name alone? That's bad design in general. The folders already are SemVers, or the YML-Manifets contaim them too. It shouldn't be an issue sorting by a Version (which is just a "tuple of integers")

Semantic versioning officially appears to be a 3-tuple set, but this has become a 4-tuple set, which might be why it's sorting in this way. Supporting additional tuples would be one way to solve this issue. Related:

https://github.com/microsoft/winget-cli/issues/981

WinGet uses the version from Windows Apps & Features to detect the installed version. It looks like this package might not be updating the registry entry for "displayVersion".
The "appsAndFeatures" entry in the manifest should have the matching value if a "packageVersion" with a marketing version should be displayed. The ">" symbol is what I'm using to identify the presence of a marketing version in the manifest.
It also looks like the "displayVersion" key in the registry is rendering "Krita (x64) 5.1.4" in Windows Apps & Features.
Any of the versions are split at the periods and then the sections are evaluated against each other sequentially.

@denelon, is that worth reporting to Krita, then? I'd be happy to if it's their fault.

I spoke with one of the engineers, and there may still be a way to get the right behavior here. It will require looking at the other manifests for the other versions of Krita. We should ensure if "one" of them has the "packageVersion" and "displayVersion" fields that all manifests have them. There are strange behaviors when both aren't present in one of the manifests.
If someone can review the installer file for each version and they all have the "appsAndFeatures" key with the "displayVersion" present, then it may behave correctly.
As long as the Krita versioning scheme is consistent, we will be able to get the right behavior.

If someone can review the installer file for each version and they all have the "appsAndFeatures" key with the "displayVersion" present, then it may behave correctly.

Reviewing KDE.Krita's 11 versions, the bug becomes apparent. 5.1.1 version's AppsAndFeaturesEntries are filled out:
  AppsAndFeaturesEntries:
  - DisplayName: Krita (x64) 5.1.1
    DisplayVersion: <IP_ADDRESS>
    ProductCode: Krita_x64

But the 5.1.4 version's AppsAndFeaturesEntries have only DisplayName:
AppsAndFeaturesEntries:
- DisplayName: Krita (x64) 5.1.4

Also this version is scoped to all installers, while it was scoped to the individual installer in the previous version. Since there is only one installer, it doesn't impact programmatic operation, but standardization streamlines comprehension.

As long as the Krita versioning scheme is consistent, we will be able to get the right behavior.

Adding DisplayVersion and updating PackageVersion should resolve this issue.
PackageVersion: 5.1.4

  ...

AppsAndFeaturesEntries:
- DisplayName: Krita (x64) 5.1.4
    DisplayVersion: <IP_ADDRESS>
    ProductCode: Krita_x64

@borque
It looks like you made the most recent changes to Kitra.  Would you mind adding the appropriate "appsAndFeatures" entries for the earlier versions?

Fixed now after updating all versions to use marketing version and use AppsAndFeaturesEntries for DisplayVersion. @trparky Can you please confirm?
~ winget install KDE.Krita --version 5.1.1
Found Krita [KDE.Krita] Version 5.1.1
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://download.kde.org/stable/krita/5.1.1/krita-x64-5.1.1-setup.exe
  ██████████████████████████████   126 MB /  126 MB
Successfully verified installer hash
Starting package install...
Successfully installed

~ winget list krita
Name              Id        Version Available Source
----------------------------------------------------
Krita (x64) 5.1.1 KDE.Krita 5.1.1   5.1.4     winget

~ winget upgrade krita
Found Krita [KDE.Krita] Version 5.1.4
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://download.kde.org/stable/krita/5.1.4/krita-x64-5.1.4-setup.exe
  ██████████████████████████████   122 MB /  122 MB
Successfully verified installer hash
Starting package install...
Successfully installed

~ winget list krita
Name              Id        Version Source
-------------------------------------------
Krita (x64) 5.1.4 KDE.Krita 5.1.4   winget

Hello @denelon !
Sorry for the delay, I am currently busy with other things. But as it stands now the suggested fixes were already applied by @mdanish-kh !?
If I can be of any further help here, let me know!

Close with reason: Resolved by adding DisplayVersion to every manifest;


Wemos D1 mini ESP8266

I followed all the steps of the tutorial:
https://github.com/michalmonday/supremeDuck/wiki/How-to-make-wifi-based-version-(Esp8266)
I connect to "supremeDuck", turn off the data package of the phone, from the phone application I do "check connection". Until there it works, when I select for example Website, I choose a google preset, I execute the script and nothing happens.
I can not find what is wrong. In the application it shows: Sending ducky script (5 left) Last response time: HH: MM: SS P.M. and nothing happens.
This is my Board:
https://static.mercadoshops.com/mini-nodemcu-d1-wifi-esp8266-esp12f-4mb-uart-arduino-nubbeo_iZ549560322XsZ137430519XpZ1XfZ137430519-609363485-1XvZgrandexIM.jpg?v=20190411_153730
https://static.mercadoshops.com/mini-nodemcu-d1-wifi-esp8266-esp12f-4mb-uart-arduino-nubbeo_iZ549560322XvZgrandeXpZ3XfZ137430519-609363485-3XsZ137430519xIM.jpg
Sorry for my english

Hello, could you post picture (or few pictures) of wiring? Could you also tell the behavior of the blue LED of D1 mini just after connecting? That's how it should look if everything goes well:

The first long blink means the Esp-12F (D1 Mini) code is running, the 3 short blinks afterwards mean that is successfully communicated with the Atmega32U4 board (e.g. Arduino Pro Micro).  The green blink is the on-board LED of Atmega32U4 board which blinks after successfully communicating with the D1 Mini board.
Btw make sure that the //#define WIFI_DUCKY_SETUP line is uncommented before uploading the code to Atmega32U4 based board
What you could additionally do is to uncomment this line in the supremeDuck.ino code:
//#define WAIT_FOR_SERIAL_MONITOR_TO_OPEN

Uncommenting that line will make sure that the code stops after plugging in device, it will wait till you open "Arduino IDE -> Tools -> Serial Monitor" and automatically continue working. (In the right-bottom corner of the serial monitor window select 115200, you might have to close the window afterwards and replug the device and open serial monitor again). It should either print:
Esp runs
Or:
Esp didn't respond, resetting. - repeatedly
After Esp didn't respond, resetting. message the Atmega32U4 will attempt to reset the D1 Mini by pulling "EN" pin low for a moment (using A2 pin of Arduino Pro Micro) and try to communicate with it again.

In the application it shows: Sending ducky script (5 left) Last response time: HH: MM: SS P.M. and nothing happens.

Sending ducky script (5 left) is normal message, but the fact that it doesn't count down towards 0 means lack of communication with the Atmega32U4 board. Most of the functions of the mobile application were redesigned to be activated by sending ducky script lines, after each line sent and executed by Atmega32U4, the Atmega32U4 should respond with "OK" and the next line should proceed to be sent. It doesn't happen so either:

Atmega32U4 code doesn't run (or the WIFI_DUCKY_SETUP is not defined)
RX/TX are not connected properly
initialisation of Esp routine is not working (where a handshake takes place between Atmega32U4 board and D1 Mini takes place) because A2-EN is not connected properly or because D1 Mini outputs some additional info through serial that interferes with the 'im_ok' handshake message (in such case the additional info would be visible in serial monitor)

I am grateful for all the information you provide me, I am a newbie in this Arduino, I was reading all night to try to understand about the connections of the pins, voltages and others. I did not understand if it was necessary or not, to have the Atmega32U4 connected to the D1 mini. I will buy all the components of the image (only buy the d1 mini, thinking (badly) that it was enough)
The supremeDuck.ino send it to the D1 Mini. When you have the Atmega32U4 with me, I follow everything you told me.
Many, many thanks for the information.

Good to see that the problem was recognized.

(open image in new tab to enlarge)
If you use that image for reference then keep in mind that you will not need zener diodes if you're using D1 Mini board. D1 Mini already has built-in voltage regulator, so you can power it using its' 5V pin from the "RAW" pin of Arduino Pro Micro or equivalent Atmega32U4 based board (it also may be called 5V on "CJMCU Beetle" board for example).
Zener diodes or additional voltage regulator would be necessary only if you'd use plain Esp8266 board like Esp-12F for example (that requires 3.3V instead of 5V).

One more question, D1 mini does not have ch_pd.
Pin A2 of the ATMEGA is connected with a cable to the D3 of the MINI D1?

https://wiki.wemos.cc/products:d1:d1_mini

If you have the version of D1 mini with Esp-12F laying on top of it you can just solder the wire into the "EN" pin of Esp-12F.

Pin A2 of the ATMEGA is connected with a cable to the D3 of the MINI D1?

A2 pin should be connected with "EN" pin of Esp-12F (which may be also called "CH_PD")
Pin 2 should be connected with GPIO 0 of Esp-12F (GPIO 0 is pin D3 of the Wemos D1 mini board)
Btw I have Wemos D1 mini board so I'll test connecting directly to Esp-12F and I'll update this message just to confirm it works.

It works well, you can see on the image below how A2 pin of Arduino Pro Micro is connected directly to the EN pin of Esp-12F (yellow wire)

This image shows how D3 of Wemos is connected to pin 2 of Arduino Pro Micro (closest yellow wire)

That's how it should look like when plugged in (1 second blink of blue led showing that the code is running, then 3 quick blinks showing that it successfully communicates with Arduino Pro Micro):
https://i.imgur.com/nLHc0sp.mp4

I'm going to buy the switch and test it 👍

now it works!!

Nice:) Btw the switch helps to reprogram Esp-12F through Atmega32U4 board but it's not necessary (especially that you're using D1 Mini which can be easily reprogrammed using its' USB connector)


Replace package.json in .mdw folder with package.yaml

Three reasons for this change:

To differentiate mdw package metadata from Node JS.
We need to start managing package inter-dependencies through a  dependencies list, and yaml format can be the flag to trigger dependency management (for example, during discovery/import).
Friendlier to manually edit (eg: for dependency versions).

Package loading will look for package.yaml and load that preferentially (just as when we migrated from package.xml to package.json).

Designer issue:
https://github.com/CenturyLinkCloud/mdw-designer/issues/50

Also, convert all our existing package.json files under mdw-workflow to package.yaml.

Since we're moving to 6.1.01 for the upcoming build, the internal package files should bear schemaVersion: '6.1'.  So the framework should handle this new schema version when parsing, and also Designer should set this when saving for 6.1.xx projects.


indexable arrays  ?

Strings are expensive and sometimes projects want to be able to index a hashable array object that has patterns in it and is sortable but isn't actually a string.   It can be stored today as an NSData, but it would be great if it was indexable.

I guess, you're speaking here of arrays of strings? We're tracking adding support for storing arrays of primitives (string, int, etc.) as RLMObject properties by issue #1120. Meanwhile you're right, you can use NSData as one way to workaround that. Another way would be to create a new model class in your schema. You can then define the string property as indexed.
class Person : Object {
   dynamic var name = ""
   let petNames = List<PetName>()
}

class PetName : Object {
   dynamic var name = ""

   override static func indexedProperties() -> [String] {
       return ["name"]
   }
}

I would like to use an array of bytes as and indexed property .   It's like a hash except the key is not a string .   Think of it as a piece of music with notes instead .   A pattern from a set but notes instead of letters.    String is too slow for my scenario.   I'm already using Nsdata- but if I could have it be an indexed property it would be more useful .
John

On May 29, 2016, at 10:30 PM, Marius Rackwitz<EMAIL_ADDRESS>wrote:
I guess, you're speaking here of arrays of strings? We're tracking adding support for storing arrays of primitives (string, int, etc.) as RLMObject properties by issue #1120. Meanwhile you're right, you can use NSData as one way to workaround that. Another way would be to create a new model class in your schema. You can then define the string property as indexed.
class Person : Object {
dynamic var name = ""
let petNames = List()
}
class PetName : Object {
dynamic var name = ""
override static func indexedProperties() -> [String] {
return ["name"]
}
}
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

If we would allow to index NSData properties, they would be indexed as a whole. Indexes can't support arbitrary binary data formats. So if you're searching for a specific note, it wouldn't help you at all. It would only help if you're instead searching for a specific set of notes. So is that what you're looking for?

Yeah.  Sorry I miscommunicated - that's what I meant.   Just like using a string index as you in effect said .   There is a single value for each byte - as if the byte array were a uint8 backed string .
Thanks, John

On May 30, 2016, at 1:42 AM, Marius Rackwitz<EMAIL_ADDRESS>wrote:
If we would allow to index NSData properties, they would be indexed as a whole. Indexes can't support arbitrary binary data formats. So if you're searching for a specific note, it wouldn't help you at all. It would only help if you're instead searching for a specific set of notes. So is that what you're looking for?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

See what's cool about it is it means you can use a byte array backed Nsdata and have indexable enum arrays in effect .   So not arbitrary - the enum gives u homogenous elements and a hash- and you can impose ordering if you like via a protocol.
Thanks, John

On May 30, 2016, at 9:34 PM, John Burkey<EMAIL_ADDRESS>wrote:
Yeah.  Sorry I miscommunicated - that's what I meant.   Just like using a string index as you in effect said .   There is a single value for each byte - as if the byte array were a uint8 backed string .
Thanks, John

On May 30, 2016, at 1:42 AM, Marius Rackwitz<EMAIL_ADDRESS>wrote:
If we would allow to index NSData properties, they would be indexed as a whole. Indexes can't support arbitrary binary data formats. So if you're searching for a specific note, it wouldn't help you at all. It would only help if you're instead searching for a specific set of notes. So is that what you're looking for?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Ok, I'll promote this to a feature request.

Thanks a lot!
John

On May 31, 2016, at 2:26 AM, Marius Rackwitz<EMAIL_ADDRESS>wrote:
Ok, I'll promote this to a feature request.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Did you guys implement this?   I have a super high performant case using byte arrays as a substitute for strings, and want to be able to index them.  Each UInt8 can be handled just like a character- its like an enum.

John

On May 29, 2016, at 10:30 PM, Marius Rackwitz<EMAIL_ADDRESS>wrote:
I guess, you're speaking here of arrays of strings? We're tracking adding support for storing arrays of primitives (string, int, etc.) as RLMObject properties by issue #1120 https://github.com/realm/realm-cocoa/issues/1120. Meanwhile you're right, you can use NSData as one way to workaround that. Another way would be to create a new model class in your schema. You can then define the string property as indexed.
class Person : Object {
dynamic var name = ""
let petNames = List()
}
class PetName : Object {
dynamic var name = ""
override static func indexedProperties() -> [String] {
return ["name"]
}
}
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/realm/realm-cocoa/issues/3669#issuecomment-222414291, or mute the thread https://github.com/notifications/unsubscribe/ALpdvcyOZXaiK5kkyqjAkrVclaTHSaD3ks5qGnXygaJpZM4IpNgx.

No we have not implemented this.

Alright, well think of it as a feature to do indexing on things that look just like strings, but aren’t actually multi-byte internationally safe unicode savvy things, but are still runs of values that occur in patterns just like characters do in words.   Given how heavy weight string is becoming year after year, its a valuable feature to be able to have variable length piles of symbols / enumerated values in indexable fields in a database.
Thanks for the reply,
John

On Aug 19, 2016, at 12:09 PM, JP Simard<EMAIL_ADDRESS>wrote:
No we have not implemented this.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/realm/realm-cocoa/issues/3669#issuecomment-241108260, or mute the thread https://github.com/notifications/unsubscribe-auth/ALpdvVtRMtBmDVv7xuuBIiStIYA6pYvXks5qhf96gaJpZM4IpNgx.

Agreed, this is something we want to do, which is why we're tracking it here.

Sweet.

On Aug 19, 2016, at 1:07 PM, JP Simard<EMAIL_ADDRESS>wrote:
Agreed, this is something we want to do, which is why we're tracking it here.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/realm/realm-cocoa/issues/3669#issuecomment-241121501, or mute the thread https://github.com/notifications/unsubscribe-auth/ALpdvUdBYJlFQEg8PMilsNRTrNDdi5yAks5qhgz2gaJpZM4IpNgx.


Setting location to privacy me only doesn't disable location blocks.

Check description field as well, since it's displayed in separate block.
https://unacms.com/d/bug-major-privacy-issue-location

Check description field as well, since it's displayed in separate block.

Already working fine for both: field and separate block.


koel:sync does not update view after changes

Hi,
in Koel Browser Application and Desktop application the view does not update if in the background some files changed. I removed ~500 mp3 files. I was able to get an updated view by just reloading. In the browser version this is no problem but in desktop application you need to restart the app itself to have recent changes working.

That's expected. Tip: You can "refresh" the desktop app with Cmd+R (Ctrl+R in Windows?), just like a browser.

Hi, thanks for the tip. Ctrl + R works. But i think some auto-refresh makes sense. Or maybe some background service which brings up a popup / bar notification to the user with message like "your server admin updated the music library. Please refresh your view to see what changed".


Editor Crash when pressing "Control + S" with .gdshaderinc open in shader editor

Godot version
Godot Engine v4.1.dev3 [a67d37f7c]
System information
Windows 10, i711800H, Forward+ Vulkan
Issue description
If I have a .gdshaderinc open in the bottompanel shader editor and then press CTRL + S to save the current scene the editor crashes and closes. However, it seems to work if I press save via File > Save File.
This is even an issue with an empty .gdshaderinc file
Steps to reproduce

Open Main Scene
Open .gdshaderinc
Press CTRL + S

Minimal reproduction project
MRP.zip

This was fixed in the master by https://github.com/godotengine/godot/pull/77467, fix should be in the next release.

Closed as fixed by https://github.com/godotengine/godot/pull/77467


adding nvim-neorg/neorg-telescope

huh, why did the check failed?

The checks are pretty broken at the moment, but I think it has something to do with limits in GitHub Actions. So I am not sure how to fix them. Just ignore them atm :P


Bugfix/1946 double warnings

Submisison Checklist

[x] Run unit tests: ./runTests.py src/test/unit
[x] Run cpplint: make cpplint
[x] Declare copyright holder and open-source license: see below

Summary
Remove duplicate warnings in expressions.
Intended Effect
See summary.
How to Verify
Unit test from @ariddell's issue.
Side Effects
No.
Documentation
n/a
Reviewer Suggestions
Anyone.
Copyright and Licensing
Please list the copyright holder for the work you are submitting (this will be you or your assignee, such as a university or company):
Columbia University
By submitting this pull request, the copyright holder is agreeing to license the submitted work under the following licenses:

Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

Not sure what's up.  I think I branched this from the other pending pull request's branch, feature/1940-prob-syntax-warn

This looks like another Travis failure. @syclik --- could you confirm?

@syclik Could you re-kick-off the Travis job?  I don't seem to have permissions.  Or wait until others have finished.  Somehow my latest pull request got through Travis first, so they must not be going in order of being called or must have wildly different execution speeds.


test site doesn't work

test_site.py is a bit useless - it tests a class Site that doesn't even exist.

fixed in ben-test-fixes branch


[Feature]: FASTDECODE: High-Throughput GPU-Efficient LLM Serving using Heterogeneous Pipelines

🚀 The feature, motivation and pitch
https://arxiv.org/pdf/2403.11421.pdf
This paper might be interesting.

Cost of serving large language models (LLM) is high, but the
expensive and scarce GPUs are poorly efficient when generating tokens sequentially, unless the batch of sequences is
enlarged. However, the batch size is limited by some constantly reused intermediate results, namely KV-Cache. They
occupy too much memory to fit more sequences into a GPU simultaneously. While they could be offloaded to host memory,
the CPU-GPU bandwidth is an inevitable bottleneck.
We find a way to decompose the transformer models into
two parts of different characteristics, one of which includes
the memory-bound KV-Cache accessing. Our key insight is
that the aggregated memory capacity, bandwidth, and computing power of CPUs across multiple nodes is an efficient
option to process this part. Performance improvement comes
from reduced data transmission overhead and boosted GPU
throughput to process the other model part. Moreover, we address efficiency challenges brought by heterogeneity at both
temporal and inter-device scopes using scheduling and performance modeling techniques. Evaluation results show that
our system achieves 1.88× −5.04× the throughput of vLLM
when serving modern LLMs with the same GPU.

Alternatives
No response
Additional context
No response

It might improve performance at the cost of complexity though. Scheduling between CPU and GPU computation would be a nightmare. It might fit better for a product, rather than an open-source project, imo 👀


change request .mat-drawer-container's status-bar to background in _layout-theme.scss

please change
.mat-drawer-container {
    background-color: mat-color($background, status-bar);
}

to
.mat-drawer-container {
    background-color: mat-color($background, background);
}

because in dark theme status-bar returns black colour and it make card and other shadow effects useless

So we do this to have proper contrast between the background and toolbars/sidenavs, etc, to convey the proper layering in the Material Design principles.
For instance, in a light theme:
Our theme:

VS
Angular Material's theme:

And in a dark theme:
Our theme:

VS
Angular Material's theme:

In both of those examples, the depth is backwards with the default Angular Material theme. The background should be darker and appear deeper as it is in our theme.
For a Google comparison, the new dark YouTube does the same as Covalent:


Fail to authenticate with Password

Hello,
I tried to install eCourse with the docker-compose file provided in Issue #3. I am attempting to log in with a user created from the admin dashboard; however, it's failing. Here are the steps I have followed:

Go to ip_address:port/_ to access the admin panel.
Create a user. I attempted this both with and without an email (email option set to disabled).
Go to ip_address:port.
Click on 'Login/Get access.'
Enter the user/password created in step 2.
Receive error message: 'Login failed. Please check your credentials and try again.

I checked the networking tab in my browser and noticed that it's attempting to reach 'https://ecourse.pockethost.io/api/collections/users/auth-with-password' (see screenshot).

Moreover, when I am logging in with the demo user/password, the login is successful. However, the courses I have created in the admin panel are not showing up.
Web browser : Firefox

Ok thank you.
Just to clarify, I am not trying to use ecourse.pockethost.io as front end. The deploy container is using it by "default" when I try to log in locally. As you can see in the screenshot.

I have replicated this problem using the deployment instructions while editing the docker file. Can't login with any user I create

@grenskul can I see the docker file you used?

did you set the VITE_PROD_PB_URL env variable?

@grenskul you'd need to add the URL of your hosted PB instance to VITE_PROD_PB_URL the frontend needs to know where to send the requests to.

Same behavior .
Logs show

Wait got it . had an extra line break cause of editing linus files in windows .


Implement a check for kernel version if srl nodes are present

SR Linux 23.3+ container exists if the kernel version is <4.10 (centos7 under the cull).
We have to check the kernel version and stop deployment if the kernel is older than 4.10

Taking a look at this I encounter the issue of figuring out which version is about to be deployed.
You cannot rely on tags. if latest is in use, that will not provide any clue. Executing the node does not make much sense either.
One thing I could think of is adding a label to the image itself at build time, that we could then rely on.

For every Srl node (regardless of it's version) you can emit a warning instead of stopping a lab saying that "Starting from release 23.3.1 Nokia SR Linux requires kernel newer than 4.10 and kernel x.xx has been detected"


Integrate with MeshExternalService (externalService v2)

Description
We'll need GUI improvements for this. @slonka and @lukidzi to add more info there once the spec is done.

Closed by https://github.com/kumahq/kuma-gui/pull/2619
Related potential follow on issue: https://github.com/kumahq/kuma-gui/issues/2470


[UNDERTOW-1880] Graceful shutdown of HTTP/2 server using GOAWAY

Track HTTP/2 server connections in GracefulShutdownHandler to enable graceful shutdown using GOAWAY according to RFC7540 6.8
A shutdown() will trigger the following on HTTP/2 connections:

Send initial GOAWAY with last stream id set to 2^31-1
Send an updated GOAWAY to still connected clients after 1 sec, updated with last stream id.
Block new streams for connected clients.
Force close if client has not already disconnected after 3 sec

Code example of a graceful shutdown:
// Stop listening for new client connections to prohibit reconniecting clients.
// Many clients just reconnects to the server after a GOAWAY.
List<ListenerInfo> listeners = server.getListenerInfo();
for (ListenerInfo listener : listeners) {
    listener.stop();
}

// Trigger a graceful shutdown of existing connections
shutdownHandler.shutdown();

// Wait for the graceful shutdown to finish
shutdownHandler.awaitShutdown(6000);

// Forceful shutdown of server
server.stop();

Possible improvements

Configurable timeouts ?
Documentation updates ?

Rebased

Any thoughts about this?


SF-1203: Remove legacy build files

This removes the supporting files from when these packages were multiple repos.

Codecov Report

Merging #32 into master will increase coverage by 0.83%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #32      +/-   ##
==========================================
+ Coverage   92.89%   93.73%   +0.83%
==========================================
  Files         200      201       +1
  Lines        5165     5375     +210
  Branches      627      646      +19
==========================================
+ Hits         4798     5038     +240
+ Misses        282      250      -32
- Partials       85       87       +2

Impacted Files
Coverage Δ

...storefront/breadcrumbs/src/original-query/index.ts
100% <0%> (ø)
:arrow_up:

...ont/flux-capacitor/src/core/reducers/is-running.ts
100% <0%> (ø)
:arrow_up:

...capacitor/src/core/reducers/data/productsLoaded.ts
100% <0%> (ø)
:arrow_up:

<EMAIL_ADDRESS>100% <0%> (ø)
:arrow_up:

...orefront/breadcrumbs/src/refinement-crumb/index.ts
100% <0%> (ø)
:arrow_up:

...storefront/navigation/src/refinement-pill/index.ts
100% <0%> (ø)
:arrow_up:

<EMAIL_ADDRESS>100% <0%> (ø)
:arrow_up:

<EMAIL_ADDRESS>100% <0%> (ø)
:arrow_up:

...ront/flux-capacitor/src/core/reducers/data/area.ts
100% <0%> (ø)
:arrow_up:

...ont/flux-capacitor/src/core/reducers/data/index.ts
100% <0%> (ø)
:arrow_up:

... and 30 more

Continue to review full report at Codecov.

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


Fix output of training with --debug_plots

This picks up #1390. I tried using --debug_plots but ran into two issues:

a pdf file is exported, but it seems to be a HTML document
when opening this document in a browser it will not display anything, throwing:

dagre-d3.min.js:26 Uncaught TypeError: shape is not a function
    at SVGGElement.<anonymous> (dagre-d3.min.js:26)
    at Selection.selection_each [as each] (d3.v4.js:1185)
    at createNodes (dagre-d3.min.js:26)
    at fn (dagre-d3.min.js:90)
    at Selection.selection_call [as call] (d3.v4.js:1149)
    at drawGraph (story_blocks_connections.html:114)
    at story_blocks_connections.html:916

I managed to fix both issues and can use the patched version as expected.
Proposed changes:

Change the file extension of debug_plots so that it matches the output (it's a HTML file, not a PDF)
Use a shape type supported by dagre-d3, see https://github.com/dagrejs/dagre-d3/issues/131

Status (please check what you already did):

[x] made PR ready for code review
[ ] added some tests for the functionality
[ ] updated the documentation
[ ] updated the changelog

thanks for submitting this PR, we'll give it a review as soon as possible

@Ghostvv Done so!


aya: Add PinnedProgram

This commit adds PinnedProgram which allows the creation of a Program from a path on bpffs. This is useful to be able to call attach or other APIs for programs that are already loaded to the kernel. Unfortunately figuring out the concrete type of program is hard given the information in the kernel so this may not work for all program types.
Signed-off-by: Dave Tucker<EMAIL_ADDRESS>

. Unfortunately figuring out the concrete type of program is hard given the information in the kernel so this may not work for all program types.

This makes me think that adding an extra PinnedProgram is probably not the correct API? If we did ConcreteProgram::from_pinned(...) then we could have function arguments to fill in the gaps in info we can't infer from the pin.

Shouldn't this be closed now that #496 is merged?


fix: promise/cb registry [ch3285]

This the most consistent solution, verifyJWT assumed our internal implementation, where we 'promisify' uport lite registry (in credentials), but its confusing for anyone else who just passes in the registry and is the faced with a bunch of errors.
Alternatively to changing the function sig of verifyJWT, the function could accept both a promisified version or a callback version.

@zachferland we still want this right? can we get this PR up to date?

This has less impact with the incoming DID changes.  closing for now.