Bug:

Describe the bug:
Hi guys, cool concetp you have here but for me, the app quits after a while, and i have to  relaunch it.
Has anyone here encountered this issue before?

To Reproduce:
Steps to reproduce the behavior:

Screenshots:

OS Version:
Im On windws 10 2004

Windows 10 Version:

ModernFlyouts Version:
Modern Flyouts Version : 0.7.1

Version:

Additional context:

Duplicate of #100,
We already fixed it in v0.7.8, please update the app to v0.7.8 on MS Store

Ok, that fixed it, weird that the store downloaded me an older version.

Great! Thank you for your patience! 🤙

By the way, I'm from Germany and i noticed the translation is a bit odd, if you'd like I could help with that.

Yup! @Samuel12321 could you guide @ArmasF31?

Hi @ArmasF31, mildly concerned that the store gave you an older version. Which windows build are you on?
Regarding the translations, any help you can provide would be greatly appreciated. just modify the "de" xlf file and create a pull request.

Im on the latest Windows Build, maybe it was just the store being stupid...

You should be able to see it

You should be able to see it

don't quite understand your statement?


Ignore blank rows CSV

Hi,
encountered a csv (converted from xlsx) where one line was all blank (,,,,,,)
Errored on 'cannot convert "" to int'
Now I fixed it at the source, but in general, it might be useful to add the option 'ignore blank row' or be able to set a default (like you can in EDI) for empty values? Especially when casting?
(in this case, setting '' to 0)

Try using xpath on FINAL_OUTPUT like in this CSV example: https://github.com/jf-tech/omniparser/blob/4aa56d6cb9b86be1bb9f26daf355a0cbe821b839/extensions/omniv21/samples/csv/1_weather_data_csv.schema.json#L24

Try using xpath on FINAL_OUTPUT like in this CSV example: https://github.com/jf-tech/omniparser/blob/4aa56d6cb9b86be1bb9f26daf355a0cbe821b839/extensions/omniv21/samples/csv/1_weather_data_csv.schema.json#L24

Checked the example:
DATE|HIGH TEMP C|LOW TEMP F|WIND DIR|WIND SPEED KMH|NOTE|LAT|LONG|UV INDEX
2019/01/31T12:34:56-0800|10.5|30.2|N|33|note 1|37.7749|122.4194|12/4/6
N/A
(..)

I mean even emptier :)

Checked the example:
DATE|HIGH TEMP C|LOW TEMP F|WIND DIR|WIND SPEED KMH|NOTE|LAT|LONG|UV INDEX
2019/01/31T12:34:56-0800|10.5|30.2|N|33|note 1|37.7749|122.4194|12/4/6
N/A
(..)

I mean even emptier :)

thanks, that would work, just check a mandatory field

thanks, that would work, just check a mandatory field


Fixed casing issue with device names (#375)

This fix allows device names to be specified in mixed case, but keeps aliases case-insensitive (issue #375). I didn't add any automated tests since they would require specific Chromecast device names to really work, but I did some manual testing:
catt.cfg:
[aliases]
test1 = Bedroom TV
TEST2 = Chromecast_2

Tests:
catt -d "Bedroom TV" status
Volume: 100
catt -d test1 status
Volume: 100
catt -d Test1 status
Volume: 100
catt -d test2 status
Error: Specified device "Chromecast_2" not found.
catt -d Test2 status
Error: Specified device "Chromecast_2" not found.
catt -d "Bedroom TV" set_alias Test3
# no output
catt -d "Bedroom TV" set_default
# no output
catt -d TEST3 status
Volume: 100

catt.cfg after:
[aliases]
test2 = Chromecast_2
test3 = Bedroom TV

[options]
device = Bedroom TV

Looks great, thank you for your help!


Ignoring expected server failures in Localization test.

Hiding logs from expected server failures in Localization test, which makes analyzing log messages harder.

Ah, thanks @berhalak. The test failures now look more familiar, I think @georgegevoian might have been looking into them?


Adding FR 04-16753

There are two amendments in FR 04-16753 which omit interim markers, causing regulations-parser to be unable to derive paragraph depths.
Reproduction of the error can be accomplished using regulations-parser:
eregs clear
eregs preprocess_notice 04-16753
eregs write_to output

The following changes were introduced to the source FR XML document:

For 37 CFR 1 amendment 3, an asterisk node has been added for § 1.25 (c)(1).
For 37 CFR 2 amendment 3, an asterisk node has been added for § 2.208 (c)(1).

These changes enable the parser to correctly identify the paragraph depths and process the amendments.

Thanks @gregoryfoster! This sort of amendment should work automatically, so I've created eregs/regulations-parser#381 to track.


merge package template from Kronos-Tools/npm-package-template

package.json

chore(engines): update<EMAIL_ADDRESS>from template

.travis.yml

chore(travis): merge from template .travis.yml

doc/README.hbs

docs(README): update from template

Coverage remained the same at 90.756% when pulling a89df4eeb2ab029353963e1e2e8dfa60f05182c0 on template-sync-1 into 2fca2872417fd293f91fa35e7ef222656d390326 on master.

Codecov Report

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

@@           Coverage Diff           @@
##           master     #178   +/-   ##
=======================================
  Coverage   90.54%   90.54%
=======================================
  Files           1        1
  Lines          74       74
=======================================
  Hits           67       67
  Misses          7        7

Continue to review full report at Codecov.

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


Sprint A - Determining if any components we currently have are out of alignment with our vision

Establish criteria for existing components. Analyize existing components and make recommendations.

Please update to meet DoR

@Samiabutton to put document in


Adds fix for issue https://github.com/PEC-CSS/MovieDroid/issues/22

Adds new parameter "showCount" in ListAdapter constructor.

Add new ViewHolder named ListViewCountViewHolder and its layout to show count of list in case of showCount is true.

Modifies ListAdapter.ListViewHolder to use view binding.

Member variable of ListAdapter are made private as they are not being accessed outside the class.

Adds new string resource.

Lgtm, great work, thanks for your contribution 😄


Mp3 Audio

Currently Audio-only Streams are

Mp4 & Webm

Shall we Add Mp3
@tfdahlin
@RONNCC
😊

Hi @DeepakChakravarthy, the reason that the audio-only streams are mp4 and webm is because that's how YouTube sends the files. Pytube doesn't do any processing on the output files because of the fact that doing so would require additional dependencies to function, such as ffmpeg. I think the process of converting output should probably be left up to the user so that they can use their preferred audio processing library, and to avoid adding 3rd-party dependencies to pytube.

@DeepakChakravarthy That said we would love additional contributions to the Pytube library if there's any core Youtube-related functionality missing :)


Need help with custom slf4j log

Hi,
please help with creating of log format.
We are using java with custom logs:
<pattern>%d %-5p [ip=%X{ip} rq=%X{rq} ep=%X{ep}] [%F:%L][%M:%t] %m%n</pattern>

Where:
%d - outputs the time which the log message occurred in formats that SimpleDateFormat allows.
%thread - outputs the name of the thread that the log message occurred in.
$-5level - outputs the logging level of the log message.
%logger{36} - outputs the package + class name the log message occurred in. The number inside the brackets represents the maximum length of the package + class name. If the output is longer than the specified length it will take a substring of the first character of each individual package starting from the root package until the output is below the maximum length. The class name will never be reduced. A nice diagram of this can be found in the Conversion word docs.
%M - outputs the name of the method that the log message occurred in (apparently this is quite slow to use and not recommended unless your not worried about performance or the method name is particularly important to you).
%msg - outputs the actual log message.
%n - line break

I've tried to use this:
goaccess -f test.log --log-format='%d %t %-5p [ip=%X{ip} rq=%X{rq} ep=%X{ep}] [%F:%^][%M:%^] %r' --date-format='%Y-%m-%d' --time-format='%H:%M:%S,%s'
but this isn't working
Error:
Parsed 1 linesproducing the following errors:
IPv4/6 is required.
Format Errors - Verify your log/date/time format

Log example:
2018-11-23 16:11:23,886 INFO  [ip= rq= ep=] [ReverseProxyRoutingFilter.java:54][doFilter:qtp1077873186-22] ========
2018-11-23 16:11:23,886 INFO  [ip= rq= ep=] [ReverseProxyRoutingFilter.java:55][doFilter:qtp1077873186-22] doFilter(), sessionID: node0bt908be60tp2unky6315kopc715, isSessionNew: true, redirectURI: null
2018-11-23 16:11:23,886 INFO  [ip= rq= ep=] [ReverseProxyRoutingFilter.java:57][doFilter:qtp1077873186-22] doFilter(), getQueryString: null, getRequestURL: https://<IP_ADDRESS>:9443/health, getRequestURI: /health, getServletPath: /health
2018-11-23 16:11:23,886 INFO  [ip= rq= ep=] [ReverseProxyRoutingFilter.java:59][doFilter:qtp1077873186-22] ========
2018-11-23 16:11:23,887 INFO  [ip= rq= ep=] [Slf4jRequestLog.java:60][write:qtp1077873186-22] <IP_ADDRESS> - - [23/Nov/2018:16:11:23 +0000] "GET /health HTTP/1.1" 200 15

BR,
Veniamin

goaccess is a web log analyzer, is your log an access log?

It's tomcat (springboot) logs from web application.

You could try:
goaccess access.log --log-format='%^[ %^[%^]%^] %h %^[%d:%t %^] "%r" %s %b' --date-format=%d/%b/%Y --time-format=%T --max-tests=0 --ignore-panel=OS --ignore-panel=BROWSERS

Closing this. Feel free to reopen it if needed.


[Target] Remove unused method Process::PrintWarningCantLoadSwift

This appears to be unused.
cc @compnerd @JDevlieghere @dcci

@swift-ci please test and merge


Fixed drawer icon size and position

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Pawel Wolak seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Try something new selection

on each meal menu screen put something like “try something new”. That takes them to a google maps-like interface returning food thats closest to them based on the meal. Then there will be a way to add those selections with a picture to your day

Moving to Trello board.


[Question] Interpolation: reference other keys?

Is there a way we can reference other keys in dictionary files? An example below:
locales/en/common.json
{
  "one": "one",
  "you": "you're the $t(common:one)"
}

components/a-component.tsx
const { t } = useTranslation();
console.log(t`common:you`) // output: "you're the one"

Here is a similar feature in i18next, which I'm migrating from right now: https://www.i18next.com/translation-function/nesting

Sorry but this feature is not implemented yet 😕 Please feel free to PR if you need it 🤗
How i18next manage this with other namespaces?
{
  "one": "one",
  "you": "you're the $t(anothernamespace:one)"
}

for now I see difficult to use the namespace here, you could only use namespaces that the page has loaded and not load them async. Maybe for a first iteration it would be fine without specifying the namespace, and just use them for the namespace itself.
{
  "one": "one",
  "you": "you're the $t(one)"
}

What do you think about this? Thanks!

Echoing this request, as noted in https://github.com/vinissimus/next-translate/discussions/873

@aralroca , about not referencing the namespace
For our use case, it'd likely yield little value to have composition without the namespace. Because the common / isolated words would likely exist in common or another generic file, while the longer terms leveraging those words are more page specific.
When you say:

I see difficult to use the namespace here, you could only use namespaces that the page has loaded and not load them async

As I don't fully understand the internals of the library, I'm not sure if the suggestion below helps as a potential path forward, but could this be solved with an assumption that the dev will load the namespace?
Taking the example here, say that we have this config
// common.json
{
  "one": "one",
}

// page.json
{
  // not going into whether {{}} or ${t()} for now, though I'd prefer for {{}} for readability
  "you": "you're the {{common:one}}"
}

// i18n.js
const i18n = {
  "*": ['common'],
  "/my-page": ["page.json"]
}

then the string translates to "you're the one" as expected.
If the dev didn't configure common so it'd be available for the page, it'd render as "you're the {{common:one}}"
Does this simplify the loading concern?


Update CodeOwnersProcessor helper

Hey, I just made a Pull Request!
We noticed a component from our org that was imported from github ended up as an unprocessed entity due to the error: Processor CodeOwnersProcessor threw an error while preprocessing; caused by TypeError: Cannot read properties of undefined (reading 'match')

Debugging in the backstage demo app revealed that the error was happening in one of the helper functions for the processor, a bug in a conditional check when the function is called allowed for undefined to be passed into the function in certain circumstances causing the function to throw an error.
With the existing code:
return match ? normalizeCodeOwner(match.owners[0]) : undefined;
the type of the match object is:
export interface CodeOwnersEntry {
	pattern: string
	owners: Array<string>
}

the ternary operator is only checking if the match object exists and then calling normalizeCodeOwner() on the first item in match.owners however match can exist with an empty owners array which is what will cause the error that we're seeing. In order to fix this the condition in the ternary operator can be updated to add a check that will make sure that match.owner isn't empty.
The stack trace on the unprocessed entity object in our database also shows that the error is happening in normalizeCodeOwners:
TypeError: Cannot read properties of undefined (reading 'match')\n    at normalizeCodeOwner...
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[x] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

Thanks! :tada:


Regression in ACME cert acquisition reliability

Do you want to request a feature or report a bug?
Bug
What did you do?
I upgraded from v2.3.7 to v2.4.0 leaving everything else the same, and started experiencing a significant amount of intermittent failures to acquire certificates as part of the associated test suite setup in the context where we use Traefik solely as a TLS termination proxy that also acquires ACME certs.
What did you expect to see?
No increase in failures to acquire certs in a HTTP01 ACME based interaction.
What did you see instead?
Intermittent failures
Output of traefik version: (What version of Traefik are you using?)
Docker image v2.4.0.

I'm a maintainer of an open source project to deploy JupyterHub on k8s with a Helm chart (jupyterhub/zero-to-jupyterhub-k8s). As part of that, we use Traefik as a TLS termination proxy. We have CI integration tests against a temporary k8s cluster with a ACME sever meant for testing purposes called pebble developed by the Let's encrypt team.
Below is the configuration files we provide Traefik.
  # File number 1 - mounted to /etc/traefik/traefik.yaml
  traefik.yaml:
    accessLog:
      fields:
        headers:
          names:
            Authorization: redacted
            Cookie: redacted
            Set-Cookie: redacted
            X-Xsrftoken: redacted
      filters:
        statusCodes:
        - 500-599
    certificatesResolvers:
      default:
        acme:
          caServer: https://pebble/dir
          email<EMAIL_ADDRESS>          httpChallenge:
            entryPoint: http
          storage: /etc/acme/acme.json
    entryPoints:
      http:
        address: :8080
      https:
        address: :8443
        transport:
          respondingTimeouts:
            idleTimeout: 10m0s
    log:
      level: DEBUG
    providers:
      file:
        filename: /etc/traefik/dynamic.yaml

  # File number 2 - mounted to /etc/traefik/dynamic.yaml
  dynamic.yaml:
    http:
      middlewares:
        hsts:
          headers:
            stsIncludeSubdomains: false
            stsPreload: false
            stsSeconds: 15724800
        redirect:
          redirectScheme:
            permanent: true
            scheme: https
        scheme:
          headers:
            customRequestHeaders:
              X-Scheme: https
      routers:
        default:
          entrypoints:
          - https
          middlewares:
          - hsts
          - scheme
          rule: PathPrefix(`/`)
          service: default
          tls:
            certResolver: default
            domains:
            - main: local.jovyan.org
            options: default
        insecure:
          entrypoints:
          - http
          middlewares:
          - redirect
          rule: PathPrefix(`/`)
          service: default
      services:
        default:
          loadBalancer:
            servers:
            - url: http://proxy-http:8000/
    tls:
      options:
        default:
          cipherSuites:
          - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
          - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
          - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
          - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
          - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
          - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
          minVersion: VersionTLS12
          sniStrict: true

Logs from an intermittent failure
Traefik logs
time="2021-01-20T17:36:09Z" level=debug msg="Building ACME client..." providerName=default.acme
time="2021-01-20T17:36:09Z" level=debug msg="https://pebble/dir" providerName=default.acme
time="2021-01-20T17:36:09Z" level=info msg=Register... providerName=default.acme
time="2021-01-20T17:36:09Z" level=debug msg="legolog: [INFO] acme: Registering account for<EMAIL_ADDRESS>time="2021-01-20T17:36:09Z" level=debug msg="Using HTTP Challenge provider." providerName=default.acme
time="2021-01-20T17:36:09Z" level=debug msg="legolog: [INFO] [local.jovyan.org] acme: Obtaining bundled SAN certificate"
time="2021-01-20T17:36:09Z" level=debug msg="legolog: [INFO] [local.jovyan.org] AuthURL: https://pebble/authZ/TQFlBqUT-Da0iCDBQp-Ru-F8dvT2JFgjdSBZ19fHdCo"
time="2021-01-20T17:36:09Z" level=debug msg="legolog: [INFO] [local.jovyan.org] acme: Could not find solver for: tls-alpn-01"
time="2021-01-20T17:36:09Z" level=debug msg="legolog: [INFO] [local.jovyan.org] acme: use http-01 solver"
time="2021-01-20T17:36:09Z" level=debug msg="legolog: [INFO] [local.jovyan.org] acme: Trying to solve HTTP-01"
time="2021-01-20T17:36:09Z" level=debug msg="No default certificate, generating one"
time="2021-01-20T17:36:09Z" level=warning msg="No domain found in rule PathPrefix(`/`), the TLS options applied for this router will depend on the hostSNI of each request" entryPointName=https routerName=default@file
time="2021-01-20T17:36:09Z" level=debug msg="Looking for provided certificate(s) to validate [\"local.jovyan.org\"]..." providerName=default.acme
time="2021-01-20T17:36:09Z" level=debug msg="No ACME certificate generation required for domains [\"local.jovyan.org\"]." providerName=default.acme
time="2021-01-20T17:36:15Z" level=debug msg="legolog: [INFO] Deactivating auth: https://pebble/authZ/TQFlBqUT-Da0iCDBQp-Ru-F8dvT2JFgjdSBZ19fHdCo"
time="2021-01-20T17:36:15Z" level=error msg="Unable to obtain ACME certificate for domains \"local.jovyan.org\" : unable to generate a certificate for the domains [local.jovyan.org]: error: one or more domains had a problem:\n[local.jovyan.org] acme: error: 403 :: urn:ietf:params:acme:error:unauthorized :: Non-200 status code from HTTP: http://local.jovyan.org:80/.well-known/acme-challenge/vD3mbW1cdgc0O3j3rz4KbexOcDfqJi1Sy_xPvUvjpA8 returned 404, url: \n" providerName=default.acme

Pebble logs (ACME server)
Pebble 2021/01/20 17:35:07 ACME directory available at: https://:8443/dir
Pebble 2021/01/20 17:36:09 GET /dir -> calling handler()
Pebble 2021/01/20 17:36:09 HEAD /nonce-plz -> calling handler()
Pebble 2021/01/20 17:36:09 POST /sign-me-up -> calling handler()
Pebble 2021/01/20 17:36:09 There are now 1 accounts in memory
Pebble 2021/01/20 17:36:09 POST /order-plz -> calling handler()
Pebble 2021/01/20 17:36:09 There are now 1 authorizations in the db
Pebble 2021/01/20 17:36:09 Added order "yVhDh-EfnTVAiqAlxjNee8H3rwKO4X5ayasZnpwI0wY" to the db
Pebble 2021/01/20 17:36:09 There are now 1 orders in the db
Pebble 2021/01/20 17:36:09 POST /authZ/ -> calling handler()
Pebble 2021/01/20 17:36:09 POST /chalZ/ -> calling handler()
Pebble 2021/01/20 17:36:09 Pulled a task from the Tasks queue: &va.vaTask{Identifier:acme.Identifier{Type:"dns", Value:"local.jovyan.org"}, Challenge:(*core.Challenge)(0xc00008abe0), Account:(*core.Account)(0xc0000e8900)}
Pebble 2021/01/20 17:36:09 Starting 3 validations.
Pebble 2021/01/20 17:36:09 Attempting to validate w/ HTTP: http://local.jovyan.org:80/.well-known/acme-challenge/vD3mbW1cdgc0O3j3rz4KbexOcDfqJi1Sy_xPvUvjpA8
Pebble 2021/01/20 17:36:09 Attempting to validate w/ HTTP: http://local.jovyan.org:80/.well-known/acme-challenge/vD3mbW1cdgc0O3j3rz4KbexOcDfqJi1Sy_xPvUvjpA8
Pebble 2021/01/20 17:36:09 Attempting to validate w/ HTTP: http://local.jovyan.org:80/.well-known/acme-challenge/vD3mbW1cdgc0O3j3rz4KbexOcDfqJi1Sy_xPvUvjpA8
Pebble 2021/01/20 17:36:09 POST /authZ/ -> calling handler()
Pebble 2021/01/20 17:36:09 authz TQFlBqUT-Da0iCDBQp-Ru-F8dvT2JFgjdSBZ19fHdCo set INVALID by completed challenge I5Gj4EZMmCdTb-N8cLfyvXiGp5wWXadV9_88Cb6BX-g
Pebble 2021/01/20 17:36:09 order yVhDh-EfnTVAiqAlxjNee8H3rwKO4X5ayasZnpwI0wY set INVALID by invalid authz TQFlBqUT-Da0iCDBQp-Ru-F8dvT2JFgjdSBZ19fHdCo
Pebble 2021/01/20 17:36:15 POST /authZ/ -> calling handler()
Pebble 2021/01/20 17:36:15 POST /authZ/ -> calling handler()
Pebble 2021/01/20 17:36:15 POST /authZ/ -> calling handler()

Logs from a successful attempt
Traefik logs
time="2021-01-20T18:30:27Z" level=debug msg="Building ACME client..." providerName=default.acme
time="2021-01-20T18:30:27Z" level=debug msg="https://pebble/dir" providerName=default.acme
time="2021-01-20T18:30:27Z" level=info msg=Register... providerName=default.acme
time="2021-01-20T18:30:27Z" level=debug msg="legolog: [INFO] acme: Registering account for<EMAIL_ADDRESS>time="2021-01-20T18:30:27Z" level=debug msg="Using HTTP Challenge provider." providerName=default.acme
time="2021-01-20T18:30:27Z" level=debug msg="legolog: [INFO] [local.jovyan.org] acme: Obtaining bundled SAN certificate"
time="2021-01-20T18:30:27Z" level=debug msg="legolog: [INFO] [local.jovyan.org] AuthURL: https://pebble/authZ/3fzV9XeMgBq0gRyWDrN3R8yBbKL8U6UxVrjhCYnSar8"
time="2021-01-20T18:30:27Z" level=debug msg="legolog: [INFO] [local.jovyan.org] acme: Could not find solver for: tls-alpn-01"
time="2021-01-20T18:30:27Z" level=debug msg="legolog: [INFO] [local.jovyan.org] acme: use http-01 solver"
time="2021-01-20T18:30:27Z" level=debug msg="legolog: [INFO] [local.jovyan.org] acme: Trying to solve HTTP-01"
time="2021-01-20T18:30:27Z" level=debug msg="Retrieving the ACME challenge for token Mt7-7QH2LJxImRq-7cKWU6Fj40DX7HGekczlbSB0QdQ..." providerName=acme
time="2021-01-20T18:30:27Z" level=debug msg="Retrieving the ACME challenge for token Mt7-7QH2LJxImRq-7cKWU6Fj40DX7HGekczlbSB0QdQ..." providerName=acme
time="2021-01-20T18:30:27Z" level=debug msg="Retrieving the ACME challenge for token Mt7-7QH2LJxImRq-7cKWU6Fj40DX7HGekczlbSB0QdQ..." providerName=acme
time="2021-01-20T18:30:27Z" level=debug msg="legolog: [INFO] [local.jovyan.org] The server validated our request"
time="2021-01-20T18:30:27Z" level=debug msg="legolog: [INFO] [local.jovyan.org] acme: Validations succeeded; requesting certificates"
time="2021-01-20T18:30:29Z" level=debug msg="legolog: [INFO] Wait for certificate [timeout: 30s, interval: 500ms]"
time="2021-01-20T18:30:29Z" level=debug msg="legolog: [INFO] [local.jovyan.org] Server responded with a certificate."
time="2021-01-20T18:30:29Z" level=debug msg="Certificates obtained for domains [local.jovyan.org]" providerName=default.acme
time="2021-01-20T18:30:29Z" level=debug msg="Configuration received from provider default.acme: {\"http\":{},\"tls\":{}}" providerName=default.acme
time="2021-01-20T18:30:29Z" level=debug msg="Adding certificate for domain(s) local.jovyan.org"
time="2021-01-20T18:30:29Z" level=debug msg="No default certificate, generating one"

Pebble logs (ACME server)
Pebble 2021/01/20 18:29:05 ACME directory available at: https://:8443/dir
Pebble 2021/01/20 18:30:27 GET /dir -> calling handler()
Pebble 2021/01/20 18:30:27 HEAD /nonce-plz -> calling handler()
Pebble 2021/01/20 18:30:27 POST /sign-me-up -> calling handler()
Pebble 2021/01/20 18:30:27 There are now 1 accounts in memory
Pebble 2021/01/20 18:30:27 POST /order-plz -> calling handler()
Pebble 2021/01/20 18:30:27 There are now 1 authorizations in the db
Pebble 2021/01/20 18:30:27 Added order "c9WBWLePmrBYJeF0bmbwUMRx4Tk7IkAmLdnJHPkTC0s" to the db
Pebble 2021/01/20 18:30:27 There are now 1 orders in the db
Pebble 2021/01/20 18:30:27 POST /authZ/ -> calling handler()
Pebble 2021/01/20 18:30:27 POST /chalZ/ -> calling handler()
Pebble 2021/01/20 18:30:27 Pulled a task from the Tasks queue: &va.vaTask{Identifier:acme.Identifier{Type:"dns", Value:"local.jovyan.org"}, Challenge:(*core.Challenge)(0xc00033e280), Account:(*core.Account)(0xc00008cde0)}
Pebble 2021/01/20 18:30:27 Starting 3 validations.
Pebble 2021/01/20 18:30:27 Attempting to validate w/ HTTP: http://local.jovyan.org:80/.well-known/acme-challenge/Mt7-7QH2LJxImRq-7cKWU6Fj40DX7HGekczlbSB0QdQ
Pebble 2021/01/20 18:30:27 Attempting to validate w/ HTTP: http://local.jovyan.org:80/.well-known/acme-challenge/Mt7-7QH2LJxImRq-7cKWU6Fj40DX7HGekczlbSB0QdQ
Pebble 2021/01/20 18:30:27 Attempting to validate w/ HTTP: http://local.jovyan.org:80/.well-known/acme-challenge/Mt7-7QH2LJxImRq-7cKWU6Fj40DX7HGekczlbSB0QdQ
Pebble 2021/01/20 18:30:27 authz 3fzV9XeMgBq0gRyWDrN3R8yBbKL8U6UxVrjhCYnSar8 set VALID by completed challenge dKLTI2JV-g7bUwZO3g7Cpldzu8PwRemvD65Qmf2P1WM
Pebble 2021/01/20 18:30:27 POST /authZ/ -> calling handler()
Pebble 2021/01/20 18:30:29 POST /finalize-order/ -> calling handler()
Pebble 2021/01/20 18:30:29 Order c9WBWLePmrBYJeF0bmbwUMRx4Tk7IkAmLdnJHPkTC0s is fully authorized. Processing finalization
Pebble 2021/01/20 18:30:29 Issued certificate serial 1e1148e63484416f for order c9WBWLePmrBYJeF0bmbwUMRx4Tk7IkAmLdnJHPkTC0s
Pebble 2021/01/20 18:30:29 POST /my-order/ -> calling handler()
Pebble 2021/01/20 18:30:29 POST /certZ/ -> calling handler()

Hello @consideRatio and thanks for your interest in Traefik. We haven't been able to reproduce the issue in the conditions you described. However, after a review of the changes introduced in the v2.4 and especially in https://github.com/traefik/traefik/pull/7458 we were able to force the system to behave like it did on your CI.
There's a concurrency issue between the configurations coming from the file provider and the internal provider. Because of this, there is a tiny chance that we start the challenge before Traefik is able to reply to pebble.
As a workaround, you can increase your timeout in https://github.com/jupyterhub/zero-to-jupyterhub-k8s/blob/6a3df2df1c7dc7cb2af52f71133945699694bb99/ci/common#L37 so Traefik dynamic configuration gets a second chance to converge. Alternatively you can replace your HTTP challenge by the TLS challenge which doesn't suffer from the same issue. It's not an ideal solution but at least it would prevent your CI from failing too often until we figure out a solution.

Hello @consideRatio and thanks for your interest in Traefik. We haven't been able to reproduce the issue in the conditions you described. However, after a review of the changes introduced in the v2.4 and especially in https://github.com/traefik/traefik/pull/7458 we were able to force the system to behave like it did on your CI.
There's a concurrency issue between the configurations coming from the file provider and the internal provider. Because of this, there is a tiny chance that we start the challenge before Traefik is able to reply to pebble.
As a workaround, you can increase your timeout in https://github.com/jupyterhub/zero-to-jupyterhub-k8s/blob/6a3df2df1c7dc7cb2af52f71133945699694bb99/ci/common#L37 so Traefik dynamic configuration gets a second chance to converge. Alternatively you can replace your HTTP challenge by the TLS challenge which doesn't suffer from the same issue. It's not an ideal solution but at least it would prevent your CI from failing too often until we figure out a solution.

@jspdown thank you for your thorough investigation into this and work on traefik! :heart:

There's a concurrency issue between the configurations coming from the file provider and the internal provider. Because of this, there is a tiny chance that we start the challenge before Traefik is able to reply to pebble.

Ah!

As a workaround, you can increase your timeout in https://github.com/jupyterhub/zero-to-jupyterhub-k8s/blob/6a3df2df1c7dc7cb2af52f71133945699694bb99/ci/common#L37 so Traefik dynamic configuration gets a second chance to converge.

Oh is traefik retrying after a while? If so, is this time interval defined somewhere?
Searching quickly for it myself, I found https://github.com/traefik/traefik/issues/2670 which indicate there won't be retries unless Traefik is manually restarted.

@jspdown thank you for your thorough investigation into this and work on traefik! :heart:

There's a concurrency issue between the configurations coming from the file provider and the internal provider. Because of this, there is a tiny chance that we start the challenge before Traefik is able to reply to pebble.

Ah!

As a workaround, you can increase your timeout in https://github.com/jupyterhub/zero-to-jupyterhub-k8s/blob/6a3df2df1c7dc7cb2af52f71133945699694bb99/ci/common#L37 so Traefik dynamic configuration gets a second chance to converge.

Oh is traefik retrying after a while? If so, is this time interval defined somewhere?
Searching quickly for it myself, I found https://github.com/traefik/traefik/issues/2670 which indicate there won't be retries unless Traefik is manually restarted.

@consideRatio We can't really talk about a real retry. Challenges will be (re-)attempted when a new dynamic configuration will be received on the ACME provider.
In your case, here is what's happening:

The File provider starts and emit a (partial) dynamic configuration
The ACME provider starts and consumes this dynamic configuration. An acme certResolver is present in a router so we attempt to resolve the HTTP challenge. It fails because the Internal provider didn't have time to expose the HTTP challenge router.
The Internal provider starts and emit a dynamic configuration (containing this time the HTTP challenge router)
The ACME provider detects a change in the dynamic configuration and re-attempt the HTTP challenge, like if the fail never happened. In this case, the challenge is expected to succeed.

@consideRatio We can't really talk about a real retry. Challenges will be (re-)attempted when a new dynamic configuration will be received on the ACME provider.
In your case, here is what's happening:

The File provider starts and emit a (partial) dynamic configuration
The ACME provider starts and consumes this dynamic configuration. An acme certResolver is present in a router so we attempt to resolve the HTTP challenge. It fails because the Internal provider didn't have time to expose the HTTP challenge router.
The Internal provider starts and emit a dynamic configuration (containing this time the HTTP challenge router)
The ACME provider detects a change in the dynamic configuration and re-attempt the HTTP challenge, like if the fail never happened. In this case, the challenge is expected to succeed.

@jspdown what a beautiful breakdown of the events!

@jspdown what a beautiful breakdown of the events!

Closed by #7805.

Closed by #7805.


Using Blob or SafeResourceUrl images

Hello, i'm stuck with displaying images with SafeResourceURL or Blob images, i don't have a direct link to the image like  'https://example.com/image.png', because i need to get an image from the API using several headers in the request
Please leave an example or describe how can i show gallery with that images

Hi @default23, could you give me more info or maybe some example? Could you give me maybe example with simple html img?

Hi, i'm receive images with method like this
getFile(fileName, id): Observable<Blob> {

        return Observable.create((obs: Observer<Blob>) => {

            const token: string     = localStorage.getItem(JWT);
            const xhr: XMLHttpRequest = new XMLHttpRequest();
            xhr.responseType        = 'blob';

            xhr.onreadystatechange = function () {
                if (xhr.readyState === 4) {
                    xhr.status === 200 ? obs.next(xhr.response) : obs.error(null);
                    obs.complete();
                }
            };

            xhr.open('GET', `${PROXY_MANAGER}/files/${id}/${fileName}`, true);
            xhr.setRequestHeader('Authorization', 'Bearer ' + token);
            xhr.send(null);
        });
    }

And then, i'll create SafeResourceUrl for that blob, because Angular fail with security error, with this method
 private _createImageUrl(image: Blob): SafeResourceUrl {

        return this._sanitizer.bypassSecurityTrustResourceUrl(
            URL.createObjectURL(image)
        );
}

And finally i'm getting the all images of SafeResourceUrl type, it have a link inside like
blob://localhost.....

Hi @default23, in version 1.1.1 I have updated NgxGalleryImage and now is suporting SafeResourceUrl
https://github.com/lukasz-galka/ngx-gallery#ngxgalleryimage
I have also added example in demo https://lukasz-galka.github.io/ngx-gallery-demo/#images-as-saferesourceurl
Please let me know if it helps.

Ok @lukasz-galka , thanks a lot! 👍  I'll leave a feedback later

@lukasz-galka This warning appears again
WARNING: sanitizing unsafe style value url(SafeValue must use [property]=binding: blob:http://localhost:4200/f8ef3afa-1204-4e91-b29f-00a003db92c2 (see http://g.co/ng/security#xss)) (see http://g.co/ng/security#xss).

Seems to this warning occurs from this line of your code
[style.background-image]="'url(' + image + ')'"

@lukasz-galka
This warning appears again
WARNING: sanitizing unsafe style value url(SafeValue must use [property]=binding: blob:http://localhost:4200/6afc3ae1-ab7a-481e-b4f7-16481b0dc86c (see http://g.co/ng/security#xss)) (see http://g.co/ng/security#xss).

For the testing purposes i load files via this business logic
loadImageFiles() {

        const id = this.driver.id;
        this.driver.driverFiles
            .forEach(file => this._driverService.getDriverFile(id, file.name)
                .subscribe((res: Blob) =>

                     this.galleryImages.push({
                        small : this._fileHelper.createImageUrl(res),
                        medium: this._fileHelper.createImageUrl(res),
                        big   : this._fileHelper.createImageUrl(res)
                    });
                }));
    }

// fileHelper.ts

createImageUrl(image: Blob): SafeResourceUrl {
        return this._sanitizer.bypassSecurityTrustResourceUrl(URL.createObjectURL(image));
}

I think this images are not render because you need to use the bypassSecurityTrustStyle  method (DomSanitizer) before you use an image in the HTML
ngx-gallery-image.component.html
 [style.background-image]="'url(' + image + ')'"

Issue like that on stackoverflow

Yes, but there is a problem because bypassSecurityTrustStyle requires string and you are using SafeResourceUrl. I will read about it.

I know that it is probably to late, but I fixed this in version 1.1.7

@lukasz-galka when i'll back to my project i will check this! Thank you


[Bug]希望作者解决下CUSTOM_MODELS docker环境变量不生效的问题！！！

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Deployment

[ ] Docker
[ ] Vercel
[ ] Server

Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional Logs
Add any logs about the problem here.

+1，使用了 CUSTOM_MODELS=-all,+gpt-3.5-turbo,+gpt-4 还是列出所有的模型。

+1 我也是 CUSTOM_MODELS="-all,+gpt-3.5-turbo,+gpt-4-1106-preview=gpt-4-turbo"

it's because haven't released yet the bug is already fixed
related to this pr:
fix(CUSTOM_MODELS):#3349 Dependency chatStore otherwise the session a… #3356
in vercel/web deployment already fixed


Autoplay resumes when user changes tab

Big fan of Embla here 👋 Thanks so much for your fantastic work on this framework thus far, I love working with it!
Bug is related to
embla-carousel-autoplay
Embla Carousel version
7.1.0
Describe the bug
On the click of a button I am stopping autoplay with emblaApi.plugins().autoplay.stop(). Autoplay stops but only while the user remains within the current tab. When swapping tab then returning to the one with the previously stopped carousel, autoplay resumes.
CodeSandbox
https://codesandbox.io/s/tyh5r4
Steps to reproduce

Change slide by clicking any of the buttons, ie. next/prev or dots
Open a new browser tab or switch to one already open
Return to tab with carousel, autoplay will restart

Expected behaviour
Autoplay to remain stopped when the user changes then returns to the tab.
Additional context
I don't believe this to be the intended functionality as when changing slide by clicking/dragging autoplay stops as expected and does not restart after changing tab.

Hi @matthewdixon,
I will try to reproduce this when I get the chance. Thank you for a complete bug report with a CodeSandbox. This is as you already mentioned, not expected behavior.
Version 8.0.0 is just around the corner so I won’t be doing any bug fixes for v7 anymore. The bug fix will be released with v8. I hope you don’t have any objections migrating to v8.
I’ll let you know when I’ve investigated this further.
Best,
David

Hi @davidjerleke, apologies for the severely delayed response!! Great to hear you've rolled out a fix for v8, I've just had a play and can confirm this now works as expected 🎉
I had a look at the latest RC when you first replied but noticed the carousel wasn't as responsive so decided to come back to it when v8 had been released. Now it has and I've tested it, I still find it's not as responsive as v7 with what appears to be a slight lag between click/drag interactions and carousel movement. I love how snappy it was previously so this is a shame 😕 Just wondering if this was an intentional change?

I still find it's not as responsive as v7 with what appears to be a slight lag between click/drag interactions and carousel movement. I love how snappy it was previously so this is a shame 😕 Just wondering if this was an intentional change?

Hi @matthewdixon,
I don't understand what you mean? I don't experience any lag at all. Embla v8 input is always responsive for me. For me, clicks happen instantly and drag interactions start instantly on pointer down and as soon as I start dragging the carousel reacts to it, even if it was in motion before the pointer down. But maybe I'm misunderstanding what you mean.

Hi @davidjerleke, apologies for another outrageously late reply 😅
No you've understood correctly: it was only minimal but I definitely experienced a delay between interaction and response (I remember it being particularly noticeable on drag). I should have a chance to come back to this next week so I'll see if I can demo it to you somehow, might have to try capturing my screen if you're not seeing it your end as that suggests hardware might be a factor.
I'll report back!


Link to "Technical Deep Dive" post

I was looking for this post, and found this repo. It would be helpful to link out to your detailed blog post on the issue!

Oh, sure, that's a good idea! I'll add an link to the README.md.

It looks like this was fixed in 9f7a158367d7af6c23d7b3ebac35a3b5bef00a1b.  The link is there now, and I'm guessing this issue can be closed.


fix(meta): fix internal_table persisted

I hereby agree to the terms of the Singularity Data, Inc. Contributor License Agreement.
What's changed and what's your intention?
as title
Please explain IN DETAIL what the changes are in this PR and why they are needed:

use hashmap to unify memory store for internal_table in stream_manager
fix empty_internal_table bug cause by filter logic

Checklist

[x] I have written necessary rustdoc comments
[x] I have added necessary unit tests and integration tests

Refer to a related PR or issue link (optional)

https://github.com/singularity-data/risingwave/issues/3648

With this PR
TestCase
create table t1(v1 int);
create table t2(v1 int);
create materialized view mv1 as select t1.v1 as v1 from t1, t2 where t1.v1 = t2.v1;

Result
before
./risedev ctl table list
#1002: t1
#1004: t2
#1005: mv1

after
#1002: t1
#1004: t2
#1005: mv1
#1006: __INTERNAL_mv1_1006
#1007: __INTERNAL_mv1_1007


Error after generating face recognition windows executable file

face_recognition version:Latest
Python version:3.5.2
Operating System:Ubuntu 16.04

First of all thanks to ageitgey for wonderful  Project
Hello Everyone,
I have successfully installed everything mentioned in ReadMe section and code giving accurate results, but I need that face recognition should be in windows executable file(Just by clicking exe file, user should get results)
I have tried WINE and PyInstaller to generate windows executable file.
so for WINE and PyInstaller installation I have followed this website.
"https://www.andreafortuna.org/technology/how-to-cross-compile-a-python-script-into-a-windows-executable-on-linux/"
Successfully It gives me a windows executable file.
Here Comes the issues :
While running windows executable file in windows 10
I got the following error
G:\file>all_modfied.exe
Traceback (most recent call last):
File "all_modfied.py", line 2, in
ImportError: No module named face_recognition
[14836] Failed to execute script all_modified
Should I Install the face_recognition model in windows 10 again?

Use pyinstaller -c PyFileName.py (with console) or pyinstaller -w PyFileName.py (without console) instead of pyinstaller --onefile PyFileName.py. Then add folder containing face_recognition models .dat files. Example, "face_recognition_models/models/shape_predictor_68_face_landmarks.dat" in the same folder of the executable file.


Jampack rotates images 180 degrees

Hiya,
In v0.23.4, I'm running into some weird behaviour where one of my images is being rotated 180 degrees during processing.
I've included the image in question as a minimum example in the example repository below - as far as I can tell, this is the only image that this has happened to in my site.
codemicro/jampack-image-rotation-bug

Thanks for the example repo 🙏
I suspect it's coming from sharp, I will try to fix it soon.
Is it ok if I add the image on jampack tests?

Seems to be easy enough to fix: https://stackoverflow.com/a/58828508

Is it ok if I add the image on jampack tests?

Go ahead!

Fixed, will release soon
Visible here: https://jampack.divriots.com/features/optimize-images/

Version 0.24.0 released ⚠ you will need to trash your folder .jampack because your rotated image may be there. I didn't want to bump the cache version just for this.
Thanks for reporting 🙏

Super, thank you for fixing and thanks for the pointer about deleting the cache :)


Waiting List for Guests

Accommodations are still rare and to improve the user experience from not finding anything new we will add a guest waiting list.
A guest can register on the platform and enable the waiting list feature.
Then we will send out an email with new accommodations once a day to those users.
In the future we could improve this feature by adding filter conditions so that we show only relevant accommodations to that guest.

Specifications:
On https://hostrefugees.eu:
Two ideas:

Right below "Available Places" / "Welcome to Germany" (Button text: Put yourself on our waiting list)
Below "See more Places" (Button text: or join our waiting list now)
Both

On https://hostrefugees.eu/place:
Below Available Places we show a button "Didn't find a suitable accommodation?"
After clicking the button the person will be directed to a form with the header: Waiting List
Below an information text: Hosts can join at any time. We inform you when there are new available accommodations.
The form includes following information:
Name:
Email:
Button: Send
Ideas for further expansion:

setting parameters like city
only informing if available beds and guests match
only informing when pets welcome match

Added the waiting list on both pages. Done for now.


install jenkins 2.x

Hi,
What should i set in order to install Jenkins 2.x using this module ?
Thanks

jenkins 2.x will be installed by default.  You can specify the exact package version via the verison param. https://github.com/jenkinsci/puppet-jenkins/blob/master/manifests/init.pp#L177

Does that mean that even though the documentation mentions that version 2 is not supported, it is still able to install it?

I just tested it and it installs fine.  I don't know about the rest of the module's functionalities, though.

I just tested a config change
puppet class { 'jenkins':   executors => 0, }  and it didn't work.
I get this error: ERROR: This command is requesting the deprecated -remoting mode. See https://jenkins.io/redirect/cli-command-requires-channel

Please see https://github.com/jenkinsci/puppet-jenkins/issues/749 ... this adds support for non remoting cli

:+1:


Cleanup garbage collection test for container type

What this PR does / why we need it:
Organized so that garbage collection tests for container types can be
managed in a location that fits the scope of responsibility.
Which issue(s) this PR fixes:

Address #118
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

Additional documentation:

Checklist:

[x] Added relevant tests or not required
[x] Didn't break anything

Could you fix conflicting files?


Update the docs to reflect the new changes

More specifically, we no longer has to limit one and only one prefix to be inputted.

also need to update the UML diagrams and corresponding explanations to match the final implementation of the link/unlink features following the fixes for code duplication


Add dynamic lookup of storm supervisors

Look up the storm workers from the nimbus server unless hostnames are explicitly defined in config.json, or the network lookup is explicitly prohibited (also in config.json). This will allow more dynamic expansion of storm clusters without requiring hostname list updates.
Also added documentation about this lookup to FAQ

Coverage decreased (-0.3%) to 47.527% when pulling 70e6de8191bd6233e6eafedd9fcde66ef3644aab on codywilbourn:fetch-workers into b2a82197160c9b899e60980d40e650e659799df7 on Parsely:master.

Coverage decreased (-0.3%) to 47.527% when pulling 6449c54f3367f11969e5ace25d68663166074f7d on codywilbourn:fetch-workers into b2a82197160c9b899e60980d40e650e659799df7 on Parsely:master.

Coverage decreased (-0.3%) to 47.527% when pulling 4e5ceffd5ec1b1bfc4ec61f9959da26c5904b7a8 on codywilbourn:fetch-workers into b2a82197160c9b899e60980d40e650e659799df7 on Parsely:master.

Coverage decreased (-0.3%) to 47.527% when pulling 4e5ceffd5ec1b1bfc4ec61f9959da26c5904b7a8 on codywilbourn:fetch-workers into b2a82197160c9b899e60980d40e650e659799df7 on Parsely:master.


Speedups for jitted reductions

I was playing around with code like this:
import numpy as np
import numba as nb
import bottleneck as bn
import numbagg as nbg

@nb.njit
def nanmin_demo(x):
    if x.size == 0:
        raise ValueError("nanmin(): empty array")
    ret = np.nan
    for i, x_ in enumerate(x.flat):
        if not np.isnan(x_):
            ret = x_
            break
    if np.isnan(ret):
        return ret

    # This should be x.flat[i:], so that the array is
    # not iterated again unnecessarily. Better ideas?
    for x_ in x.flat:
        if x_ < ret:
            ret = x_
    return ret

@nb.njit
def nanmin_numba(a):
    if a.size == 0:
        raise ValueError("nanmin(): empty array")
    for view in np.nditer(a):
        minval = view.item()
        break
    for view in np.nditer(a):
        v = view.item()
        if not minval < v and not np.isnan(v):
            minval = v
    return minval

@nb.njit
def nanmin_numbagg_1dim(a):
    amin = np.infty
    all_missing = 1
    for ai in a.flat:
        if ai <= amin:
            amin = ai
            all_missing = 0
    if all_missing:
        amin = np.nan
    return amin

impls = [nanmin_demo, nanmin_numba, nanmin_numbagg_1dim, nbg.nanmin, bn.nanmin]

for i in range(4):
    x = np.random.random(100000)
    x[x>0.3334*i] = np.nan
    res = np.array([impl(x) for impl in impls])
    assert np.all(res[0] == res) or np.all(np.isnan(res))
    x.reshape((-1, 100))
    res = np.array([impl(x) for impl in impls])
    assert np.all(res[0] == res) or np.all(np.isnan(res))
    for impl in impls:
        %timeit impl(x)
    print '--------'
print nb.__version__

nanmin_impl is the currently imlemented overload. It's compared with the inbuilt numpy version, bottleneck and another experimental implementation. The timing looks like this for me:
10000 loops, best of 3: 63.5 µs per loop
10000 loops, best of 3: 154 µs per loop
10000 loops, best of 3: 62.8 µs per loop
10000 loops, best of 3: 151 µs per loop
10000 loops, best of 3: 68.4 µs per loop
--------
10000 loops, best of 3: 50.9 µs per loop
1000 loops, best of 3: 405 µs per loop
10000 loops, best of 3: 57.3 µs per loop
10000 loops, best of 3: 151 µs per loop
10000 loops, best of 3: 68.4 µs per loop
--------
10000 loops, best of 3: 51.1 µs per loop
1000 loops, best of 3: 409 µs per loop
10000 loops, best of 3: 57.4 µs per loop
10000 loops, best of 3: 151 µs per loop
10000 loops, best of 3: 68.5 µs per loop
--------
10000 loops, best of 3: 51.6 µs per loop
10000 loops, best of 3: 126 µs per loop
10000 loops, best of 3: 57.5 µs per loop
10000 loops, best of 3: 151 µs per loop
10000 loops, best of 3: 68.5 µs per loop
--------
0.28.1

10000 loops, best of 3: 59.4 µs per loop
10000 loops, best of 3: 153 µs per loop
10000 loops, best of 3: 192 µs per loop
1000 loops, best of 3: 207 µs per loop
10000 loops, best of 3: 68.5 µs per loop
--------
10000 loops, best of 3: 102 µs per loop
1000 loops, best of 3: 406 µs per loop
10000 loops, best of 3: 192 µs per loop
1000 loops, best of 3: 207 µs per loop
10000 loops, best of 3: 68.4 µs per loop
--------
10000 loops, best of 3: 102 µs per loop
1000 loops, best of 3: 408 µs per loop
10000 loops, best of 3: 192 µs per loop
1000 loops, best of 3: 208 µs per loop
10000 loops, best of 3: 68.4 µs per loop
--------
10000 loops, best of 3: 102 µs per loop
10000 loops, best of 3: 126 µs per loop
10000 loops, best of 3: 192 µs per loop
1000 loops, best of 3: 206 µs per loop
10000 loops, best of 3: 68.6 µs per loop
--------
0.29.0

As you can see, for some unlucky cases, the current implementation is 8x slower than nanmin_demo. About half of this speedup comes from using x.flat instead of nd.iter. I'm actually not sure, if there are some good reasons to use nd.iter instead of x.flat? If so, I'd be curious to learn, cause it would also affect a bunch of code that I wrote for numpy_groupies.
The other major speedup seems to be some unlucky branching being done when if is fed with more than a simple nan-check or comparison. The jitted code seems to suffer much more from adding compound if-statements than ordinary C code. Any ideas why that is?
If it should actually be valid, to use the flatiter for these cases, I'd go ahead and put some more optimizations together for a pull request.

You might want to have a look at https://github.com/shoyer/numbagg

Well, nanmin_impl() doesn't use the same algorithm as nanmin(), so you may be comparing apples to oranges here.

@gdementen Thanks for the note, I added it to the benchmark. It also performs suboptimal on nanmin.
One more strange thing: This benchmark was taken with 0.28.1. When I upgraded to 0.29.0, the timings got up to around 100µs for nanmin and to about 200µs for numbagg.nanmin. Any ideas on that?
@pitrou I just make sure to get a not-nan value beforehand, so I can rely on evaluating to False in case I find one within the actual loop, and don't have to check for nan over and over again explicitly. In the end it does quite the same I guess.

I guess we maybe should split this up into the speed regression, and further improvements on top of that.

In the end it does quite the same I guess.

My point is that you cannot compare nditer() and flat performance if you don't use them in the exact same way. Ideally nditer() should always be as fast as flat (and faster for non-C arrays, since it is allowed to walk the array in non-logical order).

My main question is, is there any important reason not to simply iterate over the plain array? All functions currently just treat the input array as 1d, so it wouldn't matter at all, in which order the array is iterated. Using nditer imho just adds some overhead that case. I extended the benchmarking a bit in this gist Here are the current results:
0.28.1
                  numpy     numba     new
---------------------------------------------
nanmin    nans    0.04066   0.05641   0.03758
nanmin    nonans  0.04073   0.05690   0.03318
---------------------------------------------
nanmax    nans    0.03982   0.06563   0.03342
nanmax    nonans  0.03981   0.05731   0.03394
---------------------------------------------
nansum    nans    0.05121   0.05705   0.03537
nansum    nonans  0.04213   0.05773   0.03382
---------------------------------------------
nanmean   nans    0.04621   0.05895   0.03313
nanmean   nonans  0.05358   0.06331   0.06475
---------------------------------------------
nanvar    nans    0.06668   0.09916   0.04327
nanvar    nonans  0.07438   0.09794   0.05085
---------------------------------------------
nanstd    nans    0.04514   0.05655   0.03473
nanstd    nonans  0.04121   0.05822   0.03327
---------------------------------------------
nanmedian nans    0.04447   0.05676
nanmedian nonans  0.03985   0.05692
---------------------------------------------
all       int     0.05230   0.05760   0.03325
all       float   0.04987   0.06085   0.03349
---------------------------------------------
any       int     0.05157   0.05700   0.03399
any       float   0.04824   0.05727   0.03319

As the table shows, for nearly all cases there are mentionable speedups possible.

As these functions are real bread an butter number crunching tools, I guess it really make sense to have them as fast as possible for every user. I'd volunteer to do the legwork for the speedups, though it would be nice to have a definitive answer about the use of nditer first.

I never even looked at the implementation of these functions in numba, but nditer might be used to reuse the same code for the case where the axis argument is provided. Just a thought...

@ml31415, please try your benchmark with Fortran-ordered arrays.

@pitrou I understand that the flatiter has to put the fortran arrays upside down in that case and that it will cost performance. Though also nditer seems to bring some overhead, which I'd like to avoid for simple 1d cases. What I'd be looking for is a way to read the array as is from memory, whichever order comes in. a+b == b+a in the end. For 1d-arrays I can simply iter for x in y, without .flat, ravel() or .nditer(), but for nd-arrays the trouble starts. One option would be to use different functions for 1d/nd, but I had hoped for better suggestions to force the array to be seen as 1d and iterated as such.

What I'd be looking for is a way to read the array as is from memory

Well, that's exactly what nditer() does :-)
If there is a regression in nditer() performance it should be investigated (perhaps @stuartarchibald  wants to take a look).

Hmm, for some loops nditer() actually comes quite close to the plain iter speed, though for some others it clearly falls behind. I suppose it may be compiler optimizations, that sometimes work, sometimes not. What I could have imagined is smth like that:
def get_flatiter(a):
    if len(a.shape) > 1:
        @register_jittable
        def flatiter(arr):
            return np.nditer(arr)
    else:
        @register_jittable
        def flatiter(arr):
            return arr

@overload(np.nansum)
def np_nansum(a):
    if not isinstance(a, types.Array):
        return
    if isinstance(a.dtype, types.Integer):
        retty = types.intp
    else:
        retty = a.dtype
    zero = retty(0)
    isnan = get_isnan(a.dtype)
    flatiter = get_flatiter(a)

    def nansum_impl(arr):
        c = zero
        for v in flatiter(arr):
            if not isnan(v):
                c += v
        return c

    return nansum_impl

I'll take a look when I next have some spare cycles. Something appears to have caused a performance regression in https://github.com/numba/numba/issues/2196, and I guess potentially this too. Looking at the optimised asm dump from #2196 , 1) there's a lot more instructions present 2) the selected instructions seem generally wider, but at the same time the LLVM backend wasn't updated as far as I'm aware. As discussed with @pitrou offline, I'll do a bisect when I get a chance.

Finally got around to bisecting this.
d6d14642f9642ef4337e5034ff0b9ffe29fb53ba is the first bad commit

which is d6d1464 from PR #2050


Sema: Fix effects checking of 'for await' with a concrete conformance

AsyncSequence is only polymorphic over 'throws' effects, not 'async',
because it is @rethrows and not @reasync. So the logic here was wrong,
and it would incorrectly conclude that a 'for await' with a concrete
conformance did not require the outer function to be 'async'.
Fixes rdar://problem/75436909.

@swift-ci Please smoke test

@swift-ci Please smoke test macOS

@swift-ci Please smoke test macOS


when I go to change start day this always show previous date which I assigned

calenderView.configureCalender(
startDate: ,
endDate: ,
selectedDate:
)
please check these:
1. startDate: ,
2. endDate: ,
3. selectedDate:


Feature request: generate in sub-namespaces for clients and models

In Search service, we have two different namespaces: azure.search.documents & azure.search.documents.indexes.
Here are what we want to achieve:

We want to create two clients. One under azure.search.documents and the other under azure.search.documents.indexes.
We want to split the models into two namespaces. (What it matters here are the docs.)

Thanks.

@xiangyan99 next time you could directly open up issue in autorest.python to get timely support.

@xiangyan99 this is something we're actively looking to do across all sdks: by default namespaces correspond to namespaces in our generated packages


it doen't work with new version (7.7) of leaflet

I modify the JSFiddle to use the latest version of Leaflet and it stopped working

I'm using it with 0.7.7 in my project, so I think this might be a problem in your setup.


Update executor to populate fields added in 1356

Once we have added proto messages fields necessary to support preemption in
https://github.com/G-Research/armada/issues/1356
we need to update the executor to update these fields.

Hey team! Please add your planning poker estimate with ZenHub @dejanzele @jayofdoom @kannon92 @richscott


OTA update error

Hello again,
Since updating to the new version, I am having issues running the shelly-ota updater. See below.
(venv) root@shelly-ota:~/shelly-ota/venv/bin# shelly-ota -t <IP_ADDRESS> -v
10/02/2022 11:10:53 shelly-ota DEBUG OTA server will listen on <IP_ADDRESS>
10/02/2022 11:10:53 shelly DEBUG Fetching latest firmware information via Shelly API
10/02/2022 11:10:53 urllib3.connectionpool DEBUG Starting new HTTPS connection (1): api.shelly.cloud:443
10/02/2022 11:10:54 urllib3.connectionpool DEBUG https://api.shelly.cloud:443 "GET /files/firmware HTTP/1.1" 200 None
10/02/2022 11:10:54 updateserver DEBUG Starting updateserver on <IP_ADDRESS>:8080
10/02/2022 11:10:54 shelly DEBUG <IP_ADDRESS>: Discovering device
10/02/2022 11:10:54 urllib3.connectionpool DEBUG Starting new HTTP connection (1): <IP_ADDRESS>:80
10/02/2022 11:10:54 urllib3.connectionpool DEBUG http://<IP_ADDRESS>:80 "GET /shelly HTTP/1.1" 200 137
10/02/2022 11:10:54 shelly-ota INFO <IP_ADDRESS>: Device type is SHSW-1
10/02/2022 11:10:54 shelly-ota INFO <IP_ADDRESS>: Current firmware version is 20220209-092750/v1.11.8-g8c7bb8d
10/02/2022 11:10:54 shelly-ota DEBUG <IP_ADDRESS>: Latest version for this model is 20220809-123240/v1.12-g99f7e0b at http://firmware.shelly.cloud/gen1/SHSW-1.zip
10/02/2022 11:10:54 updateserver DEBUG Preloading firmware <ShellyFirmware(SHSW-1, 20220809-123240/v1.12-g99f7e0b, http://firmware.shelly.cloud/gen1/SHSW-1.zip)>
10/02/2022 11:10:54 urllib3.connectionpool DEBUG Starting new HTTP connection (1): firmware.shelly.cloud:80
10/02/2022 11:10:54 urllib3.connectionpool DEBUG http://firmware.shelly.cloud:80 "GET /gen1/SHSW-1.zip HTTP/1.1" 200 880100
10/02/2022 11:10:55 updateserver DEBUG Firmware file preloaded, 880100 bytes
10/02/2022 11:10:55 shelly INFO <IP_ADDRESS>: Will instruct Shelly to download firmware from: http://<IP_ADDRESS>:8080/SHSW-1.zip
10/02/2022 11:10:55 shelly INFO <IP_ADDRESS>: Shelly device API call: http://<IP_ADDRESS>/ota?url=http://<IP_ADDRESS>:8080/SHSW-1.zip
10/02/2022 11:10:55 urllib3.connectionpool DEBUG Starting new HTTP connection (1): <IP_ADDRESS>:80
10/02/2022 11:10:55 updateserver DEBUG Socket server initialized
10/02/2022 11:10:55 urllib3.connectionpool DEBUG http://<IP_ADDRESS>:80 "GET /ota?url=http://<IP_ADDRESS>:8080/SHSW-1.zip HTTP/1.1" 401 None
10/02/2022 11:10:55 shelly ERROR OTA update error
10/02/2022 11:11:00 shelly-ota WARNING <IP_ADDRESS>: No successful download within timeout period

A few notes:

previous version of shelly-ota was working
ufw is disabled
I added the shelly-ota host to the home assistant firewall rule, so the IoT VLAN can access it. I didn't need to do this last time.

Thanks for your time

Hi,
I think the issue is that the Shelly device responded with a 401 "Unauthorized" error.
10/02/2022 11:10:55 urllib3.connectionpool DEBUG http://<IP_ADDRESS>:80 "GET /ota?url=http://<IP_ADDRESS>:8080/SHSW-1.zip HTTP/1.1" 401 None

Have you recently added user/password auth to that specific Shelly? The tool does not (yet) support that, might be worth checking and temporarily disabling the authentication and retrying. If that is the case, let me know, it would be probably relatively easy to add support for this scenario.
Thanks!

Yeah, they have basic user auth enabled to access the shelly webUI.
Does shelly-ota not need to login to check the device type and firmware number though? Actually I see it uses the API for firmware version, but I see it is connecting to get the device type.
10/02/2022 11:10:54 urllib3.connectionpool DEBUG http://<IP_ADDRESS>:80 "GET /shelly HTTP/1.1" 200 137
10/02/2022 11:10:54 shelly-ota INFO <IP_ADDRESS>: Device type is SHSW-1

Thanks for the quick response!

I think the basic info API endpoint is not password-protected, but the UI and the API routes that actually change the device are.
If you could confirm that without user auth enabled everything works, that would be useful. In the meantime I'll look at adding basic auth.

Ok so I diasbled login authentication and re-ran the script and got this output:
(venv) root@shelly-ota:~/shelly-ota# shelly-ota -t <IP_ADDRESS> -v -p 80
10/06/2022 22:21:47 shelly-ota DEBUG OTA server will listen on <IP_ADDRESS>
10/06/2022 22:21:47 shelly DEBUG Fetching latest firmware information via Shelly API
10/06/2022 22:21:47 urllib3.connectionpool DEBUG Starting new HTTPS connection (1): api.shelly.cloud:443
10/06/2022 22:21:49 urllib3.connectionpool DEBUG https://api.shelly.cloud:443 "GET /files/firmware HTTP/1.1" 200 None
10/06/2022 22:21:49 updateserver DEBUG Starting updateserver on <IP_ADDRESS>:80
10/06/2022 22:21:49 shelly DEBUG <IP_ADDRESS>: Discovering device
10/06/2022 22:21:49 urllib3.connectionpool DEBUG Starting new HTTP connection (1): <IP_ADDRESS>:80
10/06/2022 22:21:49 urllib3.connectionpool DEBUG http://<IP_ADDRESS>:80 "GET /shelly HTTP/1.1" 200 138
10/06/2022 22:21:49 shelly-ota INFO <IP_ADDRESS>: Device type is SHSW-1
10/06/2022 22:21:49 shelly-ota INFO <IP_ADDRESS>: Current firmware version is 20220209-092750/v1.11.8-g8c7bb8d
10/06/2022 22:21:49 shelly-ota DEBUG <IP_ADDRESS>: Latest version for this model is 20220809-123240/v1.12-g99f7e0b at http://firmware.shelly.cloud/gen1/SHSW-1.zip
10/06/2022 22:21:49 updateserver DEBUG Preloading firmware <ShellyFirmware(SHSW-1, 20220809-123240/v1.12-g99f7e0b, http://firmware.shelly.cloud/gen1/SHSW-1.zip)>
10/06/2022 22:21:49 urllib3.connectionpool DEBUG Starting new HTTP connection (1): firmware.shelly.cloud:80
10/06/2022 22:21:49 urllib3.connectionpool DEBUG http://firmware.shelly.cloud:80 "GET /gen1/SHSW-1.zip HTTP/1.1" 200 880100
10/06/2022 22:21:49 updateserver DEBUG Firmware file preloaded, 880100 bytes
10/06/2022 22:21:49 shelly INFO <IP_ADDRESS>: Will instruct Shelly to download firmware from: http://<IP_ADDRESS>:80/SHSW-1.zip
10/06/2022 22:21:49 shelly INFO <IP_ADDRESS>: Shelly device API call: http://<IP_ADDRESS>/ota?url=http://<IP_ADDRESS>:80/SHSW-1.zip
10/06/2022 22:21:49 urllib3.connectionpool DEBUG Starting new HTTP connection (1): <IP_ADDRESS>:80
10/06/2022 22:21:49 updateserver DEBUG Socket server initialized
10/06/2022 22:21:49 urllib3.connectionpool DEBUG http://<IP_ADDRESS>:80 "GET /ota?url=http://<IP_ADDRESS>:80/SHSW-1.zip HTTP/1.1" 200 106
10/06/2022 22:21:49 updateserver INFO <IP_ADDRESS>: Incoming HTTP request for /SHSW-1.zip
10/06/2022 22:21:49 updateserver DEBUG <IP_ADDRESS>: Serving firmware
<IP_ADDRESS> - - [06/Oct/2022 22:21:49] "GET /SHSW-1.zip HTTP/1.1" 200 -
10/06/2022 22:22:00 shelly-ota WARNING <IP_ADDRESS>: File was downloaded

I checked the Shelly webUI, and it appears to be successful!

Yep, that looks good. Thanks for confirming, I'll look at adding basic auth support.

Yep, that looks good. Thanks for confirming, I'll look at adding basic auth support.

That would be awesome, but no pressure, take your time!
I will open a new issue with a feature request.


Export curve25519-dalek u32_backend feature

Motivation
The motivation for this feature export is two fold:
1. Using the curve25519-dalek u32_backend feature yields ~10x perf improvement for 32 bit architectures.
2. The u32_backend and u64_backend features of curve25519-dalek are not additive but mutually exclusive. As a result, projects with dependencies on dalek crates (e.g this crypto crate) must expose these feature flags so crates which depend on them (e.g JellyfishMerkle) can in turn pick which backend to use. This is trivial for u64_backend which is enabled by default, but requires manual work (e.g this diff) for u32_backend.
Have you read the [Contributing Guidelines on pull requests]
Yes
Test Plan
Tests with all features pass:
cargo test
cargo test --no-default-features --features vanilla
cargo test --no-default-features --features vanilla-u32
Related PRs

Could you tell me more on the scope and intended usage of this? I'm asking because fiat-rust  generates 32-bits arithmetic and we can definitely thread it through our curve25519, ed25519 and x25519 forks.
this needs to adjust the CI run so that it keeps testing the crypto crate's with every combination of non-default features.

I've updated the description to include more details on motivation.
While using fiat-rust may yield the performance gains we are looking for, the fundamental motivation for this change is that the curve25519-dalek u32_backend and u64_backend features are mutually exclusive, and so this crypto crate fails to build when we try to turn on u32_backend downstream.

Thanks for the contribution. You need to sign the CLA before this can land: https://github.com/libra/libra/pull/6343#issuecomment-702617273

Thanks for the contribution. You need to sign the CLA before this can land: https://github.com/libra/libra/pull/6343#issuecomment-702617273

Hey @François Garillot. I hope you had a nice weekend! I reached out to davidiw who recommended I sign the individual contirbutor CLA, which I have done.
However I'm still unable to merge this pull request with this error You’re not authorized to merge this pull request. How should I proceed?

/land

@davidiw :exclamation: This PR is still missing approvals, unable to queue for landing

/land
layers and layers of approvals


Unable build pass on iOS - 'flutter_facebook_login/FacebookLoginPlugin.h' file not found

/Users/dereklai/LikeOrDont/ios/Pods/FBSDKCoreKit/FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKCoreKit+Internal.h:24:9: fatal error: 'BridgeAPI/FBSDKBridgeAPIProtocol.h' file not found
#import "BridgeAPI/FBSDKBridgeAPIProtocol.h"

Same problem.  Followed the Facebook instructions, and even registered  an installation signal in dashboard...but once I add the flutter_facebook_login package, it crashes with this error:  'flutter_facebook_login/FacebookLoginPlugin.h' file not found

I think maybe you can run pod install to fix this problem


Add options to spawn in runCommand

Hey, I just made a Pull Request!

I would like to use the options in runCommand in my custom action built on top of scaffolder.
techdocs common already has the options added: https://github.com/backstage/backstage/blob/master/packages/techdocs-common/src/stages/generate/helpers.ts#L58
Are we able to add this here please?
I can copy code / work around it for now but I think this would be a good enhancement
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[ ] All your commits have a Signed-off-by line in the message. (more info)

I think you'll need to regenerate the api-docs again as they've changed now you've added this options object. yarn build:api-reports in the root and commit the files that have changed. :)

I think you'll need to regenerate the api-docs again as they've changed now you've added this options object. yarn build:api-reports in the root and commit the files that have changed. :)

yeah been sorting, wanted to get the docs done properly, how it is in techdocs isn't right, I'll send a follow up to fix docs there though.
running the build command yarn build:api-reports knocks my machine over 👅

Build is green now

@timja wondering if you have been successful running a shell script from the scaffolder backend using an action?
put a quick action together and gave it a try and keep getting this error:
  skeleton/script.sh ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:269:19)
    at onErrorNT (internal/child_process.js:465:16)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

@regicsolutions so ENOENT means file not found - i suspect that the current directory wasn't what you who expected, or the script didn't exist or perhaps want set as executable?

Yes I have an action that works:
https://github.com/hmcts/backstage/blob/master/packages/backend/src/plugins/scaffolder/actions/custom.ts

Yes I have an action that works:
https://github.com/hmcts/backstage/blob/master/packages/backend/src/plugins/scaffolder/actions/custom.ts

Thanks for sharing @timja just gave it a try and got a spawn EACCES error when trying to execute the shell script even after giving chmod -R 777 to my app/workspace folder which is what I have set for my workingDirectory in my app-config. The shell script gets copied over fine when using the fetch:template action but for some reason doesn't have access to execute it within /app/workspace/random-generated-value/hooks/pre-hook.sh wondering if you had to provide specific permissions within your container in order to get it to execute?

the shell script needs the execute flag, chmod +x file.sh


CSS Error in Modals

Describe the bug
When I want to use CSS in Modals, vsc shows an error message. Is strange because when I see it in the browser the CSS works, despite the error vsc shows me.
Note: I append to pictures, the first one is the error I get from vsc and the other one is the browser, where you can see the padding is being applied.
Your Example Website or App
No response
Steps to Reproduce the Bug or Issue

Create a Modal
Add CSS to that modal
You will see the error

Expected behavior
What I expected is to not appear an error at all. It's the only component and the first time it happen.
Screenshots or Videos

Operating System Version
Windows
Browser
Chrome

Hey @Feli02 thanks for reporting it, we will fix it as soon as we can 👍🏻


build: bump prow github

/status can-merge

Codecov Report

Merging #131 (6f2730f) into master (4d46022) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #131   +/-   ##
=======================================
  Coverage   86.89%   86.89%
=======================================
  Files          10       10
  Lines         809      809
=======================================
  Hits          703      703
  Misses         60       60
  Partials       46       46

Flag
Coverage Δ

unittests
86.89% <ø> (ø)

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

Continue to review full report at Codecov.

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


Update usage of "accession" as the ID column

Description of proposed changes
Improvements and clarifications around the choice of "accession" as the ID column in this repo. See commit messages.
Related issue(s)

Proposed in https://github.com/nextstrain/augur/issues/1237

Checklist

[x] Checks pass
[ ] https://github.com/nextstrain/augur/commit/9bf1b4ce4169b2a10ea974608188c2fdd918b9bc is released
[ ] Update min augur version for ⬆
[ ] Fix construct-recency-from-submission-date.py
[ ] Manually compare Auspice JSON from CI run in auspice.us

Thanks for the review @joverlee521! I'll take some of your suggestions. I also just checked, and this PR suffers from the same issue of missing the accession node attribute as the similar PR in RSV. This should be fixed before merging, so I'll get to it another day.

Ah, thanks @victorlin  for pointing out the accession issue identified in the RSV repo! This made me realize that actually there's a lot of attrs missing in the final Auspice tree when the accession and the strain field have different values.
I think there's additional bugs in augur export that I'll comment on in https://github.com/nextstrain/augur/pull/1261.

Ah, also just realized that the construct-recency-from-submission-date script also uses read_metadata and should be updated to use the correct ID column.

To test that the new Augur changes address the issue here, I created a Docker image with the unreleased Augur changes, updated CI here to use that, and uploaded the CI result's Auspice JSONs to a personal repo to be viewed through nextstrain.org/community. Here are the results:

master/docker: From the latest CI run on the default branch.
pr161/conda: From a test run on https://github.com/nextstrain/monkeypox/commit/a4bf2e8b22fca7aaab130f782636716f7b94ddce. This is without the new Augur changes.
pr161/docker. From the same test run as above. Since the custom Docker image was used, this is with the new Augur changes.

(2) is missing tip attributes as expected. (3) is the same as (1) but missing Submission Recency, due to @joverlee521's note in the previous comment.

Ok, the force-push above fixed the Submission Recency problem. These are the new results:

pr161/5b1b4ae/conda: This is without the new Augur changes, but now includes Submission Recency.
pr161/5b1b4ae/docker: This is with the new Augur changes, and includes Submission Recency.

(2) is what we should expect once the Augur changes are released and 0b9059e8fcb9c68e4319ced05266f5c20623f790 is fixed up. I think it looks comparable to master/85d33b0/docker.


Crashes when trying to power a draconic energy core.

It crashes when i tried extracting power from a energy core. halp.. Even after removing the pylons and the flux networks, it still crashes after 2 minutes of playing on the world. https://pastebin.com/Jj4J353f

Closing: 1.11.2 is no longer supported.


OfficeProPlusInstallGenerator - Embed Install Files No Longer Working

The Generate option to create a single install file (MSI or EXE) no longer functions.  Instead, it creates the single 4MB EXE and the "office" directory containing the download.

Currently experiencing the same, I have created several MSI packages in the past.
Downloading the current version and selecting the CC folder when creating the package.  Just creates a 2MB .msi file and an "Office" folder.
Anyone got any ideas on this?


Emit function parameters (Client and Server) do not mirror Socket.io API

Hi @thoov,
I have been using your library at work for unit testing a Socket.io based application we are making. I have contributed to the library in Issue #79 in order to add some missing functionality we needed in our app.
When running tests I am running into an issue were the API for mock-socket's emit function is not aligned with Socket.io's emit function.
The Socket.io API for emit is emit(event, ...data), which allows for variable amounts of data args to be passed to the callback function listening to the specified event name.
The mock-socket API for emit is emit(event, data, options) for the server and emit(event, data) for the client. The mock-socket API does not allow for variable amounts of data args to be passed. We could pass all of our data as an object, but I feel this incorrect.
I looked into making the changes necessary to correct this but it would be a major change to libraries API. I would be willing to do the work to make the modifications to align the API between the two libraries. Before doing this work I wanted first to talk to you about why the API was structured this way and your ideas on how to correct it.
Thanks!

@rocketedaway Sorry for the delay in getting back to you. Thanks for finding this. I will update emit to support multiple data args. I should have this done over this weekend.

Thanks @thoov. I appreciate the quick turnaround!

@rocketedaway I was playing around with an example and didn't see the behavior that you are describing. Main that emit was not respecting additional parameters like:
socket.emit('foo', 'bar');

Could you create a simple example that shows what you are explaining?

@thoov I will do this later this week. Should I just post it in here?

var MockSocket = require('mock-socket');

var serverUrl = 'http://test';
var server = new MockSocket.Server(serverUrl);

server.on('connection', function (server, socket) {
    server.emit('someServerEvent', 1, 2, 3);
    socket.emit('someSocketEvent', 4, 5, 6);
});

server.on('someSocketEvent', function () {
    console.log('someSocketEvent', arguments, arguments.length);
});

var client = new MockSocket.SocketIO(serverUrl);
client.on('someServerEvent', function () {
    console.log('someServerEvent' , arguments, arguments.length);
});

// Prints
// someServerEvent { '0': 1 } 1
// someSocketEvent { '0': 4 } 1

Ok let me test against this example

Hey @thoov any luck reproducing the issue?

@rocketedaway Sorry for the delay. I just got married so its been crazy the last couple of weeks with that.
I ran the example code that you provided and was able to see the same results as you pointed out. However, I created this example:
index.html
<html>
<script src="http://localhost:8080/socket.io/socket.io.js"></script>
<script>
  var socket = io('http://localhost:8080');

  socket.on('connect', function () {
    socket.emit('clientEmit', 'foo', 'bar', 'baz');
  });

  socket.on('serverEmit', function (data) {
    console.log(data);
  });
</script>
</html>

server.js
var app = require('http').createServer(handler)
var io = require('socket.io')(app);
var fs = require('fs');

app.listen(8080);

function handler (req, res) {
  fs.readFile(__dirname + '/index.html',
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading index.html');
    }

    res.writeHead(200);
    res.end(data);
  });
}

io.on('connection', function (socket) {
  socket.emit('serverEmit', 'foo', 'bar', 'baz');

  socket.on('clientEmit', function (data) {
    console.log(data);
  });
});

On both the server and client I just see 'foo' which it appears socket.io is just taking the first argument. This is what mock-socket is currently doing. Do you have an example using pure socket.io where this happens? (I tested against the latest 1.4.5)

@thoov Congrats on getting married!! It's a crazy and fun day :)
Okay based on your example you are only printing the first argument. To access all the data being returned by the emit callback in your example you would have to do the following:
socket.on('clientEmit', function (dataFoo, dataBar, dataBaz) {
    console.log(dataFoo, dataBar, dataBaz); // OR console.log(arguments)
});

Following are code examples to see this in action:
client.js
const io = require('socket.io-client');

const client = io.connect('http://localhost:8080');
client.on('connect', function () {
    console.log('Conected to IO server: localhost:8080');
    client.emit('clientEmit', 'foo', 'bar', 'baz');
});

server.js
const express = require('express');

const app = express();
const server = require('http').Server(app);
const io = require('socket.io')(server);

server.listen(8080, function () {
    console.log('Server listening on localhost:8080');
});

io.on('connect', function (socket)  {
    socket.on('clientEmit', function () {
        console.log('Socket Event: clientEmit', arguments);
    });
});

The above console logs the following from the server
Server listening on localhost:8080
Socket Event: clientEmit { '0': 'foo', '1': 'bar', '2': 'baz' }

Thanks!
Let me know if you need anything else from me!

@rocketedaway Thank you!! Now I see what you are saying (and able to reproduce it). I just updated master with some changes that should support this. Can you install:
npm install thoov/mock-socket#master

And see if this works for you?

@thoov Thanks! I will do this today and get back to you.

@thoov Looks good! I tested it with our unit tests and it works as expected.
Thanks!

Awesome. I just published v4.0.0 which has the change. Thanks for working through this with me!

Hi @thoov,
The dist files in the package downloaded from npm and the github repo are not compiled against the new source. When I tested it before the version was updated I built it locally first.
Sorry!

@rocketedaway Oops. I just added them to 4.0.1. Try that version

@thoov It's working now. Thanks for the quick turnaround, I really appreciate it! Have a good one.


Fix missing subtitles on iOS

Overview

As of iOS 15, discoverabilityTitle is no longer displayed as the subtitle UIActions. Subtitles are not visible to iOS users of this package. This update brings them back.
Test Plan

WIP
Fixes: https://github.com/react-native-menu/menu/issues/536

Is this still a draft?

I know this is still marked as draft, but it feels like a very innocuous change and seems safe to merge (plus pretty high impact, would be great to have the top level API fully operational) @Naturalclar


Jv log events that are too old

Description
Adds logging for when the event time doesn't agree with collector time. This logging includes events that are too old or are in the future. Also adds metrics for these cases.
Checklist

[x] Investigated and inspected CI test results
[x] Inspect CI logs for unreasonable timestamps
No unreasonable timestamps were found
[x] Ran integration test locally and saw the new logging
[x] Ran integration test locally and saw the new counters in the metrics

Testing Performed
Logging
Ran integration tests locally. Saw the following in the logs
[INFO    2023/08/10 21:55:09] (SignalServiceClient.cpp:20) Trying to establish GRPC stream for signals ...
[INFO    2023/08/10 21:55:09] (SignalServiceClient.cpp:38) Successfully established GRPC stream for signals.
[WARNING 2023/08/10 21:55:09] [Throttled] (SysdigService.cpp:214) Event of type 293 is unreasonably old. It's timestamp is 2023-08-10T14:55:10.022197Z
[INFO    2023/08/10 21:55:09] (SelfCheckHandler.cpp:18) Found self-check process event.
[INFO    2023/08/10 21:55:09] (SelfCheckHandler.cpp:43) Found self-check connection event.
Metrics
Modified integration test so that collector would not terminate
    //err = s.collector.TearDown()
    //s.Require().NoError(err)

Ran integration test with make
Then got metrics
curl localhost:9090/metrics
Saw the following
# HELP rox_collector_counters Collector counters
# TYPE rox_collector_counters gauge
rox_collector_counters{type="event_timestamp_distant_past"} 1620
rox_collector_counters{type="procfs_could_not_open_proc_dir"} 0
rox_collector_counters{type="event_timestamp_future"} 0
rox_collector_counters{type="procfs_could_not_open_fd_dir"} 0
rox_collector_counters{type="procfs_could_not_read_cmdline"} 0
rox_collector_counters{type="process_info_miss"} 0
rox_collector_counters{type="net_conn_updates"} 3
rox_collector_counters{type="process_lineage_string_total"} 2323
rox_collector_counters{type="procfs_could_not_read_exe"} 0
rox_collector_counters{type="net_conn_deltas"} 2
rox_collector_counters{type="net_conn_inactive"} 2
rox_collector_counters{type="rate_limit_flushing_counts"} 0
rox_collector_counters{type="net_cep_updates"} 0
rox_collector_counters{type="procfs_could_not_get_socket_inodes"} 0
rox_collector_counters{type="net_cep_deltas"} 0
rox_collector_counters{type="net_known_ip_networks"} 0
rox_collector_counters{type="procfs_could_not_get_network_namespace"} 0
rox_collector_counters{type="procfs_could_not_open_pid_dir"} 0
rox_collector_counters{type="process_lineage_sqr_total"} 200
rox_collector_counters{type="net_cep_inactive"} 0
rox_collector_counters{type="process_lineage_total"} 192
rox_collector_counters{type="net_known_public_ips"} 0
rox_collector_counters{type="process_lineage_counts"} 200
rox_collector_counters{type="process_info_hit"} 0
Future work
Will look into creating integration tests that check the metrics created here.

This is in the hot path, but the computation cost is very minimal.
Please, move the `LogUnreasonableEventTime call to after the Handlers filtering as you suggested, then it's good to merge !

Done


improve perf of zlib inflating

Description
replaced javascript implementation of zlib with webassembly

@devcat LGTM! Is there any reason why your package is stil pre-1.0
Ideally, it would be nice if this was stable for production use.


[EhvVar] Fix how nested variables are processed

Summary of the Pull Request

Do not expand variables when reading.
Save nested variables with REG_EXPAND_SZ
Expand variables in Applied variables list
Add comments why we don't use Environment API

PR Checklist

[ ] Closes: #xxx
[ ] Communication: I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
[ ] Tests: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Dev docs: Added/updated
[ ] New binaries: Added on the required places

[ ] JSON for signing for new binaries
[ ] WXS for installer for new binaries and localization folder
[ ] YML for CI pipeline for new test projects
[ ] YML for signed pipeline

[ ] Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed

CI failed. Tried to manually cancel what was running. Will trigger another one after this one stops.


Fix activities not being submitted on localhost resolution failure

Hello!
I'm quite excited for the new Codealike IntelliJ plugin and especially appreciate that you publish the source code. I found a small issue that occurred on my machine an figured I might as well submit a PR.
The issue
On some hosts with specific networking configurations, InetAddress.getLocalHost().getHostName() fails with an UnknownHostException. This causes the Codealike IntelliJ plugin to fail while trying to push activities to the server. A usual stack trace might look like this:
CodealikeApplicationComponent: Couldn't send data to the server.: lightbulb: lightbulb: Name or service not known
java.net.UnknownHostException: lightbulb: lightbulb: Name or service not known
	at java.net.InetAddress.getLocalHost(InetAddress.java:1505)
	at com.codealike.client.core.internal.tracking.ActivitiesRecorder.flush(ActivitiesRecorder.java:177)
	at com.codealike.client.core.internal.tracking.StateTracker.flush(StateTracker.java:251)
	at com.codealike.client.core.internal.services.TrackingService$1.run(TrackingService.java:98)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.UnknownHostException: lightbulb: Name or service not known
	at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
	at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
	at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
	at java.net.InetAddress.getLocalHost(InetAddress.java:1500)
	... 10 more

The issue results from unusual (broken?) networking configuration where the local host name does not directly resolve to an ip address. This StackOverflow answer details the issues with calling InetAddress.getLocalHost().getHostName() without verification.
Justification
In my case, the issue was caused by the host name not being in /etc/hosts, but according to that answer, this issue may also appear under different circumstances. Since my solution does - in my opinion - not really bloat the code and should not have any performance penalties, and there may be valid cases where such an exception might occur, I believe that it is reasonable to include this change into the project.
Implementation notes
This PR changes the behaviour of ActivitiesRecorder such that it does not fail completely under the described circumstances. Previously, activities would never be pushed if such an error occurred. With these changes, if the hostname lookup fails, the plugin sends the activity data to the server, with a hostname of unknown.
Tests
Full disclosure: I have not tested this, but the code should be trivial enough such that it has a very small risk of failing on execution.
Thanks!

LGTM


Create release and publish on crates.io

I think library now ready to create release of some HAL's and ready to publish on crates.io.

Agreed, that would be great!

This is, of course, the ultimate goal but for now I don't think we're there yet.  There are quite a few architectural questions still to be solved which I want to have addressed before we flood crates.io with releases and crates ... Though maybe I should create a milestone to track the progress!

(breaking silence after more then a year)
What is, beside available time, blocking this issue?

(breaking silence after another year)
I'd love to see this crate on crates.io

Wondered the same.
Looking at

https://github.com/Rahix/avr-hal/issues/130

There's a fair bit answered now in terms of refactoring into different crates.
Other question probably being versioning:

https://github.com/Rahix/avr-hal/issues/76

Indeed non-trivial but seems no conclusion yet. At least there.

I'm also interested in this, after exploring the ESP32-C3 and RP2040-Zero I spent the last few weeks programming a Digispark ATTiny85 with avr-hal (after I ordered 25 of them). Since I'm using micronucleus for flashing I've created elf2nucleus for proper integration with cargo run.
I've also setup a "Hello world" example repository with everything configured for development with the Digispark ATTiny85 and micronucleus, documentation and github actions examples.
My main.rs currently looks like this:
#![no_std]
#![no_main]

use attiny_hal::{clock, delay::Delay, Peripherals, Pins};
use embedded_hal::blocking::delay::DelayMs;
use panic_halt as _;

#[no_mangle]
fn main() -> ! {
    let pac = Peripherals::take().unwrap();
    let pins = Pins::new(pac.PORTB);

    let mut delay = Delay::<clock::MHz8>::new();

    // Digital pin 1 is also connected to an onboard LED marked "L"
    let mut led = pins.pb1.into_output();
    led.set_high();

    loop {
        led.set_high();
        delay.delay_ms(500_u16);
        led.set_low();
        delay.delay_ms(1000_u16);

        led.set_high();
        delay.delay_ms(250_u16);
        led.set_low();
        delay.delay_ms(100_u16);
        led.set_high();
        delay.delay_ms(250_u16);
        led.set_low();
        delay.delay_ms(1000_u16);
    }
}

I used arduino_hal::pins! first but moved away from this approach because it made it harder to follow along with cargo doc output (some compile-time generated code vs simply looking at target/avr-attiny85/doc/attiny_hal/port/struct.Pins.html).
Having to write delay.delay_ms(250_u16); is slightly unfortunate, the way delay_ms is written, rustc generates a very confusing error because there's a generic implementation for both u8 and u16 (although the u8 implementation is simply calling the u16 implementation). If I'd write delay.delay_ms(250) rustc would not be able to infer the type of 250, default to i32 and then complain about a missing i32 implementation (the resulting error could scare off people who aren't year-long Rust veterans, you need to be able to read the list of available implementations from the error message, then know how to force specific integer types and know about this being a thing in the first place).
From my point of view, to consider the Digispark ATTiny85 on par with the ESP32-C3 and RP2040-Zero (considering the hardware limitations), the only thing missing are crates.io releases. You don't need to release a 1.0.0 right away, and even if you released breaking updates weekly this would be considered acceptable use of crates.io.
Without having any 0.X.0 snapshots to work with however, it's near impossible to develop libraries that build on top of this hal, your crate would either depend on avr-hal (main) and inadvertently break due to the lack of versioning, or you depend on a specific commit. However due to the way git dependencies are resolved in Rust you'd then need to depend on the exact same avr-hal commit to use this crate. git+https://github.com/rahix/avr-hal#bfd6d7c3ec8215eb1598068ff8bf444dad8cb960 and git+https://github.com/rahix/avr-hal?rev=bfd6d7c3ec8215eb1598068ff8bf444dad8cb960#bfd6d7c3ec8215eb1598068ff8bf444dad8cb960 (or any other commit) are considered two different crates, the same way that foo and bar are considered to be different crates.


Add triage agenda items for waiting on quorum and member requests

Description
During the triage meeting on Aug 27th, based on time constraints member requests were opened up earlier than previously scheduled on the agenda.  This pull request captures this change to ensure meeting members can more quickly discuss an issue/PR.  The opening phase of the triage meeting was not captured, and has been included to document the informal and open tone of the meeting.
Check List

[ ] New functionality includes testing
[X] New functionality has been documented
[X] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@willyborankin Care to take another look?


Different type treatment with substitute

If a symbol has two fields in one text box, the type is styled differently if a substitute is used. With a substitute is the prefered styling. Without, the second word of the first field uses the second field's styling.

Unfortunately, you cannot use several styles within one text layer with data populator.

@nitrada But I have in the example above and it works. bottom left is a populated version of top left. If there is substitute content in the curly brackets it styles correctly. If there is not, it does not style correctly. It'd be great for both to work consistently like the version on the left.

ah it's with the new symbols – sorry, things have changed here :) we'll investigate.

can you elaborate a bit more please. i'm not sure if i get you 100%. maybe also show the error case (as the example on the right looks also correct although there's no substitute… or do i still get you wrong?

The bottom left is the top left version once it has been populated. The word Goodman is in the same styling as Russ. The bottom right is the populated version of the top right. The word Mazza has not continued the styling of the word frank. Having substitute text in place is the difference. It seems that without substitute text only the first word of {name} gets the styling applied to the tag, and the rest of the text gets the styling used after the tag, which seems to be a bug to me.

@r-ss-ll on my machine, the substitutes don't work at all (see https://github.com/preciousforever/sketch-data-populator/issues/58), can you upload the file you showed in this issue so we can investigate?

@russgoodman can you try this with the current version of the plugin?


Create better About page

include details of how this app works and the conventions and reasons around such.

reopen under new title


editing doesn't bring the 'focused cell' when you tab

http://www.angulargrid.com/forum/showthread.php?tid=2309

fixed in 1.12.5