Using cmd.exe /c from WSL also waits for the newly created terminal windows to be closed before returning control to WSL.  Is there a way to do a "Start" like in PowerShell for WSL so that it returns to the prompt immediately?

[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: bd211ca4-58c5-fdb6-93c4-75b3ea7aa34f
Version Independent ID: 0d5d0fe3-01ef-66e8-263d-a0a7852ffa7a
Content: Windows Terminal command-line arguments
Content Source: TerminalDocs/command-line-arguments.md
Service: terminal
GitHub Login: @cinnamon-msft
Microsoft Alias: cinnamon

Thanks for the feedback @FDFessler. Apologies that it's taken me so long to respond to -- just finally getting caught up.
I'm not sure that I totally understand the documentation request here.


[Java][FlightSQL] In authentication, how does flight server get the IP/Hostname of ADBC client

Describe the usage question you have. Please include as many useful details as  possible.
Now I implement CallHeaderAuthenticator in Java, and Override AuthResult authenticate(CallHeaders incomingHeaders).
xxx implements CallHeaderAuthenticator {
@Override
    public AuthResult authenticate(CallHeaders incomingHeaders) {
    }
}

Then, BasicCallHeaderAuthenticator can decode username and password from incomingHeaders. I implements BasicCallHeaderAuthenticator.CredentialValidator and Override AuthResult validate(String username, String password) to complete authentication of username and password.
xxx implements BasicCallHeaderAuthenticator.CredentialValidator {
@Override
    public AuthResult validate(String username, String password) {
    }
}

But in my database(Apache Doris), the client's IP will also participate in authentication, so is there a way to get the ADBC client's IP in Flight Server?
Thanks for your help.
Component(s)
FlightRPC

I hope for help, thanks~

We currently accomplish this with a gRPC ServerInterceptor to add it to the RequestContext (in Kotlin):
class RequestContextKeys {
    companion object {
        const val AUTHORITY = "authority"
        const val SCHEME = "scheme"
        const val PORT = "port"
        const val INCOMING_URL = "incomingUrl"
        const val REQUEST_ID = "request_id"
    }
}

/*
 * Simple interceptor to add more metadata from the call to the RequestContext.
 */
class RequestContextInterceptor : ServerInterceptor {
    override fun <ReqT : Any, RespT : Any> interceptCall(
        call: ServerCall<ReqT, RespT>,
        headers: Metadata,
        next: ServerCallHandler<ReqT, RespT>
    ): ServerCall.Listener<ReqT> {
        RequestContextAdapter.REQUEST_CONTEXT_KEY.get()?.also { requestContext ->
            val authority =
                call.authority ?: throw InternalServiceException("Could not find authority")
            val scheme = if (authority.startsWith("localhost")) "http" else "https"
            val port =
                when {
                    authority.contains(":") -> authority.substringAfter(":")
                    scheme == "https" -> "443"
                    else -> throw InternalServiceException("Could not infer port number")
                }
            val host = authority.substringBefore(":")

            requestContext.put(RequestContextKeys.AUTHORITY, authority)
            requestContext.put(RequestContextKeys.SCHEME, scheme)
            requestContext.put(RequestContextKeys.PORT, port)
            requestContext.put(RequestContextKeys.INCOMING_URL, "$scheme://$host:$port")
        }
        return next.startCall(call, headers)
    }
}

We can then access it anywhere using:
val requestContext = RequestContextAdapter.REQUEST_CONTEXT_KEY.get()
requestContext.get(RequestContextKeys.INCOMING_URL)

Oh sorry, I just realized you're talking about the IP/Host of the client, not the one they requested. However, you could follow a similar pattern to add w/e info you want from the call. You can get the caller IP: https://stackoverflow.com/questions/36124618/how-to-get-client-ip-from-request-metadata-with-grpc-java

Oh sorry, I just realized you're talking about the IP/Host of the client, not the one they requested. However, you could follow a similar pattern to add w/e info you want from the call. You can get the caller IP: https://stackoverflow.com/questions/36124618/how-to-get-client-ip-from-request-metadata-with-grpc-java

Thanks! @aiguofer, I'll try it.


Logstash or other centralized logging

Moving stack from fleet to kubernetes. Previously I was using logstash and forwarding journalctl to it. What's the best way to accomplish centralized logging with a cluster built using kube-aws? Wanted to follow this guide http://kubernetes.io/docs/getting-started-guides/logging-elasticsearch/, but that's set on cluster creation.

@rwillard i've been working on a utility to achieve centralized logging via journal. Just redirect every container message to it (via docker --log-driver or rkt through systemd-run or --link-journal) and use one forwarder unit per machine:
[Unit]
Description=journald forwarder
After=docker.service
Requires=docker.service

[Service]
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill journald-forwarder
ExecStartPre=-/usr/bin/docker rm journald-forwarder
ExecStartPre=/usr/bin/docker pull quay.io/glerchundi/journald-forwarder-loggly
ExecStart=/usr/bin/docker run \
--name journald-forwarder \
-v /lib64:/lib64:ro \
-v /var/log/journal:/var/log/journal:ro \
-v /usr/share/ca-certificates:/etc/ssl/certs:ro \
quay.io/glerchundi/journald-forwarder-loggly \
--loggly-token abcdefgh-ijkl-mnop-qrst-uvwxyzabcdef

[Install]
WantedBy=multi-user.target

[X-Fleet]
Global=true

You can take a look to the source code here. It's easy to add a new forwarder like logstash (with libeat).
WDYT?

I recommend using the fluentd and elasticsearch to aggregate your logs. Here's the upstream example
You can schedule fluentd as a daemonset that mounts the /var/log/containers host directory on each node. We are currently working on a kube-was distribution for this approach that includes Kibana for visualizing the elastic search data.

@colhom what about system-level logs? Or the ones generated by etcd machines, do you have any plans on using kubelet there?

Great! I'm looking forward to more functionality and configuration with kube-aws.

any news on this?
no logging out of the box in kube-aws?
what's the recommended workaround?
any ETAs on "kube-was distribution for this approach that includes Kibana for visualizing the elastic search data"?

+1

+1

I just got this working on my environment. Are you interested in a PR?

"this" being: fluentd-elasticsearch, elasticsearch and kibana

Great! I would very much be interested :)
On May 26 2016, at 3:02 pm, Oscar Morante<EMAIL_ADDRESS>wrote:

I just got this working on my environment. Are you interested in a PR?

—
You are receiving this because you commented.
Reply to this email directly or [view it on GitHub](https://github.com/coreos
/coreos-kubernetes/issues/320#issuecomment-221897507)![](https://github.com/no
tifications/beacon/AExRcc1-BVdc52LIi5W5pdIx1qguwdnpks5qFbYfgaJpZM4HyWnv.gif)

@spacepluk, any progress on that PR? I've been trying to get the fluentd-elasticsearch thing going for a while now but all my fluentd containers keep just "completing" without any output what so ever. I'm thinking of just switching the docker daemon to use the journald log driver but I'm not sure if kubectl logs still works then. docker logs does still work if I use journald according to the docker docs.

I manually updated a few things in the files generated by kube-aws to get this working.
First, since the Fluentd container relies on the container logs being available at the /var/log/container of each worker node, you need to change the kubelet config as follows.
In userdata/cloud-config-worker:
#cloud-config
coreos:
  # ...
  units:
    # ...
    - name: kubelet.service
      enable: true
      command: start
      content: |
        [Unit]
        # ...

        [Service]
        # ...

        Environment="RKT_OPTS=--volume dns,kind=host,source=/etc/resolv.conf --mount volume=dns,target=/etc/resolv.conf --volume var-log,kind=host,source=/var/log --mount volume=var-log,target=/var/log"
        ExecStartPre=/usr/bin/mkdir -p /var/log/containers
        # ...

Then, you need to change userdata/cloud-config-controller in order to create pods for ES/Kibana and a Fluentd daemonset (will run one pod per worker):
# ...
write_files:
  - path: /opt/bin/install-kube-system
    permissions: 0700
    owner: root:root
    content: |
      #!/bin/bash -e
      # ...

      # Custom replication controllers
      for manifest in {kibana-logging,elasticsearch-logging}-rc.json;do
          /usr/bin/curl  -H "Content-Type: application/json" -XPOST \
          -d @"/srv/kubernetes/manifests/$manifest" \
          "http://<IP_ADDRESS>:8080/api/v1/namespaces/kube-system/replicationcontrollers"
      done

      # Custom services
      for manifest in {elasticsearch-logging,kibana-logging}-svc.json;do
          /usr/bin/curl  -H "Content-Type: application/json" -XPOST \
          -d @"/srv/kubernetes/manifests/$manifest" \
          "http://<IP_ADDRESS>:8080/api/v1/namespaces/kube-system/services"
      done

      # Custom daemon sets
      /usr/bin/curl  -H "Content-Type: application/json" -XPOST \
      -d @"/srv/kubernetes/manifests/fluentd-cloud-logging-ds.json" \
      "http://<IP_ADDRESS>:8080/apis/extensions/v1beta1/namespaces/kube-system/daemonsets"

  # ...
  - path: /srv/kubernetes/manifests/elasticsearch-logging-rc.json
    content: |
        {
          "apiVersion": "v1",
          "kind": "ReplicationController",
          "metadata": {
            "name": "elasticsearch-logging-v1",
            "namespace": "kube-system",
            "labels": {
              "k8s-app": "elasticsearch-logging",
              "version": "v1",
              "kubernetes.io/cluster-service": "true"
            }
          },
          "spec": {
            "replicas": 2,
            "selector": {
              "k8s-app": "elasticsearch-logging",
              "version": "v1"
            },
            "template": {
              "metadata": {
                "labels": {
                  "k8s-app": "elasticsearch-logging",
                  "version": "v1",
                  "kubernetes.io/cluster-service": "true"
                }
              },
              "spec": {
                "containers": [
                  {
                    "image": "gcr.io/google_containers/elasticsearch:1.8",
                    "name": "elasticsearch-logging",
                    "resources": {
                      "limits": {
                        "cpu": "100m"
                      },
                      "requests": {
                        "cpu": "100m"
                      }
                    },
                    "ports": [
                      {
                        "containerPort": 9200,
                        "name": "db",
                        "protocol": "TCP"
                      },
                      {
                        "containerPort": 9300,
                        "name": "transport",
                        "protocol": "TCP"
                      }
                    ],
                    "volumeMounts": [
                      {
                        "name": "es-persistent-storage",
                        "mountPath": "/data"
                      }
                    ]
                  }
                ],
                "volumes": [
                  {
                    "name": "es-persistent-storage",
                    "emptyDir": {
                    }
                  }
                ]
              }
            }
          }
        }

  - path: /srv/kubernetes/manifests/kibana-logging-rc.json
    content: |
        {
          "apiVersion": "v1",
          "kind": "ReplicationController",
          "metadata": {
            "name": "kibana-logging-v1",
            "namespace": "kube-system",
            "labels": {
              "k8s-app": "kibana-logging",
              "version": "v1",
              "kubernetes.io/cluster-service": "true"
            }
          },
          "spec": {
            "replicas": 1,
            "selector": {
              "k8s-app": "kibana-logging",
              "version": "v1"
            },
            "template": {
              "metadata": {
                "labels": {
                  "k8s-app": "kibana-logging",
                  "version": "v1",
                  "kubernetes.io/cluster-service": "true"
                }
              },
              "spec": {
                "containers": [
                  {
                    "name": "kibana-logging",
                    "image": "gcr.io/google_containers/kibana:1.3",
                    "resources": {
                      "limits": {
                        "cpu": "100m"
                      },
                      "requests": {
                        "cpu": "100m"
                      }
                    },
                    "env": [
                      {
                        "name": "ELASTICSEARCH_URL",
                        "value": "http://elasticsearch-logging:9200"
                      }
                    ],
                    "ports": [
                      {
                        "containerPort": 5601,
                        "name": "ui",
                        "protocol": "TCP"
                      }
                    ]
                  }
                ]
              }
            }
          }
        }

  - path: /srv/kubernetes/manifests/elasticsearch-logging-svc.json
    content: |
        {
          "apiVersion": "v1",
          "kind": "Service",
          "metadata": {
            "name": "elasticsearch-logging",
            "namespace": "kube-system",
            "labels": {
              "k8s-app": "elasticsearch-logging",
              "kubernetes.io/cluster-service": "true",
              "kubernetes.io/name": "Elasticsearch"
            }
          },
          "spec": {
            "ports": [
              {
                "port": 9200,
                "protocol": "TCP",
                "targetPort": "db"
              }
            ],
            "selector": {
              "k8s-app": "elasticsearch-logging"
            }
          }
        }

  - path: /srv/kubernetes/manifests/kibana-logging-svc.json
    content: |
        {
          "apiVersion": "v1",
          "kind": "Service",
          "metadata": {
            "name": "kibana-logging",
            "namespace": "kube-system",
            "labels": {
              "k8s-app": "kibana-logging",
              "kubernetes.io/cluster-service": "true",
              "kubernetes.io/name": "Kibana"
            }
          },
          "spec": {
            "ports": [
              {
                "port": 5601,
                "protocol": "TCP",
                "targetPort": "ui"
              }
            ],
            "selector": {
              "k8s-app": "kibana-logging"
            }
          }
        }

  - path: /srv/kubernetes/manifests/fluentd-cloud-logging-ds.json
    content: |
        {
          "apiVersion": "extensions/v1beta1",
          "kind": "DaemonSet",
          "metadata": {
            "name": "fluent-elasticsearch",
            "namespace": "kube-system",
            "labels": {
              "k8s-app": "fluentd-logging"
            }
          },
          "spec": {
            "template": {
              "metadata": {
                "name": "fluentd-elasticsearch",
                "namespace": "kube-system",
                "labels": {
                  "k8s-app": "fluentd-logging"
                }
              },
              "spec": {
                "containers": [
                  {
                    "name": "fluentd-elasticsearch",
                    "image": "gcr.io/google_containers/fluentd-elasticsearch:1.15",
                    "resources": {
                      "limits": {
                        "memory": "200Mi"
                      },
                      "requests": {
                        "cpu": "100m",
                        "memory": "200Mi"
                      }
                    },
                    "volumeMounts": [
                      {
                        "name": "varlog",
                        "mountPath": "/var/log"
                      },
                      {
                        "name": "varlibdockercontainers",
                        "mountPath": "/var/lib/docker/containers",
                        "readOnly": true
                      }
                    ]
                  }
                ],
                "terminationGracePeriodSeconds": 30,
                "volumes": [
                  {
                    "name": "varlog",
                    "hostPath": {
                      "path": "/var/log"
                    }
                  },
                  {
                    "name": "varlibdockercontainers",
                    "hostPath": {
                      "path": "/var/lib/docker/containers"
                    }
                  }
                ]
              }
            }
          }
        }

Thanks, this is a good base to start from.

Thanks!

Thank you!

Is there a way to modify an existing cluster so that fluentd is able to get the containers' logs?

why is that not defined by default? any progress on that?

@AlmogBaku we have not reached a conclusion on whether or not kube-aws should ship with log aggregation facilities. While this is a feature many users have asked for, we have yet to settle on a solution that we're comfortable providing as a managed feature of kube-aws clusters going forward.
\cc @aaronlevy

But can we agree that the nodes should maintain the symlinks on
/var/logs/containers/ so if someone is willing to deploy an aggregation
solution he'll be able to? :)
On Thursday, 1 September 2016, colhom<EMAIL_ADDRESS>wrote:

@AlmogBaku https://github.com/AlmogBaku we have not reached a
conclusion on whether or not kube-aws should ship with log aggregation
facilities. While this is a feature many users have asked for, we have yet
to settle on a solution that we're comfortable providing as a managed
feature of kube-aws clusters going forward.
\cc @aaronlevy https://github.com/aaronlevy
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/coreos/coreos-kubernetes/issues/320#issuecomment-244147777,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGCpt-TqJ27rR_Bzu6kN3ZV_k88lZNyks5qlwgqgaJpZM4HyWnv
.

--
http://www.rimoto.net/
www.rimoto.com http://www.rimoto.net/
Almog Baku
CTO & Cofounder *
Mobile: +972.50.2288.744
Social:  * http://www.facebook.com/AlmogBaku
http://www.linkedin.com/in/almogbaku

But can we agree that the nodes should maintain the symlinks on
/var/logs/containers/

@AlmogBaku I think the community is converging on agreement there. For CoreOS internal production use we've been carrying the /var/log/container mount patch for our own production use as well, so naturally I'm in favor. I'll have a PR up for this after #608 is sorted.

if someone is willing to deploy an aggregation
solution he'll be able to?

kube-aws supports users of any gender ;)

For CoreOS internal production use we've been carrying the /var/log/container mount patch as well, so naturally I'm in favor. I'll have a PR up for this after #608 is sorted.

@colhom this PR has you beat: https://github.com/coreos/coreos-kubernetes/pull/650 :)


Sync up with app-tools - remove setting of gsUtil

@patflynn

I saw the changes in the app-tools before. LGTM. I just wonder why the other currently open PR builds successfully despite that appCommandGsUtil() doesn't exist anymore. (Perhaps it was built before app-tools pushed a snapshot recently?)

Yep. It was build prior to their latest deploy.


Go Checks - exclude from scoping Go static exec which uses signal handlers

Ref: #598

Closing: the changes introduced here was merged with #860 and 8bffeec


Change logotype

Change Description

Consensus Changes

[ ] Consensus Changes

API Changes

[ ] API Changes

Documentation Additions

[ ] Documentation Additions

Wrong repo


When detecting Mono location, run shell commands specifically on bash

Fixes https://github.com/OmniSharp/omnisharp-vscode/issues/1031

I think this is probably not contentious. I'm going to go ahead and merge this because it's blocking me from building a new release. Please let me know if anyone has any concerns.

👍


offsetParent returns int

https://github.com/reasonml-community/bs-webapi-incubator/blob/master/src/dom/html/HtmlElementRe.re#L50
Shouldnt it return an Element ?

The HTMLElement.offsetParent read-only property returns a reference to the object which is the closest (nearest in the containment hierarchy) positioned containing element.

from: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent

Indeed it should. Thanks for reporting!


After making some adjustments, I can't find the entrance to the preferences settings.

Before Submitting Your Bug Report

[ ] I have verified that there isn't already an issue reporting the same bug to prevent duplication.
[ ] I have seen the FAQ.

Maccy Version (see 'About' window)
No response
macOS Version
No response
Maccy Settings
No response
Description
No response
Steps to Reproduce
No response

Like this, even using Command +, I still can't find the preferences settings.

For a workaround, you can run the following in Terminal.app
 defaults write org.p0deje.Maccy hideFooter false

This should show a footer so you can open Preferences.
I can however open preferences using CMD+, even when the footer is hidden.

Thanks，After reinstalling the latest version of the application, the issue was resolved. However, it was indeed strange that, before, even using Command +, couldn't open the preferences settings.

This happens to me too.
I think when you hide the footer, the preference hot key is not available anymore.

A config file in .config would be really nice btw :)

I think when you hide the footer, the preference hot key is not available anymore.

That's not the case, you should be able to open preferences with ⌘,.

A config file in .config would be really nice btw :)

Preferences are stored in application sandbox, so it's not possible.

⌘ + , stopped working for me as well. Using the default write workaround and turning the option off again reenabled the hotkey. It hasn't been working for quite some time for me I just never bothered to check how to resolve it. I assume some update didn't initialize the hotkey with the footer missing.

@okkdev You could run into this problem after upgrading to Sonoma while using an old Maccy version. Please re-test using the latest Maccy verison.

Ohh, then that was it. It's working fine now, thanks. :)


Add unpooled gpu memory type

Adds option to configure mxnet to use unpooled gpu memory

@eric-haibin-lin @apeforest could you help take a look? thanks!


10823 fix server 500 with unicode usernames

Collect does not yet support sending UTF-8 encoded Basic auth, but is open to adding support if we submit a PR. Either way, we should not throw up a 500 error if a username is submitted with invalid encoding.
This PR

converts the input to UTF-8 if necessary,
allows a broader set of characters to be in the username (specifically [:word:] and .), and
properly returns 401 if the username doesn't exist, regardless of encoding.

Do you agree this is a reasonable route to go? If so, TODO:

[ ] Add spec for Basic auth flow
[ ] Update a couple of error message strings to reflect the newly allowable characters

Hound config wasn't reading our version correctly; it's now fixed.

Approved on Slack


RobertaUseLabelWord

AttributeError: module 'models' has no attribute 'RobertaUseLabelWord'

Hello, thank you very much for your attention to this matter. Regarding the question you've raised, I would recommend checking whether it might be an issue with the Hugging Face version you are using.

您好，
我是把Hugging Face中的模型下载到了电脑中，因为不下载下来的话显示找不到该模型。
---- Replied Message ----
| From | Xiang @.> |
| Date | 05/02/2024 22:43 |
| To | @.> |
| Cc |<EMAIL_ADDRESS>|
| Subject | Re: [zjunlp/MKGformer] RobertaUseLabelWord (Issue #43) |
Hello, thank you very much for your attention to this matter. Regarding the question you've raised, I would recommend checking whether it might be an issue with the Hugging Face version you are using.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

您好，如果不是模型问题的话，那很可能是涉及到Roberta的那个transformer包的版本问题。


#feature; Add dex pricing fixes to uniswap forks

Being QA'd here: https://github.com/messari/subgraphs/issues/2145


Fix api path for prefixed api/dashboards path

The current implementation does not allow to use the dashboard in a prefixed setup. In our setup the api  and the dashboard are exposed on /random-path. The dashboard therefore will be delivered at /random-path/dashboard/#/ but expects the api at /api but actually needs to search in /random-path/api.
Therefore the fix will change the path to a relative path, in order to search the api next to the dashboard path. This PR will affect the build process of the static files.
This issue is also described here #5853.

Hello,
this fix doesn't work because the api path cannot be relative.

Thanks for the feedback. What do you mean by the simple case? In case it is not prefixed?

Hello @ldez , do you have any clue about how to deal with this? I check on Quasar documentation about "runtime configuration" but see nothing about :/
Thanks you,

Also @dschniepp , why .. ? the easiest way is to remove the / so api will be relative to full URL.

@ebuildy as dashboard is exposed with an pending / and therefore it is necessary to go one directory up.

Did you try with only api? many web sites and SPA do that.

FYI (and because there was some noise about it from other channels), the conversation on this PR was closed because, as the PR itself is controversial, it is better to keep all discussion about it in the same place, i.e. on the issue: #5853 .


Adjust node ls name column width automatically

Field width for node name now automatically set to the longest node name.
Lines now truncated to terminal width unless -l|--long given.
Fixes #1110

I think this is too complex in many ways. If we go with this route we should create proper helper methods and use them everywhere.
/cc @kontena/core-platform

Needs to be simpler.


Cipher.getParameters() exception for CAST6 modes CBC/OFB/CFB, modes ECB/GCM ok

In BC 1.60, I am calling these APIs for different CAST6 transforms. I tried with 5 different modes. That last call to getParameters() works for 2 modes, and throws an unexpected exception for 3 modes:

Cipher.getInstance()
Cipher.init()
Cipher.doFinal()
Cipher.getParameters()

For these CAST6 modes and padding, all 4 calls worked:

CAST6/ECB/PKCS5Padding
CAST6/GCM/NoPadding

For these CAST6 modes and padding, the first 3 calls work, and the last call throws an unexpected exception:

CAST6/CBC/PKCS5Padding
CAST6/OFB/PKCS5Padding
CAST6/CFB/PKCS5Padding

Here is the unexpected exception from BC when making that call to getParameters(). I expect it to return valid, random generate parameters instead of throwing an exception:
java.lang.RuntimeException: java.security.NoSuchAlgorithmException: no such algorithm: CAST6 for provider BC
	at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineGetParameters(Unknown Source)
	at javax.crypto.Cipher.getParameters(Cipher.java:995)

Here is a code snippet to demonstrate the Cipher.getParameters() results for the 2 working and 3 non-working modes of CAST6. Key size did not seem to matter:
final SecureRandom SECURE_RANDOM = SecureRandom.getInstanceStrong();
final byte[]       CLEAR_BYTES   = "Clear".getBytes("UTF-8");
final String[] cast6Providers        = new String[] {"BC"};
final String[] cast6CipherTransforms = new String[] {"CAST6/ECB/PKCS5Padding", "CAST6/CBC/PKCS5Padding", "CAST6/OFB/PKCS5Padding", "CAST6/CFB/PKCS5Padding", "CAST6/GCM/NoPadding"};
final int[]    cast6KeyLengths       = new int[]    {128,160,192,224,256};

for (String cast6Provider : cast6Providers) {
	for (int cast6KeyLength : cast6KeyLengths) {
		final KeyGenerator keyGenerator = KeyGenerator.getInstance("CAST6", "BC");
		keyGenerator.init(cast6KeyLength, SECURE_RANDOM);
		final SecretKey cast6SecretKey = keyGenerator.generateKey();
		for (String cast6CipherTransform : cast6CipherTransforms) {
			final Cipher cipher = Cipher.getInstance(cast6CipherTransform, cast6Provider);
			cipher.init(Cipher.ENCRYPT_MODE, cast6SecretKey, SECURE_RANDOM);
			final byte[] cipherBytes = cipher.doFinal(CLEAR_BYTES);
			try {
				final AlgorithmParameters algorithmParameters = cipher.getParameters();
				System.out.println("CAST6 size " + cast6KeyLength + ", transform " + cast6CipherTransform + ", provider " + cast6Provider + ": Cipher.getParameters() succeeded");
				} catch(Exception e) {
				System.out.println("CAST6 size " + cast6KeyLength + ", transform " + cast6CipherTransform + ", provider " + cast6Provider + ": Cipher.getParameters() failed");
//				e.printStackTrace();
			}
		}
		System.out.println(" ");
	}
}

Here is the output I get from the above code snippet:
CAST6 size 128, transform CAST6/ECB/PKCS5Padding, provider BC: Cipher.getParameters() succeeded
CAST6 size 128, transform CAST6/CBC/PKCS5Padding, provider BC: Cipher.getParameters() failed
CAST6 size 128, transform CAST6/OFB/PKCS5Padding, provider BC: Cipher.getParameters() failed
CAST6 size 128, transform CAST6/CFB/PKCS5Padding, provider BC: Cipher.getParameters() failed
CAST6 size 128, transform CAST6/GCM/NoPadding, provider BC: Cipher.getParameters() succeeded

CAST6 size 160, transform CAST6/ECB/PKCS5Padding, provider BC: Cipher.getParameters() succeeded
CAST6 size 160, transform CAST6/CBC/PKCS5Padding, provider BC: Cipher.getParameters() failed
CAST6 size 160, transform CAST6/OFB/PKCS5Padding, provider BC: Cipher.getParameters() failed
CAST6 size 160, transform CAST6/CFB/PKCS5Padding, provider BC: Cipher.getParameters() failed
CAST6 size 160, transform CAST6/GCM/NoPadding, provider BC: Cipher.getParameters() succeeded

CAST6 size 192, transform CAST6/ECB/PKCS5Padding, provider BC: Cipher.getParameters() succeeded
CAST6 size 192, transform CAST6/CBC/PKCS5Padding, provider BC: Cipher.getParameters() failed
CAST6 size 192, transform CAST6/OFB/PKCS5Padding, provider BC: Cipher.getParameters() failed
CAST6 size 192, transform CAST6/CFB/PKCS5Padding, provider BC: Cipher.getParameters() failed
CAST6 size 192, transform CAST6/GCM/NoPadding, provider BC: Cipher.getParameters() succeeded

CAST6 size 224, transform CAST6/ECB/PKCS5Padding, provider BC: Cipher.getParameters() succeeded
CAST6 size 224, transform CAST6/CBC/PKCS5Padding, provider BC: Cipher.getParameters() failed
CAST6 size 224, transform CAST6/OFB/PKCS5Padding, provider BC: Cipher.getParameters() failed
CAST6 size 224, transform CAST6/CFB/PKCS5Padding, provider BC: Cipher.getParameters() failed
CAST6 size 224, transform CAST6/GCM/NoPadding, provider BC: Cipher.getParameters() succeeded

CAST6 size 256, transform CAST6/ECB/PKCS5Padding, provider BC: Cipher.getParameters() succeeded
CAST6 size 256, transform CAST6/CBC/PKCS5Padding, provider BC: Cipher.getParameters() failed
CAST6 size 256, transform CAST6/OFB/PKCS5Padding, provider BC: Cipher.getParameters() failed
CAST6 size 256, transform CAST6/CFB/PKCS5Padding, provider BC: Cipher.getParameters() failed
CAST6 size 256, transform CAST6/GCM/NoPadding, provider BC: Cipher.getParameters() succeeded

Thanks for the report. I've added the missing algorithm parameters class. Will show up in 161b14.


Add more detailed functionality for SOC poll intervals - loadpoints, vehicleSoc

It would be very helpful if the actual SOC of the vehicle could be polled in more detail depending on the car status. This is because external logics and statistics require the current SOC in order to determine the next reading time, for example. It would therefore be helpful to be able to configure not just one, but several intervals at the same time.

loadpoints:
  soc:
    poll1:
      mode: charging
      interval: 60m
    poll2:
      mode: connected #not charging
      interval: 240m
    poll3:
    mode: notConnected
    interval: 120m

I am still quite new to this project. Maybe I'm missing something and the SOC interval(s) can be set differently? I am currently in the process of dynamically rewriting the evcc.yaml.
For context: Our VW e-UP can be polled remotely, but of course it makes no sense to query it every hour and run the risk of overloading the remote connection.

That‘s on the roadmap once we have moved config into the ui. Will revisit at a later time.


proposal: support bool type in encoding/binary

The only fixed-size built-in type that's not supported currently is bool. Since it's arguably one of the more commonly used data types, I would propose its inclusion in encoding/binary.
The bool encoding would be equivalent to uint8 where zero maps to false and non-zero (1, usually) maps to true.

Note that if we admit all non-zero as valid "true", that we need to normalize that to 1 on the go side.  Easily accomplished with b := false; if u8 != 0 then {b = true} but anyone planning sneaky optimizations needs to be aware of this.

I'm not convinced that we should add bool. Different systems use different
encoding for boolean values (e.g. 1 vs. -1 for true)
It's easy to convert Uint8 from/to a bool or write your own function for
booleans. Therefore, I'm not sure we should add bool to encoding/binary.

While there are definitely several ways to encode bool (sometimes even 32-bit integers for in-memory representation), it's pretty reasonable to assume that it should only use one byte. I have a few arguments why I think it is reasonable:

I'm making the assumption that encoding/binary is primarily for storage and transmission of data, as opposed to memory layout. One byte representation of bool is almost exclusively the case for storage and transmission purposes, and it can't be less than one byte (at least not in Go as it'd break the io.Reader and io.Writer interfaces), nor is there any purpose to making it more bytes. Ordinarily the definition of bool is zero and non-zero for false and true. As @dr2chase points out that may add some complexity to the encoding/decoding process, but not unreasonably so. I also think it'd be fair to go with the most common scenario, where it's only zero and one for false and true.

Assuming that bool would be most commonly used in structs as opposed to on its own or in slices, it's difficult to accommodate the proposed conversion between uint8 and bool without transferring all the fields to another type. The reason being that encoding/binary does not allow unexported or unused fields on the struct. In my personal experience with the package, I've had to export structs with uint8 fields that are then documented with "1 for true, 0 for false" at the enduser's expense.

There is previous work in the encoding/binary package that sets a precedent for choosing one design even though there may be several. I'm talking about Varint which actually uses a proprietary* format instead of any of the commonly available ones such as VLQ. I bring this up because it makes the case that a similar decision could be made for bool.

If a byte representation of bool can truly not be established, the only remaining option (besides the transfer of struct fields I mentioned earlier) would be to either have a binary.Bool type which would have a predetermined binary structure, or to allow an interface for custom encoding, similar to the json package.

*) I say "proprietary" because it is specific to the Golang codebase and does not (to my knowledge) adopt any publicly available standard. You may say it's the Google Protocol Buffers implementation, but based on a design comment in the source it may be incompatible since protobuf uses 128-bit varints.

Not commenting on the larger issue (should this be added), but I'm not concerned at all about using 0=false and 1=true.  If you're talking to a system that doesn't use 1=true, then don't use encoding/binary.  Or use uint8s.  We should use the obvious answer, and there's an easy workaround for alternate systems.

I think that would be a fair decision to make. It'll probably cover the vast majority of cases as it is almost universal to use a byte with value 0/1 to represent bool. Here's a few examples of standard libraries using that particular encoding format:

Java https://docs.oracle.com/javase/7/docs/api/java/io/DataOutputStream.html#writeBoolean(boolean)
Python https://docs.python.org/3/library/struct.html#format-characters
C# https://msdn.microsoft.com/en-us/library/91xey4hy(v=vs.110).aspx

I've built an example implementation of bool support to make the discussion around it easier. Note that this implementation considers zero false and non-zero true when decoding, just like the aforementioned standard libraries. I could not see any possible performance or LoC improvement to restricting the values to 0 and 1 (in fact, additional error checking would be required).

Excluding non-{0,1} bytes from being boolean values would enable the would-be-nice optimization of just copying bytes wholesale.  We might be able to do that either if the compiler recognized encoding/binary.{Read,Write} (this proposal was not favorably received) or if the interface were extended to allow "compiled" binary.Readers and binary.Writers for a given type and endianness (where "compilation" would verify that the reflected type had the same layout as the data, and in that case the "compilation" would just be a byte-blit.
If any non-zero values gets to be "true" in the incoming bits and that becomes common practice, then that optimization will never happen for types that include booleans.

That may be outside the scope of the encoding/binary package, simply based on the prelude in the header:

This package favors simplicity over efficiency. Clients that require
high-performance serialization, especially for large data structures,
should look at more advanced solutions such as the encoding/gob
package or protocol buffers.

I still think it's fair to restrict it to 0 and 1, but if this package is mostly used for disk/network binary then avoiding that restriction would make it equivalent to decoding in many other standard libraries. While I don't think that it'll make a big difference in practice, the non-zero behavior would arguably be less surprising.

I actually sent in a CL that added this years ago, but it was rejected. I had thought it would be useful for a project I was working on at the time, but by the time it had been rejected, I had already worked around it, so I didn't really try to argue.

As we wait for feedback to this proposal, I took some time to do some research on whether this proposal would be useful to existing users of encoding/binary out there.
This is not extensive but I started going through the uses of binary.Read list on Sourcegraph from top to bottom checking the popular repos (> 75 stars) for any references to booleans.

Repository
Stars
Converts byte != 0 to bool?

golang/go
19,683
No

hybridgroup/gobot
2,278
Yes

streadway/amqp
933
Yes

vishvananda/netlink
216
No

GoBelieveIO/im_service
170
No

zeromq/zproto
114
No

istreamdata/orientgo
98
Yes

mitchellh/go-vnc
93
Yes

So far the conclusion is that the need for bool is not uncommon and several of these repos even have additional functions to add on bool reading/writing. Almost all of the repos that don't use bool with encoding/binary are generally only relying on the big/small endian code in the package, and don't use anything beyond the (u)int16/32/64 coding.

I support this proposal, and agree with what @randall77 said.
@blixt, thanks for gathering data.
@adg, @ianlancetaylor, @griesemer, thoughts?

I'm fine with this but I'm inclined to think that the Bool method should only accept 0 or 1, meaning that, unlike the other decode methods, it will have to return an error value.

I don't think it should be included precisely because
people disagree about what value(s) corresponds to
true.

@minux Is there really disagreement, or just hypothetical disagreement?  Does anything really think the values should be anything other than '0' and '1'?

Let me just reiterate that:

Most if not all of the major languages that have a standard library for encoding/decoding binary streams went with the byte != 0 strategy for booleans
I've not found a single example of a Go codebase that does binary<=>bool which doesn't use the byte != 0 strategy (except the ones that only write which technically only use the byte == 1 strategy)

I understand the theoretical issue but I can't find a single practical example in Go or in other programming languages giving it credence.
Finally, the encoding/binary package specifically "favors simplicity over efficiency", and I would argue that being able to use bool in a struct is a big win for simplicity.

To be clear, I don't think we should require either 0 or 1 on decode for efficiency.  I think we should do it for safety.  If you want to decode a bool, you should be looking at the encoding of a bool.

I think if we add support bool, it should:

read 0 as false, non-zero as true,
write 1 for true, and 0 for false.

But apparently, Ian disagree with point 1. However Ian's
view is reasonable too. Namely, if you only read what you
write, and this will help detect cases where the stream is
out of sync.
All the other supported types have the one-to-one property
wrt. encoding/decoding, but bool doesn't have that property,
which opens the door for such discussions as whether we
should allow 2 as true or not.

To summarize the last few comments:

it's fair to say no library encodes true as anything but 1
it's fair to say most (if not all) deserializers assume byte != 0 is true (probably because it's less code to implement)
assuming byte == 1 is true would be more correct and potentially catch out of band errors
adding an error for boolean values that are not 0 or 1 would add a new type of error behavior to binary.Read (one that is based on the decoded value and not the state of the io.Reader or the provided data structure, which means it would discard a byte from the input stream)

Practically, this is mostly minutiae (due to the first point), but if we want to defer the decision between the two (in the interest of implementing this proposal), then going for correctness first and making it more lenient later could be an acceptable compromise.
However, if no one has a strong opinion on one over the other, I would suggest the less correct one (byte != 0) simply to avoid the additional complexity of the error state, leaving out-of-band detection up to the user (as is currently the case with all the other value types).

@adg, @ianlancetaylor, decision on this proposal?

I'm in favor.  As I said above, I think decode should only accept 0 or 1.  But I can live with either approach.

I've rebased my change, which uses behavior byte != 0. Please review when possible, there are also tests included.
While I recognize that it'd be easier to catch errors by only allowing 0 or 1, it'd open up the possibility of even more obscure bugs because an erroneous byte value would be discarded, leaving the reader in a potentially irrecoverable state. If no one feels strongly about this I'd like to leave it as-is.

The change is here: https://go-review.googlesource.com/#/c/28514/


Add TUS headers on PROPFIND

@butonic

now thinking, we should probably also add these on the OPTIONS call to be fully conform

done

obsoleted by https://github.com/cs3org/reva/pull/674


Error while building knowrob kinetic version

Hello,
I tried to build knowrob kinetic version, but I met the error "Could not find the required component 'json_prolog_msgs'."
'json_prolog_msgs' package was found at the groovy branch json_prolog_msgs but not in the kinetic branch.
Is knowrob kinetic version available?

After installing 'iai_common_msgs' package from https://github.com/code-iai/iai_common_msgs.git, the error related to json_prolog_msgs disappeared.


COPY handle no fields

✓ Checklist:

[x] This PR has been added to CHANGELOG.md (at the top of the list);
[x] Tests for the changes have been added (for bug fixes / features);
[x] Docs have been added / updated (for bug fixes / features).

Hello!
Thank you for your contribution!
Could you please fix the rustfmt/clippy warnings?
And also add unit tests and update CHANGELOG.md?
May I ask you to attach your database schema (without data) or at least the related part?

Codecov Report

Merging #147 (716009a) into main (8d531f3) will decrease coverage by 0.04%.
The diff coverage is 80.00%.

:exclamation: Current head 716009a differs from pull request most recent head a9af726. Consider uploading reports for the commit a9af726 to get more accurate results

@@            Coverage Diff             @@
##             main     #147      +/-   ##
==========================================
- Coverage   85.94%   85.89%   -0.05%
==========================================
  Files          52       52
  Lines        3187     3191       +4
==========================================
+ Hits         2739     2741       +2
- Misses        448      450       +2

Impacted Files
Coverage Δ

datanymizer_dumper/src/postgres/table.rs
94.77% <80.00%> (-0.60%)
:arrow_down:

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 8d531f3...a9af726. Read the comment docs.

Example schema.dump and config (test1.yaml) that shows the problem with schema_3.table_3_1 that has no fields
schema.dump.txt
test1.yaml.txt

The PR is now ready to merge


Add slash to API URL in README.md

This adds a slash to the API URL for PowerDNS 4.x. Without it, the exporter will not start.

There seems to be no activity and the CI is broken, so closing this.


GitHub Wrapped Error

There is an issue with my github wrapped

So sorry about that, it should be fixed now. Please try again and let me know if you run into any difficulties!


Analyzer highlights wrong span for "must be null-checked"

This was/is fixable by null-asserting querySelector, not rootElement:

I think I have a minimal repro here:
class C {
  D d() => D('');
}

class D {
  String? s;
  D(this.s);
}

main() {
  C()..d()
    .s.length;
}

The highlighted region is between >>> and <<<:
main() {
  C()>>>..d()
    .s.length;<<<
}

I think I have a minimal repro here:
class C {
  D d() => D('');
}

class D {
  String? s;
  D(this.s);
}

main() {
  C()..d()
    .s.length;
}

The highlighted region is between >>> and <<<:
main() {
  C()>>>..d()
    .s.length;<<<
}

Oops, I spoke too soon. @matanlurey the vertical tab stops tell me you are using VS Code?
In VS Code, I see that only the first line is highlighted, between >>> and <<<:
main() {
  C()>>>..d()<<<
    .s.length;
}

Does VS Code not highlight any lines from multiline spans past the first line?
In IntelliJ, I see the above multiline highlighting. But I think in this situation, I would expect to only see either s. highlighted, or .length highlighted. But dartanalyzer also reports the problem as being on line 11 (C()..d()), not line 12 (.s.length;)
@bwilkerson WDYT? Do you know about multiline highlights in VS Code? Would you expect just s. to be highlighted with the "UNCHECKED_USE_OF_NULLABLE_VALUE" diagnostic, or .length? The message reads:

The property 'length' can't be unconditionally accessed because the receiver can be 'null'.

In VS Code, I see that only the first line is highlighted, between >>> and <<<:
main() {
  C()>>>..d()<<<
    .s.length;
}

Does VS Code not highlight any lines from multiline spans past the first line?
In IntelliJ, I see the above multiline highlighting. But I think in this situation, I would expect to only see either s. highlighted, or .length highlighted. But dartanalyzer also reports the problem as being on line 11 (C()..d()), not line 12 (.s.length;)
@bwilkerson WDYT? Do you know about multiline highlights in VS Code? Would you expect just s. to be highlighted with the "UNCHECKED_USE_OF_NULLABLE_VALUE" diagnostic, or .length? The message reads:

The property 'length' can't be unconditionally accessed because the receiver can be 'null'.

Do you know about multiline highlights in VS Code?

No, I don't. But @DanTup will know.

Would you expect just s. to be highlighted with the "UNCHECKED_USE_OF_NULLABLE_VALUE" diagnostic, or .length?

My preference would be for length to be highlighted (without the .). That's the member that being accessed, so I think that's what we want to draw the user's attention to. If the member is a method, we should highlight the method name (and not the argument list).

Do you know about multiline highlights in VS Code?

No, I don't. But @DanTup will know.

Would you expect just s. to be highlighted with the "UNCHECKED_USE_OF_NULLABLE_VALUE" diagnostic, or .length?

My preference would be for length to be highlighted (without the .). That's the member that being accessed, so I think that's what we want to draw the user's attention to. If the member is a method, we should highlight the method name (and not the argument list).

This is a known issue in the (non-LSP) diagnostic implementation in Dart-Code. Multi-line diagnostics are truncated to the first line. This doesn't happen when using LSP:
LSP disabled:

LSP enabled:

Given the goal of making LSP default soon after the next stable releases (and actively encouraging people to enable the preview now), I'm not sure it's worth trying to fix in the non-LSP code - it would cause this common issue to appear for all non-LSP stable users (which are the majority) in the meantime.
I would definitely recommend most users (particularly those using recent builds) enable the LSP Preview (the dart.previewLsp setting). If there are any remaining issues when using LSP, the sooner they're identified/resolved the better.

This is a known issue in the (non-LSP) diagnostic implementation in Dart-Code. Multi-line diagnostics are truncated to the first line. This doesn't happen when using LSP:
LSP disabled:

LSP enabled:

Given the goal of making LSP default soon after the next stable releases (and actively encouraging people to enable the preview now), I'm not sure it's worth trying to fix in the non-LSP code - it would cause this common issue to appear for all non-LSP stable users (which are the majority) in the meantime.
I would definitely recommend most users (particularly those using recent builds) enable the LSP Preview (the dart.previewLsp setting). If there are any remaining issues when using LSP, the sooner they're identified/resolved the better.

Thanks a hundred, @DanTup . I agree.

Thanks a hundred, @DanTup . I agree.


AbstractPlugin deprecation

AbstractPlugin isn't abstract. It's used to maintain the faulty versioning scheme pointed out in https://github.com/rdkcentral/rdkservices/issues/2284. The issue was acknowledged and closed but not fixed. Readme still says "Plugins must extend the AbstractPlugin helper class." and "Removing or Adding an API should increment the version to the next whole number (2,3,4...).". The majority, 31 of 51 services use AbstractPlugin (7 of them really use versions other than 1). Among CPC services, it's 25 of 29 (only one uses versions other than 1).
Suggest removing AbstractPlugin.

2205: #2576 #2616 #2639 #2644
2206 (cherry-pick): #2693
main (cherry-pick): #2588 #2725
closing


EAGLE-104 fix unit test bug in hdfs security log parser

Creating new PR for EAGLE-104 to replace PR #43 (  https://github.com/apache/incubator-eagle/pull/43)

Per commit log, this one has been merged, but the commit message does form well. (Should be Closes #61, but it's Closes 61).
Could we manually close this one?

@pmujumdar  please manually close this PR.

Reminder to close the PR.


intellisense doesn't work in vs code for unity

Hello there,
I have .net 6 sdk installed and have configured all the settings mentioned in the vs code extension yet Im still getting these errors. I am on windows 10.
here's my error message:
[fail]: OmniSharp.MSBuild.ProjectLoader
        The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks
c:\Users\Leo Zhang\Documents\GitHub\ARHW1\VuforiaPackageTests.csproj
C:\Program Files\dotnet\sdk\6.0.102\Microsoft.Common.CurrentVersion.targets(1217,5): Error: The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks

[fail]: OmniSharp.MSBuild.ProjectManager
        Attempted to update project that is not loaded: c:\Users\User1\Documents\GitHub\ARHW1\UnityEngine.UI.csproj
[fail]: OmniSharp.MSBuild.ProjectManager
        Attempted to update project that is not loaded: c:\Users\User1\Documents\GitHub\ARHW1\VuforiaScripts.csproj
[fail]: OmniSharp.MSBuild.ProjectManager
        Attempted to update project that is not loaded: c:\Users\User1\Documents\GitHub\ARHW1\Assembly-CSharp.csproj
[fail]: OmniSharp.MSBuild.ProjectManager
        Attempted to update project that is not loaded: c:\Users\User1\Documents\GitHub\ARHW1\UnityEditor.UI.csproj
[fail]: OmniSharp.MSBuild.ProjectManager
        Attempted to update project that is not loaded: c:\Users\User1\Documents\GitHub\ARHW1\VuforiaEditorScripts.csproj
[fail]: OmniSharp.MSBuild.ProjectManager
        Attempted to update project that is not loaded: c:\Users\User1\Documents\GitHub\ARHW1\Assembly-CSharp-Editor.csproj
[fail]: OmniSharp.MSBuild.ProjectManager
        Attempted to update project that is not loaded: c:\Users\User1\Documents\GitHub\ARHW1\VuforiaPackageTests.csproj

Set useModernNet to false

For Unity development it is recommended you install the Visual Studios MSBuild Tools from https://visualstudio.microsoft.com/downloads/. Scroll to the bottom of the page and expand the Tools for Visual Studio 2022 section. Also, as mentioned earlier you will need to use the Full Framework version of OmniSharp by setting omnisharp.useModernNet to false.

The instructions in VS code says set omnisharp.useModernNet to true for .net 6 builds tho. Also I am trying to avoid using visual studio and just use vs code. Can you please show me how I can do that? Thanks.

The instructions in VS code says set omnisharp.useModernNet to true for .net 6 builds tho. Either way, I tried setting it to false and it didn't work. Also I am trying to avoid using visual studio and just use vs code. Can you please show me how I can do that? Thanks.

Try closing VS Code and Unity, then open your project folder and delete the .sln and .csproj files therein. Next open the project in Unity and once that loads reopen VS Code. I find nuking those files and forcing a regen is the only thing that ever works for me.

The instructions in VS code says set omnisharp.useModernNet to true for .net 6 builds tho. Either way, I tried setting it to false and it didn't work.

Unless there have been recent changes, Unity projects are not .NET SDK projects. The net6 build of OmniSharp will not load Full Framework projects.

Also I am trying to avoid using visual studio and just use vs code. Can you please show me how I can do that? Thanks.

The reason you need the Visual Studio MSBuild Tools is to get a build environment that supports .NET 4.7.1 Full Framework projects.

The instructions in VS code says set omnisharp.useModernNet to true for .net 6 builds tho. Either way, I tried setting it to false and it didn't work. Also I am trying to avoid using visual studio and just use vs code. Can you please show me how I can do that? Thanks.

Try closing VS Code and Unity, then open your project folder and delete the .sln and .csproj files therein. Next open the project in Unity and once that loads reopen VS Code. I find nuking those files and forcing a regen is the only thing that ever works for me.

That didn't work for me, but it was definitely worth trying thanks.

The instructions in VS code says set omnisharp.useModernNet to true for .net 6 builds tho. Either way, I tried setting it to false and it didn't work.

Unless there have been recent changes, Unity projects are not .NET SDK projects. The net6 build of OmniSharp will not load Full Framework projects.

Also I am trying to avoid using visual studio and just use vs code. Can you please show me how I can do that? Thanks.

The reason you need the Visual Studio MSBuild Tools is to get a build environment that supports .NET 4.7.1 Full Framework projects. The C# extension does not support all Full Framework project types out of the box.

That's unfortunate that the extension doesn't support it yet, but I'm sure the team is working hard! I installed the msbuild tools like you said and though I'm not entirely sure if that fixed the issue, the visual studio ide did redirect me to this link https://dotnet.microsoft.com/en-us/download/visual-studio-sdks?utm_source=getdotnetsdk&utm_medium=referral after telling me that I have v4.6.1 and that vuforia uses v4.7.1, so I went ahead and got that and now intellisense is working again in vs code despite a new error: [fail]: OmniSharp.MSBuild.ProjectLoader         The reference assemblies for .NETFramework,Version=v4.6.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks c:\Users\User1\Documents\GitHub\ARHW1\Assembly-CSharp-Editor.csproj it seems I cant please everyone, but at least intellisense is back, so I'm good for now. Thanks.


[FSDE-10701] Add examples, properties and accessibility tabs in App layout template

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-243/1/. :white_check_mark:

You can check this PRs instance in https://0cee972671531d9286757122dbe4f24d80aa6e62-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-243-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-243/2/. :white_check_mark:

You can check this PRs instance in https://d71b544d8d51ae224e34a9ebada6ec91e0d7bff4-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-243-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-243/3/. :white_check_mark:

You can check this PRs instance in https://61a20d56435ce50070b061dab12c42c949222dab-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-243-ux-chi.kubeodc-test.corp.intranet/ (internal)

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Productive/job/Chi/job/PR-243/4/. :white_check_mark:

You can check this PRs instance in https://d198c5ac03ff316c37ef7e3949877e7ebb9462ae-chi-pr.enterprise.ctl.io (external) and in https://nginx-pr-243-ux-chi.kubeodc-test.corp.intranet/ (internal)


dependence on hard-coded Redfish paths that should depend on reading OData

As with issues #2172 and #2173, the terminal elements ('bmc', 'FirmwareInventory', etc.) in these paths should not be hard-coded, but should instead be obtained from the available OData:

redfish/v1/Managers/bmc
redfish/v1/UpdateService/FirmwareInventory
redfish/v1/TaskService/Tasks
redfish/v1/AccountService/Accounts
redfish/v1/AccountService/Roles

There are likely more cases.
Admittedly, it seems that most of these are unlikely to change. However, there may be differences with character case as can be seen with the DTMF mockup 'redfish/v1/Managers/BMC' vs. the hard-coded redfish/v1/Managers/bmc.
In fact, the root paths should probably all be obtained from the OData in the json from the base path redfish/v1/. For example, finding the /redfish/v1/Managers path using the Odata key "Managers" in the /redfish/v1/ json.
Again, see issue #2172 for method to fix.

If the openbmc code itself is planning to use these paths and this repository is to test the openbmc code, does it matter if they are hard-coded?  Are you trying to leverage this repository against a non-openbmc product?  If so, are you willing to contribute the code to make it more generic?

@williamspatrick You are correct, but are these paths (forever) hard-coded into the openbmc code, and if so, where? I'm guessing that since the DMTF/Redfish schema doesn't hard-code the paths, then some future openbmc developer might assume that they could be changed (especially, given the 'redfish/v1/Managers/BMC' mockup example) and might do so.

The openbmc/bmcweb repo has all the code for our Redfish providers.  There are tons of hardcoded strings in there so I think it'd be pretty obvious if someone starts mucking around with it:
$ git grep -i "managers/bmc" | wc -l
117

TBH, I only looked at this because I've seen a bunch of issue alerts created in the last few days by you.  Maybe you're working closely with the maintainers of this repository (I don't recognize your name to know who you work for/with), but generally opening a number of issues with no intention of fixing them isn't really favorable in this community and is likely to just get all your issues ignored.
At least one of the issues I recall was something simple like "your documentation is missing three characters here".  It would have been less effort to just contribute the fix rather than open an issue an expect someone else to fix it.  Being a partner in development is much more likely to get attention to whatever issues you're having.

@williamspatrick Points taken, thanks. And thanks for pointing me to openbmc/bmcweb. This was a bad call.


Reported ADC voltage using esp-idf 2.0 incorrect or wrongly documented (IDFGH-116)

I'm trying to measure the voltage of a battery using the ADC of the ESP32 (ESP-WROOM-32) with ESP-IDF 2.0.
The maximum voltage I'm trying to measure is 2.1V (Lipo battery with a 1/2 voltage divider). Since the ESP-IDF documentation states the following:

When VDD_A is 3.3V:
0dB attenuaton (ADC_ATTEN_0db) gives full-scale voltage 1.1V
2.5dB attenuation (ADC_ATTEN_2_5db) gives full-scale voltage 1.5V
6dB attenuation (ADC_ATTEN_6db) gives full-scale voltage 2.2V
11dB attenuation (ADC_ATTEN_11db) gives full-scale voltage 3.9V (see note below)

I'm using a 6dB attenuation (ADC_ATTEN_6db). I'm measuring on pin 34 (ADC1 channel 6) using 12-bit sampling (ADC_WIDTH_12Bit).
Relevant source code snippet:
adc1_config_width(ADC_WIDTH_12Bit);
adc1_config_channel_atten(ADC1_CHANNEL_6, ADC_ATTEN_11db); // Measure up to 2.2V
int battery_voltage = adc1_get_voltage(ADC1_CHANNEL_6);
if (battery_voltage < 0) {
    printf("Failed to read battery voltage\n");
} else {
    printf("Battery voltage: %X -> %fV\n", battery_voltage, 2.2*(float)(battery_voltage)/0xFFF);
}

The voltage reported by adc1_get_voltage seems to be incorrect. When measuring a voltage of 1.750V the following is returned: Battery voltage: EFB -> 2.060317V.
I also tried assuming the full scale voltage is 1.6V (3.3V power supply divided by 2). This gives a closer result of 1.484347V, but it is still pretty far away from the expected 1.750V.
The ADC already returns a full-scale voltage at around 1.85V.
Is this a problem with the ADC, ESP-IDF or the documentation?

Calibration and linearization of ADC was only introduced in master 3.0-dev branch.

Does that mean measuring a voltage using the ADC as described in the docs
is pretty much impossible? It woulde be nice if at least the docs mentioned
this.
Since I’m using functions that only seem to work on esp-idf v2.0 I’m kind
of stuck with it. Any recomendations on how to calibrate the ADC manualy?
On 17 November 2017 at 20:06:07, negativekelvin<EMAIL_ADDRESS>wrote:

Calibration and linearization of ADC was only introduced in master 3.0-dev
branch.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/espressif/esp-idf/issues/1283#issuecomment-345335836,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABV9eTIFJc2pQ9l0Ri5CW0rv0T4bBWMJks5s3dkegaJpZM4QiRSP
.

This is most relevant line:

11dB attenuation (ADC_ATTEN_11db) gives full-scale voltage 3.9V (see note below)

As you can read the full-scale is for 3.9V then if you have esp32 powered with 3.3V then you need to "rescale" ADC this way:
measured voltage = measured value* 3.9V/3.3V
Now you have:
1.75 * 3.9/3.3 = 2.068 (battery real voltage)

Based on experience with real hardware, even with esp-idf 3.x, the ADC readings are extremely unreliable.  This is due to ADC reference voltages that vary wildly from module to module.
The API docs suggest outputting the internal reference voltage to a GPIO and measuring it.  Then this value should be used as a calibration value.  However, from practical experience, even this measured value will not be accurate.
The eventual workaround I ended up using is to use a known good reference voltage and to "reverse calculate" the real reference voltage from it.  Since the equation for calibration used in esp-idf has not been made known, I ended up "brute forcing" the calculation.  The end result using this method was +/- 0.01V within the measured LiPo battery voltage.

@OtherCrashOverride Can you share a code snippet of your method?

The eventual workaround I ended up using is to use a known good reference voltage and to "reverse calculate" the real reference voltage from it. Since the equation for calibration used in esp-idf has not been made known, I ended up "brute forcing" the calculation. The end result using this method was +/- 0.01V within the measured LiPo battery voltage.

I’m assuming this works when only using a single module, however I’m working on a project with multiple ESP32 modules (and later maybe the chips directly), so a more scalable solution would be nice.

I dont know how real its equation in this vid, but maybe its worth to check(at 5:35):
https://www.youtube.com/watch?v=RlKMJknsNpo
PS there is a lot wrong informations about read values

ADC on the ESP32 (and later chips) requires calibration. Please refer to the ADC calibration documentation for more details. Closing this issue for now. Please feel free to reopen.


Feature/untangle criteria class

I was in the mood for some refactoring, and decided it is time to go for the white whale, aka the Criteria classes.
I believe those are Propel's achilles heel, since they are the center classes of ActiveQuery and parent class to all Query classes, and completely unmaintainable - with together almost 6000 lines of code, a fuzzy extension hierarchy, and them doing literally dozens of things at once.
In practice, that is acceptable, as long as everything works perfectly. But almost all bugs I have fixed were in those three classes, and I am pretty sure there are more. Also, I am pretty sure that a lot of performance is lost by hacky workarounds, of which I have seen plenty. I think those bugs and workarounds show that the information flow in those classes is not understandable anymore.
So here is a proposal to start getting things back in order by removing sql query generation and execution out of those classes. This already removes more than 500 lines of code.
The basic idea is to have the doSelect(), doInsert(), do...() methods delegate to dedicated classes. Here is an overview of the new classes (not sure if the tree output renders in all browsers):
ActiveQuery
├── BaseModelCriteria.php
├── Criteria.php
├── ModelCriteria.php
├── ...
├── QueryExecutor
│   ├── AbstractQueryExecutor.php
│   ├── CountQueryExecutor.php
│   ├── DeleteAllQueryExecutor.php
│   ├── DeleteQueryExecutor.php
│   ├── InsertQueryExecutor.php
│   ├── QueryExecutionException.php
│   ├── SelectQueryExecutor.php
│   └── UpdateQueryExecutor.php
└── SqlBuilder
    ├── AbstractSqlQueryBuilder.php
    ├── CountQuerySqlBuilder.php
    ├── DeleteQuerySqlBuilder.php
    ├── InsertQuerySqlBuilder.php
    ├── SelectQuerySqlBuilder.php
    └── UpdateQuerySqlBuilder.php

The changes are very thoroughly tested through the Criteria classes and a few new tests.

Hmm, tests fail before they even start:
Tests started in temp /tmp.
Could not read "tests/sqlite.phpunit.xml".
Error: Process completed with exit code 2.

I know it is what everybody says, but I don't see how this is my fault. I have not changed the phpunit.xml files.
Please let me know how to proceed.

Codecov Report

Merging #1747 (60889bc) into master (52603a7) will decrease coverage by 0.98%.
The diff coverage is 94.01%.

@@             Coverage Diff              @@
##             master    #1747      +/-   ##
============================================
- Coverage     87.86%   86.88%   -0.99%
- Complexity     7809     7850      +41
============================================
  Files           267      280      +13
  Lines         22480    22592     +112
============================================
- Hits          19753    19629     -124
- Misses         2727     2963     +236

Flag
Coverage Δ

5-max
86.88% <94.01%> (-0.99%)
:arrow_down:

7.4
86.88% <94.01%> (-0.99%)
:arrow_down:

agnostic
67.50% <70.45%> (-5.94%)
:arrow_down:

mysql
69.99% <92.38%> (+0.14%)
:arrow_up:

pgsql
70.00% <93.18%> (+0.15%)
:arrow_up:

sqlite
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...untime/ActiveQuery/Criterion/AbstractCriterion.php
89.10% <ø> (ø)

.../ActiveQuery/QueryExecutor/InsertQueryExecutor.php
81.25% <81.25%> (ø)

...me/ActiveQuery/SqlBuilder/CountQuerySqlBuilder.php
82.60% <82.60%> (ø)

...tiveQuery/QueryExecutor/DeleteAllQueryExecutor.php
83.33% <83.33%> (ø)

src/Propel/Runtime/ActiveQuery/ModelCriteria.php
95.42% <87.50%> (+0.49%)
:arrow_up:

src/Propel/Runtime/Adapter/Pdo/PdoAdapter.php
91.07% <93.33%> (-0.36%)
:arrow_down:

.../ActiveQuery/QueryExecutor/UpdateQueryExecutor.php
94.44% <94.44%> (ø)

...e/ActiveQuery/SqlBuilder/UpdateQuerySqlBuilder.php
94.64% <94.64%> (ø)

...e/ActiveQuery/SqlBuilder/SelectQuerySqlBuilder.php
94.66% <94.66%> (ø)

...ActiveQuery/SqlBuilder/AbstractSqlQueryBuilder.php
95.34% <95.34%> (ø)

... and 37 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 52603a7...60889bc. Read the comment docs.

Added test fixed from #1751. I'll remove them and rebase when that is resolved.

Small conflict btw.

This is probably not going to get merged, so I am just going to close the PR.
Should you actually want to see this merged, let me know, and I'll fix the conflict and re-open.

From what I can see it cleans up the baseline quite a bit
So it seems worth finishing this up IMO.

Great, I have fixed the conflict

@nederdirk can also maybe help with the review for this to be merged today?

I see 1-2 important comments, otherwise we can probably continue for the beta release.
Lets see if we can merge this today then.

This one fail

$DB_USER not set. Using 'root'.
/usr/bin/mysql  Ver 14.14 Distrib 5.7.35, for Linux (x86_64) using  EditLine wrapper

looks unrelated

Should this be a squash merge?

One of the mysql tests always fails, but I think it is a problem with the pipeline (it's a different one each time)
https://github.com/propelorm/Propel2/pull/1747/checks?check_run_id=3302733292
https://github.com/propelorm/Propel2/runs/3302662191?check_suite_focus=true

Should this be a squash merge?
I'd prefer it


Overlay layer with SVG is only showing on top left tile

Drawing an overlay layer with a simple SVG circle. The circle shows on the top-left tile but the other tiles seem to have a higher z-index and hide the SVG.
Browser: Chrome 61 on Mac OS
render : List Location -> Map msg -> Svg msg
render locations map =
    let
        size =
            Map.size map

        locToScreen =
            Map.locationToScreenPoint map

        pointList =
            List.map locToScreen locations

        circles =
            List.map
                (\{ x, y } ->
                    circle
                        [ cx (toString x)
                        , cy (toString y)
                        , r "20"
                        , stroke "red"
                        ]
                        []
                )
                pointList
    in
        svg [] circles

layer : List Location -> Layer msg
layer locations =
    Layer.overlay |> Layer.custom (render locations)

Never mind, being stupid. Note to future self: Make sure to set the correct SVG canvas size ...

Glad you figured it out. Setting the dimensions was not needed in an earlier iteration as the svg element was created automatically. I'll have this in mind when writing some proper documentation, soon.


Recruitment app front page update

Add a notice to the bottom that states "Low effort applications will be rejected". Make it somewhat big and in bold text, I guess.

Under step 2, "Add your EVE api keys", please change:
"Add your EVE API Keys - Include ALL of your accounts"

DONE.


vardict did not combine nearby SNVs

Hi, I encounter a complex mutation, which is composed of two SNVs, which is separated by one bp,  but vardict did not report this as a complex mutation
reference  ACC
read          TCT

@lituan, hello!
Sorry for the late reply!
There were updates regarding your question in the last version of VarDict, and now SNVs a combined better. Perhaps you can try the last version and if the problem repeats, please, provide the BAM file fragment to reproduce it.

Hi, I've also encountered this issue before. Specifically, vardict does not combine SNPs that are separated by one or more base pairs (user defined by -X parameter) into a complex variant. This isn't if one or more of the complex variant is an indel. You mentioned above that the latest version of VarDict address this issue. Could you please clarify whether its the perl or the java version? And, could you please specify the release version? Thanks a lot!

@andurill, hello!
It will be great if you can check this on master branch from Perl version (i.e. this commit: https://github.com/AstraZeneca-NGS/VarDict/commit/0d5315e005664673dae1d4bf859e48439010da6f). The changes about MNV were made in October 2018.
If it will reproduce, could you please share the small part of BAM for one of such cases? It will be very helful!
Thank you!

Hi @andurill, since you created another issue, maybe you can take a look at this one? :)
Have you checked if this appears on new versions of VarDict? I did not find such cases, so if you succeeded, let me know!
Thank you!

Hi @PolinaBevad , when you had suggested that I try the perl version to address this issue, I had some difficulties setting up and running Vardict perl on our server and in the midst of other tasks, I completely forgot about this ticket. Apologies.
I tested VardictJava_1.5.8 on several complex variants, and this vardict does seem to call MNVs properly (based on the argument provided to the '-X' parameter). So, I understand that the changes concerning MNVs in the perl version has been added to the VardictJava?
I have attached two screenshots and the corresponding mutation calls by Vardict.

17	7578448	.	GCCAT	CCCAG	253	PASS	STATUS=StrongSomatic;SAMPLE=TEST;TYPE=Complex;DP=997;VD=209;AF=0.2096;SHIFT3=0;MSI=2.000;MSILEN=1;SSF=0;SOR=0;LSEQ=GCTGTGACTGCTTGTAGATG;RSEQ=GGCGCGGACGCGGGTGCCGG	GT:DP:VD:ALD:RD:AD:AF:BIAS:PMEAN:PSTD:QUAL:QSTD:SBF:ODDRATIO:MQ:SN:HIAF:ADJAF:NM	0/1:997:209:87,122:279,498:777,209:0.2096:2,2:24.2:1:32.9:1:0.14649:1.27:60:208:0.2125:0.0231:1.9	0/0:308:0:0,0:74,234:308,0:0:2,0:23.2:1:31.5:1:1:0:60:60.6:1:0:0.1

9	21971199	.	CATC	TATT	204	PASS	STATUS=StrongSomatic;SAMPLE=TEST;TYPE=Complex;DP=443;VD=133;AF=0.3002;SHIFT3=0;MSI=2.000;MSILEN=3;SSF=0;SOR=0;LSEQ=GCCACTCGGGCGCTGCCCAT;RSEQ=ATGACCTGCCAGAGAGAACA	GT:DP:VD:ALD:RD:AD:AF:BIAS:PMEAN:PSTD:QUAL:QSTD:SBF:ODDRATIO:MQ:SN:HIAF:ADJAF:NM	0/1:443:133:26,107:50,242:292,133:0.3002:2,2:25.7:1:29:1:0.5856:1.18:41:9.231:0.2906:0.0497:2.3	0/0:204:0:0,0:36,167:203,0:0:0,0:0:0:0:0:1:0:0:0:0:0:0
The vardict command I used in both cases:
../vardict/VERSIONS/VarDictJava_1.5.8/build/install/VarDict/bin/VarDict -th 10 -G Homo_sapiens_assembly19.fasta -N TEST -b "Tumour.bam|Normal.bam" -f 0.02 -C -z 1 -u -c 1 -g 4 -S 2 -r 1 -E 3 -X 5 -x 2000 Variant.bed | ../vardict/VERSIONS/VarDictJava_1.5.8/build/install/VarDict/bin/testsomatic.R | ../vardict/VERSIONS/VarDictJava_1.5.8/build/install/VarDict/bin/var2vcf_paired.pl -N TEST -f 0.02
Thank you so much for implementing this feature in Vardict Java!

@PolinaBevad  An unrelated question: Is it possible to add Vardict version used to the output vcf? I believe vcf4.3 allows that. Something like ##source=VarDict_v1.5.8 immediately following the line ##fileformat=VCFv4.3? I think having the version included in the vcf will be useful during testing/validation.

@andurill , yes, I think we can make it. Thanks for the offer!

Hi @andurill , I will close the issue because I added PR for version numbers in VCF: https://github.com/AstraZeneca-NGS/VarDict/pull/136


Can't use ReactiveController if not using Typescript

Description
Want to use ReactiveController element in a non Typescript application but it seems it is not exported.
I'm using<EMAIL_ADDRESS>Steps to Reproduce

Write this code

import {ReactiveController} from 'lit';

class FetchDataController extends ReactiveController {}

See this output...

Expected Results
ReactiveController to be correctly imported.
Actual Results
'ReactiveController' is not exported by node_modules\lit\index.js, imported by src\controllers\fetch-data-controller.js

Browsers Affected

[x] Chrome
[x] Firefox
[x] Edge
[x] Safari 11
[x] Safari 10
[x] IE 11

Example
I have this repo where you can:
npm install

and then
npm run build

This is the output:

Here is a basic example.

The ReactiveController is an interface and not a class. When using JS, you need to declare a class which does not extend anything:
class FetchDataController {
}

My bad :man_facepalming:
Thanks for the explanation.


How to ignore fields when updating

    @CreatedBy
    @JsonIgnore
    private Long createdBy;

    @CreatedDate
    @JsonIgnore
    private LocalDateTime createdDate;

Is there any way to ignore then (raw sql is contains: set created_by = null, set created_date = null) when updating.
Caused by: java.sql.SQLIntegrityConstraintViolationException: Column 'created_by' cannot be null
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117) ~[mysql-connector-java-8.0.26.jar:8.0.26]
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.26.jar:8.0.26]
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953) ~[mysql-connector-java-8.0.26.jar:8.0.26]
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1092) ~[mysql-connector-java-8.0.26.jar:8.0.26]
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1040) ~[mysql-connector-java-8.0.26.jar:8.0.26]
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1350) ~[mysql-connector-java-8.0.26.jar:8.0.26]
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:1025) ~[mysql-connector-java-8.0.26.jar:8.0.26]

You mean like transient fields that are not present in the table?

You mean like transient fields that are not present in the table?

Only when updating, When I call org.springframework.data.repository.CrudRepository#save the generated SQL has created fields, But they only exist when they are created, Is this spring-data-jdbc's auditing bug?

It's possible but you have to do it manually by specifying a projection in your query that doesn't have the fields you don't need. Default projection contains all fields, example of customization is here - https://github.com/infobip/infobip-spring-data-querydsl#JDBCProjections.

Hm, not sure about updates though (this is only for select), it'd have to have tighter integration with Spring Data JDBC.

It may be a spring-data-jdbc problem, I can only temporarily attach the corresponding field when updating to avoid it being empty


Program hangs in multi threaded environment

Hi
We are using Jaydebeapi 1.2.4 & jpype 1.3.0 to make ms sql connection in 3 different multithreaded cron job modules which runs every 2 minutes.
I can see connections are happening but when all these jobs starts in parallel after first runs everything hangs forever.
my python program exiting but looks like JVM is still running.
job1 - every 2 min - 10 threads for to connect & query multiple sql servers
job2 - every 2 min- 10 threads for to connect & query multiple sql servers
job3 - every 2 min- 10 threads for to connect & query multiple sql servers
all hangs after first run , is there any way to keep them running as per crontab scheduled (every 2 min) ?

I am not sure how your code is structure such that I could address your issue.  It is not clear if this is a Jaydebeapi, JPype, or user code problem.  It could even be an sql driver problem.   I think you need to do some debugging to see if you can isolate what exactly is causing the hang.


Upgrade tm_version to 0.22.8

Codecov Report

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

That's not related to the version of Tendermint, and might be updated as part of the last PR before the release of 2.0.0b4 (although it's not strictly necessary because the docs are quite clear about looking up the list of releases and putting the latest one in there).


Should alignments methods be abstract?

Currently, the BaseDataInterface requires child classes to implement methods related to alignment, as outlined in the following link:
https://github.com/catalystneuro/neuroconv/blob/5c6b5d982bc896c5ec05b9cc417f5040e4d967ef/src/neuroconv/basedatainterface.py#L44-L90
This however,  breaks compatibility with previous conversion code, as behavior interfaces often did not implement these methods, causing them to fail under the current contract.
However, the second point could be seen as a "feature, not a bug" situation. As @CodyCBakerPhD suggests, the intention may be to encourage developers to think carefully about these issues and implement empty methods with a pass statement if no further action is needed.
To summarize so far
Pros:

Encourages developers to think about alignment from the start which is an important issue.
Can be bypassed easily by defining an empty method.

Cons:

Breaks compatibility with previous code.
Introduces more frictions in development.  It increases development time by imposing additional requirements on developers. In other words, anyone creating a new interface now needs to implement these methods and consider their implications, which incurs an upfront cost.

@CodyCBakerPhD points out that past conversions should have requirements that allow them to run with those specific requirements. However, I am not sure how careful we have been with this so I am less sure.

Thanks @h-mayorquin , this is a great summary.
For me, I would prefer a solution that does not break backwards compatibility. For example, if a lab wanted to update their conversion to use the new Bruker interface, or any interface we develop in the future, this would require them to upgrade their neuroconv version, which would break all of their existing custom interfaces. While we don't necessarily guarantee that labs will be able to upgrade, I think it makes sense to try to adopt a development pattern that allows them to do so.
For me, a NotImplementedError when a user tried to time-align is a pretty good signal, and I'm not crazy about having to add a bunch of NotImplemented methods to interfaces when I even need a time aligning feature anyway.

Can be bypassed easily by defining an empty method.

Or by inheriting from a more aptly named base interface that does that for them

Introduces more frictions in development. It increases development time by imposing additional requirements on developers. In other words, anyone creating a new interface now needs to implement these methods and consider their implications, which incurs an upfront cost.

The friction was always there. It was just hidden; we used to perform alignment in __init__ or run_conversion methods in an ad-hoc way per interface. And for anyone unaware that this is a requirement of NWB, they would not be aware of any of this and ultimately create an NWB file that wasn't temporally aligned, which wouldn't be caught until the end of the process (uploaded to DANDI and contacted by us) which is arguably the worst time to encounter the issue.
The point of making these abstract is to bring this issue into the light from the very start.

Breaks compatibility with previous code.

Previous code in past projects should have always used strict version pinning to freeze the environment to ensure stability.
There are actually many reasons why a given project not using strict version pinning wouldn't work in a modern installation environment (usually changes to SI and other more subtle changes to NeuroConv that have broken compatibility, etc.); this particular change is just one of many potential things that could cause a break.
There's also a more central reason related to previous code; previous interfaces used ad-hoc methods of alignment in either __init__ or run_conversion of an interface or, more commonly, in those methods of the NWBConverter itself. Those past approaches would not be in agreement with the new workflow, and might not even be guaranteed to work in conjunction with the new core interfaces to that extent either.
As such, previous pipelines would need some refactoring to use the latest NeuroConv features, which is expected with or without this change.

For me, a NotImplementedError when a user tried to time-align is a pretty good signal,

The problem with this is at no point in any pipelines are we enforcing these methods to be used. If someone outside the team, unaware of this feature, put together their own pipelines for an NWB conversion, they might never know these methods exist, or how to use them, or why to use them.
They could simply make their custom interfaces, glue them together with a bunch of core interfaces for their data streams, and be happy creating an NWB file even though none of the data streams would be in sync with each other.
But if the methods are abstract, they get warned about it very early on in an attention-grabbing way to emphasize the importance of these methods, especially for custom behavior data.

I would be open to a soft deprecation cycle however, where these do not start off as abstract but then become abstract at a specified point in time with plenty of warning leading up to it that people need to start specifying if data is pre-aligned, or if not, how to access the time information so that it can be
Would that satisfy the question for now @h-mayorquin?

Or by inheriting from a more aptly named base interface that does that for them (the TemporallyAlignedDataInterface)

Is this a thing that we have already? I could not find it on the repo.
@CodyCBakerPhD
OK. Would it be fair to describe your position as you want to put a bump in the road of users to educate them? I disagree with that philosophy of usability (as we have talked about this before) but let's argue from within in.  As a preliminar framework there are three things:

Where is the bump (e.g. initialization vs run_time or somewhere else)
How strong is the bump  (a warning, an assertion, forcing you to overide a parameter or implement a class).
How does the bump educates?

Let's say that we agree with the current framework: things should be done at __init__ and that the bump is such that you can't use the interface unless you overide the methods. Even if I think we can do better, my biggest concern remains 3. Look at how my experience looked like:
I tried to implement a new BehaviorInterface without those methods and got the following assertion:
TypeError: Can't instantiate abstract class HuzsarBehaviorInterface
with abstract methods align_timestamps, get_original_timestamps, get_timestamps

I don't feel this is very education or useful at the moment. The only reference to alignment there is that there is a method called align_timestamps but .. what do you do with them? Do we have current examples that we can point users on how to implement and use them? When will they use those methods? I am an experience users of the library and it was not obvious to me at first glance. I had to go and look at how they are implemented for spikeinterface objects to get an idea (And I am not sure I understand them fully now).
In summary, I think that we need a better way of educating users on how to use "the neuroconv way of alignment". If we are going to force them to use that framework in order to user our intefaces I think we should offer at least some documentation and examples. That is, I disagree with making an education bump that is this strong without good education materials and resources.

Parent classes are usually more general, and subclassses are more specific. I think it's a bit of an anti-pattern to define DataInterface to require methods and then have those made unnecessary by a child class. How about the reverse?:
class TemporallyAlignableDataInterface(BaseDataInterface):
    @abstractmethod
    def get_original_timestamps(self) -> np.ndarray:
        """
        Retrieve the original unaltered timestamps for the data in this interface.

        This function should retrieve the data on-demand by re-initializing the IO.

        Returns
        -------
        timestamps: numpy.ndarray
            The timestamps for the data stream.
        """
        raise NotImplementedError(
            "Unable to retrieve the original unaltered timestamps for this interface! "
            "Define the `get_original_timestamps` method for this interface."
        )

    @abstractmethod
    def get_timestamps(self) -> np.ndarray:
        """
        Retrieve the timestamps for the data in this interface.

        Returns
        -------
        timestamps: numpy.ndarray
            The timestamps for the data stream.
        """
        raise NotImplementedError(
            "Unable to retrieve timestamps for this interface! Define the `get_timestamps` method for this interface."
        )

    @abstractmethod
    def align_timestamps(self, aligned_timestamps: np.ndarray):
        """
        Replace all timestamps for this interface with those aligned to the common session start time.

        Must be in units seconds relative to the common 'session_start_time'.

        Parameters
        ----------
        aligned_timestamps : numpy.ndarray
            The synchronized timestamps for data in this interface.
        """
        raise NotImplementedError(
            "The protocol for synchronizing the timestamps of this interface has not been specified!"
        )

Then all align-able interfaces, e.g. RecordingExtractorInterface etc. will inherit from TemporallyAlignableDataInterface. Any custom interfaces would continue to inherit from BaseDataInterface. The fact that these interfaces do not inherit from TemporallyAlignableDataInterface would indicate explicitly that they are not temporally align-able. This (I think) satisfy @CodyCBakerPhD 's desire for explicitness of which interfaces do and don't support alignment while maintaining the custom classes defined previously. Thoughts on this?

@h-mayorquin Thanks for all the feedback, this is helpful to get an outside perspective on

OK. Would it be fair to describe your position as "you want to put a bump in the road of users to educate them about alignment"? I disagree with that philosophy of usability (as we have discussed before when discussing about the schema) but let's argue from within in. As a preliminary framework here are three points:

Yep. I know it's not great for usability of NeuroConv (the GUIDE is of course the ultimate answer to this however) but it is great for the usability of NWB itself; most users that create an NWB file (with or without NeuroConv) and upload it to DANDI have no idea that all time references have to be with respect to the session start time. It's a Best Practice, but we know that most people don't bother reading through all of those before going through the process.
As such, there are no bumps in any road ATM to draw users attention to such a critical detail. PyNWB cannot tell and won't complain; there are 1 or 2 indirect checks in the NWB Inspector, but it's a fairly difficult thing to determine programmatically after the file is created.
So this is the only way I can think of to draw users attention until we add a page on it to the GUIDE workflow (at least several months away from that feature if not more).
Do you have any better ideas? Without it, it basically means that even if you use NeuroConv, if you don't use it properly you still won't have a valid NWB file

Where is the bump (initialization vs run_time or somewhere else)
How strong is the bump (a warning, an assertion, forcing you to overide a parameter or implement a class, etc).
How does the bump educates?

__init__, as early as possible
Forcing to implement 3 methods
My hope is that they are at least curious enough to read the updated documentation on how to make a data interface (WIP) which will lead them to the documentation specifically about the variety of temporal alignment procedures (also WIP)

Your other questions would hopefully be satisfied by the documentation on the feature, which is still a work in progress and could use some help getting it finished
I'm OK with Ben's solution adding this as a pure feature for now, but I do think we eventually need to consider something stronger

@CodyCBakerPhD how about also if BaseDataInterface.__init__ includes something like:
if not self.no_temporal_alignment and not isinstance(TemporallyAlignableDataInterface):
    warn.warning(f"{self.__name__} is not a temporally align-able interface, so it lacks the methods to synchronize this interface with other interfaces. If this is needed, please see the documentation for aligning interfaces here: [url].}")

A soft warning like that could satisfy the concern; what do you think @h-mayorquin?

@CodyCBakerPhD

As such, there are no bumps in any road ATM to draw users attention to such a critical detail. PyNWB cannot tell and won't complain; there are 1 or 2 indirect checks in the NWB Inspector, but it's a fairly difficult thing to determine programmatically after the file is created.

Yeah, my initial instinct was that, this should be a an inspector issue but soon I realized it is not trivial. Maybe we should still brainstorm some heuristics in that front at some point.
I like @bendichter solution. It does not break backwards compatbility and also gives a warning to users about it that we can use to point them to the documentation on how to this.


Added a definition for the API URL for users outside the US

This resolves issue #161 by added a variable to specify the endpoint. In Canada, we must use api.gm.ca instead of .com

Hi, thanks for the contribution. If you limit the PR to just the API url changes I'd be happy to merge it!


Adding new properties to elbv2 Listener Action

AuthenticateCognitoConfig
AuthenticateOidcConfig
FixedResponseConfig
Order
RedirectConfig

Resolves #1240

The documentation is wrong. I've added a commit to reflect the fact that TargetGroupArn is no longer required.

May be a duplicate of https://github.com/cloudtools/troposphere/pull/1140

Via the mailing list it was noted that the merge of #1140 did not include AuthenticateCognitoConfig or AuthenticateOidcConfig. I just merged those in from the PR. Thanks!


Unknown extension error.

I have lost a projects source to the 'Could not load project: Error: Unknown extension' error because I am unable to open it.
Is there a way I can get the original project back without it loading the non-existing extension?

download the SB3, unzip it, open project.json, scroll til you see extentions, delete that extention, rezip it all back into an SB3

download 1.7.0beta0 for more info about the extension name

look at the extension name

rename and replace ".sb3" by ".zip"

unzip it
open "project.Json" with notepad or something like that (but not Word)

press control and f (f for find)
type in "Extensions"

press enter
you will find "extension" Highlight
after normaly you will find urls
delete all of them if you want or you can delete the one that dosen't work
save the file (with the same name)
press control + A
right click and zip it
rename back to projectname.sb3
run it and see

Oh and btw you need to load the url BEFORE you open the project with 1.6.2 and earlier

if you're still stuck on this, please comment and it will be reopened


npm run format hangs

npm run format fails for me (Mac). The last output is from eslint, I guess and then it never resolves/times out/no errors printed:
wpt-metadata/README.md 2ms

@thiagowfx

Already fixed via https://github.com/GoogleChromeLabs/chromium-bidi/commit/ce16c831952f1a18ce2e04ddea8b1c7d0ff52b80
-    "format": "npm run eslint && npm run prettier & npm run yapf",
+    "format": "npm run eslint && npm run prettier && npm run yapf",


How can I download the pretrained model?

How can I download the pretrained model mentioned in the training script. "--pretrained 2 --freeze_weight 3 --weight_name resnet50-2.pth"

I didn't see any information about which pretrained model the encoder model used in the paper, maybe I overlooked it. May I ask if you can provide more information about the pretrained encoder used.

I'm using wide-resnet-50-2-export-5ae25d50.pth, it works

We used pretrained model downloaded from torchvision official website. For resnet50-2.pth, you can download it by this link.

The difference between IMAGENET1K_V1 and IMAGENET1K_V2 version of the pretrained model lies in different training configurations.