TCPMapping not applying host/tls configuration on specific port

Describe the bug
Hi! I've been struggling with this issue for the past afternoon, and after a lot of researches, I'm starting to suspect this is a bug.
I can't apply a TCPMapping tls/host configuration. Without TLS I can connect to my rabbitmq server, but I can't use TLS termination. It is also impossible to use SNI (seems logical as tls doesn't work).
By the way any webservice access works in HTTPS mode.
To Reproduce
Steps to reproduce the behavior:
0. Install Ambassador with an additional port on the loadbalancer service :
      - name: rabbitmq
        port: 5671
        targetPort: 5671
        protocol: TCP

TLSContext configuration :

        apiVersion: ambassador/v1
        kind: TLSContext
        name: ocean-certs
        secret: ocean-prod-certs
        hosts: ["*.ocean.io"]
        redirect_cleartext_from: 8080
        alpn_protocols: h2,http/1.1

Apply a TCPMapping

apiVersion: getambassador.io/v1
kind: TCPMapping
metadata:
  name: core-production-rabbitmq
spec:
  port: 5671
  service: core-production-rabbitmq-rabbitmq-ha.namespace:5672
  host: rabbitmq.ocean.io

The TLSContext seems not to be applied to the 5671 listener. See my envoy configuration :

    "@type": "/envoy.config.bootstrap.v2.Bootstrap",
    "static_resources": {
        "clusters": [
            {
                "connect_timeout": "3.000s",
                "dns_lookup_family": "V4_ONLY",
                "lb_policy": "ROUND_ROBIN",
                "load_assignment": {
                    "cluster_name": "cluster_127_0_0_1_8877",
                    "endpoints": [
                        {
                            "lb_endpoints": [
                                {
                                    "endpoint": {
                                        "address": {
                                            "socket_address": {
                                                "address": "<IP_ADDRESS>",
                                                "port_value": 8877,
                                                "protocol": "TCP"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                },
                "name": "cluster_127_0_0_1_8877",
                "type": "STRICT_DNS"
            },
            {
                "connect_timeout": "3.000s",
                "dns_lookup_family": "V4_ONLY",
                "lb_policy": "ROUND_ROBIN",
                "load_assignment": {
                    "cluster_name": "cluster_core_production_rabbitmq_rabbitm-0",
                    "endpoints": [
                        {
                            "lb_endpoints": [
                                {
                                    "endpoint": {
                                        "address": {
                                            "socket_address": {
                                                "address": "core-production-rabbitmq-rabbitmq-ha.core-production",
                                                "port_value": 5672,
                                                "protocol": "TCP"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                },
                "name": "cluster_core_production_rabbitmq_rabbitm-0",
                "type": "STRICT_DNS"
            }
        ],
        "listeners": [
            {
                "address": {
                    "socket_address": {
                        "address": "<IP_ADDRESS>",
                        "port_value": 8443,
                        "protocol": "TCP"
                    }
                },
                "filter_chains": [
                    {
                        "filters": [
                            {
                                "config": {
                                    "access_log": [
                                        {
                                            "config": {
                                                "format": "ACCESS [%START_TIME%] \"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%\" %RESPONSE_CODE% %RESPONSE_FLAGS% %BYTES_RECEIVED% %BYTES_SENT% %DURATION% %RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% \"%REQ(X-FORWARDED-FOR)%\" \"%REQ(USER-AGENT)%\" \"%REQ(X-REQUEST-ID)%\" \"%REQ(:AUTHORITY)%\" \"%UPSTREAM_HOST%\"\n",
                                                "path": "/dev/fd/1"
                                            },
                                            "name": "envoy.file_access_log"
                                        }
                                    ],
                                    "http_filters": [
                                        {
                                            "name": "envoy.cors"
                                        },
                                        {
                                            "name": "envoy.router"
                                        }
                                    ],
                                    "http_protocol_options": {
                                        "accept_http_10": false
                                    },
                                    "normalize_path": true,
                                    "route_config": {
                                        "virtual_hosts": [
                                            {
                                                "domains": [
                                                    "*"
                                                ],
                                                "name": "backend",
                                                "routes": [
                                                    {
                                                        "match": {
                                                            "case_sensitive": true,
                                                            "prefix": "/ambassador/v0/check_ready",
                                                            "runtime_fraction": {
                                                                "default_value": {
                                                                    "denominator": "HUNDRED",
                                                                    "numerator": 100
                                                                },
                                                                "runtime_key": "routing.traffic_shift.cluster_127_0_0_1_8877"
                                                            }
                                                        },
                                                        "route": {
                                                            "cluster": "cluster_127_0_0_1_8877",
                                                            "prefix_rewrite": "/ambassador/v0/check_ready",
                                                            "priority": null,
                                                            "timeout": "10.000s"
                                                        }
                                                    },
                                                    {
                                                        "match": {
                                                            "case_sensitive": true,
                                                            "prefix": "/ambassador/v0/check_alive",
                                                            "runtime_fraction": {
                                                                "default_value": {
                                                                    "denominator": "HUNDRED",
                                                                    "numerator": 100
                                                                },
                                                                "runtime_key": "routing.traffic_shift.cluster_127_0_0_1_8877"
                                                            }
                                                        },
                                                        "route": {
                                                            "cluster": "cluster_127_0_0_1_8877",
                                                            "prefix_rewrite": "/ambassador/v0/check_alive",
                                                            "priority": null,
                                                            "timeout": "10.000s"
                                                        }
                                                    },
                                                    {
                                                        "match": {
                                                            "case_sensitive": true,
                                                            "prefix": "/ambassador/v0/",
                                                            "runtime_fraction": {
                                                                "default_value": {
                                                                    "denominator": "HUNDRED",
                                                                    "numerator": 100
                                                                },
                                                                "runtime_key": "routing.traffic_shift.cluster_127_0_0_1_8877"
                                                            }
                                                        },
                                                        "route": {
                                                            "cluster": "cluster_127_0_0_1_8877",
                                                            "prefix_rewrite": "/ambassador/v0/",
                                                            "priority": null,
                                                            "timeout": "10.000s"
                                                        }
                                                    }
                                                ]
                                            }
                                        ]
                                    },
                                    "server_name": "envoy",
                                    "stat_prefix": "ingress_http",
                                    "use_remote_address": true,
                                    "xff_num_trusted_hops": 0
                                },
                                "name": "envoy.http_connection_manager"
                            }
                        ],
                        "tls_context": {
                            "common_tls_context": {
                                "alpn_protocols": [
                                    "h2,http/1.1"
                                ],
                                "tls_certificates": [
                                    {
                                        "certificate_chain": {
                                            "filename": "/ambassador/snapshots/istio-system/secrets-decoded/ocean-prod-certs/XXXXX.crt"
                                        },
                                        "private_key": {
                                            "filename": "/ambassador/snapshots/istio-system/secrets-decoded/ocean-prod-certs/XXXXX.key"
                                        }
                                    }
                                ]
                            }
                        },
                        "use_proxy_proto": false
                    }
                ],
                "name": "ambassador-listener-8443"
            },
            {
                "address": {
                    "socket_address": {
                        "address": "<IP_ADDRESS>",
                        "port_value": 8080,
                        "protocol": "TCP"
                    }
                },
                "filter_chains": [
                    {
                        "filters": [
                            {
                                "config": {
                                    "access_log": null,
                                    "http_filters": [
                                        {
                                            "name": "envoy.router"
                                        }
                                    ],
                                    "http_protocol_options": {
                                        "accept_http_10": false
                                    },
                                    "normalize_path": true,
                                    "route_config": {
                                        "virtual_hosts": [
                                            {
                                                "domains": [
                                                    "*"
                                                ],
                                                "name": "backend",
                                                "require_tls": "EXTERNAL_ONLY",
                                                "routes": [
                                                    {
                                                        "match": {
                                                            "prefix": "/"
                                                        },
                                                        "redirect": {
                                                            "https_redirect": true
                                                        }
                                                    }
                                                ]
                                            }
                                        ]
                                    },
                                    "server_name": "envoy",
                                    "stat_prefix": "ingress_http",
                                    "use_remote_address": true,
                                    "xff_num_trusted_hops": 0
                                },
                                "name": "envoy.http_connection_manager"
                            }
                        ],
                        "use_proxy_proto": false
                    }
                ],
                "name": "redirect_listener"
            },
            {
                "address": {
                    "socket_address": {
                        "address": "<IP_ADDRESS>",
                        "port_value": 5671,
                        "protocol": "TCP"
                    }
                },
                "filter_chains": [
                    {
                        "filters": [
                            {
                                "config": {
                                    "stat_prefix": "ingress_tcp_5671",
                                    "weighted_clusters": {
                                        "clusters": [
                                            {
                                                "name": "cluster_core_production_rabbitmq_rabbitm-0",
                                                "weight": 100
                                            }
                                        ]
                                    }
                                },
                                "name": "envoy.tcp_proxy"
                            }
                        ]
                    }
                ],
                "name": "listener-<IP_ADDRESS>-5671"
            }
        ]
    }
}

Versions (please complete the following information):

Ambassador: 0.84.1
Kubernetes environment: EKS
Version: 1.14

Thanks for your help!

I encountered exactly the same issue on Ambassador 0.86.0 - TLS context is not applied for a TCP Mapping with host specified.

Okay, so I've done a little bit of digging and I think I found the problem.
For V2TCPListener TLS context looked up in the group and it's never there, so the following branch is never taken:
https://github.com/datawire/ambassador/blob/11754e7249ceb4d8de5b36def7fefbb6e0349395/python/ambassador/envoy/v2/v2listener.py#L412
In contrast, for V2Listener TLS context is taken from the config:
https://github.com/datawire/ambassador/blob/11754e7249ceb4d8de5b36def7fefbb6e0349395/python/ambassador/envoy/v2/v2listener.py#L749
I've tried doing a quick patch of v2listener.py to get TLS context from the config.ir.get_tls_contexts() for  V2TCPListener and it seems to solve the issue: the TLS context now appears in the envoy config for the TCP mapping and the TCP mapping starts to work correctly (i.e. doing TLS termination as it supposed to).
Not sure what is the "proper" fix for this, but hopefully this info will help developers to address the issue.

I'm running into the same problem with the following setup:

1 TLSContext with wild-card certificate
2 TCPMappings with same port but different hosts

Error message:
listener '<IP_ADDRESS>:5672': multiple filter chains with the same matching rules are defined

@ovk, I'm very sorry for missing your comment! Let me try your fix.

any updates @kflynn?  We are running into exactly this issue too.

Hi @kflynn had any luck with a fix? We are hitting this in our project. Thanks!

Hello, @kflynn any update on this?

Any updates on this? We are trying amassador 1.5.5 @nbkrause ?

Just a hint for debugging purposes:
Don't set an ambassador_id on the pods or find out a way how to specify the ambassador_id for a TCPMapping. This way it mostly works.

Hi, is a fix for this issue planned in the near future? We are hitting this in our project. Thanks.

Not stale

Not stale

Also running into a similar issue

We are facing the same issue. Is there any update?

Same issue with version 1.14.2.
I defined just one Host object and a TCPMapping object.
The correct certificate is returned but the HTTP response is 404 Not Found.
---
apiVersion: getambassador.io/v2
kind: TCPMapping
metadata:
  name:  ambassador-mapping
  namespace: myns
  labels:
    map: ambassador-mapping
spec:
  ambassador_id: [ "ambassador1" ]
  port: 8443
  host: test.ambassador
  host_regex: false
  service: test-deploy-service:8443
  tls: true

apiVersion: getambassador.io/v2
kind: Host
metadata:
  name: ambassador-host
  namespace: myns
spec:
  ambassador_id: [ "ambassador1" ]
  hostname: test.ambassador
  tlsSecret:
    name: mysecret-tls

I am having this problem as well. Is anyone aware of a workaround?

Has anyone had this experience on Emissary or AES 2.x or greater?  Checking the latest docs here, @bemipefe 's config looks correct to me.
First, Emissary-ingress checks for any Host resources with TLS configured whose Host.spec.hostname glob-matches the TCPMapping.spec.host; if such a Host exists, then its TLS certificate and configuration is used..

yes, we experience this trying to TLS terminate a TCP Mapping on Emissary v 3.4.1
kind: Host
metadata:
  name: arc-github-hook
  namespace: actions-runner-system
spec:
  hostname: "arc-github-hook.example.com"
  tlsSecret:
    name: webhook-tls-cert
  tls:
    min_tls_version: v1.2
    max_tls_version: v1.3
    alpn_protocols: h2[, http/1.1]
    ecdh_curves:
      - X25519
      - P-256
---
apiVersion: getambassador.io/v3alpha1
kind: TCPMapping
metadata:
  name:  arc-github-hook
  namespace: actions-runner-system
spec:
  port: 9443
  host: "arc-github-hook.example.com"
  service: http://actions-runner-controller-github-webhook-server:8080

Debug log output:
[2023-02-15 12:40:55.060][37][debug][filter] [source/extensions/filters/listener/tls_inspector/tls_inspector.cc:86] tls inspector: new connection accepted
[2023-02-15 12:40:55.060][37][debug][filter] [source/extensions/filters/listener/tls_inspector/tls_inspector.cc:117] tls:onServerName(), requestedServerName: arc-github-hook.example.com
[2023-02-15 12:40:55.060][37][debug][filter] [source/common/tcp_proxy/tcp_proxy.cc:199] [C148859] new tcp proxy session
[2023-02-15 12:40:55.061][37][debug][filter] [source/common/tcp_proxy/tcp_proxy.cc:371] [C148859] Creating connection to cluster cluster_actions_runner_controller_github-D3A891DE11DE7378-0
[2023-02-15 12:40:55.061][37][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:1731] no healthy host for TCP connection pool
[2023-02-15 12:40:55.061][37][debug][connection] [source/common/network/connection_impl.cc:139] [C148859] closing data_to_write=0 type=1
[2023-02-15 12:40:55.061][37][debug][connection] [source/common/network/connection_impl.cc:250] [C148859] closing socket: 1

Ok, thanks for the confirmation.  I'll flag this as a community reported bug.


[blas] Optimize gemv and gemm for float16 data type

Description
This pull request aims to optimize the performance of GEMV and GEMM operations when the data type is float16.
This is achieved by converting the half-precision data to single-precision and utilizing the cblas functions instead of manually computing them using for loops.
This change should improve the overall efficiency of these operations without requiring ARM NEON support.
Result
1. GEMV
Before

TensorDim
Time
CPU
Iterations

(1, 1, 1, 512) $\times$ (1, 1, 512, 512)
1.32ms
1.32 ms
452

(1, 1, 1, 1024) $\times$ (1, 1, 1024, 1024)
5.37ms
5.37ms
130

(1, 1, 1, 2048) $\times$ (1, 1, 2048, 2048)
22.4ms
22.4ms
31

(1, 1, 1, 768) $\times$ (1, 1, 768, 96000)
407ms
407ms
2

After

TensorDim
Time
CPU
Iterations

(1, 1, 1, 512) $\times$ (1, 1, 512, 512)
0.953ms
0.933ms
754

(1, 1, 1, 1024) $\times$ (1, 1, 1024, 1024)
3.67ms
3.64ms
188

(1, 1, 1, 2048) $\times$ (1, 1, 2048, 2048)
15.6ms
15.0ms
45

(1, 1, 1, 768) $\times$ (1, 1, 768, 96000)
278ms
278ms
3

2. GEMM
Before

TensorDim
Time
CPU
Iterations

(1, 1, 512, 512) $\times$ (1, 1, 512, 512)
696ms
696 ms
1

(1, 1, 1024, 1024) $\times$ (1, 1, 1024, 1024)
5.58s
5.58s
1

(1, 1, 2048, 2048) $\times$ (1, 1, 2048, 2048)
46.1s
46.1s
1

(1, 1, 50, 768) $\times$ (1, 1, 768, 96000)
20.7s
20.7s
1

After

TensorDim
Time
CPU
Iterations

(1, 1, 512, 512) $\times$ (1, 1, 512, 512)
5.87ms
4.84 ms
152

(1, 1, 1024, 1024) $\times$ (1, 1, 1024, 1024)
24.3ms
24.3ms
29

(1, 1, 2048, 2048) $\times$ (1, 1, 2048, 2048)
149ms
149ms
5

(1, 1, 50, 768) $\times$ (1, 1, 768, 96000)
332ms
332ms
2

Tested with Google Benchmark
Note
Time: The average wall time per iteration
CPU: The average CPU time per iteration
Iterations: The number of iterations the benchmark ran
Hardware spec
Run on (20 X 4398.75 MHz CPU s)
CPU Caches:
L1 Data 48 KiB (x10)
L1 Instruction 32 KiB (x10)
L2 Unified 1280 KiB (x10)
L3 Unified 25600 KiB (x1)

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #2457. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://ci.nnstreamer.ai/.

Great work! Suggestion : typical evaluation of BLAS library is conducted with FLOPS how about adding this? Question: is ms in your test result refers to milliseconds? (or microseconds?)

for sure. there's still room for optimization if it's compared to sgemv and sgemm. I'll also check with FLOPS in later optimization. also, it is milliseconds. will mark as $\mu s$ when it comes to micro :)

Great work! Suggestion : typical evaluation of BLAS library is conducted with FLOPS how about adding this? Question: is ms in your test result refers to milliseconds? (or microseconds?)

for sure. there's still room for optimization if it's compared to sgemv and sgemm. I'll also check with FLOPS in later optimization. also, it is milliseconds. will mark as μs when it comes to micro :)

Thanks a lot! 👍


Add share button to the Session Detail Screen

Issue

close #575

Overview (Required)

Add share button to the Session Detail Screen

Links

Session Detail (Web): https://droidkaigi.jp/2018/timetable?session=16969

Screenshot

Before
After

I think two fabs are bad. FAB should be primary action.
https://material.io/guidelines/components/buttons-floating-action-button.html
I think we should use menu icon

I think two FABs are bad. Because FAB should be primary action. 👀
https://material.io/guidelines/components/buttons-floating-action-button.html
I think we should use menu icon.

I agree. I'll use menu icon instead of FAB.

I replaced.
Screenshot

Before
After


load formula without page refresh

In typeset version 2, I could load the formulas without refreshing the page with this piece of code:
            window.MathJax.Hub.Queue([                 "Typeset",                 window.MathJax.Hub,                 math             ]);
How can I do this now in version 3?

As the documentation points out, the call is MathJax.typesetPromise().  In your case you would use
MathJax.typesetPromise([math])

if math is a DOM element whose content includes mathematics.

This code causes the page to freeze
          MathJax.typesetPromise().then(() => {                 // modify the DOM here                 MathJax.typesetPromise(math);             }).catch((err) => console.log(err.message));

Can you provide a link to a page showing the problem?  I am not able to reproduce the problem.  For example, this page works fine for me:
<!DOCTYPE html>

<title>Nested typesetPromise() calls</title>


Enhancement: Support numbered lists on desktop

What features would you like to see added?
The numbers that a model provides in a numbered list shall be shown to the user. They shall not be altered.
More details
Instead of showing 1., 2., 3., 4., like the LLM provides (visible in raw message), LibreChat makes 1., 1., 1., 1. out of them.
The correct numbers should be displayed instead.
Chrome 130.0.6723.70 (Desktop), macOS 15.0.1, claude-3-5-sonnet-20241022, LibreChat v0.7.5-rc2
Which components are impacted by your request?
UI
Pictures

Code of Conduct

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

This and #4120 share the same root cause.
In this case the html generated by react-markdown presents multiple ol elements each containing just one li rather than a single ol with multiple li elements.
To get the right numbers/markers react-markdown sets the start property on each ol (pretty hacky imho).
LibreChat overrides the default list item markers using the css content property and counter function on the ::marker pseudo-element.
So the start property doesn't have any effect and each element starts with 1..
Note that the problem doesn't occur in Webkit browsers since content property for the ::marker pseudo-element is ignored.
I'm about to submit a PR that solves both this and #4120 at the same time.

Closed by #4120


Base skeleton creation

[x] Setup for python package
[x] create a template
[x] Tests setup
[x] research dir creation

Base skeleton done


DCOS_OSS-5562: added make_powershell function to

High-level description
What features does this change enable? What bugs does this change fix?
That one of steps to integrate the dcos_install.ps1 into dcos_generate_config.sh so that it will be deployed to Bootrsrtap machine
There is no packages changes introduced.
Corresponding DC/OS tickets (required)

DCOS_OSS-5562 Integrate Universal Installer to Winpanda setup process .

Related tickets (optional)

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[ ] Change log from the last version integrated (this should be a link to commits for easy verification and review): example
[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain.
[ ] Test Results: [link to CI job test results for component]
[ ] Code Coverage (if available): [link to code coverage report]

@jongiddy , @DominikDary , please review/approve/merge. That's "easy" integration  we were talking on Architecture meeting, 10th of Oct 2019.
@mesosphere-mergebot , changelog-not-required Preparation to add Winpanda

@mesosphere-mergebot request-review jongiddy

@mesosphere-mergebot request-review dominikdary

Is this PR supposed to include the dcos_install.ps1 file? Otherwise the tests will not pass.

yes, @jongiddy, powershell/dcos_install.ps1 has been included into the repository while yesterday's PR

@sergiimatusEPAM I think you need to add the PowerShell scripts to setup.py
https://github.com/dcos/dcos/blob/f4899e6d2dbf2a3a3a5d94c5da347796275852ef/setup.py#L123-L126

@sergiimatusEPAM I think you need to add the PowerShell scripts to setup.py
https://github.com/dcos/dcos/blob/f4899e6d2dbf2a3a3a5d94c5da347796275852ef/setup.py#L123-L126

added the dcos_install.ps1 there. choco_install.ps1 is shipped along with pre-requisites zip

@mesosphere-mergebot changelog-not-required Introduction of preliminary Windows files


⚠ Bofrost.es has degraded performance

In 0d39fb8, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1433 ms

Resolved: Bofrost.es performance has improved in 71b3856 after 8 minutes.


Implement leaderboard model/entity and functions

#28
In this pull request i work on a dynamically updated leaderboard feature.
There is a conflict  with new version of Alexandria which uses starknet 2.8.5 but dojo in project uses 2.7.0.
I imported previous version of Alexandria for starknet version 2.6.0 - it works but there are a lot of warnings on compilation/

but all tests are good :ok:

About solution: The main idea in maintaining Leaderboard up to date: after each changes into leaderboard, i sort entries array by rating. That way players with best rank always will be on top of the leaderboard and you can now rank of player by get his index in array.
This pull request introduces implementing the Leaderboard and LeaderboardEntry models with associated methods and tests.
Dependencies

Added alexandria_sorting tag=cairo-v2.6.0 to manipulate arrays.

New Module:

Added a new leaderboard module to the src/lib.cairo file to encapsulate the leaderboard functionality.

Module Structure:

Added a new module leaderboard to the project in src/lib.cairo.

Leaderboard Implementation:

Implemented the LeaderboardEntry and Leaderboard models in src/models/leaderboard.cairo, based on models from
for LeaderboardEntry model I wrote an impl of PartialEq trait for searching entry by player_id and  an impl of Partialord for sorting by score
Leaderboard is always in sorted state with best player in the 0 index. Score is calculated with this formula
self.wins * 100 + self.highest_score - self.losses * 70.  Leaderboard has methods for add, delete, and update entries.
Created tests for the Leaderboard and LeaderboardEntry models to ensure proper functionality with some negative scenarios as well

Summary by CodeRabbit

New Features

Introduced a tournament system with functionalities for creating and managing tournaments.
Added a leaderboard system to track player scores and statistics.

Improvements

Enhanced model structure for tournaments and leaderboards, allowing for better data management.

Documentation

Updated manifest files to include new contracts and models related to tournaments and leaderboards.

@coxmars Hello sir, can you look at my PR... :pray:


Problem submission - Learning gradient descent with synthetic objectives

I would like to see more people reviewing this proposal and giving feedback.

@cjratcliff  Do you have links for the stuff mentioned under project status? For the optimizers trained with supervision and reinforcement learning?

@farizrahman4u Sure. I've now uploaded the code to Github here. Note that the learned optimizers can't be used as seamlessly as TensorFlow's inbuilt ones right now. Gradients have to be explicitly calculated and passed into the optimizer, which outputs the updates.
Don't expect anything much from the RL version. It's far enough from being complete that it's no better than choosing random updates.


ECR breaks if filename contains quotation marks

Suppose the file "foo".ecr (note the quotation marks) contains the contents <%= x %>. Then the following snippet fails with an error:
require "ecr"

x = 1
puts ECR.render %("foo".ecr)

There was a problem expanding macro 'macro_4763327680'

Code in macro 'embed'

 1 | {{ run("ecr/process", "\"foo\".ecr", "__temp_41") }}
     ^
Called macro defined in macro 'embed'

 1 | {{ run("ecr/process", "\"foo\".ecr", "__temp_41") }}

Which expanded to:

 > 1 | #<loc:push>(#<loc:""foo".ecr",1,4> x )#<loc:pop>.to_s __temp_41
                           ^
Error: expected ',' in loc pragma after filename

This happens because ECR.append_loc does not escape the filename for the loc pragma. But also Crystal's lexer doesn't support escape sequences there in the first place:
https://github.com/crystal-lang/crystal/blob/016578f858cd08efc035a9c66a82965efc75321c/src/compiler/crystal/syntax/lexer.cr#L2409-L2418

Related: because that filename is unescaped, one can technically wipe their system by embedding a file called ",1,1> `rm -rf /`; #<loc:".ecr. (This is probably not that alarming as a plain backtick in the calling code would have done the same damage anyway.)


Support EXCLUDE and RENAME in Snowflake

Hello,
Snowflake added two SQL keywords : EXCLUDE and RENAME
ex of query :
SELECT
    *
    EXCLUDE (col_a)
    RENAME col_b as b
FROM data

Link to documentation : https://docs.snowflake.com/en/sql-reference/sql/select.html
Thank you

@CorentinLimier https://github.com/sqlparser-rs/sqlparser-rs/pull/721 exclude PR


[Discuss]Does dss need convert to kotlin?

Can i convert all of the codes to kotlin?
Discuss bout kotlin coroutine and actor
Why kotlin is better?

https://discuss.kotlinlang.org/t/coroutine-actors-and-thread-safety/2356
https://kotlinlang.org/docs/shared-mutable-state-and-concurrency.html#actors


All traffic in FW to start service issue

I started an instance of emqttd on an AWS server.
I opened the following ports:
4369 - <IP_ADDRESS>/0
1883 - <IP_ADDRESS>/0
44369 - <IP_ADDRESS>/0
When I start the emqttd (sudo service emqttd start) it hangs.
Only when I open:
ALL traffic - <IP_ADDRESS>/0
The service starts successfully.
Why is that?
After opening All traffic it works fine and I can cluster and everything works.
If I don't open All traffic it doesn't start the service at all.
I'm using "emqttd-ubuntu14.04-v2.2.0_amd64.deb"

@GibliX Clustering on AWS: https://github.com/emqtt/emqttd/issues/496


add 'kandi.openweaver.com'

@HelloRusk
Thank you for your interest in this project. This site does not appear to contain a copy of the README or Issue. I am not sure if such a site should be excluded according to the current project policy. Can I put it on hold for now?

I see. Thank you for letting me know!

The site has recently begun distributing copies of Stack Overflow QAs under the heading "Community Discussions."


bug (Tekla, SAP) Incorrect section profiles from Tekla to SAP

Forum report
https://speckle.community/t/tekla-sap2000/7139

Closing this ticket as we are moving to Jira to reduce noise. You can access it there.


Unable to scroll to caret after inserting NSTextAttachment in textView

I am adding images to compose bar’s textview using NSTextAttachment. But when I add more than 2-3 images, textview is not exactly scrolling to caret. Also when I have a combination of text and images (image at last) and when I tap on last line of compose bar, it does not scroll to last line, it scrolls on first or second line or image. Please check my code :
let attachment = ChatTextAttachment()
attachment.image = thumbImage

// Add NSTextAttachment into attributedString
let attributedString = NSMutableAttributedString(string: "", attributes: [NSFontAttributeName:UIFont.systemFontOfSize(14)])
let attrStringWithImage = NSAttributedString(attachment: attachment)
attributedString.appendAttributedString(attrStringWithImage)
attributedString.appendAttributedString(NSAttributedString(string: "\n", attributes: [NSFontAttributeName:UIFont.systemFontOfSize(14)]))

// Add this attributed string to the current position.
self.composeBar.textView.textStorage.insertAttributedString(attributedString, atIndex: self.composeBar.textView.selectedRange.location)
self.composeBar.textView.select(self)
self.composeBar.textView.selectedRange = NSMakeRange(self.composeBar.textView.attributedText.length, 0 );

self.textViewDidChange(self.composeBar.textView)
self.composeBar.textView.layoutIfNeeded()

ChatTextAttachment is a subclass of NSTextAttachment
Let me know if you need any more details.

I'm sorry, can't help you. I recommend asking on StackOverflow.


Media widget should use external IP instead of internal one

Environment
Docker
Version
0.12.0
Describe the problem
At the moment, clicking on the movie/show title redirects to internal IP, e.g:
http://localhost:1234/movie/5678
that might not be available on the browser of the user surfing the page (might not be in the same network that hosts Overseer or Jellyseeer).
I think it would be better to use the external IP, as in:
http://overseer.mydomain.com/movie/5678
Logs
(no logs needed)
Context
The file src/pages/api/modules/media-requests/index.ts returns as href the following:
href: ${app.url}/movie/${item.media.tmdbId}
I think it should return
href: ${app.behaviour.externalUrl}/movie/${item.media.tmdbId}
and I can submit a PR myself, but I wanted to be sure that it was not intended to work like this.
Please tick the boxes

[X] I confirm that I attached the proper logs
[X] I've read the docs
[X] I've checked for duplicate issues
[X] I've tried to debug myself

Hi, thanks for your issue.
I think this makes sense, although we could add a switch if the external host should be used.
It would be amazing if you could submit a pull request, as I and ajnart do not have much time currently.
You can do the following to do this:

Add a new option to the widget: replaceLinksWithExternalHost. You can check out the other widgets, on how we do this. The default value should be true in my opinion. Use the switch type, as it is appropriate in this case.
Modify the code in the API route, to use the external one by default. If the option has been set to false, use the internal one.

I am not sure adding a switch would make a difference. I cannot think about why someone would want to use internal IP to get their images aha. Thanks for the PR tho @Havock94

I have just a question about internal and external IPs, as I couldn't find an explanation in the docs.
To bypass the problem, I tried putting my external URL in the external IP field (so https://overseerr.mydomain.com in both internal and external IPs) and it worked, so there's no real "validation" to make sure an internal IP is actually "internal".
I see the internal IP is used for health checks, and I imagine it's to prevent reverse proxy issues to mark an app as offline even if it's not, but I wanted to make sure that it's what it's supposed to be used for!


python310Packages.geocachingapi: 0.2.1 -> 0.2.2

Description of changes
https://github.com/Sholofly/geocachingapi-python/releases/tag/0.2.2

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 173203 run on x86_64-linux 1

2 packages built:

python310Packages.geocachingapi
python39Packages.geocachingapi


Refactor Report Generation Support files to be included with module when published

💡 Summary
ScubaGear is currently deployed as a zipped package with manual instructions on installation and usage. To migrate to delivery/deployment via a package repository all report creation support files (e.g., *.js, *html) should be included in publishing.
Motivation and context
Why does this work belong in this project?
This would be useful because it supports publishing ScubaGear to a public repository #645
Implementation notes
Reference #94, #645, #677 for context and additional information
-ScubaGear functinality has access to packaged all report creation support files (e.g., Invoke-ReportCreation)
Acceptance criteria
How do we know when this work is done?

[ ] ScubaGear executes properly when installed from a package repository
[ ] ScubaGear executes properly when imported directly from source code baseline

No work required to complete - closing issue,


Build do not work when active configuration is not "Debug"

On Package Manager Console this message is logged:
Value does not fall within the expected range.
At C:\Users\andre\Take\Smart\Itau-ColchaoDeAcordos\ItauDebitoAutomatico\packages\dbup-consolescripts.1.1.1\tools\dbup-consolescripts.psm1:50 char:3

$dte.Solution.SolutionBuild.BuildProject("Debug", $project.FullName ...

+ CategoryInfo          : OperationStopped: (:) [], ArgumentException
+ FullyQualifiedErrorId : System.ArgumentException

Thanks @andreminelli - do you know of an easy fix for this?  I'd welcome a PR for it.

I am trying right now, but I have no experience with Package Manager Console integration. Can you point me any reference, specially for testing things?

I think I got it.

@bradymholt  It seems that this issue is resolved


NEConvolutionKernel Only supports integer convolution

Hi:
When I used NEConvolution on my platform,I see NEConvolutionKernel only support U8 and S16 but not support F16 or F32 recently.I would like to ask how I should  implement float point version of the NEConvolution.And I wanna know Why this library does not implement this function. Is there some technical problems?

I assume you want F32 support in order to do some machine learning convolution, right ?
NEConvolution3x3 is the computer vision convolution for images
NEConvolutionLayer is the machine learning one (Which does support F32)


Generate software associations from operating system commands

One way to gather some basic software/format associations is to make use of things like the Windows Registry to extract the information from a live system.
e.g. assoc maps extensions to IDs, and ftype maps IDs to software. More information about that software can then be gathered like this:
wmic datafile where name="C:\\Program Files\\Microsoft Office\\Root\\Office16\\WINWORD.EXE" GET /ALL /FORMAT:csv > winword.csv

Here's some examples:
assoc.txt
ftype.txt
winword.csv
Wrapping this up as a single exe that gathers the minimal useful info and shares it would make it easier to gather a lot of basic info.

Simplest way would be a Python script that bundles the information together and makes an Excel file or something. Use PyInstaller or similar to make a standalone exe.


GameMaker Studio 2 support

Initial project files have been added but need to be fully tested and prepared for the repository. Additionally, the README needs to be modified correctly and changes published to the marketplace.

Any word on progress?


Ionic serve watch does not output Typescript errors

Note: for support questions, please use one of these channels:
https://forum.ionicframework.com/
http://ionicworldwide.herokuapp.com/
Short description of the problem:
When using ionic serve it only shows Typescript errors the first run of build
after that when the watch triggers, it says "build finished" although there are typescript errors...
What behavior are you expecting?
Ionic serve should also fail the build and show Typescript errors when in watch mode
Steps to reproduce:

Make an ionic project with a typescript error
run ionic serve (the first time it will show typescript build errors)
make a minor change (add comment) and look at the watch trigger from ionic serve (no build errors)

insert any relevant code between the above and below backticks

Which @ionic/app-scripts version are you using?
3.1.6
Other information: (e.g. stacktraces, related issues, suggestions how to fix, stackoverflow links, forum links, etc)

you know that this issue is major urgent, why ?
You code and the watch says all the time the build succeeds, that page reloads everything works.
In reality you have broken code, but you don't see it, and you wonder why the app does not behave like u wish.
The curious thing is that the watcher some to just ignore code that does not compile (transpile), because the app is just working fine (the version before errors started)
The ionic serve watcher says build is ok and reloads the old version of the app.
You never know that your code actually is broken.
This bug makes the ionic serve command completely useless...

Have a fix working for this against @ionic/app-scripts: 3.1.6
In<EMAIL_ADDRESS>replace:
        var host = compiler_host_factory_1.getInMemoryCompilerHostInstance(tsConfig.options);
        if (workerConfig.useTransforms && helpers_1.getBooleanPropertyValue(Constants.ENV_PARSE_DEEPLINKS)) {
            // beforeArray.push(purgeDeepLinkDecoratorTSTransform());
            // beforeArray.push(getInjectDeepLinkConfigTypescriptTransform());
            // temporarily copy the files to a new location
            copyOriginalSourceFiles(context.fileCache);
            // okay, purge the deep link files NOT using a transform
            var deepLinkFiles = util_1.filterTypescriptFilesForDeepLinks(context.fileCache);
            deepLinkFiles.forEach(function (file) {
                file.content = util_1.purgeDeepLinkDecorator(file.content);
            });
            var file = context.fileCache.get(helpers_1.getStringPropertyValue(Constants.ENV_APP_NG_MODULE_PATH));
            var hasExisting = util_1.hasExistingDeepLinkConfig(file.path, file.content);
            if (!hasExisting) {
                var deepLinkString = util_1.convertDeepLinkConfigEntriesToString(helpers_1.getParsedDeepLinkConfig());
                file.content = util_1.getUpdatedAppNgModuleContentWithDeepLinkConfig(file.path, file.content, deepLinkString);
            }
        }

with
        var host = ts.createCompilerHost(tsConfig.options);

remove / comment:
        resetSourceFiles(context.fileCache);

As per: https://gist.github.com/lathonez/672609416bac268f07ead769763cecaa#file-transpile-js-L125-L152
That gist is a working copy of transpile.js for me. I am probably just going to monkey-patch it.

Is there any news regarding this issue? it's a pain having to either monkey patch or manually change using the fix by @lathonez (which does work, YMMV!)

I still have this issue too. So annoying.. I use version 3.20. I'm afraid to mess with webpack to be honest. I'll try the workaround. Thanks

Bump. This issue is very very very annoying!!!

Delicious issue that makes development a great pain

Same here, please fix!

umm this sounds rather serious, any plans to address this?


Swipe menu doesn't show buttons/actions after swiping other cells

This is exactly the same issue reported before on https://github.com/SwipeCellKit/SwipeCellKit/issues/97 but in this case with UICollectionView. Can the same fix applied for the UITableView be used on this case too?

Give me a try and I can review the PR if you think the solution is the same. Thanks.

After checking the fixes applied for similar reported issues I realised that the problem was due to using contentView.clipsToBounds = true in the awakeFromNib() and by removing it the issue is now gone.


Use float-features to handle infinite value

Hi! Noticing float-features was added as a dependency recently, I made it used for handling inf and nan, which are valid values in protobuf.

Thank you!
Please sign the cla and add tests.

@Slids All done. Please check them out.


ReflectionUtils.getMethods no longer returns non-public methods

Prior to 1f05c178131b252b787e0c89f43feab3b370295b, ReflectionUtils.getMethods is implemented using Class.getDeclaredMethods() for non-interface types, which returns non-public methods.
After that changes it uses Class.getMethods(), which only returns public methods.
Was this a deliberate change? ReflectionUtils still uses getDeclaredConstructors and getDeclaredFields.
Before:
https://github.com/ronmamo/reflections/blob/9a1ac08d59311a91f3dad06f0c831eccdc47f1e3/src/main/java/org/reflections/ReflectionUtils.java#L103-L105
After:
https://github.com/ronmamo/reflections/blob/1f05c178131b252b787e0c89f43feab3b370295b/src/main/java/org/reflections/ReflectionUtils.java#L185-L187
https://github.com/ronmamo/reflections/blob/1f05c178131b252b787e0c89f43feab3b370295b/src/main/java/org/reflections/ReflectionUtils.java#L137-L138

thanks @cushon , you're right, it should result in all methods.
if you wish to raise a pr with this small fix, please do, otherwise I'll take care of it on the next release.


Storage: Implement Bucket-Level IAM Policy Management

getIamPolicy
setIamPolicy
testIamPolicy

This is not release blocking. Bucket-level IAM has been pushed out until later.

Marking as blocked as we're still waiting on whitelisting.

Summoning @elibixby. Not sure if you are the right person, but I think you might be -- can we get whitelisted, pretty please? :-)

Nope unfortunately, try pinging yarbrough@ ... You might also want to get notified whitelisted for the new GCS Change Notifications (which work via Pub/Sub) while you're at it.

Un-blocked-- my account and the system tests account seems to have been whitelisted.
Stuck on another issue, though if anyone can help https://github.com/GoogleCloudPlatform/google-cloud-node/pull/2060#issuecomment-289518460


Kernel Killing Process

The kernel is killing when I try to save the model.
The codes responsible for this is:
dataset = tc.SFrame({'rating': ratings_vector, 'text': reviews_vector})  # {'rating': ratings_vector, 'text': reviews_vector}
model = tc.sentence_classifier.create(dataset, 'rating', features=['text'])  # l1_penalty=1.0 ## no l_1penalty ? odd.
# model.predict

model.save('MySentenceClassifier.model')
model.export_coreml('MySentenceClassifier.mlmodel')

This gives an output of:
(sent_turi_2_7/) DN0a237d22:aclImdb airphoenix$ python imdb_sent_turi.py
building model from ratings and dataset, with text features
PROGRESS: Creating a validation set from 5 percent of training data. This may take a while.
          You can set ``validation_set=None`` to disable validation tracking.

WARNING: The number of feature dimensions in this problem is very large in comparison with the number of examples. Unless an appropriate regularization value is set, this model may not provide accurate predictions for a validation/test set.
Logistic regression:
--------------------------------------------------------
Number of examples          : 23718
Number of classes           : 8
Number of feature columns   : 1
Number of unpacked features : 243873
Number of coefficients      : 1707118
Starting L-BFGS
--------------------------------------------------------
+-----------+----------+-----------+--------------+-------------------+---------------------+
| Iteration | Passes   | Step size | Elapsed Time | Training-accuracy | Validation-accuracy |
+-----------+----------+-----------+--------------+-------------------+---------------------+
| 1         | 3        | 0.000042  | 3.592440     | 0.639514          | 0.207488            |
| 2         | 5        | 1.000000  | 170.172835   | 0.954844          | 0.273791            |
| 3         | 6        | 1.000000  | 349.994020   | 0.981870          | 0.306552            |
| 4         | 7        | 1.000000  | 530.304889   | 0.991146          | 0.322933            |
| 5         | 8        | 1.000000  | 700.272448   | 0.996079          | 0.330733            |
| 6         | 9        | 1.000000  | 866.660870   | 0.998440          | 0.330733            |
| 7         | 10       | 1.000000  | 1031.851763  | 0.999410          | 0.335413            |
| 8         | 11       | 1.000000  | 1213.579933  | 0.999831          | 0.334633            |
| 9         | 12       | 1.000000  | 1420.516521  | 0.999831          | 0.333073            |
| 10        | 13       | 1.000000  | 1605.898038  | 0.999831          | 0.333073            |
+-----------+----------+-----------+--------------+-------------------+---------------------+
TERMINATED: Iteration limit reached.
This model may not be optimal. To improve it, consider increasing `max_iterations`.
Killed: 9

I have tried both 2.7 and 3.6. If I run something small, like the below:
dummy_ratings = [1, 0]
dummy_reviews = ['good', 'bad']

dataset = tc.SFrame({'rating': dummy_ratings, 'text': dummy_reviews})  # {'rating': ratings_vector, 'text': reviews_vector}
model = tc.sentence_classifier.create(dataset, 'rating', features=['text'])  # l1_penalty=1.0 ## no l_1penalty ? odd.
# model.predict

model.save('dummy_SentenceClassifier.model')

it works fine:
(sent_turi) DN0a237d22:aclImdb airphoenix$ python compile.py
WARNING: The number of feature dimensions in this problem is very large in comparison with the number of examples. Unless an appropriate regularization value is set, this model may not provide accurate predictions for a validation/test set.
Logistic regression:
--------------------------------------------------------
Number of examples          : 2
Number of classes           : 2
Number of feature columns   : 1
Number of unpacked features : 2
Number of coefficients      : 3
Starting Newton Method
--------------------------------------------------------
+-----------+----------+--------------+-------------------+
| Iteration | Passes   | Elapsed Time | Training-accuracy |
+-----------+----------+--------------+-------------------+
| 1         | 2        | 1.036190     | 1.000000          |
| 2         | 3        | 1.042693     | 1.000000          |
+-----------+----------+--------------+-------------------+
SUCCESS: Optimal solution found.

Anything I can do?

Is this happening during save or export_to_coreml? I suspect its the latter. Save should work on data that size. Can you confirm?

I will run the longer one presently, but for now, the dummy model exports fine.
dummy_ratings = [1, 0]
dummy_reviews = ['good', 'bad']

dataset = tc.SFrame({'rating': dummy_ratings, 'text': dummy_reviews})  # {'rating': ratings_vector, 'text': reviews_vector}
model = tc.sentence_classifier.create(dataset, 'rating', features=['text'])  # l1_penalty=1.0 ## no l_1penalty ? odd.
# model.predict

print('SAVING MODEL...')
model.save('dummy_SentenceClassifier.model')
print('EXPORTING COREML...')
model.export_coreml('dummy_SentenceClassifier.mlmodel')

Number of examples          : 2
Number of classes           : 2
Number of feature columns   : 1
Number of unpacked features : 2
Number of coefficients      : 3
Starting Newton Method
--------------------------------------------------------
+-----------+----------+--------------+-------------------+
| Iteration | Passes   | Elapsed Time | Training-accuracy |
+-----------+----------+--------------+-------------------+
| 1         | 2        | 1.056459     | 1.000000          |
| 2         | 3        | 1.061228     | 1.000000          |
+-----------+----------+--------------+-------------------+
SUCCESS: Optimal solution found.

SAVING MODEL...
EXPORTING COREML...
Saving valid model to path dummy_SentenceClassifier.mlmodel

This
print('building model from ratings and dataset, with text features')
dataset = tc.SFrame({'rating': ratings_vector, 'text': reviews_vector})  # {'rating': ratings_vector, 'text': reviews_vector}
model = tc.sentence_classifier.create(dataset, 'rating', features=['text'])  # l1_penalty=1.0 ## no l_1penalty ? odd.
# model.predict

print('SAVING MODEL...')
model.save('MySentenceClassifier.model')
print('MODEL SAVED!')
print('EXPORTING COREML...')
model.export_coreml('MySentenceClassifier.mlmodel')
print('EXPORTED COREML!')

is not reaching the print('SAVING MODEL...') line.
Logistic regression:
--------------------------------------------------------
Number of examples          : 23741
Number of classes           : 8
Number of feature columns   : 1
Number of unpacked features : 244369
Number of coefficients      : 1710590
Starting L-BFGS
--------------------------------------------------------
+-----------+----------+-----------+--------------+-------------------+---------------------+
| Iteration | Passes   | Step size | Elapsed Time | Training-accuracy | Validation-accuracy |
+-----------+----------+-----------+--------------+-------------------+---------------------+
| 1         | 3        | 0.000042  | 3.221630     | 0.634640          | 0.185862            |
| 2         | 5        | 1.000000  | 171.659689   | 0.955099          | 0.277204            |
| 3         | 6        | 1.000000  | 340.046417   | 0.983067          | 0.304210            |
| 4         | 7        | 1.000000  | 808.600929   | 0.991702          | 0.319301            |
| 5         | 8        | 1.000000  | 981.538927   | 0.996083          | 0.335187            |
| 6         | 9        | 1.000000  | 1155.803319  | 0.998442          | 0.345512            |
| 7         | 10       | 1.000000  | 1311.784861  | 0.999452          | 0.345512            |
| 8         | 11       | 1.000000  | 1509.004454  | 0.999789          | 0.344718            |
| 9         | 12       | 1.000000  | 1731.304582  | 0.999789          | 0.347895            |
| 10        | 13       | 1.000000  | 1896.446011  | 0.999832          | 0.347101            |
+-----------+----------+-----------+--------------+-------------------+---------------------+
TERMINATED: Iteration limit reached.
This model may not be optimal. To improve it, consider increasing `max_iterations`.
Killed: 9

I can confirm this is also happening to me.
Code:
data.save("detail_images.sframe")
data.explore()

dataBuffer = turi.SFrame("detail_images.sframe")
trainingBuffers, testingBuffers = dataBuffer.random_split(0.9)
turi.config.set_runtime_config('TURI_FILEIO_MAXIMUM_CACHE_CAPACITY', 2*1024*1024*1024)
model = turi.image_classifier.create(trainingBuffers, target="productNumber", model="resnet-50", max_iterations=10)
evaluations = model.evaluate(testingBuffers)
print evaluations["accuracy"]
print('SAVING MODEL...')
model.save("detail_images.model")
print('EXPORTING MODEL...')
model.export_coreml("DetailImagesClassifier.mlmodel")

Output:
Materializing SFrame...
Done.
[10:01:15] src/nnvm/legacy_json_util.cc:190: Loading symbol saved by previous version v0.8.0. Attempting to upgrade...
[10:01:15] src/nnvm/legacy_json_util.cc:198: Symbol successfully upgraded!
Resizing images...
Performing feature extraction on resized images...
Completed  512/1321
Completed 1024/1321
Completed 1321/1321
PROGRESS: Creating a validation set from 5 percent of training data. This may take a while.
          You can set ``validation_set=None`` to disable validation tracking.

WARNING: The number of feature dimensions in this problem is very large in comparison with the number of examples. Unless an appropriate regularization value is set, this model may not provide accurate predictions for a validation/test set.
WARNING: Detected extremely low variance for feature(s) '__image_features__' because all entries are nearly the same.
Proceeding with model training using all features. If the model does not provide results of adequate quality, exclude the above mentioned feature(s) from the input dataset.
Logistic regression:
--------------------------------------------------------
Number of examples          : 1261
Number of classes           : 446
Number of feature columns   : 1
Number of unpacked features : 2048
Number of coefficients      : 911805
Starting L-BFGS
--------------------------------------------------------
+-----------+----------+-----------+--------------+-------------------+---------------------+
| Iteration | Passes   | Step size | Elapsed Time | Training-accuracy | Validation-accuracy |
+-----------+----------+-----------+--------------+-------------------+---------------------+
| 1         | 3        | 0.000793  | 27.941375    | 0.016653          | 0.000000            |
| 2         | 5        | 1.000000  | 53.585154    | 0.193497          | 0.000000            |
| 3         | 6        | 1.000000  | 70.705666    | 0.434576          | 0.000000            |
| 4         | 7        | 1.000000  | 87.500613    | 0.616971          | 0.000000            |
| 5         | 8        | 1.000000  | 103.658185   | 0.714512          | 0.016667            |
| 6         | 9        | 1.000000  | 120.545977   | 0.840603          | 0.066667            |
| 7         | 10       | 1.000000  | 139.111506   | 0.881840          | 0.116667            |
| 8         | 11       | 1.000000  | 155.651223   | 0.922284          | 0.150000            |
| 9         | 12       | 1.000000  | 176.977315   | 0.946868          | 0.183333            |
| 10        | 13       | 1.000000  | 192.442671   | 0.962728          | 0.183333            |
+-----------+----------+-----------+--------------+-------------------+---------------------+
TERMINATED: Iteration limit reached.
This model may not be optimal. To improve it, consider increasing `max_iterations`.
Killed: 9

This is actually only about 1/3 of our full dataset which contains roughly 4500 images to be scanned.
Any ideas on why Terminal is killing the process?

@srikris I upgraded to turicreate v4.3.1 and it seems to work :)
Successfully installed decorator-4.3.0 mxnet-1.1.0.post0 turicreate-4.3.1
I was given this output, and the Turi Create Visualizer crashed, but it did complete.
Materializing SFrame...
Done.
[10:18:36] src/nnvm/legacy_json_util.cc:190: Loading symbol saved by previous version v0.8.0. Attempting to upgrade...
[10:18:36] src/nnvm/legacy_json_util.cc:198: Symbol successfully upgraded!
Resizing images...
Performing feature extraction on resized images...
Completed  512/1320
57:65: execution error: Turi Create Visualization got an error: AppleEvent timed out. (-1712)
Completed 1024/1320
Completed 1320/1320
PROGRESS: Creating a validation set from 5 percent of training data. This may take a while.
          You can set ``validation_set=None`` to disable validation tracking.

WARNING: The number of feature dimensions in this problem is very large in comparison with the number of examples. Unless an appropriate regularization value is set, this model may not provide accurate predictions for a validation/test set.
WARNING: Detected extremely low variance for feature(s) '__image_features__' because all entries are nearly the same.
Proceeding with model training using all features. If the model does not provide results of adequate quality, exclude the above mentioned feature(s) from the input dataset.
Logistic regression:
--------------------------------------------------------
Number of examples          : 1257
Number of classes           : 448
Number of feature columns   : 1
Number of unpacked features : 2048
Number of coefficients      : 915903
Starting L-BFGS
--------------------------------------------------------
+-----------+----------+-----------+--------------+-------------------+---------------------+
| Iteration | Passes   | Step size | Elapsed Time | Training-accuracy | Validation-accuracy |
+-----------+----------+-----------+--------------+-------------------+---------------------+
| 1         | 3        | 0.000796  | 27.975578    | 0.031026          | 0.000000            |
| 2         | 5        | 1.000000  | 52.112428    | 0.193317          | 0.000000            |
| 3         | 6        | 1.000000  | 67.687941    | 0.429594          | 0.000000            |
| 4         | 7        | 1.000000  | 83.256735    | 0.603819          | 0.015873            |
| 5         | 8        | 1.000000  | 98.695507    | 0.751790          | 0.031746            |
| 6         | 9        | 1.000000  | 114.265765   | 0.812251          | 0.063492            |
| 7         | 10       | 1.000000  | 129.814082   | 0.872713          | 0.063492            |
| 8         | 11       | 1.000000  | 145.254219   | 0.887828          | 0.063492            |
| 9         | 12       | 1.000000  | 160.750995   | 0.925219          | 0.111111            |
| 10        | 13       | 1.000000  | 176.391701   | 0.944312          | 0.063492            |
+-----------+----------+-----------+--------------+-------------------+---------------------+
TERMINATED: Iteration limit reached.
This model may not be optimal. To improve it, consider increasing `max_iterations`.
Resizing images...
Performing feature extraction on resized images...
Completed 147/147
0.122448979592
SAVING MODEL...
EXPORTING MODEL...

The Turi Create Visualizer seems to crash on launch.

@srikris
Thank you for your help :)
I can confirm that the Visualizer is crashing for any image set, not just my own. Before upgrading to 4.3.1 I did not have this problem.
This can be recreated using the dataset of images from this tutorial: https://www.appcoda.com/core-ml-model-with-python/
Here is the link to the image dataset from the tutorial above: https://drive.google.com/file/d/1ZLigrn7YcETalcj2qK6UqXceDdOV3244/view?usp=sharing
Please let me know if you need any more information.

@bfeher The fix is now available in Turi Create 4.3.2 on PyPI and GitHub

Confirmed. Thank you :)


its ansible not ansibel

typo in readme.md

Cool. Thanks!
On Mon, Mar 21, 2022, 13:03 alf149 @.***> wrote:

Thanks.
Fixed in github, vil be fixed in galaxy with next version.
/Rolf
Den man. 21. mar. 2022 kl. 16.20 skrev Arturo Busleiman aka Buanzo <
@.***>:

typo in readme.md
—
Reply to this email directly, view it on GitHub
https://github.com/alf149/ansible-role-crowsec/issues/2, or
unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AAOVCI6RVM5ZNF3M4VFDJRLVBCHS3ANCNFSM5RIA3WRA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

—
Reply to this email directly, view it on GitHub
https://github.com/alf149/ansible-role-crowsec/issues/2#issuecomment-1074082129,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEHBT2X4JPLI2FR7IA5QVTVBCMU7ANCNFSM5RIA3WRA
.
You are receiving this because you authored the thread.Message ID:
@.***>


Proposal 2 - allow the state change to be delayed

Originally from #24, submitted by @bartbutenaers
When I change the state (e.g. from Off to Away), I want to have some time to leave the building.  However during that time some of the sensors might detect my presence, but I don't want to trigger an alarm in that time period.
I think this might be solved by adding a delay input field to the change-state node:

So the new state would become active only after that specified delay.
Of course this timer need to be stopped automatically when meantime a new state change request arrives.   For example I have changed the state from Off to Away, but then I suddenly realize that I have left my jacket in the kitchen.  So I switch the state back from Away to Off.   This means that the running timer should be stopped automatically.
P.S. not sure what would be the best way to implement this, because multiple timings might be useful.  E.g. from Off to Away might be 60 seconds, while from Away to Off will most probably be 0 seconds.

Yes, I've been thinking about exit delays. Entry delays were not so hard to work around and make configurable.
I reverted to just arming the panel via iphone or siri after leaving home and just thought that made more sense as there is no physical "keypad" so to speak.
Happy however to add a function like this. So let's figure out the best idea, post ideas here and any comment on @bartbutenaers suggestions so we can come up with a really good solution.

I reverted to just arming the panel via iphone

I was doing the same here, although via Android ;-)
But then we keep on cheating, because we cannot delay the state ...
A use case:

You mount a physical touch screen in a room, to show a keypad via the Node-RED dashboard.
When you go away from home, you activate the Away mode on your touch screen.
In that room is a PIR sensor, that detects your movement after you have activated the Away mode.

This means that the alarms triggered by the PIR sensor between step 3 and 4 need to be ignored.
So I "assume" this simple rule would be sufficient:
All sensor values (that contain a trigger value) should be ignored when they arrive when the timer is active.
I am curious whether somebody else has another use case, where this rule is not sufficient...


Querying collections with entities, output in POJO

Description
I could not find any documentation for the following problem.
Hello,
I am currently facing an issue when dealing with Projections and collections of objects. I have an Entity and a regular POJO and would like to fetch data from the database and get the POJO as a result. Example scenario:
@Entity
public class House {
	private String houseId;
}

@Entity
public class Room {
	private Long roomId;
	private House house;
	private Set<Thing> things;
}

@Entity
public class Thing {
	private String name;
}

public class RoomInHouse {
	private Long roomId;
	private String houseId;
	private Set<Thing> things;
}

My query initially looked like this:
final var pageable = PageRequest.of(getPageNumber(requestParams), getPageSize(requestParams)); // stuff for pagination
QHouse house = new QHouse("house");
QRoom room = new QRoom("room");
QThing thing = new QThing("thing");
final JPAQueryFactory = new JPAQueryFactory(entityManager);
final JPAQuery<RoomInHouse> query = queryFactory.select(
		Projections.constructor(
			RoomInHouse.class,
			room.roomId,
			house.houseId,
			room.things
		)
	)
	.from(room)
	.leftJoin(room.house, house)
	.leftJoin(room.things, thing)
	.groupBy(room.roomId, house.houseId, thing.name);
final List<RoomInHouse> rooms = querydsl.applyPagination(pageable, query).fetch();

However, it seems I cannot directly query the collection without some extra steps. I found this where somebody had a similar problem and used transform to solve it but I got a type error when trying to use the GroupBy.set() or Expressions.set() method.
As a workaround, I created a second query where I query the entity directly (without any projections so there I can get the collection) and then compare the two query results and add the collections to the POJOs manually. Doing it like this makes other things like sorting quite difficult.
How can I query collections like this and put it into a POJO directly?
Thanks!

Thank you for the quick reply! However when using this code, I receive a Map<List<?>, RoomInHouse> instead of a List<RoomInHouse>. I removed the .groupBy(...) part from the query and replaced fetch with your code since transform also fetches the query directly. I tried it with GroupBy.list() and Expressions.list() but it yields the same result.
Did I make a mistake somewhere?

⚡
List<RoomInHouse> result = new JPAQuery<>(entityManager)
    .select(Projections.constructor(RoomInHouse.class, room.roomId, house.houseId, room.things))
    .from(room)
    .join(room.house, house)
    .fetchJoin()
    .leftJoin(room.things, thing)
    .transform(GroupBy.groupBy(room.roomId, house.houseId)
        .as(Projections.constructor(RoomInHouse.class, room.roomId, house.houseId, GroupBy.list(thing))))
    .fetch();

Hi, in the meantime I stumbled on this problem again. I'm still receiving a Map instead of a List from this call. The only difference from your code is that I first create the query, then apply the pagination and then call transform (see my initial post). From what I can see, as always returns a Map. Is there another way?


VGA video modes

I've finally had some spare time to start working on my OS again and was hoping I might have a chance to give back after all the great work you've done so far. I know there's currently an open issue for VESA video modes https://github.com/rust-osdev/bootloader/issues/37, but I didn't want to hijack that thread.
Since you have plans for VESA video modes in the future, would you also be interested in adding support for VGA modes? I've just finished a minimal example that has support for switching to 80x25 text mode from the kernel using VGA registers. The current code can be found here https://gist.github.com/RKennedy9064/374ed861f743079e43b1c5da87af63f8.
I was able to successfully boot my OS using the vga_320x200 mode from bootloader, then switch to 80x25 text mode and use the println! macro to display messages again.
I'm not sure if this is on the road map, or even something you're interested in, but if you are I'd love to possible collaborate to include something like this. My plan is to clean up the existing code, add more comments and tests and then try to add more support for additional modes. I figured it would be nice to have the ability to switch video modes from the kernel at run time.
Let me know what you think when you have the time and thanks for all the great work so far on the tutorials!

Sounds awesome! I didn't have time to explore VGA/VESA video modes recently, but I think it would be great to have support for them. Being able to switch the video mode from the kernel at run time sounds like an even better approach. So yes, I would love to merge a pull request for this!
If I remember correctly, one reason for exploring additonal video modes was that the VGA text buffer is apparently not supported with UEFI. Since we want to add UEFI support, it would be great to have the same video modes work with both BIOS and UEFI booting. Maybe you know something about this?

I don't really have much experience with UEFI, but from what I've read it has it's own way of outputting using OutputString, then once you initialize everything and call ExitBootServices you should have full control over the system, with the ability to switch modes by programming the VGA registers. Can anyone with more knowledge of UEFI confirm or deny this?

I manage to play around with some more modes over the weekend and the results are attached below. One thing to consider if this gets implemented is that we'd need to map some more memory locations in order for the different modes to work. In order to write the font data I needed to access memory locations between 0xb9000 - 0xb9fff. Also, when testing switching modes vga320x200 to any of the test modes, I also had to map 0xb8000 - 0xb9fff since it looks like that location isn't mapped when booting with that feature. My guess is to be safe we'd probably need to map 0xa0000 - 0xbffff if we wanted to be able to support any vga mode.

I'm fine with mapping more memory regions. Perhaps we should also export the framebuffer start address in the boot info struct.

Currently I'm grabbing the framebuffer start address from the miscellaneous register on the graphics controller like so, since the graphics card internally tracks the framebuffer. I was going to store the framebuffer as a field on Vga that gets set anytime a mode is changed so that is always knows which framebuffer to write to.
#[repr(u32)]
enum FrameBuffer {
    GraphicsMode = 0xa0000,
    CgaMode = 0xb8000,
    MdaMode = 0xb0000,
}

fn get_frame_buffer(&mut self) -> *mut u8 {
    let miscellaneous_graphics = self
        .graphics_controller_registers
        .read(GraphicsControllerIndex::Miscellaneous);
    let memory_map_mode = (miscellaneous_graphics >> 0x2) & 0x3;
    let frame_buffer = FrameBuffer::from(memory_map_mode);
    u32::from(frame_buffer) as *mut u8
}

My original plan was to create a trait with a few helper methods such as write_byte and write_pixel, then expose a few methods on Vga that would allow a user to write a character, or pixel data to the screen based on the mode. It could grab the framebuffer from Vga, and based on the mode perform writes as implemented by the trait for each mode.
I'd like to get one graphics mode mapped out, but after that I'd be ready to create an initial PR for review/improvement/cleanup. Do you have any naming conventions you'd like to follow? I know everything is under video_mode currently. Right now I have everything under a vga folder, with files named vga_font, vga_registers, etc.

I'd like to get one graphics mode mapped out, but after that I'd be ready to create an initial PR for review/improvement/cleanup.

Sounds great!

Do you have any naming conventions you'd like to follow? I know everything is under video_mode currently. Right now I have everything under a vga folder, with files named vga_font, vga_registers, etc.

I don't think that we have any particular conventions to follow (apart from the Rust typical conventions). Also, we can always clean things up in future PRs if necessary. Thanks a lot for your work!

@phil-opp I created my initial PR #102 for feedback/improvements/cleanup when you have a chance to review it.

I made a PR for mapping the memory regions here #104. If everything looks good I can close this and the PR #102 since it's now its own crate.

This is now part of https://github.com/rust-osdev/vga


the latest upstream + the latest NEC works

the latest upstream + the latest NEC changes
Arrow NEC:

fix benchmark builds
fix IntToString failure: the inline function was aggressively optimized. it was rewritten with template
change: nearbyint to rint which works correctly
fix some arrow/parquet compile/test errors
fix/replace unrecognized U string literal with int
disable decimal tests as it causes SIGSEGV . (probably, many template instantiations in one translation unit)
fix linking paths. there was a problem in linking as library paths were added hardcoded. we fixed it using mini-hack as policies and other settings did not work as intended
fix debug build failures. it should build boost properly
fix cmake thirdparty libs section on NEC
arrow test failures reduced with -mno-vector. (we could re-enable it selectively later for better performance)
fix/workaround nc++ bug: struct type with bool type and bit fields incorrect behavior
add aurora.cmake and fix cmake related errors
add Nec.md

@wmeddie
I think we can merge the latest changes. I rebased it.
well, though, it's not 100 of 100 and there are still some test failures but mostly those are edge cases or the cases that could be ignored totally.  actually, 1-2 weeks ago I tried to solve some test failures and the latest upstream compilations errors. some of them were like searching a needle in a haystack, some were easy,  but overall those are time-consuming problems with slow progress.
I believe next, we could enable the vectorization to re-check again (I disabled them because of some segs/failures), besides additional fixes.
I apologize for the delay and for not delivering a 100% working port. I did not expect it could take such unnecessary time.


Make wallet more event driven

Is your feature request related to a problem? Please describe.
It is a bit difficult to handle manual disconnect session from wallet with kotlin.Flow
Describe the solution you'd like
I would prefer to send DeletedSession.Success and DeletedSession.Error event once it is disconnected even when it is disconnected from Wallet. This way Wallet Application will be allowed to make actions when session disconnected successfully everytime. Because now the only thing happened after attempt of disconnect is logging
My idea is that this flow should be event driven as it is when disconnection happens from DApp to make it consistent.

The problem of your solution that you try to handle it in UI and send Disconnect UI Event even when it happens with error, so result from rpc is unused this way

I would even move it to bug since delete session from Wallet means nothing, because it is not guaranteed at all that actual session will be deleted

Even better thing came to my mind.
You can invoke onSessionDelete after 3 points:

Disconnect from Wallet
Disconnect from DApp
Session expired
This way wallet always will be up to dated with sessions

PR with adding onSuccess callbacks: https://github.com/WalletConnect/WalletConnectKotlinV2/pull/558


there is a unknow Gig showing after show the SplashImage

Same here. There is an image that is being set.

@mehcode  So, i added the AppTheme as describe in the how to for android.
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@drawable/splash</item>
</style>

What i am seeing is that it takes the library provided RNSplashScreen_SplashTheme theme instead of taking the one using the library. Or am i missing something?

https://github.com/mehcode/rn-splash-screen/blob/master/android/src/main/res/values/styles.xml#L7 should refer to your drawable/splash if you've defined one correctly.
I've tried running the example app several times and I don't see the default image ( https://github.com/mehcode/rn-splash-screen/blob/master/android/src/main/res/drawable/splash.png ) show up at any point.
Try cloning and running the example. I admit it can be a bit confusing to setup the first time.

I too get this issue with "default" image from module, not my project. I'm not the java developer and might be wrong.
Unfortunately I cannot compile example with my android studio 3.1 and react-native-cli: 2.0.1 (error: method show in class SplashScreen cannot be applied to given types)
I checked android setup instuctions twice, seems all made correct. At last I just added my settings
into styles.xml as RNSplashScreen_SplashTheme node.
<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- android:windowBackground does not get applied from here -->
    </style>
    <style name="RNSplashScreen_SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowBackground">@drawable/background_splash</item>
        <item name="android:statusBarColor">@color/white</item>
    </style>
</resources>

And got my splash screen works as expected.
I used react-native-splash-screen before, but it does not work great with react-native-fcm, and this library rn-splash-screen - works. Thank you for your library.

I have the same issue.  While the example app works fine.
The only difference between the example and mine is  the theme name.
So, I rename the theme name "RNSplashScreen_SplashTheme" and  replace it in AndroidManifest.xml, then solve it!
<manifest ...>
    ....
    <application...
        <activity android:theme="@style/RNSplashScreen_SplashTheme" ...

And the /src/res/values/styles.xml
<resources>
    <style name="RNSplashScreen_SplashAnimation">
        <item name="android:windowExitAnimation">@android:anim/fade_out</item>
    </style>
    <style name="RNSplashScreen_SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowBackground">@drawable/launch_screen</item>
        <item name="android:statusBarColor">@color/splashBackground</item>
        <item name="android:windowAnimationStyle">@style/RNSplashScreen_SplashAnimation</item>
    </style>
</resources>


Renames js- css prefix to govuk-js-

Currently two components(character count & header) have js- interaction
hooks. Unfortunately we have found somes instances where other 3rd party js or
legacy js (govuk-elements etc) had some unexpected behaviour with
the components and in some cases raised js errors.
We decided as a team that we should instead namespace (using govuk-js)
these hooks so that we have confidence in the initialising and interaction of the components on a page with other scripts.
fixes https://github.com/alphagov/govuk-frontend/issues/1270

does this change extend to the template? https://github.com/alphagov/govuk-frontend/blob/master/src/template.njk#L31

Hi @kr8n3r,
No it doesn't,  the team decided that js-enabled was to widely used for styling components and we could not think of a use case were you would use 'js-enabled' as a hook to add interactions.
As you pointed out with this line of code, if JavaScript fails or is disabled then 'js-enabled' would not be added to the body element and no JavaScript would run anyway.

One big reason to avoid changing js-enabled is that it'd make it harder for users using GOV.UK Template with GOV.UK Frontend


FPS configuration

hello sir, is it possible to add FPS configuration here?

haven't thought about it, sorry, not for now

but you can add your solution in MR


login not working after migrate "1.1.0-beta.3" to "ember-simple-auth": "^1.4.0",

Hello, after i upgrade addon the login on my app not working, it not redirect to my dashboard, but if I send a wrong password, error message appear correctly, i'm using devise authenticator and authorizer
when i debug, addon throw an exception after makeRequest inside authenticate function, exactly on line 149 when it do response.json().then((json) => {
after that, the debbuger jump to catch(error).

i'm using the same backend when it used 1.1.0-beta.3 version,
the response from backend contain token, email and user object
{"token":"ef10a1b5032263b53311a2f9e79839b4","email":"test@test.com","user":{"id":2,"email":"test@test.com","name":"name test","lastname":"lastname test"}}
any suggestions?
Thanks

What's the error you're getting?

@marcoow
I am also facing the same issue.
my Login was working fine before when I used 1.1.0-beta.3 and simply passing username and password from UI.
But when I updated the ember-simple-auth": "^1.4.0", then I am getting an error on my console. and it's not working for me
and here I am getting "access_token is missing in server response" error in console.
please suggest. How I can use Latest version of ember-simple-auth": "^1.4.0", or any modification needed from server-side response/ or this is an ember issue?

Server responses are validates as of ESA 1.2.0 - see https://github.com/simplabs/ember-simple-auth/pull/957.
This only worked by accident in previous versions. If you cannot fix the server response you need to customize the authenticator so it can work with the non-standard response.


release notes: change procedure to have contributors add RST release …

…notes
It's too much work for the releaser to bring all the raw release notes over.
Experiment failed. I am deleting this now to avoid racing with pending 1.6.0
changes. I will move the ones over that I am deleting as part of this change.

@envoyproxy/maintainers


TS-2978 Reorder member variables in HttpSM State

Reduce padding by grouping non four byte aligned variables together.
Packing was done by hand, and pretty much only touched bools and chars. There was no attempt to pack any structs/objects.
Testing with sizeof()s showed a reduction in the size of HttpTransact::State from 4088B to 4064B.

Further testing with pahole may be done later, when I get a vm setup with a supported OS.

Can you show the pahole(1) results for before and after?

pahole results for unpacked
pahole results for packed
Although it looks like there's another 200B we can squeeze out, I'm not sure if scrambling up all the variable groupings is worth it.
I'll spend some more time trying to get some free bytes today.

Packed a little more. Now down to 4056B.
pahole results here


emails: Fix new login emails have unserializable context.

Regression introduced in e0f30d0 (PR #7569).

merged, thanks @rishig


Disable patchelf in classic confinement snaps

This should fix https://github.com/juju-solutions/kubernetes-jenkins/issues/159

Wow.
Does cdk-addons need this too? It includes a copy of kubectl: https://github.com/juju-solutions/cdk-addons/blob/master/Makefile#L12

Oh, cdk-addons is strictly confined, so maybe that's not relevant.
Anyway, thanks for this, merging


Improved library for drawing on screens (especially for M5StickC)

M5StickC seems to use this 6000-lines C-library https://github.com/m5stack/M5StickC/blob/master/src/utility/In_eSPI.cpp
Not really feasible for us to reimplement it in Python, but also unlikely to get something like that integrated into the official MicroPython (is my guess), either we use the current library in the M5Stack version of MicroPython, or make our own fork with this library integrated. The best case, I guess, would be to get a condensed version of the library into MicroPython, that only does the very basics, and then write Python library on top.


chore: make sure all assert.true statements include message on failure

Addresses https://github.com/momentohq/oncall-tracker/issues/3051
Updated all Assert.True statements to include a message to print upon failure.

thanks a bunch for doing this! you can uncomment that one test either in this PR or a follow-up


Added support for uploading videos

Closing because this won't merge cleanly and doesn't pass the current test suite.


模型转onnx

你好，可以提供模型转ONNX的工具吗？

As YOLOF is based on Detectron2, you can refer to the d2's deployment tutorial for deployment.


minor: minor fix for typo error

Signed-off-by: wbpcode<EMAIL_ADDRESS>Commit Message: minor: minor fix for typo error
Additional Description:
minor fix for typo error. found by accident.
Risk Level: n/a.
Testing:  n/a.
Docs Changes: n/a.
Release Notes: n/a.
 Thanks.


[Feature] GDscript comma chaining variable declaration

I was looking over one of my gdscripts earlier today and thought of this
var client = null
var wrapped_client = null
var GlobalScene
var GamePlayer
var GamePlayer2
var Live_Skills = {}
var GO = {"GAME_VERSION":"1.0.1", "volume":0.15, "CAMERASPEED":7}
var ChatMessages = []
var GameChatMessages = []
var tGameMessages = {}
var user = {"muffin": 1}
var players = {}
var Skills = {}
var Items = {}
```

Could be:

```
var client = null, wrapped_client = null,
	GlobalScene, GamePlayer, GamePlayer2,
	Live_Skills = {}, GO = {"GAME_VERSION":"1.0.1", "volume":0.15, "CAMERASPEED":7},
	ChatMessages = [], GameChatMessages = [], tGameMessages = {},
	user = {"muffin": 1}, players = {}, Skills = {},
	Items = {}
```

I think if 2.1 included this, it would be a nice aesthetic feature. I know it's a personal preference and some devs don't like this, but figured I'd throw this idea out there :8ball:

It's been asked already: #3504 :wink:


Unable to listen for file changes

Describe the bug
When the application starts, it reads the configuration from the specified file path and creates a MapPropertySource.

But in the logic of listening, KubernetesClientConfigMapPropertySource. class is compared to it.

View the real situation of Environment. getPropertySources() in the JVM.

So the mismatch between these two will result in the application not being hot loaded when the file content changes.

You are obviously taking your time to open these issues and I, personally, very much appreciate this.
But it's complicated for me to navigate and fully understand what you mean, at times.
That is why we usually suggest for issues to have a minimal, reproducible example with clear steps on how to re-produce. For example, look at this sample and steps that were provided to us, which lead to me understanding the issue, being able to re-produce and fix it.
I will gladly look at this one too, but can you please provide such details?

@ryanjbaxter can I ask for you to add "waiting for feedback" label in here please?

Sorry, I didn't describe the problem clearly. In fact, the above problem can be condensed into one problem, which is the following code:

composite.addFirstPropertySource(new MapPropertySource(name, map));

Should it become like this?
composite.addFirstPropertySource(new KubernetesClientConfigMapPropertySource(name, map));

They are located in: org.springframework.cloud.kubernetes.commons.config.ConfigMapPropertySourceLocator#addPropertySourceIfNeeded
Because during the process of listening to files, two classes will be compared，sourceClass=KubernetesClientConfigMapPropertySource.class, but source=MapPropertySource.class, The two are not equal!
else if (sourceClass.isInstance(source)) {
    managedSources.add(sourceClass.cast(source));
}

An example project for the minimum reproducible problem can be provided, even though it may be a bit troublesome, I think it is necessary.

I think you are on to something here...

Should it become like this?

composite.addFirstPropertySource(new KubernetesClientConfigMapPropertySource(name, map));

that's not an option since this code is in commons and we have two clients that use it. I'll take a closer look and write some tests to see that it reproduces. So far, I agree, it's a bug; but I'll spent some time in the upcoming days to confirm and potentially fix. The same problem happens with secrets I assume, and we need it fixed (again, if I confirm this is a bug) in both 2.1.x and 3.x..x branches.

we currently only "listen" when a ConfigMap changes, not when a path does. it looks like an older issue, see here. The solution is to have this in spring-cloud-commons, but its not currently implemented.

In general, I think I might try to implement such a feature in the future, but I need some green light from Ryan first.
I have not thought about it too much, but seems doable. @ryanjbaxter share your wisdom please, thank you.

Listening to ConfigMap updates can add a burden to Api Server nodes, especially when the cluster is very large and there are too many application nodes that need to request it. For this reason, this plan will not be approved by the operation and maintenance engineer.
I personally also prefer the solution of listening to files. When I update ConfigMap, the files in the container will be updated synchronously after about 10 seconds. At this time, the application reads the latest configuration and hot loads the application, which is the best.

This listening issue seems separate to the type problem originally reporting.
Listening to changes in config maps mounted as volume and telling the app to refresh is handled by the config map watcher
https://docs.spring.io/spring-cloud-kubernetes/docs/3.0.2/reference/html/#spring-cloud-kubernetes-configuration-watcher

So listening for file changes is a bug for grabs, right?

(scratches head) so where is the bug then? Cause the label "bug" exists.

The way I interpreted this issue was there is a bug here
https://github.com/spring-cloud/spring-cloud-kubernetes/blob/main/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ConfigMapPropertySourceLocator.java#L142
Because we create a MapPropertySource the check here
https://github.com/spring-cloud/spring-cloud-kubernetes/blob/main/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/reload/ConfigReloadUtil.java#L89
will never be true because we only pass Fabric8ConfigMapPropertySource.class or KubernetesClientConfigMapPropertySource.class to this method
But I could be misunderstanding something too.

I'm not 100% sure either, I'll write a small integration test to see what is going on and reply back here

If it is confirmed to be a bug, please take some time to rest. Thank you very much!

I am a little stuck with the actual job that I have that pays the bills :), but once I'm done with that, this will be the next thing I'm going to take a look at. FYI

I can reproduce this one via an integration test, it's a bug... I'll fix it and present the comments in the PR when its ready.


todo: REST API

Seems like a cool idea 🤷🏾♂

[x] #440
[x] #441
[x] #442
[ ] Documentation

Related to #414

Closing now. Documentation will be handled as part of #460.


update k8s version in compatibility matrix

Taken from https://github.com/envoyproxy/gateway/blob/fe12c418119eebf15f51f2e7146797e86410d5bf/.github/workflows/build_and_test.yaml#L107

I recall I open an issue related to this.


This resolves #320

call it --experimental-enable-local-persistence? So we can unblock you, the flag is clearer, and we can iterate on this if needed. I'm coming around to the idea that we should disable persistence for dev.

@geelen - oops:
[check:lint  ] /Users/pbacondarwin/dev/wrangler2/packages/wrangler/src/dev.tsx
[check:lint  ]   320:6  warning  React Hook useEffect has a missing dependency: 'props.enableLocalPersistence'. Either include it or remove the dependency array  react-hooks/exhaustive-deps

fix for the lint warning included in https://github.com/cloudflare/wrangler2/pull/333


[5.5] Allow MailFake to assert mailables were queued

Hey everyone,
Right now when you queue a mailable you have to either assert it was sent (it was not, as it was queued) or you have to assert Illuminate\Mail\SendQueuedMailable was pushed on to the queue.
This PR gives queued mailables their own property and allows assertions to be made, such as assertWasQueued($mailable).
Let me know what you guys think!

Not entirely related, but perhaps we could build the view so the user knows that there are syntax errors or any other kind of error. I opened an issue in laravel/internals https://github.com/laravel/internals/issues/720

So would this be a breaking change? assertSent would no longer work for them?

@mateusjatenee building the view is a separate test IMO. and one that can already be written pretty easily.

This also doesn't work correctly if a Mailable is implementing ShouldQueue and is sent using Mail::send()

@taylorotwell Sorry I forgot to queue it if It implemented ShouldQueue — I did this late and forgot it.
I added some code that verifies if the mailable implements the interface and queues if it does.  Given https://github.com/laravel/framework/pull/20485 was approved I also added the option to specify how many times it should have been queued.
It would be a BC, yes.. but I believe it's worth it as the "migration" is very simple and verifying a mailable was queued with sent doesn't really make sense I guess.

Thanks