BEP: Optically Pumped Magnetometer-based Magnetoencephalography (OPM-MEG)

Hello, @bids-maintenance and everyone in the BIDS community,
We are currently working on the proposal for incorporating optically pumped magnetometer-based magnetoencephalography (OPM-MEG) into BIDS specification. Here is an initial draft of the BIDS extension proposal.
OPM-MEG is an emerging non-invasive brain imaging method that has garnered significant attention in the field of cognitive science. It offers several advantages, such as improved signal quality and reduced installation and maintenance costs. Additionally, it boasts greater portability and versatility when compared to SQUID MEG systems, thereby expanding its potential roles for measuring biomagnetic signals (e.g., hyperscanning). Despite these advantages, OPM-MEG is still in its infancy. So far, there is a lack of a common specification for organizing OPM-MEG data, making it challenging to share and collaborate with other researchers.
It is noteworthy that although OPM-MEG is one implementation of MEG, it cannot be seamlessly integrated into the current framework of BEP008 (MEG-BIDS), given its extensive flexibility and highly customizable acquisition configuration. Here, to meet the potential need in managing OPM-MEG data and in line with the spirit of Open Science, we propose BEP for OPM (maybe we can call it OPM-MEG-BIDS?). This specification takes into consideration the unique aspects of OPM-MEG and aims at establishing a standardized approach for formatting, organizing, and exchanging OPM-MEG data that the research community can widely adopt.
This proposal is inspired by BEP008 (MEG-BIDS), BEP006 (EEG-BIDS), and BEP010 (iEEG-BIDS). We express our sincere gratitude to the contributors who have been involved in drafting and maintaining these three proposals.
To comment or modify the draft, please access the following link: https://docs.google.com/document/d/1a1T6jOZ6EyRUbBkCJ489rQrkUNSGui9DGcPQU7Fo9sI/edit?usp=sharing
PS: we have read some constructive discussions as listed below, before drafting this BEP:
2022 - https://mne.discourse.group/t/opm-bids-question/5022
2018 - https://groups.google.com/g/bids-discussion/c/-d4E0cbQt6Q/m/l9lYRPngAwAJ
We enthusiastically invite feedback and contributions from the BIDS community for this preliminary draft!
Thanks!
Wei Xu, Pan Liao
Peking University

Thanks for your draft and thoughts about integrating OPM-MEG into BIDS. We are also working with OPM-MEG data, and in fact I'm sitting here at Brainhack Nordic with some others including @CPernet and @jacobvaever brainstorming what is missing from the existing MEG specification. As of right now, our consensus is that there's only a few minor details to revise with the existing MEG-BIDS spec so it would be better to integrate OPM-MEG within that spec. This view also seems to be supported in the 2022 MNE and 2018 BIDS discussion forums that you've referenced above.

from my limited knowledge of that topic, it looks like an entity to specify if it is a fix helmet or scalp-MEG is needed, allowing to turn off many required things from fix helmet not available in OPM

@sarangnemo @jacobvaever could you push a 0kb dataset in the BIDS example


Avoid log conflicts when multiple DYNAMITE jobs share one directory

Hello @sthater,
following up on your recent issues with reattempt_failures: as a short-term solution to the problem of distorted log files caused by multiple simultaneous DYNAMITE runs started in the same directory, this PR assigns a unique name to the logs by including a timestamp. This will make debugging based on the detailed logs much easier.
Two little features are in this PR:

The standard name of the DYNAMITE logfile includes a timestamp and is unique now. Therefore, it is safe to execute multiple DYNAMITE runs from the same directory without distorting the logfile.

As np.datetime64('now','ms') does not return fractional seconds, timestamps in the all_models table will no longer display fractions of a second.

Please have a look and if possible adopt the changes in DynamiteLogging for easier debugging of future runs ;-)
Cheers,
Thomas

As discussed in today's hack session: The user can now change the logfile when instantiating the configuration object (added a new optional parameter to the config reader and adapted the logfile parameter of DynamiteLogging).
The parameter user_logfile (Configuration) or logfile (DynamiteLogging) can take the following values:
A string - name of the logfile (.log will be appended).
None - will not create a logfile.
False - will create a UTC-timestamped logfile dynamiteYYMMDD-HHMMSSuuuuuu.log
Default value: 'dynamite' (creates dynamite.log).
Also changed test_nnls.py which now uses the user_logfile parameter to create test_nnls.log.

Thank you, @maindlt! I tested all the options and they all work very well! :)
We should also maybe add a couple of sentences in the docs to introduce this option to the users: I can try and edit the docs in this branch, so that we will not forget to do this! And then, I think that we can merge!

Great, @azocchi, I am glad it all works :-)
Yes, if you have time it will be great if you edit the docs to reflect the new logging functionality (I completely forgot about that). Please let me know in case you need any help!

Done! :) Please, take a look and change whatever you do not like, especially if my explanation is not clear enough!

Many thanks @azocchi, your explanation is great! I will go ahead, merge this PR, and close #194 without merging it.


Docstring with one quotation mark gets highlighted as it would have been written with three.

If I make a docstring like
def func(a, b):
    "This is my docstring."
    return True

It will give "Th and ng" different highlighting. As if it would have been written with 3 quotation marks.
def func(a, b):
    """This is my docstring."""
    return True

The example doesn't follow the PEP conventions for docstrings. But should still have valid parsing.

Which highlighting are you referring to? Did you mean to open this issue on Neovim by any chance?

Im using the nvim-treesitter/nvim-treesitter for highlighting in nvim yes.
Noticed that when using that extension it will create that behavior i described. And in their README they link this as the project for python highlighting. I might be in the wrong place if this is related to something nvim-treesitter is doing than this project itself.

Yeah i seem to have gone to the wrong project. My bad. Ill open it there instead.


Dev/expose setquery to python

Exposes setQuery to python

@greglandrum hopefully this one show fewer differences :)

Ah, that makes sense!

Brian Kelley

On Oct 3, 2018, at 10:21 PM, Greg Landrum<EMAIL_ADDRESS>wrote:
@greglandrum commented on this pull request.
In Code/GraphMol/Wrap/rough_test.py:

@@ -4892,6 +4892,23 @@ def testSVGParsing(self):
mol = Chem.MolFromRDKitSVG("bad svg")

def testSetQuery(self):
pat = Chem.MolFromSmarts("[C]")
self.assertFalse(Chem.MolFromSmiles("c1ccccc1").HasSubstructMatch(pat))

q = rdqueries.AtomNumEqualsQueryAtom(6)
You need to import rdqueries in order for this to work.
(this is what's causing the travis builds to fail)

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


WS process use high CPU

There was an unusual increase in CPU usage in recent versions, on all cluster nodes.
Results:
The WS process increased to thousands (~3000%) in percentages.
Increased in usage GC (young + old).
At logs can found ERROR such as:
java.lang.NullPointerException: null
application-akka.actor.default-dispatcher-4] ERROR application
@79cojp - Internal server error, for (POST) [/_out?format=json&xg] ->
play.api.UnexpectedException: Unexpected exception[NullPointerException: null]
Caused by: java.lang.NullPointerException: null

Environment:
No issue found by health.md or by the using the system.

@Ivan-Shestakov let's try perf. tests again, now when the large Infotons were trimmed.

This issue caused by large infotons(over 1000 values per predicate) and the solution was to remove those infotons.


wasm-pack fails to download geckodriver

🐛 Bug description
Hi, recently I observed that on our CI we have failures when using wasm-pack to run tests using headless geckodriver.
[INFO]: Installing wasm-bindgen...
[INFO]: Getting geckodriver...
Error: failed to download from https://github.com/mozilla/geckodriver/releases/download/0.32.1/geckodriver-0.32.1-linux64.tar.gz
Caused by: received a bad HTTP status code (404) when requesting https://github.com/mozilla/geckodriver/releases/download/0.32.1/geckodriver-0.32.1-linux64.tar.gz

The correct URL would be https://github.com/mozilla/geckodriver/releases/download/v0.32.1/geckodriver-v0.32.1-linux64.tar.gz, the wasm-pack is missing the leading v character.
As I looked into the code, this is caused because the latest geckodriver release was in fact tagged twice, once with v0.32.1 and once with 0.32.1. wasm-pack picks the latter, when only the former is correct.
In general, I'd say wasm-pack should not try guessing tags/urls and just use the API to browse the assets.
🌍 Your environment
Include the relevant details of your environment.
wasm-pack version: wasm-pack 0.10.3
rustc version: rustc 1.68.0-nightly (1e4f90061 2023-01-11)

This should be fixed in new versions of wasm-pack.


Show DEBUG in knowhere version for debug build

Issue: #844

test with Milvus debug build, can see following message:
I20230506 11:35:00.246528 51480 knowhere_config.cc:47] [KNOWHERE][ShowVersion][milvus] Knowhere Version: 6448cf09 (DEBUG)

/lgtm


Show GitHub and npm urls

This is related to issue #417.
Added message that is displayed on completion with URLs to go to the GitHub repository and the NPM package. In a lot of terminals this URLs are displayed as clickable making it easy to jump to them and do a quick check.

I forgot to merge the upstream before making the changes. Fixed the code after merging upstream.

Fixed failing test.

Thanks @nidkil! The new feature is released in v9.2.0.


Firefox browser unsupported

I am getting the following message when I go to bitshares.openledger.info
Unsupported browser

The Browser you are using has not been fully tested to support the Bitshares Wallet. We highly recommend that you backup your wallet and import it using the Chrome Browser until we have had more time to fully test your browser of choice. Use at your own risk.

Google Chrome

Here is relevant system information:
$ cat /etc/issue
Ubuntu 14.04.3 LTS \n \l
$ dpkg -l | grep firefox
ii  firefox                                     42.0+build2-0ubuntu<IP_ADDRESS>            amd64        Safe and easy web browser from Mozilla
ii  firefox-locale-en                           42.0+build2-0ubuntu<IP_ADDRESS>            amd64        English language pack for Firefox

My user-agent string:
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0

Firefox from official repository on Ubuntu LTS release is not in any way an unusual platform.  Is Firefox really unsupported, or is it just not properly detecting my browser?

Yes, currently we display this for all browsers except Chrome because we had resources to test it in Chrome only.

On Dec 16, 2015, at 1:38 PM, theoreticalbts<EMAIL_ADDRESS>wrote:
I am getting the following message when I go to bitshares.openledger.info
Unsupported browser
The Browser you are using has not been fully tested to support the Bitshares Wallet. We highly recommend that you backup your wallet and import it using the Chrome Browser until we have had more time to fully test your browser of choice. Use at your own risk.
Google Chrome
Here is relevant system information:
$ cat /etc/issue
Ubuntu 14.04.3 LTS \n \l
$ dpkg -l | grep firefox
ii  firefox                                     42.0+build2-0ubuntu<IP_ADDRESS>            amd64        Safe and easy web browser from Mozilla
ii  firefox-locale-en                           42.0+build2-0ubuntu<IP_ADDRESS>            amd64        English language pack for Firefox
My user-agent string:
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0
Firefox from official repository on Ubuntu LTS release is not in any way an unusual platform. Is Firefox really unsupported, or is it just not properly detecting my browser?
—
Reply to this email directly or view it on GitHub https://github.com/cryptonomex/graphene-ui/issues/610.

--
Regards,
Val

Closing but we know this needs to be a priority after base features and bugs are in place.


Premint V2 - npm tag

Current dependencies on/for this PR:

main

PR #142

PR #133

PR #149

PR #98

PR #144

PR #152

PR #154

PR #128

PR #155

PR #145

Current dependencies on/for this PR:

main

PR #142

PR #133

PR #149

PR #98

PR #144

PR #152

PR #154

PR #128

PR #155

PR #145


Packaging for Debian Jessie

Any thoughts on this? It looks like there is no candidate for Jessie, although there is a version for Sid. We are targeting Jessie here at QMUL. I've written up and submitted a pull request to the soci-pkg project but I suspect the maintainer isn't active on that project anymore. Could be wrong but it's not had a lot of love in the last couple of years.

I'd love to see SOCI in Jessie personally, but I'm pretty sure it's too late for it.

@OniDaito The soci-pkg repo is not actively maintained, it's more ad-hoc maintained.
However, it's open for maintenance for anyone who's willing to update it.
If you are interested, you can become a committer and update the scripts there.

Fantastic! Yes, thats a big help. We are looking to get an actual debian / ubuntu repos setup here (QMUL) if we can. Too late for official release but maybe for these who want it, they can have a url for their sources.list

@OniDaito Done. Thanks!

This is an old issue, but it's still open so I figured I'd comment.  Jessie is of course already released, but unless something changes (e.g., breakage that can't be fixed in time), SOCI will be in the next stable release (Stretch).

Oh thats cool! I've not looked at this project for a while, having been moved onto other things. I guess we can probably close this and look forward to Stretch

Closing as suggested


Add layout package for writing and loading signatures from disk

Added a layout package to pkg/oci which should make it easy to store images & associated signatures to disk! This is the first part of implementing https://github.com/sigstore/cosign/issues/1015
TODOs:

[x] unit tests
[x] moving the sigLayer implementation into a separate package since it's used by remote as well

I'm still not sure if I implemented this the correct way, cc'ing @jonjohnsonjr and @mattmoor in case I'm totally on the wrong track 😅

Hey @jonjohnsonjr & @mattmoor, I refactored a bit to store everything in a single index as recommended. The sample index.json looks like this right now, with a manifest for the image and a manifest for the signatures (distinguishable by annotation). Let me know what you think :)
{
   "schemaVersion": 2,
   "manifests": [
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 528,
         "digest": "sha256:69704ef328d05a9f806b6b8502915e6a0a4faa4d72018dc42343f511490daf8a",
         "annotations": {
            "dev.cosignproject.cosign/image": "true"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "size": 501,
         "digest": "sha256:4c4dc104ee4357651d17a2e4f8faf2d64457acc7fff2d306312abf69c7bbe4c9",
         "annotations": {
            "dev.cosignproject.cosign/sigs": "true"
         }
      }
   ]
}


Net connections not closing automatically

When we drop the server, the socket is not unbound
When we drop client, connection is not killed

not sure what this was about LUL


Fix projection for images with non-centered camera (e.g. crops)

The current code assumes [cx,cy] are at [w/2, h/2], if this is not the case (very common if you want to render a non-centered crop) the code gives VERY bad and incorrect results. This quick fix uses the proper [cx, cy].

Any reason the backward (persp_proj_vjp) is not updated?

This seems a major bug. Could you also fix the backward pass as well.

can we do so instead, without modifying the rasterizer? https://github.com/graphdeco-inria/gaussian-splatting/issues/144#issuecomment-1938504456

Can someone explain why the clamping?
The original 3DGS code has it too, and a comment says:
// The following models the steps outlined by equations 29
// and 31 in "EWA Splatting" (Zwicker et al., 2002).
// Additionally considers aspect / scaling of viewport.
// Transposes used to account for row-/column-major conventions.

But EWA splatting has no clamping.
What it does is that it clamps the 2D expansion (due to the projection) of Gaussians that are outside of the view frustum. My guess is that it's something that was introduced at some point, maybe to fix a visual artifact, and left there for no reason (maybe that artifact was due to something else).
I can understand the reason for clamping, when considering very large Gaussians: The projection cannot be considered to be affine anymore, and maybe the clamping was introduced to avoid very large Gaussians that are outside of the view frustum to come inside the view frustum because of the affine approximation, which is computed at the center of the Gaussian and not at the "side" of the Gaussian that is closer to the view frustum. But then why treat Gaussians that are outside and not those that are inside? The projection of Gaussians that are inside should actually be larger (that same Jacobian is higher on the sides of Gaussians that are at the principal point).
I think the correct fix is to remove the clamping.

@liruilong940607 yes this probably needs to be changed in the backward pass too! I don't have time to look into this myself right now though unfortunately.
@hbb1 The function you linked doesn't fix this issue, this actually needs to be changed in the cuda like suggested in this PR.
@f-dy 'Why clamping': If you do nothing, the 'approximate jacobian projection' of Gaussians out to the side of field of view make these (normally small) Gaussians very large and project into the field of view and results in complete mess (no good image at all), so we absolutely need to do something about this.
There are two solutions:
a) either completely remove Gaussians far out of field of view, e.g. Gaussians outside of 1.3*fov are completely removed / culled. This is a fine solution imo.
b) (done here) make the Gaussians outside of field of view smaller (e.g. clip their size to the size it would be if they were 1.3fov away). The advantage of this over (a) is that if you have VERY large Gaussians outside of 1.3fov that actually SHOULD contribute to the image, in this setting they are able to, whereas if you just completely removed them as in (a) they wouldn't be able to contribute.
Note that in (b) there is still culling of Gaussians to only those in the frustum, but the culling is not based on the center of gaussian location, but the projected 2D bounding box of the Gaussian (based upon the clipped projection here).
Let me know if this makes sense?
Note @f-dy if you naively try your solution to remove the clamping alone, you will get absolutely rubbish results (blury image that looks NOTHING like the scene) because all the Gaussians out to the side are basically filling the whole image with their (incorrect because of linear approximation) projection.
However an alternative (and reasonable, but maybe not as good) solution is to remove all point where their center is outside the 1.3fov (as described in a above)

I just finished the backward pass fix as well as the torch impl fix. cc for review @maturk @JonathonLuiten @jb-ye

I checked the tests/ locally, all tests passed

sorry to bother you guys！thanks for your incredible work of art.may i
ask a question  about the fixing,does it affect the depth composing of gsplat？


Landing Zone Pipeline failing at Network_Association stage

Describe the bug
We have launch the Accelerator-config pipeline today and it ended up with a failure at Network_Association Stage.

There was no change in the configuration any configuration file.
It look like LZA is trying to renew the ActiveDirectory Management instances with the latest image and the process is failing.
In the changeset we can see there is a difference between the before ami-id and the after ami-id. See the files attached for more details

Below a piece of configuration related to the managedInstance in iam-config.yaml
activeDirectoryConfigurationInstance:
instanceType: t3.large
vpcName: Central
subnetName: Central-App-A
imagePath: /aws/service/ami-windows-latest/Windows_Server-2019-English-Full-Base
securityGroupInboundSources:
# Plage d'IP interne du MRNF
- <IP_ADDRESS>/17
instanceRole: AWSAccelerator-RDGW-Role
userDataScripts:
- scriptName: JoinDomain
scriptFilePath: ad-config-scripts/Join-Domain.ps1
- scriptName: AWSQuickStart
scriptFilePath: ad-config-scripts/AWSQuickStart.psm1
- scriptName: ADGroupSetup
scriptFilePath: ad-config-scripts/AD-group-setup.ps1
- scriptName: ADUserSetup
scriptFilePath: ad-config-scripts/AD-user-setup.ps1
- scriptName: ADUserGroupSetup
scriptFilePath: ad-config-scripts/AD-user-group-setup.ps1
- scriptName: ADGroupGrantPermissionsSetup
scriptFilePath: ad-config-scripts/AD-group-grant-permissions-setup.ps1
- scriptName: ADConnectorPermissionsSetup
scriptFilePath: ad-config-scripts/AD-connector-permissions-setup.ps1
- scriptName: ConfigurePasswordPolicy
scriptFilePath: ad-config-scripts/Configure-password-policy.ps1
We need your help to fix the issue , as we don't want the ActiveDirectoryConfigurationInstance to change .
The current version used is v1.5.1, but it also happen in v1.6.3
To Reproduce
Steps to reproduce the behavior.
Expected behavior
A clear and concise description of what you expected to happen.
Please complete the following information about the solution:

[ ] Version: [e.g. v1.5.1]

To get the version of the solution, you can look at the description of the created AWS CloudFormation stack used to install the LZA (AWSAccelerator-InstallerStack). For example, "(SO0199) Landing Zone Accelerator on AWS. Version 1.5.1.". If the description does not contain the version information, you can look at the Parameters of the stack for the RepositoryBranchName as that should contain the version number.

[ ] Region: [e.g. us-east-1]
[ ] Was the solution modified from the version published on this repository?
[ ] If the answer to the previous question was yes, are the changes available on GitHub?
[ ] Have you checked your service quotas for the services this solution uses?
[ ] Were there any errors in the CloudWatch Logs?

Screenshots
If applicable, add screenshots to help explain your problem (please DO NOT include sensitive information).
Additional context
Add any other context about the problem here.

Hi @ateguia2019, thank you for using the Landing Zone Accelerator on AWS (LZA) solution. With the LZA solution, we allow you to specify the image ID that you can use for the configuration instance. From the CloudFormation documentation for the EC2 instance, any change to the AMI ID will result in a replacement of the instance. The way around this moving forward would be:

Make a snapshot of the managed AMI that you're using
Make an SSM Parameter store reference for the AMI ID in that region
Update the imagePath property with the new image ID

There are caveats as you'd have to manage the lifecycle of the instance whereas with the Amazon AMIs, we manage that and do a set cadence on releases. As it relates to this issue, it looks like there was an issue where the cfn-signal was not sent to CloudFormation which indicates a failure with one of the scripts during the bootstrap phase. You should be able to enable termination protection on the instance and RDP into it so CloudFormation doesn't delete the instance. From there, you can determine which scripts are failing.

hi @bo1984 ,
Thanks for the tip. I created a custom ssm parameter with the ami-id and it worked

Thank you for confirming, @ateguia2019. I'm glad everything is working and I'll close this issue out.

hi @bo1984 ,
Possible for you check also my issue #463 ?
Thanks and regards


Add panic button

Allow users to define a key name that, in an emergency prevents all updates cluster-wide.
(From chapter 4 of Automation Gone Wild.)

@therc can you please clarify this use case? What's wrong with killing the running process and restarting that would require such a scenario?

If you have ten or a hundred machines running confd, killing and restarting processes manually is going to be a headache.
The use case is that you need to have a red button to stop all automation when you suspect it of being the cause or a trigger for an ongoing outage. This is standard procedure for services and configuration management at scale. Maybe your tools are dynamically configuring load balancers, maybe they're pushing quotas for your customers or throttling them, maybe something else. But before you investigate whether the bug is at the source, downstream or somewhere in the middle, which could take a long time, first of all you want to stop further damage from occurring.
You could even get fancy and allow the key to be at different levels in the hierarchy, to be selective in what changes you want to inhibit, but that's a bonus.

I have a feeling that this is out of scope for confd. I'm assuming that if (hypothetically) you have hundreds of machines running confd, you likely have some form of a scheduler that would be able to stop these processes for you, which then you'll have a way to stop said job. For example, kubernetes has a concept of a replication controller that works across a set amount of replicas for a given job. Your big red button in that case is to scale down to zero then back up as you see fit.
In other words I don't see how this solution would be useful in the real world. Companies that deploy software use schedulers and/or monitors to deploy and manage jobs across machines. A scheduler would be your "big red button" in this case, which would kill the running process and restart as needed. Something like a "big red button" to halt a number of confd processes from templating sounds like a clustering problem that should be solved outside the system, not within it.

A scheduler might work if you're deploying confd on its own. But even then, it's a very blunt instrument. Let's ignore the fact that mass terminations will add a lot of noise to logs (the last thing you need when troubleshooting live) or that the central scheduler and the local node manager are additional sources of latency, unpredictability and points of failure on top of your distributed lock service.
At the moment, I'm more interested in the standalone setup, but in your Kubernetes example, I might have confd running as a sidecar container in the same pod as a backend. I don't know of a way to terminate just confd without taking down the whole service. I want to stop the bleeding, not kill the patient altogether. :-)
I have worked at companies in the real world that use very large scheduling and monitoring systems. We still used big red buttons. I can probably come up with at least 4-5 services you interact with daily whose operations rely on multiple panic buttons. I implemented a few and used even more of those. When you are serving thousands or millions of requests per second, you have to have them, document them and test them regularly, for every layer of automation. Taking down jobs was always the very last and desperate resort.
It would be nice to have a simple and easy way to always practice safe automation with confd. Without it, users will roll their own kludgy solution or won't bother. I don't know which is worse.

@therc Thanks for opening this issue. Would an authenticated HTTP endpoint to pause confd work?

@kelseyhightower that requires a small HTTP server, plus now you're dealing with authentication. And you need to hit all confd instances, which is not so easy or reliable if you're in the middle of a crashloop fest. I think you can find examples of the pattern I mention (a file in Chubby) if you search the corporate wiki for "make it stop" pages.

What about utilizing check_cmd to make an external API call (maybe to the same backend your templates are sourced from). Return a non-zero code and your config will not be updated.

@therc I think there is a way to implement this with confd. You may insert a remark like
# my-panic-button: {{ getv "/globalwide/panicbutton "0" }}

and use an external script as the check_cmd:
check_cmd: /usr/bin/my_panic_button.sh {{.src}}

In the shell:
grep "# my-panic-button: 1" $1 && exit 1
exit 0

So if the value is changed from 0 to 1, the check_cmd prevents further reload. After you change it back to 0, everything starts working again.


Conflict between newest version of Firebase package.

I have some problems when update Firebase to newest version, maybe it have a confliction between package of firebase. I'm trying to build app for iOS but it have an error.
I'm just update all package of firebase family to newest version some day ago.
Package I'm using:
font_awesome_flutter: ^8.4.0
firebase_core: ^0.4.0  # add dependency for Firebase Core
firebase_database:
firebase_admob: ^0.9.0
firebase_auth: ^0.9.0
google_sign_in: ^4.0.1+3
flutter_facebook_login: ^2.0.0
flutter_auth_buttons: ^0.3.1
sprintf: ^4.0.0
cloud_functions: 0.3.0
auto_size_text: 1.1.0
rflutter_alert: ^1.0.2
audioplayers: ^0.10.1
url_launcher: ^5.0.2
video_player: ^0.10.0+8
firebase_messaging: ^5.0.1
package_info: ^0.4.0+3
udid: ^0.0.2
Logs
[!] CocoaPods could not find compatible versions for pod "Firebase/CoreOnly":
  In Podfile:
    cloud_functions (from `.symlinks/plugins/cloud_functions/ios`) was resolved to 0.0.1, which depends on
      Firebase/Functions (~> 5.18) was resolved to 5.18.0, which depends on
        Firebase/CoreOnly (= 5.18.0)

    firebase_auth (from `.symlinks/plugins/firebase_auth/ios`) was resolved to 0.0.1, which depends on
      Firebase/Auth (~> 6.0) was resolved to 6.0.0, which depends on
        Firebase/CoreOnly (= 6.0.0)

[✓] Flutter (Channel stable, v1.2.1, on Mac OS X 10.14.4 18E226, locale en-VN)
    • Flutter version 1.2.1 at /Users/minhnguyen/development/flutter
    • Framework revision 8661d8aecd (3 months ago), 2019-02-14 19:19:53 -0800
    • Engine revision 3757390fa4
    • Dart version 2.1.2 (build 2.1.2-dev.0.0 0a7dcf17eb)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/minhnguyen/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.2, Build version 10E125
    • ios-deploy 1.9.4
    • CocoaPods version 1.6.1

[✓] Android Studio (version 3.4)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 35.0.1
    • Dart plugin version 183.5901
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[✓] VS Code (version 1.33.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.0.1

[✓] Connected device (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 8.1.0 (API 27) (emulator)

Sorry about my bad English :(

Have the same issue, had to downgrade :/
  firebase_core: ^0.3.4   firebase_storage: ^2.1.1+2   firebase_auth: ^0.9.0   firebase_database: ^2.0.3

seems related to cloudfunction that depends on Firebase/CoreOnly 5.18.0 instead of 6.0.0

This is a blocker. Can't build my app with 5.0.0+1 version.
@collinjackson @jaumard mentioning you as recent contributors to Firebase Messaging plugin in PR flutter/plugins#1318

@Smagold with newer version of firebase I sometime need to run pod udpate manually, after that it generally found everything it needs to build.

@jaumard that worked, thank you for a quick response!
Quick instruction for the OP & others: do cd ios in your project directory and run pod update.

@Smagold with newer version of firebase I sometime need to run pod udpate manually, after that it generally found everything it needs to build.

@jaumard that worked, thank you for a quick response!
Quick instruction for the OP & others: do cd ios in your project directory and run pod update.

I have deleted Pods directory, Podfile.lock, and run "pod update" in ios, but still have error return:
``
[!] CocoaPods could not find compatible versions for pod "Firebase/CoreOnly":
In Podfile:
cloud_functions (from .symlinks/plugins/cloud_functions/ios) was resolved to 0.0.1, which depends on
Firebase/Functions (~> 5.18) was resolved to 5.18.0, which depends on
Firebase/CoreOnly (= 5.18.0)
firebase_auth (from `.symlinks/plugins/firebase_auth/ios`) was resolved to 0.0.1, which depends on
  Firebase/Auth (~> 6.0) was resolved to 6.0.0, which depends on
    Firebase/CoreOnly (= 6.0.0)

In pubspec.yanml:
firebase_core: ^0.4.0
firebase_auth: ^0.11.1
cloud_functions: 0.3.0
``
I think it have nothing changed?

Yes it doesn't apply to you @clovers1254 because you have dependency conflicts, like @jorg1piano said you need to downgrade some dependencies (find the right combination) to resolve that conflict

I think the issue here is firebase_core needs to be upgraded. I'll do that.


Kangaroo add version 1.98.1

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

[x] Does your manifest conform to the 1.2 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

@taozuhong you can also use https://github.com/marketplace/actions/winget-releaser

Sure, the next version uses your bot to release version automatically.

Sure, the next version uses your bot to release version automatically

@ItzLevvie @vedantmgoyal2009 the package has updated, it could pass the validation.

Wait for an engineer to take a look at this PR.

@ItzLevvie, pls merge it directly, thanks.

Close with reason: Replaced by PR 79373 to fix PackageVersion so it doesn't download Kangaroo unlimited amount of times due to version not matching Control Panel;

@ItzLevvie awfully thanks for all you have done.


kubie: init at 0.7.1

Motivation for this change
Adding kubie to nixpkgs
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

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

Thanks for the contribution! Rebased to master in 0f9179137cb28622986a8726e909e02faa0963ce.


sanoid: mostly usable, problems with syncoid

Sanoid is mostly usable right now.
Syncoid has problems with binary files location (expects specific
utilities like mbuffer and zfs to be present on the same location on
both local and remote hosts (what is problematic on NixOS) -
however, it is usable.

@otwieracz if you just squash those commits I think this would be good to go

Unfortunately, Sanoid is not able to work properly in NixOS environment.jj

Not sure what happened here but current syncoid seems to have worked fine for what I just used it for. @otwieracz can you elaborate?

Sorry - this was more than two years ago and I am no longer using it.

Do you remember the problem at the time?

Not really – only thing I remember is that it was expecting binary to be available in the same place on both sides of transfer. Or something like that. And it was by principle incompatibile with NixOS dynamic approach to binary location. --sg From: deliciouslytypedSent: wtorek, 13 sierpnia 2019 12:15To: NixOS/nixpkgsCc: Slawomir Gonet; MentionSubject: Re: [NixOS/nixpkgs] sanoid: mostly usable, problems with syncoid (#12609)
On August 13, 2019 at 12:15 PM deliciouslytyped<EMAIL_ADDRESS>wrote:

Do you remember the problem at the time?
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.

Ah. I only used it for a local transfer.

What do you currently use?

I am no longer using ZFS snapshots as a backup solution at all.  --sg From: deliciouslytypedSent: wtorek, 13 sierpnia 2019 12:22To: NixOS/nixpkgsCc: Slawomir Gonet; MentionSubject: Re: [NixOS/nixpkgs] sanoid: mostly usable, problems with syncoid (#12609)
On August 13, 2019 at 12:22 PM deliciouslytyped<EMAIL_ADDRESS>wrote:

What do you currently use?
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.

See #72060


navigate to read me post creation when user selects Enterprise assistant

Is this still relevant? We added a button for the readme instead of opening it automatically.

Yes removing this, Elaine and Lauren were playing the idea of making a case for this in R13 but have decided not to.
The R14 goal for this item is still active in the r14 backlog category so closing this issue.


Created ComputeHCISriov.yaml

Hyper-converged SR-IOV role for compute nodes.
Already implemented, tested and validated in a production environment.

Thank you for contributing to openstack/tripleo-heat-templates!
openstack/tripleo-heat-templates uses Gerrit for code review.
If you have never contributed to OpenStack before make sure you have read the
getting started documentation:
https://docs.openstack.org/infra/manual/developers.html#getting-started
Otherwise please visit
https://docs.openstack.org/infra/manual/developers.html#development-workflow
and follow the instructions there to upload your change to Gerrit.


Caddyfile is not valid when enabling MFA

Describe the issue
When I try to activate MFA globally like shown in doc, caddy can't start.
Error is : Error during parsing: parsing caddyfile tokens for 'authp': /etc/caddy/Caddyfile:63 - Error during parsing: auth backend local_backend subdirective require is unsupported
Configuration
Paste full Caddyfile below:
route @auth {
    authp {
      cookie domain adrien60.ovh
      cookie insecure on
      backends {
        local_backend {
          method local
          path /etc/caddy/assets/conf/local/auth/user_db.json
          realm local
          require mfa
        }

Version Information
Provide output of caddy list-modules -versions | grep auth below:
http.authentication.hashes.bcrypt v2.4.3
http.authentication.hashes.scrypt v2.4.3
http.authentication.providers.http_basic v2.4.3
http.handlers.authentication v2.4.3
http.authentication.providers.jwt v1.3.12
http.handlers.authp v1.4.14

Expected behavior
Module should accept "require mfa" in Caddyfile, to enable MFA for all users.
Additional context

@adrienyhuel , the MFA is now enforced using transform user directive. See User Transforms.
Change your config:
route @auth {
    authp {
      cookie domain adrien60.ovh
      cookie insecure on
      backend local /etc/caddy/assets/conf/local/auth/user_db.json local
      transform user {
        match origin local
        require mfa
      }

Caveats:

if a user does not have MFA configured, the user would not be able to get in. FYI, next week, I am going to add MFA onboarding as part of the login process where users do not have configured token
the U2F tokens do not work at the moment. I did not port that code yet. Hopefully, next week.
the user transform enforces mfa for the users authenticated via local backend only. This way if you have OAuth2.0 configured, it will not be enforces, because there is no way, at the moment, to configure MFA for OAuth2.0 users.

Hope this helps!

@greenpau  thank you it works now !
I saw the transform way to do it, but I thought it was only to match one user or one group.
You should remove from doc the old way to enforce MFA :)

I saw the transform way to do it, but I thought it was only to match one user or one group.

@adrienyhuel , you can match on any of these fields: https://github.com/greenpau/caddy-auth-jwt/blob/1f8db0897d282bc4de70efe228e136126a43818c/pkg/acl/condition.go#L29-L41
The conditions doc is over here: https://github.com/greenpau/caddy-auth-jwt#conditions
I hope I will make a video about all of this one day 😃

You should remove from doc the old way to enforce MFA :)

👍


Total amount sending shows old amount after amount field is cleared

Expected behavior is for the below fields to be cleared as well.

Fixed at PR #88


customizable image whitelist

I think i havent mentioned this yet so
Considering you have an option to allow any imagehost even outside the whitelist, I think it'd make sense if the user could whitelist CDNs or etc - However that is just me.

The problem I can imagine with this is that if everyone has a separate whitelist, there's no guarantee at all if an image will actually work

The problem I can imagine with this is that if everyone has a separate whitelist, there's no guarantee at all if an image will actually work

Yeah that could be a problem...

How would you use this? Maybe there's a better

How would you use this? Maybe there's a better way of doing this.

Yeah, now that I'd thought of it, this is probably not a really good path to do it either.
No idea how else though...


Should we use SVMs for FGVC?

Hi, I am reading about your iSQRT paper and i think it is quite interesting. However, I am confused about the usage of SVMs.
You wrote "After finetuning, the outputs of iSQRT-COV layer are ℓ2−normalized before inputted to train k one-vs-all linear SVMs with hyperparameter C = 1" in your paper but i didn't find it in your released code.

@CupidJay We perform SVM classifier for fair comparison with existing methods. In fact, it improve performance very marginal (<=0.1%). So SVM is not a required option.

Thanks for your kind reply.


Cannot access to postfixadmin, spam and rainloop

I have configured Traefik and everything is running fine and healthy. I already updated DNS record and checked them with DNS checker. However, I cannot reach these sites with message "This site can’t be reached". Any possible causes for it? Thanks!

Can you share your Traefik settings in Rancher panel ?

Okay it solved. Thanks


Add test of pypi mirroring

We just had an error crop up in this on Windows and it wasn't caught by the CI due to the lack of a test. It will be slow, but worth it.

Addressed in #97


Feature with big icon doesn't get selected

I dynamically generate SVG icons to show the status of some feature on the map. This often results in icons with a height of over 200px, and a width of only 40px.
The images are anchored at the bottom, but I noticed that when I click on the top of the icon, the feature doesn't get selected. I estimate the cutoff is around 100px from the feature position.
Every time the feature status changes, I generate a new style and bind a new SVG to it through a data URI. So I don't think it's an issue with the generated SVGs.
Is it true there is a cutoff, and can the cutoff be eliminated in some way?
If you need a minimal example, I could probably make one, just ask for it

@sanderd17 thanks for the report.  This sounds like a bug.  Having a minimal example that reproduces the problem would be great.

Here is my minimal example: https://www.dropbox.com/s/xv9dh9vfpjvw5m6/minimal.html?dl=0
I tested it in the latest FF and Chromium, the issue appears in both. The map shows a feature at (0, 0), the feature has an icon with a width of 40px and a height of 200px. When you open the JS console of your browser, it will output how many features are selected and deselected.
So you can test that clicking on the top half of the icon never selects it.
(note that I usesJS template strings for the SVG creation, so a recent browser and recent syntax highlighting is advised).

I just noticed that the same cutoff happens for rendering too. When you pan the map so the feature coordinates are more than 100 px below the edge of the screen, the icon will disappear.
Though this is less severe IMO, it might be related

I just noticed that the same cutoff happens for rendering too. When you pan the map so the feature coordinates are more than 100 px below the edge of the screen, the icon will disappear.

To avoid this you can set a custom renderBuffer on ol.layer.Vector.


How to generate data.dists

I am using the CiteSeer dataset that is in the repo and using the default settings.
However I get stuck at this point in model.py:

data.dists cannot be subscripted since it is a NoneType.
May I ask how to generate this 'dists' and what it actually represents.

I found the link to download the file in the "About dist data" file.
Thanks.

@Lemour-sudo hey, i had downloaded the data, were you able to figure out what it represents ?

@mohitagarwal0212 I think it must represent the distances (or reciprocals of the distances) between each pair of nodes in the graph.


Mint notes for inbound IBC transfers

To handle inbound IBC transfers, we want to cause corresponding notes to be minted.
We already have a mechanism for this, in the form of the "commission amounts": https://github.com/penumbra-zone/penumbra/blob/main/component/src/shielded_pool/component.rs#L573-L583
This should be renamed to something more general, and used by the ICS20 component to mint new notes.

[x] #1351
[ ] Actually do IBC transfer

Currently blocked, pending progress on #465.

Needs https://github.com/penumbra-zone/penumbra/pull/2315 & https://github.com/penumbra-zone/penumbra/pull/2301; after those land, this ticket should be blocked.

Committing to shipping in Testnet 51!

Done in #2392


Osudataprovider cant find the osu!.exe

Where ami i supposed to put the osu file because it cant find the exe.
I tried changing the osu directory in the in game overlay from config. but nothing seems to work

i had that same issue


ASSETS-88888  : Add 'Select All' button on Collections Details and Share Link Page

No Jira Ticket has been created for this task
Here is the Workfront Ticket
https://experience.adobe.com/#/@wfadoberm/so:adoberm-Production/workfront/team/64120499002edcb6e4ef1dbc3e644241/iterations
Test URLs:

Before: https://main--adobe-gmo--hlxsites.hlx.page/

For Collection Detail with Select All

After: https://assets-88888--adobe-gmo--hlxsites.hlx.page/collection/urn_cid_aem_0311ed8d-4e8d-46bd-83f6-af89f8e9d11a

For Share Link with Select All
https://assets-88888--adobe-gmo--hlxsites.hlx.page/qa/share/1db300fb-db2d-4f51-8705-814514973aa0
Authoring instructions.
Edit the asset-distribution-portal>share>default.docx page and add the block adp-share-header

Added additional logic to uncheck the Select All Checkbox when the Banner is Closed and when an Item is deselected.


[Feature Request]How to get list of work items in azure boards using a command in Azure CLI

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I cannot create a project..
Describe the solution you'd like
A clear and concise description of what you want to happen.
e.g. If you want a new command to be added, what would it do?
Additional context
Add any other context or screenshots about the feature request here.
https://docs.microsoft.com/en-us/cli/azure/ext/azure-devops/boards/work-item?view=azure-cli-latest#ext_azure_devops_az_boards_work_item_show
refer to this above url I did not find any related command to list all work items.

@swkoganti I do the following to get a list of work items:
az boards query --output table --path "My Queryies\TODO"
# or
az boards query --output table --wiql "select [id],[Work Item Type],[Title] from workitems where [system.assignedto] = 'My Name Here'"

See: https://docs.microsoft.com/en-us/azure/devops/boards/queries/wiql-syntax?view=azure-devops#sort-results-order-by


显存最低要求是多少？8GB报错内存不足

显存最低要求是多少，有没有配置可以在低显存上跑？

The minimum video memory requirement is 8GB, since I have executed this code on RTX 3070 8GB GPU. However, this specification is applicable to desktop GPUs only. When using an RTX 3070 8GB laptop GPU, I encountered same Low Ram issue.


builder.AddProject<Projects.SampleMAUI>("app_maui"))- or any other  client project

Hi
I think from title should be clear what I am attempting to achieve.
Working on templates for MAUI repro samples and playing with Aspire. Being lazy bum (dev) I would like to use Aspire for service discovery for client apps (MAUI, console, desktop...).
Repro:
SampleAspireStarter.zip
CLI
 dotnet build ./SampleAspireStarter/SampleAspireStarter.AppHost/SampleAspireStarter.AppHost.csproj

Error I get is:
./SampleAspireStarter.AppHost/SampleAspireStarter.AppHost.csproj : error NU1201: Project SampleMAUI is not compatible with net8.0 (.NETCoreApp,Version=v8.0). Project SampleMAUI supports:
./SampleAspireStarter.AppHost/SampleAspireStarter.AppHost.csproj : error NU1201:   - net8.0-android34.0 (.NETCoreApp,Version=v8.0)
./SampleAspireStarter.AppHost/SampleAspireStarter.AppHost.csproj : error NU1201:   - net8.0-ios17.0 (.NETCoreApp,Version=v8.0)
./SampleAspireStarter.AppHost/SampleAspireStarter.AppHost.csproj : error NU1201:   - net8.0-maccatalyst17.0 (.NETCoreApp,Version=v8.0)

Seems like MauiAppBuilder should implement IDistributedApplicationBuilder
https://github.com/dotnet/aspire/blob/6464fea863ea9ba17712fb38301ec6558bb4810c/src/Aspire.Hosting/Extensions/ProjectResourceBuilderExtensions.cs#L24
MauiAppBuilder
https://github.com/dotnet/maui/blob/c5f3528e48055d3f75f98bf9037220132b56725e/src/Core/src/Hosting/MauiAppBuilder.cs
Am I on the right track?
Being able to add any client to Aspire would be really nice feature for not-only-web-distributed-app development.

This isn't supported as yet. Thanks for trying it though as it has come up in discussion. The focus so far has been on the server side only not clients.

This isn't supported as yet.

Any timeframe? No commitement. Just asking.

Thanks for trying it though as it has come up in discussion.

.NET@MS? I was guilty as charged for asking question.

The focus so far has been on the server side only not clients.

I created issue in Maui repo to and will discuss what needs to be done on Maui side. Thanks for the feedback.

@DamianEdwards any ideas where this should go?

We have a sample of this working with WPF and WinForms apps and the MAUI team is investigating what this could look like for MAUI apps. Adding references to MAUI projects from the AppHost project should be unblocked in preview 3 so the focus likely needs to shift to exploring guidance for integrating Microsoft.Extensions.Hosting and friends into MAUI projects in an idiomatic fashion.
@jamesmontemagno

If there is a working sample at some point then yeah I would put in https://github.com/dotnet/aspire-samples/tree/main/samples
I think that we need to have guidance though for client app dev.
I believe there is work to do in .NET MAUI itself and most likely this ticket could be moved if that is the case?


v3 different spacing of italic kanji when switching CHTML to SVG

Steps to Reproduce:

use chtml renderer, \textit{數學分析}
switch to svg
observe the spacing is different

Screen recording

Technical details:

MathJax Version: 3.2.2
Browser: Firefox

I am the default MathJax configuration, and loading MathJax via
<script<EMAIL_ADDRESS>\(\textit{數學分析}\)

Supporting information:

Please supply a link to a (live) minimal example page: https://jsbin.com/tigodegutu/edit?html,output

This is due to the fact that CHTML output groups characters that are not in the MathJax fonts into a single DOM element, while SVG output does not.  This is fixed in v4.  For now, if you set mtextInheritFont: true in the chtml and svg blocks of your MathJax configuration, that will cause the spacing to be the same.


Boot time reduction - Wire.setClock(400000)

The GSL1680 managed to work in my tests with more than 400kHz, so it may be interesting to add this instruction to the code.
GSL1680.cpp
    Wire.begin();

    Wire.setClock(400000); // 4x faster than standard 100 kHz

Nice, good find. I think it's a parameter that depend on both GSL1680 and the board used so I'm not sure this should be added to the driver itself but it could be a great addition to the README.md


Unable to generate commit message for staged changes

Current Behavior
The system is not able to generate git commit messages for files that are in the staged changes area.
Expected Behavior
Should be able to analyze staged files and generate appropriate commit messages based on the changes.
Possible Solution
Need to implement functionality to:

Read staged files list using git commands
Parse the changes in staged files
Generate commit message based on the analyzed changes

Thanks for opening the issue. Could you please confirm if you are using the latest version of the vs code extension? I pushed an update earlier today to fix a bug related to this.

Issue resolved, but discovered a new concern.
Current Status
✅ Generation of commit messages for staged changes is now supported
New Issue
Currently, commit messages are generated separately for each file, which leads to:

Unable to generate a unified, contextual commit message for multiple related file changes
When multiple files belong to the same feature change, commit messages become fragmented
Lacks understanding of the overall change context

Suggested Improvements
Consider optimizing the algorithm to:

Analyze changes across all staged files
Understand relationships between file changes
Generate a unified commit message that summarizes all related changes

Would you like me to create a new issue for tracking this new behavior?


Change request of bootstrap/docs/_data/translations.yml

We have translated the whole documentation into Turkish. We request you to add a link into "Translations" part of "Getting Started" page.
You can reach our web site: www.trbootstrap.com
Regards,
Meftun.

@meftunc What would be the correct translation for "Bootstrap in Turkish"? Google Translate says "Türkçe Bootstrap". We'll be using this as a title for the hyperlink to your website.

Yes "Türkçe Bootstrap" is the correct translation.


Prebuilds and build scripts

Currently windows and linux x64 prebuilds with CUDA are available. It would be nice to support more backends and arch/platform combinations - but also leave an escape hatch for anybody wanting to do builds themselves, for greater flexibility.
Some of the difficulties I know of are:

CUDA prebuilds are huge and can easily hit npm package size limit.
Total size is multiplied by the platform/arch combinations we want to ship (I think the download on install alleviates this, but they're still pretty large?)
It looks like separate Vulkan and CUDA builds are necessary as well, so that would multiply the amount of prebuilds again (but Vulkan bins are not that large fortunately)
Upstream changes frequently and prebuilds might be permanently out of date.

@giladgd created a very thoughtful (best of all worlds?) solution for that over at withcatai/node-llama-cpp - could take inspiration from it. Maybe you're interested in collaborating or sharing some wisdom on this, Gilad?
The gist of it, as far as I read it:

node-llama-cpp publishes x separate prebuild packages, all of them containing platform/arch conditionals in their package.json's. Backends are split into different packages as well.
At runtime user decides which prebuild - or custom build - should be require'd
For custom builds theres cli commands to download a llama.cpp release and build it with cmake-js.

@iimez I have plans to refactor node-llama-cpp to extract a lot of functionality from it that's responsible for handling the native parts as well as ggml-related custom integrations to an another library to facilitate making great bindings for other AI libraries.
I still have a lot planned for node-llama-cpp which takes most of my time, but I started building many things in a way that I can later convert to be more generic and interoperable with other libraries.
It's not practical to reuse most of the code in node-llama-cpp yet though, as most of it is still extremely integrated around llama.cpp specifically.
A major feature I'm currently working on is smart and automatic resource management - models consume a lot of memory and are compute-intensive, and people just want to use models without messing with loading and unloading things from memory or customizing parameters.
I'm working on a solution that can orchestrate and prioritize work, and balance many parameters (such as GPU layers, context size, etc.) automatically and dynamically, and load and unload things from memory as needed to do all the things the user want it to do in a performant and optimized way.
node-llama-cpp already does the part of balancing all the parameters, but it doesn't do all the orchestration stuff yet.
Ideally, I'd like to have all ggml-based libraries share the same orchestrator so you can use models from different libraries simultaneously on a single machine, even if the machine is resource-constrained.
I've already looked at the stable-diffusion.cpp codebase and started playing around with it to create node-stable-diffusion, but stopped since I realized that the orchestration thing has to be finished first.
Once I do the aforementioned refactor to node-llama-cpp, I'd be happy to help you use it to bind to stable-diffusion.cpp.
Regarding the prebuilds, it takes a lot of trial and error to ensure the prebuilds can actually run on all platforms.
I had to ensure there are no local libraries that are dynamically linked, and that the libraries that are used are compiled with an older version that's available on most platforms (like glibc, for example).
There's no alternative to manually testing on many machines and machine configurations, and it's important to retain access to those machines so you can ensure changes to the build process don't break the prebuilt binaries on such machines.
It's hard to set up tests for this as part of the CI, since CIs with GPUs are expensive and CIs are also usually more capable machines that don't represent the average user.
I constantly keep up with changes in llama.cpp to track external library dependency changes and ensure no additional dependencies are added if they can be circumvented.
For example, there was a PR that was about to introduce the use of Python in the build process and I helped replace it with cpp code to ensure there's no need for Python.
I hope this helps.

Thanks guys, yeah it's a challenging problem for sure. I would totally be open to using an existing solution like @giladgd 's once it's working, since TBH dealing with building and packaging has been like 90% of the work of getting this stood up. I wrote the NAPI code in like a day, everything else was all GH actions and npm wrangling.
Linux ABI problems are definitely an issue with prebuilds. I'm a C++ dev in my day job so I've dealt with issues on shipping binaries. I think to really make it robust you would need to use something like https://github.com/ValveSoftware/steam-runtime. But maybe that's overkill? Windows is actually not too bad luckily since the ABI is very stable, but I have no idea about macOS (or maybe nobody practically cares about that?)
I noticed pkg-prebuilds lets you specify different binary flavors so I was thinking of exploring using that to support Vulkan vs CUDA, etc in one package but the NPM package size limits are definitely an issue there. I'm already downloading the BLAS binaries from https://developer.download.nvidia.com/compute/cuda/redist in postinstall to avoid hitting the max size.
Also, just full disclosure this is a part time hobby project for me that I created just because there was no existing node bindings and I wanted to mess around with using it in a personal project. I'm happy to take contributions but I don't want to overpromise how much time I'll have, so this repo doesn't have to be the canonical node stable-diffusion.cpp bindings. You are welcome to go your own direction (via fork or from scratch), that was also why I didn't publish it to npm as an unscoped package. I didn't want to steal the name from somebody doing a more serious project. :)

@giladgd It does help, and is interesting. Thanks taking the time sharing. I believe you're right in that orchestration is crucial. Specific solutions that wire up combinations of smaller specialist models often seem to beat big generalists in cost, sometimes in speed or accuracy, some cases in all regards. And being able to do that efficiently on a single machine has a whole list of further upsides. Looking forward to all the things to be cooked and appreciate your work!
@lmagder No worries, not meaning to put more load on you. I don't think there is need to go the node-llama-cpp distance. I just found your bindings useful and while I'm on it I might as well help improving them. Steam runtime would add a virtualization layer? Seems like a risky experiment, but I don't know enough to judge haha
Been thinking a bit, a good effort/usability compromise might be:

Limit to prebuilds we can test on our machines and only as many as package limit allows. (I'm wondering, what is the limit exactly? I read 120M but couldnt find a reliable confirmation. @node-llama-cpp/linux-x64-cuda is 360M)
Offer an easy way to run a custom build with cmake-js (and/or, improve the postinstall script), allowing to specify the backend explicitly or detecting the best one automatically.

This should allow to use all the backends stable-diffusion.cpp supports without having to fork in order to modify the CMakeLists.
Let me know if you like the direction, happy to dig a bit deeper and contribute a PR for that sometime.
One thing that this doesnt solve is that users still wouldn't be able to choose between CPU/GPU at runtime (would have to decide at buildtime). That could be a future upgrade though.

Yeah it would be overkill :) I don't think using the Steam runtime directly necessarily is the way to go, just more of an example of one way to solve this problem since Steam has the same issue of distributing GPU-using binaries.
I think the original steam runtime version was like a container image you build in which has very old versions of things like glibc, since often Linux libraries are compatible with older binaries, but not newer ones, so you need to build against the oldest version you want to run on even if you would never want to use that for a development machine. Really glibc is the only library you can't statically link, but they have certain guarantees. Practically for us, also the NAPI, but luckily that is similarly backward-ABI-stable based on NAPI_VERSION. The GLIBC_x.y symbols are basically their version of NAPI_VERSION. This is kind of viral when it comes to other binaries since they all depend on glibc which is why SR has more stuff.
That said, I think they have moved to actual containers even at runtime in later versions, so maybe this approach doesn't scale? although they need to support GUI apps which is harder.

Limit to prebuilds we can test on our machines and only as many as package limit allows. (I'm wondering, what is the limit exactly? I read 120M but couldnt find a reliable confirmation. @node-llama-cpp/linux-x64-cuda is 360M)

I think it's around 100MB at least that's what I found. Weirdly it's not actually a hard limit but at some point it stores the tarball as Base64 in a JS string while uploading it and the limit actually comes from the max length of a string in Node. At least that was where it failed for me. One part here which is weird specifically is that 90% of our size here is actually CUDA binaries embedded in the overall binary which have some unique properties:

There are mostly the same platform to platform so if we could compress the Windows .dll and Linux .so together somehow it would be a lot smaller. We're shipping copies of the same bytes I think.
The size depends a lot on what architectures you target. CUDA binaries are fat binaries so they can contain any number of copies of the code for different GPU architectures (eg RTX 30x0 vs RTX 40x0). We could ship PTX-only binaries (which is something akin to SPRIV under the hood) which is more compatible at the cost of some runtime performance/loading time. Not sure what the tradeoff here is though. Unfortunately PTX is still versioned similar to D3D shader models so you either need to pick a conservative baseline and possibly leave performance on the table due to not using new features or ship multiple PTX blobs.
the NV BLAS libraries are massive (which is why I'm downloading them on postinstall) because they contain blobs for every supported GPU. NV has a tool: nvprune to remove some blobs from a binary but unfortunately it doesn't work on Windows DLLs and they don't provide a static BLAS lib on Windows. If we didn't use cuBLAS this would be a huge space savings, but unfortunately as the GGML folks found, cuBLAS is actually really fast and it's not trivial to replicate it. (and maybe it's big because it has to be?)

Open to ideas here. Also if the VK backend performs basically the same then maybe we just don't bother with CUDA? I'm not sure, usually it's not the case though unfortunately.
I think we could build on a runner that has a older Ubuntu version with an old enough glibc and if we try to statically link as much as we can then possibly it's fairly compatible? I know the CUDA Runtime ABI (libcudart.so) is not stable, which is why you see like PyTorch 118 vs 12, etc. but the CUDA driver API (libnvcuda.so) is stable since it ships as part of the driver so an app linking against an old libnvcuda.so will work on all future ones as long as you statically link the runtime.

Offer an easy way to run a custom build with cmake-js (and/or, improve the postinstall script), allowing to specify the backend explicitly or detecting the best one automatically.

Sounds good to me!

One thing that this doesnt solve is that users still wouldn't be able to choose between CPU/GPU at runtime (would have to decide at buildtime). That could be a future upgrade though.

Weirdly this is the one config the GGML lib already supports dynamically since it always builds the CPU fallback. That's why I did the delay load stuff with implib-so so if you run the current release on a machine with no CUDA libs it will still work and just fall back to the CPU since it can gracefully skip that part if the init fails.
But yeah overall the direction you're proposing sounds good to me if you want to work on it 👍


Remove tm-db use from indexer

added prefix iterator support to store
replaced tm-db dependency with store package in indexer
bonus: indexer now use the same KV store instance as rest of optimint

@jbowen93 this PR should unblock you on indexer/tm-db issue.

I can confirm this unblocks me here!

"indexer now use the same KV store instance as rest of optimint" could this have any downsides? Does tendermint also use the same DB instance for the indexer as the rest?

Separate database is easier to remove, if needed.  Tendermint is leaning into removing indexing code from codebase completely, as "it's not the nodes job to index externally used data".


laravel-shopify install fails issue with basic-shopify-api

It asks for 4.0 version of basic-shopify-api , but the current one is 5.1
@ohmybrew

What's the error?

@ohmybrew I installed ohmybrew/basic-shopify-api first and then I tried to install the latest version of laravel-shopify it throws an error, I won't say it as bug for sure but updating dependency will be better

Oh you had conflicting composer entries by doing that and it got confused. Stripping out basic-shopify-api and upping laravel-shopify to ~6.0 whould work fine and resolve.

@ohmybrew please have a look session termination and shopify plan based billing Please merge the pull request (https://github.com/ohmybrew/laravel-shopify/pull/160)

Please open a new issue for that.


style: 2021-09-20 linter warnings batch 17 / 26; part 2

This is the UPDATED list of linter warnings that are avaliable as of 06-21-22! @alec-p-hong
Description
As of today (21s of September, 2022) I have sectioned off issue #1366 into chunks of "10" based on the IDs that the linters were originally given. I've gone through them and have sectioned it off by  1 - 10 but some linter warnings from the orignal issue (ex. linter warning 28), do not exist so not all the PRs will have 10 linter warnings at a time.
From the original issue:
For example if an issue has 1 / 26 in it's title, that's batch number one, meaning that the linter warnings that needs to be fixed in the scope of that task are the ones with IDs of 1 to 10, inclusive, as in 1,2,3,4,5,6,7,8,9,10.
For 2 / 26 in the title, that's batch #2 and the corresponding warnings IDs in the main table are therefore: 11,12,13,14,15,16,17,18,19,20.
For 3 / 26 in the title, that's batch #3 you get the point...
Acceptance Criteria

Each linter warning is either fixed or a specific new issue is created aimed at exactly that one linter warning where applicable: If fixing a linter warning requires a larger refactoring of the codebase, then it is justifiable to break it out into it's own GH task.
The pull request submitted links to all (if any) additional issues that were created for the linter warnings that did not fit in the scope of the issue.

Full List of Linter Warnings
Important: Do not fix all of these, just a subset of them as per the guidelines in the Description section above. Otherwise your pull request might get rejected due to unfixable conflicts.

ID
Description

11
./examples/cactus-example-supply-chain-business-logic-plugin/src/main/typescript/business-logic-plugin/web-services/list-bamboo-harvest-endpoint.ts: line 38, col 3, Warning - Missing return type on function. (@typescript-eslint/explicit-module-boundary-types)

12
./examples/cactus-example-supply-chain-business-logic-plugin/src/main/typescript/business-logic-plugin/web-services/list-bamboo-harvest-endpoint.ts: line 58, col 3, Warning - Missing return type on function. (@typescript-eslint/explicit-module-boundary-types)

13
./examples/cactus-example-supply-chain-business-logic-plugin/src/main/typescript/business-logic-plugin/web-services/list-bookshelf-endpoint.ts: line 56, col 3, Warning - Missing return type on function. (@typescript-eslint/explicit-module-boundary-types)

14
./examples/cactus-example-supply-chain-business-logic-plugin/src/main/typescript/business-logic-plugin/web-services/list-shipment-endpoint.ts: line 40, col 3, Warning - Missing return type on function. (@typescript-eslint/explicit-module-boundary-types)

15
./examples/cactus-example-supply-chain-business-logic-plugin/src/main/typescript/model/converter/bamboo-harvest-converter.ts: line 24, col 39, Warning - Unexpected any. Specify a different type. (@typescript-eslint/no-explicit-any)

16
./examples/cactus-example-supply-chain-business-logic-plugin/src/main/typescript/model/converter/bamboo-harvest-converter.ts: line 34, col 53, Warning - Unexpected any. Specify a different type. (@typescript-eslint/no-explicit-any)

17
./examples/cactus-example-supply-chain-business-logic-plugin/src/main/typescript/model/converter/bookshelf-converter.ts: line 22, col 39, Warning - Unexpected any. Specify a different type. (@typescript-eslint/no-explicit-any)

18
./examples/cactus-example-supply-chain-business-logic-plugin/src/main/typescript/model/converter/bookshelf-converter.ts: line 30, col 53, Warning - Unexpected any.  Specify a different type. (@typescript-eslint/no-explicit-any)

hi @petermetz, please assign this to me.

hi @petermetz, please assign this to me.

@adrianbatuto Done, thank you!


View 9 cameras on page web simultaneously

I currently have several cameras with RSTP, so I tried to run the Stream object instance on the server more than once.
After consulting the database, I fill in the data to create the corresponding RTSP URL.
However, it only displays the first and the others do not.
I will want to view 9 cameras on page web simultaneously.   Is that possible with node-rtsp-stream?
Then, in the stream object even creating for 9 cameras, it only displays the first one.

Currently with the project as is, you'd need to open 9 separate ports with 9 separate servers for 9 separate streams. This isn't optimal and is getting pretty heavily requested, so I may consider adding this, but it'll probably be a while. It would need a significant rewrite and need backwards compatibility.
See #56


Split v2 and v3

Hi @moteus, I tried this on linux but I am getting ~20 failed assertions. Same for not modified and modified code. So I assume these changes are ok?
Usually stuff like
 17) Failure (read_stream_callback.test_abort_01):
./test_easy.lua:577: nil expected but was [LcURL Easy (0x55f67b209c98)]

 18) Failure (read_stream_callback.test_pass_01):
./test_easy.lua:625: nil expected but was [LcURL Easy (0x55f67b25aa18)]

 19) Failure (read_stream_callback.test_pause):
./test_easy.lua:655: table expected but was nil
./test_easy.lua:655: 1

 20) Failure (read_stream_callback.test_co_multi):
./test_easy.lua:546: table expected but was nil
./test_easy.lua:546: 1

 21) Failure (read_stream_callback.test_co):
./test_easy.lua:566: table expected but was nil
./test_easy.lua:566: 1

 22) Failure (read_stream_callback.test):
./test_easy.lua:509: table expected but was nil
./test_easy.lua:509: 1

I have hard to test on windows. Any chance you could test it?

Lua code style mismatch

Hi @zhaozg, yes thats another thing I wanted to discus. The code did not have any indentation so it was hard to back track scopes. So I indented it. Do you want me to match original style?

Hi, indeed code style was the issue. I matched code style with original cURL.lua and now all test are passing. So we should be ready to merge 🙂

And could you release after this PR (0.3.14)?

We migrated to lua-corehttp. Closing.


Modular Thread Runner that assembles everything

REFACTOR TO SEPERATE THE CONCERNS MORE – INSTEAD OF HAVING EVERYTHING IN RUN_THREAD & LIKE NESTED & STUFF --> Lets create a MODULAR system. Where we have a THREAD RUNNER which assembles all the parts (
Current run_thread = thread_call_llm_api --> instead of doing all the things it will just return the Direct response from the underlying make_llm_api_call
parse_response (& tool_response)
execute_tool_calls
add_result of tool_calls
Merged into THREAD RUNNER Class
Do you understand what I am trying to do? the goal is so its modular and you can self-assemble with different strategy --> different strategy for example XML-parsing from the response to get the tool calls you want to execute. Then maybe not adding the message as role tool – but maybe as like a user message or by modifying previous message etc.. ec...
Refactor to thread_manager be just crud ops etc... & the simple 'call' of that thread which will return the make_llm_api_call message.
Then have a general interface for how the responser parser should look like (both for stream & for non-stream. --> it esentially gets all the content & the identified tool calls
& Then have Tool Call interface & standard imp which executes the tool Call & returns information
Which then can be decided how it should be added to the Message Thread --> either as its currently with like Role = Tool etc... or maybe as a modifyed message etc...
REFACTOR EVERYTHING TO CREATE THESE INTERFACES & REFACTOR OUR ENTIRE CURRENT APPROACH INTO IT. (NO NEW STRATEGIES, APPROACHES, JUST OUR CURRENT ONE) – SO WE HAVE A MODULAR SYSTEM WHERE U CAN SWITCH OUT HOW U HANDLE THESE THINGS.

Introduce a Run_thread within the ThreadManager

run_thread_completion() to get LLM Response
response_tool_parser (Parses the run_thread_completion llm response) into content & tools to be executed)
tool_executor (executes tools and gets the tool results)
results_adder (adds the assistant content & tool results)

For the Tool_Executor it also has to consider the tool_schema. Currently we only have the 1x tool schema tool_openapi_schema, but lets also have tool_custom_schema which then can be used variably.
I want run_thread basically to be able to be modular if you change the response_tool_parser, the tool_executor and result_adder.
Create interfaces for all 3 (response_tool_parser, tool_executor, results_adder) of them.
Use the current response_processor, the tool_executor, tool_parser LOGIC to create the first response_tool_parser, tool_executor, results_adder
The Goal is to have the simplest possible implementation with the open flexibility of introducing new ways to approach the entire Processing – for example by doing XML parsing.  So you can change the response_tool_parser, tool_executor & results_adder as you wish.
YOU THINK OF THE BEST POSSIBLE WAY TO APPROACH THIS, HOW TO CALL THINGS, THE SEMANTICS, THE APPROACH & IMPLEMENTATION.
REFACTOR HEAVILY


[Build System: CMake] Cleanup the install_name_dir special-casing for XCTest in add_swift_target_library.

@swift-ci please smoke test


X-axis label

I'm not sure why this app is testing the observe whether the observed difference in group A (circle) significantly differs from the observed difference in group B (square). Would it not be easier to just make the x-axis some raw measurement  (e.g., scores)?

this made total sense! I have re-organized the app. It now calculates one mean, and plots it directly. This makes more sense (it difference from my original idea, but this is better!).


[Feature Request] Ubuntu support

Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
Would be nice to have this easily available for ubuntu. E.g. as a PPA, or in the long-term in the repositories.
I know not everyone uses ubuntu, but it is the most popular desktop distro, so making this app easily available for ubuntu would be awesome.
Describe alternatives you've considered
n/a
Additional context
n/a

You can install brew on ubuntu and use brew to install lazydocker.

IMO snapcraft should be the way to go for ubuntu
And goreleaser which this project uses to create release supports snaps

IMO snapcraft should be the way to go for ubuntu

If ubuntu is considered, please consider the regular way first (a deb, not a snap) and then possible consider snap. Not everyone uses snap for a variety of very good reasons (see StackOverflow for that discussion). Especially for sysadmins, snap has a poor reputation.

@lonix1 If possible can you point me to that discussion, i would like to learn

Lots on this topic at StackExchange, and on snapcraft discussion boards. Top reason is snap does autoupdate whether you like it or not (you can delay it but not stop it, exactly like Windows and Mac).

How can we move forward with this?


Rename _get_athrophic_answer to _get_answer in anthropic llm class

🐛 Describe the bug
In file https://github.com/embedchain/embedchain/blob/main/embedchain/llm/antrophic.py, rename _get_anthropic_answer to_get_answer.
Also make sure that everything related to this work and doesn't break.

Hello, @taranjeet I would like to solve this issue.

Hey @Rhythm-08 , sure assigned it to you.


I was banned like 9000 years ago
Probably for being toxic and sending memz virus

A human lives for like 100 years, 9000 years ago the internet didn't even exist... 9000 years ago i dont even think the roman empire existed

A human lives for like 100 years, 9000 years ago the internet didn't even exist... 9000 years ago i dont even think the roman empire existed

ok

I'm about to watch a movie, any reccomendations?

idk if this would be called a movie but "The Last Kingdom" but heh who cares?


Bot lagging as soon as i start @gamer

Steps to Reproduce (as best as you can)
Start @gamer 1.20.6 Alto Clef in a Normal single player world, it will start lagging and have 1fps
Other mods (if applicable)
Sodium and Lithium
Difficulty: Normal
Estimated Time Required: 15 Minutes
Once development starts.

*Only when breaking blocks.

Hello, are you using the latest version? (0.18.4 currently)

Yes


Disabling progress bars

Adds code to handle disabling progress bars via an SCT_PROGRESS_BAR environment variable that a user can set to off, no, or false to disable progress bars.
Adds a function sct_progress_bar which is a thin wrapper around tqdm that respects the environment variable, muffling the progress bar if necessary.
Also sets SCT_PROGRESS_BAR to off in sct_run_batch so programs run by the batch script won't produce extra progress bar output, fixing #2724

testing with spine-generic pipeline. Example below (for deepseg_sc).
before 🙁
Resampling the segmentation to the native image resolution using linear interpolation...
Binarizing the resampled segmentation...
Removing small objects above slice #160
Removing small objects above slice #160

Compute shape analysis:   0%|                         | 0/161 [00:00<?, ?iter/s]
Compute shape analysis:   7%|#1             | 12/161 [00:00<00:01, 116.29iter/s]
Compute shape analysis:  19%|##7            | 30/161 [00:00<00:01, 129.05iter/s]
Compute shape analysis:  30%|####4          | 48/161 [00:00<00:00, 140.69iter/s]
Compute shape analysis:  39%|#####8         | 63/161 [00:00<00:00, 143.28iter/s]
Compute shape analysis:  48%|#######2       | 78/161 [00:00<00:00, 143.57iter/s]
Compute shape analysis:  58%|########6      | 93/161 [00:00<00:00, 142.20iter/s]
Compute shape analysis:  66%|#########3    | 107/161 [00:00<00:00, 131.70iter/s]
Compute shape analysis:  75%|##########4   | 120/161 [00:00<00:00, 113.16iter/s]
Compute shape analysis:  82%|###########4  | 132/161 [00:01<00:00, 101.03iter/s]
Compute shape analysis:  89%|############4 | 143/161 [00:01<00:00, 102.08iter/s]
Compute shape analysis:  96%|#############4| 155/161 [00:01<00:00, 105.71iter/s]
Compute shape analysis: 100%|##############| 161/161 [00:01<00:00, 122.72iter/s]Found isolated voxels on slice 0, Removing them
Remove temporary files...
rm -rf /tmp/sct-20200522200906.653731-0tyw8atl

after 😊
Resampling the segmentation to the native image resolution using linear interpolation...
Binarizing the resampled segmentation...
Removing small objects above slice #229
Found isolated voxels on slice 0, Removing them
Remove temporary files...
rm -rf /var/folders/s8/4qnm5q1n261ch35b5kkclsb00000gn/T/sct-20200628163624.071602-_94w95de


Should matching non-existent attributes fail?

tl;dr Passing an attribute to match with a bad/unknown name passes silently.
If you have a typo in attribute name  passed to match the test will pass, which is a little surprising. I would have expected this to fail. Feels a little dangerous to silently pass this case.
Happy to flesh this one out if you have any pointers. A naive solution might be to count the keys in the hash passed to match and ensure we're checking that many attributes in matchCheckKeys in AttributeMatcher?

I guess I figured that if you declare an attr that should match and it is not an attribute then we ignore it.  Could be many reasons for being bogus, but you make an interesting point.  Why not let the user know.  I think the best thing that I can think of right now is we issue a warning, but don't try and change how we match.
So in this case you would see the warning "That bogus attribute is not found on that model"
And that way they can see the warning in the console and fix it rather than us trying to be clever.
What you think about that plan?

I think this makes perfect sense! I don't think we should be any smarter in the matching.
How would you feel about an assertion check? Too much?

You know. I think you have something here, because if you are going to put something in match you expect it to do something, so therefore an assertion would make sense.
I use warnings to tell you if your trait is not found, but now that I think of it, an assertion would be better there as well.
So .. I second the motion on assertion.


Custom controls for editing inside grid

Is there any way to implement editing inside grid? For example to add custom controls like dropdown, input field or modal to open on click.

@superTeemo1 Thank you for using BlazorBootstrap. Please check the example here: https://github.com/vikramlearning/blazorbootstrap-examples


Implement LendingIterator::take_while

I can never have enough of these methods

And we are SO HAPPY about it!


chore(db): only enable posgres cleanup timer on nodes that have admin listeners

Summary
PR #10389 and #10331 pursued different ways to improve our situation with cleanup timers.
This PR makes it so that it only happens on nodes that have admin listeners. Fairly simple but may already cover the majority of problem space.

Perhaps alternative to #10389 and #10331 is this PR. We can create additional PR that reduces the deleted row count to say 50000 like proposed in mentioned PRs.


Update to Elm 0.19.

Use elm-upgrade, then update the resulting code to compile and work again.

@FranklinChen thanks!


Add collision check for query string matches

Currently, the collision check only parses and verifies that paths do not collide (in the matches section of ORM rules). We need to be sure that query strings (used with keyword query in the matches section) do not collide as well. There is also a need to check for collision for fields that may be used in matches in the future, for example headers.
In this proposal I assume the possibility to match by headers already exist, for a more complete example.
The idea is to generate an FSM for each matches-element and then merge them all in the same way as done for paths. But the FSM for paths should not be merged with the FSM for query or headers. There will be a sub-FSM for each matches type for every rule. So paths FSM:s are merged with other paths FSM:s to become a single paths FSM for the whole rule, query FSM:s are merged with other query FSM:s to become a single query FSM for the whole rule, etc. I think it will be easier to implement and give us greater flexibility and better ability to debug, if we keep them separate.
Take this example rule matching:
matches: # rule A
  - all:
      - paths: #A1
          exact: 'path'
      - query: #A2
          parameter: 'key'
          exact: 'value'
      - headers: #A3
          field: 'field'
          value: 'value'

It would then result in the following regular expressions for each separate matches element under all (N/A is used when there is no value set):

match element
#A1 sub-FSM
#A2 sub-FSM
#A3 sub-FSM

paths
path
N/A
N/A

query
N/A
key=value
N/A

headers
N/A
N/A
field=value

When combining values with nonexisting values the results are:
FIRST_VALUE OR SECOND_VALUE = ANOTHER_VALUE
FIRST_VALUE OR N/A = FIRST_VALUE
N/A OR SECOND_VALUE = SECOND_VALUE
N/A OR N/A = N/A
FIRST_VALUE AND SECOND_VALUE = ANOTHER_VALUE
FIRST_VALUE AND N/A = FIRST_VALUE
N/A AND SECOND_VALUE = SECOND_VALUE
N/A AND N/A = N/A
For the rule as a whole it will be (after applying the logical AND imposed by all):

match element
#A1 sub-FSM
#A2 sub-FSM
#A3 sub-FSM
rule A FSM

paths
path
N/A
N/A
path

query
N/A
key=value
N/A
key=value

headers
N/A
N/A
field=value
field=value

If there is a sub-FSM that is still N/A when all matches in a rule have been evaluated and combined, it must be set to .* to match all, because it could be anything. For example:
matches: # rule B
  - all:
      - paths: #B1
          exact: 'path'
      - query: #B2
          parameter: 'key'
          exact: 'value'

match element
#B1 sub-FSM
#B2 sub-FSM
rule B FSM
final rule B FSM

paths
path
N/A
path
path

query
N/A
key=value
key=value
key=value

headers
N/A
N/A
N/A
.*

An ORM rule collides with another ORM rule if every sub-FSM (paths, query, headers) collides with its counterpart in the other rule.

I got into trouble trying to create regular expressions (and greenery FSM:s) for query matches. This would require that we can split the query string into elements with "param=query", which I can see no solution for in Varnish. Sure, this is possible to do in some way but there is a deeper problem.
A query string does not have to use the "param=value" syntax according to the RFC (RFC3986 , so the current ORM query match syntax makes false assumptions.
I believe we need to change the query match syntax to drop the "param=value" way of thinking, and go simpler to match by the whole query string instead. Both to support the RFC and to achieve collision detection.
I suggest a syntax identical to paths matches; something like:
- query:
    exact: 'param=value&something=else'

- query:
    regex: '(.*&)?param=(.*)(&.*)?'

To make this more usable, it's probably wise to support matching against sorted query parameters (using https://varnish-cache.org/docs/6.2/reference/vmod_std.html#vmod-std-querysort), but that may fit better in another issue.


Line-delimited JSON Request

It would be very nice if this could read line-delimited JSON. Right now it only reads the first line of such files.
Edit: Duplicate of #23 as the title did not catch my attention immediately.

Duplicate of #12


fix(button): merge props value

Overview
https://codesandbox.io/s/evergreen-ui-button-yhwd8?file=/src/App.js
Merge props value (boxProps and restProps).
Initialize the undefined value in restProps according to boxProps.
more:
I suspect that all components that use resetProps after boxProps have problems🤔
Screenshots (if applicable)

Documentation

[ ] Updated Typescript types and/or component PropTypes
[ ] Added / modified component docs
[ ] Added / modified Storybook stories

Hey there - thanks for the PR! There are a few things to unpack here:

In the FilePicker example, we should be setting a default height or size on the FilePicker component and passing that down to the underlying <TextInput /> and <Button />

<Button height={undefined} /> correctly unsets height - and this is expected behavior; we don't want to merge in the theme's provided height with an explicit unsetting of height. The bigger issue though is that we also set a lineHeight on the <Button />, and that's what's giving the appearance of the button having a bigger height than it should be. This is a pretty legit issue I'll look into some time later today.

Going to close this out for now - but let us know if you have any other questions!

Hi @akleiner2
Thank you for your reply.
I think <Button height={undefined} /> and <Button height={null} /> are different.
And we can get the default value from boxProps.
console.log(lodash.merge({}, { a: 1 }, { a: undefined })); // {a: 1}
console.log(lodash.merge({}, { a: 1 }, { a: null }));      // {a: null}


[FEATURE-Issue-32] Enhanced HTML Templating Utilities for html/template

Enhance Go’s html/template library by incorporating a comprehensive set of utility functions.
This will enable more expressive and powerful templating, making it easier to handle inline conditionals, loops, and a variety of string, numeric, and date operations within templates.
Add Documentation for templates package

Summary by CodeRabbit

New Features

Introduced a "Templates" section in the documentation, detailing dynamic rendering capabilities for HTML and text templates.
Added new functions for rendering HTML and text templates, enhancing the Utils library's functionality.
Included a variety of custom utility functions for string manipulation, date formatting, arithmetic operations, and debugging.

Bug Fixes

Improved handling of HTML rendering with safe HTML output.

Tests

Implemented a comprehensive suite of tests for HTML template rendering to ensure functionality and correctness.

I should not be leaving any comments on a draft PR but IMO we should stick to same pattern as text templating.

Sorry for the confusion, but I thought I was following the same pattern as text templating. Could you clarify the deviation? Also should I be paying attention to the suggestions that coderabbitai makes on my PR, or should I just worry about your feedback?

Sorry for the confusion, but I thought I was following the same pattern as text templating. Could you clarify the deviation? Also should I be paying attention to the suggestions that coderabbitai makes on my PR, or should I just worry about your feedback?

The pattern I want to follow is to define custom funcs in custom func file and than add a parse func separately for HTML parsing. About the feedback from Coderabbit, you do not need to worry about that unless it's something too critical. That is for the help of reviewers, If we need something from suggestions, we will merge it as a new commit in the PR.


[State Sync] Add support for transaction streams to the Data Streaming Service.

Motivation
This PR adds support for bulk fetching transaction streams to the data streaming service. This allows subscribers to fetch all transactions between start and end indices, inclusive. To achieve this, the PR reuses much of the epoch ending stream implementation by introducing a new DataStreamTracker trait that all stream progress trackers can now implement. Given that we'll have more than 5 different types of streams, enum dispatch is used to wire the implementations to the stream tracker types.
The PR offers the following commits:

We add several small helper functions to the diem data client implementation.
We add 2 new unit tests that check that transaction streaming is supported.
We update the data streaming service to support transaction streams. This is where we introduce the new interface and epoch dispatch.
We update all the unit tests to use the new data stream tracker interface.

Once this PR lands, I'll add support for transaction output and account state streaming. These should be fairly straightforward now that we've refactored the implementation.
Have you read the Contributing Guidelines on pull requests?
Yes.
Test Plan
Two new unit tests have been added.
Related PRs
None, but this PR relates to: https://github.com/diem/diem/issues/8906

:broken_heart: Test Failed - ci-test

/land CI is being really flaky


[Operator] Support annotations for all operator created resources

Currently, only the Etcd Ingress and Pod resources are configurable with annotations. The TLS Secrets and ConfigMaps and Services should be also annotable.

Ideally also the statefulset created , this would have been useful to use "https://github.com/stakater/Reloader" to reload the stateful set on letsencrypt cert change.
To be honest this will not matter when https://github.com/banzaicloud/bank-vaults/issues/380 is done

To add to this it would also be useful set etcd pod annotations (for example using velero/restric for etcd backups) via https://github.com/coreos/etcd-operator/blob/master/doc/user/spec_examples.md#custom-pod-annotations


Allow setting of ksink

I would like to be able to set the K_SINK environment variable to enable the ability to publish cloud events when changes to the schema artifacts occur.  This will solve being able to trigger pipelines for instance to rebuild dependent services and perform automated integration testing to simplify the workflow for developers.
I am going to attempt a pull request using existing patterns for setting of env variables

This issue has been resolved, closing.


[Bug] Reduce font size for alt text of icons

This snap is captured on postman load. And it seems to reload the icons as well.
Isnt there someway to cache this icons or even use svg components.
Also, the text shown looks ugly.

Well, this looks ugly. We use Google Material Icon font. Let me see how it could be solved.

I afraid alt text size cannot be decreased. Since it's an attribute to the icon.
Currently we do have pre-caching for icon fonts import, anyway will look into make experience much more faster.