Can we avoid creating empty folders when initializing a repo?

Is it needed to create all 256 data/ folders when initializing a repo? Or could they also be created when needed?
Borg:
└── 0
    ├── 0
    ├── 1
    ├── 10
    ├── 11
    ├── 12
    ├── 13
    ├── 14
    ├── 15
    ├── 16
    ├── 17
    ├── 18
    ├── 19
    ├── 2
    ├── 20
    ├── 21
    ├── 3
    ├── 4
    ├── 5
    ├── 6
    ├── 7
    ├── 8
    └── 9

2 directories, 22 files

Rustic:
[...]

├── e8
├── e9
├── ea
├── eb
├── ec
│   └── eca42cd695ae8243fa0ab3d3e649bcdbcf603cc0572992c7df3615874ac91620
├── ed
├── ee
├── ef
├── f0
├── f1
├── f2
├── f3
├── f4
├── f5
├── f6
├── f7
├── f8
├── f9
├── fa
├── fb
├── fc
├── fd
├── fe
└── ff

257 directories, 5 files

Thanks for opening the issue @AlphaJack.
Can you please be more specific what is your exact problem with having this 256 empty paths?
In fact, yes we could omit creating these folders and just create them on-demand. However, that would loose compatibility with restic which (IIRC) is not working when the paths are not present - as rustic is.
So, we can adapt rustic to be more resilient when those paths are note present (by creating them when they are needed), but if we initialize a new repo without creating these paths we get compatibility problems...

Thank you for the clarification,
this is not a big issue on my side, more of a question.
I was asking because uploading ~255 empty folders with RClone seemed slow.
If I would tell RClone to ignore uploading empty folders from a repo, once I download my remote backup, I would end up having less folders than the original repo (because I would miss all non-empty folders).
But if Restic cannot handle missing folders, then I guess it's better to leave things as they are, to maintain compatibility.
As long as Rustic works correctly without empty folders, I can set the "don't upload empty folders" option from RClone.

As long as Rustic works correctly without empty folders

Actually I think it won't. But you can open issues for the errors you get when removing empty dirs - I'll fix them in the next release(s)...

I'm getting this error with most operations (backup, prune, forget), but no further information about which file or directory is involved:
error: opening file failed: `Os { code: 2, kind: NotFound, message: "No such file or directory" }`

Can we also show the missing file or folder name in the error message?


Responsive Break Points Not Working

Below is the code I'm using but cant seem to get my break points to work.
any ideas?
var swiper = new Swiper('.s1', {
slidesPerView: 5,
slidesPerColumn: 2,
spaceBetween: 30,
nextButton: '.swiper-button-next',
prevButton: '.swiper-button-prev',
breakpoints: {
1024: {
slidesPerView: 5,
spaceBetween: 30
},
768: {
slidesPerView: 1,
spaceBetween: 10
},
640: {
slidesPerView: 1,
spaceBetween: 10
},
320: {
slidesPerView: 1,
spaceBetween: 10
}
},
});
      var swiper = new Swiper('.s2', {
        pagination: '.swiper-pagination',
        paginationClickable: true,
        slidesPerView: 3,
        spaceBetween: 30,
   		nextButton: '.swiper-button-next',
    	prevButton: '.swiper-button-prev',
        breakpoints: {
            1024: {
                slidesPerView: 2,
                spaceBetween: 30
            },
            768: {
                slidesPerView: 1,
                spaceBetween: 10
            },
            640: {
                slidesPerView: 1,
                spaceBetween: 10
            },
            320: {
                slidesPerView: 1,
                spaceBetween: 10
            }
        },
      });

Hard to say without example. If this issue is still actual, create new one and provide more details


Yizha/application insight

Coverage decreased (-0.5%) to 46.779% when pulling 67cfae4d06072ce533dcff4e887ff746faefc947 on yizha/applicationInsight into 6458c53c74eae2fbbd809828f4d1a9d215b03f96 on master.

Codecov Report

Merging #76 into master will decrease coverage by 0.55%.
The diff coverage is 52.63%.

@@            Coverage Diff             @@
##           master      #76      +/-   ##
==========================================
- Coverage   50.47%   49.92%   -0.56%
==========================================
  Files          88       89       +1
  Lines        1252     1288      +36
==========================================
+ Hits          632      643      +11
- Misses        620      645      +25

Impacted Files
Coverage Δ

src/services/authenticatedFetch.js
31.7% <0%> (-2.51%)
:arrow_down:

src/actions/authActions.js
100% <100%> (ø)
:arrow_up:

src/components/Timeline/Playbook/Play.js
25% <33.33%> (+5%)
:arrow_up:

src/services/authNService.js
44.89% <50%> (+0.21%)
:arrow_up:

src/appInsights.js
62.5% <62.5%> (ø)

src/components/elements/ErrorMessage.js
100% <0%> (ø)
:arrow_up:

src/components/Incident/Ticket.js
0% <0%> (ø)
:arrow_up:

src/components/TopNav/NavMenu.js
91.66% <0%> (+0.75%)
:arrow_up:

Continue to review full report at Codecov.

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


Override ERC721SeaDrop's tokenURI to make it easier to handle uniform tokenURIs

This PR overrides the default tokenURI() implementation in ERC721A to return just the baseURI for a token contract if the URI does not end with a /.
Motivation
At the moment it is difficult to set up Drops where all the tokenURIs need to be the same (such as for Open Editions or for pre-revealed Drops) as they require that token contract owners upload one file per token, which often end up being the same.
Solution
This change will treat any baseURI that does not end with a / as a 'single file' instead of a directory and return just the baseURI. Any baseURI that ends with / will function normally and return the baseURI + tokenID
Note
IDK what I'm doing. Any and all feedback on improving both the implementation and the tests are welcome :)

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.4%) to 98.442%

Files with Coverage Reduction
New Missed Lines
%

temp-src-coverage/ERC721SeaDrop.sol
1
95.38%

Totals

Change from base Build<PHONE_NUMBER>:
-0.4%

Covered Lines:
481

Relevant Lines:
482

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.2%) to 98.571%

Files with Coverage Reduction
New Missed Lines
%

temp-src-coverage/ERC721SeaDrop.sol
1
95.9%

Totals

Change from base Build<PHONE_NUMBER>:
-0.2%

Covered Lines:
481

Relevant Lines:
482

💛  - Coveralls


Feedback

Ok, the documentation looks okay.  But it doesn't say how to build a C program or a Assembly one.
Basically I am crossing over from the JVM to NET Core 6LTS/7 stack though not fully.
At the same time, with IDE for heavy lifting, I am also into Java, Rust (with IntelliJ IDEA), Racket/Clojure (with DrRacket etc), Prolog (with SWI-Prolog or other IDEs), Kotlin (with Android Studio).  And I am trying to find my way around Emacs.  Comparing Julia with Visual Basic, waiting for a Windows version of Oberon-07, using four databases and basically happy coding around.

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

ID: f51e5807-3f78-ff63-ef41-4629b7ae84d5
Version Independent ID: c1dbef6c-f895-a6d7-9d83-e2ac8f864327
Content: Create a console calculator in C++
Content Source: docs/get-started/tutorial-console-cpp.md
Product: visual-cpp
Technology: cpp-language
GitHub Login: @TylerMSFT
Microsoft Alias: twhitney

Thank you for your patience as we work through our backlog. We have received more issues than we can manage at this time. We are closing issues based on their severity, how broadly applicable they are, and whether there is enough information provided to act on the issue. If you believe that this issue should not have been closed, please reopen it and provide a comment explaining why.


extend GradientDirection by diagonal attributes

In addition to the already existing directions on the main axis, i add the possibility to use diagonal gradients as well.
Great utility widget. Thanks for creating.

That would be great

@astudilloalex any suggestions or compains about the PR?


Oops, typo in the URL

sorry to keep you busy mate! I owe you a cider. ;)

I don't mind clicking the green button! Thanks for the fix


Broken Zend_Db_Table_Rowset::current function

Hello,
First of all: thank's a lot to maintain ZF-1. Great work! :-)
Am I wrong? I think the return type of Zend_Db_Table_Rowset::current function recently added mixed is wrong. The function return Zend_Db_Table_Row_Abstract or null. mixed is union of string|int|float|bool|null|array|object|callable|resource. So Php complain when the function return Zend_Db_Table_Row_Abstract.
Here's the hash of the commit: ad81d0c2c6b5ee9207627022197b3a952418256b
Malo

Bug appears to have been introduced ...

Which version of PHP do you use?

This particular app is 7.4.

mixed is available as of PHP 8.0.0.  https://www.php.net/manual/en/language.types.declarations.php#language.types.declarations.mixed

Will be fixed in https://github.com/Shardj/zf1-future/pull/196

So, I've upped the required PHP version to 8.0, the final version supporting PHP 7.4 would be 1.20.0. However if this is a problem for lots of people and PHP 7 is still required I'll go back and remove the mixed tags. I was getting warnings during my upgrade to 8.1 with no return type set on those functions so mixed was used.

Just to be clear on why I made the change. You need to use the mixed return type to use PHP 8.1 SeekableIterator interface https://github.com/Shardj/zf1-future/blob/ad81d0c2c6b5ee9207627022197b3a952418256b/library/Zend/Db/Table/Rowset/Abstract.php
PHP docs: https://www.php.net/manual/en/class.seekableiterator.php

I could remove the mixed return type and create a copy of the old SeekableIterator interface to use throughout ZF1 instead, thoughts?

You can just put a #[\ReturnTypeWillChange] attribute to mask the deprecation till Php 9.0, and prevent any potential BC breaks.

Following on from my comment on commit 833ee782ed2f852ef44fe1a308f634f6cb9827d6, I'm a bit out of my depth with the specific situation on the mixed return type requirement for SeekableIterator in PHP 8.1, but I'm of the opinion that if there's any way to work around this to maintain PHP 7.3|7.4 support, it should be done.
@hc-jworman 's suggestion above looks plausible..?

Okay thanks I'll do just that then hc-jworman

Actually @hc-jworman do you want to just add those attributes to your PR https://github.com/Shardj/zf1-future/pull/196 and I'll merge it. Thanks for being so proactive with this issue

I'll make a release with the fix

Okay, go nuts: release-1.20.2

Would removing version 1.20.1 help?

I think so.


Integration test for archiving from Ingest to BioStudies archive

Implement an integration test to archive samples from Ingest to BioStudies archive.
It needs to use the BioStudies test environment (wwwdev)
It needs to test the direct archiving approach from Ingest to BioStudies and not via DSP
Test cases:

[ ] Test a successful sample(s) submission from Ingest to BioStudies
[ ] Test when BioStudies archive's service is down (mock a 500 response from BioStudies)

There is a PR for this, but needs a bit more work (due to merge conflicts) - amnon interested in reviewing

@ke4 finished cleanup and merge of previous PR. actual work will start today.

BioStudies Test (they call it Beta) environment is not expose to outside the EBI VPN. That means we can't reach it from our ingest-archiver service that is running on AWS. We are going to investigate this issue further with the help of BioStudies team.

@ke4 to schedule a discussion about our testing strategy for this project
Also - discussions with BioSturdies team about test env access - in progress

BioStudies REST API documentation: https://biostudies.gitbook.io/biostudies-api/

meeting with BST about exposing the test env scehduled for today.
Alternative - use a mock server

Karoly tested it on the VPN and got an accession. He did not have any errors but there were some issues with the UI. He entered a 4h loop. Karoly has reached out to them with the issues.

@ke4 started to work on integration tests

similar outcome to #523, integration test in staging failing

@ke4 to deploy into production


UART

Get the SCOPE for UART RX and TX, use Arduino's UART Code
https://github.com/balaji303/Arduino/tree/master/UART

fixes #5


Releasing the first rubydown in rubygems.org

After finished

[x] #15
[x] #13

I released rubydown in https://rubygems.org/gems/rubydown


How to make macOS app fullScreen as soon as app is launched

Summary
I am building an app on macOS that need to be full screen so can anyone suggest me how to do it
Motivation
I wanted to build an app that go to full screen as soon as it is launched
Basic Example
No response
Open Questions
No response

You would probably need to handle this in the native code of your app in your app delegate. For example, our template AppDelegate.mm currently calls self.window makeKeyAndVisible. You could probably add extra code in your app after that to make it fullscreen.

I have tried various code which are available online but none of the code works have you tried it before or you can give some reference?

In your AppDelegate, have you tried calling [[self window] toggleFullScreen:self] ?
https://stackoverflow.com/a/24145564

Tried to put it in appdelegate.m but getting the error

You still have to create the NSWindow object, like we do here (except replace UIWindow with NSWindow because UIWindow is iOS and NSWindow is macOS) https://github.com/microsoft/react-native-macos/blob/db2cc6efbc397e73c6ba1cd7bdfca23286ca9dbb/local-cli/generator-macos/templates/macos/HelloWorld-iOS/AppDelegate.m#L18
At this point, the issue doesn't feel React Native macOS specific to me, and more macOS app development specific. You might have better luck reading Apple docs about Objective C and Appkit development.

How to adapt the device size when the application starts, rather than a small window. I am a front-end developer and have no idea about this. I wasted a lot of time on this, does anyone know?


Dark mode

Hi,
There is a dark mode?
I see in docs that still in beta.
This project is active?

you can use dark mode on your site, almost of our components supports this dark mode.
you can visit our site and then switch dark mode to test. https://fastbootstrap.com/components/


Result of Series.mean() cannot be used as float

Describe the bug
As the title.
To Reproduce

Provide a minimal runnable pandas example that is not properly checked by the stubs.

import pandas as pd

series = pd.Series([0, 1, 2])
mean: float = series.mean()  # error

Indicate which type checker you are using (mypy or  pyright).
pyright

Show the error message received from that type checker while checking your example.

"float64" is incompatible with "float"

Please complete the following information:

OS: [e.g. Windows, Linux, MacOS]
Windows

OS Version [e.g. 22]
10

python version
3.10.10

version of type checker
1.1.301 (bundled with pylance)

version of installed pandas-stubs
<IP_ADDRESS>412

Additional context
Per #552 and #622 , Series.mean() is changed into return numpy.float64 instead of float.
Although numpy.float64 is a subtype of float in runtime most of the time (on 64bit systems), it's not technically so, and there is no evidence for that in numpy stubs ("numpy/__init__.pyi"). Therefore, a numpy.float64 value would not be allowed to be used as float by a type-checker.
Considering how most APIs here are declared to return ints or floats instead of numpy.int64s or numpy.float64s, I think that it would be fair to say that these returned values are more commonly used as if they are plain ints or floats. I'd like to see the change be reverted.

Although numpy.float64 is a subtype of float in runtime most of the time (on 64bit systems), it's not technically so, and there is no evidence for that in numpy stubs ("numpy/init.pyi"). Therefore, a numpy.float64 value would not be allowed to be used as float by a type-checker.

Can you explain what you mean by "it's not technically so" ?

Considering how most APIs here are declared to return ints or floats instead of numpy.int64s or numpy.float64s, I think that it would be fair to say that these returned values are more commonly used as if they are plain ints or floats. I'd like to see the change be reverted.

Well, for Series.mean(), we document it as returning a scalar.
Having said that, if using the pyarrow backend, the result is a float:
>>> import pandas as pd
>>> s=pd.Series([1,2.2,3])
>>> pa = pd.to_numeric(s, dtype_backend="pyarrow")
>>> pa
0    1.0
1    2.2
2    3.0
dtype: double[pyarrow]
>>> ma = pa.mean()
>>> type(ma)
<class 'float'>

So I agree with you that we can revert this change.  PR welcome.
@ramvikrams can you do this?

Is the right thing to do to sub-class frame/series for the pyarrow backend, and then overload the constructor and read functions to create one?

So I agree with you that we can revert this change. PR welcome.
@ramvikrams can you do this?

Surely

closed via #647


Cannot overlay an animated GIF on top of an image

Hi Sharp team,
I'm facing an issue when combining an animated GIF and an image, would appreciate any help!
Possible bug
Is this a possible bug in a feature of sharp, unrelated to installation?

[x ] Running npm install sharp completes without error.
[x ] Running node -e "require('sharp')" completes without error.

Are you using the latest version of sharp?

[x ] I am using the latest version of sharp as reported by npm view sharp dist-tags.latest.

What is the output of running npx envinfo --binaries --system --npmPackages=sharp --npmGlobalPackages=sharp?
  System:
    OS: macOS 13.5.1
    CPU: (10) arm64 Apple M1 Max
    Memory: 480.83 MB / 64.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 16.17.0 - /usr/local/bin/node
    Yarn: 1.22.18 - /opt/homebrew/bin/yarn
    npm: 8.19.1 - /opt/homebrew/bin/npm
  npmPackages:
    sharp: ^0.32.6 => 0.32.6

What are the steps to reproduce?
 await sharp("background.png")
    .composite([
      { input: "input.gif", tile: true, top: 10, left: 10, animated: true },
    ])
    .toFile("combined.gif");

What is the expected behaviour?
Frames from the animated GIFs are placed on top of the background and then saved as a final GIF.
Please provide a minimal, standalone code sample, without other dependencies, that demonstrates this problem
 await sharp("background.png")
    .composite([
      { input: "input.gif", tile: true, top: 10, left: 10, animated: true },
    ])
    .toFile("combined.gif");

Please provide sample image(s) that help explain this problem
Here is the background.png - https://ibb.co/0mdgpj6
And here is the input.gif - https://ibb.co/bd9xWhF
Thank you!

Did you see #3796 ?

@alexzender Were you able to make any progress with this?

I hope the information in https://github.com/lovell/sharp/issues/3796 helped. Please feel free to re-open with more details if further assistance is required.


[SPARK-26499][SQL][FOLLOWUP] Print the loading provider exception starting from the INFO level

What changes were proposed in this pull request?

Don't print the exception in the error message while loading a built-in provider.
Print the exception starting from the INFO level.

Up to the INFO level, the output is:
17:48:32.342 ERROR org.apache.spark.sql.execution.datasources.jdbc.connection.ConnectionProvider: Failed to load built in provider.

and starting from the INFO level:
17:48:32.342 ERROR org.apache.spark.sql.execution.datasources.jdbc.connection.ConnectionProvider: Failed to load built in provider.
17:48:32.342 INFO org.apache.spark.sql.execution.datasources.jdbc.connection.ConnectionProvider: Loading of the provider failed with the exception:
java.util.ServiceConfigurationError: org.apache.spark.sql.jdbc.JdbcConnectionProvider: Provider org.apache.spark.sql.execution.datasources.jdbc.connection.IntentionallyFaultyConnectionProvider could not be instantiated
	at java.util.ServiceLoader.fail(ServiceLoader.java:232)
	at java.util.ServiceLoader.access$100(ServiceLoader.java:185)
	at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384)
	at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
	at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
	at org.apache.spark.sql.execution.datasources.jdbc.connection.ConnectionProvider$.loadProviders(ConnectionProvider.scala:41)

Why are the changes needed?
To avoid "noise" in logs while running tests. Currently, logs are blown up:
org.apache.spark.sql.execution.datasources.jdbc.connection.ConnectionProvider: Loading of the provider failed with the exception:
java.util.ServiceConfigurationError: org.apache.spark.sql.jdbc.JdbcConnectionProvider: Provider org.apache.spark.sql.execution.datasources.jdbc.connection.IntentionallyFaultyConnectionProvider could not be instantiated
	at java.util.ServiceLoader.fail(ServiceLoader.java:232)
	at java.util.ServiceLoader.access$100(ServiceLoader.java:185)
	at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384)
	at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
	at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
	at org.apache.spark.sql.execution.datasources.jdbc.connection.ConnectionProvider$.loadProviders(ConnectionProvider.scala:41)
...
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: Intentional Exception
	at org.apache.spark.sql.execution.datasources.jdbc.connection.IntentionallyFaultyConnectionProvider.<init>(IntentionallyFaultyConnectionProvider.scala:26)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at java.lang.Class.newInstance(Class.java:442)
	at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)

Does this PR introduce any user-facing change?
No
How was this patch tested?
By running:
$ build/sbt "sql/test:testOnly org.apache.spark.sql.execution.datasources.v2.jdbc.JDBCTableCatalogSuite"

Test build #129515 has started for PR 29968 at commit 27d4fbf.

Not sure what others think but I'm totally fine with just simply printing the whole stuff w/ INFO level (don't insist to the ERROR level at all). But this is fine too. Others?

Not mentioned that the direction is good. The tests are generating too much trash.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/34120/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/34120/

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/34120/
Test PASSed.

Test build #129515 has finished for PR 29968 at commit 27d4fbf.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/129515/
Test PASSed.

Test build #129529 has started for PR 29968 at commit 042a80b.

My bad. I missed that SPARK-26499 is very old commit.
@MaxGekk . For next time, please use a different JIRA id. FOLLOWUP doesn't make much sense for old commit.

 Sorry.

This is Apache Spark git repo. force push is not a good practice here~

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/34134/

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/34134/
Test PASSed.

Actually, this is a follow up of https://github.com/apache/spark/pull/29024#issuecomment-702514012 which was merged recently. My bad, I copy-pasted wrong JIRA id :-E

My bad, too. :(

Test build #129529 has finished for PR 29968 at commit 042a80b.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/129529/
Test FAILed.


Issue with the Log Analytics Data Cap Breach Alert

Describe the bug
A clear and concise description of what the bug is.
This Bicep from https://github.com/Azure/AKS-Construction/blob/main/bicep/aksmetricalerts.bicep
resource Daily_data_cap_breached_for_workspace_logworkspacename_CIQ_1 'microsoft.insights/scheduledqueryrules@2022-06-15' = {
  name: 'Daily data cap breached for workspace ${resLogAnalyticsWorkspace.name} CIQ-1'
  location: parAutomationAccountLocation
  properties: {
    displayName: 'Daily data cap breached for workspace ${resLogAnalyticsWorkspace.name} CIQ-1'
    description: 'This alert monitors daily data cap defined on a workspace and fires when the daily data cap is breached.'
    severity: 1
    enabled: metricAlertsEnabled
    evaluationFrequency: evalFrequency
    scopes: [
      resLogAnalyticsWorkspace.id
    ]
    windowSize: windowSize
    autoMitigate: false
    criteria: {
      allOf: [
        {
          query: '_LogOperation | where Operation == "Data collection Status" | where Detail contains "OverQuota"'
          timeAggregation: 'Count'
          operator: 'GreaterThan'
          threshold: 0
          failingPeriods: {
            numberOfEvaluationPeriods: 1
            minFailingPeriodsToAlert: 1
          }
        }
      ]
    }
    muteActionsDuration: 'P1D'
  }
}

Continually returns this error
{
    "status": "Failed",
    "error": {
        "code": "BadRequest",
        "message": "Couldn't optimize the query because it doesn't contain the table Operation explicitly. Please add the table to the query explicitly and try again"
    }
}

I can't figure out a way to make it work.
To Reproduce
Steps to reproduce the behavior:
Run the templates
Expected behavior
Should work
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Trying to reproduce;
az deployment group create -g gordons  --template-uri https://github.com/Azure/AKS-Construction/releases/download/0.9.12/main.json --parameters \
	resourceName=logalertrepro \
	agentCount=1 \
	omsagent=true \
	retentionInDays=30 \
	logDataCap=1

Deployment completes successfully.
Checking rule query

@joshuadmatthews  - where is the error surfacing itself?

So full disclosure, I am using the ALZ-Bicep templates and it seems like this particular alert is not specific to AKS but more to the logging in general, so I moved this into my logging template deploy. Doesn't seem like that should have any side effect through, it's the same bicep against the same resource.  I can run the query in kusto just fine, and even setup the exact same log alert in the portal, which seemingly uses the exact same template. Can't for the life of me figure out what the problem is here.

Well, I can repro it when I just deploy this bicep snippet; https://gist.github.com/Gordonby/a6f6dff6187d9db04ad8d05bcf80dc68 just not from the AKS Construction codebase.

Glad it's not just me. Seems crazy that it would work in one scenario but not the other no?


app('db') vs \Db facade

Whereas code such as:
\Db::table('reminders')->where('user_id', '=', 1)->value('code');

works (i.e. IDE resolves successfully), its non-facade, resolved counterpart:
app('db')->table('reminders')->where('user_id', '=', 1)->value('code');

doesn't (code itself works, but IDE can't resolve). Error given is "method table() not found". All other Facade resolutions such as app('events') etc successfully work in IDE, but for some reason app('db') doesn't. Any ideas how to fix this?

Yes, use the Phpstorm meta file.

I am :) That's why everything works honkie-dorie, except app('db') :)

app('db') returns instance of Illuminate\Database\DatabaseManager which doesn't have method table (for example). All that methods are resolved via __call and via DatabaseManager connection method.
So, to see autocompletion, you can use such workaround:
app('db')->connection()->table();

which is the same to
app('db')->table();

I know all that @bebnev , I wasn't asking for help :) I was just pointing out a behaviour/"bug" which isn't quite aligned with the purpose of this package.

@barryvdh , do you see any way to make IDE think app('db') is equivalent to app('db')->connection() ?

Changing line 438 in PHPStorm meta file from
'db' instanceof \Illuminate\Database\DatabaseManager,
TO
'db' instanceof \Illuminate\Database\Connection,
fixes the issue. Since I don't know the intricacies of this tool and Laravel's Db component, I can't provide any better solutions. Using \Db facade works fine, but that is totally different topic as facades work through _ide_helper.php file, not phpstorm.meta.php.

@barryvdh , is there anything planned in this regard, or shall I just close this issue and forget about it? :) I don't really want it clutter your Issues list.

One alternative would be to generate the list based on Facades, not actual implementations, but that would be kind of ugly. Not sure if there is any syntax to add 2 classes to 1 entry.

Ok, closing this for now, let it remain as a record for those who end up here via search.


Support specifying a custom location for modules

As discussed in #1093, we might want to provide the ability to specify a different location for a nested deployment. Please use this issue to discuss!

I recognize that we may eventually need to do this, but it's one of those things I'd prefer to avoid unless it's absolutely necessary. Which scenarios require the location of a child deployment to be different than the root deployment?

Just to add comment on this as well wouldn't best practice be scoped to location of the resource group?  That's to ensure a true geo contained resource.  So if deploying a module to a different location the scope should be to a different resource group in said location with the location being set to param location string = resourceGroup().location
Global resources like DNS, Frontdoor, etc  would be the only * but again would recommend all global distributed resources be scoped to the same resource group to better facilitating scaling out of dependent resources.  i.e. Front Door in one resource group and then App Service in an East U.S. resource group and copy of same App Service in West U.S.  That way can blow away and out any of the region-specific deployments while still keeping a single resource group deployment for global resources.


Refactor Main Presenter into separate components

Chore
There are many functionalities in Main Presenter which can be encapsulated in separate modules and hence reduce the responsibilities of it by distributing them

Hey, I am new to this so @iamareebjamal  can you please guide me a bit through this? Also, can you suggest some first-timer issues which I can do? Thanks.

@yatri1609 Look at #681 #894 #801 #603 #589


Remove gradle-wrapper.jar

reactive-streams/gradle/wrapper/gradle-wrapper.jar doesn't seem to me like it she committed, right?
It's that jar that the ./gradlew script downloads when you run it and don't have gradle as I understand it?
Or is this supposed to be committed? I'd value your insight @alkemist on this one. Thanks!

It needs to be there. It bootstraps the downloading of gradle if needed, and hands off to Gradle when it's installed.

Okey, sorry about that then, I had mis-remembered how ./gradlew works. Closing as invalid.


restructure source code

Source code can be better structured for easier understanding.  Given that this is built as an application for Ryu Controller, I would put the faucet and gauge apps under bash $FAUCET_ROOT/ryu/app  directory and appropriately name them as per https://github.com/osrg/ryu/tree/master/ryu/app.
I would also create bash ryu/tests  directory and top level bash doc  directory for consistency.

#26 fixes these issues


SpawnAllScheduler

Closes #26

I guess this scheduler makes most sense in a scenario like https://github.com/JuliaFolds2/OhMyThreads.jl/issues/47. However, we don't support this yet (because we only accept AbstractArrays.


enhancement - script to install dependencies

https://github.com/tflearn/tflearn
you maybe able to cherry pick some of this.

Hi @johndpope, any specific files/lines you recommend in particular?


Improve UX for Auroraboot state_dir usage

Originally discussed here: https://github.com/kairos-io/kairos/issues/2522#issuecomment-2422512115
It seems that the way we re-use the state_dir in Auroraboot can lead to confusion. Let's make sure the user is aware of what is being used and when.

In my opinion, auroraboot shouldn't default to reusing the kernel generated initially - there doesn't seem to be any use cases for it. I think a good way to do this is to store the current auroraboot config of the state_dir file and read it when running, and if it's different then regenerate the kernel & whatever else needs to be done. It also doesn't seem like auroraboot retains any other part of the state_dir - it still takes a few minutes after restarting for the server to be up.

@6ixfalls I have noticed that using GitHub releases instead of container images makes AuroraBoot much faster and restarts reuse artifacts well, so I suspect that AuroraBoot is slower when using container images because they haveΩ less metadata about the release to make decisions on what cached data can be reused.


Provide a way to use md5(last redirected url) as task_id

if I crawl  'http://www.baidu.com/s?wd=电力',
because baidu encode all search result,  pyspider may crawl duplicated url in this situation,
I am not familiar with tornado, but I see you put all http request in tornado ioloop. So I wonder if I can use  requests in crawl method like below in safe?
    def index_page(self, response):
        for each in response.doc('a[href^="http"]').items():
            if 'www.baidu.com/link' in each.attr.href:
                r =requests.head(each.attr.href, allow_redirects=False)
                self.crawl(r.headers['location'], callback=self.detail_page)

or can you provide a update or a advice to solve this probelm?

taskid had been created when its submitted via self.crawl. its impossible
to know the URL redirect to.
There is no such mechanism for this case currently within pyspider. If you
have any idea to support this situation, feel free to shout.
On Wed, Aug 12, 2015, 3:55 AM eromoe<EMAIL_ADDRESS>wrote:

if I crawl 'http://www.baidu.com/s?wd=电力',
because baidu encode all search result, pyspider may crawl duplicated url
in this situation,
I am not familiar with tornado, but I see you put all http request in
tornado loop. So I wonder if I can use requests in crawl method like
below in safe?
def index_page(self, response):
    for each in response.doc('a[href^="http"]').items():
        if 'www.baidu.com/link' in each.attr.href:
            r =requests.head(each.attr.href, allow_redirects=False)
            self.crawl(r.headers['location'], callback=self.detail_page)

or can you provide a way or a advice to solve this situation?
—
Reply to this email directly or view it on GitHub
https://github.com/binux/pyspider/issues/259.

I think this could be done by classify the URL and method,
don't follow the redirection when it is crawling,
set every redirect as a new task  to taskdb  to be crawl by fetcher
and every redirect will not trigger the processor  ,which will not generate result until response code 200 received.

Or a Simple way:
just follow the redirection when it is crawling
if response.code == 200 and current.response.url.taskid != the taskid before redirection
commit a new taskid of current url to taskdb,and set it to has been done.

I think this could be done by classify the URL and processor method,
don't follow the redirection when it is crawling,
commit every redirect as a new task to taskdb to be crawled by fetcher
and every redirect should not trigger the processor ,which will not generate result until response code 200 received.


Integrate redux-action-type-creator?

Hey,  I use redux-actions for a long time, and it is wonderful.
I just create a package for make action types definition in easy way:
https://github.com/Darmody/redux-action-types-creator
and thinking that maybe redux-actions can integrate redux-action-types-creator, because action and action type always been created together.
How do you think?

Is there anything preventing users from using the two libraries in conjunction?
I'd prefer to keep the core of this codebase focused on Flux Standard Action utilities for Redux.

redux-action-types-creator doesn't seem to have anything to do with Flux Standard Actions.

@yangmillstheory Yeah, you are right, just asking.
Thank you anyway!


Cannot run ros2 cfe_plugin (unable to open database file)

Hi,
I followed your instructions and I'm stuck at the following step:
# ros2 launch cfe_plugin cfe_bridge.launch.py
[INFO] [launch]: All log files can be found below /root/.ros/log/2024-03-05-02-22-42-167031-a9f2dd154f8b-178
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [fsw_ros2_bridge-1]: process started with pid [179]
[fsw_ros2_bridge-1] [INFO] [1709605362.475708575] [cfe_bridge]: namespace: /groundsystem
[fsw_ros2_bridge-1] [WARN] [1709605362.476229264] [cfe_bridge]: ================================================================
[fsw_ros2_bridge-1] [WARN] [1709605362.476871856] [cfe_bridge]: Using FSW Plugin: cfe_plugin.cfe_plugin
[fsw_ros2_bridge-1] [WARN] [1709605362.477509724] [cfe_bridge]: ================================================================
[fsw_ros2_bridge-1] [INFO] [1709605362.492146442] [cfe_bridge]: Setting up cFE plugin
[fsw_ros2_bridge-1] [ERROR] [1709605362.493667710] [cfe_bridge]: unable to open database file
[fsw_ros2_bridge-1] Traceback (most recent call last):
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/install/fsw_ros2_bridge/lib/fsw_ros2_bridge/fsw_ros2_bridge", line 33, in <module>
[fsw_ros2_bridge-1]     sys.exit(load_entry_point('fsw-ros2-bridge', 'console_scripts', 'fsw_ros2_bridge')())
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/build/fsw_ros2_bridge/fsw_ros2_bridge/fsw_ros2_bridge.py", line 419, in main
[fsw_ros2_bridge-1]     bridge = FSWBridge()
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/build/fsw_ros2_bridge/fsw_ros2_bridge/fsw_ros2_bridge.py", line 72, in __init__
[fsw_ros2_bridge-1]     self._fsw = fsw_ros2_bridge.fsw_wrapper.FSWWrapper(self, self._plugin_name)
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/build/fsw_ros2_bridge/fsw_ros2_bridge/fsw_wrapper.py", line 37, in __init__
[fsw_ros2_bridge-1]     self._plugin = importlib.import_module(plugin, ".").FSWPlugin(node)
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/install/cfe_plugin/local/lib/python3.10/dist-packages/cfe_plugin/cfe_plugin.py", line 85, in __init__
[fsw_ros2_bridge-1]     self._juicer_interface = JuicerInterface(self._node, resource_path)
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/build/juicer_util/juicer_util/juicer_interface.py", line 118, in __init__
[fsw_ros2_bridge-1]     self._db_data.load_data()
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/build/juicer_util/juicer_util/juicer_database.py", line 167, in load_data
[fsw_ros2_bridge-1]     self.retrieve_all_symbols()
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/build/juicer_util/juicer_util/juicer_database.py", line 102, in retrieve_all_symbols
[fsw_ros2_bridge-1]     cur = self._conn.cursor()
[fsw_ros2_bridge-1] AttributeError: 'NoneType' object has no attribute 'cursor'
[ERROR] [fsw_ros2_bridge-1]: process has died [pid 179, exit code 1, cmd '/root/code/humble_ws/brash/install/fsw_ros2_bridge/lib/fsw_ros2_bridge/fsw_ros2_bridge --ros-args -r __node:=cfe_bridge --params-file /root/code/humble_ws/brash/install/cfe_plugin/share/cfe_plugin/config/cfe_config.yaml --params-file /root/code/humble_ws/brash/install/juicer_util/share/juicer_util/config/cfe_plugin_config.yaml'].

It's not finding a resource DB file.
I looked into that file /root/code/humble_ws/brash/install/juicer_util/share/juicer_util/config/cfe_plugin_config.yaml and that's pointing to /code/juicer/dbs/rover_all.sqlite, which does not exist on my machine. I replaced that with:
juicer_db: ["cfs_bootes-rc1-dev83_TL.sqlite"]

which is commented out, and that now gives the following error message:
# ros2 launch cfe_plugin cfe_bridge.launch.py
[INFO] [launch]: All log files can be found below /root/.ros/log/2024-03-05-02-28-39-415307-a9f2dd154f8b-255
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [fsw_ros2_bridge-1]: process started with pid [256]
[fsw_ros2_bridge-1] [INFO] [1709605719.717171105] [cfe_bridge]: namespace: /groundsystem
[fsw_ros2_bridge-1] [WARN] [1709605719.717957443] [cfe_bridge]: ================================================================
[fsw_ros2_bridge-1] [WARN] [1709605719.718812926] [cfe_bridge]: Using FSW Plugin: cfe_plugin.cfe_plugin
[fsw_ros2_bridge-1] [WARN] [1709605719.719615389] [cfe_bridge]: ================================================================
[fsw_ros2_bridge-1] [INFO] [1709605719.734542639] [cfe_bridge]: Setting up cFE plugin
[fsw_ros2_bridge-1] [WARN] [1709605719.800479014] [cfe_bridge]: Can't replace CFE_ES_CDS_AccessCacheData with CFE_ES_CDS_AccessCache
[fsw_ros2_bridge-1] [WARN] [1709605719.801292800] [cfe_bridge]: wrong size 72 vs 96
[fsw_ros2_bridge-1] [WARN] [1709605719.802574079] [cfe_bridge]: Can't replace CFE_ES_CDS_AccessCacheData with CFE_ES_CDS_AccessCache
[fsw_ros2_bridge-1] [WARN] [1709605719.803416619] [cfe_bridge]: wrong size 72 vs 96
[fsw_ros2_bridge-1] [WARN] [1709605719.858431706] [cfe_bridge]: Can't replace CFE_SB_MsgMapFileEntry_t with CFE_SB_Msg
[fsw_ros2_bridge-1] [WARN] [1709605719.859315646] [cfe_bridge]: wrong size 8 vs 16
[fsw_ros2_bridge-1] [WARN] [1709605720.011126237] [cfe_bridge]: Can't replace CF_ChunkIdx_t with CF_Chunk
[fsw_ros2_bridge-1] [WARN] [1709605720.011710440] [cfe_bridge]: wrong size 4 vs 8
[fsw_ros2_bridge-1] [WARN] [1709605720.012781424] [cfe_bridge]: Can't replace CF_ChunkIdx_t with CF_Chunk
[fsw_ros2_bridge-1] [WARN] [1709605720.013424452] [cfe_bridge]: wrong size 4 vs 8
[fsw_ros2_bridge-1] [WARN] [1709605720.014561610] [cfe_bridge]: Can't replace CF_ChunkOffset_t with CF_Chunk
[fsw_ros2_bridge-1] [WARN] [1709605720.015237091] [cfe_bridge]: wrong size 4 vs 8
[fsw_ros2_bridge-1] [WARN] [1709605720.016319571] [cfe_bridge]: Can't replace CF_ChunkOffset_t with CF_Chunk
[fsw_ros2_bridge-1] [WARN] [1709605720.016983554] [cfe_bridge]: wrong size 4 vs 8
[fsw_ros2_bridge-1] [WARN] [1709605720.018082243] [cfe_bridge]: Can't replace CF_ChunkSize_t with CF_Chunk
[fsw_ros2_bridge-1] [WARN] [1709605720.018559024] [cfe_bridge]: wrong size 4 vs 8
[fsw_ros2_bridge-1] [WARN] [1709605720.019607382] [cfe_bridge]: Can't replace CF_ChunkSize_t with CF_Chunk
[fsw_ros2_bridge-1] [WARN] [1709605720.020171933] [cfe_bridge]: wrong size 4 vs 8
[fsw_ros2_bridge-1] [WARN] [1709605720.021654527] [cfe_bridge]: Can't replace CF_ChunkList_t with CF_Chunk
[fsw_ros2_bridge-1] [WARN] [1709605720.022271872] [cfe_bridge]: wrong size 16 vs 8
[fsw_ros2_bridge-1] [WARN] [1709605720.026607963] [cfe_bridge]: Can't replace CF_Logical_TlvData with CF_Logical_Tlv
[fsw_ros2_bridge-1] [WARN] [1709605720.027123468] [cfe_bridge]: wrong size 8 vs 16
[fsw_ros2_bridge-1] [WARN] [1709605720.028183446] [cfe_bridge]: Can't replace CF_Logical_TlvData with CF_Logical_Tlv
[fsw_ros2_bridge-1] [WARN] [1709605720.028671852] [cfe_bridge]: wrong size 8 vs 16
[fsw_ros2_bridge-1] [WARN] [1709605720.031324031] [cfe_bridge]: Can't replace CF_Logical_TlvList_t with CF_Logical_Tlv
[fsw_ros2_bridge-1] [WARN] [1709605720.031879320] [cfe_bridge]: wrong size 72 vs 16
[fsw_ros2_bridge-1] [WARN] [1709605720.043172983] [cfe_bridge]: Can't replace CF_ChunkWrapper_t with CF_Chunk
[fsw_ros2_bridge-1] [WARN] [1709605720.043921969] [cfe_bridge]: wrong size 32 vs 8
[fsw_ros2_bridge-1] [WARN] [1709605720.069910381] [cfe_bridge]: Can't replace CF_PlaybackDirCmd_t with CF_Playback
[fsw_ros2_bridge-1] [WARN] [1709605720.070577828] [cfe_bridge]: wrong size 144 vs 148
[fsw_ros2_bridge-1] [WARN] [1709605720.071688405] [cfe_bridge]: Can't replace CF_PlaybackDirCmd_t with CF_Playback
[fsw_ros2_bridge-1] [WARN] [1709605720.072354332] [cfe_bridge]: wrong size 144 vs 148
[fsw_ros2_bridge-1] [WARN] [1709605720.073435013] [cfe_bridge]: Can't replace CF_TransactionCmd_t with CF_Transaction
[fsw_ros2_bridge-1] [WARN] [1709605720.074053652] [cfe_bridge]: wrong size 20 vs 136
[fsw_ros2_bridge-1] [INFO] [1709605720.084746987] [cfe_bridge]: udp_receive_port: 1235
[fsw_ros2_bridge-1] [INFO] [1709605720.085414408] [cfe_bridge]: udp_send_port: 1234
[fsw_ros2_bridge-1] [INFO] [1709605720.086111208] [cfe_bridge]: udp_telemetry_ip: <IP_ADDRESS>
[fsw_ros2_bridge-1] [INFO] [1709605720.086879003] [cfe_bridge]: udp_command_ip: <IP_ADDRESS>
[fsw_ros2_bridge-1] [INFO] [1709605720.087568533] [cfe_bridge]: parsing cFE config file...
[fsw_ros2_bridge-1] [INFO] [1709605720.160410117] [cfe_bridge]: commands:
[fsw_ros2_bridge-1] [INFO] [1709605720.161651590] [cfe_bridge]: telemetry:
[fsw_ros2_bridge-1] [INFO] [1709605720.162493140] [cfe_bridge]: starting timer thread to receive CFS telemetry
[fsw_ros2_bridge-1] [WARN] [1709605720.163343021] [cfe_bridge]: cmd with msg_size=0 (dynamic)
[fsw_ros2_bridge-1] [WARN] [1709605720.163925138] [cfe_bridge]: cmd with msg_size=0 (dynamic)
[fsw_ros2_bridge-1] Traceback (most recent call last):
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/install/fsw_ros2_bridge/lib/fsw_ros2_bridge/fsw_ros2_bridge", line 33, in <module>
[fsw_ros2_bridge-1]     sys.exit(load_entry_point('fsw-ros2-bridge', 'console_scripts', 'fsw_ros2_bridge')())
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/build/fsw_ros2_bridge/fsw_ros2_bridge/fsw_ros2_bridge.py", line 419, in main
[fsw_ros2_bridge-1]     bridge = FSWBridge()
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/build/fsw_ros2_bridge/fsw_ros2_bridge/fsw_ros2_bridge.py", line 72, in __init__
[fsw_ros2_bridge-1]     self._fsw = fsw_ros2_bridge.fsw_wrapper.FSWWrapper(self, self._plugin_name)
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/build/fsw_ros2_bridge/fsw_ros2_bridge/fsw_wrapper.py", line 37, in __init__
[fsw_ros2_bridge-1]     self._plugin = importlib.import_module(plugin, ".").FSWPlugin(node)
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/install/cfe_plugin/local/lib/python3.10/dist-packages/cfe_plugin/cfe_plugin.py", line 152, in __init__
[fsw_ros2_bridge-1]     msg_size = symbol_name_map[ci.get_msg_type()].get_size()
[fsw_ros2_bridge-1] KeyError: 'RoverAppTwistCmdt'
[ERROR] [fsw_ros2_bridge-1]: process has died [pid 256, exit code 1, cmd '/root/code/humble_ws/brash/install/fsw_ros2_bridge/lib/fsw_ros2_bridge/fsw_ros2_bridge --ros-args -r __node:=cfe_bridge --params-file /root/code/humble_ws/brash/install/cfe_plugin/share/cfe_plugin/config/cfe_config.yaml --params-file /root/code/humble_ws/brash/install/juicer_util/share/juicer_util/config/cfe_plugin_config.yaml'].

What needs to happen? Is there a valid sqlite file that can be used just to test the bridge?

I tried to use juicer to generate a valid file, and I'm encountering this:
# mkdir -p /root/code/juicer/dbs
# # ros2 launch juicer_util generate_juicer_database.launch.py
[INFO] [launch]: All log files can be found below /root/.ros/log/2024-03-05-02-49-45-743119-000eb8a29f9e-143
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [generate_juicer_database-1]: process started with pid [144]
[generate_juicer_database-1] [INFO] [1709606985.929708572] [create_message_database]: CreateMessageDatabase() application to parse binaries and output an SQL Database with message structure information
[generate_juicer_database-1] [INFO] [1709606985.930829744] [create_message_database]: cfs_path: /root/code/cFS
[generate_juicer_database-1] [INFO] [1709606985.931253597] [create_message_database]: juicer_path: /root/code/juicer
[generate_juicer_database-1] [INFO] [1709606985.931716458] [create_message_database]: output: combined.sqlite
[generate_juicer_database-1] [INFO] [1709606985.932149958] [create_message_database]: files: ['core-cpu1', 'cf/cfe_assert.so', 'cf/ci_lab.so', 'cf/ros_app.so', 'cf/sample_app.so', 'cf/sample_lib.so', 'cf/sbn_f_remap.so', 'cf/sbn.so', 'cf/sbn_udp.so', 'cf/sch_lab.so', 'cf/to_lab.so', 'cf/robot_sim.so', 'cf/cf.so', 'cf/rover_app.so']
[generate_juicer_database-1] [INFO] [1709606985.932629795] [create_message_database]: /root/code/juicer/build/juicer --input /root/code/cFS/build/exe/cpu1/core-cpu1 --mode SQLITE --output /root/code/juicer/dbs/combined.sqlite -v4
[generate_juicer_database-1] /bin/sh: 1: /root/code/juicer/build/juicer: not found
[generate_juicer_database-1] [INFO] [1709606985.934332339] [create_message_database]: /root/code/juicer/build/juicer --input /root/code/cFS/build/exe/cpu1/cf/cfe_assert.so --mode SQLITE --output /root/code/juicer/dbs/combined.sqlite -v4
[generate_juicer_database-1] /bin/sh: 1: /root/code/juicer/build/juicer: not found
[generate_juicer_database-1] [INFO] [1709606985.935778511] [create_message_database]: /root/code/juicer/build/juicer --input /root/code/cFS/build/exe/cpu1/cf/ci_lab.so --mode SQLITE --output /root/code/juicer/dbs/combined.sqlite -v4
[generate_juicer_database-1] /bin/sh: 1: /root/code/juicer/build/juicer: not found
[generate_juicer_database-1] [INFO] [1709606985.937387039] [create_message_database]: /root/code/juicer/build/juicer --input /root/code/cFS/build/exe/cpu1/cf/ros_app.so --mode SQLITE --output /root/code/juicer/dbs/combined.sqlite -v4
[generate_juicer_database-1] /bin/sh: 1: /root/code/juicer/build/juicer: not found
[generate_juicer_database-1] [INFO] [1709606985.938911162] [create_message_database]: /root/code/juicer/build/juicer --input /root/code/cFS/build/exe/cpu1/cf/sample_app.so --mode SQLITE --output /root/code/juicer/dbs/combined.sqlite -v4
[generate_juicer_database-1] /bin/sh: 1: /root/code/juicer/build/juicer: not found
[generate_juicer_database-1] [INFO] [1709606985.940472219] [create_message_database]: /root/code/juicer/build/juicer --input /root/code/cFS/build/exe/cpu1/cf/sample_lib.so --mode SQLITE --output /root/code/juicer/dbs/combined.sqlite -v4
[generate_juicer_database-1] /bin/sh: 1: /root/code/juicer/build/juicer: not found
[generate_juicer_database-1] [INFO] [1709606985.942001396] [create_message_database]: /root/code/juicer/build/juicer --input /root/code/cFS/build/exe/cpu1/cf/sbn_f_remap.so --mode SQLITE --output /root/code/juicer/dbs/combined.sqlite -v4
[generate_juicer_database-1] /bin/sh: 1: /root/code/juicer/build/juicer: not found
[generate_juicer_database-1] [INFO] [1709606985.943492982] [create_message_database]: /root/code/juicer/build/juicer --input /root/code/cFS/build/exe/cpu1/cf/sbn.so --mode SQLITE --output /root/code/juicer/dbs/combined.sqlite -v4
[generate_juicer_database-1] /bin/sh: 1: /root/code/juicer/build/juicer: not found
[generate_juicer_database-1] [INFO] [1709606985.945039602] [create_message_database]: /root/code/juicer/build/juicer --input /root/code/cFS/build/exe/cpu1/cf/sbn_udp.so --mode SQLITE --output /root/code/juicer/dbs/combined.sqlite -v4
[generate_juicer_database-1] /bin/sh: 1: /root/code/juicer/build/juicer: not found
[generate_juicer_database-1] [INFO] [1709606985.946642380] [create_message_database]: /root/code/juicer/build/juicer --input /root/code/cFS/build/exe/cpu1/cf/sch_lab.so --mode SQLITE --output /root/code/juicer/dbs/combined.sqlite -v4
[generate_juicer_database-1] /bin/sh: 1: /root/code/juicer/build/juicer: not found
[generate_juicer_database-1] [INFO] [1709606985.948190799] [create_message_database]: /root/code/juicer/build/juicer --input /root/code/cFS/build/exe/cpu1/cf/to_lab.so --mode SQLITE --output /root/code/juicer/dbs/combined.sqlite -v4
[generate_juicer_database-1] /bin/sh: 1: /root/code/juicer/build/juicer: not found
[generate_juicer_database-1] [INFO] [1709606985.949568540] [create_message_database]: /root/code/juicer/build/juicer --input /root/code/cFS/build/exe/cpu1/cf/robot_sim.so --mode SQLITE --output /root/code/juicer/dbs/combined.sqlite -v4
[generate_juicer_database-1] /bin/sh: 1: /root/code/juicer/build/juicer: not found
[generate_juicer_database-1] [INFO] [1709606985.951010353] [create_message_database]: /root/code/juicer/build/juicer --input /root/code/cFS/build/exe/cpu1/cf/cf.so --mode SQLITE --output /root/code/juicer/dbs/combined.sqlite -v4
[generate_juicer_database-1] /bin/sh: 1: /root/code/juicer/build/juicer: not found
[generate_juicer_database-1] [INFO] [1709606985.952519047] [create_message_database]: /root/code/juicer/build/juicer --input /root/code/cFS/build/exe/cpu1/cf/rover_app.so --mode SQLITE --output /root/code/juicer/dbs/combined.sqlite -v4
[generate_juicer_database-1] /bin/sh: 1: /root/code/juicer/build/juicer: not found
[generate_juicer_database-1] [INFO] [1709606985.954002305] [create_message_database]: ===============================================
[generate_juicer_database-1] [INFO] [1709606985.954415655] [create_message_database]: Input files: ['core-cpu1', 'cf/cfe_assert.so', 'cf/ci_lab.so', 'cf/ros_app.so', 'cf/sample_app.so', 'cf/sample_lib.so', 'cf/sbn_f_remap.so', 'cf/sbn.so', 'cf/sbn_udp.so', 'cf/sch_lab.so', 'cf/to_lab.so', 'cf/robot_sim.so', 'cf/cf.so', 'cf/rover_app.so']
[generate_juicer_database-1] [INFO] [1709606985.954855103] [create_message_database]: Generated output file: /root/code/juicer/dbs/combined.sqlite
[generate_juicer_database-1] [INFO] [1709606985.955309346] [create_message_database]: ===============================================
[INFO] [generate_juicer_database-1]: process has finished cleanly [pid 144]

However, there's no actual /root/code/juicer/dbs/combined.sqlite file being generated:
# ls /root/code/juicer/dbs/combined.sqlite
# ls /root/code/juicer/dbs/combined.sqlite
ls: cannot access '/root/code/juicer/dbs/combined.sqlite': No such file or directory
# ls /root/code/juicer/dbs/
#

I used juicer to generate a combined.sqlite file and adjusted the cfe_plugin_config.yaml accordingly. Now I am seeing:
# ros2 launch cfe_plugin cfe_bridge.launch.py
[INFO] [launch]: All log files can be found below /root/.ros/log/2024-03-05-02-58-18-570194-000eb8a29f9e-431
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [fsw_ros2_bridge-1]: process started with pid [432]
[fsw_ros2_bridge-1] [INFO] [1709607499.197213624] [cfe_bridge]: namespace: /groundsystem
[fsw_ros2_bridge-1] [WARN] [1709607499.198452659] [cfe_bridge]: ================================================================
[fsw_ros2_bridge-1] [WARN] [1709607499.200208767] [cfe_bridge]: Using FSW Plugin: cfe_plugin.cfe_plugin
[fsw_ros2_bridge-1] [WARN] [1709607499.202070478] [cfe_bridge]: ================================================================
[fsw_ros2_bridge-1] [INFO] [1709607499.233839630] [cfe_bridge]: Setting up cFE plugin
[fsw_ros2_bridge-1] [WARN] [1709607499.378708991] [cfe_bridge]: Can't replace CFE_ES_CDS_AccessCacheData with CFE_ES_CDS_AccessCache
[fsw_ros2_bridge-1] [WARN] [1709607499.380261452] [cfe_bridge]: wrong size 72 vs 96
[fsw_ros2_bridge-1] [WARN] [1709607499.382781711] [cfe_bridge]: Can't replace CFE_ES_CDS_AccessCacheData with CFE_ES_CDS_AccessCache
[fsw_ros2_bridge-1] [WARN] [1709607499.384467950] [cfe_bridge]: wrong size 72 vs 96
[fsw_ros2_bridge-1] [WARN] [1709607499.509499200] [cfe_bridge]: Can't replace CFE_SB_MsgMapFileEntry_t with CFE_SB_Msg
[fsw_ros2_bridge-1] [WARN] [1709607499.511347771] [cfe_bridge]: wrong size 8 vs 16
[fsw_ros2_bridge-1] [WARN] [1709607499.840415261] [cfe_bridge]: Can't replace CF_ChunkIdx_t with CF_Chunk
[fsw_ros2_bridge-1] [WARN] [1709607499.842070089] [cfe_bridge]: wrong size 4 vs 8
[fsw_ros2_bridge-1] [WARN] [1709607499.844687113] [cfe_bridge]: Can't replace CF_ChunkIdx_t with CF_Chunk
[fsw_ros2_bridge-1] [WARN] [1709607499.846242834] [cfe_bridge]: wrong size 4 vs 8
[fsw_ros2_bridge-1] [WARN] [1709607499.848810643] [cfe_bridge]: Can't replace CF_ChunkOffset_t with CF_Chunk
[fsw_ros2_bridge-1] [WARN] [1709607499.850366745] [cfe_bridge]: wrong size 4 vs 8
[fsw_ros2_bridge-1] [WARN] [1709607499.852985311] [cfe_bridge]: Can't replace CF_ChunkOffset_t with CF_Chunk
[fsw_ros2_bridge-1] [WARN] [1709607499.854566314] [cfe_bridge]: wrong size 4 vs 8
[fsw_ros2_bridge-1] [WARN] [1709607499.857135525] [cfe_bridge]: Can't replace CF_ChunkSize_t with CF_Chunk
[fsw_ros2_bridge-1] [WARN] [1709607499.858756901] [cfe_bridge]: wrong size 4 vs 8
[fsw_ros2_bridge-1] [WARN] [1709607499.861399815] [cfe_bridge]: Can't replace CF_ChunkSize_t with CF_Chunk
[fsw_ros2_bridge-1] [WARN] [1709607499.862951278] [cfe_bridge]: wrong size 4 vs 8
[fsw_ros2_bridge-1] [WARN] [1709607499.866546159] [cfe_bridge]: Can't replace CF_ChunkList_t with CF_Chunk
[fsw_ros2_bridge-1] [WARN] [1709607499.868260880] [cfe_bridge]: wrong size 16 vs 8
[fsw_ros2_bridge-1] [WARN] [1709607499.878243191] [cfe_bridge]: Can't replace CF_Logical_TlvData with CF_Logical_Tlv
[fsw_ros2_bridge-1] [WARN] [1709607499.879883745] [cfe_bridge]: wrong size 8 vs 16
[fsw_ros2_bridge-1] [WARN] [1709607499.882640208] [cfe_bridge]: Can't replace CF_Logical_TlvData with CF_Logical_Tlv
[fsw_ros2_bridge-1] [WARN] [1709607499.884304698] [cfe_bridge]: wrong size 8 vs 16
[fsw_ros2_bridge-1] [WARN] [1709607499.890734841] [cfe_bridge]: Can't replace CF_Logical_TlvList_t with CF_Logical_Tlv
[fsw_ros2_bridge-1] [WARN] [1709607499.892502219] [cfe_bridge]: wrong size 72 vs 16
[fsw_ros2_bridge-1] [WARN] [1709607499.921527581] [cfe_bridge]: Can't replace CF_ChunkWrapper_t with CF_Chunk
[fsw_ros2_bridge-1] [WARN] [1709607499.923269346] [cfe_bridge]: wrong size 32 vs 8
[fsw_ros2_bridge-1] [WARN] [1709607499.981466350] [cfe_bridge]: Can't replace CF_PlaybackDirCmd_t with CF_Playback
[fsw_ros2_bridge-1] [WARN] [1709607499.983608751] [cfe_bridge]: wrong size 144 vs 148
[fsw_ros2_bridge-1] [WARN] [1709607499.986623671] [cfe_bridge]: Can't replace CF_PlaybackDirCmd_t with CF_Playback
[fsw_ros2_bridge-1] [WARN] [1709607499.988608087] [cfe_bridge]: wrong size 144 vs 148
[fsw_ros2_bridge-1] [WARN] [1709607499.991486323] [cfe_bridge]: Can't replace CF_TransactionCmd_t with CF_Transaction
[fsw_ros2_bridge-1] [WARN] [1709607499.993349485] [cfe_bridge]: wrong size 20 vs 136
[fsw_ros2_bridge-1] [INFO] [1709607500.018752584] [cfe_bridge]: udp_receive_port: 1235
[fsw_ros2_bridge-1] [INFO] [1709607500.020738548] [cfe_bridge]: udp_send_port: 1234
[fsw_ros2_bridge-1] [INFO] [1709607500.022635161] [cfe_bridge]: udp_telemetry_ip: <IP_ADDRESS>
[fsw_ros2_bridge-1] [INFO] [1709607500.024540933] [cfe_bridge]: udp_command_ip: <IP_ADDRESS>
[fsw_ros2_bridge-1] [INFO] [1709607500.026198392] [cfe_bridge]: parsing cFE config file...
[fsw_ros2_bridge-1] [INFO] [1709607500.179278774] [cfe_bridge]: commands:
[fsw_ros2_bridge-1] [INFO] [1709607500.182554333] [cfe_bridge]: telemetry:
[fsw_ros2_bridge-1] [INFO] [1709607500.184792393] [cfe_bridge]: starting timer thread to receive CFS telemetry
[fsw_ros2_bridge-1] [WARN] [1709607500.187153614] [cfe_bridge]: cmd with msg_size=0 (dynamic)
[fsw_ros2_bridge-1] [WARN] [1709607500.188803421] [cfe_bridge]: cmd with msg_size=0 (dynamic)
[fsw_ros2_bridge-1] Traceback (most recent call last):
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/install/fsw_ros2_bridge/lib/fsw_ros2_bridge/fsw_ros2_bridge", line 33, in <module>
[fsw_ros2_bridge-1]     sys.exit(load_entry_point('fsw-ros2-bridge', 'console_scripts', 'fsw_ros2_bridge')())
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/build/fsw_ros2_bridge/fsw_ros2_bridge/fsw_ros2_bridge.py", line 419, in main
[fsw_ros2_bridge-1]     bridge = FSWBridge()
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/build/fsw_ros2_bridge/fsw_ros2_bridge/fsw_ros2_bridge.py", line 72, in __init__
[fsw_ros2_bridge-1]     self._fsw = fsw_ros2_bridge.fsw_wrapper.FSWWrapper(self, self._plugin_name)
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/build/fsw_ros2_bridge/fsw_ros2_bridge/fsw_wrapper.py", line 37, in __init__
[fsw_ros2_bridge-1]     self._plugin = importlib.import_module(plugin, ".").FSWPlugin(node)
[fsw_ros2_bridge-1]   File "/root/code/humble_ws/brash/install/cfe_plugin/local/lib/python3.10/dist-packages/cfe_plugin/cfe_plugin.py", line 152, in __init__
[fsw_ros2_bridge-1]     msg_size = symbol_name_map[ci.get_msg_type()].get_size()
[fsw_ros2_bridge-1] KeyError: 'RoverAppTwistCmdt'
[ERROR] [fsw_ros2_bridge-1]: process has died [pid 432, exit code 1, cmd '/root/code/humble_ws/brash/install/fsw_ros2_bridge/lib/fsw_ros2_bridge/fsw_ros2_bridge --ros-args -r __node:=cfe_bridge --params-file /root/code/humble_ws/brash/install/cfe_plugin/share/cfe_plugin/config/cfe_config.yaml --params-file /root/code/humble_ws/brash/install/juicer_util/share/juicer_util/config/cfe_plugin_config.yaml'].

Hi @ivanperez-keera , so heads-up, fixed the issue and just tested the  tutorials (both using a local setup or the docker setup), so things should work as expected. Thanks for the heads-up.

I just tried it again. I also tried in docker, but I'm not able to see any data going through. I just sent you an email to discuss separately.

Mm, not sure what might be going on. We have it running with 4 different users :thinking: .
For reference, since I mentioned it earlier in this Issue, I added a rover demo that runs in docker as well: https://traclabs-brash.bitbucket.io/brash_docker_rover_demo.html

Ok I'll try that with docker and we can discuss.


Buffer comparison support

or allows it to be passes, in the case of offline extraction. Paves the way for Flux!

This is a great addition which will allow us to add more incredible features. As we can't really test it atm, let's wait with the merge until we have a feature that uses this functionality. Otherwise :+1:

@nevosegal This branch now includes flux. I'd appreciate tests, any chance you could generate the spectral flux data for one of our buffers so that we can test this? I need to squash the commits and rebase onto master once my other PR is merged anyway, so don't merge this PR yet.


Add Node 20

It's now the latest LTS.

Unfortunately we don't have anyone right now able to create the v20 patches

Would be addressed by #11

Fixed in #11

I tried a fix in #12 see https://github.com/yao-pkg/pkg-fetch/actions/runs/7087432653/job/19287673723

nice, it seems you should update some actions which will otherwise fail in near future

nice, it seems you should update some actions which will otherwise fail in near future
Warning: The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

it's the docker build and push action.

@viceice I can open a separate ticket and take a look at this in the next few days if you want.

nice, it seems you should update some actions which will otherwise fail in near future
Warning: The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

it's the docker build and push action.

@viceice I can open a separate ticket and take a look at this in the next few days if you want.

I would suggest to use renovate for automated updates (I'm a maintainer 😉)

nice, it seems you should update some actions which will otherwise fail in near future
Warning: The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

it's the docker build and push action.

@viceice I can open a separate ticket and take a look at this in the next few days if you want.

I would suggest to use renovate for automated updates (I'm a maintainer 😉)

@viceice Sure, I can look at it! I'll open an issue to track.

Seems some matrix was missing :( need to trigger another build
https://github.com/yao-pkg/pkg-fetch/commit/28d96e99af719107d3ee4211d987a6f0e8dd9800

will remove nodejs19 on next release, just because we need to be sure v20 works propely before dropping it. Every feedback is welcome!

Will try v20 at https://github.com/containerbase/base now

@robertsLando Can you publish a new release of @yao-pkg/pkg-fetch and @yao-pkg/pkg to include the v20?
Error [ReportedError]: No available node version satisfies 'v20'

🙃

@viceice Actually I'm waiting for this to end: https://github.com/yao-pkg/pkg-fetch/actions/runs/7097555049
linux-arm64 and macos arm64 binaries were missing.
Anyway I suggest you to clone both packages locally and use npm link

pkg 5.11.0 is out now

will try tomorrow

Seems some matrix was missing :( need to trigger another build
28d96e9
Closing this

How on earth did I miss that... :<
Oh well, glad you caught it.

No worries @glektarssza you already did a lot with that patch 🙏🏻

Seems to work for amd64 and arm64 🎉

https://github.com/containerbase/base/pull/1834

Just created a workflow that automatically bumps patches (at least when them apply cleanly) 🚀


Bug: You can't mute with the mute button, only by lowering volume

Disclaimer:
Please go through existing issues to avoid creating duplicates. If you found a similar issue please post a comment there. If you are uncertain your issue is related to others then create the issue. Obvious ignorance of this rule might get you blocked from posting new issues. Please tick the box below to show that you have followed the guideline.

[x] I have checked for a similar issue and sure it hasn't been reported before.

Describe the bug
If you try to mute the audio by the mute button, the audio is still there. You need to lower the volume to get it to mute.
Steps to Reproduce

Play something.
Hit mute (the sound's still there).
Lower the volume until you get it to 0.

Expected behaviour
The mute button should lower the volume to 0.
Setup information:

macOS 10.15.4
eqMac 0.1.1

For me the volume mute works as intended.
The steps to reproduce doesn't really make sense...
What do you mean "Lower the volume until you get it to 0." - when you mute the sounds and then press Volume Up/Down that unmutes, which is the native behaviour of macOS.
The PR you've added is clearly broken as there is no Application.toggleMute() function anymore. You haven't even spent the time to open Xcode to test.

I have the same behaviour as described in the issue.
What do you mean "Lower the volume until you get it to 0." - when you mute the sounds and then press Volume Up/Down that unmutes, which is the native behaviour of macOS.

@nodeful The problem is that mute button DO NOT MUTE sound itself. It keeps playing


Installed-BootstrapVue

I installed BootstrapVue plugin and registered it in our main.js file

The former one wasn't done properly...I think I may have gotten it correctly this time.

Replaced by #17


getVisibleRange function return incorrect value after scrollTo(index) if set Zoom In/Out

I met a problem that in my code, we have a function like that:

As excepted, if firstIdx = 1200, after scrollTo(firstIdx + 1) called, firstIdx2 should be 1201, but now it is still 1200.
It worked well if we set Zoom as 100% but failed if Zoom is 110% or other zoom value.
The reason could be that:
In function getVisibleRange(), we will use this.getStartAndEnd(0) to get the start and end value. But if we zoom to browser, this value could be a decimal(come from getScroll()), so in the loop code part, we could not get the correct value of 'first':

So, could you please help check the behavior and enhance the logic in zoom case? Thanks a lot

The version is "react-list": "^0.8.8"


Change all references to code.google.com/p/gogoprotobuf to github.com…

…/gogo/protobuf
Due to code.google.com's shutdown, gogoprotobuf moved.  Change all references to point
to the new location and regenerate the protocol buffer handler with the latest version.

Thanks a lot.


PRE and POST commands in docker labels

It would be useful to add declaration of PRE and POST commands in docker labels similarly to what Traefik does.
This would allow easier execution of commands like docker exec nextcloud-postgres pg_dumpall -U nextcloud -f /data/nextcloud.sql without editing Resticker configuration.

In this case resticker would need access to docker.sock (mount), to be able to inspect the containers for certain labels and run the hooks inside other containers. I would think this to be outside of the scope of resticker, but let's hear from @djmaze.

This is true but now if you want to run these commands on a host you mount docker.sock.
From the Readme Execute commands prior to backup

It's possible to optionally execute commands (like database dumps, or stopping a running container to avoid inconsistent backup data) before the actual backup starts. If you want to execute commands on the host, mount the Docker socket to the container."

I was never and I still not am a fan of mounting the docker socket into containers. It should be a rare exception do this IMHO. Also, I think this feature would raise the complexibility of this tool quite a bit.
I was just thinking of having a mechanism which works outside the restic container. As I am also a fan of microservices, I imagine a separate and generic service / container:

The new service has the docker socket mounted and acts has a webhook listener.
If you POST to /after-backup, it searches for containers with the after-backup.command label and then executes the command in that container.
The service could also offer running a docker swarm job instead in order to work in swarm (multi-host) configurations.

So in Resticker's POST_COMMAND, you would just have something like curl -X POST http://webhook-service/restic.

I was also thinking about the complexity of restiker inspecting all running containers, scanning for labels and it feels a bit out of scope. But a webhook sidecar that can talk to other containers is actually brilliant! 👏🏼

I do not know how you are using the PRE and POST hooks, but my usage look like:
     TZ: Europe/Berlin
      PRE_COMMANDS: |-
        docker stop app db
      POST_COMMANDS_EXIT: |-
        docker start db app
    networks:
      intern:
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

which makes it a universal backup tool for any container.
And yes, I am using my own, slightly enhanced version of resticer

I am using only POST commands, and only for signaling success or failure to a healthchecks instance so I know the backups are working.
Stopping a database in order to backup its filesystem data is the wrong way in my opinion. It should not be necessary to stop an app in order to back it up.
If you are using something like MariaDB or Postgres, you should instead have a separate container which takes a normal sql dump of the database and puts it in a volume which resticker can backup. Then you just need to make sure the sql dump container is run via a cron schedule before resticker does the backup.
Personally, as I am using Docker Swarm instead of only Compose, I am using swarm-cronjob in order to schedule those jobs. I also recently built a container which does an (encrypted) dump of a postgres database as an example.
Well, of course you could also use the PRE_COMMANDS in order to run such a container which does the sql dump.

I need to guarante that the backups taken are from a 100% consistent state. How do you do this is an application which has multiple storage backends, which need to be in sync?
In this case it is files (blocks thereof) in a file system and the meta data in the database.

Okay, if you have that strict consistency guarantees, then your approach might actually be the sanest one.
Another approach might be to spawn two cron jobs at the same time, one doing the db dump and one doing a filesystem snapshot. Or just do this in one script which is run as a cron job before the backup.
Of course, I do not know your specifics, so this might not be possible at all in your case.


Consider using capped collections

As an alternative to using TTL indexes we could allow for capped collections (so instead of cleanup by age we do cleanup when a cap is reached)
Automatic Removal of Oldest Documents
To make room for new documents, capped collections automatically remove the oldest documents in the collection without requiring scripts or explicit remove operations.
See: https://docs.mongodb.com/manual/core/capped-collections/

:tada: This issue has been resolved in version 1.0.7 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Integrate IN Carta data ouput as input for CytoTable

IN Carta provides single-cell data output as (at least) CSV's. These files have a different format than that of CellProfiler output. This issue highlights a need to integrate the data output from IN Carta as an input to CytoTable.
Possible steps involved:

[x] Gather sample or synthetic IN Carta data
[ ] Add test for IN Carta data
[ ] Update documentation surrounding integration
[ ] Validate compartment and metadata preset input settings for IN Carta preset (and elsewhere) (relates to #145 comment)
[ ] Create new release with this feature enabled

Rough note: It may be that one file per plate is a useful model for working with IN Carta data. If this is the case, some modifications might be required to make this easier within CytoTable. At a simple level, the chunk_size could be set to larger than the largest rowcount of the files being used as source data for CytoTable (with concat=False).


Use docapi for ssh routes

docapi is a simple tool that I created to generate API documentation for Vertex: https://github.com/quentinguidee/docapi.
Current tools are not ideal since they require to specify the route path in the handler instead of the router itself. This tool solves this by declaring handlers separately.
The tool generates OpenAPI specifications that we'll be able to reuse for clients and to generate API documentation on the Vertex website.
Todo

[x] Generate OpenAPI specs automatically somewhere

Merging this now to already generate documentations for testing purposes


⚠ Bofrost.de has degraded performance

In 42ec902, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1811 ms

Resolved: Bofrost.de performance has improved in 202f7cd after 8 minutes.


Add license file for this repo.

Hi
Thank you so much for your excellent contribution. We found this repository through crates.io. On crates.io, the license for the crate is declared as MIT OR Apache-2.0.
I'd like to develop based on your contribution, but there is no license file added in this source code repository, which gives me some concerns. Could you please add a license file to this code repository when it is convenient for you?

done

Thanks.


Wss connection Error

When I connect to wss I get this error
Unhandled Exception: HandshakeException: Handshake error in client (OS Error:
E/flutter (18373):      CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate(handshake.cc:352))

related to https://github.com/flutter/flutter/issues/21218 ?


Update stats.py

Optimize a statistical code

I’m not sure this code is faster… and it is less readable to me.

I’m not sure this code is faster… and it is less readable to me. (This comment was in regard to your second commit, the first one looks nice)

first time commit is OK(I think so, haha).
second time is actually make code unreadable, I will be rollback later.
third time commit, I tested performance, the performance is not much difference, I will be rollback too, the simple(and temporary) test code:
# coding: utf-8

import time
import random
from collections import OrderedDict

test_seq = []
test_od_size = 1000
test_times = 10000
test_od = OrderedDict()
for i in range(test_od_size):
    test_od[i] = random.randint(1, 100)
    test_seq.append(i)

random.shuffle(test_seq)

sum_val = 0
beg_pc = time.perf_counter()
for i in range(test_times):
    for idx in test_seq:
        if idx in test_od:
            sum_val += test_od[idx]
print(f'cost time:{time.perf_counter() - beg_pc}')  # 1.5xx

test_time_idx = 0
beg_pc = time.perf_counter()
for i in range(test_times):
    for idx in test_seq:
        sum_val += test_od.get(idx, 0)
print(f'cost time:{time.perf_counter() - beg_pc}')  # 1.5xx


Progress bar

super, I will check it soon

@plantec have you check?

What is the status of this PR?

I don't know :-(

For circle, it looks okay:

but for the bar, I think something is missing:

@LouisePla @labordep


Why is 8.4-setup-grub skipped?

According to the following file it says NOTE: skipped. Check 8.4 chapter of LFS book for details.
https://github.com/reinterpretcat/lfs/blob/master/scripts/build/8.4-setup-grub.sh
Although the book says it's not required, it doesn't give much detail about why it should be skipped. Is there a reason it was skipped? It looks like there was intention to do it and all the code is there.

Coming from an amateur here but I believe it’s because this is targeting an iso build an it is assumed it will be the only image on the disk. Grub is the boot loader, ie., the software that runs after the bios on the machine but before the operating system. Since this is an iso it’s used to make a live disk and you boot from the boot menu be in bios from an entirely different drive, thereby not necessitating a boot loader. This is my guess, but someone please correct me if I got that wrong.


Adds staticcheck and fixes lint errors

Continuing with #10392, this PR includes staticcheck in the static analysis script and fixes all associated lint errors.
Additionally, govet and ineffassign are added to the static analysis script (there were no lint errors for these).

Some commits reference someone called "DailContext" :)

Whoops! Fixed now :smile:


Example file for navigating like Gibson version 1?

Hi Fei Xia,
I would like to find a file in Gibson version 2, such as play_husky_camera.py like Gibson version 1. Do you have any file like that to navigate the agent?

I wonder it too. Thanks.

This is an old message but in case someone looks for it in the future, you can look in the branch https://github.com/StanfordVL/iGibson/tree/cleanup-robot-demos and run the example robot_control_example.py. Selecting the husky robot with teleoperation and differential drive control leads to the same behavior as in the play_husky_camera.py of the Gibson paper. It should be easy to extract those options into its own application bypassing the selection procedure

this example will be moved into master in the next days


DO NOT MERGE TESTS: Hvolschenk feature/typography

tests for https://github.com/material-components/material-components-web-react/pull/378

Codecov Report

Merging #407 into master will increase coverage by 0.03%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #407      +/-   ##
==========================================
+ Coverage   96.92%   96.96%   +0.03%
==========================================
  Files          51       53       +2
  Lines        1823     1845      +22
  Branches      211      211
==========================================
+ Hits         1767     1789      +22
  Misses         56       56

Impacted Files
Coverage Δ

packages/typography/typography.js
100% <100%> (ø)

packages/typography/index.js
100% <100%> (ø)

Continue to review full report at Codecov.

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


Deployed contracts chart

Please describe the problem that your request should resolve.

Describe the solution you'd like

Is it already possible to achieve the same outcome in any other way? If so, how?

Additional context

[ ] add some small refactoring, styles template or interact,...

https://github.com/aeternity/ae_mdw/issues/1892

Looks resolved https://github.com/aeternity/ae_mdw/pull/1936


on("end", fn ()) does not appear to be working correctly

Someone raised an issue in gulp-jasmine (sindresorhus/gulp-jasmine#69) about the end event, and it seems to be caused by gulp:
gulp.task("default", function (callback) {
    gulp.src("test.spec.js")
        .on("end", function () {
            console.log("We're done!");
            callback();
        });
});

works with<EMAIL_ADDRESS>but stopped working with<EMAIL_ADDRESS>Returning the pipe:
gulp.task("default", function () {
    return gulp.src("test.spec.js")
        .on("end", function () {
            console.log("We're done!");
        });
});

works as expected. Not sure if I'm missing something (I rarely use callbacks).

This is how streams work.  How does it end if you aren't piping it somewhere?  The reason it works when you return it is because the underlying library (orchestrator) attaches an on('data') handler which causes the stream to flow.

Thanks for the quick answer.
Maybe I simplified my example too much (but there was still a difference in behaviour between 3.7 and 3.8). How about this example:
var gulp = require("gulp");
var through = require("through2");

var foo = through.obj(function (file, enc, cb) {
    console.log(file);
    cb(null, file);
});

gulp.task("default", function (cb) {
    gulp.src("test.spec.js")
        .pipe(foo)
        .on("end", function () {
            console.log("We're done!");
            cb();
        });
});

Technically a stream that ends with a transform stream (through2) won't end either.  You have to end on a Writable stream.  I'm also wondering why you aren't using 3.9.1

I am using 3.9.1, I'm trying to understand why code that worked in 3.7 doesn't work anymore, and 3.8 is the version where it stopped working.
My understanding from what you're saying is that the end event is only emitted by the drain (i.e. gulp.dest), so I'll have to force and emit.end() in the flush callback to simulate that, since gulp-jasmine is never really writing anything.

You can return your stream or attach a noop on('data') handler.

I pretty much always return my streams, but I need a generic solution for gulp-jasmine. Emitting the 'end' event in the flush function did the trick. Thanks for taking the time to help me.

@jbblanchet that's a really bad way to solve the problem.  I think you want to change your transform stream into a writable, otherwise you have to do a ton of hackery like we had to do in vinyl-fs


ops should install needed modules when picked from opselect (and are also core-ops)

current Ops.Standalone.Osc ops do not load npms, when simply picket from opselect, currently needs patch reload

do not error, show button to reload patch if node_modules missing


fix: Remove macos info.plist for editor

This was making editor crashing saying framework is damaged.
We will need to test exports to be sure we don't have same behaviour

I re-added file and no more problems


fix: esbuild glob import resolve error

Description
fixes https://github.com/vitejs/vite/issues/15129
Additional context
Esbuild cannot trigger the onResolve hook in plugins when parsing glob imports, and the current fix is borrowed from https://github.com/vitejs/vite/pull/14533/files#diff-00039b783552b3f2a608918986716e01b1a71996da1a8ad5493a102a1e969d7bR499-R504. But I don't know if any special scenarios are missed.

What is the purpose of this pull request?

[X] Bug fix
[ ] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[X] Read the Contributing Guidelines, especially the Pull Request Guidelines.
[X] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[X] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[X] Update the corresponding documentation if needed.
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

/ecosystem-ci run


[SPARK-10256][ML] Removes guava dependency from spark.ml.classification JavaTests

Merged build triggered.

Merged build started.

Test build #41587 has started for   PR 8447 at commit 53d7abf.

Test build #41587 has finished for   PR 8447 at commit 53d7abf.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/41587/
Test PASSed.


Show PURL in Report View

Currently, we do not show the PURL in the report view.
As the PURL is an important part of the data describing a package, it should be added in the report view table (after the package name and package version columns).

Not useful for the average user and can be found in audit view.


[R8] Keep JsonClass annotations for NestedSealed.Factory

Initial issue: #324. As it turns out, R8 removes the JsonClass annotations that NestedSealed.Factory needs at runtime to identify sealed classes. The solution was to add a ProGuard rule to keep the JsonClass annotations.
Close #324

@ZacSweers
I'm not very well familiar with ProGuard rules, but I tried various options and only this option turned out to be working.

That's not surprising since it's effectively disabling minification on those classes

Closing as this is not a viable solution


php7 support

php7 support

I have merged this pull request in https://github.com/treeleaf/php-nano


non-blocking communication

Hello team,
Is there a place where I can see the entire function defined/used, compare to OpenMPI, et.al., for example, I do not see nonblocking isend and irecv in examples, or I missed it?
Thanks,
Jianshu

Did you check out this example?
https://github.com/rsmpi/rsmpi/blob/main/examples/immediate.rs
This ends up using MPI_ANY_TAG, which can harm performance and interfere with different phases so applications usually manage tags themselves. Would it help to have an example of neighbor exchange, say for a ring of processors?

Oh Thanks,
I thought immediate should be something related to isend/irecv but not sure. There are also a log of like MPI_test, MPI_waitany/some/all et.al. Just want to be sure each implementation is available.
Thanks,
Jianshu


WIP: major clean ups for the codebase

I see the majority of the changes are adding Union[<type>, None] type hints for parameters. The recommended way to type hint this is to use typing.Optional, which is basically an alias for Union[<type>, None]. Also, a lot of the changes are duplicated in #69, perhaps it would be best to review that PR and see what could be merged there?

I am not sure about the ideal way of using typing hints in Python. I think Union and Optional are equivalent. In the future, we will use type | None instead of both. Also, in my opinion, Union is more like the new typing hint.

Optional is the way to go. They are virtually equivalent (see https://peps.python.org/pep-0645/), but optional is a more readable way to express the same thing.

It is probably better to fix the failing tests BEFORE merging more pull requests.

Hey @cclauss thanks for your advice.


Create troubleshooting doc

Create a troubleshooting doc to start to log some common issues. Things like:

Looking at Cuebot logs after getting a generic GRPC error.
Connection issues between Cuebot and DB
Connection issues between RQD and Cuebot
Why aren't my frames picking up?

Render troubleshooting is published now too: https://github.com/imageworks/OpenCue/wiki/Render-troubleshooting
It's pretty basic but will get us started and we can build on it as more common issues are identified.


docs: 增加自定义图例筛选交互案例

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 91.069%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
11836

Relevant Lines:
12493

💛  - Coveralls


DC-50 added feature block

DC-50 (Jira Issue)
Description
Added feature block section with text and image.
updated action button link part to have default styles and also custom styles.
List of proposed changes:

What to test for/How to test
Addtional Notes

Dev branch:

With the new ActionButton:

Looking gooood! Quick feedback: Our branch looks like this:
And the Figma looks like this:
The button seems to be a little bit off.

 this is why I updated the button so I could style it as I wanted but I added a wrapper and maybe I can style it there instead.


matterircd changes topic on connect

Hi,
I run an IRC proxy / bouncer. On connecting with another IRC client, it seems topics for most, if not all, channels I'm in are updated.  I think this might be related to commit c1f0356b3fb5e5eaa61de3ea0ea6298298f742dc

At least it's shown in the IRC client, but not actually being done via the mattermost web UI.

should be fixed in master, be sure to read changelog

Still happens to me, running matterircd on commit 9bfde7cd92757


withLoader error

Hi,
I am reading this book with Chapter 6. I got type error: (below)
Type error: Type '{}' is not assignable to type 'P'.  TS2322
15 |

16 |   ) : (

17 |     <Component {...props} />
|      ^
18 |   );
19 | export default withLoader;

No sure what is going on.
Thanks for help!

Thanks for the question. Hope you are enjoying the book.
Line 17 should be:
<**React.**Component {...props} />

Thanks for the question - hope you are enjoying the book!
Yes, there is a problem with the withLoader component. We weren't passing all the props to the inner component. Here's what withLoader should look like:
const withLoader =
(   Component: React.ComponentType
 ): React.SFC
 => (props: P & IProps) =>   props.loading ? (

   ) : (     <Component {...props} />   );

Thanks for reply the issue fix.
Yes, I really enjoy the book. Thanks producing the book!


Build failure on Windows 10 using vc12

Hi
After failing to build on OSX, I gave win10 a chance, however this results in:
Done Building Project "D:\d\fips-build\oryol\win64-vstudio-debug\fips-zlib_zlib\zlib.vcxproj" (default targets).

Done Building Project "D:\d\fips-build\oryol\win64-vstudio-debug\ALL_BUILD.vcxproj" (default targets) -- FAILED.

Build FAILED.

"D:\d\fips-build\oryol\win64-vstudio-debug\ALL_BUILD.vcxproj" (default target) (1) ->
"D:\d\fips-build\oryol\win64-vstudio-debug\code\Samples\ArrayTexture\ArrayTexture.vcxproj" (default target) (3) ->
"D:\d\fips-build\oryol\win64-vstudio-debug\code\Modules\Dbg\Dbg.vcxproj" (default target) (7) ->
"D:\d\fips-build\oryol\win64-vstudio-debug\code\Modules\Gfx\Gfx.vcxproj" (default target) (8) ->
(ClCompile target) ->
  d:\d\oryol\code\modules\gfx\private\gl\glCaps.h(112): fatal error C1001: An internal error has occurred in the compiler. [D:\d\fips-build\oryol\win64-vstudio-debug\code\Modules\Gfx\G
fx.vcxproj]
  d:\d\oryol\code\modules\gfx\private\gl\glCaps.h(112): fatal error C1001: An internal error has occurred in the compiler. [D:\d\fips-build\oryol\win64-vstudio-debug\code\Modules\Gfx\G
fx.vcxproj]
  d:\d\oryol\code\modules\gfx\private\gl\glCaps.h(112): fatal error C1001: An internal error has occurred in the compiler. [D:\d\fips-build\oryol\win64-vstudio-debug\code\Modules\Gfx\G
fx.vcxproj]
  D:\d\oryol\code\Modules\Gfx/private/gl/glCaps.h(112): fatal error C1001: An internal error has occurred in the compiler. [D:\d\fips-build\oryol\win64-vstudio-debug\code\Modules\Gfx\G
fx.vcxproj]
  d:\d\oryol\code\modules\gfx\private\gl\glCaps.h(112): fatal error C1001: An internal error has occurred in the compiler. [D:\d\fips-build\oryol\win64-vstudio-debug\code\Modules\Gfx\G
fx.vcxproj]

    0 Warning(s)
    5 Error(s)

Time Elapsed 00:00:16.33
[ERROR] Failed to build config 'win64-vstudio-debug' of project 'oryol'

Are you living near a nuclear power plant or something? ;)
I think vc12 is Visual Studio 2013? This only has very limited C++11 support, which may explain the problems (see here: https://msdn.microsoft.com/en-us/library/hh567368.aspx). VS 2015 should work.


Add examples for bevy_picking

bevy_mod_picking has been successfully upstreamed (#12365), but its examples were quite messy. We should add our own to teach users how to use the API.
I'd like one example per picking backend (UI, Sprite, Mesh) in the ui/2d/3d folders respectively.

A drag-and-drop example would be lovely for UI (see #5869 for an earlier attempt), but that will be relatively complex to get right :)

Actually, this seems to mostly be done already. Closing.


Events

Simple events when showing and hiding.
Usage:
dialog.addEventListener('dialog:show', function(e) {
  // e.target.id
});

Closes GH-41.

Hey. Thank you for your PR, it looks pretty good. I’ll good through it when I find time during the week. :)

Merged and released: https://github.com/edenspiekermann/a11y-dialog/releases. Thank you so much! :)


TestBPF/tc_nodeport_lb4_nat_lb.o: bpf_test.go:174: verifier error: load program: invalid argument: Validating mock_fib_lookup() func#1 arg#0 reference type('UNKNOWN ') size cannot be determined: -22

Is there an existing issue for this?

[x] I have searched the existing issues

Version
equal or higher than v1.16.0 and lower than v1.17.0
What happened?
bpf test failure with Clang 18
=== RUN   TestBPF/tc_nodeport_lb4_nat_lb.o
    bpf_test.go:174: verifier error: load program: invalid argument:
        	Validating mock_fib_lookup() func#1...
        	arg#0 reference type('UNKNOWN ') size cannot be determined: -22
        	processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0

How can we reproduce the issue?
Run bpf tests with Clang 18 installed on the system using make -C bpf/tests all.
Cilium Version
1.16.2
Kernel Version
6.1.100+
Kubernetes Version
N/A
Regression
No response
Sysdump
No response
Relevant log output
No response
Anything else?
No response
Cilium Users Document

[x] Are you a user of Cilium? Please add yourself to the Users doc

Code of Conduct

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

Hi! The expectation when running the tests is that you use the same compiler as Cilium, with make run_bpf_tests. If you try that, do you still see the same problem?

can you try again from main? This might be fixed recently with llvm 18 upgrade https://github.com/cilium/cilium/pull/36197

This should be fixed as part of #36197.


Ryan Simple GHE for review

Built on appendix A in Mitchell_Dissertation

@Myoldmopar what's the file structure needed for using integrating JSON capabilities here? I'm guessing we'll want a standalone folder (in addition to the fmu and energyplus folders) that has an include directory. Then we can dump the nlohmann/json.hpp file there. For all other applications, we'll need a different way to pass that config data in.

OK @RyanDavies19, I integrated all the latest changes and put them into this branch.  The next step would be to make sure I didn't stomp on anything when doing my refactors, by checking the outputs again.  Here's a few additional steps:

Remove the output csv files from the Git history, we don't need to keep them in there, and we should explicitly ignore them in the .gitignore file.  We should be able to reproduce that data locally on any of our machines at any times
Need to pull in the main branch to this one, because there are lots of conflicts.  I could help with that, but if you have a chance first, please go ahead and try.  If I'm not available, perhaps @mitchute could offer some tips on that too.
Finally, before this merges in, we actually need to remove the GHE stuff from this branch I think.  The GHE stuff should live on as either a branch or a fork of this repo (now that I think of it maybe multiple branches, one for each application, is a reasonable idea.  Not sure.)  Anyway, the main branch should probably just be an extremely clean simple model that people can easily understand and build on.

I could be somewhat unavailable this week, but feel free to try to message me if you need anything, I just may not respond super quickly at times.


Use GCD to reduce memory usage for WRR

What is the problem your feature solves, or the need it fulfills?
The current WRR algorithm will have additional memory overhead when the weights are not mutually prime, and because the current implementation is not smooth, extreme situations will occur, causing the backend to be overloaded or starved.
For example, it is common for everyone to set the weight to 100 or 1000 to facilitate weight adjustment. Then there will be a situation where the first 100 are all A, and the next 100 are all B (smooth WRR or shuffling is another topic).
Describe the solution you'd like
Use GCD to reduce memory overhead and reduce load balancing cycles
Describe alternatives you've considered
What other solutions, features, or workarounds have you considered that might also solve the issue?
What are the tradeoffs for these alternatives compared to what you're proposing?
Additional context
Already implemented in the following RPC or gateway
https://github.com/cloudwego/kitex/issues/1014
https://github.com/alibaba/tengine/issues/1667

Sorry, I seem to have misunderstood the usage of Weighted here. It seems to be only used to weight the starting position of a sequence, and then fallback to an unweighted Round Robin. Why is it designed like this?
In addition, if you only for weighted selecting the starting position, the weighted expansion method is too cumbersome (O(sigma(w)) memory). CDF (cumulative density function, O(logn) time and O(n) memory cost) or alias method (O(1) time and O(n) memory cost) may be more suitable.


Whitelisting mode for BigQuery scanner

Currently BigQuery scanner rules allow us only to blacklist entities that aren't allowed to access specific datasets.
Having whitelisting mode (like in IAM policies scanner rules) would be very helpful.

This has been asked by other customers, as whitelists are easier to maintain.