Diagnose long async cycles

@nholland94 says every single transaction in apply_diff happens in a different deferred, so this ought not to be the issue.

@ghost-not-in-the-shell @cmr and @nholland94 to sit down and 'hash' it out

Computing the hash of scan state takes about 1-3 secs. But it is not the main reason for long async cycles. See parallel_scan.ml line 1008

The Staged_ledger.of_scan_state_pending_coinbases_and_snarked_ledger is one of the main contributor to the long async cycles. It took ~90 secs. See staged_ledger.ml line 269

For the 20s async cycle. I am suspecting it comes from Staged_ledger.apply_diff. Specifically, it comes from transaction_snark_scan_state.ml's check_invariants function. This function would be trigger every time we propose or validate a network transition.

I am also suspecting that the 2min async_cycles are caused by rpc calls. I think we should check those two: get_staged_ledger_aux_and_pending_coinbases_at_hash and get_epoch_ledger.

bin_io takes 116 secs for get_staged_ledger_aux_and_pending_coinbases_at_hash rpc call. I believe that's reason for long async cycles.

After dig deeper into this get_staged_ledger_aux_and_pending_coinbases_at_hash rpc call, I found out that decoding the scan state tree takes majority of time. Inside the scan state tree, we have many ledger proof. For the current testnet, there's on average about ~270 ledger proof and the decoding of each proof takes around ~0.065 sec. So in total it takes ~17 secs to decode the scan state.

There should be another long async cycle happens around when sync the epoch ledger. But for the current testnet, the chain isn't long enough so I don't have a chance to see it. But I am assuming the decoding the sparse ledger takes most of the time.

Deserializing proofs should basically be a memcpy, @ghost-not-in-the-shell can you investigate ?

@ghost-not-in-the-shell can you make a prioritized list here and mark which ones are easy to fix and which ones you need a hand with?


Mock Object not recognizing a selector that is defined in the mocked class

I'm mocking UILocalNotification.
In its header, it declares :
(line 47, UILocalNotification.h)
@property(nonatomic,copy) NSDictionary *userInfo;   // throws if contains non-property list types
However expecting -userInfo on the UILocalNotification mock throws the "cannot stub/verify .. because it does not exist in the mocked class" exception.
If I do not expect it, when the test runs I get an unrecognized selector exception.
I dont understand why this is happening since it appears to be the same scenario in many tests that work fine.
Here is the test and code under test that reproduces this scenario
https://gist.github.com/jhoughjr/dcfd9a7bbf869c0695d1
Possibly I am doing something wrong, but I don't see it, as this seems a  simple test case.

The same problem seem to happen with other properties (I'm stubbing taskDescription of NSURLSessionDataTask).
It looks like it has something to do with the instance method signature being nil:
[NSURLSessionDataTask instanceMethodSignatureForSelector:@selector(setTaskDescription:)]

returns nil for me (in Xcode 7)

So, if the class cannot provide a method signature, it's somewhat tricky for OCMock to mock the method. What happens when you mock the valueForKey: method instead? The discussion on #68 could also be helpful.

I have just merged #223 which makes it possible to stub dynamic properties as if they were regular methods. Can you verify that this fixes your problem?

It does not resolve the issue I was facing (on Xcode 7). That issue can very concisely be verified with this test:

(void)testCanStubTaskDescriptionOnNSRULSessionTask
{
id mock = [OCMockObject mockForClass:[NSURLSessionDataTask class]];
[[mock stub] setTaskDescription:OCMOCK_ANY]; // stubbing setTaskDescription fails
[mock setTaskDescription:@"test-value"];
}

Should I file a separate issue for that?

Yes, I see. The change in #223 only provides the getters while you need the setter.

I'll update my pod and check later today. seems i found some workaround.
Though now I'm facing a simmilar issue that it claims NSFileManager doesn't have

(BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error;

even though it is in the header, and I have tested mock file managers this way in the past.

I'm noticing more scope problems it seems.
I have some private properties exposed to my test fixture via a category called (TestInterface) that is imported in my test fixture.
Before I refactored the name of said private property to correct a typo, OCMock has no problem stubbing that accessor.
After the rename, even though all occurrences have been renamed, OCMock now says the method does not exist in the mocked class.
Any ideas?
I've updated to the latest OCMock yesterday, (3.5.1 iirc)

Sorry for the delay, got busy at work but I'll take a look at this tonight. Mocking the setter should just require synthesizing the method signature in the same way as the getter.

https://github.com/erikdoe/ocmock/pull/240

Assuming fixed.

I think so given you merged my PRs.


[RFC] Snapcraft / Snap packages for app delivery

Should we publish various wasmCloud bins as Snaps?
Snaps are from Canonical the makers of Ubuntu - https://snapcraft.io/
Actively promoted by Canonical, Snaps are software packages meant to easily cross distribution boundaries and can be installed on: Arch, Debian, ElementaryOS,Fedora, KDE Neon, Kubuntu, Manjaro, Linux Mint, OpenSUSE, RedHat, and Ubuntu out of the box. Snaps auto update and check for updates four times per day, if the update for whichever channel the user is locked to fails it will automatically rollback to the previously working version.
"Snaps" are a well known (maybe not perfectly loved) method of app delivery that Canonical have made available for people to install software with some nice functionality baked in. Since they've created it and moved many apps for both Ubuntu Desktop/Server into this app delivery pipeline. I think it would be wise to consider setting up a GitHub action to generate Snaps and ideally get on that platform for more exposure. I think this would be ideal to target people intending to use Ubuntu Server or Ubuntu IoT core images for wasmCloud.
There are definitely some cons with this I think the biggest one in the short term could be the amount of extra-curricular support requests it may generate. I've personally seen this balloon the number of "issues" on other GitHub repositories with people who may not have the best understanding of how Snaps work and interact with the system.

@billyoung

@billyoung

This shouldn't be too hard of a lift, high level: define the snap configuration file, create a ubuntu snap account, and there are gh actions available for the build+push of the snap package


StereoAudioRecorder gobbles memory; how to release?

Long recordings eat up a lot of memory, how to release it? Just using Chrome / Mac the below simple code, and have tried several methods implied by their names to clear any stored data.
Shutting off the recording stops the accumulation but that won't work in my application. Any ideas?

leaky memories

Trying these either break the recording or have no apaprent effect:

clearRecordedData()
clearRecordedDataCB()
resetVariables() <-- doesn't work
reset() <-- stops recording

I was struggling to deal with this memory consumption. I ended up removing RecordRTC.js lines 3136, 3141 and 3144. This class absolutely save me, but this "memory leak" almost ruins everything.
Maybe some config in constructor do control wheter to keep this buffer or not, or the maximum number of bytes to save, can be very helpful.

Got it working by manually freeing the data stored by StereoAudioRecorder. Seems like a hack so going to leave this issue open w/ my code.
Add a freeMemory func to RecordRTC.js:
    function resetVariables(stopRecording) {
        leftchannel = [];
        rightchannel = [];
        recordingLength = 0;
        if (stopRecording === undefined) {
            console.log('stopRecording all');
            isAudioProcessStarted = false;
            recording = false;
            isPaused = false;
            context = null;
        }

        self.leftchannel = leftchannel;
        self.rightchannel = rightchannel;
        self.numberOfAudioChannels = numberOfAudioChannels;
        self.desiredSampRate = desiredSampRate;
        self.sampleRate = sampleRate;
        self.recordingLength = recordingLength;

        intervalsBasedBuffers = {
            left: [],
            right: [],
            recordingLength: 0
        };
    }

    this.freeMemory = function() {
        resetVariables(false);
    }

Then in my code, as part of ondataavailable I call mediaRecorder.getInternalRecorder().freeMemory()
According to Chrome Memory tool it works & in Safari too (Silicon Mac 13.4.1).

Today I was dealing with the same problem, I could see in the chrome memory how RecordRTC was allocating memory non-stop, for now adding this function solved the problem.

any updates? Seems there's still no solution now without modifying lib's code directly.


unable to launch microsoft edge browser using taiko on Windows 10

Hello Taiko Team,
I am unable to launch the Edge Browser (based of chromium) using Taiko. I am able to launch the Google Chrome Browser
Expected behavior
Taiko should be able to launch Microsoft Edge Browser (Chromium based) on Windows 10
Actual behavior
It hangs and error message is displayed.
Steps to reproduce

Created a Test script in Gauge
used the openBrowser() command as follows
await openBrowser({headless:false});
//await openBrowser();
await goto(url);
3 gauge -v
Gauge version: 1.0.7
Commit Hash: ed7b4fd6

Plugins
dotnet (0.1.3)
html-report (4.0.9)
js (2.3.7)
json-report (0.3.3)
screenshot (0.0.1)
xml-report (0.2.3)
Versions
node -v
v12.16.1
taiko -v
Version: 1.0.2 (Chromium: 76.0.3803.0) RELEASE

Error message :
* Launch Travelers Inside App with the following url: "https://inside.here.travp.net/"     ...[FAIL]
    Failed Step: Launch Travelers Inside App with the following url: "https://inside.here.travp.net/"
    Specification: specs\search_travelers.spec:9
    Error Message: Error: Timed out
    Stacktrace:
    Error: Timed out
        at Timeout.<anonymous> (C:\Users\hadusumi\AppData\Roaming\gauge\plugins\js\2.3.7\src\test.js:43:23)
        at listOnTimeout (internal/timers.js:549:17)
        at processTimers (internal/timers.js:492:7)

Does it work without Gauge ? If so do try increasing the step timeout in env/default/js.properties

It does not launch the Microsoft Edge Browser without Gauge too. I have done the following at the terminal or CLI on windows as follows :

taiko
at the prompt typed openBrowser()

It hangs and does not launch Microsoft Edge Browser( Chromium based).
When I point the TAIKO_BROWSER_PATH to Chrome it launches from Taiko without any issue.
Any help to progress forward is appreciated.
Thanks,
Hari

Hello Taiko support,
Following up to see, if you have had a chance to look at this issue and provide any advise.
Thanks,
Hari

In command prompt (where you ran taiko command) - what happens when you run start C:\Program Files(x86\Microsoft\Edge Dev\Application\msedge.exe?
If the above command does not run properly, try running echo %PATH% and ensure that C:\Program Files(x86\Microsoft\Edge Dev\Application is present in it.

I have updated taiko and here is the information below. When I try to launch using taiko.
C:>taiko -v
Version: 1.0.14 (Chromium: 85.0.4168.0) RELEASE
C:>taiko
Version: 1.0.14 (C:\Program Files (x86)\Microsoft\Edge Dev\Application\msedge.exe)
Type .api for help and .exit to quit

openBrowser()
[FAIL] Error: connect ECONNREFUSED <IP_ADDRESS>:57483, run .trace for more info.
.trace
'Error: connect ECONNREFUSED <IP_ADDRESS>:57483
' +
'    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1137:16)'

I will try with the path you have suggested and update the same.

When I remove the msedge and just have the path in the environment variable section till Application and run taiko I get the following:
C:>taiko
Version: 1.0.14 (C:\Program Files (x86)\Microsoft\Edge Dev\Application)
Type .api for help and .exit to quit
Warning: Please check if TAIKO_BROWSER_PATH (C:\Program Files (x86)\Microsoft\Edge Dev\Application)
points to a valid browser executable file.

openBrowser()
'[FAIL] Error: Failed to launch browser! spawn C:\Program Files (x86)\Microsoft\Edge Dev\Application ENOENT
' +
', run .trace for more info.'

Sorry, I wasn't clear before. TAIKO_BROWSER_PATH has to point to the executable.
What happens if you run start C:\Program Files(x86\Microsoft\Edge Dev\Application\msedge.exe ?

Hello Sriv,
I have updated the TAIKO BROWSER PATH to point to the msedge.exe and updated the path variable section to point till the application.
C:>taiko
Version: 1.0.14 (C:\Program Files (x86)\Microsoft\Edge Dev\Application\msedge.exe)
Type .api for help and .exit to quit

openBrowser()
[FAIL] Error: connect ECONNREFUSED <IP_ADDRESS>:58165, run .trace for more info.

and it hangs. I have to explicitly kill it.
Thanks,
Hari

What happens if you launch msedge.exe --remote-debug-port=9222 and then from within Taiko, you try openBrowser({host:'localhost', port:'9222'})?

At the command line when I use msedge.exe --remote-debug-port=9222 it launches the Browser
C:>taiko
Version: 1.0.14 (C:\Program Files (x86)\Microsoft\Edge Dev\Application\msedge.exe)
Type .api for help and .exit to quit

openBrowser({host:'localhost', port:'9222'})
[FAIL] Error: connect ECONNREFUSED <IP_ADDRESS>:9222, run .trace for more info.

Thanks,
Hari

So that is strange. I notice that you are using EdgeDev. I tried with the recently launched stable MS Edge.
I could replicate the issue with browser launch, Edge crashed when launched from within Taiko. I think perhaps it does not lime all the flags that we pass to chromium.
But launching it separately, and connecting it to Taiko by setting host and port works for me on a fresh Win10 VM.

I have un-installed the dev version of EDge and installed the stable version and tried the following:

using the localhost arguments it hangs and  I had to explicitly kill it.

C:\WINDOWS\system32>taiko
Version: 1.0.14 (C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe)
Type .api for help and .exit to quit

openBrowser({host:'localhost', port:'9222'})
[FAIL] Error: connect ECONNREFUSED <IP_ADDRESS>:9222, run .trace for more info.

just to confirm, did you launch msedge.exe outside of taiko with remote port 9222 before using openBrowser({host:'localhost', port:'9222'}) ?

Yes I did launch the following command  msedge.exe --remote-debug-port=9222 at the command prompt at the c: drive prompt :
The Browser got launched.
and I tried the following too. keeping the browser open from the above command, I then went to the taiko prompt and did use the openBrowser({host:'localhost', port:'9222'}) and it did not launch.
I also tried again with a new prompt of taiko, After closing the launched browser  outside of taiko   msedge.exe --remote-debug-port=9222 and tried it. I was still not able to launch the browser. Please let me know if you need any more information that I need to provide or help me look at any logs that you think are generated on my machine will be helpful for you to further trouble shoot the issue.

I then went to the taiko prompt and did use the openBrowser({host:'localhost', port:'9222'}) and it did not launch.

It woudn't launch another browser, passing host and port would lead to taiko connecting to the already launched browser instance.
Once you've launched a browser (outside of taiko), and connected to it using openBrowser({host:'localhost', port:'9222'}), you should be able to do regular taiko actions, such as goto. This works for me on Win10.

Hello Sriv,
Thank you for writing back.
I have tried the steps based on your explanation above. I am still unable to get access to the browser and perform any actions against it using Taiko. Screen shots below.

This looks like some issue you have specific to your instance of edge. A quick google search says that this might happen if there are other edge browser instances running in the background and you try to launch it.
On the other hand the chromium bundled with Taiko always launches its separate instance. It looks like you might be having a background process or some other instance of edge running. Make sure you terminate all edge process before trying what you did.
There are a few steps mentioned at https://github.com/microsoft/vscode-chrome-debug#chrome-user-profile-note-cannot-connect-to-the-target-connect-econnrefused and flags you can try to get around this.

Hello Zabil,
I have tried this on another machine which is a personal windows 10 home and I am unable to get access to the Edge Browser with taiko. I have looked at the link you have provided above, I did understand some of the explanation and not the others about which flags to use. I used --user-data-dir: true and although the browser launches from the command line, When I launch Taiko from the prompt and try to connect to the opened browser it hangs.
Can you please suggest a few examples on how to use the flags, I will try and see the combination of various flags and see if I am successful in launching the EDGE Browser.
Thanks,
Hari

@harimadusumilli I did try this scenario and it successfully worked for me
Step 1 - Change environment variable in Windows 10

Step 2 - Install the latest version of Taiko
npm install -g taiko

Step 3 - Close all terminals and browser instances of Edge

I noticed that even when I close Edge there is an instance running in the taskbar. So close that well please.
Step 4 - Run the commands in REPL mode
❯ taiko

Version: 1.0.16 (C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe)
Type .api for help and .exit to quit

> openBrowser()
[PASS] Browser opened
> goto("google.com")
[PASS] Navigated to URL http://google.com
> write("amit sarkar")
[PASS] Wrote amit sarkar into the focused element.
> press("Enter")
[PASS] Pressed the Enter key

Hope this helps and solves your problem.

Hello Amit,
Thank you for your suggestion of closing the Browser in the Task bar too. I had it pinned to the task bar for easy launching manually. So, based on your explanation, even the short cut or a link to it should not be present is that a correct statement ?
After i removed the Edge browser from the task bar and then launched it using taiko, I was able to do launch it without any issue.
Thank you,
Hari


Rename permissions

Purpose
IsRelatedVideoTokenOrAdminUser and IsVideoTokenOrAdminUser have bad names. They are looking for Instructor tokens as opposed to the IsVideoToken class which accepts students.
Proposal
rename then in IsVideoInstructorTokenOrAdminUser and IsVideoRelatedInstructorTokenOrAdminUser
Closes #248

Does not worth to be mentioned in the CHANGELOG?

Does not worth to be mentioned in the CHANGELOG?

I don't know, it's not a feature, the refacto add no feature for a developer, it's strictly internal so IMO we should not update the changelog.
WDYT ?

Ok then.


Help: Terminal window is too small 80×12

Terminal window is too small, how to fix this?

Hello.
The default size of the Termux window is too big to display menuconfig.
Simply reduce the size of the Termux window by at least one notch with your two fingers.
I can increase the minimum size accepted by ZMB in order to use it with the default Termux window size but an error will occur each time launching menuconfig.


V0.91

@celalceken Can you please describe what this pull request is for? There are also merge conflicts -- was this supposed to be for the v0.91 branch instead of master?

Hi,
It is for the v0. 91 branch.
5 Şub 2016 14:48 tarihinde "Ryan Izard"<EMAIL_ADDRESS>yazdı:

@celalceken https://github.com/celalceken Can you please describe what
this pull request is for? There are also merge conflicts -- was this
supposed to be for the v0.91 branch instead of master?
—
Reply to this email directly or view it on GitHub
https://github.com/floodlight/floodlight/pull/624#issuecomment-180339306
.

@celalceken Can you create another pull request to the v0.91 branch? You created the request for master by mistake I think.


Add Velero CRDs

Signed-off-by: sahare<EMAIL_ADDRESS>https://github.com/open-cluster-management/backlog/issues/15064

/assign @leena-jawale

/lgtm
Noting for future reference that this might not be the most optimal place to install these velero CRDs, but it should allow the cluster-backup operator to run properly for tech preview


Chapter 10: Evaluating (ext1 rectify-0 0) causes a contract failure

On page 197 of Chapter 10, it lists code to define rectify:
(define rectify
  (ext1 rectify-0 0))

Evaluating this fails with
; <: contract violation
;   expected: real?
;   given: #<procedure:ρ-function>
; Context (plain; to see better errortrace context, re-run with C-u prefix):
;    <my home dir>/Projects/little-learner/little-learner.rkt:465:2 rectify-0
;    <my home dir>.racket/8.6/pkgs/malt/flat-tensors/autodiff/B-prims.rkt:207:2 ext1
;    <my home dir>/.emacs.d/elpa/racket-mode-20230209.1424/racket/repl.rkt:348:0 configure/require/enter

I've tried running raco pkg update malt today. It installed an update, but didn't fix this issue.

Thanks for reporting the issue. Looking into it. As a workaround, please switch to the learner implementation per the instructions in the README or the website.

Thank you!
If I understood correctly, I should replace (require malt) with (require malt/learner).
When I do that, other parts of the code fail because declare-hyper is unbound.
I think I can fix that (and a similar issue with dot-product being unbound) by adding both (require malt/tools) and (require malt/malted).
However, using those imports causes later issues when running the Iris model (frame 266:71)
; length: contract violation
;   expected: list?
;   given: 0.5
; Context (plain; to see better errortrace context, re-run with C-u prefix):
;   /home/jeremy/.racket/8.6/pkgs/malt/flat-tensors/tensors/D-extend.rkt:14:4
;   /home/jeremy/.racket/8.6/pkgs/malt/flat-tensors/autodiff/B-prims.rkt:48:2 prim1-dual
;   /home/jeremy/.racket/8.6/pkgs/malt/malted/O-init.rkt:25:6
;   /home/jeremy/.racket/8.6/pkgs/malt/flat-tensors/tensors/B-tensor-basics.rkt:150:2 fill-flat-tensor
;   /home/jeremy/.racket/8.6/pkgs/malt/flat-tensors/tensors/B-tensor-basics.rkt:150:2 fill-flat-tensor
;   /home/jeremy/.racket/8.6/pkgs/malt/flat-tensors/tensors/B-tensor-basics.rkt:142:2 build-tensor
;   /usr/share/racket/collects/racket/private/map.rkt:40:19 loop
;   /home/jeremy/.racket/8.6/pkgs/malt/tools/A-hypers.rkt:43:13

Oh, sorry. I just noticed that you're using the default racket pkg location. Can you try the following?
cd /home/jeremy/.racket/8.6/pkgs/malt/
echo "(tensor-implementation learner)" > local.cfg
make clean && make

That should switch your default implementation to learner. You can then simply (require malt).

@jmikkola Thanks for your patience. I have just pushed a new version of Malt which as learner as the default implementation. This will enable you to run all code in the book without issues (known issues, that is :-). If you haven't already followed my instructions above, updating the malt package again should fix it for you.
Fixed in c8220b5.


Add Nustache.Core.dll as download

Hi,
could you please add the binary as download on GitHub? I mean, I just want to download this thing and start working without having to install NuGet or download the complete project and build it. I guess it's common to add recent builds to a project.
Thank you.

Hey,
I know you opened this years ago but from this point onwards all new release will have the .dll files attached the release. Please see here for an example.


Update how-to-create-appointments-in-a-specific-time-zone-by-using-ew…

…s-in-exchange.md
Fixed schema references in code samples (they must use http:// not https://). Fixed timezone issues in Xml samples (the payload created all the appointments in UTC rather than the given timezone, as TZ datetime notation was used in the Start and End properties [which is UTC])

@lindalu-MSFT - this needs your attention too :-).


Add some diagnostic logging for ruby-lsp

I have checked that this feature is not already implemented

[X] This feature does not exist

Use case
I think it would be great to have some more support to view diagnostic logs on the ruby-lsp. It seems more important to have that when there are features like formatter autodetection, where you might want to know what formatter is being used, what the command args are, etc.
Description
Show more info in the output window
Implementation
Things like "which formatter was selected, which configuration was used, etc" get shown in the ruby-lsp output window. Maybe this can also be a toggleable feature if there is a concern it is too noisy

I wish I could debug why my configuration doesn't apply.
On Sublime Text 4 I tried to disable Rubocop:
{
  "clients": {
    "ruby-lsp": {
      "enabled": true,
      "command": [
        "ruby-lsp"
      ],
      "selector": "source.ruby",
      "initializationOptions": {
        "enabledFeatures": {
          "diagnostics": false,

          "codeActions": false
        },
        "formatter": "none"
      }
    }
  },
  "inhibit_snippet_completions": true
}

I see in LSP logs that it was passed:
  'initializationOptions': {
    'enabledFeatures': {
      'codeActions': False,
      'diagnostics': False
    },
    'formatter': 'none'
  }

but it's still everywhere:

Thank you for the report. Concerning the problem related to disable features, that was fixed in https://github.com/Shopify/ruby-lsp/pull/2071 and released with version v0.17.
In this specific example, logging the things you mentioned wouldn't have helped diagnose the problem because the issue was not related to auto detection of the formatter/linter, but rather a mistake in processing initialization options.
The team is definitely not opposed to add more logging using logTrace, but can you be specific about the exact things that would be helpful logging?
Which formatter got selected is concrete and we can definitely add that. But which configuration was used is a bit generic. Is that logging the initialization options? Or the internal state of our global state object? If it's the internal state, what parts of it should be logged?

I'd definitely like to see the rubocop version that is being used in the logs, that's the main thing I'd want to see in the logs. Maybe even the entire custom gemfile that's being used?


Support GZip compressed rules files #77

@mkr Thank you for your pull request. I think this will help quite a number of Querqy users!


Refactor assign_data

At the moment assign_data makes the process of datasource lookup and data assignment quite cumbersome. I think this setup could be refactored to make it much simpler.

Duplicate of issue #319


⚠ Bofrost.be has degraded performance

In c8b8428, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1988 ms

Resolved: Bofrost.be performance has improved in a6c65e4.


Switching between multiple Page templates not working

I think this example from the documentation is not working:

Title Page

    This is a title page with a large 5cm margin.

    <pdf:nexttemplate name="regular_template" />

Chapter 1

    This is a regular page with a regular 2cm margin.

I am simply trying to reproduce this example, but the margins are always the same and there is only one page.

Hello,
I am really not an expert with xhtml2pdf, but for me it works, if the first @page has no name.

Hi @kaplat. Thank you for your feedback. Could you post the code that works for you? For me, the example from the docs doesn't work, with or without name for the first @page.

I did not try this example, I am working on my own project, so I can not tell you why this is not working.

Hi @kaplat. Thank you for your feedback. Could you post the code that works for you? For me, the example from the docs doesn't work, with or without name for the first @page.

yeah it's not working for multiple page templates.

i would expect that the code uses "first_template" for the first page and "second_template" for the second one.. but no...
the generated first page is landscape with no margins, the second uses the "first_template" style and the third uses the "second_template" style...
`

i would expect that the code uses "first_template" for the first page and "second_template" for the second one.. but no...
the generated first page is landscape with no margins, the second uses the "first_template" style and the third uses the "second_template" style...

<pdf:nexttemplate name="first_template"/>

first_template content - A4 portrait

<pdf:nextpage/>
<pdf:nexttemplate name="second_template"/>

second_template content - A5 landscape

<pdf:nextpage/>
<pdf:nexttemplate name="third_template"/>

third_template content - A4 landscape

<pdf:nextpage/>

I delete  background-image: url({{bg_back}});  and my code works without problems. @lcsdovalle thank's, my problem is solve!
@tenji73 try it:

first_template content - A4 portrait

    <pdf:nexttemplate name="second_template"/>
    <pdf:nextpage/>

second_template content - A5 landscape

    <pdf:nexttemplate name="third_template"/>
    <pdf:nextpage/>

third_template content - A4 landscape

The first template is read automatically and the correct command it's:
<pdf:nexttemplate name="your_template"/>
<pdf:nextpage/>

@AlcantaraGabriel it's not switching between multiple template approach I used is created two separate PDF which requires different page formatting then at the end merge those Two PDF my use case was a common page for the whole catalog based on category and the first page should be a welcome page with custom layout with partner information.

I get it, perhaps another libary help you, search by PyPDF2 merge pdf, PISA merge pdf or WEASYPRIN merge pdf.

@lcsdovalle nailed it. It looks as though the first page needs to remain unnamed. After that, each additional page template your define can be named and then referred to in the html markup below. If you name the first page template, they seem to all get ignored.
This has unfortunately been overlooked in the example provided in the docs.

This should really be triaged as a bug either in the docs or the code itself

@lcsdovalle nailed it. It looks as though the first page needs to remain unnamed. After that, each additional page template your define can be named and then referred to in the html markup below. If you name the first page template, they seem to all get ignored.
This has unfortunately been overlooked in the example provided in the docs.

this should really be triaged as a bug in the documentation or the code itself


CLI?

Is there a way to use this on the commandline? geojson-precision works from a commandline - can you do the same to this so it's usable from CLI?

@brianpipa yes the CLI is missing, @lachana we should work on this when we have time.


feat(spell-check): added spell check to the pipeline

Introduction
Ensure spelling check is performed as part of the pipeline.
Resolution

Added spellcheck service to be executed during CICD under SCA.
Spelling fixes

Miscellaneous

Dependencies updates

Codecov Report

Merging #2073 (aef2be8) into main (2390d16) will decrease coverage by 0.01%.
Report is 25 commits behind head on main.
The diff coverage is 36.15%.

@@            Coverage Diff             @@
##             main    #2073      +/-   ##
==========================================
- Coverage   21.01%   21.01%   -0.01%
==========================================
  Files        1030     1141     +111
  Lines       25229    26754    +1525
  Branches     4081     4422     +341
==========================================
+ Hits         5303     5622     +319
- Misses      17370    18404    +1034
- Partials     2556     2728     +172

Flag
Coverage Δ

api-test
0.48% <0.00%> (?)

ui-test
65.39% <87.40%> (+0.58%)
:arrow_up:

unit-test
2.25% <3.77%> (+1.53%)
:arrow_up:

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

Files Changed
Coverage Δ

...-function/acbs-amend-facility-loan-record/index.js
0.00% <0.00%> (ø)

...unction/acbs-amend-facility-master-record/index.js
0.00% <0.00%> (ø)

...nctions/acbs-function/acbs-amend-facility/index.js
0.00% <0.00%> (ø)

...unctions/acbs-function/acbs-facility-bond/index.js
0.00% <0.00%> (ø)

...unctions/acbs-function/acbs-facility-loan/index.js
0.00% <0.00%> (ø)

...ure-functions/acbs-function/acbs-facility/index.js
0.00% <0.00%> (ø)

...nctions/acbs-function/acbs-issue-facility/index.js
0.00% <0.00%> (ø)

azure-functions/acbs-function/acbs/index.js
0.00% <0.00%> (ø)

...on/activity-create-code-value-transaction/index.js
0.00% <0.00%> (ø)

...s-function/activity-create-deal-guarantee/index.js
0.00% <0.00%> (ø)

... and 105 more

... and 136 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Create Calculate Return on Investment

Use this code to calculate Return on Investment

Unable to merge. CodeQL error.


Toggle phone mask for 8 or 9 digits

I'd like the phone mask to toggle: landline x mobile phones (just like cpf/cnpj).
(xx) xxxx - xxxx and (xx) xxxxx - xxxx
Currently a 8-digit phone is masked like: (xx) xxxxx - xxx

@gabrielamarques use a function to return a mask based on the input, here is an example (not tested):
<MaskInput
  mask={(text: string) => {
    const cleanNumber = text.replace(/\D+/g, '')

    if (cleanNumber.length < 9) {
      return ["(", /\d/, /\d/, ")", " ", /\d/, /\d/, /\d/, /\d/, "-", /\d/, /\d/, /\d/, /\d/, /\d/,]
    } else {
      return ["(", /\d/, /\d/, ")", " ", /\d/, /\d/, /\d/, /\d/, /\d/, "-", /\d/, /\d/, /\d/, /\d/,]
    }
  }}
  ...
/>

Thanks @CaioQuirinoMedeiros
The snippet above is always usign the second format.
I've made some changes to support both format:
const BRL_PHONE_SHORT = ["(", /\d/, /\d/, ")", " ", /\d/, /\d/, /\d/, /\d/, "-", /\d/, /\d/, /\d/, /\d/, /\d/,];
const BRL_PHONE_LONG = ["(", /\d/, /\d/, ")", " ", /\d/, /\d/, /\d/, /\d/, /\d/, "-", /\d/, /\d/, /\d/, /\d/,];

const mask = (text?: string) => {
  const sanitizedText = text?.replace(/\D/g, "") ?? "";
  return sanitizedText.length < 11 ? BRL_PHONE_SHORT : BRL_PHONE_LONG;
};

This now supports:

(00) 0000-0000
(00) 00000-0000


Declare an error handling strategy for the entity system.

Error handling in the entity system needs a backend which can be attached to various outputs (logfile, console, ..).

We should not be using conditional compiling. It would be better to make the log level switchable during runtime.

We should make use of spdlog since it is already included in Inexor.

When the creation of a new type (entity type, entity attribute type..) fails we currently return entity_type_ERROR.  We must find another way to do this.

Do not use exceptions.

For now we will just use the console output to std::cout.


Fix variable name bug that shows up when library is executed without …

…sufficient privilege to access docker daemon

Good catch, thanks!


feat: port Data.Set.Intervals.Default

Seems a bit weird, but there was nothing but those two import in the original mathlib file...

read somewhere "do not port default files"


Fix getting the starting room from RoomManager

When a player is hydrated, if the player isn't in a valid room, a call to state.RoomManager.getStartingRoom() is made, which is undefined.

The fix here is to just fix the place that calls getStartingRoom() to use .startingRoom like https://github.com/shawncplus/ranviermud/blob/staging/bundles/ranvier-input-events/input-events/finish-player.js#L21

Cool, I'll update that.


Option to hide likes in feed

It would be very nice to be able to hide "likes" from feed. Likes are very annoying. I think people are lazy and like tweets to bookmark them. It is anyway not interesting to see what others liked.

Hi, the extension should force Twitter to use the Latest Tweets timeline, which doesn't include likes.
If that ever changes, this is what we'll do: https://github.com/insin/tweak-new-twitter/issues/41#issuecomment-879629808


 example breaks when changing the text input

The  example at https://threlte.xyz/docs/reference/extras/text breaks when interacting with the text input on Stackblitz and displays an entirely pink canvas. Sometimes it's possible to enter 1-2 letters before it breaks. A refresh is required to get a functional canvas back.
Browser: Firefox 124.0.2-1
OS: Linux 6.8.4-arch1-1

hey! sorry you ran into this issue. Is there any accompanying errors/warnings/logs in the dev tools terminal?

No need to be sorry, thank you for your work on threlte :)
I can reproduce it on Firefox regardless of the OS used but can't reproduce it in Chromium-based browsers, so it might be a Firefox-specific issue. I'll also try if I can reproduce it when running the example locally to determine whether it's an issue with StackBlitz.
The console only contains messages of the kind
unsupported GPOS table LookupType 8 format 2 [504fe676-5564-472c-aa50-6e6910c92a94:5:17110](blob:https://threlte.xyz/504fe676-5564-472c-aa50-6e6910c92a94)
unsupported GPOS table LookupType 5 format 1 [504fe676-5564-472c-aa50-6e6910c92a94:5:17110](blob:https://threlte.xyz/504fe676-5564-472c-aa50-6e6910c92a94)
unsupported GSUB table LookupType 6 format 2 [504fe676-5564-472c-aa50-6e6910c92a94:5:19527](blob:https://threlte.xyz/504fe676-5564-472c-aa50-6e6910c92a94)
unsupported GSUB table LookupType 6 format 1 [504fe676-5564-472c-aa50-6e6910c92a94:5:19527](blob:https://threlte.xyz/504fe676-5564-472c-aa50-6e6910c92a94)
unsupported GPOS table LookupType 8 format 2 [504fe676-5564-472c-aa50-6e6910c92a94:5:17110](blob:https://threlte.xyz/504fe676-5564-472c-aa50-6e6910c92a94)
unsupported GPOS table LookupType 5 format 1 [504fe676-5564-472c-aa50-6e6910c92a94:5:17110](blob:https://threlte.xyz/504fe676-5564-472c-aa50-6e6910c92a94)
unsupported GSUB table LookupType 6 format 2 [504fe676-5564-472c-aa50-6e6910c92a94:5:19527](blob:https://threlte.xyz/504fe676-5564-472c-aa50-6e6910c92a94)
unsupported GSUB table LookupType 6 format 1

These messages also appear on Chromium, so they might be unrelated.

I found a similar, maybe related issue in troika's repo:
https://github.com/protectwise/troika/issues/13#issuecomment-1257195554


#2153 Add a ShedLock provider for commercetools

ShedLock provider that uses commercetools custom objects to persist lock information. Custom objects are a key/value document store that is part of the API extensibility provided by the platform.
Could not inherit the integration test from AbstractLockProviderIntegrationTest as there is no test container for commercetools. Used a http mock server instead.

Hi, thanks. But I am afraid I can't merge it without the integration tests as I will not be able to support it. The integration tests give me confidence that the lock provider works as expected, mocked tests do not help much in this regard. We either have to somehow figure-out how to make the tests work, or you can release your Lock Provider as a standalone project and I will hapilly link it from the documentation.

I found a docker image that mocks the whole commercetools server. With this I could pass the integration tests.

Looks like the test fuzzTestShouldPass is flaky. What is this test doing?

It's the most interesting test. It's executing FuzzTester which is incrementing a counter from multiple threads and checkig if the resulting number has the expected value. If the locking does not work, this test usually fails. It's unfortunately hard to tell why the test failed.

I got the FuzzTester green with the mocked and the real commercetools API. It's stable on my machine. But it still fails on the pipeline.
I'm giving up and I'm closing the pull request. You can also close #2153 if you want.

Hi, I looked into the code and there may be a conflict on Insert. Imagine all the threads are executed in parallel. All threds call find here, they got null as there is no record and then the call to createOrUpdateLockValue succeed as no version is sent. I am not familiar with the API, so I am not sure it's the case. What do you think?

Calling find would actually not be necessary as the api has a createOrUpdate semantic. It is guaranteed by commercetools that there will be no duplicate custom obects with the same key (lock name). I‘m catching this in the insert method and return empty


Zephyr Module

This creates the initial zephyr module as well as ports the cmake for zephyr.
This also includes some patches that fix some warnings when compiling

some of the patches that initial on the head of the branch have since been merged in to the upstream, I have rebased back on to main since then

@stephanosio Are you able to review this? I think the whole suite of PRs is now all ready for review

This is now rebased on top of the recently released v1.15.0


Return Turbolinks-Force-Success header from render method

See https://github.com/turbolinks/turbolinks/pull/334

Ahh sorry but I have forgotten to fix this PR for https://github.com/turbolinks/turbolinks/pull/334#issuecomment-349475226 .
I'll send PR later :bow:


Converting lossy grayscale with custom white point resulting loss in profile

Describe the bug
When convert/exporting a grayscale image with custom white point (in my case D50) to lossy jxl, profile gets discarded and returned as D65_linear when converted back with djxl. Even though that jxlinfo returns a correct profile info:
jxlinfo CC-gray-D50-srg-cjxl.jxl
JPEG XL image, 748x1000, lossy, 8-bit Grayscale+Alpha
Color space: Grayscale, Custom, white_point(x=0.345703,y=0.358538), sRGB transfer function, rendering intent: Perceptual

This results in a darker image.
To Reproduce
Convert a grayscale image with custom white point with cjxl lossy settings.
-or-
Call JxlEncoderSetColorEncoding with color_space = JXL_COLOR_SPACE_GRAY and white_point = JXL_WHITE_POINT_CUSTOM then set the custom white point and TRC accordingly.
And then convert it back to using djxl.
Expected behavior
The profile should be preserved.
Screenshots

Left is the original, right is when converted back.
Original file:
CC-gray-D50-srg.png
Lossy JXL file:
CC-gray-D50-srg.jxl
Converted back:
CC-gray-D50-srg-fromjxl.png
Environment

OS: Windows 10 21H2
Compiler version: LLVM 14.0.0
CPU type: x86_64
cjxl/djxl version string: v0.7.0 [AVX2,SSE4,SSSE3,Unknown]

Additional context
N/A

The resulting grayscale file CC-gray-D50-srg-fromjxl.png has an attached ICC profile, although it is a grayscale ICC profile. Windows Photo Viewer appears not to support the attached ICC profile, which is in linear light. If you open the resulting image in a program that supports grayscale ICC profiles (such as Firefox, Chrome, or GIMP) then it will display the pixels properly.
Because you used lossy compression, libjxl encodes it in XYB, which first converts the image using a CMS to sRGB primaries, D65 white point, and linear light, and then encodes the image, which means the white point adaptation has been done on the encode side.
If you use a different decoder, such as jxlatte, you'll just receive the D65 whitepoint sRGB PNG image with an sRGB chunk:

As for why djxl is producing a linear light grayscale profile for an 8-bit image? That's undesirable behavior, but it's not exactly incorrect.

Ah pardon me, forgot that v4 profiles don't really compatible with old windows photo viewers isn't it..
Anyway, it also affects other bitdepth as well. Tried with u16 still gives the same result.

Viewer wise, yes because it's a profile ignoring issue on the viewer.
But authoring workflow wise, it can be slightly confusing, eg. in Krita we supply grayscale profiles in D50 white point and expected to get the same WP and TRC for roundtrip.


changed image path to k8s container registry

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
Changed image path to k8s container registry in the base files.
Need to cherry-pick this to release version 0.2.0, 0.1.0 branches.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Release note:
none

/cherry-pick release-0.1

/cherry-pick release-0.2


[Network]az network express-route peering create: Support ipv6 address

Description

https://github.com/Azure/azure-cli/issues/16848
az network express-route peering create: Support ipv6 address
Testing Guide

test_network_express_route_ipv6_peering2
History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change.
[Component Name 2] az command b: Add some customer-facing feature.

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Network

/azp run


(#30) add Cloudflare to DNS providers

fixes #30

Thankyou for the contiribution @nils-a

@nils-a  could you please re-push with the conflict updated.

@ross-mcdermott done. 👍


Make it possible to install sentinel independently

Pull Request (PR) description
This PR introduces the possibility to install redis::sentinel standalone, without redis::server. It comes in handy when you need your sentinels to be for example on a different node than your redis server.
The change itself is a pretty straightforward,  I am just adding a require_redis parameter, that makes the requirement of  redis class conditional. The default value is true, which includes the redis and it is therefore backward compatible with the current setup.
The only downside of this approach I see currently is that in case someone needs a standalone redis-sentinel from a managed repository, the repository must be added manually as the redis::preinstall is no longer included (as was previously with the redis class)
This Pull Request (PR) fixes the following issues

installation of standalone sentinel (no open issue for this one, so far)

Thank you for any input :)

Regarding the puppet5/ubuntu 20.04 tests, the errors don't look like they were caused by my changed...

Hi,
Can i help to push this PR?
I have this need at work.
thanks

@gizmo15 it's probably best to submit your own PR.

Thanks for taking interest in this. To be honest, this slipped from my mind. I'll try to make it work.
What is required from this to be accepted? I suppose

rebase to current upstream
drop leading :: and add tests as suggested by @ghoneycutt ?
I may have need some helm with the tests, as I didn't do it yet in puppet, but I will take a look a try my best

Hi, so I merged it to the current master.
Could someone advise me please on how to pass the CI tests? Static tests reports outdated reference.md, but I adjusted it as good as I was able and it still complains. :(
Not sure though on how to tackle tests to verify the presence or absence of the redis class...
Also, this MR still has the labe merge-conflicts, although there are non now.
Thanks and have a great day :)

Hello, any news about this PR ?
Thanks.

It doesn't appear it was ever updated as requested during the review, so it can't be merged as-is. The original author would have to update it, or someone else could create a new pull request based on it.

Let me give it a try for a day or two :)

So I squashed my changes and rebased it all to current master.
During the rebase I renamed the option to contain_redis because now contain is used instead of require.
There are still some tests that fail.
I am not sure I will be able to test this code as I don't use puppet anymore in my infrastructure, but I will try to come up with something tomorrow.

@tomsajan Hello, thanks for your feedback. I don't really understand the Puppet CI error 🤷♂
Do you have any idea please ?
Thanks.


Fix types in create_vocabulary (translate model)

I encountered this bug when going through seq2seq tutorial - https://www.tensorflow.org/versions/r0.11/tutorials/seq2seq/index.html#neural-translation-model

Can one of the admins verify this patch?

@tensorflow-jenkins test this please

This change looks good to me, thanks for doing it! Dear admins, please merge when possible. Thanks!


fix: match manifest values used in other custom function templates

Type of change

[ ] New sample
[ ] New feature
[x] Bug fix
[ ] Documentation

Summary
This PR matches manifest.json to those found in slack-samples/bolt-js-custom-function-template! Thanks for finding strangeness here @srtaalej 🎉
Requirements

[x] I’ve checked my submission against the Samples Checklist to ensure it complies with all standards
[x] I have ensured the changes I am contributing align with existing patterns and have tested and linted my code
[x] I've read and agree to the Code of Conduct

@hello-ashleyintech appreciate such a fast review- as always! 🚀


feat: uniform error message

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Privacy Policy on Login Page Can't be Closed

Describe the bug
Privacy Policy on Login Page Can't be Closed
To Reproduce
Steps to reproduce the behavior:

Go to login page
Click on the x with the privacy policy
Nothing happens

Expected behavior
Either make the X and privacy policy clickable or don't display on that page.
Desktop (please complete the following information):

OS: Win10
Browser [e.g. chrome, safari]: Chrome
Version [e.g. 22]: 81.0.4044.122 (Official Build) (64-bit)

Thanks Nick, fixed! I moved the cookie banner  into the if statement: "{% if request.user.is_authenticated %}".


Check renovate bot

Looks like renovate bot is not longer running on this repository. Or it is hanging.

Fixed by c0bcf98579a9d81b9614244f3282da46c3815103


Roll engine 4e845be0b1ac..4b271b2e0265 (3 commits)

https://github.com/flutter/engine/compare/4e845be0b1ac...4b271b2e0265
git log 4e845be0b1ac..4b271b2e0265 --no-merges --oneline
4b271b2e0 Add a Flutter build flag that enables dart_debug checks (flutter/engine#6059)
3036f1ed8 Roll src/third_party/skia f13375c925bf..4d727c560b58 (1 commits) (flutter/engine#6063)
8b3f7c8b4 Roll src/third_party/skia ca0cdef06349..f13375c925bf (1 commits) (flutter/engine#6062)
The AutoRoll server is located here: https://flutter-engine-flutter-roll.skia.org
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

@rmistry @liyuqian : New roll has been created by https://flutter-engine-flutter-roll.skia.org


Update Litecoin to 0.16.3

0.16.3 fixes the critical DoS and inflation vulnerability.

thx. In am preparing new sd card image, right now.

Awesome. Thanks.


Harvester extension is not correctly loaded when switching between clusters

Setup

Rancher version: 2.9.0

Describe the bug

Switching between harvester clusters of different versions fails to correctly load the version of the extension related to the target cluster
Specific bugs can be found in https://github.com/rancher/dashboard/issues/9814#issuecomment-2253325637 (first two parts, after navigating from 1.2.x to 1.3.x)

To Reproduce

Import two harvester clusters, one 1.2 based, one 1.3
Navigate to the 1.2 based cluster - note no vGPU in advanced setting
Navigate to the 1.3 based cluster - note still no vGPU in advanced setting

Expected Result

vGPU advanced setting should show up in 1.3 cluster

Additional context

spun out from https://github.com/rancher/dashboard/issues/9814#issuecomment-2253325637

/backport v2.9.next1

Confirming that the bug impacts only prod builds. Everything works properly when running the UI locally. @richard-cox

Created a follow up ticket to add tests for this issue https://github.com/rancher/dashboard/issues/11676. moving to To Test for manual validation

Validated on Rancher version: v2.10.0-alpha11
UI version: v2.10.0-alpha6
Harvester plugin version: 1.0.0
Harvester clusters versions: 1.4-head and 1.3.2 - (1.4 target is Rancher 2.10).
I was able to navigate without issues between the two imported Harvester clusters in the Virtualization Management. All advanced options were browsable and the common options too. No errors about loading page objects.


startPreview Failure

Hi,
startPreview fails at the below point with the below configuration and system state:

OS Version: 7.0
Device: Galaxy Note5
RAM Free: 39.1%
Disk Free: 9.9%

#0. Crashed: Thread-24: 0 0 0x0000000000000000
       at android.hardware.Camera.startPreview(Camera.java)
       at com.flurgle.camerakit.Camera1.start(Camera1.java:91)
       at com.flurgle.camerakit.CameraView$3.run(CameraView.java:216)
       at java.lang.Thread.run(Thread.java:762)

Fatal Exception: java.lang.RuntimeException: startPreview failed
       at android.hardware.Camera.startPreview(Camera.java)
       at com.flurgle.camerakit.Camera1.start(Camera1.java:91)
       at com.flurgle.camerakit.CameraView$3.run(CameraView.java:216)
       at java.lang.Thread.run(Thread.java:762)

If anyone else had this issue before I kindly ask you to link it here.
Cheers,
Renç

I believe this might be related to | same with #89

This should be fixed now with the latest release. Can you update your build.gradle to reference com.wonderkiln:camerakit:0.11.1. If the issue persists can you please re-open.
Thanks!


Clients with gov.bc.ca email addresses not showing in drop down list to connect client

@micheal-w-wells One of Chris’s — Entries immediately before and after her are displaying in the list properly. Hoping this isn’t somehow a leap year gift.

The get client request seems to be excluding emails that end in @gov.bc.ca. Do you know why it's like this @LisaMoore1?

its probably to exclude staff from showing up in the list

@calebissharp @micheal-w-wells Yup. It was so the top drop down list was more relevant (and mistakes couldn't be made accidentally selecting staff). There are very few AH that are also government employees and did not expect govt employees to work email for items related to their business...

@LisaMoore1 Ok, what should the plan be here then? I assume you still want to prevent staff from showing in the list.

@calebissharp Can we filter for usernames that start with "bceid" and aren't "myrangebc" rather than emails ending in gov.bc.ca? That would get us to the same spot I think of excluding staff from the list.

@micheal-w-wells What do you think? I don't know enough the data in prod to determine if a filter like that would be comprehensive.

It appears that all entries are either idir\ or bceid\  so excluding all those beginning with idir definitely gets rid of just staff.  "myrangebc" (what we use for administration in prod) does not seem to have a user account so doesn't have to be excluded.  @micheal-w-wells Seem right?

I think removing the filter on .gov.bc.ca, but also filtering out the bceid\myrangebc user and IDIRs should do the trick for now.  Staff are not to login as staff with BCEID (other than as bceid\myrangebc admin) and not as AH with IDIR.

@calebissharp The list in test now seems really short but I’m not sure if that is because those are the only entries in the test environment. Can you confirm with @micheal-w-wells that what is appearing there is complete for test given the filters?

Looking now

myra=# select count(distinct(client_number)) from ref_client;
 count
-------
  3490
(1 row)

myra=# select count(*) from user_account where username like 'bceid%';
 count
-------
    14
(1 row)

@micheal-w-wells I’m still not exactly sure what is happening with the list as there are 18 ( I think) rows in the drop down. Does that mean there are 4 in the list that have non-BCeID user accounts?

You're logic is sound yep, having a look at the list myself I'd say those are dev accounts to login as AH.  @LisaMoore1

@micheal-w-wells So in your estimation is what we’re seeing the right list? If so we can close this one.


AHK V2 - Beta 12

Hi,
I've been trying to adapt this script to the latest beta version (beta 12), but I'm having a hard time to get the proper PHYSICAL_MONITOR from dxva2\GetPhysicalMonitorsFromHMONITOR  (the hMonitor value before that is tested and valid). I think the only variance is the By Ref removal and BufferAlloc to Buffer....
Your initial code:
GetPhysicalMonitorsFromHMONITOR(hMonitor, PhysicalMonitorArraySize, ByRef PHYSICAL_MONITOR){

   PHYSICAL_MONITOR := BufferAlloc((A_PtrSize + 256) * PhysicalMonitorArraySize)
   if (DllCall("dxva2\GetPhysicalMonitorsFromHMONITOR", "ptr", hMonitor, "uint", PhysicalMonitorArraySize, "ptr", PHYSICAL_MONITOR))
      return NumGet(PHYSICAL_MONITOR, 0, "ptr")
   return false
}

My try:
GetPhysicalMonitorsFromHMONITOR(hMonitor, PhysicalMonitorArraySize, &PHYSICAL_MONITOR){

   PHYSICAL_MONITOR := Buffer((A_PtrSize + 256) * PhysicalMonitorArraySize)
   if (DllCall("dxva2\GetPhysicalMonitorsFromHMONITOR", "ptr", hMonitor, "uint", PhysicalMonitorArraySize, "ptr", PHYSICAL_MONITOR))
      return NumGet(PHYSICAL_MONITOR, 0, "ptr")
   return false

I know this hasn't been maintained in a while, so no worries if you have no plans to maintain this code.
Thanks!

Funny that you opened this issue ticket now because last night I decided to try and start porting the Monitor lib used in this app to the latest v2 beta version, so I can build a better UI. I haven't been coding for quite some time. Anyways, ran into the same sort of issue as yourself, I also updated the ByRef and Buffer to the new conventions in the latest beta like you did.
I went a step further removed and just tried to call the DllCall for Setting Brightness (SetMonitorBrightness function), and oddly even though I have the EnumDisplayMonitors function and associated functions working (I can query each monitor for it's name, handle, width, height, etc.), it appears with the new beta conventions I am not calling the basic DllCalls correctly, as they keep returning 0 values (meaning the function failed for some reason). When I look up the Error Code provided, it says
ERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE
0xC026258C
This function failed because an invalid monitor handle was passed to it.

However, I've tried passing it directly my monitor handle from passing the variable data in, or just giving it the raw digits (My monitor handles are just simple 5 numbers like 55793, 55979 or something close to that). So my conclusion is that either I'm passing in an invalid monitor handle like the error is returning (which I don't think is the case, but not ruling it out yet), or I'm  not using DllCall correctly, or something entirely different.. but that's as far as I've narrowed this issue down so far.
I'm pretty strapped for time these days, so who knows when I'll get around to resolving this issue but something I'll work on and update you if I make progress.

Disregard my previous comment about DllCalls being incorrect, it's been awhile and I forgot that you have to open and close the Device Context in a certain series of steps in order for these monitor functions to not fail.
Are you receiving an error that looks like this?
Error:  Parameter #4 of Monitor.Prototype.GetPhysicalMonitorsFromHMONITOR requires a variable reference, but received an empty string.

	Line#
	351: Throw Error("Unable to get handle to monitor.

Error code: " Format("0x{:X}", A_LastError))
	352: }
	354: {
	356: If (hMonitor := this.GetMonitorHandle(Display))
	356: {
	357: PHYSICAL_MONITOR := ""
	358: PhysicalMonitors := this.GetNumberOfPhysicalMonitorsFromHMONITOR(hMonitor)
--->	359: hPhysicalMonitor := this.GetPhysicalMonitorsFromHMONITOR(hMonitor, PhysicalMonitors, PHYSICAL_MONITOR)
	361: If (SetMethodName = "SetMonitorVCPFeature" || SetMethodName = "SetMonitorColorTemperature")
	361: {
	362: Setting := this.%SetMethodName%(hPhysicalMonitor, Setting, params*)
	363: this.DestroyPhysicalMonitors(PhysicalMonitors, PHYSICAL_MONITOR)
	364: Return Setting
	365: }
	366: Else

I fixed the issue, but now some more are popping up when running through examples. The main issue I believe is solved though, some variables in the functions that didn't require a preceeding & now do. I'll update here with working code once I have successfully tested all examples.

@Francois-Bergeron View the updated Monitor Lib that powers this app here: https://github.com/tigerlily-dev/Monitor-Configuration-Class/blob/master/Monitor Class.ahk
This screen dimmer app utilizes a stripped down version of the library shared above, basically stripping out all unnecessary functions/methods. It shouldn't be too hard for you to figure out which code to pull out to put in the screen dimmer. I plan to try and make some progress on the screen dimmer's UI this year so I'll also be updating the code directly at some point between now and end of next year.

Ah great timing that we're both looking at this now!
Thanks for your quick update. I'll have a look at your changes tonight or tomorrow, but if you got that working, I should be fine.


[Integration Tests] Wallet and Mining clean up

This removes GenerateStratisWithMiner so that the dev is only allowed to go through TestHelper.MineBlocks.

I suppose the main question is, do the tests still pass?

This is a massive PR hard to review it @bokobza @zeptin can you approve when happy?

Actually @bokobza wait for my confirmation that all tests pass before merging ;)

@fassadlr let me know when you're happy and I'll give it the once over.

@bokobza I have run all the integration tests. These fail but will be fixed with #2262
git push origin master --force

I propose that we get this merged as there are some other improvements that I want to make 👍

@bokobza I will push this now, please review and any comments you have we fix/change in a new PR.


Get dividends

Finary+ users can get dividend calendar. Let's search for the API endpoint and add a function.

Let's start with dividends for all investments. I will add a function in portfolio.py called get_portfolio_investments_dividends
You can test it with finary_uapi investments dividends

Done see https://github.com/lasconic/finary_uapi/pull/88

Available in version 0.1.4 on pypi. Also with sharing links (but no dividend history there of course...)

Gonna try this this week thanks :)
Might be a dummy question but how can we list all available endpoints from Finary API (how can we find them out?)?

There are no dummy questions, right?
As far as I know, there is no public place where all the calls are listed. The only way I can think of to get most of the calls would be to record all the calls on the website (or the app) while visiting every single page. You can do that with web console of your browser. Start it, go to Network tab, filter api.finary.com, and visit as many pages as you can.
Firefox (and chrome?) let you save all the calls in HAR format. Some tools can turn HAR to OpenAPI (see https://github.com/jonluca/har-to-openapi for example), and then OpenAPI spec can be turn into API client code (something like finary_uapi, but here I did the whole work manually...) or docs.
I have another project, currently on hold, where I started to write an OpenAPI spec by hand. I tried Har2OpenAPI but the result was not readable by a human (for example objects were not reused. Meaning all the calls using a "Currency" would define a different currency object without "factorizing")


Add support for block commands

According to the sway man page you can use commands in block form by using the command in the form command { <subcommands...> } see https://github.com/swaywm/sway/blob/master/sway/sway.5.scd#description
However, when you use this form, the syntax is marked red.

Would it be possible for you to implement this feature?

Oddly enough the block code is no longer being highlighted red, but could it be implemented so that the command is highlighted?

Awesome, thanks!

Will these changes be merged into i3config by chance?

I haven't seen much activity on that repo in the last few months, so I wasn't planning on a PR.


Fix incorrect solution check and add clarity to incorrect solution output.

These commits fix the following:

In the "Print all objects with a given type exercise", the solution check looks for bar = 9 which is incorrect and should be bar = 4242 as specified in the [solution/question generation script] (https://github.com/joyent/node-debug-school/blob/master/exercises/print_all_objects_with_a_given_type/node-script-that-aborts.js#L23).

When an incorrect value is given to the "Print all objects with a given type exercise" solution checker, it asks for the max-value instead of the min-value.

Additionally some clarity has been added to the description and output of the "Generate a core dump when app crashes" exercise. I found it somewhat easy to miss the prescribed output of the sample Node.js app.

@richardkiene My apologies for taking so long to reply. I had somehow missed this PR. LGTM, and thank you :+1:

Landed in 855c73730d35f16376da88b5a335df16b33d859a and f3abaa45ea0ca066a26eb45a917f0fb5a7b21c9e with tiny changes to the commit messages. Thank you again!

Also published on npm as 1.0.1 :+1:


doc: usermode: fix syscall_handler.h location in docs

Trivial

@mbolivar-nordic maybe rebase this one?

@mbolivar-nordic maybe rebase this one?

Done, thanks.

Still appears with conflicts, to me.

@mbolivar-nordic Something went wrong with the rebase, I have altered the line in commit 9dc00e45ce01e80fec188161dc56a8278c6c02e4 and it should look different.

Ah, I see you fixed the path along with other things. I'll still rebase this as I think using :zephyr_file: is a bit cleaner since it's been reviewed. Rebased properly this time.


Restored tasks do not show in status bar

I do not see the build task decoration in status bar after restart or reload:

Testing https://github.com/microsoft/vscode/issues/155349

Slightly related, when a task spins in the terminal, it does not spin after reload.

I cannot reproduce the building indicator not being in the status bar. Can you still repro that?
Regarding the spinner, that's tracked in https://github.com/microsoft/vscode/issues/155246

Alex could repro what you're talking abt related to the status bar yesterday but can't any longer
https://github.com/microsoft/vscode/issues/156295#issuecomment-1196438543

Yes I can still reproduce.

With the vscode build task @bpasero ?

Yeah, I run this command: workbench.action.tasks.build.
You can actually see in this video how:

tasks still duplicate
the status message is lost

MR workspace, 2 folders.

can't repro them duplicating 😢

But when you reload window while this shows:

Does it show the same in the status bar after the window reloaded?

Not sure I understand what you mean. The VS Code build task has never worked for me - something I should probably investigate at some pt 😓 which is why I am using the xterm.js build task instead.
https://user-images.githubusercontent.com/29464607/181809882-54024e6e-f7ae-472f-8aee-8e6ba2b62c2a.mov

We are tracking the issue with the status not updating in a diff't issue already

Ah ok, yeah I am only using the build task in my setup for the issues I have reported with tasks 👍

This still seems present for me on web:
https://user-images.githubusercontent.com/2230985/186737984-ea6be9ba-127d-495e-a64c-364074ee8732.mp4
(disregard the long reload time--running the CLI in verbose debug mode 😛 )

@connor4312 I cannot reproduce in desktop - could you try that?
I'll open an issue about web

keeping this one about desktop

This does work on desktop 🙂


Add a simple GitHub workflow

Currently, our bundle exec rake task is broken, so let's only merge this once we get that running smoothly

Looks like this PR can be closed. Theres already a very similar Github workflow in the master.


APIs used for applications

I think "Piped api support", "Invidious api support" and "local api" would be good options.
For example,
NewPipe uses a local api,
FreeTube uses a local api and Invidious,
Yattee uses Piped and Invidious,
LibreTube uses Piped

Good idea! I want to keep the chart very beginner-friendly so I stuck with visible features, but this is a great way to introduce people to backend information aswell


Double check system ninja verse conda ninja interaction

Originally posted by @litghost in https://github.com/SymbiFlow/symbiflow-arch-defs/diffs

FYI, I removed ninja because a system ninja and the conda ninja interact poorly.  As a follow up, we should figure out a good way to have people enter the conda environment.  My thinking was to put shell scripts in /build like activate and deactivate.

make enter should get you a new shell with the conda environment running.

I also suggest we set up a "Makefile forward" that sends any make XXX in the top level to a cd build/; $(IN_CONDA_ENV) make?

@litghost Thoughts?

I also suggest we set up a "Makefile forward" that sends any make XXX in the top level to a cd build/; $(IN_CONDA_ENV) make?

The old forward didn't appear to work with the "env" target, and lead to an infinite loop.  Not sure how it can be done.


Rate limiting parameters

I'm working to integrate the capabilities of this Python Package into my open source project WordHoard.   I started writing code to use your Python package.  I noted that when I used the Linguee Translator I get blocked within seconds.  I even get blocked if I add a 10 second delay between requests.  I cannot find any published guidelines on Linguee site for rate limiting.  I have contacted the vendor about this issue.
Concerning the MyMemory Translator.  I also get blocked when using this translation service.  I have noted that MyMemory does have rate limits, which can be extended by adding an email parameter in the request.
reference: https://mymemory.translated.net/doc/spec.php
Could you add this parameter to the MyMemory module?  If needed, I can do a Pull Request with the change.
Thanks in advance for reviewing this issue.

I'm closing this issue, because I developed a design my own solution, which I can maintain within my project.

Hi @johnbumgarner ,
Have you figured out the limitation of Linguee translation?


Styling of the inter-assay heatmap wizard card is missing

The styling for the inter-assay heatmap wizard card on the metaproteomics analysis results page is off. It's not possible to select a specific category filter and the styling of the card is off.

See https://github.com/unipept/unipept-web-components/pull/224

Fixed in #1559


Support basic wildcard searches for clients in the API

This currently works to get events for a single client:
curl  http://sensu.foo.com/clients/db3.cluster1
I'd like to have the API support some sort of wildcards. Since redis has globs handy with minimal work, how about:
curl http://sensu.foo.com/clients/db?.cluster1
or
curl http://sensu.foo.com/clients/db?.*ster1
(command line escaping shown above)
And have it return all clients that match that pattern.
This could presumably be extended to support patterns anywhere. Ultimately I'd like to have this functionality exposed in the dashboards but I'll start w/ the API.
FWIW - I have code that does this. I'll pull together a PR.

A trello card has been created for this feature/functionality https://trello.com/c/KJXvO2j2/12-as-an-operator-i-would-like-the-sensu-api-to-provide-result-filters-eg-nested-attribute-foo

I would close this due to inactivity, but I think this is still a valid suggestion (and some more recent issues have made similar suggestions). I've tagged this issue to include this in a renewed discussion about overall API improvements (see #1220). Please watch that issue for activity and participate there if you have any further thoughts to share. #monitoringlove

Just merged https://github.com/sensu/sensu/pull/1595 into the 0.29 release branch, which implements generic GET response content filtering. Not going to implement URL regex params at this time.

@portertech - I appreciate the follow up, thanks.


Waydroid: ERROR: <urlopen error [Errno -3] Temporary failure in name resolution>

Describe the bug
╰───❯ sudo waydroid init
[sudo: authenticate] Password:
[08:37:29] ERROR: <urlopen error [Errno -3] Temporary failure in name resolution>
[08:37:29] See also: <https://github.com/waydroid>
Run 'waydroid log' for details.
╰───❯ waydroid log
(054954) [08:40:07] Traceback (most recent call last):
  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/urllib/request.py", line 1348, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/http/client.py", line 1298, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/http/client.py", line 1344, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/http/client.py", line 1293, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/http/client.py", line 1052, in _send_output
    self.send(msg)
  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/http/client.py", line 990, in send
    self.connect()
  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/http/client.py", line 1463, in connect
    super().connect()
  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/http/client.py", line 956, in connect
    self.sock = self._create_connection(
                ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/socket.py", line 827, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/socket.py", line 962, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
socket.gaierror: [Errno -3] Temporary failure in name resolution

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/nix/store/hdpm8y2l0nkjv1mhj69zrxsbkqy96hw7-waydroid-1.4.2/lib/waydroid/tools/__init__.py", line 64, in main
    actions.init(args)
  File "/nix/store/hdpm8y2l0nkjv1mhj69zrxsbkqy96hw7-waydroid-1.4.2/lib/waydroid/tools/actions/initializer.py", line 124, in init
    helpers.images.get(args)
  File "/nix/store/hdpm8y2l0nkjv1mhj69zrxsbkqy96hw7-waydroid-1.4.2/lib/waydroid/tools/helpers/images.py", line 36, in get
    images_zip = helpers.http.download(
                 ^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/hdpm8y2l0nkjv1mhj69zrxsbkqy96hw7-waydroid-1.4.2/lib/waydroid/tools/helpers/http.py", line 110, in download
    with urllib.request.urlopen(url) as response:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/urllib/request.py", line 216, in urlopen
    return opener.open(url, data, timeout)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/urllib/request.py", line 519, in open
    response = self._open(req, data)
               ^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/urllib/request.py", line 536, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/urllib/request.py", line 496, in _call_chain
    result = func(*args)
             ^^^^^^^^^^^
  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/urllib/request.py", line 1391, in https_open
    return self.do_open(http.client.HTTPSConnection, req,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/urllib/request.py", line 1351, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [Errno -3] Temporary failure in name resolution>

(056740) [08:41:37] % tail -n 60 -F /var/lib/waydroid/waydroid.log
(056740) [08:41:37] *** output passed to waydroid stdout, not to this log ***

Steps To Reproduce
Steps to reproduce the behavior:
0. Set virtualisation.waydroid.enable = true; in your NixOS config and reboot

Invoke sudo waydroid init and expect the shown failure

Expected behavior
Just work
Additional context
My DNS seems to be working without issues as tested in various websites and including changing the DNS for cloudflare and libreDNS.
Notify maintainers

CC @CajuM
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.8.6-xanmod1, NixOS, 23.11 (Tapir), 23.11.20240417.e402c3e`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.1`
 - channels(root): `"nixos-23.05"`
 - channels(raptor): `"home-manager-23.05.tar.gz, nixpkgs-23.05, nixpkgs-unstable-23.05"`
 - nixpkgs: `/home/kreyren/.nix-defexpr/channels/nixpkgs`

Add a :+1: reaction to issues you find important.

I can't reproduce the issue. Could you check DNS using wireshark?

I can't reproduce the issue. Could you check DNS using wireshark? -- @CajuM (https://github.com/NixOS/nixpkgs/issues/306193#issuecomment-2072043138)

It seems to work today.. I guess it might have been an issue on the sourceforge's side yesterday.


Regression tests using outdated version of Veryl.

  × Unexpected token: ':'
   ╭─[/home/runner/work/std/std/src/async_fifo/async_fifo.veryl:7:26]
 6 │ /// Generic parameter `S` is a module name of synchrinozer.
 7 │ pub module async_fifo::<S: synchronizer> #(
   ·                          ┬
   ·                          ╰── Error location
 8 │     param WIDTH             : u32  = 8                         , /// Data width
   ╰────

Yes. This is one of motivations of #17.
I'll change Veryl of CI from stable release to github temporaly.
After merging #6 and #19, I'll do #17.

Regression failure was fixed.


Show backers and sponsors from Open Collective

Anyone who donates to Phenomic on Open Collectiv will have their face/logo show up here.

Thank you!


User Interface: NFT Bridge - Token ID

Describe the feature request
please remove the feature on taiko nft bridge that makes token ID increases/decreases when you do mouse scroll inside the token id field. it can triggered by accident when scrolling at the bottom of the page after the input of nft token id.
Spam policy

[x] I verify that this issue is NOT SPAM and understand SPAM issues will be closed and reported to GitHub, resulting in ACCOUNT TERMINATION.

So cool

I thought this was cause by my PC beeing old, I decided to  end my test for the next day

@KorbinianK could you please verify if this is still an UX issue?

Can't replicate this on chromium browsers or firebox


Dummy Players upon client crash

When a user crashes, or is kicked by the game ("client session no longer valid"),
the user will appear to still be logged in, when they are not.
The user cannot login until kicked by a Moderator, or the server 'catches up'.

This has been an old issue. It has to due with the server factory not reaping the connections. I need to do some more research on how this is handled in StarryPy before I can attempt a fix.


Check isInterrupted flag regularly also if no InterruptedException was thrown

Fixes #125

looks promising

:+1:

Travis build failed for unrelated reason:

[ERROR] Plugin org.apache.maven.plugins:maven-failsafe-plugin:2.19.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-failsafe-plugin:jar:2.19.1: Could not transfer artifact org.apache.maven.plugins:maven-failsafe-plugin:pom:2.19.1 from/to central (https://repo.maven.apache.org/maven2): Access denied to: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-failsafe-plugin/2.19.1/maven-failsafe-plugin-2.19.1.pom , ReasonPhrase:Forbidden. -> [Help 1]


AttributeError: module 'grid' has no attribute 'svo_intersect'

PatchWorkpp::PatchWorkpp() - INITIALIZATION COMPLETE Decoder(   (pe): Same()   (pts_linears): ModuleList(     (0): Linear(in_features=16, out_features=256, bias=True)     (1): Linear(in_features=256, out_features=256, bias=True)   )   (sdf_out): Linear(in_features=256, out_features=1, bias=True) ) ******* initializing first_frame: 0 initializing the first frame ... mapping process started!!!!!!!!! frame id 1 trans  tensor([0., 0., 0.], device='cuda:0') insert keyframe Process Process-2: Traceback (most recent call last):   File "/usr/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap     self.run()   File "/usr/lib/python3.8/multiprocessing/process.py", line 108, in run     self._target(*self._args, **self._kwargs)   File "/home/NeRF-LOAM/src/mapping.py", line 107, in spin     self.do_mapping(share_data, tracked_frame, selection_method='current')   File "/home/NeRF-LOAM/src/mapping.py", line 179, in do_mapping     bundle_adjust_frames(   File "/home/NeRF-LOAM/src/variations/render_helpers.py", line 394, in bundle_adjust_frames     final_outputs = render_rays(   File "/home/NeRF-LOAM/src/variations/render_helpers.py", line 211, in render_rays     intersections, hits = ray_intersect(   File "/usr/local/lib/python3.8/dist-packages/torch/autograd/grad_mode.py", line 27, in decorate_context     return func(*args, **kwargs)   File "/home/NeRF-LOAM/src/variations/voxel_helpers.py", line 534, in ray_intersect     pts_idx, min_depth, max_depth = svo_ray_intersect(   File "/home/NeRF-LOAM/src/variations/voxel_helpers.py", line 110, in forward     inds, min_depth, max_depth = _ext.svo_intersect( AttributeError: module 'grid' has no attribute 'svo_intersect'
Hi, I have encountered this problem when running python demo/run.py configs/kitti/kitti_00.yaml. And I have seen the same problem in github while that solution didn't work for me. Is there another possible reason for this?

Sorry for late reply, we are in vacation these days.
Could you please check that the third party is installed successfully? There are three of them, make sure all of them are installed.


Respond to Koa request immediately, continue middleware chain

I am writing the middleware for API endpoints in my app that respond to webhooks from other applications, and am relatively new to Koa, so am not completely familiar with its patterns.
I would like to structure my middleware as follows:
exports.updateReceived = async (ctx, next) => {
  // Respond to server issuing the webhook
  ctx.res.body = "ok";
  ctx.res.statusCode = 200;

  // Grab what we need from the request
  const { headers, state, request } = ctx;
  const { body } = request;

  // Do some async work
  const { example } = await doSomeAsyncWork(ctx);

  // Prepare a database query
  const query = { aValue: anId };

  // Run the DB query
  const result = await Thing.findOne(query);

  // Add data to the request
  state.thing = result;

  // Move on...
  return next();
};

However, this does not appear to be working, as an error in any of my async methods can cause the route to error out.
My goal is for this endpoint to always respond "yep, ok" (immediately), meaning it is simply up to the application to handle any error states.
I have researched this fairly well, and have come across this pattern:
app.use(async ctx => {
  db.fetch() // Assuming a Promise is returned
    .then(() => { ... })
    .catch(err => {
      log(err)
    })

  // status 200 will be returned regardless of if db.fetch() resolves or rejects.
  ctx.status = 200
})

However, this does not meet my needs as the middleware makes no use of next, so it is not really a useful pattern, so far as I can tell.
Could someone tell me what I am overlooking? I wrote this question on StackOverflow several days ago, but getting nowhere.

Same thing, I can't manage to respond immediately and continue function execution.
public static async orderFulfilled(ctx: Context, next) {
   // need to immediately respond (in 5 seconds or so) otherwise they assume this request failed
    ctx.status = 200;
    ctx.body = 'ok';
    await next();

   // do the math.......
}

This doesn't work!

Here is the feedback I ended up getting: https://stackoverflow.com/a/60877855/1172519.
By the time I got a response I just ended up refactoring the "middleware" called by the server route as a sync (note: non-async) function.
So I haven't tested the linked answer, but it appears to be a great way to establish general error handling for Koa.
However, I don't understand why this needs to be so hard.

Hey @paulisloud!
Thanks for the tip! I finally achieved what I wanted without (adding additional) / (restructuring existing) middleware. Here's my solution for this:
// THE ROUTE METHOD, THE INITIAL ENTRYPOINT.

public static async orderFulfilled(ctx: Context, next) {
   // need to immediately respond (in 5 seconds or so) otherwise they assume this request failed
    ctx.status = 200;
    ctx.body = 'ok';
    await next();

   // do the math.......

   // calling timeDemandingTask WITHOUT AWAIT
   return timeDemandingTask();
}

// OUR TIME DEMANDING METHOD WE DON'T WANT TO WAIT
private static async timeDemandingTask(ctx: Context) {
  // doing the math.......
  await action_1();
  await action_2();
  await action_3();
  await action_4();
  // two minutes passed!
}

In the end it works as intended.

@AleksMeshkov yep, basically the same approach I ended up with. Cheers.

Hummm...
This is not exactly Koa issue (IMO)!!
You can use worker_threads to avoid blocking code and keep chaining flowing.
And your code will be consistent!
// thread-service.js
'use strict'

const {Worker, isMainThread} = require('worker_threads')

function runService(service, workerData) {
  if (isMainThread === false) {
    return
  }
  const worker = new Worker(service, {workerData})
  worker.once('message', console.log)
  worker.once('exit', code => {
    worker.removeAllListeners()
    worker.terminate()
    if (code !== 0) {
      new Error(`Worker stopped with exit code ${code}`)
    }
  })
}

module.exports = runService

// service.js
'use strict'

const {workerData, parentPort} = require('worker_threads')
// const db = require('./my-db')

;(async () => {
  try {
    // do your stuff with data
    // const result = await db.save(workerData)
    console.log('thread --->', workerData)
    const result = Math.random()
    parentPort.postMessage({result})
    process.exit(0)
  } catch (error) {
    process.exit(1)
  }
})()

// app.js
'use strict'

const {join} = require('path')
const Koa = require('koa')
const runService = require('./thread-service.js')

const app = new Koa()

app
  .use(async (ctx, next) => {
    const start = Date.now()
    ctx.state.start = start
    console.log('start --> goto b')
    await next() // goto b
    // a
    const ms = Date.now() - start
    ctx.set('X-Response-Time', ms)
    console.log('a --> end')
  })
  .use(async (ctx, next) => {
    // b
    const {start} = ctx.state
    runService(join(__dirname, 'service.js'), {start})
    console.log('b --> goto c')
    await next() // goto c
    // b2
    // goto a
    console.log('b2 --> goto a')
  })
  .use(ctx => {
    // c
    ctx.body = {ok: true}
    // goto b2
    console.log('c --> goto b2')
  })
  .on('error', console.error)

app.proxy = true

app.listen(3435, () => {
  console.log('Running: http://[::1]:3435')
})

Output
> node app.js
Running: http://[::1]:3435
start --> goto b
b --> goto c
c --> goto b2
b2 --> goto a
a --> end
thread ---> { start:<PHONE_NUMBER>920 }
{ result: 0.5918108149573942 }


treewide: Remove some crossAttrs

Motivation for this change
Progress towards #33302. Packages here picked so as to not cause a mass-rebuild.
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Fits CONTRIBUTING.md.

Success on aarch64-linux (full log)
Attempted: nlohmann_json, prboom
Partial log (click to expand)
-- Installing: /nix/store/7g685wwh0zvgdj0y261ymm07zdhgqkqd-nlohmann_json-3.1.2/lib/cmake/nlohmann_json/nlohmann_jsonConfigVersion.cmake
-- Installing: /nix/store/7g685wwh0zvgdj0y261ymm07zdhgqkqd-nlohmann_json-3.1.2/lib/cmake/nlohmann_json/nlohmann_jsonTargets.cmake
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/7g685wwh0zvgdj0y261ymm07zdhgqkqd-nlohmann_json-3.1.2
strip is /nix/store/a245zacjzf3qw0davhvlfarihcy2yyrc-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/7g685wwh0zvgdj0y261ymm07zdhgqkqd-nlohmann_json-3.1.2/lib
patching script interpreter paths in /nix/store/7g685wwh0zvgdj0y261ymm07zdhgqkqd-nlohmann_json-3.1.2
checking for references to /build in /nix/store/7g685wwh0zvgdj0y261ymm07zdhgqkqd-nlohmann_json-3.1.2...
/nix/store/7g685wwh0zvgdj0y261ymm07zdhgqkqd-nlohmann_json-3.1.2
/nix/store/q83rp4g021vw0pgs50dds3gv36jsgj8n-prboom-2.5.0

Success on x86_64-linux (full log)
Attempted: nlohmann_json, prboom
Partial log (click to expand)
-- Installing: /nix/store/5022gzwr7by6jva3256azvd5f4vkjj77-nlohmann_json-3.1.2/lib/cmake/nlohmann_json/nlohmann_jsonConfigVersion.cmake
-- Installing: /nix/store/5022gzwr7by6jva3256azvd5f4vkjj77-nlohmann_json-3.1.2/lib/cmake/nlohmann_json/nlohmann_jsonTargets.cmake
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/5022gzwr7by6jva3256azvd5f4vkjj77-nlohmann_json-3.1.2
strip is /nix/store/a3nk8z2i7m7wa3jdckgv710n7j3yx4b5-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/5022gzwr7by6jva3256azvd5f4vkjj77-nlohmann_json-3.1.2/lib
patching script interpreter paths in /nix/store/5022gzwr7by6jva3256azvd5f4vkjj77-nlohmann_json-3.1.2
checking for references to /build in /nix/store/5022gzwr7by6jva3256azvd5f4vkjj77-nlohmann_json-3.1.2...
/nix/store/5022gzwr7by6jva3256azvd5f4vkjj77-nlohmann_json-3.1.2
/nix/store/zfziac57wd5nxmxna5mzfbnw3hpg47pv-prboom-2.5.0

Were these tested by cross-building them somehow?


Audit events have node IP address as source address for requests

Audit events from the kube-apiserver contain a field for the source IP that the requests came from. Example:
audittailer-768f964b78-t4hcs audittailer {"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"Request","auditID":"39d36d5d-cae5-4b0c-8ef2-8dc8013f49d1","stage":"ResponseComplete","requestURI":"/api/v1/namespaces/default/pods?limit=500","verb":"list","user":{"username":"oidc:IZ00242","uid":"IZ00242","groups":["oidc:all-cadm","system:authenticated"]},"sourceIPs":["<IP_ADDRESS>"],"userAgent":"kubectl/v1.21.1 (linux/amd64) kubernetes/5e58841","objectRef":{"resource":"pods","namespace":"default","apiVersion":"v1"},"responseStatus":{"metadata":{},"code":200},"requestReceivedTimestamp":"2021-05-27T17:30:52.228925Z","stageTimestamp":"2021-05-27T17:30:52.231553Z","annotations":{"authorization.k8s.io/decision":"allow","authorization.k8s.io/reason":"RBAC: allowed by ClusterRoleBinding \"oidc-all-cadm\" of ClusterRole \"cluster-admin\" to Group \"oidc:all-cadm\""}}

Unfortunately the "sourceIPs":["<IP_ADDRESS>"] is the node IP address of one of the nodes in the seed cluster. This seems to be the correct behaviour since the Apiserver is is exposed as service of typ loadBalancer with externalTrafficPolicy: Cluster.
From an audit point of view this is not ideal because it hides the real source address from which an event originated.
Changing the externalTrafficPolicy of the kube-apiserver service manually to Local fixes this temporarily, until the service get reconciled again. Example audit event:
{"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"Request","auditID":"952889bc-8879-43f6-9d91-e465cae3c76e","stage":"ResponseComplete","requestURI":"/api/v1/namespaces/audit/pods/audittailer-768f964b78-zg8jk/log","verb":"get","user":{"username":"oidc:IZ00242","uid":"IZ00242","groups":["oidc:all-cadm","system:authenticated"]},"sourceIPs":["<IP_ADDRESS>"],"userAgent":"kubectl/v1.21.1 (linux/amd64) kubernetes/5e58841","objectRef":{"resource":"pods","namespace":"audit","name":"audittailer-768f964b78-zg8jk","apiVersion":"v1","subresource":"log"},"responseStatus":{"metadata":{},"code":200},"requestReceivedTimestamp":"2021-05-27T17:45:49.837864Z","stageTimestamp":"2021-05-27T17:45:51.099244Z","annotations":{"authorization.k8s.io/decision":"allow","authorization.k8s.io/reason":"RBAC: allowed by ClusterRoleBinding \"oidc-all-cadm\" of ClusterRole \"cluster-admin\" to Group \"oidc:all-cadm\""}}

This seemed to have no ill effect on the cluster during the short time until the policy was reset, so I suggest we set the externalTrafficPolicy of the kube-apiserver to Local in ths extension provider.

The apiserver SNI feature with its istio gateway moves the problem from the apiserver service (which is now internal) to the istio-ingressgateway server, with the additional "bonus" that we can not change this service from this extension provider.
We still need the original client address for the audit log eventually.
Gardener's documentation says it is possible to use a self-deployed istio instead of using the Gardener managed istio, but do we want to do this?

Did we ask some people from the Gardener community in the past on how they deal with this?
As the problem originates from the kubeproxy, I assume that running Calico or another CNI like Cilium in "kubeproxy-free" mode resolves the issue as a whole. It's probably hard to setup and change will be disruptive, but it generally fits to our environment and also from the network / performance perspective it seems to be superior:

https://projectcalico.docs.tigera.io/maintenance/enabling-bpf
https://docs.cilium.io/en/stable/gettingstarted/kubeproxy-free/#direct-server-return-dsr

This has nothing to do with calico or CNI.
From https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/

.spec.externalTrafficPolicy - denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. There are two available options: Cluster (default) and Local. Cluster obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading. Local preserves the client source IP and avoids a second hop for LoadBalancer and NodePort type Services, but risks potentially imbalanced traffic spreading.

According to the Cilium documentation it sounds to me like externalTrafficPolicy=Cluster does not obscure source IPs when running in DSR mode. But maybe I did not understand it correctly then. :thinking:

externalTrafficPolicy=Cluster: For the Cluster policy which is the default upon service creation, multiple options exist for achieving client source IP preservation for external traffic, that is, operating the kube-proxy replacement in DSR or Hybrid mode if only TCP-based services are exposed to the outside world for the latter.

(source already mentioned above)
As far as I know, the local policy comes with minor nits that are probably tolerable in our case, but still not 100% cool. This is unequal traffic distribution + short traffic blackholing on service update / roll (see this KEP?).
I am gonna need to read a bit more or experiment with it first...


allow_failure is poorly named

I would expect if allow_failure is false... it would not be allowed to fail finding the files. This is currently not the case... if allow_failure is false, the step will succeed if the files are not found.
Alternatively if I set allow_failure to true... it fails the step if the files don't exist. That's not allowing a failure.

Agreed, it's quite confusing. I had to run a few tries until I figured out what's happening.
I wouldn't change the name without a major version bump, but the correct explanation in the Readme would help.
In either check, the "file exists" step doesn't run if the files don't exist.

Oh - I suddenly got it. "allow_failure" means of the overall ACTION not of the check for files ...
otherwise, any files that don't exist stop the action. That's sort of what you want, but usually steps fail anyway if there's a missing file.

Whilst it's not a game changer - this could be good to rename in the next version?
I think the description you've got is perfect but 🤯 took me a while

Hi!
I have finally changed the allow_failure to simply fail in the new major v2.0.0 release.
Hopefully, this will avoid any future confusion (and frustration) 😅


Look into using python-devtools

See https://python-devtools.helpmanual.io/usage/
The idea would be to use this in conjunction with my own debug_helper.
It would be a conditional import, to be replace by a null function that would simply swallow the arguments it receives.

This has now been done.


stop user from dragging annotation outside the canvas

Hi. First of all thank you for creating this awesome package.
I just want to know whether I can stop the user from dragging the annotation outside the canvas,partially or fully.
If the user drags the annotation partially outside the canvas the X or Y value is negative(depending the direction).
Example:
{
mark:{
height:<PHONE_NUMBER>7272725
type: "RECT"
width:<PHONE_NUMBER>1818176
x: -75.09090909090902
y:<PHONE_NUMBER>6363643
}
}
Any help would be greatly appreciated.

@ebrahimsakirmi I converted his package from typescript to normal react( because I dont know typescript). Then I changed the code in SHAPE.js(for typescript SHAPE.ts) to the following.
`
this.onDrag = (positionX, positionY) => {
  const { width, height } = this.annotationData.mark;
  let posX = positionX - this.dragStartOffset.offsetX;
  let posY = positionY - this.dragStartOffset.offsetY;
  let totalWidth = Math.floor(posX + width);
  let totalheight = Math.floor(posY + height);
  if (positionX - this.dragStartOffset.offsetX < 0 || totalWidth > 1280) {
  } else {
    this.annotationData.mark.x = positionX - this.dragStartOffset.offsetX;
  }
  if (positionY - this.dragStartOffset.offsetY < 0 || totalheight > 720) {
  } else {
    this.annotationData.mark.y = positionY - this.dragStartOffset.offsetY;
  }
  this.onChangeCallBack();
};`

mine image size for canvas was 1280 * 720.

@sbaz44 hey,  thanks a lot for replying back, I will give it a try for it and update you, Thanks men