mAP is too low but detect objects well with trained ckpt

Hi @LevinJ ,I apply SSD_tensorflow_VOC to my own datasets.I first Train SSD specific weights with self.max_number_of_steps = 10000,then Train VGG16 ad SSD specific weights with self.max_number_of_steps = 900000.First step has finished and second step has reached 60000.My loss is around 1.8 ,training mAP is 0.18 and testing mAP is 0.17. However,when I use trained ckpt to detect objects in testing pictures,it does well! So I go to your codes and website https://sanchom.wordpress.com/tag/average-precision/ to learn how mAP is computed. I don't find anything wrong. I'm quite confused. The testing results with trained ckpt don't match the mAP with 0.17.

I have found the reason.My label is 4, I should construct corresponding dictionary variable,which stores the AP of every label.

@LevinJ , For all poor souls out there that still try to figure out why there is such a big gap in evaluation:

From the previous repo, the issue was in the generation of tfrecords. The tfrecords have the difficults clamped to 0 , therefore the ground truths are wrong. All ground truths are labeled as non difficults where they shouldn't, because they are sorted out in the bboxes_matching method.  The evaluation evaluates on difficults also eventually which gives this big gap.  The original caffe implementation achieves 0.69 mAP on evaluation with difficult ground truths.
Note that , you should train on difficults though, they shouldn't be excluded from the training.

I am leaving this comment here since it's the most recent  regarding mAP. Also haven't tested your code but I see that the script there is the same, so I am gonna assume that the error persists. I hope this helps.

Hi @bnbhehe , thanks for sharing your findings!
Can you be a bit more specific about "The tfrecords have the difficults clamped to 0 , therefore the ground truths are wrong. All ground truths are labeled as non difficults where they shouldn't, because they are sorted out in the bboxes_matching method."?
Which lines of code clamped the difficulites attribute of training/evaluation samples to 0?

in pascal_to_tfrecords script there is this line
  if obj.find('difficult'):
the thing is that the find function is NoneType therefore this check is always false. I decoded the tfrecords and there were no difficults. everything had a value of 0 therefore you always evaluate on them. For training though you need them thats why they are not called in the train script

Hi @bnbhehe, not sure if it's an environment setup related issue, but it looks  obj.find('difficult') can return a valid object in my desktop, as you can see below.

I checked the annotation file, there is indeed a difficult field,
<object>
		<name>dog</name>
		<pose>Left</pose>
		<truncated>1</truncated>
		<difficult>0</difficult>
		<bndbox>
			<xmin>48</xmin>
			<ymin>240</ymin>
			<xmax>195</xmax>
			<ymax>371</ymax>
		</bndbox>
	</object>

What are your thoughts on this?

I would suggest you check if the remove_difficult flag has any influence for you. If it does not then the tf records are corrupted. I had python 3. 5and the find function was not doing what i wanted.
Yes it returns but its a NoneType and the if check will always be false.

It should return but its NoneType and the check will fail. Only if you call .text that gives a value but if the label is not present it will crash. I used python 3.5 and didnt have the behavior i wanted with this xml parser therefore i rewrote the process_image in the tfrecords script with xmltodict.
I would suggest you check the remove_difficult flag in eval script. It would not affect the map if you turn it off. (spoiler alert: for me it didnt)
I would also make a small decoding script to see the number of difficult annotations present.
Please reply me on what is the best map you get if this is fixed.

Hi @bnbhehe , I checked the codes a bit more closely and agree that you are correct, currently all bounding boxes are mistakenly labelled as non-difficult.
This is because obj.find('difficult') returns an Element object, the object has a len attribute, which equals to zero, as a result, if obj.find('difficult'): is always evaluated as False. For those who are interested, see here for more details. To fix the bug, one could simply replace the line as if obj.find('difficult') is not None:
As for evaluating the model on the non-difficult ground truth labels, I am currently quite tied up with other stuff, and might do it when i have some time :)
By the way, can you tell me where you find that "The original caffe implementation achieves 0.69 mAP on evaluation with difficult ground truths."?  Thanks.

@LevinJ, I trained it myself on Caffe. 2 times also. I reproduced the results of the paper and got 70 % and 69 % on evaluation with difficults. If you have the original implementation is basically line 415 in this script. You switch that to True.

@Janezzliu I got the same problem. I wondered in which file to construct the dictionary.


fatal error: xtensa/tie/xt_core.h: No such file or directory

While Make of the project this error is thrown.
/home/kaushikdas/esp/amazon-freertos/lib/FreeRTOS/portable/ThirdParty/GCC/Xtensa_ESP32/include/portmacro.h:77:32: fatal error: xtensa/tie/xt_core.h: No such file or directory
compilation terminated.
/home/kaushikdas/esp/esp-idf/make/component_wrapper.mk:285: recipe for target 'lib/mqtt/aws_mqtt_agent.o' failed
make[1]: *** [lib/mqtt/aws_mqtt_agent.o] Error 1
/home/kaushikdas/esp/esp-idf/make/project.mk:467: recipe for target 'component-amazon-freertos-common-build' failed
make: *** [component-amazon-freertos-common-build] Error 2

Hi,
Would you please share some more details about your setup:

Which platform are you using (Windows/Linux/Mac)?
What is the installation path of tool chain?
If you are using Windows, you may be hitting maximum file path length problem as mentioned here: https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_espressif.html. To confirm would you tell us what is the location of msys32 and Amazon FreeRTOS source code?

Thanks.

I am using Ubuntu 16.04.
Path is home/esp...
This is the error Everytime I try make flash.
I have just started with the Aws freeRTOS can you please guide me how can I
connect it to local mqtt broker instead of Aws.
Thanks and Regards,
Kaushik Das
On Wed, Jun 6, 2018, 11:53 PM Gaurav-Aggarwal-AWS<EMAIL_ADDRESS>wrote:

Hi,
Would you please share some more details about your setup:

Which platform are you using (Windows/Linux/Mac)?
What is the installation path of tool chain?
If you are using Windows, you may be hitting maximum file path
length problem as mentioned here:
https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_espressif.html.
To confirm would you tell us what is the location of msys32 and Amazon
FreeRTOS source code?

Thanks.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/aws/amazon-freertos/issues/33#issuecomment-395166748,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AZoRDFmDmtlsP33ypDFIG4QepeVPniW7ks5t6B4UgaJpZM4UcmUg
.

I started with a fresh Ubuntu 16.04 machine and I was able to build by following the getting started guide here: https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_espressif.html
Here is my command history:
sudo apt-get update
sudo apt install build-essential
sudo apt install gcc git wget make libncurses-dev flex bison gperf python python-serial
wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
mkdir esp
cd esp
tar -xzf ~/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
cd ..
vim ~/.profile
source ~/.profile
printenv PATH
git clone https://github.com/aws/amazon-freertos.git
cd amazon-freertos/demos/espressif/esp32_devkitc_esp_wrover_kit/make/
make

As mentioned in the getting started guide - "Do not install the ESP-IDF library from Espressif, Amazon FreeRTOS already contains this library. In addition, make sure the IDF_PATH environment variable has not been set."
For connecting to Local MQTT Broker, you need to make the following changes:

Change the broker endpoint - clientcredentialMQTT_BROKER_ENDPOINT macro in file https://github.com/aws/amazon-freertos/blob/master/demos/common/include/aws_clientcredential.h
If your local broker uses TLS, update the keys in file https://github.com/aws/amazon-freertos/blob/master/demos/common/include/aws_clientcredential_keys.h
If your broker does not use TLS, define the macro democonfigMQTT_AGENT_CONNECT_FLAGS to 0 in file https://github.com/aws/amazon-freertos/blob/master/demos/espressif/esp32_devkitc_esp_wrover_kit/common/config_files/aws_demo_config.h

Hope that helps.
Thanks.

I worked. It was happening because of IDF path.

If i just put my local broker address in endpoint as you suggested will it work?

I am glad that it worked for you.
In order to use TLS, you need to set device certificate and key in file https://github.com/aws/amazon-freertos/blob/master/demos/common/include/aws_clientcredential_keys.h. In addition to that you need to supply the server certificate in MQTT Connect parameters (pcCertificate and ulCertificateSize members of the following struct):
typedef struct MQTTAgentConnectParams
{
    const char * pcURL;             /**< The URL of the MQTT broker to connect to. */
    BaseType_t xFlags;              /**< Flags to control the behavior of MQTT connect. */
    BaseType_t xURLIsIPAddress;     /**< Deprecated. Set the mqttagentURL_IS_IP_ADDRESS bit in xFlags instead. */
    uint16_t usPort;                /**< Port number at which MQTT broker is listening. This field is ignored if the mqttagentUSE_AWS_IOT_ALPN_443 flag is set. */
    const uint8_t * pucClientId;    /**< Client Identifier of the MQTT client. It should be unique per broker. */
    uint16_t usClientIdLength;      /**< The length of the client Id. */
    BaseType_t xSecuredConnection;  /**< Deprecated. Set the mqttagentREQUIRE_TLS bit in xFlags instead. */
    void * pvUserData;              /**< User data supplied back as it is in the callback. Can be NULL. */
    MQTTAgentCallback_t pxCallback; /**< Callback used to report various events. In addition to other events, this callback is invoked for the publish
                                     *   messages received on the topics for which the user has not registered any subscription callback. Can be NULL. */
    char * pcCertificate;           /**< Certificate used for secure connection. Can be NULL. If it is NULL, the one specified in the aws_credential_keys.h is used. */
    uint32_t ulCertificateSize;     /**< Size of certificate used for secure connection. */
} MQTTAgentConnectParams_t;

Also, if your broker runs on port 8883, the value of xFlags should not contain mqttagentUSE_AWS_IOT_ALPN_443:
xConnectParams.xFlags = mqttagentREQUIRE_TLS;

You will need to change the code in function prvCreateClientAndConnectToBroker in the file https://github.com/aws/amazon-freertos/blob/master/demos/common/mqtt/aws_hello_world.c.
Hope that helps.
Thanks.

Did the same thing. Configured the keys also. But it is not connecting. No error while packet tracing also. Can i also put CA cert  in place of clientcredentialJITR_DEVICE_CERTIFICATE_AUTHORITY_PEM ??

You should not need to change clientcredentialJITR_DEVICE_CERTIFICATE_AUTHORITY_PEM in order to connect to local broker.
Which local broker are you using? If that comes with a client, can you verify that key and certificates work with that client?

Thanks It worked.


connectivity test failed: timeout reached waiting for deployment cilium-test/echo-same-node to become ready

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
root@f1c1d4673b18:/go/src/github.com/cilium/cilium# cilium connectivity test
ℹ  Monitor aggregation detected, will skip some flow validation steps
✨ [kind-kind] Creating namespace cilium-test for connectivity check...
✨ [kind-kind] Deploying echo-same-node service...
✨ [kind-kind] Deploying DNS test server configmap...
✨ [kind-kind] Deploying same-node deployment...
✨ [kind-kind] Deploying client deployment...
✨ [kind-kind] Deploying client2 deployment...
✨ [kind-kind] Deploying echo-other-node service...
✨ [kind-kind] Deploying other-node deployment...
✨ [host-netns] Deploying kind-kind daemonset...
✨ [host-netns-non-cilium] Deploying kind-kind daemonset...
ℹ  Skipping tests that require a node Without Cilium
⌛ [kind-kind] Waiting for deployment cilium-test/client to become ready...
⌛ [kind-kind] Waiting for deployment cilium-test/client2 to become ready...
⌛ [kind-kind] Waiting for deployment cilium-test/echo-same-node to become ready...
connectivity test failed: timeout reached waiting for deployment cilium-test/echo-same-node to become ready (last error: only 0 of 1 replicas are available)

Cilium Version
https://github.com/cilium/cilium/commit/f323319e6af59cf2e4f0a0cbaca38ec116905998
root@f1c1d4673b18:/go/src/github.com/cilium/cilium# cilium version
cilium-cli: v0.15.18 compiled with go1.21.5 on linux/amd64
cilium image (default): v1.14.4
cilium image (stable): v1.14.5
cilium image (running): 1.16.0-dev
Kernel Version
root@f1c1d4673b18:/go/src/github.com/cilium/cilium# uname -a
Linux f1c1d4673b18 6.2.0-39-generic #40~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 16 10:53:04 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
Kubernetes Version
root@f1c1d4673b18:/go/src/github.com/cilium/cilium# kubectl version
Client Version: v1.29.0
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.27.1
WARNING: version difference between client (1.29) and server (1.27) exceeds the supported minor version skew of +/-1
Sysdump
cilium-sysdump-20240108-044516.zip
Relevant log output
root@f1c1d4673b18:/go/src/github.com/cilium/cilium# kubectl get pods -A
NAMESPACE            NAME                                         READY   STATUS             RESTARTS      AGE
cilium-test          client-75bff5f5b9-ddqwz                      1/1     Running            0             11m
cilium-test          client2-88575dbb7-k97zq                      1/1     Running            0             11m
cilium-test          echo-other-node-5c6df4fb89-zr8v4             1/2     CrashLoopBackOff   7 (9s ago)    11m
cilium-test          echo-same-node-55fdb9f64c-8wh9t              1/2     CrashLoopBackOff   7 (22s ago)   11m
cilium-test          host-netns-29vb7                             1/1     Running            0             11m
cilium-test          host-netns-54zxr                             1/1     Running            0             11m
cilium-test          host-netns-hd895                             1/1     Running            0             11m
cilium-test          host-netns-zhhzd                             1/1     Running            0             11m
kube-system          cilium-bstjx                                 1/1     Running            0             26m
kube-system          cilium-cpr7r                                 1/1     Running            0             26m
kube-system          cilium-nckts                                 1/1     Running            0             26m
kube-system          cilium-operator-65b4ccb79f-kgzp2             1/1     Running            0             26m
kube-system          cilium-t68xh                                 1/1     Running            0             26m
kube-system          coredns-5d78c9869d-ds5mj                     1/1     Running            0             28m
kube-system          coredns-5d78c9869d-pznmg                     1/1     Running            0             28m
kube-system          etcd-kind-control-plane                      1/1     Running            0             29m
kube-system          kube-apiserver-kind-control-plane            1/1     Running            0             29m
kube-system          kube-controller-manager-kind-control-plane   1/1     Running            0             29m
kube-system          kube-scheduler-kind-control-plane            1/1     Running            0             29m
local-path-storage   local-path-provisioner-6bc4bddd6b-7svjj      1/1     Running            0             28m

root@f1c1d4673b18:/go/src/github.com/cilium/cilium# kubectl logs -n cilium-test echo-other-node-5c6df4fb89-zr8v4
Defaulted container "echo-other-node" out of: echo-other-node, dns-test-server

  \{^_^}/ hi!

  Loading /default.json
  Loading /middleware.js
  Done

  Resources
  http://:8080/private
  http://:8080/public
  http://:8080/auth-header-required

  Home
  http://:8080

  Type s + enter at any time to create a snapshot of the database
  Watching...

Error: EMFILE: too many open files, watch '/'
    at FSWatcher.<computed> (node:internal/fs/watchers:247:19)
    at Object.watch (node:fs:2452:36)
    at /usr/local/lib/node_modules/json-server/lib/cli/run.js:163:10 {
  errno: -24,
  syscall: 'watch',
  code: 'EMFILE',
  path: '/',
  filename: '/'
}

root@f1c1d4673b18:/go/src/github.com/cilium/cilium# kubectl logs -n cilium-test echo-same-node-55fdb9f64c-8wh9t
Defaulted container "echo-same-node" out of: echo-same-node, dns-test-server

  \{^_^}/ hi!

  Loading /default.json
  Loading /middleware.js
  Done

  Resources
  http://:8080/private
  http://:8080/public
  http://:8080/auth-header-required

  Home
  http://:8080

  Type s + enter at any time to create a snapshot of the database
  Watching...

Error: EMFILE: too many open files, watch '/'
    at FSWatcher.<computed> (node:internal/fs/watchers:247:19)
    at Object.watch (node:fs:2452:36)
    at /usr/local/lib/node_modules/json-server/lib/cli/run.js:163:10 {
  errno: -24,
  syscall: 'watch',
  code: 'EMFILE',
  path: '/',
  filename: '/'
}

Anything else?
Reproducible procedure: https://docs.cilium.io/en/stable/contributing/testing/e2e/
Code of Conduct

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

I saw this troubleshooting note in the KinD documents.
https://kind.sigs.k8s.io/docs/user/known-issues/#pod-errors-due-to-too-many-open-files
The document is suggesting to edit the /etc/sysctl.conf file and add these lines:
fs.inotify.max_user_watches = 524288
fs.inotify.max_user_instances = 512

Does that resolve the problem?

Had the same issue when increasing the number of worker nodes, upping the inotify resources like @pguerin3 suggested above solved the problem for me :-)

@pguerin3 thanks, that solved the issue just like a magic. closing this issue.


servicerouter.py could not resolve to ip

Hello,
I'm trying to se servicerouter.py to route my mesos apps externaly, using:
./servicerouter.py --marathon=http://localhost:8080 --haproxy-config /etc/haproxy/haproxy.cfg

And as result,
servicerouter: fetching apps
servicerouter: GET http://<IP_ADDRESS>:8080/v2/apps?embed=apps.tasks
servicerouter: got apps [u'/python-test-4']
servicerouter: generating config
servicerouter: setting default value for HAPROXY_HEAD
servicerouter: setting default value for HAPROXY_HTTP_FRONTEND_HEAD
servicerouter: setting default value for HAPROXY_HTTP_FRONTEND_APPID_HEAD
servicerouter: setting default value for HAPROXY_HTTPS_FRONTEND_HEAD
servicerouter: setting default value for HAPROXY_FRONTEND_HEAD
servicerouter: setting default value for HAPROXY_BACKEND_REDIRECT_HTTP_TO_HTTPS
servicerouter: setting default value for HAPROXY_BACKEND_HEAD
servicerouter: setting default value for HAPROXY_HTTP_FRONTEND_ACL
servicerouter: setting default value for HAPROXY_HTTP_FRONTEND_APPID_ACL
servicerouter: setting default value for HAPROXY_HTTPS_FRONTEND_ACL
servicerouter: setting default value for HAPROXY_BACKEND_HTTP_OPTIONS
servicerouter: setting default value for HAPROXY_BACKEND_HTTP_HEALTHCHECK_OPTIONS
servicerouter: setting default value for HAPROXY_BACKEND_TCP_HEALTHCHECK_OPTIONS
servicerouter: setting default value for HAPROXY_BACKEND_STICKY_OPTIONS
servicerouter: setting default value for HAPROXY_BACKEND_SERVER_OPTIONS
servicerouter: setting default value for HAPROXY_BACKEND_SERVER_HTTP_HEALTHCHECK_OPTIONS
servicerouter: setting default value for HAPROXY_BACKEND_SERVER_TCP_HEALTHCHECK_OPTIONS
servicerouter: setting default value for HAPROXY_FRONTEND_BACKEND_GLUE
servicerouter: configuring app /python-test-4
servicerouter: frontend at *:31022 with backend python-test-4_31022
servicerouter: backend server at a3c45b139a7d:31022
servicerouter: trying to resolve ip address for host a3c45b139a7d
servicerouter: Could not resolve ip for host a3c45b139a7d, ignoring this backend
servicerouter: reading running config from /etc/haproxy/haproxy.cfg

Resulting in:
frontend python-test-4_31022
  bind *:31022
  mode tcp
  use_backend python-test-4_31022

backend python-test-4_31022
  balance roundrobin
  mode tcp

As we can see, my app is found python-test-4 but servicerouter.py cant translate to container internal ip.

Note: This issue has been migrated to https://jira.mesosphere.com/browse/MARATHON-4772. For more information see https://groups.google.com/forum/#!topic/marathon-framework/khtvf-ifnp8.


Console ui fixes

What? and Why?

fix nav tab highlight and removed hardcoded css for banner

Checklist

[ ] CHANGELOG.md updated? (if required)

 sdx-console UI fixes (2)


How to set custom certificate in client?

Hello,
I have a working c# .net core Rest Api with a custom selfsigned certificate and now i want to use that certificate in my c++ app
searching in the helps lead me nowhere.
do you have any working example of how to accomplish this?
#129 seems to have the same problem. if this is a limitation of curl then it's impossible to achieve this in windows i guess?

I finally got it to work. the certification path limitation in windows is actually not a problem.
the problem is that if you're not using a Certificate issued by valid authorities that are not in the bundled CA roots of curl then curl won't accept it.
so you need to set a custom CA root cert which in my case is used for a self-signed certificate.
the catch is that you have to make the CA cert and the server cert with correct parameters then curl with accept them
https://www.section.io/engineering-education/how-to-get-ssl-https-for-localhost/
https://gist.github.com/cecilemuller/9492b848eb8fe46d462abeb26656c4f8
i used this online tool to make a single CA cert without using another for server
https://certificatetools.com/


Function interface does not validate functions just uses of it

Here is an example code that passes type checker even though function is clearly does not match an interface:
/* @flow */

interface Fn <input, output> {
  (input):output
}

const a:Fn<number, string> = n => n + 1

Also worth noting that if function is type annotated like (n:number):number => n + 1 type checker reports mismatch.

I suspect that this is only supposed to be used in type declarations in covariant positions.

It's now errors


fromXLSX and toXLSX support

As a developer
I want the ability to convert a DataFrame to an XLSX worksheet
And the ability to instantiate a DataFrame from an XLSX worksheet
And those worksheets may be saved as a composition of spreadsheets
So that I may interface with XLSX file formats

Merged


Discussion: CIP-34

Previous discussion: #34.

The concern is that the uncommitted receipts are continuously updating since that header, whereas the receipts Merkle root up to that latest valid timer block (since the second last valid timer block) is already fixed. Hence by moving the receipts Merkle root one step later we can save the cost of updating the receipts Merkle tree.

Just to clarify, given a pivot chain like this:
 ---       ---       ---       ---       ---       ---
| A | <-- | B | <-- | C | <-- | D | <-- | E | <-- | F | <-- ...
 ---       ---       ---       ---       ---       ---
  ^                             ^
timer                         timer

... block headers would include a new reference to the latest known timer block:
+   .----------------------------
+   .-------------------         | .------------------
+   .---------          |        | .--------          |
+   v         |         |        | v        |         |
   ---       ---       ---       ---       ---       ---
  | A | <-- | B | <-- | C | <-- | D | <-- | E | <-- | F | <-- ...
   ---       ---       ---       ---       ---       ---
    ^                             ^
  timer                         timer

... and each header would also include the Merkle root of all receipts since the second latest timer block, up to (and including) the latest timer block.
-                       v-----------------------------
-                       *<------------------          |
-                      /|\                  |         |
-                 ----  |  ----             |         |
-               /       |       \           |         |
   ---       ---       ---       ---       ---       ---
  | A | <-- | B | <-- | C | <-- | D | <-- | E | <-- | F | <-- ...
   ---       ---       ---       ---       ---       ---
    ^                             ^
  timer                         timer

Moreover, these two new fields are only verified for pivot blocks and they are subject to blaming.

The size of Merkle proof mainly depends on the depth of receipt Merkle tree. Currently Conflux timer block has quality 180x of usual, i.e. the expected number of transactions (when fully used) during two timer blocks is 1.5k180=270k, and w.h.p. bounded by 1.5k(180±14) ≤ 291k. In comparison, every Bitcoin block contains up to ~4k transactions. Therefore, the depth of receipt Merkle tree is ~18.15 vs. ~12, only increased by 51.25%.

Yeah, that makes sense. So assuming we build an in-memory Merkle tree of receipt hashes, that would mean computing the root on about 9 MB of data once for every timer block, seems feasible, though the DB load seems to be significant.

Closing due to inactivity. Feel free to comment if you'd like to continue the discussion. Thank you!


fix: don't re-encode paths

Description
In the delta log, paths are percent encoded. We decode them here:
https://github.com/delta-io/delta-rs/blob/787c13a63efa9ada96d303c10c093424215aaa80/rust/src/action/mod.rs#L435-L437
Which is good. But then we've been re-encoding them with Path::from. This PR changes to use Path::parse when possible instead. Instead of propagating errors, we just fallback to Path::from for now. Read more here: https://docs.rs/object_store/0.7.0/object_store/path/struct.Path.html#encode
Related Issue(s)

closes #1533
closes #1446
closes #1079
closes #1393
closes #1228

Documentation

This also resolves the issue in #1228 based on my testing.

Testing with 0.10.2 i could still reproduce the issue #1391
Writing to a path containing spaces (due to a parent folder, i.e. "./deltalake/data") works correctly as expected, using the same location for reading will yield an error:
FileNotFoundError: Object at location C:\Users\Me\FirstPart%20-%20SecondPart\PyDev\deltalake\data\0-f8ffed19-9033-4ba6-8cbe-043295af18d1-0.parquet not found

yep, same problem here

@ABChristian Thanks for testing. I'll take a look at that soon.

Using 0.10.2, I'm having this same issue where Windows paths cannot be decoded due to their spaceyness.
Writing only succeeds where paths which have no space characters. :(

Using 0.16.4 I am having same issue. Running Python code from a path that contains spaces gives me 'object at location <FILL PATH WITH SPACES that have been replaced with %20 .... parquet file> not found ....
I have some sample data, using code, fails on last statement. And path is on corporate OneDrive containing spaces.
delta_table_path = 'deltaTable/'
dt = DeltaTable(delta_table_path)
Read Data from Delta table
dt.to_pandas()

Quickstart on Homepage results in error in reading (writing part goes ok), same issue as my previous post.


Fix argfix

argfix for 0 arguments got broken in #987, this fixes it and adds a couple of tests to make sure it keeps working
the author of the change says it was "statistical optimization" (https://github.com/tinygrad/tinygrad/pull/987#discussion_r1231584626) but in my benchmarks my version is comparable (possibly even a little bit faster) across all use cases:
import timeit

def argfix_old(*x):
  if x[0].__class__ in {tuple, list}:
    try: return tuple(x[0])
    except IndexError: return tuple()
  return tuple(x)

def argfix_new(*x): return tuple(x[0]) if x and x[0].__class__ in (tuple, list) else x

N = 1_000_000
for argfix in (argfix_old, argfix_new):
    print(argfix.__name__)
    print(timeit.timeit("argfix(1, 2, 3)", number=N, globals={"argfix": argfix}))
    print(timeit.timeit("argfix(1)", number=N, globals={"argfix": argfix}))
    print(timeit.timeit("argfix((1,2,3))", number=N, globals={"argfix": argfix}))
    print(timeit.timeit("argfix([1,2,3])", number=N, globals={"argfix": argfix}))

argfix_old
0.13264382199849933
0.12719697097782046
0.1347857450018637
0.16105678299209103

argfix_new
0.10527223203098401
0.1038119489676319
0.11646945198299363
0.1526102180359885

I also included a couple of simplifications/optimizations that I ran into while reading the code

Changes made in tinygrad/:
------------------------------------------------------------
files                             insertions       deletions
------------------------------------------------------------
tinygrad/graph.py                          1               1
tinygrad/helpers.py                        1               5
tinygrad/ops.py                            1               1
------------------------------------------------------------
total                                      3               7
------------------------------------------------------------
lines added in the tinygrad folder: -4

"I also included a couple of simplifications/optimizations that I ran into while reading the code"
This makes the PR a lot harder to review. If this is a bugfix, make it just the bugfix + tests.

@Andriamanitra I also recently came across this as an issue. You still working on this or should I create a PR with my fix and tests?

@karan0handa I have no plans to finish this PR. You're welcome to use my code/tests as a starting point for a new PR if you want (no attribution needed).


❌  Failed to upgrade Dapr: release name is invalid:

Expected Behavior
Successfully upgraded version through cli
Actual Behavior
dapr --version
CLI version: 1.9.1
Runtime version: 1.4.3
An error was reported when executing this upgrade command.
#dapr upgrade --runtime-version 1.8.5   -k
ℹ  Container images will be pulled from Docker Hub
ℹ  Dapr control plane version 1.6.0 detected in namespace dapr-system
ℹ  Starting upgrade...
❌  Failed to upgrade Dapr: release name is invalid:
Steps to Reproduce the Problem
Use the following command
#dapr upgrade --runtime-version 1.8.5   -k

It was installed too long ago. The use
#dapr init -k
I didn't modify the release name somewhere，
dapr-cli 1.9 I just upgraded because I want to upgrade the version of dapr

because  in helm list  not found dapr
dapr cli upgrades dapr clusters that already exist in helm

@isayden can you please also share the output of helm list -A?

@shubham1172  sure

@shubham1172
dapr upgrate calls the helm.NewList() get about releases list.
function using filters dapr with status = deployed and status = failed
if status !  = deployed | failed .  return empty releases list
@isayden  he is my firend
his  dapr cluster in helm status = pending_upgrade.  so using helm list --all -n dapr-system not using helm list -A or helm list -n dapr-system.

I thinks dapr status = (deployed | failed)  in helm 。To meet the upgrade requirements

I think the user needs to be alerted
https://github.com/dapr/cli/pull/1118


Blaziken added to poke-dev

heyo, spotted a blaziken in the wild, lets add it in the poke dex

I am sorry but Blaziken is already present in the website. Please try and add some other unique pokemon.


Provide latest version links at documentation page with refresh actions

Situation
For automated client updates users would like to have an URL for the latest client release. So they can download binaries from the release directly.
Currently this is not possible, because "latest" release can be a client, a pds or even a server release.
Wanted
Provide a URL at the documentation pages which gives users a redirect to the corresponding latest xyz release.
Solution
We provide at our static page (https://mercedes-benz.github.io/sechub/) links to sub pages for each latest versions for different types
e.g.
https://mercedes-benz.github.io/sechub/latest/client.html
https://mercedes-benz.github.io/sechub/latest/server.html
https://mercedes-benz.github.io/sechub/latest/pds.html
and provide refresh / redirect mechanism via
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   <meta http-equiv="refresh" content="0; URL=http://example.com/">
   <title>Main Page</title>
</head>
<body></body>
</html>

Those pages must be generated at documentation level when dedicated new tags are set - e.g. a v3.0.0-server

For more information how the http-equiv.refresh redirect works have a look at:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections
For browser support have a look at:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv

We just agreed in the team these urls:
https://mercedes-benz.github.io/sechub/latest/client-download.html
https://mercedes-benz.github.io/sechub/latest/server-download.html
https://mercedes-benz.github.io/sechub/latest/pds-download.html


timestamp in the sqlite database is not correct

somehow it shows always the date of today? with different times

sqlite> select t from Notified order by id desc limit 10;
2022-10-13 05:20:06
2022-10-13 05:20:06
2022-10-13 05:20:06
2022-10-13 05:20:06
2022-10-13 05:20:06
2022-10-13 05:20:06
2022-10-13 05:20:06
2022-10-13 05:10:23
2022-10-13 05:10:23
2022-10-13 05:10:23

see also https://stackoverflow.com/questions/14461851/how-to-have-an-automatic-timestamp-in-sqlite

to reproduce:
sqlite3 test.sqlite3

sqlite> CREATE TABLE MyTable(
    ID INTEGER PRIMARY KEY,
    Name TEXT,
    Other STUFF,
    Timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
sqlite> INSERT INTO MyTable(name) VALUES('test3');
sqlite> select * from MyTable;
1|test3||2022-10-13 05:50:10

now change the date of your computer, and insert another row.
on my test system, this works, both with TIMESTAMP and DATETIME

it seems, storeAllNotified() will insert again all messages into the table Notified


Add some clarification about logging and output.

It possible that this issue https://github.com/substack/watchify/issues/216#issuecomment-106963850 is not actually the issue, but people misunderstandings. I also had this problem.

thanks @burdiyan, but aren't the events already clear enough? https://github.com/substack/watchify#wonlog-function-msg-

Well, they are clear, but at least for me it was not clear that watchify don't log anything on rebuild, which looks like not working thing at the first time :)
I think more details in the documentation is almost always better than less details :)
Enviado desde mi iPhone

El 6/6/2015, a las 23:08, Andres Suarez<EMAIL_ADDRESS>escribió:
thanks @burdiyan, but aren't the events already clear enough? https://github.com/substack/watchify#wonlog-function-msg-
—
Reply to this email directly or view it on GitHub.

I think more details in the documentation is almost always better than less details :)

totally agree, but then it should be something smaller that refers to the events - otherwise it's just noise. like "By default, watchify doesn't display any output, see events for more info."

@zertosh I like that :) Changed the commit with this message.

Cool! how about making "events" a link to https://github.com/substack/watchify#events ?

merged as https://github.com/substack/watchify/commit/72447247b0299fafae2f9b5ccd2fcc587ec70cb2

Thanks!


compactor: Add metric for tracking progress of downsampling (:

Thanks to questions from the audience!

Still valid and help wanted 🤗

Still valid.

Let's close in favor on single one (: https://github.com/thanos-io/thanos/issues/3985


Issues with decoding from file for language modeling problems.

Decode from file is problematic for language modeling problems. This is primarily due to:
1.)  token is being added to input sequences
2.) Right padding to set fixed batch size.
Both of these "issues" are correct within the context of translation problems (enc + dec stacks). However, within language modeling, if an  is appended to the input, nothing further will be predicted.
Simple fix would be to change decoding.py _decode_batch_input_fn(...) to reference the problem's has_input property. If has_input is False, don't append  and change
input_ids = input_ids[:max_input_size - 1]
to
input_ids = input_ids[:max_input_size]
However, this will cause right padding to cause issues since an  will not be observed prior to padding.
A quick fix would be to left pad the sequence, but this may also cause problems since lower frequency timing signals would be thrown off.
Best solution would either to be to batch together only same (or very similar) length sequences to eliminate or minimize left padding, or to somehow cause padding not to effect the model (would likely be more difficult).

Wrote this function to accommodate variable length batches without padding:
`def _decode_batch_input_fn_no_padding(sorted_inputs, max_batch_size, vocabulary, max_input_size):
"""Generator to produce batches of same length inputs (batch size will be variable)."""
# First reverse all the input sentences so that if you're going to get OOMs,
# you'll see it in the first batch
sorted_inputs.reverse()

#Get variable batch sizes
last_batch_size=None
batch_lengths, batch_indicies = [],[]
for batch_index,elm in enumerate(sorted_inputs):
    this_batch_size=len(elm.split(' '))
    if this_batch_size!=last_batch_size:
        batch_lengths.append(this_batch_size)
        batch_indicies.append(batch_index)
        last_batch_size = this_batch_size
batch_indicies.append(len(sorted_inputs))

#Ensure no batches exceed the maximum batch_size
batch_sizes = np.diff(batch_indicies)
final_batch_sizes = []
for bs in batch_sizes:
  if bs<=max_batch_size:
      final_batch_sizes.append(bs)
  else:
      full_batches = bs//max_batch_size
      partial_batch= bs%max_batch_size
      for fb in full_batches:
          final_batch_sizes.append(max_batch_size)
      if partial_batch>0:
          final_batch_sizes.append(partial_batch)

#Continue with now variable batch sizes, no need for padding.
for b,batch_size in enumerate(final_batch_sizes):
    tf.logging.info("Decoding batch %d" % b)
    batch_length = 0
    batch_inputs = []
    for inputs in sorted_inputs[b * batch_size:(b + 1) * batch_size]:
      input_ids = vocabulary.encode(inputs)
      #Padding and <EOS> removed -- for language modeling problems.
      batch_inputs.append(input_ids)
      #Batch length should be the same for the entire batch
      batch_length = len(input_ids)
    final_batch_inputs = []

    #Don't really need below block other than for assert. Remove
    for input_ids in batch_inputs:
      assert len(input_ids) <= batch_length
      x=input_ids
      final_batch_inputs.append(x)

    yield {
        "inputs": np.array(final_batch_inputs).astype(np.int32),
    }

All that needs to be done to use this is modify the first few lines of input_fn() defined in decode_from_file() to:
if has_input:
input_gen = _decode_batch_input_fn(num_decode_batches, sorted_inputs,
inputs_vocab, decode_hp.batch_size,
decode_hp.max_input_size)
else:
input_gen = _decode_batch_input_fn_no_padding(sorted_inputs=sorted_inputs,max_batch_size=decode_hp.batch_size,vocabulary=inputs_vocab,max_input_size=decode_hp.max_input_size)
`
can submit PR if there's interest

Wrote this function to accommodate variable length batches without padding:
`
def _decode_batch_input_fn_no_padding(sorted_inputs, max_batch_size, vocabulary, max_input_size):
"""Generator to produce batches of same length inputs (batch size will be variable)."""
# First reverse all the input sentences so that if you're going to get OOMs,
# you'll see it in the first batch
sorted_inputs.reverse()

#Get variable batch sizes
last_batch_size=None
batch_lengths, batch_indicies = [],[]
for batch_index,elm in enumerate(sorted_inputs):
    this_batch_size=len(elm.split(' '))
    if this_batch_size!=last_batch_size:
        batch_lengths.append(this_batch_size)
        batch_indicies.append(batch_index)
        last_batch_size = this_batch_size
batch_indicies.append(len(sorted_inputs))

#Ensure no batches exceed the maximum batch_size
batch_sizes = np.diff(batch_indicies)
final_batch_sizes = []
for bs in batch_sizes:
  if bs<=max_batch_size:
      final_batch_sizes.append(bs)
  else:
      full_batches = bs//max_batch_size
      partial_batch= bs%max_batch_size
      for _ in full_batches:
          final_batch_sizes.append(max_batch_size)
      if partial_batch>0:
          final_batch_sizes.append(partial_batch)
#tf.logging.info('FINAL BATCH SIZES: {}'.format(final_batch_sizes))

#Continue with now variable batch sizes, no need for padding.
last_index=0
for b,batch_size in enumerate(final_batch_sizes):
    tf.logging.info("Decoding batch %d" % b)
    batch_length = 0
    batch_inputs = []
    for inputs in sorted_inputs[last_index:last_index+batch_size]:
      input_ids = vocabulary.encode(inputs)
      #Padding and <EOS> removed -- for language modeling problems.
      batch_inputs.append(input_ids)
      #Batch length should be the same for the entire batch
      batch_length = len(input_ids)
    last_index+=batch_size

    final_batch_inputs = []
    #Don't really need below block other than for assert. Remove
    for input_ids in batch_inputs:
      assert len(input_ids) <= batch_length
      x=input_ids
      final_batch_inputs.append(x)

    yield {
        "inputs": np.array(final_batch_inputs).astype(np.int32),
    }

All that needs to be done to use this is modify the first few lines of input_fn() defined in decode_from_file() to:
if has_input:
input_gen = _decode_batch_input_fn(num_decode_batches, sorted_inputs,
inputs_vocab, decode_hp.batch_size,
decode_hp.max_input_size)
else:
input_gen = _decode_batch_input_fn_no_padding(sorted_inputs=sorted_inputs,max_batch_size=decode_hp.batch_size,vocabulary=inputs_vocab,max_input_size=decode_hp.max_input_size)
`
can submit PR if there's interest


Update prop styles example

What:

[x] update codesandbox example and add link to prop-styles
[x] bump babel-macros and nps version: Referencing #283, I had this issue too and fixed it with version updates.  I am not sure if this fixes the problem for all users.
[x] update .gitignore and commit package-lock

Why:

I'd like to expose more glamorous users to the prop-styles utility

How:
View deployed build.

Failing on Travis due to:
The macro imported from "preval.macro" must be wrapped in "createMacro" which you can get from "babel-macros".

Could this be due to the version bump?  All local tests pass:

Yeah, there's an old version of something. I've cleared the travis cache. We'll see what happens with the new build.

Oh, I just realized what's going on. You used npm to install dependencies. But this repo uses yarn. If you could remove the package-lock.json file and then use yarn to install dependencies that would fix it (it'll update the yarn.lock file). Also, you'll need to pull my changes before you do any of this. Thanks!
P.S. I really don't like committing lockfiles in open source projects... But that's what we're doing in this one so we'll just have to do that.

awesome! 👍


Review of Error Handling

Look at how all the commands: new, install & build, handle errors and surface these to the user.

Having reviewed the current state of errors, there are a couple of issues.
We have utilised both Cobra and Zerolog for surfacing messages and both of these approaches have positives and negatives.
Cobra errors allow the application to return a exit code of 1, however our implementation means that we can end up duplicating the error message. There is no way to persist this for debugging by the team.
Zerolog will provide formatting and timestamps, along with the ability to persist to a log file for debugging. However this does not have an impact on exit codes.
A refactor of the code will be required to use Zerolog exclusively for handling errors as well as work to ensure that CLIs can surface their own exit codes.
An additional ticket will be raised to perform this work.


Enabling JSON Format Responses for Image Inputs in Gemini 1.5

The new Gemini 1.5 model has the capability to enforce JSON responses, but there is limited documentation available on how to implement this, particularly for obtaining JSON responses from image inputs.
Could you provide an example of how to achieve this?
The REST example here and the official doc provided did not give me clarity on the process.

I am calling it like below in python but is getting the error message
ValueError: Protocol message GenerationConfig has no "response_mime_type" field.
# Configure JSON response and safety settings
generation_config = {
    'response_mime_type': 'application/json'  # Add this line for JSON response
}

# Call generate_content with the updated configuration
response = model.generate_content(
    [prompt_variable, image_data],
    generation_config=generation_config,
    stream=False
)

 response.resolve()

@TYMichaelChen
Thanks for this! Do you know roughly when these SDK will be rolled out for python and node.js?

Like Michael says - we're still working on the feature, though some support in the Python SDK is available at HEAD. You can pip install git+https://github.com/google/generative-ai-python to get the latest version and try it out, but caveat emptor.
For the specific proto field you're trying to use, as long as you have google-ai-generativelanguage>=0.6.2, you should be good to go.

The newest SDK on PyPI should now have the changes: https://pypi.org/project/google-generativeai/0.5.1/. Let us know if you are still seeing this issue


getCharactersAt does not accept undefined as charLayer

See https://discord.com/channels/1033320723105730611/1033320723105730614/1117711606059634688

Fixed with v2.30.0


Revert "Build the docker image for linux/arm/v6"

Reverts AlexxIT/go2rtc#1362
The easiest way is to revert it, as I solve the issue directly in HA by using the released binaries.
If a Docker image is available, I always tend to use that one, as Docker automatically selects the right platform.
 I have fixed docker file. But changes will be only with next release. Them only in master version for now.
https://hub.docker.com/r/alexxit/go2rtc/tags


Laravel 5.4 unable to use php-r

Hello,
After searching all topics I still wasn't able to use php-r in my project.
I used composer to install
"kachkaev/php-r": "^1.0"
Which should take care of creating the namespace for your classes.
When i run the basic example :
use Kachkaev\PHPR\RCore;
use Kachkaev\PHPR\Engine\CommandLineREngine;

 $r = new RCore(new CommandLineREngine('/path/to/R'));

Whatever the path, it only points out he doesn't have the Classes landing to the following code
PHP Fatal error:  Class 'Kachkaev\PHPR\Engine\CommandLineREngine' not found in eval()'d code on line 1
Is there anything i'm missing about the integration?
Sorry for bothering if it is something obvious!
Thank you
Matthieu

Hi Matthieu,
I haven't used Laravel so I'm not sure what the problem is. Are you using eval() in your PHP code is is this done internally by Laravel?
I guess the best place for you to get help from is Laravel's community – hope they have Slack or something similar. I doubt that the issue is to do with php-r, because it's psr-0-compatible.
Good luck! Give a shout here once you've sorted the thing out!

Ok! i will try to find out how to convert the path to be psr-4 compatible.
I checked and only psr-4 autoload are loaded

We once upgraded this library to psr-4 https://github.com/kachkaev/php-r/pull/24, but then had to revert it https://github.com/kachkaev/php-r/pull/27. Sharing this just to give you some context.

Didn't find the answer I wanted to make it beautiful.
I just added the php script inside my projects and autoloaded them in:
"autoload": {
"psr-4": {
"App\": "app/",
"Kachkaev\":"app/Addition/Kachkaev/"
}
}
Not the best way since it might not be durable in time.
I don't know where the library is located after being built by composer.
If i knew that i could improve this fix.
Seems to find the Class now.

Good to know, thank you. I'll close this issue for, but am happy to continue the discussion if anyone wants to contribute a proper fix.

I need to install php-r under the laravel environment.    I've installed the php-r using the command: "composer require kachaev/php-r" and I got the following message:

Using version ^1.0 for kachkaev/php-r
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating optimized autoload files
Illuminate\Foundation\ComposerScripts::postAutoloadDump
@php artisan package:discover
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Package manifest generated successfully.

However, the Kachkaev Class still could not be found/included using:
use Kachkaev\PHPR\RCore;
use Kachkaev\PHPR\Engine\CommandLineREngine;
What step did I miss?
Below is my composer.json file:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=7.0.0",
"fideloper/proxy": "~3.3",
"kachkaev/php-r": "^1.0",
"laravel/framework": "5.5.*",
"laravel/tinker": "~1.0"
},
"require-dev": {
"filp/whoops": "~2.0",
"fzaninotto/faker": "~1.4",
"mockery/mockery": "~1.0",
"phpunit/phpunit": "~6.0",
"symfony/thanks": "^1.0"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\": "tests/"
}
},
"extra": {
"laravel": {
"dont-discover": [
]
}
},
"scripts": {
"post-root-package-install": [
"@php -r "file_exists('.env') || copy('.env.example', '.env');""
],
"post-create-project-cmd": [
"@php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\Foundation\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
}
}


encoding/gob: document that zero value fields of arrays are transmitted

Documentation about struct encoding says: "If a field has the zero value for its type, it is omitted from the transmission."
It's actually not true for fields of array type:
https://play.golang.org/p/Zy8PIbmAGy
Is this working as intended?
I'm sorry to bother you here, but no one could answer me on go-nuts.

Yes, working as intended but not documented.

May I ask what is the reason for this behavior? A consequence I found surprising is that, If struct X contains even one small array, the whole struct will never figure as zero (and omitted) when X itself is a field of another struct Y.
https://play.golang.org/p/fQ4iqTsrHx

Sorry guys, I could not comment on the CL in time. I believe that the documentation added does not address the issue.
It is very clear that zero elements inside arrays are transmitted. The issue is about struct fields. The doc says that zero value fields are omitted, and this seems to imply that a zero value field of type array are omitted. In fact, a slice field with nil value is omitted. But an array field with zero value is not omitted.

Reopening for further investigation and renaming.

I found another "exception". If the struct field is itself a struct, it is always transmitted, even if it has zero value:
https://play.golang.org/p/B4M6SuewBy
But, if the struct filed is a pointer to a struct and has nil value, it is omitted:
https://play.golang.org/p/EE3cfbDM4F
The same thing happens with arrays within structs.
When deciding what to omit from transmission, gob has its own definition of zero value (and it depends on pointer/non-pointer, even if the encoding format doesn't know about pointers).
The rule is apparently the following.
A field within a struct is omitted from transmission iff the field has zero value and kind: Bool, Int, Uint, Float, Complex, Map, Ptr, Slice, String.
So the exceptions (i.e. things that are transmitted even if zero) are kinds Array and Struct (but nil pointers to arrays and structs are omitted).
I would like to explore (as soon as I find the time) if this description exhaustively describes the situation.


FEATURE REQUEST - example of a NVC end-to-end with onnxruntime-web   / client js

maybe already exists?
all i can find is this
https://github.com/webonnx/wonnx

It doesn’t seem like onnx can actually do this -
I’m investigating web gpu with tensorflow js - maybe in combination with web codec
Any ideas on how to make neural video codec work in web - or is it impossible?


[fetch] How to handle http request timeout

Hi, Guys
I currently ran into a issue that when using fetch to call remote data, I can't handle the timeout situation, if my not return successfully, it will wait forever.
I have google for awhile and I didn't find any good practice to handle, npm fetch doc says it has a timeout keyword in options object, but seems it didn't work at all.
how do you guys handle this situation?

Check out this discussion here: https://github.com/github/fetch/issues/175 - there is a solution implemented there that uses promises and seems nice.
Lots of discussion going on about the fetch specification here:
https://github.com/whatwg/fetch/issues/27
https://github.com/whatwg/fetch/issues/20
Another attempt at wrapping fetch to add this: https://github.com/whatwg/fetch/issues/20#issuecomment-135426968

I really don't agree the above solutions. If fetch wait forever and you use setTimeout to reject the wrapper promise, then the fetch will hold the reference of the resolve and reject forever.
It may seem not so huge of a waster but if the code try to use fetch hundreds of times and timeout happens a lot, then the memory leak will be a problem.

I agree with @narychen, its a waste of memory.  A big discussion is going on over here whatwg/fetch#20 and seems not have any solution. Here's what I did:

I copied from node_modules/whatwg-fetch the fetch.js file
I modified it to use a setTimeout and then call xhr.abort() (and another modification like fetch.hack = true)
I then include my modified whatwg-fetch.js in my index.ios.js and index.android.js

I now have a timeout of 10 seconds on my fetch requests.
You can find my modified whatwg fetch.js file here: https://gist.github.com/kyle-ilantzis/e4521e6194f6c019b14ac91291feb348
You can find the setTimeout I added here:  https://gist.github.com/kyle-ilantzis/e4521e6194f6c019b14ac91291feb348#file-whatwg-fetch-js-L436
You can modify 10 seconds to what ever you want here: https://gist.github.com/kyle-ilantzis/e4521e6194f6c019b14ac91291feb348#file-whatwg-fetch-js-L8
I any one is interested, here is the self.fetch.hack = true:
https://gist.github.com/kyle-ilantzis/e4521e6194f6c019b14ac91291feb348#file-whatwg-fetch-js-L4
https://gist.github.com/kyle-ilantzis/e4521e6194f6c019b14ac91291feb348#file-whatwg-fetch-js-L462

Try https://github.com/benestudio/fetch/tree/feature/timeout

npm install whatwg-fetch-timeout --save;

return fetch('/path', {timeout: 500}).then(function() {
  // successful fetch
}).catch(function(error) {
  // network request failed / timeout
})

This fork supports timout just like node-fetch.
This way you can have timeouts runtime and bundle time also. Say goodbye to memory leaks.
Hope it could be merged some sunny day.

Any idea on how to use my fetch fork without forkinf RN itself?

@adambene you want your polyfill to overwrite react-native's polyfill.
The first lines of fetch.js look like
if (self.fetch) {
return
}
Which will be true because the fetch function already exists.
I suggest doing
global.fetch = null;
require('whatwg-fetch-timeout')
(I am not sure but i think it would be in global)
Or changing the if to check for your fetch function such as if (fetch.hasTimeout) { return }

@kyle-ilantzis whatwg-fetch is already imported before I could do anything: https://github.com/facebook/react-native/blob/292cc82d0ebc437a6f1cdd2e972b3917b7ee05a4/Libraries/Network/fetch.js

@adambene yes whatwg-fetch is already imported. You want your whatwg-fetch-timeout to take precedence. I imagine you are importing yours? The problem is in your fetch.js file at the top of the file there is
if (self.fetch) {
return
}

@kyle-ilantzis I feel that whatwg-fetch-timeout should only be an extension to whatwg-fetch, so removing the fetch implementation check seems hacky to me.
I've tried npm-shrinkwrap, but does not allow different package names only versions to be overridden.
I am searching for a really maintainable and universal solution, because all my future projects are going to rely on fetch timeout to achieve robustness. That's why forking RN nor hacking whatwg-fetch is not a good option.

It seems that there are 3 choices to override fetch in RN.
1 Fork RN
Fork RN and rename the whatwg-fetch dependency to whatwg-fetch-timeout.
Well, it's a maintenance hell.
2 Import whatwg-fetch-timeout in all files
Import whatwg-fetch-timeout in all relevant .js files after setting fetch = undefined.
Explicit and clean, just don't forget to import everywhere.
3 Override global.fetch
Override global.fetch the hacky way: see also https://github.com/facebook/react-native/blob/dba133a29194e300e9a2e9e6753f9d4e3a13c194/Libraries/Core/InitializeCore.js
Just. No.

Will xhr.abort() actually cancel the native pending network request? We've seen scenarios where a bottleneck of hanging requests pile up, where there's an upper limit and they appear to start blocking requests that aren't hanging.

Use whatwg-fetch-timeout as an alternative
npm install whatwg-fetch-timeout --save
Create a new timeoutFetch function by clearing globa.fetch before loading the module.
var timeoutFetch = null;
(()=>{
  var backup = global.fetch;
  global.fetch = null;
  require('whatwg-fetch-timeout');
  timeoutFetch = global.fetch;
  global.fetch = backup;
})();

Our team is currently using robinpowered/react-native-fetch-polyfill.
It essentially provides timeout to the XMLHttpRequest instance, which is already equipped to natively support request timeouts. It's just a problem where fetch does not expose this. The polyfill opens this up.
Sample Usage
import fetch from 'react-native-fetch-polyfill';

fetch(path, {timeout: 30 * 1000})

@adambene For me, importing 'whatwg-fetch-timeout' in all files did not work. I tried the idea by @clshortfuse. The following code did not work:
const backup = global.fetch;
global.fetch = null;
require('whatwg-fetch-timeout');
const timeoutFetch = global.fetch;
global.fetch = backup;

I used timeoutFetch('login', {timeout: 10000, method: 'PUT'});. The call timed out in 90 seconds.

@adambene Also, why should whatwg-fetch-timeout be imported in all files? Since, we are patching, should it not be done in the main file, say index.android.js?

@ajwhite I published react-native-fetch-timeout. It seems to set the timeout on xhr. But ontimeout callback is not triggered after the timeout has elapsed.

@vijayst because RN hacks fetch into the global. See: https://github.com/facebook/react-native/blob/dba133a29194e300e9a2e9e6753f9d4e3a13c194/Libraries/Core/InitializeCore.js#L182

For reference I have this question on StackOverflow: http://stackoverflow.com/questions/42495366/react-native-custom-fetch-polyfill

@adambene you should have luck with react-native-fetch-polyfill with the following:
import fetch from 'react-native-fetch-polyfill'

fetch(url, {timeout: 30 * 1000})
  .then(response => {
    // a successful response
  })
  .catch(error => {
    // an error when the request fails, such as during a timeout
  })

This doesn't replace the global.fetch assignment, but it does let you import the polyfilled version with the timeout; which you could give the import a different name to avoid conflicting with the global.fetch name.
I have not attempted to replace global.fetch with the polyfill, so I can't speak to that. You may be able to use Object.defineProperty to accomplish that if a simple global.fetch = xx is not working, possibly due to the property being unwritable.

I am using Promise.race to work around this. Though the fetch promise won't be aborted.
const result =  await Promise.race([fetchPromise, delay(30 * 1000)]

@ajwhite yeah, this package does the same: https://www.npmjs.com/package/whatwg-fetch-timeout
repo/branch: https://github.com/benestudio/fetch/tree/feature/timeout


[BUG] Check cover nonfunctional on latest version

Just updated to 0.5.4. Re-imported measure cover macro. Whenever I try to measure cover, I get a console error telling me to select a token first even though I have a token selected. Happens in combat and out of combat.

This is Pathfinder 2e, by the way.

This sounds like an old version of the macro. Try updating to v0.5.5, import the macro again, and see if it works. If not, can you copy the macro script here so I can see what it is doing?

Updating to 0.5.5 and re-importing the macro seems to have fixed the problem. Thank you!

Glad to hear it!


Numbers returned as strings

In the following test suite, when using PlanetScaleDialect and receiving more than one row, what should be numbers is parsed as strings instead:
import { Kysely, MysqlDialect } from "kysely";
import { PlanetScaleDialect } from "kysely-planetscale";
import { createPool } from "mysql2";
import { strict as assert } from "node:assert";
import { describe, test } from "node:test";
import { fetch } from "undici";

describe("mysql", function () {
  const db = new Kysely({
    dialect: new MysqlDialect({
      pool: createPool({
        database: "mysql",
        host: "localhost",
        user: "root",
        password: "",
      }),
    }),
  });

  test("one row", async function () {
    const q = await db
      .selectFrom([
        db.selectNoFrom((eb) => eb.val(0).as("num_column")).as("foo"),
      ])
      .selectAll()
      .execute();

    assert.deepStrictEqual(q, [{ num_column: 0 }]); // ✅
  });

  test("two rows", async function () {
    const q = await db
      .selectFrom([
        db
          .selectNoFrom((eb) => eb.val(0).as("num_column"))
          .unionAll(db.selectNoFrom((eb) => eb.val(0).as("num_column")))
          .as("foo"),
      ])
      .selectAll()
      .execute();

    assert.deepStrictEqual(q, [{ num_column: 0 }, { num_column: 0 }]); // ✅
  });
});

describe("planetscale", function () {
  const db = new Kysely({
    dialect: new PlanetScaleDialect({
      url: process.env.PLANETSCALE_URL,
      fetch,
    }),
  });

  test("one row", async function () {
    const q = await db
      .selectFrom([
        db.selectNoFrom((eb) => eb.val(0).as("num_column")).as("foo"),
      ])
      .selectAll()
      .execute();

    assert.deepStrictEqual(q, [{ num_column: 0 }]); // ✅
  });

  test("two rows", async function () {
    const q = await db
      .selectFrom([
        db
          .selectNoFrom((eb) => eb.val(0).as("num_column"))
          .unionAll(db.selectNoFrom((eb) => eb.val(0).as("num_column")))
          .as("foo"),
      ])
      .selectAll()
      .execute();

    assert.deepStrictEqual(q, [{ num_column: 0 }, { num_column: 0 }]); // ❌ actual: [ { num_column: '0' }, { num_column: '0' } ]
  });
});

Gist for reproducing: https://gist.github.com/twiddler/8f98b48ec61c75eaa5422249c1edebc9. Please set PLANETSCALE_URL in .env and use Node 21 or later.

Hey! So this adapter doesn't change the types returned from the database driver (https://github.com/planetscale/database-js) - what you're seeing here is the DB driver trying to determine if the database number is representable as a JavaScript number or not. Specifically, 64-bit numbers are not representable as JS numbers so they get returned as strings. Depending on the query, the PlanetScale driver may not be able to determine if the number is safe, so it gets returned as a string.
If you have any questions about how that's working, you may want to open an issue at https://github.com/planetscale/database-js. You can also intentionally modify the types from the DB driver with a custom cast function if you'd like: https://github.com/depot/kysely-planetscale#custom-cast-function.

Thanks for the quick answer. I'll take it there.


JavaScript: division in template expression breaks highlighting

Version: 9.15.8
repo

Run highlight.js on the the following javascript code:

console.log(`Bad ${foo / 1000}`)
const highlighting = 'broken'

Bug

The division break highlighting

In C like languages telling the difference between / for division and / for regex can be quite tricky.  That's what we're running into here.  It thinks it see a regex, but then it hits the new line, realizes it was wrong and just aborts (newlines in regex are illegal).

This would be fixable with:
  FULL_REGEXP_MODE = {
    begin: /\/[^\/\n]*\//,
    returnBegin: true,
    contains: [
      hljs.REGEXP_MODE
    ]
  };

@marcoscaceres  Thoughts?  First we actually match a FULL regex, and assume we found one we rewind ( returnBegin) and then let the default hljs rule take a swing at it...  This probably wouldn't be a bad idea for how to do it in general (Which would fix this problem everywhere).
Though look-ahead once we have it is another solution to this.  That's all we're doing with returnBegin here is building a fake look-ahead. :-)

Seems reasonable to me... but @egor-rogov is more knowledgeable than me on these matters.

Note: This still doesn't properly detect division vs regex, it just prevents regex from "crashing and burning" and taking the highlighting with it :-)

Example from #1458 https://jsfiddle.net/atesgoral/n5cgtfzv/2/

This would be fixable with:

Well, it's better than nought.
I'm afraid we can't tell, say, foo = 2 / 2 + 2 / 2; from foo = / 2 + 2 /; without proper syntax parsing, which is impossible with regexps.

I'm going to leave this hanging and try to get back to my parser work... if we could reach agreement there things like this would be much easier to fix without resorting to returnBegin which is really just a very ugly way to do working look-aheads. :-)
If someone needed this fixed ASAP a PR with something along the lines of my proposed fix would probably be passable in the short-term.

Not to forget this trick from Coffeescript:
hljs.inherit(hljs.C_NUMBER_MODE, {starts: {end: '(\\s*/)?', relevance: 0}}), // a number tries to eat the following slash to prevent treating it as a regexp


[faiss unreleased] Impl RefineFlatIndex

fixes #18
https://github.com/facebookresearch/faiss/pull/1821

We'll hopefully be able to review this PR and the other ones once facebookresearch/faiss#1915 is resolved.

faiss release tagged v1.7.1


Support http OPTIONS method

Hi,
Not sure if you already have plans for supporting OPTIONS method but i thought i'd create a pull request since its pretty simple.
Thanks!
-abdul

Hello! Sorry for the late response. Would you mind rebasing this against the latest master branch and adding it to the README?

Good catch. Thanks for the contribution!

Published as part of v8.2.0 🎉

Thanks!!!!


feature for letting devs to know which area has keyboard focus

Currently, it is difficult to tell which window has keyboard focus and much time is wasted due to this.
I recommend that the window would have a red border to let devs know which window has keyboard focus. as a devs, I think that usefulness takes precedence than look and feel, every second count for devs!

See https://code.visualstudio.com/updates/v1_40#_themable-window-border

This is only telling which vscode instance you are working on. what I meant is the tab/pane/area would be highlighted or bordered when it had keyboard focus. e.g. you might open 2 files side by side in one vscode instance, the theme you mentioned will not highlight the tab you are working on, it only highlight the whole vscode instance.

@computHome you can play around with configuring these theme colors in settings:
"tab.activeBackground": "#ff0000",
"tab.unfocusedActiveBackground": "#000000"

That would draw the focused tab differently from unfocused.

Thanks for the tips. but if there is a theme which can really highlight which area you are working on is much better and more consistent since the keyboard focus could go to search pane, terminal pane and other areas too.


Bootstrap logo in navbar on docs looks pixelated on corners

On the live Bootstrap site on an Apple Macbook Pro Late 2015, latest version of Chrome the logo looks pixelated in the corners as shown. I don't think this affects Windows

@patrickhlauke  Ah right, could we consider maybe having this as an <img> tag that references a white SVG logo? Or maybe consider a <div> element with a background image, I know this prevents you from changing the colour of the SVG via CSS/SASS, but it would save some HTML space as well maybe?

It affects various OS/Browsers in combination with DPI values != 100%.


WebRTC not working on iOS 9.3

Hi,
while I was trying to get WebRTC working via Chrome on an iPad, I first updated to iOS 9.3 thinking this would give the latest features and capabilities. I then learned that Chrome on iOS does not support Web RTC. I then found out that Bowser does, but after installing it and trying Jitsi-Meet (WebRTC based) , I get the error message that WebRTC is not supported on Bowser.
Could it be that something is broken with Bowser and iOS 9.3 ?
Thanks a lot,
BC

I don't think that this has anything to do with iOS 9.3. It is more likely that Jitsi does not detect Bowser as a WebRTC enabled browser (or that they use some part of WebRTC that is not supported by Bowser). I would therefore open an issue on the Jitsi Meet project instead: https://github.com/jitsi/jitsi-meet
Please re-open if you find this incorrect.

Hi,
another WebRTC demo page did not work either, hence bringing me to the idea it was an issue with the Browser. I will chekc with the Jitsi people however,
Met Vriendelijke Groet,
Kind Regards,
Salutations,

Bart Coninckx
Bits 'n Tricks BVBA

Hoge Mierdse Heide 182
2360 Oud-Turnhout
tel. +32 478 88 33 08
<EMAIL_ADDRESS>http://www.bitsandtricks.com
BTW: BE0817.401.875
Crelan BE46 8601 0806 3436
Voor onze Algemene Voorwaarden, zie: http://www.bitsandtricks.com/index.php/contact/algemene-voorwaarden

-----Original message-----
From:Stefan Ålund<EMAIL_ADDRESS>Sent:Sun 27-03-2016 14:08
Subject:Re: [bowser] WebRTC not working on iOS 9.3 (#85)
To:EricssonResearch/bowser<EMAIL_ADDRESS>CC:Bart Coninckx<EMAIL_ADDRESS>I don't think that this has anything to do with iOS 9.3. It is more likely that Jitsi does not detect Bowser as a WebRTC enabled browser (or that they use some part of WebRTC that is not supported by Bowser). I would therefore open an issue on the Jitsi Meet project instead: https://github.com/jitsi/jitsi-meet
Please re-open if you find this incorrect.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub


Buffer Overflow Exception on Windows

When trying to run the test suite on Windows, I encountered a Buffer Overflow Exception, causing the  program not to run.
My specifications at the time of the error were:
*OS: Windows 8.1 64-bit
*Java: JDK1.8.0_60
*Topsoil Version 1.0.0 alpha-3
*IDEA: IntelliJ 14.1.4
To access the test suite, I used the Edit Configurations section of the run menu and set the task to 'test'.
When running, I received a sizable error report here (link to xml file containing error report).

According to your XML file, this isn't a buffer overflow exception, but a pair of assertion errors coming from ApplicationDirectoryProviderTest. Note that the XML file is not an error report, but a report of all tests run.


Fix shared library resolution when installed to e.g. /opt on Linux

Fixes https://github.com/grpc/grpc/issues/18131

Thank you for your pull request. Before we can look at your contribution, we need to ensure all contributors are covered by a Contributor License Agreement.
After the following items are addressed, please respond with a new comment here, and the automated system will re-verify.

One or more commits are not associated with a GitHub user. The email used in the Git commit must match a verified email address in a GitHub user profile. For more information, please see https://help.github.com/articles/why-are-my-commits-linked-to-the-wrong-user/

Regards,
CLA GitHub bot


A tsv file wouldn't load properly

I have a tsv file with too many blank cells in one column. DataFrame.LoadCsv wouldn't load it properly. What's worse is that visual studio only gave me blank build errors, no messages in detail at all, and I have to switch to Rider to identify the problem.
I hope there would be an option for setting columns which failed the data type guessing to strings.
QuickGO-annotations-1602846856552-20201016.txt

Thanks for uploading the data set. I just looked at it! DataFrame.LoadCsv tries to guess the column type by inspecting the data in the first few rows. It defaults to a StringDataFrameColumn when we can't guess it's type. The ANNOTATION EXTENSION column has many empty rows here, so I'm guessing it became a StringDataFrameColumn. A couple questions for you:

Is StringDataFrameColumn wrong for the Annotation Extension column? What did you expect instead? The LoadCsv method also takes an optional dataTypes parameter to specify the type of the column if you know it upfront.
What's worse is that visual studio only gave me blank build errors: I don't understand this fully! Can you paste the build errors here?

There was no build error message at all in visual studio. It just won't debug or run, and also no red highlights for errors. But I was able to run the program with Rider, and Rider gave me some error messages such as "access to path denied" or "there was an error with ... ", something like so. Maybe there is a problem with my settings.  I didn't know how to describe it so I used "blank", sorry for the confusion.
I just used LoadCsv(). It is inconvenient to specify all the datatypes of every column, especially when there are so many of them, for example, 100 columns. So, I guess it would be nice if they all can be set to strings by default, especially when they failed to identify their datatypes. Most of the time,  datatype really doesn't matter to me, but this may cause other problems.

error messages such as "access to path denied" or "there was an error with ... "

I'm wondering if access to your file was restricted for some reason. When I tested it locally, I was able to see where the exception was being thrown. In any case, I opened #2982 to fix this bug!


Nothing is rendered when %display latex is used

Type: Bug
When "%display plain" or "%display ascii_art" is set then the output cells look as you would expect.
When you use "%display latex" and then re-run the cells the output cells become blank.

Extension version: 2022.11.1003412109
VS Code version: Code 1.74.1 (1ad8d514439d5077d2b0b7ee64d2ce82a9308e5a, 2022-12-14T10:35:03.979Z)
OS version: Linux x64 5.15.0-56-generic
Modes:
Sandboxed: Yes

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz (8 x 4000)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: disabled_softwaremultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: disabled_softwarevideo_encode: disabled_softwarevulkan: disabled_offwebgl: enabled_readbackwebgl2: enabled_readbackwebgpu: disabled_off

Load (avg)
1, 0, 0

Memory (System)
15.57GB (11.44GB free)

Process Argv
--enable-features=UseOzonePlatform --ozone-platform=wayland --crash-reporter-id 27af14da-e996-4f85-98cd-3c72f5a105e1

Screen Reader
no

VM
0%

DESKTOP_SESSION
plasmawayland

XDG_CURRENT_DESKTOP
KDE

XDG_SESSION_DESKTOP
KDE

XDG_SESSION_TYPE
wayland

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383:30185418
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492:30256859
vslsvsres303:30308271
pythonvspyl392:30443607
vserr242:30382549
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263:30335439
vscorecescf:30445987
pythondataviewer:30285071
vscod805cf:30301675
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
cmake_vspar411:30581797
vsaa593:30376534
pythonvs932:30410667
cppdebug:30492333
vsclangdf:30486550
c4g48928:30535728
dsvsc012cf:30540253
azure-dev_surveyone:30548225
pyindex848cf:30577861
nodejswelcome1:30587005
282f8724:30602487
gswce1:30612156
iaj6b796:30613358
89544117:30613380
fim-prod:30623723
vscsb:30628654

Apologies, I forgot that information!
I'm using Sagemath.

Please could you enable logging as follows:

Open settings & go into Jupyter->Logging
Change the value to trace
Reload VS Code,
Attempt to repro the issue & then copy the output from the Jupyter output panel (use the command Jupyter: Show Output to get to the logs).

Jupyter log attached.
Since raising this issue some things have changed on my PC and these are worthy of note:

SageMath has been upgraded to version 10.4. Because Ubuntu does not support this version I have compiled it myself and it's kernel is no longer available to VSCode. I can, however, connect to a running instance and this is what I have done when generating the log.

When I use %display latex, now I see latex code and not simply the blank cell that I saw before.

jupyter_output.log

see latex code and not simply the blank cell that I saw before.

Does this mean the problem no longer exists?

Please can you share the second notebook with the output

Please note that github will not let me upload files with an extension of .ipynb so I have changed the extension to .json.
Untitled.json

Seems to be caused by the presence of \\displaystyle in this string $\\displaystyle \\sqrt{x^{2} + y^{2}}$
I.e. $\\displaystyle \\sqrt{x^{2} + y^{2}}$ doesn't render in vs code.
However $sqrt{x^{2} + y^{2}}$ does render in VS code


[Feature Request] Qdrant support vector delete by key word

Required prerequisites

[X] I have searched the Issue Tracker and Discussions that this hasn't already been reported. (+1 or comment there if it has.)
[ ] Consider asking first in a Discussion.

Motivation
currently we only support deleting by using id, it's hard to track, better support with deleting by key word
Solution
No response
Alternatives
No response
Additional context
No response

[ ] When initializing the Qdrant client, a global Client can be initialized to handle CRUD operations for collections.
[ ] Filter vectors using metadata.
[ ] Delete relevant collections by performing a fuzzy search on collection names (in conjunction with Redis).
[ ] Check if a collection exists by performing a fuzzy search on collection names (in conjunction with Redis) and matching the full name.

For the above requirements, consider the distinction and unification between local storage and self-hosted cloud deployment.

[ ]  When initializing the Qdrant client, a global Client can be initialized to handle CRUD operations for collections.
[ ]  Filter vectors using metadata.
[ ]  Delete relevant collections by performing a fuzzy search on collection names (in conjunction with Redis).
[ ]  Check if a collection exists by performing a fuzzy search on collection names (in conjunction with Redis) and matching the full name.

For the above requirements, consider the distinction and unification between local storage and self-hosted cloud deployment.

all doable

thanks @Wendong-Fan , and I will take the task and develop

[x]  When initializing the Qdrant client, a global Client can be initialized to handle CRUD operations for collections.
[x]  Filter vectors using metadata.
[ ]  Delete relevant collections by performing a fuzzy search on collection names (in conjunction with Redis).
[ ]  Check if a collection exists by performing a fuzzy search on collection names (in conjunction with Redis) and matching the full name.

For the above requirements, consider the distinction and unification between local storage and self-hosted cloud deployment.

I have completed the development and have a few clarifications regarding the requirements:

Collections cannot be filtered by metadata, and it's not recommended to integrate Redis for this purpose. Qdrant tools should maintain loose coupling.
Collections should not be deleted based solely on fuzzy search for collection types, as this approach is too risky. It’s necessary to ensure that the full collection_name is used to delete a collection.
If there are many collections with similar names, I think the vectors should be placed in the same collection, and classification should be handled using payload.
Self-hosted mode actually doesn't support concurrent searches. In the original design, this was addressed by managing through an in-memory list, which I believe is sufficient for local testing. In server mode, this issue doesn't need to be considered. Therefore, I believe the functionality between local storage and self-hosted Qdrant has been unified.


Update changelog to test the Azure triggers

This is just a change log update, but it should trigger the Azure private CI builds. This is mainly me testing I have it all set up correctly now that the YAML file is in place

sigh it can never be easy, can it?

The problem here is triggering builds from Forks can introduce malicious code and trigger builds simply by opening a PR. The settled solution for now is to disable builds on PRs, and only allow builds on merged master changes, so code has to be approved and merged by Engine admins.

Na, I had just starting working on other things while I waited for travis to finish.

I did figure out the syntax so we can manually trigger builds. They wont show up on the PRs though.


Improve Mojo documentation

Describe the goal update and its important properties

Codecov Report
Base: 66.51% // Head: 66.51% // No change to project coverage :thumbsup:

Coverage data is based on head (8acbc80) compared to base (372e144).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##             master      #67   +/-   ##
=========================================
  Coverage     66.51%   66.51%
  Complexity       51       51
=========================================
  Files            10       10
  Lines           215      215
  Branches         20       20
=========================================
  Hits            143      143
  Misses           61       61
  Partials         11       11

Impacted Files
Coverage Δ

.../georgberky/maven/plugins/depsupdate/UpdateMojo.kt
6.00% <ø> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Adds abstract fields. Refactoring of form labels and help text.

closes #51

Merging since @aaron-collier approved and @mjgiarlo's comments were addressed.


Delivering messages [] to client

In development mode my output gets garbled making it hard to view debug output because it is continuously scrolling out of view.
Delivering messages [] to client 22333977e6f845ac95a85d44cf9bcabe \
    for user 9697 (chunked)

Is there someway I can disable this?

Sure ... in your initializer do something like
logger = Logger.new(STDOUT)
logger.level = Logger::INFO
MessageBus.logger = logger
On Tue, Sep 13, 2016 at 5:46 PM, Kiffin Gish<EMAIL_ADDRESS>wrote:

In development mode my output gets garbled making it hard to view debug
output because it is continuously scrolling out of view.
Delivering messages [] to client 22333977e6f845ac95a85d44cf9bcabe
for user 9697 (chunked)
Is there someway I can disable this?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/SamSaffron/message_bus/issues/130, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAUXeoW1wLlsT-Ut396gqf0KNHaU2U3ks5qplTDgaJpZM4J7Ye-
.

Which initializer? I would only like to do this when RAILS_ENV=development

Never mind,  I put it in my environments/development.rb file and it works like a charm.


fix: Reorder models and qobjects by inheritance (base types first)

Reorders complex types and entity types such that parent types come first.
This fixes a bug where generated QObjects reference classes before those classes have been declared.
Model generation is adapted with the same reordering for for consistency.

please merge main branch again, was my mistake. sorry for the inconvenience.

LGTM!

there's only one little thing, passing the circuitBreaker array directly into the collectBaseClassPropsAndKeys function
and one more suggestion regarding the DataModels

Otherwise it looks really good. You added excellent test cases and even corrected the comments: Kudos!

@manuelseeger are you finished? Then I would merge...

Thank you very much for this contribution!

Released with @odata2ts/odata2ts version 0.20.3


Could not decode arsc file

During the decompilation of a malicious apk, I get the following exception:
java -jar apktool_2.0.0rc5.jar d -o /OUTPUT/ /HippoSMS/5c70988fc9751f283b2f2b5733f9e7f2a54afa69.apk
I: Using Apktool 2.0.0 on 5c70988fc9751f283b2f2b5733f9e7f2a54afa69.apk
I: Loading resource table...
Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file
	at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:52)
	at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:538)
	at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:63)
	at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:55)
	at brut.androlib.Androlib.getResTable(Androlib.java:64)
	at brut.androlib.ApkDecoder.setTargetSdkVersion(ApkDecoder.java:209)
	at brut.androlib.ApkDecoder.decode(ApkDecoder.java:92)
	at brut.apktool.Main.cmdDecode(Main.java:165)
	at brut.apktool.Main.main(Main.java:81)
Caused by: java.io.IOException: Expected: 0x00000008, got: 0x00000002
	at brut.util.ExtDataInput.skipCheckShort(ExtDataInput.java:56)
	at brut.androlib.res.decoder.ARSCDecoder.readValue(ARSCDecoder.java:238)
	at brut.androlib.res.decoder.ARSCDecoder.readEntry(ARSCDecoder.java:201)
	at brut.androlib.res.decoder.ARSCDecoder.readConfig(ARSCDecoder.java:189)
	at brut.androlib.res.decoder.ARSCDecoder.readType(ARSCDecoder.java:157)
	at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:114)
	at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:78)
	at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:47)
	... 8 more

Here would be the malicious apk: https://drive.google.com/file/d/0B7mw1J0o156uMS1nNFNiSnY5LUU/view?usp=sharing
PW: infected
Thanks in advance.

I duplicate. Must be some good trickery to break apktool that early in the decode.

This also breaks with the latest version of K-9 Mail in the Play Store (5.006), which one would hope is not malicious.

The same issue occurs when attempting to decode any apk created with SDK Build Tools  v23.0.0-rc2. Here is a simple "Hello World" created with 22.0.1 and 23.0.0rc2. https://drive.google.com/file/d/0B5BNATXQ2jdIbWJGWjNRYVZMR28/view?usp=sharing

Thanks. I duplicate with the simplest of applications using the new Build Tools. I will build the exact same application using different build tools and figure out what is changing and why.

FYI, RC4 does not have this issue with apk's created by the new tools.

Hmmm.
I tried
    buildToolsVersion "23.0.0-rc2"
and
    buildToolsVersion "22.0.1"

The built apks could be decompiled without error. Now the original APK still breaks, but not having much luck building a test apk to duplicate this issue.

I just built from source (commit d5f3b3fd5aad4c54f5e3e74d349f509176a87cbd) and could NOT reproduce the issue (regarding the build tools) anymore.  I had previously reproduced it with the 2.0.0 release and had assumed it was related to the original issue listed concerning the Malware.apk (which still fails with this latest build.) Sorry for any confusion.  Thanks.

I believe this is fixed now as of - https://github.com/iBotPeaches/Apktool/commit/eabb7d819b9a13f256153a174b8dd05e21c619f1
It had the same problem as #1031 if anyone is curious of the cause.


aws_shell: init at 0.1.0

Currently depends on a specific prompt_toolkit package (which is not the
latest), so that is also pinned here.
Would there be a better way to use prompt_toolkit in this case? Assuming versions after 0.52 work, is it appropriate to change setup.py to >=0.52 from https://github.com/awslabs/aws-shell/blob/1c9cd633a6763796a4c77ffda17345fb44812afc/setup.py#L10

They hard-coded the requirement to ==0.52, so I imagine that is for a reason.
It's fine to have multiple versions (unless they would end up in the same closure but I doubt that would be the case here).

The tests are failing because of a missing buildInput, mock.

In general, although it is indeed fine to have multiple versions of things we do try to avoid it. It's more stuff to keep up to date, test, and patch when issues are found.
The 0.52 thing came from https://github.com/awslabs/aws-shell/commit/91a0d8a9b00ba8315e935b31635df5f0e1176dd5, which might not be as crucial as it sounds.

@copumpkin Yes, multiple versions is something I'd like to avoid as well, though the upstream repo has had an issue open to support a later release for prompt-toolkit for more than a month now and it still hasn't been addressed.
Otherwise, I've made a few of the changes, including the mock addition and and src fetch url change, just checking out now why the build is still failing.

In the tests AWSShell tries to load awsshellrc. When it doesn't exist, it tries to create the file based on a template. This fails, because it is apparently now allowed to write into $HOME (/homeless-shelter).
This is quite a common reason for tests to fail.

travis-ci is satying: PermissionError: [Errno 13] Permission denied: '/homeless-shelter'

I see other packages redirecting HOME, I'll check into it.


feat(platform-response-filter): expose only .transform method to facilitate OverrideProvider usage

Summary by CodeRabbit

New Features

Enhanced response transformation logic across multiple platform components
Improved view rendering and error handling in response filters
Introduced a new function for inspecting operation paths in integration tests

Bug Fixes

Simplified data processing in response handling methods
Streamlined serialization and transformation processes

Refactor

Updated method signatures in response filter services
Removed deprecated rendering utility functions
Modified error handling mechanisms

Tests

Updated test suites for response filter functionality
Adjusted test coverage thresholds
Changed test assertions to utilize a new inspection function for route validation

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

v8.4.0
GitHub release

Your semantic-release bot :package::rocket:


Export If and Improve docs

🎁 Pull Request
This pr exports 'If' properly and improves it's docs.
After this pr, you can now use
import {A} from 'ts-toolbelt'
type test = A.If<true, string>

[x] Used a clear / meaningful title for this pull request
[x] Tested the changes in your own code (on your projects)
[x] Added / Edited tests to reflect changes (tests folder)
[x] Have read the Contributing part of the Readme
[x] Passed npm test

Fixes

Why have you made changes?

What changes have you made?

changed this to achieve this
changed that to achieve this
...

What tests have you updated?

tested this in tests/...
tested that in tests/...
...

Is there any breaking changes?

[ ] Yes, I changed the public API & documented it
[ ] Yes, I changed existing tests
[x] No,  I added to the public API & documented it
[x] No,  I added to the existing tests
[ ] I don't know

Anything else worth mentioning?

@AlfieJones Want to publish a fork of it with the improvements? Maybe we can merge all the other improvements from other pull requests that haven't yet been merged.


Replace Zygote ignore rules with ChainRulesCore

https://juliadiff.org/ChainRulesCore.jl/dev/api.html#ChainRulesCore.ignore_derivatives
Thanks for the hint @rejuvyesh ! Will be done soon!

closed in 0.5.0


280 characters

Hello!
My account already supports 280 symbols from Twitter app and website, but with Twython I'm still getting error "Twitter API returned a 403 (Forbidden), Status is over 140 characters."
Can I use Twython for long tweets?
Thanks!
Martin

It looks like it's not officially supported via the API, yet.
https://twittercommunity.com/t/280-characters/94200/2


Remaining modern annotations update

3rd part to close https://github.com/Infleqtion/server-superstaq/issues/2969
(Checks require https://github.com/Infleqtion/client-superstaq/pull/856 and https://github.com/Infleqtion/client-superstaq/pull/857 to fully pass)

@bharat-thotakura just noticed checks-superstaq itself still uses the old-style annotations
it's passing the github CI flake8 check in because none of the files include from __future__ import annotations and the CI checks are run with python 3.8, the combination of which disables the modern annotation checker. But when e.g. i run checks/flake8_.py locally w/ python 3.11 it fails
to prevent this in the future we can (and imo should) enforce modern annotations everywhere by adding the following to our pyproject.toml:
modern-annotations-postponed = "always"
modern-annotations-deprecated = "always"
modern-annotations-union = "always"
modern-annotations-optional = "always"

Ah, I didn't realize I missed that, thanks! I just made https://github.com/Infleqtion/client-superstaq/pull/866 to fix this, but let me know if there's anything else still missing


Update cake to 0.22.0

@pitermarx when you are going to merge this PR?

only when the build passes

All checks have passed 😄


All packages with phase WAITING show customs icon

Special icon for packages waiting for customs declaration was my feature request but it's appeared the logic to show it on WAITING phase doesn't seem to be adequate. WAITING phase seems to be used also for packages waiting for pickup from the sender.
Maybe this could be fixed with an additional check for the delivery status? Unfortunately I don't have any such package right now to get the status text but I have one bigger package from China coming and it likely will get stuck in customs. I can update the issue if/when that happens.

Update: the package got stuck in customs as expected. But it made this even more complicated. The package now shows:

"in transport" icon instead of customs icon
package details show it can already be picked up even though the latest status "Lähetys on rekisteröity" with the phase IN_TRANSPORT.

I'm out of ideas how to best solve this. This the first time the customs icon does not appear so this might be some special snowflake case.

Update: the package got stuck in customs as expected. But it made this even more complicated. The package now shows:

"in transport" icon instead of customs icon
package details show it can already be picked up even though the latest status "Lähetys on rekisteröity" with the phase IN_TRANSPORT.

I'm out of ideas how to best solve this. This the first time the customs icon does not appear so this might be some special snowflake case. Any ideas @norkator?

Send me your tracking code IF possible at Trello, I want to see my own eyes what is going on.

Okay my notes about this case are:

This is shown because API is providing this information already and we don't have handling with this banner + current phase, do we want that?

As said parcel is in customs with state IN_TRANSPORT

We use only newest status to determine does it need customs handling but:

now there is never status saying this.. I am out of ideas. Parsing every event line to determine customs handling is too dangerous.

This seems like a mess. I agree it sounds too hacky to go through all the statutes for the customs status. It might be simpler to just put the feature behind a disabled feature flag for now until we get more examples?

Closing for now. Open back if we see something happening to this.


Path Issues (Can't find modules)

I'll put the fix later, but if you try running it from the command line from Windows (haven't test it in another OS), you'll get an error saying can't find module.
It's dependent on how the env variable for python are set for the machine.
Easy fix is appending the absolute file path to the folder above your current script to the the env variables with the following.
sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)),'..'))
This is a none issue if they have an env path for python that covers the entire drive that file is on. But I don't know why someone would do that or if it's common practice.
Hopefully, someone with more python experience can explain it better.

Fixed it.


ngsfToggleFullscreen state doesn't update

After toggling state, the ngsfToggleFullscreen directive doesn't update correctly.  By adding a $apply() call inside a timer this is fixed -:
/* global angular */
(function(angular) {
    angular.module('angularScreenfull')
    .directive('ngsfToggleFullscreen', ngsfToggleFullscreenDirective);
    ngsfToggleFullscreenDirective.$inject = ['$timeout'];

    function ngsfToggleFullscreenDirective ($timeout) {
        return {
            restrict: 'A',
            require: '^ngsfFullscreen',
            link: function(scope, elm, attrs, fullScreenCtrl) {
                elm.on('click', function() {
                    fullScreenCtrl.toggleFullscreen();

                    $timeout(scope.$apply(),500);
                });
            }
        };
    }
})(angular);

I'm not sure if the 500ms is needed (although some time is definately required and 100ms didn't work). Maybe it's also possible to get an event that would be more reliable...

Thats weird... I will have a look into it, but most probably the error is not in the toggle directive but in the fullscreenchange on the fullscreen.js file.
Can you post in jsfiddle or other similar tool the code that produces the error?

Hmmm, well I tried editing one of your examples in plunkr, but I couldn’t get them to work. I initially thought it was because github doesn’t allow linking of files for this purpose, but even after sorting this out it didn’t work… Do you have a working plunkr or fiddle I can mess with?
Thanks.

Yes, I should add a mention about that, I think the problem is that plunkr is using an iframe and you cannot access the fullscreen API from there.
Buuuuuut....
If you go here http://hrajchert.github.io/angular-screenfull/#/api, click "edit in plunkr" on the first example and then inside plunkr you click on "Launch the preview in a separate window" then the example works  :D
let me know if it works out

Yep - it works :)
So, I tried to recreate this, and can’t, so I removed the timeout, and it still works… I might have been a problem with Chrome - it was playing up, and I had to close it down forcefully… Anyway, it looks like there’s no problem, so we can close this…
Thanks for the support, and sorry for the hassle :)

Great! there is no hassle, if you run into this again just reopen.
Thanks for contributing