Improvements in face unlocking system.

Improvements in face unlocking system.
Here in my project whenever a face matches with the faces database then it shows a string "FACE UNLOCK" else it shows only "FACE LOCKED". So sometimes the same face matches but it shows FACE LOCKED.
https://github.com/akshitagupta15june/Face-X/tree/master/Recognition-Algorithms/Facial Recognition using LBPH

Hey, I would Like to contribute to this.

Ok assigning you

Hello,I would like to contribute to this issue.I am a participant @GSSOC'2021.Please assign me.

Hey, what i concluded so far is, when a same person slightly turns his/her face the confidence level decreases, it shows LOCKED as threshold value is set to 75. Decreasing the threshold value is not a good option, so a better way would be, if threshold is between 60 to 75, it will output label (with id it matches with database) along with Confidence Score and "FACE LOCK". Else <60, it is not a good match then simply "FACE LOCK".

oh ok thanks for the info

Just wanted to know i'm in right direction or not before creating PR

you can create a pr and I will review it and let you know.


[Improve](inverted index) improve performance by introducing bulk contains for bitmap in _build_index_result_column

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall


Body autofocus on route-change does not bring screen-reader (VO) to top if clicked-link is still on page

Describe the bug
When I use VoiceOver to navigate via a link that remains on the page after the route-change, then that link remains selected by VoiceOver (even though the page-title is correctly announced and keyboard-tabbing correctly starts from the top of the page).
Here is a video demonstrating this behavior (from this site: https://sveltekit-sr-focus-demo.vercel.app/):
https://github.com/sveltejs/kit/assets/44578578/edc49d9b-ed1e-4879-81ac-392768d45958
Reproduction
https://github.com/MichaelAllenWarner/sveltekit-sr-focus-demo
I started with a "skeleton" project via CLI, and added the bare minimum to reproduce the behavior. In case it helps, here is the diff with that extra bare minimum: https://github.com/MichaelAllenWarner/sveltekit-sr-focus-demo/commit/bf783a4b8df158ba7a2dd107cd1c2578b3754a8e
Logs
No response
System Info
System:
    OS: macOS 13.3
    CPU: (12) arm64 Apple M2 Pro
    Memory: 39.48 MB / 32.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 19.8.1 - ~/.nvm/versions/node/v19.8.1/bin/node
    npm: 9.6.2 - ~/.nvm/versions/node/v19.8.1/bin/npm
  Browsers:
    Chrome: 114.0.5735.198
    Edge: 114.0.1823.43
    Safari: 16.4
  npmPackages:
    @sveltejs/adapter-auto: ^2.0.0 => 2.1.0
    @sveltejs/kit: ^1.20.4 => 1.22.3
    svelte: ^4.0.5 => 4.0.5
    vite: ^4.4.2 => 4.4.3

Severity
annoyance
Additional Information
No response

I wonder if a blur() before the focus() could do the trick.

I can work around the problem by using the technique described in this old post in my +layout.svelte file, like this:
<script>
  import { afterNavigate } from "$app/navigation";

  /** @param {HTMLElement} element */
  function setVoiceOverFocus(element) {
    var focusInterval = 10; // ms, time between function calls
    var focusTotalRepetitions = 10; // number of repetitions

    element.setAttribute('tabindex', '0');
    element.blur();

    var focusRepetitions = 0;
    var interval = window.setInterval(function() {
      element.focus();
      focusRepetitions++;
      if (focusRepetitions >= focusTotalRepetitions) {
        window.clearInterval(interval);
      }
    }, focusInterval);
  }

  afterNavigate(() => {
    setVoiceOverFocus(document.body);
  });
</script>

(That said, it's ugly, probably not good performance-wise, and may very well have unintended consequences. Thought I'd share anyway.)

I guess a better version of that +layout.svelte workaround would be something like:
<script>
  import { afterNavigate } from "$app/navigation";

  const intervalReps = 10;

  afterNavigate(() => {
    const originalBodyTabIndex = document.body.getAttribute('tabindex');

    document.body.tabIndex = -1;

    let focusRepetitions = 0;

    const interval = window.setInterval(() => {
      document.body.focus();
      focusRepetitions++;

      if (focusRepetitions >= intervalReps) {
        window.clearInterval(interval);

        if (originalBodyTabIndex) {
          document.body.setAttribute('tabindex', originalBodyTabIndex);
        } else {
          document.body.removeAttribute('tabindex');
        }
      }
    }, intervalReps);
  });
</script>

(the .blur() doesn't seem to be required, so I've dropped it)

A little more experimenting, and this simpler mechanism with just a couple of requestAnimationFrame() calls seems to be working (in +layout.svelte):
<script>
  import { afterNavigate } from "$app/navigation";

  const focusAttempts = 2; // seems to suffice for me, but maybe do more to be safe?

  afterNavigate(() => {
    const originalBodyTabIndex = document.body.getAttribute('tabindex');

    document.body.tabIndex = -1;

    let counter = 0;

    const makeVoiceOverFocusBody = () => {
      if (counter < focusAttempts) {
        document.body.focus();
        counter++;
        requestAnimationFrame(makeVoiceOverFocusBody);
      } else {
        if (originalBodyTabIndex) {
          document.body.setAttribute('tabindex', originalBodyTabIndex);
        } else {
          document.body.removeAttribute('tabindex');
        }
      }
    }

    makeVoiceOverFocusBody();
  });
</script>

And now I'm seeing that this is all a bit more complicated than I'd realized!
When my +layout.svelte code above "works," VoiceOver seems to highlight and announce the first text on the page, instead of announcing the contents of the div#svelte-announcer". Video:
https://github.com/sveltejs/kit/assets/44578578/374d8436-a0f0-4026-89e3-0f624739e28f

When my +layout.svelte code above "works," VoiceOver seems to highlight and announce the first text on the page, instead of announcing the contents of the div#svelte-announcer.

I think this happens because my focus-code is running after the div#svelte-announcer content changes, and is therefore interrupting that desired aria-live page-title announcement. If that's the case, then maybe reversing the order of those two things would result in the opposite, with the page-title announcement doing the interrupting. But maybe not. It's possible that there's simply no perfect solution here.


Create initial AdvancedSodium structure and implement crypto_scalarmult

As the first pass at the smallest portion of #5 I decided to implement crypto_scalarmult. Will you please look over my approach and see how well I managed to follow your idea to separate the advanced from the standard. Also, I'm really not sure how well I used the sumo term across both the SodiumInit implementations and the integration tests parameter.
I have NOT implemented this in the SodiumJS area yet. I'd prefer to do that in this PR but not until I get some preliminary feedback on the approach I've taken for the advanced API, file naming and locations, unit and integration testing approach, etc. At that point I'll implement JS and push to this PR for final review and merging.

I like your direction on all the comments, and I'll dive into them over the weekend. I'll plan to rebase, if you don't mind making that commit. I strongly prefer allowing main to progress and rebasing PRs to ensure compatibility and clean history before final merges.

All updates to main are pushed. The sodium builds already work, the flutter library failed on windows, but should work now after my last push. You can rebase your branch and continue with it. Sorry it took so long. Have a nice day!

Ok, I've made changes and rebased on master. I've included changes to the CI items to run the sumo tests (but please check my work). I've resolved most of the comments, but need a bit more detail on a couple. Let me know what you think. When it looks good I'll start on the JS side.

Very nice, besides of the remaining comments, I think this looks good, you can start the JS side. The only thing missing is the adjustment of the CI. Instead of running both sumo and non sumo variants, you should change it as stated in the comment and adjust the github actions pipeline, so that one separate job is run for each platform and each variant. However, is can become quite complicated, so here is my idea (after merging the PR, I would the try to "clean" the CI, but this is a trial and error process). I created a diff you can apply to the .github/workflows/sodium_ci.yaml
diff --git a/.github/workflows/sodium_ci.yaml b/.github/workflows/sodium_ci.yaml
index 3005c8a..e1f975d 100644
--- a/.github/workflows/sodium_ci.yaml
+++ b/.github/workflows/sodium_ci.yaml
@@ -38,12 +38,15 @@ jobs:
           - platform: linux
             os: ubuntu-latest
             system: vm
+            integrationTestArgs: --sumo
           - platform: windows
             os: windows-latest
             system: vm
+            integrationTestArgs: --sumo
           - platform: macos
             os: macos-latest
             system: vm
+            integrationTestArgs: --sumo
           - platform: web
             os: ubuntu-latest
             system: js

This would ensure, the VM platforms always run the Sumo tests, while JS is kept as is

@Skycoder42 I've run into 2 issues which have me stuck. First, I can't run web integration tests on my machine because they rely on code in a bindings/ directory of the integration tests which has a specific .gitignore keeping it out of git (and I find no mention of it in the docs). Second, I can't see the output of the build actions right now, so I can't see the error occurring with the web sumo build. All action details (for both success and failed steps) just shows a blank error. Dev tools show that some URL with an S3 presigned URL is failing. It seems like something on Github is broken at the moment.

Would you mind looking at the issue when you have a minute? I think that the implementation is pretty well done, but until I can see all the tests pass I'm not quite convinced. I could use your review of the test adaptations I made for JS, in addition to checking my implementation code.

Wow, I lost track of time! I may need your help with the PR, but I am still having fun with it. :) I'll let you know if it gets out of hand or life takes over again.

Hi^^ Since you seem to have lost the time to keep working on this, I would like to try and "finish" the PR step by step. For now, my first goal would be to recreate the basics for the "advanced" APIs. Is that fine with you? Since I am going to base my changes on your work so far, I will of course mention you in these commits/releases

Okay, so I have implemented the sumo-APIs, as well as the scalarmult APIs with version 2.0.0
With that, this PR becomes invalid and thus I will close it.

Thank you!!!


Does this project exclude Hactoberfest?

@gympohnpimol Hey we figure out this issue we have already reported this issue to hacktoberfest support team

@gympohnpimol Hey we figure out this issue we have already reported this issue to hacktoberfest support team

I am waiting for hearing any update from your team.
Hope it gonna be well.

ya mee too waiting for response , I submitted 3 pr's all got excluded.


Added config for Looney Tunes: Sheep Raider

I made a config file for Looney Tunes: Sheep Raider / Sheep, Dog 'n' Wolf.
It matches the PS1 controller layout with the default in-game button config.

Thank you for creating and submitting this!
Could you please confirm that you will license this work to me under the 3-clause BSD license I already have set up for this repository? Basically, I want to make sure I can integrate your configuration file into the repository and license it to other users under the same terms.

Yeah, that's fine with me.


implement putAll and putAllCloseable

Implements putAll and putAllCloseable described in SLF4J-387 – I ran into the same problem a short while ago that I needed a closeable MDC that discards multiple entries after the try-with resource is closed.
If more tests or other changes are required I'll happily take another look at this.

relates to https://jira.qos.ch/browse/SLF4J-387

@ceki If there's anything from me you need to get this merged please let me know and I'll have a look.

It's in the pipeline.

Updated the pull request to resolve merge conflicts with master and removed an unused import I accidentally introduced. If there's anything else you need to continue please let me know and I'll have a look.

@ceki is there a chance you or someone else from SLF4J can take a look to get this merged into a 2.x or 2.0.x release?

Would you be satisfied with MDC.putAllCloseable(List<String>) ?

I am not sure I follow – do you have a minimal example for:

It seems to me that the values for the keys might not be known at try-time.

Additionally, what would we use as keys then? The idea/intent is to put known key-value-pairs into the MDC for operations that should have no long-term effect on the thread local MDC but we in the end we can still filter log lines by MDC keys consistently.

Here is what I had in mind:
public class MDCExplore {
    public static void main(String[] args) {
        final List keyList = List.of("KEY1", "KEY2");
        MDC.put("x", "y"); // populate before try

        try (Closeable closeable = mdc_closables(keyList)) {
            MDC.put("a", "b");
            MDC.put("KEY1", "val1");
        }

      // keys x and a remain populated, KEY1, KEY2 are cleared
    }

    private static Coseable mdc_closables(List keyList) {
        return ....;
    }

I think I understand what you intend, thanks for taking the time! I'll get back to you next week, when I have a little more time to illustrate my own intentions with proposing putAllCloseable as natural extension of putCloseable and why it would be useful to have around.

Okay, I had some time to write a real-world inspired example of why I think MDC.putAllCloseable(Map<String, String> map) is neat. The example is based on using Project Reactor to make async HTTP calls. The WebClient you see below has its own Thread Pool totally disconnected from the Thread Local and also will reuse connections & threads in said pool.
public String someFunction(final UUID id) {
    ResponseEntity<String> response = webClient
        .get()
        .uri(uriBuilder -> uriBuilder.pathSegment("entry", "{id}").build(id))
        // ... handle request
        .doOnEach(signal -> {
            if (signal.isOnError() ||signal.isOnNext() ) {
                // magic MDCCloseable
                try (var mdc = MDCCloseable.putAllCloseable(signal.getContextView().getOrDefault("MDC", new HashMap<>()))) {
                    var response = signal.get();
                    if (signal.isOnError()) {
                        log.warn(
                            "get pipeline failed {}", "value",
                            kv("response_status", response.getStatusCode()),
                            kv("response_body", response.getBody())
                        );
                    } else {
                        log.debug(
                            "get pipeline did stuff",
                            kv("response_status", response.getStatusCode()),
                            kv("response_body", response.getBody())
                        );
                    }
                }
            } else {
                return;
            }
        })
        //.. do more stuff
        // adds MDC to actual async call stack as context variable
        .contextWrite(Context.of("MDC", Optional.ofNullable(MDC.getCopyOfContextMap()).orElseGet(HashMap::new)))
        .block();

    // do stuff with the actual response and inspect it

    return response.getBody();
}

If I understood your example correctly, transferring it to my example would look similar to this:
public String someFunction(final UUID id) {
    ResponseEntity<String> response = webClient
        .get()
        .uri(uriBuilder -> uriBuilder.pathSegment("entry", "{id}").build(id))
        // ... handle request
        .doOnEach(signal -> {
            if (signal.isOnError() ||signal.isOnNext() ) {
                var localMdc = signal.getContextView().getOrDefault("MDC", new HashMap<>())

                try (var closeable = MDCCloseable.putAllKeys(localMdc.keySet())) { // insert keys to be removed
                    localMdc.forEach(MDC::put);

                var response = signal.get();
                    if (signal.isOnError()) {
                        log.warn(
                            "something failed {}", "value",
                            kv("response_status", response.getStatusCode()))
                        );
                    } else {
                        log.debug(
                            "some debug",
                            kv("response_status", response.getStatusCode())
                        );
                    }
                }
            } else {
                return;
            }
        })
        //.. do more stuff
        // adds MDC to actual async call stack as context variable
        .contextWrite(Context.of("MDC", Optional.ofNullable(MDC.getCopyOfContextMap()).orElseGet(HashMap::new)))
        .block();

    // do stuff with the actual response and inspect it

    return response.getBody();
}

It's not a huge difference but there's certainly a couple of "gotchas"/caveats here adding noise to the overall implementation.
I already pointed out that putCloseable(key, value) exists and would personally prefer extending the semantics and implementation of that instead of creating a new and fully separate idea.

SLF4J-557 makes a very valid point.

That is indeed a fair point. I am now wondering how to work around that because the auto-closeable neatness I tried showing in my examples above would be sorely missed :/. A clean, consistent, and predictable API does strike me as more important though.


Bump identity verification version

$Subject

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/5550384709

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/5550384709
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/5572261661

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/5572261661
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/5574075198

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/5574075198
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/5590901688

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/5590901688
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/5594704542

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/5594704542
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/5595887622

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/5595887622
Status: success


Update readme

Misc updates to be more accurate for v4

I would remove the "Future Features" section, almost all the things listed there don't seem to be on the radar in the near future and some of them (caching) i would (have done already) do in another layer (nginx, easyer and more flexible)

and also the line about prepared statements, it wont work like that after fe change True to False in the main query

Sure I can remove the future features since much of that info is captured in the issues.
Also I hope at some point after we disable prepared statements for the memory problem that we can re-enable them and use postgres query params.


There was an issue submitting your final solution

I have been able to successfully submit a second solution to a kata in some cases, but I am now getting the same error attempting to submit a new solution to a kata I've previously solved, for both Python and Java, so I thought it may be worth reporting.  "Run Tests" and "Submit" both pass, but the "Submit Final" shows a red bar "There was an issue submitting your final solution" - I've tried many times, so I think I've ruled out a network issue =)
Strangely the failed submissions do show up in some of the views. ex: "Compare with your solution" - so maybe despite the error, the solution was saved.  However it doesn't show up in some others - ex: "My Solutions"

#391
Already created.

I searched just before entering, strange that the existing issue didn't show up. This should be closed as duplicate.
Same as many on #391 I am logged in as github user
As far as the "possible fix deployed" tag, I'm able to log in fresh, train again on this kata: https://www.codewars.com/kata/5626b561280a42ecc50000d1, submit and submit final, and get the same error every time right now.


QUESTION - Backgrounding

@rdelrosario By default, if i only install and initialize the plugin what are the geofencing background behaviors on iOS and Android?
If I want the application to detect geofences in background in Android and iOS what should I do?
Thank you.

Should work on background fine. If runs a service on Android


test: add test from PR #3

This PR adds tests from PR #3.
There are a few tests that address similar parts of the library, although they are not exactly the same. I also modified tests that rely on each other (within cli/test_remote.py, formerly cli_test_base.py)

Why does this PR include the markdown files as well if the goal is adding tests?

Ah, I merged the documentation PR because one of the tests relied on the output of the help... I should have put a TODO instead, sorry about that.


Setup.bat didn't run successfully

C:\Users\wilde\Desktop\PokeBall-SelfBot-Pokecord-Automation-master>py -3 launcher.py
Traceback (most recent call last):
File "launcher.py", line 2, in
from pokeball import PokeBall
File "C:\Users\wilde\Desktop\PokeBall-SelfBot-Pokecord-Automation-master\pokeball.py", line 2, in
import discord
ModuleNotFoundError: No module named 'discord'
C:\Users\wilde\Desktop\PokeBall-SelfBot-Pokecord-Automation-master>timeout -1
Press any key to continue ...
Hey im trying to run the Self-Bot but when i press enter nothing happens and im not 100% sure on what the problem is but i think i know the problem just i dont know how to fix it can you please help?

Looks like your setup.bat didn't finish successfully.   Rerun it after making sure Python is in path using python --version.

Closing it till there are any further updates, since this a local issue.


castnow picks up wrong IP address

My machine has multiple IP addresses (I've got virtualization software installed). I noticed castnow picks up the wrong IP address, thus initially it was never working for me .. I noticed that if I pass the --myip parameter, it does work (and it's awesome)
castnow should automatically pick the IP address that falls within the network of the chromecast device.

Very nice idea :)
If someone has multiple network adapters in the same network as chromecast we would just choose randomly one of them I guess.

Another (possibly simpler) solution, is to bind the webserver to ip <IP_ADDRESS> which corresponds to all known IP addresses .. Usually bad for security, but in this case, I guess the convenience beats being too pedantic on security .. Guess that would work no?

Chromecast also needs to know your IP since it's fetching the video data from your computer.

Agreed :+1:

I use vmware on OSX and castnow is still picking up the VM's interfaces, even though their ip's begin with 172.16 and my real machine's ip is 192.168

Hi there !
It's because internal-ip returns the last ip address instead ot the primary network interface address.
I fixed it with this:
https://github.com/bugdanov/internal-ip/commit/0b9a350d5cd973693a3570380293adc6011e5d92
Could not test it on Windows or MacOS


suggestion: pagination

It would be nice to be able to view past blocks by entering an arbitrary page number.
The current specification only links to the previous and next pages, which is inconvenient for me.
It is also nice to place pagination in the upper right corner of the page.

Thanks for the suggestion.
we will look at this how we can do it better :)

Thanks for the suggestion.
we will look at this how we can do it better :)

We made improvements for the pagination in the latest explorer.
What do you think about it?


[FLINK-3950] Implement MeterView

In the JIRA discussion about FLINK-3950 @StephanEwen introduced the notion of a MetricView, a Meterthat derives it's values from another Counter or Gauge. The View would not be updated when the backing metric is modified, but instead by a background thread shared by all Views.
This PR implements a Meter that derives it's values from a Counter, called MeterView.
The View class is a small interface, only containing an update() method.
A TimerTask running in the MetricRegistry calls this update() method on all Views, with a hard-coded update interval of 5 seconds.
The MeterView class implements both View and Meter. It maintains a history of N measurements in a long[N] which is updated whenever View#update() is called. The rate is only calculated on demand.
The PR contains a small example, demonstrating how a MeterView would be created & registered in the AbstractStreamOperator.

Overall a good change.
Once my two comments are addressed, +1 to merge.


CFFL

CFFL

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_69beed0ggd/clone/recipe/meta.yaml:15: pip_install_args: pip install should be run with --no-deps.
ERROR: /tmp/abs_69beed0ggd/clone/recipe/meta.yaml:20: missing_wheel: For pypi packages, wheel should be present in the host section
ERROR: /tmp/abs_69beed0ggd/clone/recipe/meta.yaml:26: missing_pip_check: For pypi packages, pip check should be present in the test commands
ERROR: /tmp/abs_69beed0ggd/clone/recipe/meta.yaml:26: has_imports_and_run_test_py: Imports and python test file cannot coexist.
WARNING: /tmp/abs_69beed0ggd/clone/recipe/meta.yaml:33: missing_description: The recipe is missing a description
ERROR: /tmp/abs_69beed0ggd/clone/recipe/meta.yaml:33: missing_documentation: The recipe is missing a doc_url or doc_source_url
ERROR: /tmp/abs_69beed0ggd/clone/recipe/meta.yaml:33: missing_dev_url: The recipe is missing a dev_url
Errors were found


Feature suggestion

Hi,
This is an implementation suggestion for a footer out of objects list, eg to propose create new element :
 html
<ui-select ng-model="person.selected" theme="select2" ng-disabled="disabled" style="min-width: 300px;" title="Choose a person">
    <ui-select-match placeholder="Select a person in the list or search his name/age...">{{$select.selected.name}}</ui-select-match>
    <ui-select-choices repeat="person in people | propsFilter: {name: $select.search, age: $select.search}">

        email: {{person.email}}
        age:

    </ui-select-choices>

    <ui-select-footer>
      Add new item
    </ui-select-footer>
  </ui-select>
`````

+1

My 2 cents: I don't think we should throw even more features at this directive. Atm there are tons of bugs with existing features. Piling up on it will not make it better. There are also no tests for this change.

As @Narretz has said, this PR needs tests.

To follow up, I want to clarify that we are not keen on adding a plethora of directive attributes to the project. I would love to see a PR that refactors the the directive away from having a million attributes and instead accepting a config object. But regarding this footer directive, all it needs is unit tests to be accepted.

The changes to the gulpfile and the dist directory are also no good.

This will be superseded by #1323 when its working and merged so going to close this.


Improve guest user flow

Description
This modal gave me the impression that logging in or signing up was required in order to apply for a program. Nick had to point out to me that there was a “Continue to application” button.

Suggested Improvements
It would be more obvious if we added some wording such as “Please create an account” or “Before you continue, we suggest that you log in…”

@sijiayam Here's another UX enhancement.  Feel free to modify this issue if you feel it needs clarification.


RFC 2822 should not be recommended for handling HTTP requests

According to RFC 9110, the preferred date/time format for HTTP is defined by RFC 5322, which has replaced RFC 2822.
One notable difference is that the zone field should always use GMT or be omitted (implying GMT), rather than using the format (( "+" / "-" ) 4DIGIT) / obs-zone.
we faced an header issue while using uv, which use jiff processing HTTP header.

This is interesting, because I had thought RFC 2822 specifically defined the date format for use in things like HTTP. But it does seem like RFC 9110 defines something a bit stricter. It is also interesting that most HTTP servers seem to happily accept RFC 2822, and indeed, the stricter format prescribed by RFC 9110 is compatible with RFC 2822 from what I can tell. So if HTTP servers use an RFC 2822 parser, then they would read Jiff's output fine. But an HTTP server that exclusively supports the latest updates to RFC 9110 would not.
Either way, I think MDN is probably right here. I'll add a new method for printing timestamps in a way that is explicitly compatible with RFC 9110. One additional thing, besides using GMT instead of -0000, is that two digits for the day are always used. (This makes it a fixed length value.)
Now I'm left wondering what relationship RFC 2822 has to HTTP.

And perhaps even more confusingly, RFC 2822 considers the use of GMT (instead of -0000, which mean the same thing) to be obsolete: https://datatracker.ietf.org/doc/html/rfc2822#section-3.3

RFC 5322 (Internet Message Format):

Document type: RFC - Draft Standard
Updated by RFC 6854
Obsoletes RFC 2822

From RFC 5322 Abstract:

This document specifies the Internet Message Format (IMF), a syntax
for text messages that are sent between computer users, within the
framework of "electronic mail" messages.  This specification is a
revision of Request For Comments (RFC) 2822, which itself superseded
Request For Comments (RFC) 822, "Standard for the Format of ARPA
Internet Text Messages", updating it to reflect current practice and
incorporating incremental changes that were specified in other RFCs.

RFC 6854 (Update to Internet Message Format to Allow Group Syntax in the "From:" and "Sender:" Header Fields):

Document type: RFC - Proposed Standard

RFC 2822 (Internet Message Format)

Document type: RFC - Proposed Standard
Obsoleted by RFC 5322
Updated by RFC 5336, RFC 5335

RFC 9110 (HTTP Semantics)

Document type: RFC - Internet Standard

RFC 6854 seems unrelated to date/time format, RFC 5322 is a Draft Standard but preferred by
RFC 9110 (a Internet Standard).
according to About RFCs Statuses, RFC 9110 has higher priority, and even if RFC 5322 is a Draft Standard(An intermediate stage that is no longer used for new standards), it should be prefererd over RFC2822.

Yeah RFC 5322 and RFC 2822 define the same datetime format, so that part is fine. It's the interplay between RFC 9110 and RFC 5322 that is pretty confusing to me. I missed this before, but RFC 9110 does say this:

The preferred format is a fixed-length and single-zone subset of the date and time specification used by the Internet Message Format [RFC5322].

But note that RFC 9110 also says this:

Recipients of timestamp values are encouraged to be robust in parsing timestamps unless otherwise restricted by the field definition. For example, messages are occasionally forwarded over HTTP from a non-HTTP source that might generate any of the date and time specifications defined by the Internet Message Format.

Which could arguably interpreted as a suggestion that HTTP servers should just support parsing RFC 5322 in its entirety.
Still weird that RFC 5322 considers GMT itself obsolete. ¯\_(ツ)_/¯

it's very confusing indeed...But if we accept that 9110 has the highest priority.

A recipient that parses a timestamp value in an HTTP field MUST accept all three HTTP-date formats.

So, tencent cos server not accepting that outdated format is also a bug.

When a sender generates a field that contains one or more timestamps defined as HTTP-date, the sender MUST generate those timestamps in the IMF-fixdate .

So jiff should support parsing in all three formats, but it is only recommended that the sender use the IMF-fixdate format


Order of images sizes in _config.yml

Hi. I'm a newbie to Jekyll but managed to get the plugin to work and it works well :) I used your example config from the README file. I found I needed to reverse the order of the 'sizes' when using the  tag template so that they were largest to smallest. Otherwise the browser kept using the smallest image even on the large screen. So:
sizes:
- width: 480
quality: 80
- width: 800
- width: 1400
quality: 90
was changed to:
sizes:
- width: 1400
quality: 90
- width: 800
- width: 480
quality: 80
... and it seems to work as expected.

Yep, that sounds right — the sizes config is a plain old array and the order should be preserved when using it in templates.
Just out of curiosity, what are you using for responsive images that required the images to be listed largest -> smallest?

Thanks for the quick reply. I'm just playing with it at the moment for future reference.  I just thought I'd mention it in that if I applied your code exactly as is using the  tag template, it wasn't working for me in Chrome. Not until the output of the picture tags was in the largest to smallest order.
Just wondering also if there is a way to supply a variable for the image path tag rather than it being hard-coded each time? Cheers.

Oh that's interesting, I haven't used the picture tag much so I'll play around with it next week and update the documentation as necessary.
For the variable in path thing, you can use the responsive_image_block tag like this: https://github.com/wildlyinaccurate/jekyll-responsive-image/blob/master/features/responsive-image-block.feature#L10-L15

Excellent, the responsive_image_block tag is just what I needed along with being able to switch to custom templates. Works well to wire-up a lightbox with thumbnail images linking to larger versions. Thanks :)


Ignoring stdout for blender logs on Windows bug fix

Setting print_blender_log = False in settings.py is going to append the Linux command suffix for ignoring the standard error output of system commands. The blender command generation code was modified to detect the underlying OS and append the correct command suffix. Otherwise the command wouldn't work on Windows if we want to disregard the logs.
Note: According to os.py documentation The supported os platforms are Windows and Linux (and Java). For more granularity it's perhaps better to use the platform library instead (name detection via platform.system()) - but I wanted to avoid importing the library just for this.

LGTM. Thank you!


In Shop Exchange Rates are right and wrong!

Bug report
Title
When having mutiple exchange rates, other than the base currency, the display values are way off: for example: USD112 product in MYR(4.20) the price shown RM1991. The actual value should RM474.
Issue Description
What's is happening is the Core::convertPrice method is being called twice, the first time it gets the right price, the second time it's using the already converted price and applying the same rate to that price.
Preconditions
Current master code as at commit #2137
Steps to reproduce
Create an exchange rate under admin, then in the shop change to that exchange rate.
Expected result
Correct calculation of rate.

I've already solved this in the Core.php.

Fix
Before the constructor of Core.php:
protected $lastCurrencyCode ;

    /**
     * Create a new instance.

Then modify convertPrice as follows:
/**
    * Converts price
    *
    * @param float  $amount
    * @param string $targetCurrencyCode
    * @return string
    */
    public function convertPrice($amount, $targetCurrencyCode = null)
    {

      if (!$this->lastCurrencyCode)
         $this->lastCurrencyCode = $this->getBaseCurrency()->code ;

        $targetCurrency = ! $targetCurrencyCode
                        ? $this->getCurrentCurrency()
                        : $this->currencyRepository->findOneByField('code', $targetCurrencyCode);

        if (! $targetCurrency)
            return $amount;

        $exchangeRate = $this->exchangeRateRepository->findOneWhere([
            'target_currency' => $targetCurrency->id,
        ]);

        if (null === $exchangeRate || ! $exchangeRate->rate)
            return $amount;

        $result = (float) $amount * (float) ($this->lastCurrencyCode == $targetCurrency->code ? 1.0 : $exchangeRate->rate);
//        Log::info("convertPrice ($amount, $targetCurrency->code, $this->lastCurrencyCode, $exchangeRate->rate) = $result");

        if ($this->lastCurrencyCode != $targetCurrency->code)
           $this->lastCurrencyCode = $targetCurrency->code ;

        return $result;
    }

As you can see, the invoices also are wrong. The actual order value USD112 and the exchange rate to MYR is set at 4.2.
Because the DOM is loaded twice, the exchange rate calculation is done once (correctly) then the returned number is passed back to the exchange rate calculation on the second reload.
From my logging of the function:
Log::info("convertPrice ($amount, $targetCurrency->code, $this->lastCurrencyCode, $exchangeRate->rate) = $result") = 474.22

Log::info("convertPrice ($amount, $targetCurrency->code, $this->lastCurrencyCode, $exchangeRate->rate) = $result") = 1,991.73  which 474.22 * 4.2

Hi @adavie1
Thanks for raising this one and providing solution.

Fixed


Fix announcement link

Fixes announcement link of README.
Changes proposed in this pull request:

Add a closing bracket 😄

 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.You have signed the CLA already but the status is still pending? Let us recheck it.


Chat Post Message Unfurl Link / Media Ignored

I have an app that sends messages in DMs that often contain 3-5 links. The links are sometimes links to other slack messages and sometimes the slack messages have links or files in them, so the previews can get really cluttered. So I have been setting the unfurl_link and unfurl_media to False. But when I post messages, I still see the link previews. My goal is to not see any link previews if I set unfurl_media=False and unfurl_link=False.
Reproducible in:
The slack_bolt version
slack-bolt==1.16.2
slack-sdk==3.19.5

Python runtime version
Python 3.9.16
OS info
Runs on AWS Lambda 3.9 Python Runtime
also reproduced on macOS
Steps to reproduce:
    from slack_bolt import App
    link1 = "https://some-workspace.slack.com/archives/C04NX3245JR/p1685537161971159?thread_ts=1685537161.971159&cid=C04NX3245JR"
    link2 = "https://some-workspace.slack.com/archives/C050J9G9VFC/p1687924354104319?thread_ts=1687924354.104319&cid=C050J9G9VFC"
    link3 = "https://some-workspace.slack.com/archives/C058H0ND0BH/p1684777881725439?thread_ts=1684777881.725439&cid=C058H0ND0BH"

    msg_txt = f"<{link1}|Link 1>\n<{link2}|Link 2>\n<{link3}|Link 3>\n"

    SLACK_BOT_TOKEN,  SLACK_SIGNING_SECRET = get_slack_tokens()
    app = App(token=SLACK_BOT_TOKEN, signing_secret=SLACK_SIGNING_SECRET)
    slack_client = app.client
    slack_client.chat_postMessage(
                channel="U0XXXXX",
                text=msg_txt,
                unfurl_media=False,
                unfurl_link=False,
            )

Expected result:
Expect no previews to be shown underneath the message.
Actual result:
I see many previews underneath the message.

Requirements
Please read the Contributing guidelines and Code of Conduct
before creating this issue or pull request. By submitting, you are agreeing to those rules.

Hi, @weallwegot! Thanks for your question ✨
At first glance to your code, it seems like you're passing in unfurl_link as a param to the postMessage API call rather than unfurl_links, which is the right property name (see here). Can you try updating it to unfurl_links and see if it works for you?

ah shit lmao, that was it 😅 thank you for the second pair of eyes!


Creates v1 of a full project generator

What

Documents the usage, installation and extension of the generators
Adds the basic subgenerators for a v1 publish: CI config, release scripts, basic test setup, and .node-version configuration. Check out the readme for details on what each one does and how to run them.
Renames yo lob:eslint to yo lob:lint
Broke out the yo lob:lint tests into more modular ones
Changes this project's CI from Circle to Travis since this is a public package

Why
These are the most commonly repeated tasks for creating new repositories. Automating those tasks makes us more efficient and consistent.
Testing
$ git clone git@github.com:lob/generator.git
$ cd generator
$ git checkout setup
$ npm link
$ cd somewhere
$ npm -g yo
$ yo lob # to test the full generator
# or try out each sub-generator
$ yo lob:ci
$ yo lob:node-version
$ yo lob:release
$ yo lob:test

@robinjoseph08 updated.

ping.
I know this is a lower priority but want to move it along before too much time passes. Feel free to reassign if there's a lot on your plate or I'm happy to review or discuss in person.

LGTM! Sorry for the delay on this.
One other small thing that isn't totally necessary to say "eslint-config-lob" in the .eslintrc. You can just say "lob" and it'll look for eslint-config-lob.

@robinjoseph08 updated in a new commit
@charlesbjohnson ready for review.

Very cool! LGTM


Rescue expression

We need to support rescuing an expression, not just a variable. At the moment the rescued variable is a token, but it should be a node. A couple of examples:
rescue => foo       # LocalVariableWrite
rescue => foo.bar   # CallNode (foo.bar=)
rescue => foo[]     # CallNode (foo.[]=)

Now done


Refactor based on PR #11

This PR does some basic refactoring and adds some typing based on PR#11, so check that before checking this :)
I'll rebase this after the other one is merged

moved to #17


Fix set-value dependency vulnerability

Fix performed via npm audit fix
Closes #270

For posterity, it'd be good to document which of our dependencies brought in the offending package, and whether there was a renovate PR that would have fixed the vulnerability.

It's a pretty deep dependency chain...
set-value > union-value > cache-base > base > snapdragon > braces > chokidar > nodemon
there may be other chains, but there was no pending renovate PR for any of these that I saw.


Setup test environment

Setup 3 node network for devnet on kubernetes

Deployed on testnet vdc: substratedevnet
3 nodes running latest master

substrate01.threefold.io
substrate02.threefold.io
substrate03.threefold.io

Currently blocked on upgrading the websocket connection to a secure websocket connection

Blocked on https://github.com/threefoldtech/js-sdk/issues/3190

Connection is upgraded to secure websocket:
wss://substrate01.threefold.io

Graphql syncing on explorer.devnet.grid.tf/graphql

Fully synced and operational


Support dynamic attributes configuration for Jmix Data Repositories

By default, dynamic attributes are not loaded for entities. Add ability to load dynamic attributes while loading entities. Configuration should be performed using repository method annotation.

Implemented in Haulmont/jmix-core#184


Inform user if logged in from a new device (part 2)

This issue is imported from pivotal
We create a cookie and a database entry for each device a user logs in to (https://www.pivotaltracker.com/story/show/176555449). After a few months, we can start sending notifications to users who log in to a new device. The email should inform the user on the login, and point to a password-reset is he thinks this is an error.

Extra: Show the IP-adress and (geo-ip ) location of the sign in.

Hello <Name>,

It looks like someone tried to log into your eduID account from a new location. If this isn\'t you, we suggest changing your password as soon as possible.

ip-address: <IP_ADDRESS>
Location: Utrecht, the Netherlands

``` (Peter Havekes - Sep 30, 2022)

@okkeh To prevent leaking user information to the geolocation service we can do one of two things:

Switch to the database download instead of the API call
Replace the last part of the ip-address before sending the API call (e.g. <IP_ADDRESS> is queried as <IP_ADDRESS>)

The first option is the most privacy friendly, and reduces dependency of an external API call. The databse download seems to be available in the free version : https://dev.maxmind.com/geoip/geolocate-an-ip/databases?lang=en   (Peter Havekes - Oct 17, 2022)


Feature Request: Option for authenticating with api key

I would like support for authenticating with a token.  There is the auth.token service on websocket api.
Id be willing to contribute to this.  I'm not too familiar with websocket however, so I need to take a closer look.
My idea would be to create mixin classes to provide methods for connecting via either auth method in the  CachingMachine class.  This would also enable other auth methods.  A separate class method like create_from_token could be used.

I just updated to TrueNAS last week and was hoping to get to something like this soon, so I certainly like the idea :)
I think we can get away with just adding an auth token argument to create and connect in CachingMachine, and then in connect we do some validation to make sure either auth_token or username and password are passed in.  We'd also need to update TrueNASWebSocketClientProtocol as well.  We could either make a new base class and have TrueNASUsernamePasswordWebSocketClientProtocol and TrueNASTokenWebSocketClientProtocol, or just do the multi-arg thing.  I don't have a strong preference to be honest.
Lastly, would be to write some tests to verify things with the auth token.  We'd want to rename the two existing methods on TestCachingMachineAuth for testing auth, and then add two more for the token auth.
I'm more than happy to help you through this, if you want to try and tackle it.

Changed this to be a feature request for api key since that is actually what I wanted.

Changed this to be a feature request for api key since that is actually what I wanted.


You may need an appropriate loader to handle this file type.

I have the following issue:
./~/react-calendar-timeline/src/lib/Timeline.js
Module parse failed: C:\Axity\lab\projects\lms\dev\lms-admin\node_modules\react-calendar-timeline\src\lib\Timeline.js Unexpected token (73:19)
You may need an appropriate loader to handle this file type.
|
| export default class ReactCalendarTimeline extends Component {
|   static propTypes = {
|     groups: PropTypes.oneOfType([PropTypes.array, PropTypes.object]).isRequired,
|     items: PropTypes.oneOfType([PropTypes.array, PropTypes.object]).isRequired,

Can somebody help me?

Check out this issue.
Alternatively, in your code, try importing the Timeline from the lib directory. From the docs:
// import Timeline from 'react-calendar-timeline'  // ESnext version
import Timeline from 'react-calendar-timeline/lib' // ES5 version

Adding /lib cleared that error but now I have a different error that looks similar.
./~/react-calendar-timeline/lib/lib/Timeline.css Module parse failed: /Users/jasonprestosh/response_project/node_modules/react-calendar-timeline/lib/lib/Timeline.css Unexpected token (1:0) You may need an appropriate loader to handle this file type. | .react-calendar-timeline * { |   box-sizing: border-box; } |


Don't map gx and Q in select mode

If you'd like for me to include changes to netrw.vim in the distribution, please send me the changes (diff file, the complete thing, etc).


(BUG) The user is able to withdraw the G$ by using its own wallet address

Preconditions:
The user is logged in
The wallet address copied
The send to address page is opened on the same account that the address was copied
Steps to reproduce:

Form the send request via the "Send to address" button by using its own wallet address
Pay attention to the successful performing of the transaction (also the send card is appeared on the dashboard)

Actual result: The user is able to withdraw the G$ by using its own wallet address
Expected result: I guess, due to the #1815 issue the G$ shouldn't be withdrawn by using its own wallet address and the pop-up is needed for user in this cause too
Checked on DEV V0.21.1-0
LG V30+ // Android 8.0 // Google Chrome 81.0.4044.138
Desktop: Windows 10 // Google Chrome Version 83.0.4103.6
Video:  https://www.screencast.com/t/IEo1JRz5

The user is unable to withdraw the G$ by using its own wallet address cause the address is validated on the stage when the user pasts the address into the field
The "You can't send  G$'s to yourself, you are already own your G$'s" error text is displayed below the field
Checked on DEV V0.22.0
LG V30+ // Android 8.0 // Google Chrome 81.0.4044.138
Desktop: Windows 10 // Google Chrome 83.0.4103.61


Unable to run the NavigationTests.kt for testing Navigation Component

URL of codelab
https://developer.android.com/codelabs/android-basics-kotlin-test-navigation-components?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-kotlin-unit-3-pathway-2%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fandroid-basics-kotlin-test-navigation-components#5
In which task and step of the codelab can this issue be found?
While running the tests in android studio.
Describe the problem
Getting a runtime error while running the NavigationTests.kt file.
java.lang.AbstractMethodError: abstract method "androidx.navigation.NavDestination androidx.navigation.Navigator.navigate(androidx.navigation.NavDestination, android.os.Bundle, androidx.navigation.NavOptions, androidx.navigation.Navigator$Extras)"
at androidx.navigation.NavGraphNavigator.navigate(NavGraphNavigator.java:71)
at androidx.navigation.NavGraphNavigator.navigate(NavGraphNavigator.java:28)
at androidx.navigation.NavController.navigate(NavController.java:1049)
at androidx.navigation.NavController.onGraphCreated(NavController.java:633)
at androidx.navigation.NavController.setGraph(NavController.java:586)
at androidx.navigation.NavController.setGraph(NavController.java:551)
at androidx.navigation.NavController.setGraph(NavController.java:533)
at com.example.wordsapp.NavigationTests.navigate_to_words_nav_component$lambda-0(NavigationTests.kt:33)
at com.example.wordsapp.NavigationTests.$r8$lambda$jLCcGvWkB9P5E7T4FbIqpa_QZ-A(Unknown Source:0)
at com.example.wordsapp.NavigationTests$$ExternalSyntheticLambda0.perform(Unknown Source:4)
at androidx.fragment.app.testing.FragmentScenario.onFragment$lambda-6(FragmentScenario.kt:397)
at androidx.fragment.app.testing.FragmentScenario.$r8$lambda$Iy3YR7P8PCct5YCPTCTE7shTmro(Unknown Source:0)
at androidx.fragment.app.testing.FragmentScenario$$ExternalSyntheticLambda0.perform(Unknown Source:6)
at androidx.test.core.app.ActivityScenario.lambda$onActivity$2$ActivityScenario(ActivityScenario.java:660)
at androidx.test.core.app.ActivityScenario$$Lambda$4.run(ActivityScenario.java:652)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.app.Instrumentation$SyncRunnable.run(Instrumentation.java:2207)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Steps to reproduce?

Go to...
Click on...
See error...

Versions
Android Studio version:
Android Studio Chipmunk | 2021.2.1
API version of the emulator:
Pixel 3a API 29
Additional information
Include screenshots if they would be useful in clarifying the problem.

I have same error, but as seen somewhere, you can downgrade in gradle(:app) test navigation to 2.3.5 and it works
Here what working impementation looks like:
androidTestImplementation 'androidx.navigation:navigation-testing:2.3.5'
P.s. don't forget to sync gradle before launching test.

I had same error.
In my case, the problem was that navigation-testing and navigation-fragment had different versions. Why don't you try checking they are same version in build.gradle(:app)?

Yes, that was the case. Thank you!


Using docker-containers with multiple containers on the same image results in parallel redundant pulls

Currently if you use docker-containers and set multiple container services to the same image. If that image doesn't exist in the local image list, they all end up pulling that image all at the same time. This congests the bandwidth and results in wasted time.
I have a suggestion which is to extend the option dependsOn attribute to also include other systemd services.
That way you could make running the containers all wait on a systemd service that pulls in the relevant image once.
https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/virtualisation/docker-containers.nix

This has now a PR which adds dependsOnService to allow arbitrary service dependencies in the containers.


PostprocessBuildPlayer_GA doesn't add framework and libs in the XCode project

My environment is:
SO: OSX 10.11.5
Unity: 5.3.3f1
XCode: 7.3.1
I followed the guide https://developers.google.com/analytics/devguides/collection/unity/v4/devguide#ios
I did point 2 and 3.
But the script PostprocessBuildPlayer_GA didn't add the frameworks and libs in the Unity-iPhone.xcodeproj/project.pbxproj file.
In my environment the llbs libz.dylib and libsqlite3.dylib didn't exist (see issue #131).
The problem is not the wrongs libs, because I tried to fix with the correct libs (libz.tbd, libsqlite3.tbd) but did't work.

Hi,
PostprocessBuildPlayer deprecated Unity 5.3
You can insert PostprocessBuildPlayer.cs to some Editor folder and it will work 👍
`using System;
using System.Diagnostics;
using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;
public class PostProcessBuildPlayer {
[PostProcessBuildAttribute(1)]
public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject) {
    UnityEngine.Debug.Log("Running post-process build scripts.");

    FileInfo[] postProcessFiles = new DirectoryInfo(Environment.CurrentDirectory).GetFiles("PostprocessBuildPlayer_*", SearchOption.AllDirectories);
    foreach (var file in postProcessFiles) {
        if (file.Name.EndsWith(".meta")) {
            continue;
        }

        UnityEngine.Debug.Log("Running post-process " + file);
        Process.Start(file.FullName, pathToBuiltProject);
    }
}

}
`

Using the old scripts is no longer necessary, I've submitted a PR #138 to support the new build pipeline using the unity provided tools from the UnityEditor.iOS.Xcode namespace


azure-appconfiguration content validation issue for learn microsoft website.

ErrorInfo: Extra label found: <xref
ErrorLink: https://learn.microsoft.com/en-us/python/api/azure-appconfiguration/azure.appconfiguration.aio.azureappconfigurationclient?view=azure-python
ErrorLocation:

Appears 1 times , label : <xref

Note: ExtraLabel test have 4 issues, currently only one is shown here. For more details, please click on the excel download link below to view.
2.
ErrorInfo: Unnecessary symbols found: ~
ErrorLink: https://learn.microsoft.com/en-us/python/api/azure-appconfiguration/azure.appconfiguration.aio?view=azure-python
ErrorLocation:

Appears 1 times ,  Unnecessary symbol: ~ in text: type credential: ~azure.core.credentials_async.AsyncTokenCredential

Note: UnnecessarySymbols test have 5 issues, currently only one is shown here. For more details, please click on the excel download link below to view.
3.
ErrorInfo: Some cells in the table are missing content
ErrorLink: https://learn.microsoft.com/en-us/python/api/azure-appconfiguration/azure.appconfiguration?view=azure-python
ErrorLocation:

Appears 1 times , location : https://learn.microsoft.com/en-us/python/api/azure-appconfiguration/azure.appconfiguration?view=azure-python#packages

Note: TableMissingContent test have 6 issues, currently only one is shown here. For more details, please click on the excel download link below to view.

ErrorInfo: Extra label found: <xref
ErrorLink: https://learn.microsoft.com/en-us/python/api/azure-appconfiguration/azure.appconfiguration.aio.azureappconfigurationclient?view=azure-python
ErrorLocation:

Appears 1 times , label : <xref

Note: ExtraLabel test have 4 issues, currently only one is shown here. For more details, please click on the excel download link below to view.

ErrorInfo: Unnecessary symbols found: ~
ErrorLink: https://learn.microsoft.com/en-us/python/api/azure-appconfiguration/azure.appconfiguration.aio?view=azure-python
ErrorLocation:

Appears 1 times ,  Unnecessary symbol: ~ in text: type credential: ~azure.core.credentials_async.AsyncTokenCredential

Note: UnnecessarySymbols test have 5 issues, currently only one is shown here. For more details, please click on the excel download link below to view.

ErrorInfo: Some cells in the table are missing content
ErrorLink: https://learn.microsoft.com/en-us/python/api/azure-appconfiguration/azure.appconfiguration?view=azure-python
ErrorLocation:

Appears 1 times , location : https://learn.microsoft.com/en-us/python/api/azure-appconfiguration/azure.appconfiguration?view=azure-python#packages

Note: TableMissingContent test have 6 issues, currently only one is shown here. For more details, please click on the excel download link below to view.


Cluster support

I will soon have micro in production. I know my containers have 4 cores but micro only uses one(1). I know zeit loves the 0-config and no-api api but what would you accept as a PR for supporting clusters?
I've looked at the micro-cluster repo, and I don't think it's what I want. First, http-proxy is not a load balancer but cluster has predictable behavior and uses IPC to make sure child processes are running before marking them in (say for round-robin). Second, I would prefer the cluster grow to the size of its container rather than having to configure it.
I believe the performance gains could be substantial for a service under heavy load.
Ideas to control behavior (not mutually exclusive):

[ ] 0-config

always 1 core in development env
always 50% cores in production env
always max cores in performance env
PRO: familiar, simple
CON: may hide behavior for non-thread-safe operations until in a prod/perf env

[ ] cli flag

default 1 core
override behavior with flags (--cores, --sched)
PRO: extensible, opt-in
CON: requires editing deploy/run scripts

[ ] dot-file (.micro?)/package.json prop

default 1 core
override cluster behavior with config (cores: % or #, sched: round-robin or none, etc.)
PRO: extensible, opt-in, if running under watch, service will auto-restart on change
CON: requires changing config file to change behavior

[ ] runtime api

default 1 core
override behavior with call to api
PRO: allows changing behavior without restarting, allows for container manager integration
CON: api calls need to be secure and not interfere with app calls

Additional features:

[ ] rolling replacement - after a /src file changes, the worker pool cycles each thread one-at-a-time until the service is refreshed. Leads to 0 dropped requests.

Decisions to make:

is micro the controller and app code is the worker? OR is micro cloned in each thread?

hi @AutoSponge, have you seen micro-cluster?

@iamstarkov yes, my comments are in the second paragraph.

@AutoSponge I believe scaling should be done by the cloud provider, not by micro itself. Did you look at pm2 for clustering micro app?

@floatdrop I agree horizontal container scaling should be handled by the cloud provider. My provider gives me containers with 4 cores. Unless I'm doing file reads, node.js will never use more than 1. So, I'm wasting capability that I'm paying for. However, if I have a thread-safe app, I can use node's cluster module to multithread the app and utilize the containers resources.
I'll look at pm2.

I rewrote test-listen for clustering as a precursor to wrapping micro. Any thoughts?
const cluster = require('cluster')
const cpus = require('os').cpus().length
const debug = require('debug')('cluster')
const path = require('path')
debug(`master process started on ${process.pid}`)
const workersCount = parseInt(process.argv[2]) || cpus
let createWorkers = workersCount

cluster.setupMaster({
  exec: path.join(__dirname, 'test-listen'),
  silent: false
})
cluster.on('exit', (worker, code, signal) => {
  if (worker.exitedAfterDisconnect === true) {
    debug('Oh, it was just voluntary – no need to worry')
  }
})
cluster.on('message', (worker, message) => {
  debug({ worker: worker.id, message })
})
const port = new Promise(resolve => {
  cluster.once('listening', (worker, { port }) => {
    const address = `http://localhost:${port}/`
    debug(`cluster of ${workersCount} workers started at ${address}`)
    resolve(address)
  })
})

while (createWorkers--) {
  cluster.fork()
}

module.exports = () => port

Thank you for the effort you've put into creating this issue. I understand that micro-cluster might not be fully suitable for you yet, but I definitely think that we should move the discussion to here and then consider improving it. This definitely won't be a core feature, as we want to keep it as slim and light as possible (huge rewrite coming). 😊


HDR too dark

Hey guys,
i'm using the latest v19 with an Elgato HD60X. Works perfectly with the pre generated LUT.
My only issue is, that HDR content is captured way to dark. When i push the hardware brightness to 170 it's perfect on HDR, but too bright on SDR.
Is there a way too automatically switch that when SDR/HDR changes?

Hi
If you are using pre-generated LUT table you should leave grabbers controls like brightness on default (0) and do not change them. Are you sure that custom LUT tables is loaded correctly after you uploaded (verify it's location in HyperHDR logs when HDR tone mapping is activated). Did you enable HDR tone mapping in USB grabber? There is no auto-detection of SDR/HDR currently.


gitea doesn't run with readonly git config

Stating form is executed, but starting will be rejected with frozen git config
> nix develop
> TAGS="bindata sqlite sqlite_unlock_notify" make build
> ./gitea web
2024/06/04 12:11:39 routers/common/db.go:23:InitDBEngine() [I] Beginning ORM engine initialization.
2024/06/04 12:11:39 routers/common/db.go:30:InitDBEngine() [I] ORM engine initialization attempt #1/10...
2024/06/04 12:11:39 ...s/install/install.go:594:SubmitInstall() [I] First-time run install finished!
2024/06/04 12:11:42 cmd/web.go:355:listen() [I] HTTP Listener: <IP_ADDRESS>:3000 Closed
2024/06/04 12:11:42 cmd/web.go:111:showWebStartupMessage() [I] Gitea version: 1.23.0+dev-177-g433963e52c built with GNU Make 4.4.1, go1.22.2 : bindata, sqlite, sqlite_unlock_notify
2024/06/04 12:11:42 cmd/web.go:112:showWebStartupMessage() [I] * RunMode: prod
2024/06/04 12:11:42 cmd/web.go:113:showWebStartupMessage() [I] * AppPath: /home/kachick/repos/github.com/go-gitea/gitea/gitea
2024/06/04 12:11:42 cmd/web.go:114:showWebStartupMessage() [I] * WorkPath: /home/kachick/repos/github.com/go-gitea/gitea
2024/06/04 12:11:42 cmd/web.go:115:showWebStartupMessage() [I] * CustomPath: /home/kachick/repos/github.com/go-gitea/gitea/custom
2024/06/04 12:11:42 cmd/web.go:116:showWebStartupMessage() [I] * ConfigFile: /home/kachick/repos/github.com/go-gitea/gitea/custom/conf/app.ini
2024/06/04 12:11:42 cmd/web.go:117:showWebStartupMessage() [I] Prepare to run web server
2024/06/04 12:11:42 routers/init.go:73:mustInitCtx() [F] code.gitea.io/gitea/modules/git.InitFull(ctx) failed: failed to set git global config diff.algorithm, err: exit status 255 - error: could not lock config file /home/kachick/.config/git/config: Permission denied
 - error: could not lock config file /home/kachick/.config/git/config: Permission denied

Looks like same problem as https://github.com/go-gitea/gitea/issues/28810

If I use NixOS  and no develop versions, this module maybe useful

https://forgejo.org/

Part of GH-504?

See https://github.com/kachick/dotfiles/pull/850


fixing clear_cache runner

Moving private functions calls to utils by exposing get_cache_backend function to be used by the runner.
This will also fix tests where clear_cache runner is used (test_impersonating_master_does_not_override_issue_param_overrides).

Thanks a lot for working on this and calling out some problems!
Exposing get_cache_backend as a public function in combination with forcing local configuration loading in there is not the correct fix imo, https://github.com/salt-extensions/saltext-vault/pull/3/commits/3b2c6e76e8c0bf811a2c70cafa00c7e6ad75252f is how it was intended. Note that only the runner needs to pass force_local=True to avoid confusion during impersonation, everything else must not ever pass it.
I'm also not a fan of the cache module depending on the factory and the other way around, but that's a minor nitpick.

Ahh...yes..Thanks!
Really forget that private in Python is for the whole module, not like in GO only for directory (which is a module).
Fixed and pushed.

Really forget that private in Python is for the whole module

It's just convention, you can access everything in Python, even on third party libraries. If you do, you have to assume it will break at some point though. ;)


Stats output dir filename issues

Principal fix here is to only use the basename of a path when mangling input names into stats-dir
output filenames, so that we are much less likely to hit a path-name limit and drop a stats output
on the floor (this was happening in practice in CI).
Secondary fix is just a harmless-but-silly typo I noticed while in there.

@swift-ci please test and merge

@swift-ci please test Linux platform

Build failed
Swift Test Linux Platform
Git Sha - 0e5b982d2561bc7c102e2abe984e19241735aaa2

@swift-ci please clean test Linux platform


Unused LEDs on

It may sound primitive.
I have just started testing a new APA strip (150+ LED) with 88 LEDs in use. I'm bit surprised to find that 89th & 90th LEDs remains on & emits blue/white light even when hyperion is not receiving signal. Killing Hyperion switches them off.
So I gave some garbage Hscan/vscan value for 89th /90th LEDs. Like a maze now 91 & 92nd LEDs are on.
What could be the reason? Anyone else faced the same?

I have to admit, i never got the idea to use a strip without using the whole one.
Sounds like a bug.

The end frame in the apa protocol is sized based on the number of LEDs you have defined in the config file.
Can you define all of your physical LEDs in the config with nonsensical hscan values ?
We could alter the code to have a defines number of physical LEDs, but it's obviously simpler to just define all the LEDs.

On second thoughts, maybe we should add the config option. Some effects that index LEDs by number will misbehave with the above setup

I will try to do a proper fix - i know exactly what to do.

As long we can´t save hypercon device settings it is very frustrating :)

Huh ?

Its lovely actually to have little backlit when your TV/ hyperion is not in use.
But as we are purist, so others facing similar issue - define all the LEDs ( used + unused) in your hyperion config.
Give hscan/vscan 0 for unused LEDs - till its fixed.
		{ 			"index" : The index of the led, 		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0000 }, 			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0000 } 		}

as long :)
Hyperion have a new home!
Please read the announcement post and the changelog for V1.02.0
www.hyperion-project.org
Please have a look at our new wiki! (EN/DE)
wiki.hyperion-project.org
All discussions/questions/development threads should be moved to the new forum!
We will close this issue now

yes, yes, I know i should be using the forum....
@apurbas Can you test my fixes? I have no real hardware so have to use debug printf to see if it works.
If you can build from source:
https://github.com/penfold42/hyperion/tree/apa-fix
If you want to cheat https://github.com/penfold42/hyperion/blob/apa-fix/hyperiond.test-binary

Hehe, no problem to use this tracker for code related things too. We just want to move the discussion stuff to the forum. So i closed a little here and there with this notice :)
Thank you for the created thread!

apurbas is already registered at the forum :)

I think once a clear defect is identified we should definitely use this so we have clear traceability.
Is there a cool way to cross reference between the  forums and GitHub ?

@apurbas any news ?
@brindosch you want a pull request ?

as reported at the forum it seams not to work :)

Nothing for days and then I look away for a few hours !

Sorry, as you see i work through the list slowly :)


Add platform requirements

There's the option to set platform requirements for Composer. As those are skippable, they do no harm, but might show a user how to set up an OS that is capable of delivering the full feature set that WordPress has under its hood.
Analysis of the packages that WP is able to use in core:
        Extension  Matches REF        EXT min/Max PHP min/Max     PHP all
        -----------------------------------------------------------------
        Core               Core                   4.0.0           5.3.0
*       PDO                PDO        5.1.0       5.1.0
        Reflection         Reflection 5.0.0       5.0.0
        SimpleXML          SimpleXML  5.0.0       5.0.0           5.0.1
     C  com_dotnet         user                   4.0.0
*       ctype              ctype      4.0.4       4.0.4
*       curl               curl       4.0.2       4.0.2           4.0.4
        date               date       4.0.0       4.0.0           5.2.0
*       dom                dom        5.0.0       5.0.0
°      ereg               ereg       4.0.0       4.0.0
*       exif               exif       4.2.0       4.2.0
~       fileinfo           fileinfo   1.0.5-dev   5.3.0
        filter             filter     0.9.4       4.0.0           5.0.0
~    C  ftp                ftp        4.0.0       4.0.0           5.0.0
*    C  gd                 gd         4.0.0       4.0.0           4.3.2
*       gettext            gettext    4.0.0       4.0.0
        hash               hash       1.1         4.0.0           5.6.0beta1
*       iconv              iconv      4.0.5       4.0.5           5.0.0
*    C  imagick            user                   4.0.0           5.1.3
*       intl               intl       2.0.0b1     5.2.4           5.4.0RC3
*       json               json       5.3.0       5.3.0           5.5.0
     C  libsodium          user                   4.0.0
*       libxml             libxml     5.2.11      5.2.11
        mbstring           mbstring   4.0.6       4.0.6           5.0.0
*    C  mcrypt             user                   4.0.0
*       memcache           memcache   0.2         4.3.3
*    C  mysql              user                   4.0.0           5.2.3
*    C  mysqli             user                   4.0.0           5.0.0
*    C  openssl            user                   4.0.0           5.3.0
     C  pcre               pcre       4.0.0       4.0.0           5.2.4
*       posix              posix      4.0.0       4.0.0
*    C  sockets            user                   4.0.0           4.3.0
        spl                spl        5.1.2       5.1.2           5.2.0
*    C  ssh2               user                   4.0.0
        standard           standard   4.0.0       4.0.0 => 5.6.16 5.4.0
        tokenizer          tokenizer  4.2.0       4.2.0
     C  xdiff              user                   4.0.0
*    C  xml                xml        4.0.0       4.0.0           4.0.5
*    C  xmlreader          user                   4.0.0           5.0.0
*       zip                zip        1.6.0       5.2.0
*    C  zlib               zlib       4.0.4       4.0.4           5.4.0
        -----------------------------------------------------------------
        Total [41]                                5.3.0 => 5.6.16 5.6.0beta1

During the Slack discussion with @Giuseppe-Mazzapica we found the following things that are worth documenting:

Some libraries might be mandatory like gettext and intl for translations and locale information
While some packages are bundled with PHP core, they might be needed to be set for running the configure process like enabling older MySQL drivers (PHP 5.4+ comes with mysqlnd while WP uses mysql, mysqli) or --enable-mbstring.

Examples

ext-gd, ext-libjpeg-turbo, …
lib-curl, lib-iconv, …

We are already requireing PHP 5.3+ which means that most of the things WP needs (and that are listed in the table in OP) are always there.
Moreover I don't want to add requirements for things that are not real requirements.
AD mysqli is always included in PHP 5.3+.
gettext and intl are bundled with PHP 5.3+, but needs special flag when building PHP from sources, so makes sense add them as dependencies.
Regarding GD and ImageMagick, the former is bundled (but needs flags on compile) while ImageMagick needs to be installed separately.
WordPress can work with the one or the other, but Composer does not provide the possibility to require one or the other. We could maybe add suggestion for ImageMagick.
This is what I propose:
Requirements

ext-gettext
ext-intl

Suggestions

ext-imagick

@Giuseppe-Mazzapica I'll take a look at the PHP configure flags list and try to go through the requirements one by one. Else the requirements and suggestions LGTM.

Probably ext-curl should go on suggestions as well

Same goes for ext-gd or ext-imagick – you know the conflict I am talking about now…

WordPress can work with the one or the other, but Composer does not provide the possibility to require one or the other.
Yes it does, through virtual packages. However, the actual packages that are pulled in need to support it.
So, you require a virtual package like so:

require: {
   "wordpress/image-manipulation-library": "*"
}

Then you can have both gd & imagick do this:
provide: {
   "wordpress/image-manipulation-library": "1.0.0"
}

You'd need to provide a custom wrapper package for both of these, though, as I don't suppose that they come with any sort of provide clause out-of-the-box.

Note to myself: Trac–Ticket–#33055 was merged in core, so ext-curl can go on the list.

Ok, to shorten this I referreed https://github.com/johnbillion/ext just trusting John Blackbourn.
I've added requirements to both v2 and v3. I guess this can be clsed.
Thanks anyone involved.


Fix EVM CloudWatch Alerts

Customers have not been getting email alerts surrounding EVM cloud infrastructure health check status changes. The email alerts are working with test events, so there must be something wrong with CloudWatch or between CloudWatch and the SNS topic. Debug and fix this so alerts start flowing again.
See Also

eos-evm issue 602 - Funnel EVM Health Checks into CloudWatch
engineering issue 48 - Collaborate with Operations on Unified Dashboarding Solution
engineering issue 49 - Create Bot to Alert via IM on Specific Metrics
eos-evm issue 603 - SMS Alerting for EVM Infrastructure Health Checks
engineering issue 65 - Email Alerting for EVM Infrastructure Health Checks
telegram-bot issue 1 - Open-Source This Repo
engineering issue 57 - Create Telegram Service Account
engineering issue 58 - Create EVM Testnet Alert Channel Using Telegram Service Account
engineering issue 64 - Create EVM Mainnet Alert Channel Using Telegram Service Account
engineering issue 66 - Fix EVM CloudWatch Alerts

This is considered done

Alerts are flowing in US region(s), but there are technical limitations preventing alerts for APAC infrastructure from flowing. These technical limitations will be addressed in a subsequent ticket, linked above and in the parent epic. This does not impair EVM readiness because of the way the system is architected. APAC infrastructure outages will failover to US infrastructure, which saw alerts fixed as part of this ticket.


Add Redux to our application

State Management
One of the main problems that single page applications tend to face is having some sort of globalized app state that is accessible to every part in the component tree.
Redux is a solution that implements the singleton pattern in order to solve this problem. Concept is simple. Instead of components communicating with each other to know each other's states, components can send their states to something called a redux store. From that store, any component can easily access whatever available state there is.

For React apps, we'll need to install:

redux
react-redux
redux-devtools-extension
redux-observable

yarn add redux react-redux redux-observable

The redux package provides a basic API to set the store and reducers. The react-redux package provides use with a <Provider store={/* store constant here */} /> component to wrap around our App's entry point. It also provides hooks such as useSelector to pick states from the store. The redux-observable package is for async side effects, since there is no async capacities in redux due to the requirement for reducers to be pure functions.

High level diagram of how redux works:

Acceptance Criterias
For the scope of this ticket, here are the AC:

Initialize an empty store
import that store constant into the _app.tsx
Wrap the <Component /> with the <Provider store={/* store you imported here */} >
Install the redux devtools browser add on. The one for Chrome can be found here.
Look up how to set up our store to be listened by the redux add-on. Section 1.3 from this is relevant to us.

Added Redux Successfully.


Remove: SAPIEN.PowerShellStudio version <IP_ADDRESS>

Requires a specific user agent to download now

[X] Have you signed the Contributor License Agreement?
[X] Have you checked that there aren't other open pull requests for the same manifest update/change?

[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.6 schema?

Microsoft Reviewers: Open in CodeFlow

URL: https://sapien-sps.s3.amazonaws.com/SPS23Setup_5.8.223_052623_x64.exe
Response status code does not indicate success: 403 (Forbidden).
(Automated message - build 830)


Problem with DEFS "code" generation

genobj.c does not correctly generate records for defs ... if defs is not follwed by defb, defw or defm, COM file results incorrect
...working on it...

FIXED


[93] - feat: llm command to generate spec using prompt

Checklist
Make sure you have

[x] Added relevant @nestjs/swagger decorators wherever required
[x] Added test cases (unit and integration) wherever required

Description
Describe the aim/objective of this PR
Steps to test
Add steps to run and test teh desired changes
References
Add relevant links and screenshots outlining the working status of this PR
Demo
If relevant to your change, attach a screen recording showcasing that the change is working and giving desired results.

https://github.com/user-attachments/assets/b3fe954c-38dd-4921-b275-aae5ce3c0093


Type check error fix: Explicitly build DeviceQueueCreateInfo within queue_infos

This failed to type check without an explicit call to build() when trying to pass this into queue_create_infos
let info = vk::DeviceCreateInfo::builder()
    .queue_create_infos(&queue_infos) // type error without this fix
    .enabled_layer_names(&layers)
    .enabled_extension_names(&extensions)
    .enabled_features(&features);

Can you show more symptoms of your problem? In my case, all is working great without .build()

I just checked it again without build and it's fine. It might have been an aberration with the rust type checker LSP (I'm using Zed).


fix(dependency): fix gulp-babel dependency version

Sets the dependency to the same version as the skeleton navigation app
fixes #1

Oh. I got it. Ok, I'm getting ready to update every repo to the latest version of Babel as part of tomorrow's release cycle. So, I think that update will fix this issue. Closing this for now.

Ok even better :+1:


Cache clear required for previews to work when no previous sites existed

Package containing the bug
next (Drupal module)
Describe the bug
We discovered that viewing a node before Next.js sites were created, and then going to view after, did not show the preview. That is due to missing cacheable metadata.
This probably happens, as well, when next entity type config are also created.
    $cache_tags = Cache::mergeTags(
      $this->entityTypeManager->getDefinition('next_site')->getListCacheTags(),
      $this->entityTypeManager->getDefinition('next_entity_type_config')->getListCacheTags(),
    );
    (new CacheableMetadata())
      ->addCacheTags($cache_tags)
      ->applyTo($build);

Expected behavior
Once a Next.js site is added, previews work.
Steps to reproduce:

First create a nod
Then view node as normal
Create next site
View node, no preview
😢

Additional context
Add any other context about the problem here.

Opened this before trying reproduce the report on our end, and I can't seem to.
\Drupal\Core\Render\MainContent\HtmlRenderer::prepare will load the rendered node from render cache. But the output from \Drupal\next\Render\MainContent\HtmlRenderer::prepare with the iframe shouldn't be render cached at all, or under dynamic page cache, unless anonymous and shoved into page_cache

I can't reproduce this, I should have checked before opening.


How to Train Vall-e for a Singers Voice

@enhuiz Can you please outline a process how can we train the model for a particular singer.

number of songs required ? ( Singers Vocals )
length of vocals files.
idean trainin parameters for ar.yml and nar.yml

Please refer to official thesis

I don't know whether this work can be used for a singer's voice. I guess for the singer's voice you need to control the pitch, but the model does not take the pitch as input.


Support replaying projections / views

It would be nice to automate replaying projections / views created with subscriptions.

Hi!
I think this is possible already, but it can be a bit cumbersome :). All subscriptions take a StartAt parameter, for example when using MongoDB, you can do:
subscriptions.subscribe("mySubscriptionId", StartAt.subscriptionPosition(MongoOperationTimeSubscriptionPosition(BsonTimeStamp(0))) { event ->
 ...
}

This will start the subscription from the earliest position available in the MongoDB oplog. Of course, this is MongoDB specific so we should probably come up with something better. But speaking of oplog, MongoDB can run out of oplog and thus you can't use the oplog to start from the beginning. For this reason, I've created a utility called "catch-up subscription" (see here) whose responsibility is to read from the event store to catch-up with the current position of a subscription and then automatically switch over to listen to new events. Today, this is what you should use in Occurrent to achieve what you're asking. Here's an example:
@Bean
fun catchupSubscriptionModel(storage: SubscriptionPositionStorage, mongoTemplate: MongoTemplate, eventStoreQueries: EventStoreQueries): SubscriptionModel {
    val mongoSubscriptionModel = SpringMongoSubscriptionModel(mongoTemplate, EVENTS_COLLECTION_NAME, TimeRepresentation.DATE)
    val durableSubscriptionModel = DurableSubscriptionModel(mongoSubscriptionModel, storage)
    return CatchupSubscriptionModel(
        durableSubscriptionModel, eventStoreQueries,
        CatchupSubscriptionModelConfig(useSubscriptionPositionStorage(storage))
    )
}

A catch-up subscription will wrap a subscription model but before using it, it'll start replaying all historic events. Once the subscription has caught up it will not replay again but just continue from the current position (if the position has been persisted to the SubscriptionPositionStorage). You can see an example here (in the Bootstrap.kt class).
The catch-up subscription module also contains on implementation of SubscriptionPositioncalled TimeBasedSubscriptionPosition that you can use like this:
subscriptions.subscribe("mySubscriptionId", StartAt.subscriptionPosition(TimeBasedSubscriptionPosition beginningOfTime())) { event ->
 ...
}

or
subscriptions.subscribe("mySubscriptionId", StartAt.subscriptionPosition(TimeBasedSubscriptionPosition.form(OffsetDateTime.now().minusDays(3))) { event ->
 ...
}

Maybe this class should be moved outside of the catchup-subscription module to avoid users having to do MongoOperationTimeSubscriptionPosition(BsonTimeStamp(0)). But,  I'm not entirely sure since it can be misleading (at least for mongodb) since there's no way, that I know of, to know if MongoDB has enough oplog to actually accommodate the request. If there's not enough oplog available, it will just start from the begging of the oplog that is present (which might not contain the first event!) and you won't get an error (see my stackoverflow question).

Hi!
I think this is possible already, but it can be a bit cumbersome :). All subscriptions take a StartAt parameter, for example when using MongoDB, you can do:
subscriptions.subscribe("mySubscriptionId", StartAt.subscriptionPosition(MongoOperationTimeSubscriptionPosition(BsonTimeStamp(0))) { event ->
 ...
}

This will start the subscription from the earliest position available in the MongoDB oplog. Of course, this is MongoDB specific so we should probably come up with something better. But speaking of oplog, MongoDB can run out of oplog and thus you can't use the oplog to start from the beginning. For this reason, I've created a utility called "catch-up subscription" (see here) whose responsibility is to read from the event store to catch-up with the current position of a subscription and then automatically switch over to listen to new events. Today, this is what you should use in Occurrent to achieve what you're asking. Here's an example:
@Bean
fun catchupSubscriptionModel(storage: SubscriptionPositionStorage, mongoTemplate: MongoTemplate, eventStoreQueries: EventStoreQueries): SubscriptionModel {
    val mongoSubscriptionModel = SpringMongoSubscriptionModel(mongoTemplate, EVENTS_COLLECTION_NAME, TimeRepresentation.DATE)
    val durableSubscriptionModel = DurableSubscriptionModel(mongoSubscriptionModel, storage)
    return CatchupSubscriptionModel(
        durableSubscriptionModel, eventStoreQueries,
        CatchupSubscriptionModelConfig(useSubscriptionPositionStorage(storage))
    )
}

A catch-up subscription will wrap a subscription model but before using it, it'll start replaying all historic events. Once the subscription has caught up it will not replay again but just continue from the current position (if the position has been persisted to the SubscriptionPositionStorage). You can see an example here (in the Bootstrap.kt class).
The catch-up subscription module also contains on implementation of SubscriptionPositioncalled TimeBasedSubscriptionPosition that you can use like this:
subscriptions.subscribe("mySubscriptionId", StartAt.subscriptionPosition(TimeBasedSubscriptionPosition beginningOfTime())) { event ->
 ...
}

or
subscriptions.subscribe("mySubscriptionId", StartAt.subscriptionPosition(TimeBasedSubscriptionPosition.form(OffsetDateTime.now().minusDays(3))) { event ->
 ...
}

Maybe this class should be moved outside of the catchup-subscription module to avoid users having to do MongoOperationTimeSubscriptionPosition(BsonTimeStamp(0)). But,  I'm not entirely sure since it can be misleading (at least for mongodb) since there's no way, that I know of, to know if MongoDB has enough oplog to actually accommodate the request. If there's not enough oplog available, it will just start from the begging of the oplog that is present (which might not contain the first event!) and you won't get an error (see my stackoverflow question).

Maybe we should rename "CatchupSubscription" to "ReplaySubscription"?

Maybe we should rename "CatchupSubscription" to "ReplaySubscription"?

Thank you for the answer, yes, so it's possible to replay with occurrent :)
The name is also accurate, because for example EventStoreDB use the same term for probably the same concept:
https://developers.eventstore.com/clients/dotnet/5.0/subscriptions/catchup-subscriptions.html#subscribing-to-a-stream

Oh, I wasn't aware that catchup subscription was "the" canonical term for this (didn't know that eventstoredb called it that as well). But that's encouraging! Thanks for the pointer.


Fix task failure upon warnings only

See issue #71.
If there were warnings, what appeared to be an obvious control flow error resulted in the task failing, rather than succeeding and printing out the warnings.
This PR removes a check of the warning count that should see control flow as the implementation suggests it should.

Thanks for your interest in palantir/grunt-tslint, @cartant! Before we can accept your pull request, you need to sign our contributor license agreement - just visit https://cla.palantir.com/ and follow the instructions. Once you sign, I'll automatically update this pull request.


Add start time, end time and duration restrictions for the class, TimeInterval

I suggest adding three subclass restrictions as follows:

gist:startDateTime some xsd:dateTime
gist:endDateTime some xsd:dateTime
hasMagnitude some gist:Duration

This directly echos the text definition below from version 12.0.0
gist:TimeInterval
	a owl:Class ;
	rdfs:isDefinedBy <https://w3id.org/semanticarts/ontology/gistCore> ;
	skos:definition "A span of time with a known start time, end time, and duration. As long as two of the three are known, the third can be inferred."^^xsd:string ;
	skos:example "7pm to 9pm on Jan 1, 2001; fiscal year 2023; the week starting at midnight of January 12, 2023 and lasting exactly 168 hours."^^xsd:string ;
	skos:prefLabel "Time Interval"^^xsd:string ;
	skos:scopeNote
		"An ongoing state of affairs with an unknown end time in the future cannot be a time interval; e.g. the lifespan of a living person cannot be a time interval, as the end time is unknown."^^xsd:string ,
		"This is distinct from a gist:Duration, which describes how long a time interval lasts (e.g., one hour; 3 days; 22 minutes)."^^xsd:string
		;
	.

Is this a duplicate of #925 ?

Duplicates #925.


Decorator applied to base class instead of target class

If i have a base class, extend it, then apply a decorator to the property of that new class, the base class and all the classes that extend from it have that decorator. It seems to be an issue from applying the decorator to the prototype, which is the base class. I'm not sure if this is a babel issue or this plugin's issue.
From the generated code:
_applyDecoratedDescriptor(_class2.prototype, 'logo', [_dec3], {
	enumerable: true,
	configurable: true,
	initializer: function initializer() {
		return '';
	}
})

_class2 is the new class, and _class2.prototype is the base class. the decorator gets applied to the base class and all of it's children, adding the property to the children.

Would you be able to include an example of the original source code? It is hard to follow what you are describing.

Without compiling it, this is the issue:
class Parent {

}

class Child1 extends Parent {
    @someDecorator('myvalue')
    prop = 'foobar';
}

class Child2 extends Parent {

}

Child2 get's the decorator applied from Child1 because the decorator is being applied to Child1.prototype which actually is Parent
If there is a quick way to create a fiddle like example i'll re-create it there. I can't share the code I have due to the company's IP policy

I'm happy to drop a snippet into my local setup if you make a snippet with some clear output. Not sure of any easy Fiddle that would handle decorators.

I believe this replicates my issue:
function someDecorator( value ) {
	return function ( target, key ) {
		target.__storageProp = (target.__storageProp || {});

		target.__storageProp[ value ] =
			{
				key,
				value
			};
	}
}

function storedProps( target ) {
	target.prototype.showStoredProps = function () {
		console.log( Object.keys( target.prototype.__storageProp ) );
	}
}

@storedProps
class Parent {
	@someDecorator( 'base' )
	base = 'hello';
}

@storedProps
class Child1 extends Parent {
	@someDecorator( 'prop' )
	prop = 'foobar';
}

@storedProps
class Child2 extends Parent {
	@someDecorator( 'prop2' )
	prop2 = 'barfoo';
}

It's an extremely primitive version of the decorators, but I am able to replicate it at least. To see the effect:
var a = new Child2();
console.log(a.showStoredProps())

Will output: ["base", "prop", "prop2"] and prop shouldn't be included

Your target.__storageProp = (target.__storageProp || {}); is causing that. In the case where target is Child1, it will read Child1.__storageProp and it will already exist because Child1.__proto__ === Parent. If you want the storage to be per-constructor, you'll been to check hasOwnProperty.
if (!target.hasOwnProperty('__storageProp')) target.__storageProp = {};

so it gets initialized for every constructor.

'Doh I can't believe I didn't see that. I don't know what I was thinking. Sorry for the false Issue!

No problem :)


Traefik unable to handle Websocket

What version of Traefik are you using (traefik version)?
1.2.1
What is your environment & configuration (arguments, toml...)?
traefik.toml:
debug = true
logLevel = "debug"

defaultEntryPoints = ["http", "https"]
[entryPoints]
  [entryPoints.http]
  address = ":80"
  compress = false
  [entryPoints.http.redirect]
    entryPoint = "https"
  [entryPoints.https]
  address = ":443"
  compress = false
    [entryPoints.https.tls]

[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "xxx.xxx"
watch = true

[acme]
email = "xxxx@xxxx"
storage = "/acme.json"
entryPoint = "https"
onDemand = true
#OnHostRule = true

[web]
address = ":8080"
ReadOnly = true

backend nginx proxy:
#limit_req_zone $binary_remote_addr zone=weechat:10m rate=5r/m;
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

upstream wee-upstream {
    server weechat:13337;
}

server {
    location / {
        root /usr/share/nginx/html/;
    }

    location /weechat {
        proxy_pass http://wee-upstream;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 8h;
#        limit_req zone=weechat burst=1 nodelay;
    }
}

docker-compose:
version: "3.0"
services:
  traefik:
    image: traefik:1.2.1-alpine
    command: -c /traefik.toml
    volumes:
      - ./traefik.toml:/traefik.toml:ro
      - ./acme.json:/acme.json
      - /var/run/docker.sock:/var/run/docker.sock
    labels:
      - 'traefik.enable=false'
    networks:
      traefik:
      majolan:
        ipv4_address: <IP_ADDRESS>

  weechat:
    image: jkaberg/weechat
    tty: true
    volumes:
      - /xxxxx/weechat:/home/weechat/.weechat
    labels:
      - 'traefik.enable=false'
    networks:
      backend:

  glowingbear:
    image: jkaberg/glowingbear
    depends_on:
      - weechat
    ports:
      - '8080:80'
    labels:
      - 'traefik.frontend.rule=Host:irc.xxx.xxx'
      - 'traefik.port=80'
      - 'traefik.protocol=http'
      - 'traefik.docker.network=traefik'
    networks:
      traefik:
      backend:

networks:
  majolan:
    external: true
  backend:
    driver: overlay
  traefik:
    external: true

Relevant Traefik log
time="2017-03-28T16:46:55Z" level=debug msg="Challenge GetCertificate irc.xxx.xxx"
time="2017-03-28T16:46:55Z" level=debug msg="ACME got domain cert irc.xxx.xxx"
time="2017-03-28T16:46:55Z" level=debug msg="Writing outgoing Websocket request to target connection: &{Method:GET URL:ws:/weechat Proto:HTTP/1.1 ProtoMajor:1 ProtoMinor:1 Header:map[Accept-Encoding:[gzip, deflate, sdch, br] Connection:[Upgrade] Cache-Control:[no-cache] Sec-Websocket-Version:[13] Cookie:[connect.sid=s%3A3ex21QyYGtYDtUX-F-If1Xg_819LpAWR.sHKb5OGfFk05eoiYPbZPgqGBWWdO3tAaCDZHezoeotU; _TRAEFIK_BACKEND=http://<IP_ADDRESS>:80] Pragma:[no-cache] Origin:[https://irc.xxx.xxx] Upgrade:[websocket] User-Agent:[Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36] Sec-Websocket-Key:[mSJsbaddL+QvClPVv/rVSw==] Sec-Websocket-Extensions:[permessage-deflate; client_max_window_bits] Accept-Language:[nb-NO,nb;q=0.8,no;q=0.6,nn;q=0.4,en-US;q=0.2,en;q=0.2]] Body:0x2b93c10 ContentLength:0 TransferEncoding:[] Close:false Host:irc.xxx.xxx Form:map[] PostForm:map[] MultipartForm:<nil> Trailer:map[] RemoteAddr:<IP_ADDRESS>:49866 RequestURI:/weechat TLS:0xc4209ab8c0 Cancel:<nil> Response:<nil> ctx:0xc420226840}"
time="2017-03-28T16:46:56Z" level=debug msg="Round trip: http://<IP_ADDRESS>:80, code: 304, duration: 432.353µs tls:version: 303, tls:resume:false, tls:csuite:c02f, tls:server:irc.xxx.xxx"

chrome console log:
Service Worker is supported
angular.js:14110Connecting to URL:  wss://irc.xxx.xxx:443/weechat
angular.js:14110Notification permission status:  denied
angular.js:14110Service Worker install: ServiceWorkerRegistration
websockets.js:121 WebSocket connection to 'wss://irc.xxx.xxx/weechat' failed: Error during WebSocket handshake: Unexpected response code: 400
connect @ websockets.js:121
angular.min.js:119 Relay error Event
(anonymous) @ angular.min.js:119
angular.min.js:119 Disconnected from relay

What did you do?
"Login" via web page which does request to irc.xxx.xxx/weechat (websocket upgrade)
What did you expect to see?
Traefik reverse proxying the request to internal proxy which makes the request to weechat relay.
What did you see instead?
Nothing (see above traefik and chrome console logs).
Visiting host:8080 (see docker-compose config above) and trying the same thing (only nginx reverse proxy, without traefk) works fine.
Not working: traefik->nginx->websocket->weechat relay
Working: nginx->websocket->weechat relay

Can you try again with the latest release (1.3.7) ?

@Juliens yeah it works now. Sorry for not closing it. However I do have issues of XHR requests not beeing fullfilled by Traefik. IDK if that fits this bill? The scenario is quite similar to above

@jkaberg could you open a new issue or discuss this in :

Stack Overflow using the "traefik" tag
the Traefik community Slack channel