Crashes accessing tinyurl repetitvely

When building the dataframe for teamapps, function phq_club.to_teamsapp_schedule crashes after calling the shorten url tinyurl service repetitively:
023-10-18 11:34:07 WARNING Certificate did not match expected hostname: da.gd. Certificate: {'subject': ((('countryName', 'AU'),), (('stateOrProvinceName', 'Victoria'),), (('localityName', 'Melbourne'),), (('organizationName', 'Telstra Limited'),), (('commonName', 'landing.telstra.com'),)), 'issuer': ((('countryName', 'US'),), (('organizationName', 'DigiCert Inc'),), (('commonName', 'DigiCert Global G2 TLS RSA SHA256 2020 CA1'),)), 'version': 3, 'serialNumber': '080D2501E6CE01CE9850A4888D70F1D2', 'notBefore': 'Mar 24 00:00:00 2023 GMT', 'notAfter': 'Mar 24 23:59:59 2024 GMT', 'subjectAltName': (('DNS', 'landing.telstra.com'), ('DNS', 'warning-security.landing.telstra.com'), ('DNS', 'warning-copyright.landing.telstra.com'), ('DNS', 'warning-noclass.landing.telstra.com'), ('DNS', 'warning-phishing.landing.telstra.com'), ('DNS', 'warning-botnet.landing.telstra.com')), 'OCSP': ('http://ocsp.digicert.com',), 'caIssuers': ('http://cacerts.digicert.com/DigiCertGlobalG2TLSRSASHA2562020CA1-1.crt',), 'crlDistributionPoints': ('http://crl3.digicert.com/DigiCertGlobalG2TLSRSASHA2562020CA1-1.crl', 'http://crl4.digicert.com/DigiCertGlobalG2TLSRSASHA2562020CA1-1.crl')}

---------------------------------------------------------------------------
timeout                                   Traceback (most recent call last)
File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urllib3/connectionpool.py:426, in HTTPConnectionPool._make_request(self, conn, method, url, timeout, chunked, **httplib_request_kw)
    422         except BaseException as e:
    423             # Remove the TypeError from the exception chain in
    424             # Python 3 (including for exceptions like SystemExit).
    425             # Otherwise it looks like a bug in the code.
--> 426             six.raise_from(e, None)
    427 except (SocketTimeout, BaseSSLError, SocketError) as e:

File <string>:3, in raise_from(value, from_value)

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urllib3/connectionpool.py:421, in HTTPConnectionPool._make_request(self, conn, method, url, timeout, chunked, **httplib_request_kw)
    420 try:
--> 421     httplib_response = conn.getresponse()
    422 except BaseException as e:
    423     # Remove the TypeError from the exception chain in
    424     # Python 3 (including for exceptions like SystemExit).
    425     # Otherwise it looks like a bug in the code.

File ~/.pyenv/versions/3.9.2/lib/python3.9/http/client.py:1347, in HTTPConnection.getresponse(self)
   1346 try:
-> 1347     response.begin()
   1348 except ConnectionError:

File ~/.pyenv/versions/3.9.2/lib/python3.9/http/client.py:307, in HTTPResponse.begin(self)
    306 while True:
--> 307     version, status, reason = self._read_status()
    308     if status != CONTINUE:

File ~/.pyenv/versions/3.9.2/lib/python3.9/http/client.py:268, in HTTPResponse._read_status(self)
    267 def _read_status(self):
--> 268     line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
    269     if len(line) > _MAXLINE:

File ~/.pyenv/versions/3.9.2/lib/python3.9/socket.py:704, in SocketIO.readinto(self, b)
    703 try:
--> 704     return self._sock.recv_into(b)
    705 except timeout:

timeout: timed out

During handling of the above exception, another exception occurred:

ReadTimeoutError                          Traceback (most recent call last)
File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/requests/adapters.py:486, in HTTPAdapter.send(self, request, stream, timeout, verify, cert, proxies)
    485 try:
--> 486     resp = conn.urlopen(
    487         method=request.method,
    488         url=url,
    489         body=request.body,
    490         headers=request.headers,
    491         redirect=False,
    492         assert_same_host=False,
    493         preload_content=False,
    494         decode_content=False,
    495         retries=self.max_retries,
    496         timeout=timeout,
    497         chunked=chunked,
    498     )
    500 except (ProtocolError, OSError) as err:

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urllib3/connectionpool.py:726, in HTTPConnectionPool.urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)
    724     e = ProtocolError("Connection aborted.", e)
--> 726 retries = retries.increment(
    727     method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
    728 )
    729 retries.sleep()

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urllib3/util/retry.py:410, in Retry.increment(self, method, url, response, error, _pool, _stacktrace)
    409 if read is False or not self._is_method_retryable(method):
--> 410     raise six.reraise(type(error), error, _stacktrace)
    411 elif read is not None:

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urllib3/packages/six.py:735, in reraise(tp, value, tb)
    734         raise value.with_traceback(tb)
--> 735     raise value
    736 finally:

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urllib3/connectionpool.py:670, in HTTPConnectionPool.urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)
    669 # Make the request on the httplib connection object.
--> 670 httplib_response = self._make_request(
    671     conn,
    672     method,
    673     url,
    674     timeout=timeout_obj,
    675     body=body,
    676     headers=headers,
    677     chunked=chunked,
    678 )
    680 # If we're going to release the connection in ``finally:``, then
    681 # the response doesn't need to know about the connection. Otherwise
    682 # it will also try to release it and we'll have a double-release
    683 # mess.

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urllib3/connectionpool.py:428, in HTTPConnectionPool._make_request(self, conn, method, url, timeout, chunked, **httplib_request_kw)
    427 except (SocketTimeout, BaseSSLError, SocketError) as e:
--> 428     self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
    429     raise

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urllib3/connectionpool.py:335, in HTTPConnectionPool._raise_timeout(self, err, url, timeout_value)
    334 if isinstance(err, SocketTimeout):
--> 335     raise ReadTimeoutError(
    336         self, url, "Read timed out. (read timeout=%s)" % timeout_value
    337     )
    339 # See the above comment about EAGAIN in Python 3. In Python 2 we have
    340 # to specifically catch it and throw the timeout error

ReadTimeoutError: HTTPConnectionPool(host='tinyurl.com', port=80): Read timed out. (read timeout=2)

During handling of the above exception, another exception occurred:

ReadTimeout                               Traceback (most recent call last)
File ~/Dev/Perso/tapp-fixture/utils.py:40, in shorten_url(url)
     39 try:
---> 40     return s.tinyurl.short(url)
     41 except:

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/pyshorteners/shorteners/tinyurl.py:34, in Shortener.short(self, url)
     33 url = self.clean_url(url)
---> 34 response = self._get(self.api_url, params=dict(url=url))
     35 if response.ok:

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/pyshorteners/base.py:63, in BaseShortener._get(self, url, params, headers)
     62 url = self.clean_url(url)
---> 63 response = requests.get(
     64     url,
     65     params=params,
     66     verify=self.verify,
     67     timeout=self.timeout,
     68     headers=headers,
     69     proxies=self.proxies,
     70 )
     71 return response

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/requests/api.py:73, in get(url, params, **kwargs)
     63 r"""Sends a GET request.
     64
     65 :param url: URL for the new :class:`Request` object.
   (...)
     70 :rtype: requests.Response
     71 """
---> 73 return request("get", url, params=params, **kwargs)

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/requests/api.py:59, in request(method, url, **kwargs)
     58 with sessions.Session() as session:
---> 59     return session.request(method=method, url=url, **kwargs)

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/requests/sessions.py:589, in Session.request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)
    588 send_kwargs.update(settings)
--> 589 resp = self.send(prep, **send_kwargs)
    591 return resp

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/requests/sessions.py:703, in Session.send(self, request, **kwargs)
    702 # Send the request
--> 703 r = adapter.send(request, **kwargs)
    705 # Total elapsed time of the request (approximately)

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/requests/adapters.py:532, in HTTPAdapter.send(self, request, stream, timeout, verify, cert, proxies)
    531 elif isinstance(e, ReadTimeoutError):
--> 532     raise ReadTimeout(e, request=request)
    533 elif isinstance(e, _InvalidHeader):

ReadTimeout: HTTPConnectionPool(host='tinyurl.com', port=80): Read timed out. (read timeout=2)

During handling of the above exception, another exception occurred:

SSLCertVerificationError                  Traceback (most recent call last)
File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urllib3/connectionpool.py:670, in HTTPConnectionPool.urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)
    669 # Make the request on the httplib connection object.
--> 670 httplib_response = self._make_request(
    671     conn,
    672     method,
    673     url,
    674     timeout=timeout_obj,
    675     body=body,
    676     headers=headers,
    677     chunked=chunked,
    678 )
    680 # If we're going to release the connection in ``finally:``, then
    681 # the response doesn't need to know about the connection. Otherwise
    682 # it will also try to release it and we'll have a double-release
    683 # mess.

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urllib3/connectionpool.py:381, in HTTPConnectionPool._make_request(self, conn, method, url, timeout, chunked, **httplib_request_kw)
    380 try:
--> 381     self._validate_conn(conn)
    382 except (SocketTimeout, BaseSSLError) as e:
    383     # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urllib3/connectionpool.py:978, in HTTPSConnectionPool._validate_conn(self, conn)
    977 if not getattr(conn, "sock", None):  # AppEngine might not have  `.sock`
--> 978     conn.connect()
    980 if not conn.is_verified:

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urllib3/connection.py:397, in HTTPSConnection.connect(self)
    388         warnings.warn(
    389             (
    390                 "Certificate for {0} has no `subjectAltName`, falling back to check for a "
   (...)
    395             SubjectAltNameWarning,
    396         )
--> 397     _match_hostname(cert, self.assert_hostname or server_hostname)
    399 self.is_verified = (
    400     context.verify_mode == ssl.CERT_REQUIRED
    401     or self.assert_fingerprint is not None
    402 )

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urllib3/connection.py:407, in _match_hostname(cert, asserted_hostname)
    406 try:
--> 407     match_hostname(cert, asserted_hostname)
    408 except CertificateError as e:

File ~/.pyenv/versions/3.9.2/lib/python3.9/ssl.py:416, in match_hostname(cert, hostname)
    415 if len(dnsnames) > 1:
--> 416     raise CertificateError("hostname %r "
    417         "doesn't match either of %s"
    418         % (hostname, ', '.join(map(repr, dnsnames))))
    419 elif len(dnsnames) == 1:

SSLCertVerificationError: ("hostname 'da.gd' doesn't match either of 'landing.telstra.com', 'warning-security.landing.telstra.com', 'warning-copyright.landing.telstra.com', 'warning-noclass.landing.telstra.com', 'warning-phishing.landing.telstra.com', 'warning-botnet.landing.telstra.com'",)

During handling of the above exception, another exception occurred:

MaxRetryError                             Traceback (most recent call last)

I think tinyrul resets the connection after realizing that there were many consecutive requests
We can fix this by catching the exception, waiting 1 second, and then re-trying:
# TinyURL shortener service
def shorten_url(url):
    s = pyshorteners.Shortener()
    try:
        return s.tinyurl.short(url)
    # except:
    #     return s.dagd.short(url)
    except: # in case of error, wait 1 second and try again
        time.sleep(1)
        return shorten_url(url)

a bit of a hack but it is OK in this situation.


Pong with AI and Human against AI

Link to demo: https://carlsen66.github.io/CC_067_Pong AI/

Duplicate of #1632


Proper error handling when REST API is not enabled in salesforce account

Description:
When rest API is not enabled in Salesforce account, client hangs for a long time without proper error messages
Suggested Labels:

Suggested Assignees:

Affected Product Version:
OS, DB, other environment details and versions:
Steps to reproduce:
Related Issues:
https://github.com/wso2/ballerina-integrator/issues/686

@sachinira @dulanjalidilmi is it still valid? Something known from SF side? Should go to docs?

Seems issue is sorted when you configure credentials correctly as per [1] as @dulanjalidilmi mentioned. Please reopen if you happen to see such behaviour again.
[1]. https://medium.com/@bpmmendis94/obtain-access-refresh-tokens-from-salesforce-rest-api-a324fe4ccd9b


Adding ADFSMachineName parameter

Since this is mandatory in the code - we will add it to the Readme.


Ltd 3383 remove filter nesting

Aim
This change removes the nested "Advanced filter" and brings it into the main filter
LTD-3383

No longer required. Superseded by LTD-3759-queue-view-filters-sidebar


Use of nn.Conv1d instead of nn.Linear

Hello,
Thank you for your really interesting work. I have a question about the initiation of the CKConv Kernel:
https://github.com/dwromero/ckconv/blob/d44c6441a98792477d6259368c210089bb33fe7a/ckconv/nn/linear.py#L14
In the code as I understand it, a 1 dimensional convolution with a kernel size of 1 is used for the Siren. Could you explain the difference of using this method instead of a regular MLP layer (using for example nn.Linear)?

Hi @Linkerbrain ,
thank you for your question.
Yes, of course!
In short, both a nn.Linear applied to each position and a nn.Conv with kernel size 1 are doing the same thing. The only thing that changes is the shape of the input going into self.KernelNet. I prefer using nn.Conv because this save us some permutation operations which would be required if we use nn.Linear in self.KernelNet, and then nn.ConvNd to compute the convolution between the input and the kernel generated.
A nn.Linear accepts inputs of dimensions [batch_size, *, no_channels], and a conv layer accepts inputs of dimensions [batch_size, no_channels, X]. If we want to use nn.Conv to compute a convolution between the input signal (typically also defined as  [batch_size, in_channels, X] a kernel generated with nn.Linears of form [batch_size, *, out_channels * in_channels], then we would need to permute the kernel before we can call the convolution. This is avoided by using nn.Conv1d in self.KernelNet.
Cheers,
David


Additional Windows Platform Build Targets

Changes

Added support for UWP and tvOS build targets
Fixed typo in legacy ubuntu editor requested
Added workflow for building legacy windows editors for UWP and tvOS build targets
Feature parity with Linux editor dockerfile to install modules after installing the base editor

Checklist

[x] Read the contribution guide and accept the code of conduct
[x] Readme (updated or not needed)

@AndrewKahr shall we add a manual trigger that takes the right variables and merge it so that we can test the workflow?

@webbertakken I think that would be a good idea. How would this look? A separate workflow file with the variables hard coded?

@webbertakken I think that would be a good idea. How would this look? A separate workflow file with the variables hard coded?

Great!
Actually you can use workflow_dispatch trigger (See events that trigger workflows and workflow dispatch) in the existing workflows.
We already use repository_dispatch which doesn't define the inputs, because that's up to the API call to github. But with workflow_dispatch you have to define the inputs.
The output is displayed in part that says Show hook input inside our workflow.

@webbertakken Just took a look at workflow_dispatch and I'm not sure how to get it working for our usage. It only allows us to define inputs rather than client_payload which is what we use throughout the workflow file. Could we just manually trigger the repository dispatch with the correct keys set? Or am I missing something?

@webbertakken Just took a look at workflow_dispatch and I'm not sure how to get it working for our usage. It only allows us to define inputs rather than client_payload which is what we use throughout the workflow file. Could we just manually trigger the repository dispatch with the correct keys set? Or am I missing something?

Yea we'd need an abstraction for that.
We can have a job that

either writes to env

echo "MODULE=linux-il2cpp" >> $GITHUB_ENV

or sets output variables:

echo "::set-output name=test::hello"

based on either the payload or the input, depending on the event.type.
Considered alternatives
We could also create this trigger logic in the versioning backend (currently it's only able to queue all of them, assuming the workflow works).
The downside of doing it in  backend instead is that we would still need the manual trigger as well, as this will add tremendous value to people forking this repo; as they won't have versioning backend. So it would be useful if forkers are able to run a specific build and publish it.

@webbertakken What if we wrote another workflow to trigger a repository dispatch with the correct parameters using the below action:
https://github.com/marketplace/actions/repository-dispatch
I'm also still a little confused in terms of a manual trigger, if we want to trigger a workflow_dispatch, wouldn't we still need to post to an endpoint to trigger the run? If so, why don't we just trigger a repository dispatch instead with the values set as we need for testing? It wouldn't need to be in the versioning backend, it could be done via a script or another job.

@webbertakken What if we wrote another workflow to trigger a repository dispatch with the correct parameters using the below action: https://github.com/marketplace/actions/repository-dispatch
I'm also still a little confused in terms of a manual trigger, if we want to trigger a workflow_dispatch, wouldn't we still need to post to an endpoint to trigger the run? If so, why don't we just trigger a repository dispatch instead with the values set as we need for testing? It wouldn't need to be in the versioning backend, it could be done via a script or another job.

Right, so in GitHub Actions:

What you call manual trigger is really called workflow_dispatch.
an automated trigger (trigger manually from a separate system, using an api call) is called repository_dispatch.

So if you wanted to make a separate workflow that you would manually trigger, you would have to set up workflow_dispatch. If that workflow would send a payload to repository_dispatch, you would need to get that information from somewhere, when manually triggering it. That's what the inputs are for.
More practical explanation:
Or in different words:
If you create a workflow_dispatch trigger in a workflow, you get a button to manually trigger it.
Example:
on:
  workflow_dispatch:
    inputs:
      logLevel:
        description: 'Log level'
        required: true
        default: 'warning'
      tags:
        description: 'Test scenario tags'

Will look like

Source: https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/

@webbertakken How do we determine whether something was triggered via repository_dispatch or workflow_dispatch? It appears that github.event.event_type is blank for both workflow_dispatch and repository_dispatch. I have also tried github.event.type. I thought perhaps it was a windows issue, but looking at past runs in the docker repo, the type is also blank on ubuntu. Looking at the github.event object, there doesn't appear to be anything pointing to what triggered the workflow to start.
In terms of having a new workflow file, my thinking is we can have one workflow that is for manually triggering both ubuntu and windows (and macOS in the future). The workflow would simply take the inputs and call a repository dispatch on the right event type. This means we don't have to retrofit every single workflow to not use the repo dispatch values. It also avoids the issue of not knowing whether a repository dispatch or workflow dispatch has been triggered. The only code in the workflow would be the inputs and the one call to trigger the repo dispatch thus keeping it straightforward and simple.

How do we determine whether something was triggered via repository_dispatch or workflow_dispatch?

If the first input is set then it's workflow_dispatch otherwise we can assume repository_dispatch.

In terms of having a new workflow file, my thinking is we can have one workflow that is for manually triggering both ubuntu and windows (and macOS in the future). The workflow would simply take the inputs and call a repository dispatch on the right event type.

This is essentially what versioning-backend is doing. If we use that approach it would probably be best to add the logic there.
I believe that idea is the least effective of the two, because there are real downsides:

we would still have to create an interface to trigger it, which GitHub Actions already provides.
if we want to provide the manual trigger functionality to people that fork this repo, we'd have to duplicate that logic.

That said, it seems we have different opinions on this one so lets ask input from more peeps.
WDYT @GabLeRoux @davidmfinol @frostebite

@webbertakken Perhaps I am missing the point of the system. My understanding is that we want a debug interface to manually trigger a build to check that it works. I'm not sure what you mean by

we would still have to create an interface to trigger it, which GitHub Actions already provides.
The new workflow would be using workflow_dispatch with the parameters we otherwise would've specified in the editor image workflow thus giving us the same GitHub actions interface to use, though maybe you are referring to another interface that I am missing. I'm also not sure what you mean by
if we want to provide the manual trigger functionality to people that fork this repo, we'd have to duplicate that logic.
If they fork the repo, wouldn't it still work the same way? The new workflow wouldn't depend on anything else, it simply takes the workflow dispatch inputs and triggers a repository dispatch. I would think this is actually a benefit because to the editor workflow, both the versioning backend and this debug workflow are triggering it in identical ways, reducing the chance of different behavior between the versioning backend and a debug build.
Also on forking a repo, wouldn't none of this work regardless because the report to backend steps would fail in the job since people don't otherwise have access to the versioning backend?

For reference, this is what the workflow would look like:
name: Debug Image Build
on:
  workflow_dispatch:
      inputs:
        eventType:
          description: 'Dispatch Event Type'
          required: true
          default: 'new_windows_post_2019_2_editor_image_requested'
        repository:
          description: 'Repository Name'
          required: true
          default: 'gameci/docker'
        jobId:
          description: 'Job ID'
          required: true
          default: '0'
        editorVersion:
          description: 'Unity Editor Version'
          required: true
          default: '2020.3.24f1'
        changeSet:
          description: 'Unity Editor Changeset'
          required: true
          default: '79c78de19888'
        repoVersionFull:
          description: 'Docker Repo Version Full'
          required: true
          default: '0.15'
        repoVersionMinor:
          description: 'Docker Repo Version Minor'
          required: true
          default: '15'
        repoVersionMajor:
          description: 'Docker Repo Version Major'
          required: true
          default: '0'

jobs:
  dispatch:
    runs-on: ubuntu-latest

    steps:
      - name: Repository Dispatch
        uses: peter-evans/repository-dispatch@v1
        with:
          token: ${{ secrets.REPO_ACCESS_TOKEN }}
          repository: ${{ github.event.inputs.repository }}
          event-type: ${{ github.event.inputs.eventType }}
          client-payload: |
                          '{"jobId": "${{ github.event.inputs.jobId }}",
                            "editorVersion": "${{ github.event.inputs.editorVersion }}",
                            "changeSet": "${{ github.event.inputs.changeSet }}",
                            "repoVersionFull": "${{ github.event.inputs.repoVersionFull }}",
                            "repoVersionMinor": "${{ github.event.inputs.repoVersionMinor }}",
                            "repoVersionMajor": "${{ github.event.inputs.repoVersionMajor }}"}'

Clarification

For reference, this is what the workflow would look like:
...

I understood this in an earlier post indeed. Referring back to what I responded to that:

To not overcomplicate things I think it's best to not create yet another workflow, but follow GitHub's reference implementation for manual trigger.

Just to clarify my train of thought, and hopefully clear up possible confusion
In my last post I was weighing these options:

Triggering single build for debugging from versioning backend
Triggering debug build by integrating workflow_dispatch as a manual trigger for each existing workflow

No longer

Triggering a separate workflow that triggers the different existing workflows

So that's where our confusion came from I think.
Moving forward
So it seems we're in agreement about using workflow_dispatch (so an interface for choosing the inputs is provided by GitHub Actions as shown in the screenshot) and we would still have to choose between:

Integrating it in each existing workflow (for new images)
Using a separate workflow that triggers the existing workflows

Personally I'd still prefer to keep the workflows self-contained and integrate workflow_dispatch in each existing workflow.
Upsides:

No added complexity
No pollution in workflows, like empty output in the workflow that you're triggering, and switching between different flows when you do
Good enough for debugging specific workflows as well as publishing specific images

Downsides:

Some more duplicated code (However, they already share a lot of the logic anyway, and I'm already using diff tool to keep them in sync)
You have to know whether to use pre-2019.3 or post-2019.3 workflow when triggering one.

For me I think these pros outweight the cons. But it's open for discussion of course! :)


trace-cmd: 3.2 -> 3.3.1 + add updateScript

Changelogs:

https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/tag/?h=trace-cmd-v3.3
https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/tag/?h=trace-cmd-v3.3.1

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] 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

[x] 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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

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

6 packages built:

kernelshark
trace-cmd
trace-cmd.dev
trace-cmd.devman
trace-cmd.lib
trace-cmd.man


Add support for allow_version_mismatch (L1-2516)

Expose the flag so that once it's changed to False by default, it can be overridden.
Description:
Fixes issue: #
Checklist:

[ ] Add tests for the change to show correct behavior.
[ ] Add or update relevant docs, code and examples.
[x] Update CHANGELOG.rst with relevant information and add the issue number.
[x] Add .. versionchanged:: where necessary.

Are we sure we want to introduce this flag with default True? If I am not mistaken the idea is that when its first released the flag will be False in zhinst.core ... So wouldn't it make more sense to have the default set to False in toolkit already?

My idea was to do a two stages release. First with the flag present but disabled by default, the a second commit that "flips" the condition to enabled by default.
For toolkit, maybe I can merge the "flipping" commit within this same PR


[V6] I can't access to form props in react-native

I don't understand how can I access to form props. I used formValueSelector as suggested the documentation, but doesn't work. Where is my mistake?
LoginForm.js
'use strict';

import React from 'react';
import { Field, reduxForm, formValueSelector } from 'redux-form';
import { TextInput, View, TouchableHighlight, Text } from 'react-native';
import { connect } from 'react-redux';

class LoginForm extends React.Component {

    handeSubmit(email, password){ alert(`email: ${email} and password: ${password}`)};

    render() {

        return (
            <View>
                <Field
                    name="email"
                    component={TextInput}
                    placeholder="Email"
                />
                <Field
                    name="password"
                    component={TextInput}
                    placeholder="Password"
                    secureTextEntry={true}

                />
                <TouchableHighlight onPress={() => this.handeSubmit(this.props.email, this.props.password)}>
                    <Text>Submit</Text>
                </TouchableHighlight>
            </View>
        );
    }
}

LoginForm = reduxForm({
    form: 'loginForm'
})(LoginForm);

const selector = formValueSelector('loginForm');

function mapStateToProps(state){
    return {
        email: selector(state, 'email'),
        password: selector(state, 'password'),
    }
}

LoginForm = connect(mapStateToProps)(LoginForm);

export default LoginForm;

LoginPage.js
'use strict';

import React from 'react';
import {View} from 'react-native';
import Container from '../../components/Container';
import LoginForm from '../../components/forms/LoginForm';

class LoginPage extends React.Component {
  render() {
    return (
        <Container>
            <LoginForm/>
          </Container>
    );
  }
}

export default LoginPage;

I use alert(this.props) onPress button and this is the output. There aren't email and password.

I found the solution. TextInput doesn't work with redux-form as it is. It need a component than pass the redux-form props:
class TextField extends React.Component {
render(){
const { input: { value, onChange } } = this.props;
return (
<TextInput
style={[styles.textInput, margin]}
onChangeText={(value) => onChange(value)}
value={value} underlineColorAndroid="transparent" selectTextOnFocus={true} {...this.props}
/>
);
}
}

Wow, I was stuck on trying to use react-native with redux-form, and finally found this thread. Would be great to have a React Native example with this tip, thx!

I've tried this using redux-form 6.0.2 and redux-native 0.32.1 but I can't get it to work. Every time the value prop is hooked up to the TextInput, it eats the characters so you can't see them. Also every time I receive the handleSubmit, the values argument is an empty object.
I asked about this a week ago on StackOverflow https://stackoverflow.com/questions/39331420/cant-get-redux-form-6-0-2-working-with-react-native-0-32-0 but haven't gotten any answers.
Does this work with react-native? Can we get a working example?

It only seems to work if I don't bind the value prop. But it still does not pass the form values to my handleSubmit callback.

I don't have any experience with RN. It would be great if someone that did would write an example rather than only wishing that it were so. Such a PR would be accepted.

I got it working recently with RN 0.32.0

form.js

render() {
    const {handleSubmit, authSignin} = this.props;

    return (
      <View>
        <Text>Email</Text>
        <Field name="email" component={EmailField} />
        <Text>Password</Text>
        <Field name="password" component={PasswordField} />
        <Button onPress={handleSubmit(authSignin)}>Sign In</Button>
      </View>
    );
  }

email-field.js

import React, { Component } from 'react';
import { TextInput } from 'react-native';
import styles from '../../styles';

export default class EmailField extends Component {
  render(){
    const { input: { value, onChange }, ...otherProps } = this.props;
    return (
      <TextInput
        keyboardType="email-address"
        style={styles.textInput}
        onChangeText={(value) => onChange(value)}
        value={value}
        {...otherProps}
      />
    );
  }
}

Text field would be just same as email field if you remove keyboard type.

Thanks @sean-madhavan for the sample. I tried it as you've shown, but I still have the same problems.

The TextInput removes every character I type so the field remains empty. The redux store only contains the last character I typed. Removing value={value} seems to prevent it, but obviously we want the field to show the redux store value.

The submit callback receives an empty object for the first argument (values). I've also tried binding the email and the password using the formValueSelector, but the props remain undefined.

Out of desperation, I've now tried upgrading to react-native 0.33.0 and redux 3.6.0.

@jpass I guess the problem lies in redux management. When are you updating redux store value to display on text field?

@sean-madhavan - I'm not doing any updating of the store beyond what the redux-form Field wrapper is doing

@jpaas can you post latest code with my sample on stackoverflow?

@sean-madhavan Code posted at https://stackoverflow.com/questions/39331420/cant-get-redux-form-6-0-2-working-with-react-native-0-32-0

In my case, I was also running in the issue "validate method receives empty values", and just figured out why: When adding an onChangeText method to my field, it was effectively overwriting the redux-form one, hence not saving the prop in the form field. Removing it fixed the issue

@Fandekasp clearing text as I type ONLY happens when have value={value}. If you are not binding onChangeText, is there anything you are binding besides value?

Here's my code, if that's of any help.

TextField.js
import React from 'react';
import { TextInput } from 'react-native';

const { PropTypes } = React;

const TextField = (props) => {
  const {
    style,
    input: { value, onChange },
    meta: { error, touched },
    ...otherProps,
  } = props;

  return (
    <TextInput
      // Let's only change the text color instead of showing error messages
      style={(touched && error) ? [style, { color: 'red' }] : style}
      underlineColorAndroid="transparent"
      onChangeText={text => onChange(text)}
      value={value}
      selectTextOnFocus
      {...otherProps}
    />
  );
};

/* eslint-disable react/forbid-prop-types */
TextField.propTypes = {
  style: PropTypes.object.isRequired,
  meta: PropTypes.object.isRequired,
  input: PropTypes.object.isRequired,
};

export default TextField;

Email.js
import React from 'react';
import ReactNative from 'react-native';
import autobind from 'autobind-decorator';
import Button from 'react-native-button';
import Hyperlink from 'react-native-hyperlink';
import {
  Field,
  reduxForm,
  SubmissionError,
} from 'redux-form';
// ...

const formOptions = {
  form: 'email',
  validate: validateEmailLogin,
  touchOnChange: true,
  fields: ['email', 'password'],
};

@reduxForm(formOptions)
class Email extends Component {
  static propTypes = {
    fetchUserBy: PropTypes.func.isRequired,
    form: PropTypes.any.isRequired, // eslint-disable-line
    handleSubmit: PropTypes.func.isRequired,
  };

  @autobind
  async handlePress({ email, password }) {
    const { fetchUserBy } = this.props;

    try {  // api call
      await fetchUserBy('email', [email, password]);
    } catch (error) {
      Alert.alert(t.errorTitle, t.loginError);
      throw new SubmissionError({
        email: t.loginError,
        password: t.loginError,
      });
    }
  }

  render() {
    const { handleSubmit } = this.props;

    return (
      <View style={styles.view}>
        <View style={styles.labelWrapper}>
          <Text style={styles.label}>
            { t.emailLabel }
          </Text>
        </View>
        <View style={styles.inputWrapper}>
          <View style={[styles.textInputWrapper, styles.innerTextInput]}>
            <Field
              style={BaseStyles.TextInput}
              name="email"
              type="email"
              component={TextField}
              placeholder={t.emailPlaceHolder}
              placeholderTextColor={BaseStyles.lightGray}
              keyboardType="email-address"
              returnKeyType="next"
            />
          </View>
          <View style={styles.textInputWrapper}>
            <Field
              style={BaseStyles.TextInput}
              name="password"
              type="password"
              component={TextField}
              placeholder={t.passwordPlaceHolder}
              placeholderTextColor={BaseStyles.lightGray}
              returnKeyType="next"
              secureTextEntry
            />
          </View>
        </View>
        <View style={styles.buttonTextWrapper}>
          <Button
            containerStyle={styles.buttonWrapper}
            style={styles.button}
            onPress={handleSubmit(this.handlePress)}
          >
            { t.login }
          </Button>
          <Hyperlink
            style={styles.textWrapper}
            linkText={t.passwordForgotten}
            onPress={redirectTo}
          >
            <Text style={styles.text}>
              {PASSWORD_FORGOTTEN_URL}
            </Text>
          </Hyperlink>
        </View>
      </View>
    );
  }
}

export default connectToProps(Email, 'user', Actions);

validate.js
/**
* @flow
*/
/* eslint no-console: ["error", { allow: ["log"] }] */

const t = {
  required: 'Field required',
  badEmail: 'Email is incorrect',
};

// Terribly simple and easily circumvented
const isEmail = text =>
  (typeof text === 'string') && /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(text);

const validateEmailLogin = (values) => {
  const errors = {};
  if (!values.email) {
    errors.email = t.required;
  }
  if (!values.password) {
    errors.password = t.required;
  }
  if (!isEmail(values.email)) {
    errors.email = t.badEmail;
  }
  return errors;
};

export default validateEmailLogin;

@Fandekasp I'm pretty sure that fields of the reduxForm constructor is deprecated in v6

I've tried several of these and none seem to work. My issue is that redux-form is updating the form state in the redux state but this state is not by default being connected to my component. this.props.form is "loginForm" instead of what it should be, the fields object

My question was answered on StackOverflow. It seems that I had set up my reducers using redux-immutable but I wasn't importing redux-form/immutable. All good now. Thanks to all who tried to help out.

I see most of are posting their solution regarding react native and redux form. I am posting either, thinking that my code might help other
Here is my working code with output
import React, { Component } from 'react';
import { Field, reduxForm } from 'redux-form';
import { View, Text, TextInput } from 'react-native';
import { Button } from 'react-native-elements';

const renderTextField = ({ input, label, meta: { touched, error }, ...custom }) => (
        <TextInput
            placeholder={label}
            onChangeText={(value) => input.onChange(value)}
            {...input}
        />
);

class DeviceIO extends Component {
    onSubmit = (props) => {
        console.log('props', props);
    }
    render() {
        const { previousPage, handleSubmit } = this.props;
        return (
            <View>
                    <Field
                        name="deviceName"
                        label="Device Name"
                        component={renderTextField}
                    />
                    <Field
                          name="deviceTimeout"
                          component={renderTextField}
                          label="Device Timeout"
                    />
                    <View style={{ marginTop: 12}}>
                        <Button
                            raised
                            icon={{ name: 'ios-arrow-round-back-outline', type: 'ionicon' }}
                            iconLeft
                            title='Back'
                            backgroundColor='#ff4c4c'
                            onPress={() => previousPage()}
                        />
                        <Button
                            raised
                            icon={{ name: 'ios-arrow-round-forward-outline', type: 'ionicon' }}
                            iconRight
                            title='Next'
                            backgroundColor='#ff4c4c'
                            onPress={handleSubmit(props => this.onSubmit(props))}
                        />
                    </View>
            </View>
        );
    }
}

export default reduxForm({
  form: 'createDevice',
  destroyOnUnmount: false,
})(DeviceIO);

Sorry the design is terrible right now :)
http://imgur.com/a/2EwfF
Thanks,
Happy Coding

@Tushant just for completeness, in this part of your example you shouldn't spread input:
const renderTextField = ({ input, label, meta: { touched, error }, ...custom }) => (
<TextInput
    placeholder={label}
    onChangeText={(value) => input.onChange(value)}
    {...input}
/>);

Having it additional to onChangeText causes the action to be fired twice, the second one not changing the state of the redux store, but just being an unnecessary duplicate.

I got undefined for this.props.input is that props from redux-form or I need to do something to get this.props.input ?


Add rotation Feature

Thank you for great module,
I am trying to add rotation functionality to rotate Image 90 degree and rotation works fine but panning function does not work fine.
Here is what I did: https://github.com/pooryamd/react-native-pan-pinch-view
Rotation works fine, but panning function is not; and I cannot figure it out.

Hi,
I am a little bit late, but if you're still in search of how to add rotation, I can help!
Based on the code in your repository you want to add rotation by 90deg only? Or is it a starting point? Do you want to achieve rotating using the Rotating gesture?
Thanks again for trying out the package! 🙌

I will close this issue due to inactivity. Feel free to reopen it.


API change: return 0 for None values in geometry counting functions

Resolves #218
Previously, get_num_geometries, get_num_coordinates, get_num_points, get_num_interior_rings returned -1 for non-geometry values (None).
This changes the API to return 0 instead, which is more appropriate for counting type functions, since users may sum these values to perform subsequent operations as noted in #218, #197.
The only previously-stated return value that is changed here is for get_num_coordinates; the return value was not previously declared in docstrings for the other functions and -1 is likely unexpected for them.

Resolves #234 , thanks for the tip about passing extra things to data @caspervdw .


Stats Not showing up a day

Note javascript is not really a lang I do a lot of dev in and I skimmed the code for anything obvious but couldn't see much. We have a situation where nobody has managed to get the 2nd start for day 21 yet on our leader board, and as a result no stats seem to be showing up for that day, looking through the code there are a couple places it looks like you loop on the count of the 'a' medals so if that collection is zero it's plausible nothing would happen? That's my best guess, anyway if you have a chance to look at it that'd be awesome, and Thanks for the great addon :)

Hi there, and thanks for taking the time to write up an issue!
I think you're right. Days where no Leaderboard Member has completed 2 stars yet, will be excluded from most portions of the addon. At the least the medals overview and delta times work this way. There were a few 2023 days already where I noticed the same on my company's leaderboard 😅
Originally this was intentional, but I think it's better to change this if possible.

Medals can show the "border" for part 1 medals already
Delta times cannot show anything meaningful, except add an empty column for the day that was obviously "started"
The line graphs I will have to check and see what happens in this case
The log10 (third) graph.... I'm not even sure what it means anymore 😂 so we'll see
The final bar chart definitely already shows part 1 stars for days where no one has gotten part 2 yet, so that already works I think?

It is likely that fixes for this will come only after Dec 2023, between work, completing the puzzles myself, and finishing up the AoC Survey Results, I don't think there's room to fix it this year. Hope that makes sense!
Happy puzzling either way!

+1. Day 21 was (continues to be) brutal 🙃


Role assigned for SP created by different methods

I just found out that the SP created using password-based authentication by default adds "Contributor" role at the subscription scope. On the other hand, the user-defined password-based authentication method doesn't add any role.  Not sure why this difference. Can someone shed some knowledge on this?

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

ID: be8ceec6-fcb5-fe91-52dc-6975a533f61f
Version Independent ID: 84b2cbcb-1f11-9a6d-23fd-5c8d76453fa8
Content: Use Azure service principals with Azure PowerShell
Content Source: docs-conceptual/azps-3.8.0/create-azure-service-principal-azureps.md
GitHub Login: @sptramer
Microsoft Alias: sttramer

Thanks for the question! We will review and get back to you shortly.

I was able to repro the inconsistency. I'm going to reach out to the product team to see if this is a bug or the expected behavior.

Can you provide examples of the commands to recreate the behavior difference?
In the short term, we will update the documentation to clarify the current behavior. We will also consider future changes to the cmdlet's behavior more consistent.

@mikefrobbins
I am on mac
Method 1: $new = New-AzADServiceprincipal -DisplayName "NewServicePrincipal"
Method 2:
$credentials = New-Object Microsoft.Azure.Commands.ActiveDirectory.PSADPasswordCredential -Property @{ StartDate=Get-Date; EndDate=Get-Date -Year 2024; Password="MyStrongpwd1234@"}
$spup = New-AzAdServicePrincipal -DisplayName "MyServicePrincipal" -PasswordCredential $credentials
Check the access for both the service principal created by above two commandlets.


Added Follow Route in Backend

Solved #9
Added follow route in backend.
If the request is successfull the response will be true.
But if user enter a wrong target user id it will send this message to frontend You cannot follow an account that is not active.

✅ LGTM
Thanks @yash-gulatii  for contributing to Kubetweet. 👏🏻
__
Summary: 👌 This code looks good.


Add a flag to pass an already compiled library

For the build system I'm using (Nix), using Cargo directly is annoying because I need to build everything from scratch each time. This adds a flag so that you can point to an already compiled library to make the wheel.

Could you say a bit more about why Nix forces you to build from scratch each time? I'd prefer getting the cargo cache to work on NixOS (e.g. by setting CARGO_TARGET_DIR) to circumventing cargo if that's possible.

I'm no expert on the matter but I'll try to explain how I think it works.
There's two main ways to install rust packages on nix:
There's rustPlatform.buildRustPackage which uses the Cargo.lock file to prefetch all the dependencies, makes a cargo registry with it and then runs cargo in a sandboxed environment. (At least I think this is what happens, I haven't found much documentation on it). I don't know an easy that you could use a cache with this method.
The other way is carnix which generates a Cargo.nix from a Cargo.toml and Cargo.lock file. This Cargo.nix generates a separate derivation for each dependency so you only have to rebuild your package when you make a change. This method doesn't use cargo at all when building, everything's build directly with rustc. The result of this build is a .so file that I can hand to pyo3-pack (with this PR). It might be possible to reuse the dependency derivations and run cargo at the last stage here but I don't know how.

If carnix forces you to recompile on every change, how does does the option to pack an arbitrary library into a wheel solve that problem?
While allowing to package arbitrary libraries is easy, it also makes it really easy to shoot yourself in the foot, e.g. you could package the libraries for the wrong python version, for different bindings or of a different version of the library.

Sorry, I wasn't very clear. You only have to recompile your package when you make a change with carnix, all of your dependencies are precompiled and stored in the nix store. Using buildRustPackage without carnix, every change you make to your package would mean starting from scratch and recompiling all of the dependencies too (for instance pyo3-pack on nix uses this method and takes over 4 minutes to compile on my machine).
I appreciate it's easy to make mistakes using this method, I should have probably added a warning message to the help for the --artifact-path flag. Are there checks that could be added to detect these differences (something similar to #129)? I also considered adding a --dry-run or something that prints out the rustc flags, environment variables and the target wheel name which should be useful for testing/scripting. Would this be more acceptable?


kdeApplications.kolourpaint: init

Motivation for this change
Things done

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

[ ] NixOS
[ ] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".

Available platform plugins are: wayland-org.kde.kwin.qpa, minimal, offscreen, xcb.

Reinstalling the application may fix this problem.
Aborted

I had that same xcb error in my testing of krfb (#23755).  However, it only happened when running ./result/bin/krfb -- once I rebooted into a complete system containing the surrounding new KDE stuff, it worked.  I don't have an explanation for why that fixed it, but @FRidh, can you say which way you were testing?

Thanks. I only tested ./result/bin/krfb. I think that's due to the new type of wrapper that is used. I'll test in a complete system later.

Also as in #23755, the commit message should have an at <version> suffix.

pushed https://github.com/NixOS/nixpkgs/commit/dd662792b15e2e24dfb73b87975fe8517de2fe82


Increasing batch size not speeding up training time.

Not sure this is a "how to question", but its not a bug report, more of me trying to understand if my intuition is off or there is something wrong with my code. I'm using 4 GPUs while training a stacked LSTM and trying different batch sizes to see the effect. Generally my experience is that increasing the batch size results in finishing epochs faster, however I am not seeing that in my use case. I do see the effect on the GPU usage through nvidia-smi, the larger batch sizes show higher memory usage and utilization, but all three finish a single epoch in roughly the same time (largest batch size about 5 minutes slower).
Batch size 64, 1h4m for 1st epoch:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.44       Driver Version: 440.44       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 108...  Off  | 00000000:04:00.0 Off |                  N/A |
| 51%   83C    P2   183W / 250W |   3522MiB / 11178MiB |     78%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 108...  Off  | 00000000:06:00.0 Off |                  N/A |
| 65%   85C    P2   206W / 250W |   4193MiB / 11178MiB |     78%      Default |
+-------------------------------+----------------------+----------------------+
|   2  GeForce GTX 108...  Off  | 00000000:08:00.0 Off |                  N/A |
| 58%   85C    P2   201W / 250W |   3573MiB / 11178MiB |     79%      Default |
+-------------------------------+----------------------+----------------------+
|   3  GeForce GTX 108...  Off  | 00000000:0C:00.0 Off |                  N/A |
| 50%   82C    P2   172W / 250W |   3071MiB / 11178MiB |     81%      Default |
+-------------------------------+----------------------+----------------------+

Batch size 128, 1h3m to complete 1st epoch:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.44       Driver Version: 440.44       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 108...  Off  | 00000000:04:00.0 Off |                  N/A |
| 47%   80C    P2   191W / 250W |   4950MiB / 11178MiB |     87%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 108...  Off  | 00000000:06:00.0 Off |                  N/A |
| 49%   83C    P2   152W / 250W |   5243MiB / 11178MiB |     90%      Default |
+-------------------------------+----------------------+----------------------+
|   2  GeForce GTX 108...  Off  | 00000000:08:00.0 Off |                  N/A |
| 48%   83C    P2   159W / 250W |   5231MiB / 11178MiB |     86%      Default |
+-------------------------------+----------------------+----------------------+
|   3  GeForce GTX 108...  Off  | 00000000:0C:00.0 Off |                  N/A |
| 43%   74C    P2   167W / 250W |   7199MiB / 11178MiB |     91%      Default |
+-------------------------------+----------------------+----------------------+

Batch size 256, 1h10m to complete 1st epoch:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.44       Driver Version: 440.44       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 108...  Off  | 00000000:04:00.0 Off |                  N/A |
| 44%   76C    P2   167W / 250W |   9864MiB / 11178MiB |     95%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 108...  Off  | 00000000:06:00.0 Off |                  N/A |
| 46%   79C    P2   160W / 250W |   7777MiB / 11178MiB |     98%      Default |
+-------------------------------+----------------------+----------------------+
|   2  GeForce GTX 108...  Off  | 00000000:08:00.0 Off |                  N/A |
| 46%   78C    P2   165W / 250W |   6265MiB / 11178MiB |     96%      Default |
+-------------------------------+----------------------+----------------------+
|   3  GeForce GTX 108...  Off  | 00000000:0C:00.0 Off |                  N/A |
| 43%   74C    P2   171W / 250W |  10173MiB / 11178MiB |     97%      Default |
+-------------------------------+----------------------+----------------------+

Is this indicative of problems in my code? Or am I just wrong to assume increasing batch size from 64 will improve performance significantly, since it is already at ~ 80% GPU-utilization? Any input would be appreciated.

OS: Linux
Packaging Conda
Version 0.8.5

Maybe the way RNN's work is the reason for the same time even after increasing the batch_size since each sequence output is used for computation of activations at the next sequence step and this computation of matrix-multiplication is taking time for larger batch_size. Not 100% sure though.


Revert change made to distinguish between tap and swipe

why?

CLA is valid!

So, in our functional tests we use the scroll test helper, this is not the same as a user swipe which also causes touchMove event which is where we populate the __positions. Since touchMove doesn't happen  in this case this will not work in functional tests :disappointed:
Do you have any ideas?

I will need to take a deeper look. Also, remember this is public github, and there is no "functional tests" here. Maybe the test helper, which is actually provided by this repo, needs to actually simulate some touch moves or call "doTouchMove" directly to emulate better.


Added a screenshot of this text formatting

Added a screenshot of this text formatting.

Q
A

Bug fix?
no

New sample?
yes

Related issues?
fixes #X, partially #Y, mentioned in #Z

Looks great, thanks!


Add missing rbac for ingress-to-route controller

The controller wasn't allowed to create rotues, hence it didn't work.
This fixes the The HAProxy router should serve routes that were created from an ingress
conformance test.
Ref: https://issues.redhat.com/browse/HOSTEDCP-257
/cc @csrwng

/lgtm


Fix setup_build issue with empty PYTHONPATH and add wmc-wmarchive build key

Can someone please go back and address the worst of the pylint reported problems here? Indentation with tabs and the wrong # of spaces could really bite us.

Sorry I will fix the indentation and other issue today.


update docs related to triggers and events

@arikalon1 this still needs work. Please feel free to suggest changes.
The main problem I'm trying to solve is that PrometheusKubernetesAlert and on_prometheus_alert are under-documented and its not clear how they interact with playbook actions, what they're compatible with, etc.
I don't think I've solved that problem entirely, but that was the motivation for working on this.

LGTM
Left one minor comment


Implementation opt out of version check #2753

[ ] Breaking change? (if so, please describe the impact and migration path for existing application instances)

What changes did you make? (Give an overview)
changed  opt  version check
Is there anything you'd like reviewers to focus on?
How Has This Been Tested? (put an "x" (case-sensitive!) next to an item)

[ ] No need to
[x] Manually (please, describe, if necessary)
[x] Unit checks
[ ] Integration checks
[ ] Covered by existing automation

Checklist (put an "x" (case-sensitive!) next to all the items, otherwise the build will fail)

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation (e.g. ENVIRONMENT VARIABLES)
[x] My changes generate no new warnings (e.g. Sonar is happy)
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged

Check out Contributing and Code of Conduct
A picture of a cute animal (not mandatory but encouraged)

📤🙏🙏


Implement support for RAK2287

Thanks @papadkostas  :+1:

I've made a mistake and build failed.
Needs the following.
diff --git a/chirpstack-concentratord-sx1302/src/config/vendor/rak/mod.rs b/chirpstack-concentratord-sx1302/src/config/vendor/rak/mod.rs index 178de9f..594d057 100644 --- a/chirpstack-concentratord-sx1302/src/config/vendor/rak/mod.rs +++ b/chirpstack-concentratord-sx1302/src/config/vendor/rak/mod.rs @@ -1,7 +1,7 @@ -pub mod rak2287_as923.rs; -pub mod rak2287_au915.rs; -pub mod rak2287_eu868.rs; -pub mod rak2287_in865.rs; -pub mod rak2287_kr920.rs; -pub mod rak2287_ru864.rs; -pub mod rak2287_us915.rs; +pub mod rak2287_as923; +pub mod rak2287_au915; +pub mod rak2287_eu868; +pub mod rak2287_in865; +pub mod rak2287_kr920; +pub mod rak2287_ru864; +pub mod rak2287_us915;

I just noticed :) I forgot to enable pull-request builds for this repo, so the tests did not run. I'll fix this.

@papadkostas must the power_en_pin be set? See the original sx1302 reset script:
https://github.com/Lora-net/sx1302_hal/blob/master/tools/reset_lgw.sh#L16

@papadkostas could you please test the above changes on your Raspberry Pi to confirm if all is working?

@brocaar I'm trying to but docker-compose gives me an error for some packages.
 I haven't modified the docker file.

I would recommend that you build on an AMD64 machine and run make build-armv7hf-release, that will cross-compile a binary that you can use on a Pi :)

Ok, so I've managed to compile it, run the binary and got into an error.

Ok, so I've managed to compile it, run the binary and got into an error.

Ok, so I've managed to compile it, run the binary on my Pi and got into an error.
thread 'main' panicked at 'called Result::unwrap() on an Err value: "lgw_txgain_setconf failed"', src/libcore/result.rs:1165:5

@papadkostas must the power_en_pin be set? See the original sx1302 reset script:
https://github.com/Lora-net/sx1302_hal/blob/master/tools/reset_lgw.sh#L16

The RAK2287 got no SX1302_POWER_EN_PIN, SX1261_RESET_PIN, AD5338R_RESET_PIN.
I've opened the shield and found out only the 2 sx1251 and the sx1302.

Ok, so I've managed to compile it, run the binary on my Pi and got into an error.
thread 'main' panicked at 'called Result::unwrap() on an Err value: "lgw_txgain_setconf failed"', src/libcore/result.rs:1165:5
SPI is enabled on my Pi

At this point it is really hard for me to tell what is going wrong. I hope to receive one of these shields soon so that I can do further testing.

Ok, I'll try to figure it out in the meantime.
Just found this.
https://www.github.com/brocaar/chirpstack-concentratord/tree/master/Dockerfile-devel#L57

@brocaar this module needs a modified sx1302_hal because it doesn't have few components on it. I confirmed that with rak release of pkt_fwd. How can I make it build the binary with my modified repository of sx1302_hal? Just edit the Dockerfile-devel?

Although this PR was merged, I am having some problems getting the RAK2287 support working with a US915 configuration.  I started a thread on the forum.  Maybe a new issue would be better? Which is preferred for this type of discussion, where support for a new concentrator is being added?

I finally have received all parts so that I can test this myself (the RAK2287 Pi converter shield came in yesterday). I'm planning to test this in the next few days - week.
@papadkostas thanks for sharing the diff!

Wondering why semtech haven't integrated a temperature sensor on chip.

I have a SX1302 CoreCell from Semtech and it does have the sensor I believe :)
Anyway, will test soon! I have a bunch of devices on my desk which I'm currently testing and this mode is one of these :)

@brocaar the temperature comes from a separate IC, not the concentrator IC. If you'll need anything let us know :)

@dougreese @papadkostas thanks for the input! Please re-test with the latest master version. Don't forget to run docker-compose build, you also might want to remove the target folder to make sure you are compiling against the latest HAL.

@brocaar I have it built and running on RPi.  If I run into any problems I will open a new issue or PR.


How to work Gepard Shield 3.0

Hi , I have a question to ask .
i use " hyper -v " want to play game (Ragnarok online - private server) ,
but always blocked when i play 10seconds later ,
How can i use these c++ ,
Please guide me which videos should I learn from .
Can you tell me where to go, if I shouldn’t post it here?
i donwload “Gepard Bypass” >> GitHub - Hypercall/Gepard: Full Gepard bypass

thank you so much.

did you find any solution ?


Safari asks for Scroll Reverser Keychain permissions

Sometimes on Safari password fields when it asks to use Keychain stored passwords, this appears:

(this is using Safari Technology Preview, but it happened to me several times with normal Safari)
Is this normal?

I haven't seen that before, thanks for reporting it. It should be harmless to add Scroll Reverser to the Accessibility list though.

Hi, the same thing happens for me, when I copy certificates between keychains and when SourceTree tried to access information stored in the Keychain (see attached screenshots).
Sadly, I can't copy the certificates and SourceTree can't access the information without entering the password in the Scroll Reverser dialog...
This is very mysterious and someone should look into that!

Adding Scroll Reverser to the Accessibility list should fix this (drag the app into the list). Let me know.

The point is, WHY is Scroll Reverser asking to "control my computer" by FORCING its users to add it to the macOS accessibility list. Apple specifically states:
"Be cautious and grant access only to apps that you know and trust. If you give apps access to your Mac, you also give them access to your contact, calendar, and other information, and are subject to their terms and privacy policies, and not the Apple Privacy Policy. Be sure to review an app’s terms and privacy policy to understand how it treats and uses your information."
Hey, I like Scroll Reverser and have been using it. But it works perfectly fine WITHOUT granting it the power to control my computer. So I ask again, WHY does it sneakily request Jedi privileges - privileges that may allow it to access all my files with the possibility of network data transfer - for a tiny little utility applet? Makes not sense, unless....
I just uninstalled it.  I need to install some legit printer driver software and this is blocking me from doing that because I get the same dialog as everyone else. It appears Scroll Reverser is "stuck in the queue" and blocking me from installing other software without granting Scroll Reverser God-like access to my computer.
I'll be happy to reinstall it again later if this chicanery is removed, especially since it works just fine without fully controlling my mac.

I can't tell you why as I really don't know.
Scroll Reverser has absolutely no (intentional) interaction with the keychain. Any light anyone might be able to shed on it would be much appreciated!
My best guess is this: Scroll Reverser inserts itself into the macOS Event stream using an Event Tap. It receives scrolling and gesture events and modifies the scrolling events when necessary to reverse them. Perhaps these modified scrolling events are somehow interacting with SourceTree in some way. But I'm not expert enough to know how. It seems to me like this should not happen; possibly an obscure macOS bug.
I have never seen or been able to reproduce this dialog myself.
I would suggest that it is probably safe to add Scroll Reverser to the security & privacy Accessibility list, to avoid the annoying prompts, but my lack of complete understanding of the issue means I cannot say for sure.

Being added to the accessibility list does things like allowing an app to intercept and send keyboard and mouse input to apps running as an administrator. It is necessary, and got are overly paranoid. This is an open-source project. There's nothing to indicate anything malicious going on.

The point is, WHY is Scroll Reverser asking to "control my computer" by FORCING its users to add it to the macOS accessibility list?

I'll be happy to reinstall it again later if this chicanery is removed, especially since it works just fine without fully controlling my mac.

ScrollReverse hooks into system events using CGEventTapCreate in MouseTap start. Elevated permissions are required to do this because it could alter the behaviour of other applications without the user being aware (eg user goes to click on a "Deny" button but a devious application intercepts the click and injects an event to move the mouse to "Accept" before performing the click)

Scroll Reverser has no code to interact with the keychain and it does not explicitly request any privileges.

It looks to me that the keychain issue relates to Apply working around this vulnerability: http://apple.stackexchange.com/a/213099/174338 - because ScrollReverse is modifying mouse events, it could be used to fake confirmation dialog approval - (examples of other apps affected)[https://discussions.apple.com/thread/7276820?start=30&tstart=0#29345473]).
Curiously, the event mask is NSEventMaskGesture|NSScrollWheelMask (no clicks) but my guess is that Apple are being conservative and trying not to accidentally leave open another pathway of faking confirmations.

ScrollReverse hooks into system events using CGEventTapCreate in MouseTap start. Elevated permissions are required to do this because it could alter the behaviour of other applications without the user being aware (eg user goes to click on a "Deny" button but a devious application intercepts the click and injects an event to move the mouse to "Accept" before performing the click)

Yes, but again, there is no issue with Scroll Reverser working day in and day out without needing elevated privileges with Apple nagging to add it to the Accessibility list.

It looks to me that the keychain issue relates to Apply working around this vulnerability: http://apple.stackexchange.com/a/213099/174338 - because ScrollReverse is modifying mouse events, it could be used to fake confirmation dialog approval

Yes, so perhaps the way to deal with this is to have Scroll Reverser be aware of when the keychain is being accessed and temporarily un-inject itself from the event stream to avoid this pop up. The answer is NOT to tell all users "just add it to the accessibly list and stop being paranoid".
Realize, just because a project is open source does not mean it is immune to nefarious actions by some stealthy developers. To the contrary, I've always felt open source projects were actually MORE open to attacks and hacking because (a) anyone can throw up a GitHub project that people download and never bother to look at the code, and (b) any anonymous user can contribute code to a large project and, with a code patch sufficiently obfuscated, could easily inject nefarious behavior into a previously "safe" app.
So I ask, which code would you trust more? Closed source code written by well-known entities like Intuit, Apple, Microsoft, etc that have millions of users and real reputations to protect and legal ramifications at state, or would you rather install 250,000 lines of purposely obfuscated code (that few will ever actually take the time to inspect) by some "joebloe296" on GitHub?  Hmm. So yeah, when Apple tells me this tiny little applet I installed is wanting to "control my computer" (their words) when I'm in the middle of trying to install a printer driver software from a reputable company, it does raise up some pretty big red flags. Also, this comes on he heals of news of DropBox getting busted for tampering with the default text on the keychain security dialog and inserting themselves into the accessibility list without users knowing or agreeing.

It seems that Apple are a little smarter with the dialog than I expected: it only happens if an active tap handles certain events while the dialog is open, however it doesn't seem to matter what the tap actually does with those events so they didn't get it completely right. If an active tap doesn't change any events then it really shouldn't have triggered a warning.
Reproduce instructions

Trigger an authorization services dialog (easiest is to trigger a keychain permission request)
While the dialog is open, scroll (2-finger trackpad or mouse scroll wheel) while the pointer is over the security dialog
Allow the keychain request

Trigger Events
Any of the following events handled by an active tap on an authorization services dialog will trigger a second dailog

Gestures

Any >=3 finger gesture that is not already handled by the OS.

If you go into Sys Preferences -> Trackpad and deselect every gesture, then every trackpad gesture triggers the warning
If you go into Sys Preferences -> Trackpad and set "Swipe between full-screen apps" to 3 fingers, then a 3-finger swipe does not trigger the warning

Any 2 finger gesture

Regardless of whether you set a 2-finger gesture (eg "Swipe between pages")

1 finger gestures

If "Tap to click" gesture is enabled: Always
If "Tap to click" gesture is disabled: Only if using a force sensitive trackpad (NSEventMaskPressure exists separately from NSEventMaskGesture but there are still related gestures in the event stream). This is probably what is causing the most problems -- the builtin trackpads for retina macbooks since 2015 are all force sensitive.

Scrolling

Always

(Bad) Workaround don't use a force-sensitive trackpad to click, don't use a 2-finger tap and don't scroll a mouse wheel while the keychain dialog is active.
Solutions

If you knew whether an authorization services dialog was active then you could disable the active tap

I tried CGEventTapEnable(activeTapPort, NO) from inside an active tap NSScrollWheel event in an authorization services dialog. It doesn't work (it does stop the warning if you disable it from a scroll event outside the dialog).
You would have to somehow keep track of the window under the current mouse cursor and enable/disable if it was authorization services dialog -- I'm not sure either of those things are possible without root access and I doubt you'd be using an officially supported API to do it.

I think the biggest problem is force-sensitive trackpads where simply clicking on the Allow button is enough to trigger the second dialog and from the user's perspective they haven't even scrolled

If the passive tap was used for NSEventMaskGesture and the active tap was used for NSScrollWheelMask scroll events then this would fix the vast majority of gesture triggers. I've tried this locally and it appears to work fine.
The passive tap was originally added here to fix #1. The tap callbacks were later merged here and then the passive tap event mask was set to zero here

If I "Look up & data detectors" to 3-finger tap in System Preferences -> Trackpad then with the changes 3-finger tap still works. The same callback can continue to be used for both the active & passive taps since they deal with different event types.

Please note that, although unlikely for most users, if at any point there is an app or any sort of interface running with root privileges in which you intend to scroll, Scroll Reverser will not and can not work in that root app unless it's added to the accessibility list.

I have absolutely no idea why (and haven't really investigated very much) but it also fixes #39

And #42 -- it looks to be  that OSX really doesn't like active taps on anything that involves gestures

Thanks @levic for your hard work on this, and others for you contributions & reports. I will review & work on getting this out in an update.

Have just released Scroll Reverser 1.7.5 with the passive tap change, and therefore closing this issue.

It should probably be noted somewhere that Scroll Reverser must be added to the accessibility list for its features to work in software running as root/admin, apps running with elevated privileges, or most system dialogues.


Add Polish readme

Hi, first of all, great project! I saw a Chinese version of readme. Here is Polish readme: https://github.com/mbiesiad/flame/blob/pl_PL/README-PL.md
Description
Please include a summary of the change.
Fixes # (issue number, if there is one)
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Checklist:
If something is unclear, please submit the PR anyways and ask about what you thought was unclear.

[ ] This branch is based on develop
[x] This PR is targeted to merge into develop (not master)
[ ] I have added an entry under [next] in CHANGELOG.md
[ ] I have formatted my code with flutter format
[ ] I have made corresponding changes to the documentation
[ ] I have added examples for new features in doc/examples
[ ] The continuous integration (CI) is passing

Best wishes,

Let's carry Flame to the world🤗🤗


feat: automl ga samples

todo:

tests
readme
etc.

This is apparently passing the checks. Can we merge these to master?

that's because i haven't added any tests yet 🙃

Deleting branch. Does not exist in docs today.


improve use case of restore that would not restore anything due to framework restriction and project being with wrong/lower framework version

Just taking a note that we should look at improving the case where paket.dependencies / paket.lock have a framework restriction, and projects get strictly 0 packages restored.
The use case is this commit: https://github.com/roboz0r/fable-elmish-lit-tailwind/commit/c549d767a2b855e0d2e18274fa081c3e37622a52
which requires the fixes up to this commit
https://github.com/smoothdeveloper/fable-elmish-lit-tailwind/commit/5b7c5d7bbaa2bd791084cfdb475b8139d5bfa73f

As a suggestion, when running dotnet paket install the output is:
Paket version 8.0.0+6bcb14ec191f11e984ff0e58016f5987a5cfa8f6
Skipping resolver for group Main since it is already up-to-date
Installing into projects:
Created dependency graph (14 packages in total)
Calling dotnet restore on fable-elmish-lit-tailwind.sln
  Determining projects to restore...
  Restored .\fable-elmish-lit-tailwind\src\Website.fsproj (in 843 ms).
Total time taken: 0 milliseconds

A line at the end like WARNING: 0 packages restored for .\fable-elmish-lit-tailwind\src\Website.fsproj would tip off the issue.

@roboz0r thanks for excellent suggestion.
I also like to keep "Total time taken: 0 milliseconds", maybe I'll color it orange when things take less than a milliseconds if the logged steps are supposed to take >= 1 milliseconds?

I think that the timer may not be in quite the right place as even checking whether the last restore is up to date should take > 1ms?


update react-scripts to 1.0.1

Thanks for PR! We’ll probably go with #2419 instead since it’s more comprehensive and includes changes to lockfiles too.


Fix clean target.

Could we also enable Github issues here? I'd like to file a complaint 😄

I also added an unrelated commit that mentions the known-good 2022.04 version in the README.

Complain away 😂


Move egress tasks to examples

The corresponding PR to master of https://github.com/istio/istio.github.io/pull/2093

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: vadimeisenbergibm
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: frankbu
If they are not already assigned, you can assign the PR to them by writing /assign @frankbu in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

content/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: frankbu, vadimeisenbergibm
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

content/OWNERS [frankbu]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


in_tail: Show more information on skipping update_watcher

Which issue(s) this PR fixes:
None
What this PR does / why we need it:
In #3614 some users reported that in_tail rarely stops tailing. It seems
it's caused when skipping update_watcher due to unexpected duplicate
pos_file entries. The root cause is unknown yet. To investigate it, show
more infomation when it happens. Ideally it should't happen so that log
level "warn" is desired for it (I can't reproduce this issue yet).
Docs Changes:
None
Release Note:
Same with the title

Thanks for your review!

@ashie Is there any update on this issue?
we are using fluentd 1.13.3 and observing similar issue, before upgrading fluentd version want to ensure it will work.


Bug Issue: drop_last=True for test dataset may lead to inaccurate test results

Dear authors:
I am impressed by this amazing work! But when I am reading another paper in ICLR 24' about time series forecasting (FITS: Modeling Time Series with $10k$ Parameters) I noticed the authors reported this bug in their repo (https://github.com/vewoxic/fits).
In short, this bug, originitated from Informer (AAAI 21'), drops some test samples in the last test batch thus resulting in inaccurate results measured. (Please refer to FITS' repo for a detailed description.) Could you please confirm whether your results are affected by this piece of code? If so, could you please modify it and correct the results in the tables in your assey?
Thanks!

The benchmark paper of PVLDB2024 "TFB: Towards Comprehensive and Fair Benchmarking of Time Series Forecasting Methods" also pointed out that the droplast operation should be abandoned during the testing process, otherwise it will cause unfair comparisons.


Update changing-to-mysql.md

Added useSSL=false to the url in the [database.shared_db] and [database.apim_db] configuration elements in the deployment.toml examples. Without this setting, the server was failing to start due to mutual SSL connection failure issue.

@bhathiya , can you please confirm this fix.


Is there a built in Open spiel expected value calculation?

Just wondering if there was any built in way to calculate the expected value of a game to particular agent playing it, given a trained policy. I know it's relatively trivial to just iterate through all of the chance + actions nodes, multiply the probabilities and the payoffs at the end and then sum across all starting actions but I thought maybe there might be some built in way to do this kind of calculation or some similar calculation? I had a look around policy.py but couldn't see anything that might fit the bill.

I think you are looking for expected_returns.h in C++ or expected_game_score.py for Python

Cool, that definitely looks like it. Thanks!


NewLine endings in Linux environment

FTP OS: Windows
FTP Server: Windows FTP
Computer OS: Docker Linux any flavor
When running FluentFTP on .net Core 3.0 and 3.1, library uses the computer OS (Linux) Environment.NewLine character (\n). Microsoft FTP sends and expects to receive \r\n as the NewLine character on commands. Since the proper line endings aren’t sent and received, the connection times out waiting for the server welcome message. Code works perfectly if run on windows containers or locally on Windows 10.
I can’t seem to find anywhere to set the line ending character for the library. Is there a way or is this feature that will need to be added? I have no control over the server so I cannot configure it to accept anything other than \r\n.
Logs :
No logs needed.

Good point. Is this during GetListing or during connection itself?

Any and all communication. FluentFTP gets stuck waiting for server welcome message since it never receives what it thinks is the correct format of new line. It appears it eventually times out and continues anyways but by then the server has severed the connection.
I haven’t looked at much of the source yet and I’m making a big assumption, but I’m assuming this can be fixed by an extension method to add something along the lines of .UseSpecificLineEndings(Enum.Windows) or something along that line.
If I get time, I’ll try to submit a pull request today with a fix. Not sure though that I have time to get the dev environment set up and follow all the guidelines for a PR. If not, I suppose I’ll make do with using the quick raw sslstream code I wrote to last night while trying to figure out what was going on until a fix can be merged.

A thought just occurred. Can you check for specific types of line endings on the first message received from the server and make assumptions based on that and adjust accordingly? The first message does include \r\n so would it be illogical to assume if you receive this then you can assume the server is of a specific type and change the line endings to match?

Maybe a good idea. However I don't want to break anything so we'll have to see how to implement this in a backwards compatible way.

According to the RFC959:
The FTP uses the Telnet protocol on the control connection.
According to the RFC318:
The end of a line of text shall be indicated by the character sequence Carriage Return Line Feed (CR, LF).
Thus, a single LF is an invalid eol because it should be translated into CR LF before sending to the server. I agree that LF works for many ftp servers, but I can also confirm that some software works strictly to the RFC requirements.
According to this - always using CR LF will break nothing because this is how things are expected to work.

finally got some time to check this
fluent ftp 33.0.3 running in the mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim

i.e. \r\n is used as a EOL, so probably this issue could be closed? @robinrodricks

finally got some time to check this
fluent ftp 33.0.3 running in the mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim

i.e. \r\n is used as a EOL, so probably this issue could be closed? @robinrodricks

I cannot remember the exact implementation, but I think we are switching the line ending depending on the server tech.

Closing for now as requested. Thanks.


How  set _delete_=True to ignore the base config

Hello everyone.
I used Solo branch and ran test.py on my custom dataset and got this error:
/mmdetection-SOLO/mmdetection-SOLO$ python "/home/mmdetection-SOLO/mmdetection-SOLO/tools/test.py"  "/home/mmdetection-SOLO/mmdetection-SOLO/configs/solo/solo_r50_fpn_1x_card.py" "/home/mmdetection-SOLO/mmdetection-SOLO/checkpoints/epoch_12.pth" --show-dir="/home/mmdetection-SOLO/mmdetection-SOLO/show_dir/"
Traceback (most recent call last):
File "/home/mmdetection-SOLO/mmdetection-SOLO/tools/test.py", line 153, in
main()
File "/home/mmdetection-SOLO/mmdetection-SOLO/tools/test.py", line 85, in main
cfg = Config.fromfile(args.config)
File "/.myenvs/solo2/lib/python3.7/site-packages/mmcv/utils/config.py", line 212, in fromfile
use_predefined_variables)
File "/.myenvs/solo2/lib/python3.7/site-packages/mmcv/utils/config.py", line 181, in _file2dict
base_cfg_dict = Config._merge_a_into_b(cfg_dict, base_cfg_dict)
File "/.myenvs/solo2/lib/python3.7/site-packages/mmcv/utils/config.py", line 204, in _merge_a_into_b
b[k] = Config._merge_a_into_b(v, b[k])
File "/.myenvs/solo2/lib/python3.7/site-packages/mmcv/utils/config.py", line 200, in _merge_a_into_b
f'{k}={v} in child config cannot inherit from base '
TypeError: grad_clip={'max_norm': 35, 'norm_type': 2} in child config cannot inherit from base because grad_clip is a dict in the child config but is of type <class 'NoneType'> in base config. You may set _delete_=True to ignore the base config
Please help me.
Many thanks in advance.

Hi again .
that's the solution Link

Hi again .
that's the solution Link

Yes, this is the correct solution.

The link is died now. Could anyone update it?

page not found please send the link i am facing the same issue

Hi, @vincentblot28, just clicked the link you provided and the one above, all of them returns 404 :/


Reducing cardinality

This is more a question than an issue.
I'd like to keep cardinality in my influxDB as low as possible, to reduce RAM usage and thus power usage.
The following is a view on the tags with the highest cardinalities, as per https://docs.influxdata.com/influxdb/cloud/write-data/best-practices/resolve-high-cardinality/#count-unique-tag-values (note that I removed some values at the end).

table_result
_value
tag

0
172
_field

1
7
_measurement

2
0
_start

3
0
_stop

4
12
ap_mac

5
10
ap_name

6
84
bssid

7
7
channel

8
1
desc

9
15
device_name

10
4
essid

11
1
flowctrl_rx

12
1
flowctrl_tx

13
1
has_sfp

14
4
id

15
1
is_guest

16
2
is_wired

17
76
mac

18
3
media

19
4
model

20
125
name

21
15
oui

22
2
poe_enable

23
1
poe_mode

The 'mac' and 'name' tags have a large contribution to cardinality, and I do not necessarily need them in my dashboards (note that the names of the APs are useful, it's those of the clients that I don't need - but I'm ok with just getting rid of all names if that's a possibility).
As both name and mac is a key, I cannot simply delete them once they are ingested in influxdb (as they are part of influxdb's index). Instead I need to delete the complete measurement.
Is there a way to filter out certain keys or any other way to simply reduce cardinality?

Tags and field filters sounds like a reasonable idea. When I wrote this code I knew nothing about influxdb, but I've learned a lot since. This code has improved a bit, but still has a ways to go. Thanks for your insight and investigation here, it's very helpful!

Any quick workaround you see to stop ingesting client's data?

Some cardinality might can be reduced by using “drop_pii = true” in the config. This should drop ip and MAC addresses for example to empty strings

Great idea, I did not know that flag existed. I'm trying it out.


"dlg_reset_info" example has UART issue when used along with "armv8_stack_overflow_guards"

Hi, teams.
I was trying to make some robust error/fault handling framework with DA1469x SDK.
"dlg_reset_info" example is quite useful both in development phase and in production phase, so I utilize it for my applications.
I also tried to adapt "armv8_stack_overflow_guards" to my application, but there is strange UART problem.
After some debugging, I found the following code in Reset_Handler, "exception_handlers.S" has caused problem.
ldr r0, =__StackLimit
add r0, r0, #dg_configMSP_PADDING
msr MSPLIM, r0
Specifically, writing to MSPLIM register causes problem.
If this code is included and ADF hard fault handler is started, the ADF_PRINT or other retargeted UART printf are blocked in hw_uart_init() function, and the fault handler is stopped during print debug messages.
I don't know why this single line can cause UART problem, please check why.
The symptom can be easily reproduced if you just patch the following code in "dlg_reset_info" example.
Reset_Handler:
                ldr     r0, =0x20000004
                ldr     r1, =Wakeup_Reset_Handler
                str     r1, [r0]
#if dg_configARMV8_USE_STACK_GUARDS == 1
/*
 * Intialize the MSPLIM register.  Must be placed here as the msr instruction
 * requires the device to be in privileged mode. Add padding to the register
 * so we can leave room for the UsageFault_Handler to place items on the stack
 */
        ldr		r0, =__StackLimit
        add		r0, r0, #dg_configMSP_PADDING
        msr		MSPLIM, r0
#endif

Never mind.
I adjusted __STACK_SIZE, and it works fine.


scraping strings

Started to use this yesterday, so pls forgive me asking newbie questions.
I read data from a device providing string values like software version and serial number.
From your example modbus.yml I don't see that a datatype "string" is allowed. Is that true?
(how) can I export these registers with this exporter? thanks in advance

Currently, the exporter only supports numeric data types.     This limitation is because Prometheus stores sample values as float64 only.
Some exporters, like the SNMP exporter, allow encoding of certain string values into the labels of a Prometheus metric, but this isn't supported by this exporter.
If you want to be able to read string data, you may be better off using a monitoring setup with a database that supports strings, such as Telegraf with Influx or TimescaleDB.

Supporting info metrics (string labels) is something that could be implemented here. Someone would need to contribute the feature.


Transient MDB_MAP_RESIZED error in sample test suite

The relevant CI job that failed: https://github.com/input-output-hk/lmdb-simple/actions/runs/8393714278/job/22989298200
An excerpt of the test log shows that the database was resized when a transaction was opened:
...
Test suite sample: RUNNING...
Running 1 test suites...
Test suite test-cursors: RUNNING...
sample: LMDB_Error {e_context = "mdb_txn_begin", e_description = "MDB_MAP_RESIZED: Database contents grew beyond environment mapsize", e_code = Right MDB_MAP_RESIZED}
...

The test itself is very simple: it runs only once, and it only adds three simple key-value pairs to the database. So, it looks to me like it shouldn't be able to exceed the 1MiB maximum size of the database.
main :: IO ()
main = do
  env <- openEnvironment "test/env" defaultLimits
  db <- readOnlyTransaction env $ getDatabase Nothing :: IO (Database String Int)

  transaction env $ do
    clear db
    forM_ [("one",1),("two",2),("three",3)] $ \(k,v) -> put db k (Just v)

  print =<< readOnlyTransaction env (get db "two")   -- Just 2
  print =<< readOnlyTransaction env (get db "nine")  -- Nothing

defaultLimits :: Limits
defaultLimits = Limits
  { mapSize      = 1024 * 1024  -- 1 MiB
  , maxDatabases = 0
  , maxReaders   = 126
  }

I haven't tried reproducing the test failure.

A re-run of the job succeeded, so it's definitely a transient failure: https://github.com/input-output-hk/lmdb-simple/actions/runs/8393714278/job/22989989845


Add CelestialHarmony

A new planet pack.

https://github.com/ProximaCentauri-star/Celestial-Harmony

Need to resolve question at https://github.com/KSP-CKAN/NetKAN/issues/10024#issuecomment-2132296852 before merging.
Fixes #10024.

Confirmed to require a custom fork of Kopernicus. Closing.

The requirement for a custom fork of Kopernicus has been removed.