ARM Functions are not supported

Hi,
Quote
"A Resource Manager Template artifact supports the full use of Resource Manager functions in addition to getting a dynamic value through a blueprint parameter."
When using for example the 'array' function, it tells me that this is not supported.
#[error]This artifact is invalid. Error: 'The function 'array' is not valid.
{
"kind": "roleAssignment",
"properties": {
"displayName": "TnC-roleAssignment_reader_builtin",
"roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7",
"principalIds": "[array(parameters('Reader').readers)]"
}
}

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

ID: 7a01163e-064e-5489-b1fc-24908dc9daea
Version Independent ID: 134845e2-6f1d-a076-dc8e-f6c7b61deea0
Content: Azure Blueprints functions - Azure Blueprints
Content Source: articles/governance/blueprints/reference/blueprint-functions.md
Service: blueprints
GitHub Login: @DCtheGeek
Microsoft Alias: dacoulte

#assign:DCtheGeek

@SamirFarhat This looks related to your other question in #49353. If you look at the Example for parameter(), this can work. The parameter should be declared as type array and then should be passed directly to principalIds.  No need to wrap it with array() if it's already defined as an array.
@MicrosoftDocs/azure-cxp-triage Please label 'product-question' and #please-close.

Hi,
It's not related.
My question is 'Are all the ARM functions supported or not' like quoted above.
I can use array() or provide directly an Array, this is really our choice, so i don't think it's wrong to put it that way.
Let us reopen it please
Regards

It appears like it to me, but I may misunderstand what you are pointing out.  Calling parameters('Reader').readers indicates you are still trying to use an object as the parameter.  Can you share how you define the parameter in the Blueprint and the value you are passing to it so I understand better?

Hi,
I have explained it on https://github.com/MicrosoftDocs/azure-docs/issues/49353. My question here is different: Are all ARM Functions supported as 'blueprint ARM functions' ?

@alex-frankel If you could, this is the other issue I mentioned. Thanks!


recommend() method for ImplicitALSWrapperModel

Your Question
Hello!
I see that here is no usage of ImplicitALSWrapperModel's recommend() method. I see that rectools' recommend() fallbacks to something underlying called ImplicitRanker with custom implementation by RecTools. I wonder why is this behaviour used instead of the native implicit's recommend(). Also this implementation works a way longer than implicit's.
Operating System
No response
Python Version
No response
RecTools version
No response

Hi!
ImplicitRanker uses exactly the same method for scoring items as in implicit library, we are calling it directly: https://github.com/MobileTeleSystems/RecTools/blob/0be5e1592e06022109faf1d446c7aee82fbd9dfb/rectools/models/rank.py#L194
In implicit framework recommend just returns the results directly without any processing. Items in recommendations can still include already-seen items and repeated items. They will get neginf scores, but they are still present.
In our wrapper we process those results, apply filtering based on scores here: https://github.com/MobileTeleSystems/RecTools/blob/0be5e1592e06022109faf1d446c7aee82fbd9dfb/rectools/models/rank.py#L106
And after that we convert results to pandas.
So this is why our recommend is slower: we do some post-processing.

Yes, thank you. I see it works the same way and the speed should be the same. My speed problem was because the RecTools' ImplicitRanker implementation does not use the GPU. I was able to run predictions on the GPU with the patch:
--- a/rank.py 2024-10-30 16:03:51.376808529 +0300
+++ b/rank.py     2024-10-30 16:07:06.556808606 +0300
@@ -18,6 +18,7 @@
 from enum import Enum

 import implicit.cpu
+import implicit.gpu
 import numpy as np
 from implicit.cpu.matrix_factorization_base import _filter_items_from_sparse_matrix as filter_items_from_sparse_matrix
 from scipy import sparse
@@ -191,14 +192,22 @@

         real_k = min(k, object_factors.shape[0])

-        ids, scores = implicit.cpu.topk.topk(  # pylint: disable=c-extension-no-member
-            items=object_factors,
-            query=subject_factors,
-            k=real_k,
+        object_factors = implicit.gpu.Matrix(object_factors)
+        subject_factors = implicit.gpu.Matrix(subject_factors)
+        if object_norms is not None:
+            object_norms = implicit.gpu.Matrix(object_norms)
+        if filter_query_items is not None:
+            filter_query_items = implicit.gpu.COOMatrix(filter_query_items.tocoo())
+
+
+        ids, scores = implicit.gpu.KnnQuery().topk(  # pylint: disable=c-extension-no-member
+            object_factors,
+            subject_factors,
+            real_k,
             item_norms=object_norms,  # query norms for COSINE distance are applied afterwards
-            filter_query_items=filter_query_items,  # queries x objects csr matrix for getting neginf scores
-            filter_items=None,  # rectools doesn't support blacklist for now
-            num_threads=num_threads,
+            query_filter=filter_query_items,  # queries x objects csr matrix for getting neginf scores
+            item_filter=None,  # rectools doesn't support blacklist for now
+            # num_threads=num_threads,
         )

         if sorted_object_whitelist is not None:

@Waujito Thank you for sharing. It would be nice to have it out of the box so I've added this to our backlog.
If you feel like contributing - it would also be great. Please let me know :)

That's great. In case of any questions the fastest way for a reply is in our Telegram channel https://t.me/RecTools_Support

Hi! @Waujito we're still working on gpu support for all models. Found another thing: gpu ranking scores may significantly differ from cpu ranking scores in some cases. This is especially true for PureSVDModel. We are still researching the cause so decided to add models support for use_gpu in ImplicitRanker to the next release, not the current one. We hope will be quite soon.


Add "anonymous" referral code store

Use a 1 way hash (bcrypt or similar) to store the referee signed up and the code used. Add api for a user to submit a code and get back their total referee count.
Acceptance Criteria:

POST endpoint to submit a new referral code signup
GET endpoint to get total count of referee's based on a code
Migrate all existing users/codes from sendgrid & dynamodb
Deprecate old sign up funcs/stores/code.


feat: fully remove log analysis agent

Description
Resolves: https://github.com/terraform-ibm-modules/terraform-ibm-observability-agents/issues/407

Release required?

[ ] No release
[ ] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[x] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

/run pipeline

:tada: This PR is included in version 2.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


sqlite3 syntax errors with some names

Line 68 of database.py causes a syntax error if the player name contains quotes.

Solved by commit d855d67ce3f0047b5c43709199be18bd6a1678ab


How to record a Stereoscopic camera

Hi guys,
Thank you for this great plugin. I was wondering if you have any ideas about how to use it to record a stereoscopic camera? I am using the plugin, but the produced gift looks blurry because it is recording both viewports at one.
Thanks

Hi,
Thanks for the feedback.
I would try to record only 1 of the cameras. You can specify which camera to record in GetSocialCapture.cs file.

@gaborvass ,
Thank you for your reply. With Vuforia there is only 1 camera, the VRCamera. That is the camera I am trying to record :)

Thanks for the clarification. We haven't tested it with VR/AR games so far, it's on our road map.
I would try to implement something similar as mentioned here, in Using RenderTextures section: https://developer.vuforia.com/forum/faq/unity-how-can-i-capture-screen-shot

@gaborvass ,
Thank you for that hint. I am trying with https://docs.unity3d.com/ScriptReference/ScreenCapture.CaptureScreenshot.html , I will let you know if I succeed. Thank you for your support.


Ignore dangerouslySetInnerHTML during hydration

This matches React's behavior.
I can't find the issue right now but I will.

Coverage remained the same at 100.0% when pulling 7225588bad2e45e81490a7e27ec7fb61c7d5f732 on hydrate-dangerouslysetinnerhtml into e28e44c24ba1fbc81c513cecf0d7b74638429665 on master.

Looks like we'd need to remove the should hydrate with dangerouslySetInnerHTML test.

Might be worth adding a warning via preact/debug for this too.

Hey @developit, I updated the test that was failing and I was trying to see if I could add the warning part. But no idea how to detect this case, inside debug/. Any pointers?

Hey @developit
Is the intention to avoid reaplying innerHTML, or is it to strip away the content of VNodes with dangerouslySetInnerHTML?
When using SSR the current solution strips away all content rendered with dangerouslySetInnerHTML during hydration. This breaks 10.0.0-beta.2 for us.
We use dangerouslySetInnerHTML to render content from our CMS (and have been doing so for years). It renders perfectly on the server, but after 10.0.0-beta.2 the content is stripped away during hydration, essentially leaving the application blank.

@johannesodland Our future approach will to only attach event listeners in hydration and leave the DOM as is. That work is tracked in #1697


BacksolveAdjoint fails with Zygote

@MikeInnes do you happen to know what this is? The adjoint itself works fine, and for some reason this error shows up only in Zygote even though it's a "hardcoded adjoint"
using OrdinaryDiffEq, Flux, DiffEqFlux, Zygote, DiffEqSensitivity

x = Float32[2.; 0.]
tspan = (0.0f0,25.0f0)
dudt = Chain(Dense(2,50,tanh),Dense(50,2))
p = Flux.params(x,dudt)

Zygote.gradient(()->sum(neural_ode(dudt,x,tspan,Tsit5(),save_everystep=false,save_start=false,sensealg=BacksolveAdjoint())),p)

Can't differentiate gc_preserve_end expression
error(::String) at error.jl:33
getindex at essentials.jl:588 [inlined]
(::typeof(∂(getindex)))(::Nothing) at interface2.jl:0
iterate at essentials.jl:600 [inlined]
(::typeof(∂(iterate)))(::Nothing) at interface2.jl:0
_compute_eltype at tuple.jl:99 [inlined]
(::typeof(∂(_compute_eltype)))(::Nothing) at interface2.jl:0
eltype at tuple.jl:92 [inlined]
eltype at namedtuple.jl:157 [inlined]
Pairs at iterators.jl:169 [inlined]
pairs at iterators.jl:226 [inlined]
(::typeof(∂(pairs)))(::Nothing) at interface2.jl:0
#diffeq_adjoint at interface2.jl:0 [inlined]
(::typeof(∂(#diffeq_adjoint)))(::FillArrays.Fill{Float32,1,Tuple{Base.OneTo{Int64}}}) at interface2.jl:0
(::Zygote.var"#157#158"{typeof(∂(#diffeq_adjoint)),Tuple{NTuple{4,Nothing},Tuple{Nothing}}})(::FillArrays.Fill{Float32,1,Tuple{Base.OneTo{Int64}}}) at lib.jl:156
#297#back at adjoint.jl:49 [inlined]
#neural_ode#39 at neural_de.jl:28 [inlined]
(::typeof(∂(#neural_ode#39)))(::FillArrays.Fill{Float32,1,Tuple{Base.OneTo{Int64}}}) at interface2.jl:0
#157 at lib.jl:156 [inlined]
#297#back at adjoint.jl:49 [inlined]
#neural_ode at none:0 [inlined]
(::typeof(∂(#neural_ode)))(::FillArrays.Fill{Float32,1,Tuple{Base.OneTo{Int64}}}) at interface2.jl:0
#31 at neural_de.jl:30 [inlined]
(::typeof(∂(#31)))(::Float32) at interface2.jl:0
(::Zygote.var"#38#39"{Params,Zygote.Context,typeof(∂(#31))})(::Float32) at interface.jl:101
gradient(::Function, ::Params) at interface.jl:47
top-level scope at neural_de.jl:30

Something that diffeq_adjoint calls has a ccall or is not differentiable (or just needs an adjoint) for some other reason. Following the stack traces, that's coming from inside the pairs function, but I'm not sure if that's a DiffEqFlux thing or what.

We are defining the adjoint of diffeq_adjoint directly though, so Zygote shouldn't be tracing through there.

 If Zygote is ADing it, that suggests a possible signature mismatch, or similar.

Good point, I'll dig back into that after the chaos settles.

It looks like it just happens on any sufficiently large call, i.e. it's tolerance and save amount dependent. Does Zygote fail if the GC is required in the adjoint?

Reduced to the MWE: https://github.com/FluxML/Zygote.jl/issues/451

Can you post your manifest here?

Really it's just that Flux branch and this master. It might be easier to just release and use the latest releases. https://github.com/JuliaDiffEq/DiffEqFlux.jl/issues/104 makes it so my manifest is super messy right now.

Looks like concrete_solve worked around it.


Translate -shell usage on Mac OS

Translate -shell Mac OS terminal input trans command: parameter input error! For example, I typed "ls|trans en:zh "hello" in the terminal and it printed blank lines! Then type the correct command: ls| trans-no-auto -b :zh still displays blank lines! Need to restart the computer to solve! Sometimes it can't be solved! This is what reason! Can solve?
Translate Shell       <IP_ADDRESS>
platform              Darwin
gawk (GNU Awk)        4.2.1
fribidi (GNU FriBidi) 1.0.5
audio player          [NOT INSTALLED]
terminal pager        less
terminal type         xterm-256color
user locale           en_US.UTF-8 (English)
home language         en
source language       auto
target language       en
translation engine    google
proxy                 [NONE]
user-agent            Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/602.1 (KHTML, like Gecko) Version/8.0 Safari/602.1 Epiphany/3.18.2
theme                 default
init file             [NONE]

Your IP address is possibly blocked by Google's servers. This usually happens when you're using a proxy, or you abuse the service beyond their quota.


[Help][Blazor] how to manage array of child parameters ?

Hello guys, I try to implement un grid component but i meet a problem with the logic of blazor components.
I actually manage my grid like this
<MyGrid>
<GridHeader>
Nom
 Statut
</GridHeader>
<GridBody Context="child">
<EMAIL_ADDRESS><EMAIL_ADDRESS></GridBody>
</MyGrid>
and on the Mygrid component like this
[Parameter]
        public RenderFragment GridHeader { get; set; }
[Parameter]
        public RenderFragment<TableItem> GridBody { get; set; }
[Parameter]
        public IEnumerable<TableItem> Items { get; set; }

                        @GridHeader

@foreach (var element in Items)
{
    <tr
        @GridRow(element)

}

I want to change this for a column based system, like this
<MyGrid>
<GridColumns Context="child">
<GridColumn Header="Nom">
@child.NomPrenom
</GridColumn>
<GridColumn Header="Statut">
@child.LibStatut
</GridColumn>
</GridColumns>
</MyGrid>

and on the grid component, iterate on the columns to first render the header and then iterate on the columns and item to render the table body.
I surprisely don't find example like this on internet and i don't find the good way to achieve that.
It sem its it possible because i find some example like this here : https://blazor.syncfusion.com/demos/Grid/DefaultFunctionalities, but unfortunately i don't have access to source code..
Do you have idea on how i can achieve that ?
Thanks for your help !

Thanks for contacting us @julienGrd
It looks like this is a question about how to use ASP.NET Core Blazor. While we do our best to look through all the issues filed here, to get a faster response we suggest posting your questions to StackOverflow using the asp.net-core-blazor tag.

The trick is to set the grid as a cascading value, and have your headers register themselves by calling a method on the grid.
I give an example of doing this that show how to create a tab control.
https://blazor-university.com/templating-components-with-renderfragements/creating-a-tabcontrol/

thanks @mrpmorris i begin to see the tricks !
but in my case, i have difficulty to transpose your example in my context.
My main problem is my template need to be render for each row, so i will add too many times the components is her parents. On the other way, with data empty, i don't have way to show the header...
my templates are generic too, it make the thing more tricky
so i change the logic to render the header on a classic way and then render the body manually by iterate on my items
I finally arrived to a quite good solution, i have only one problem left
this is my actual code
//on the caller
<Grid Items="this.Model.ListEnfantsSearch">

                <Columns >
                    <GeckosGridColumn Header="Nom" T="@(Is.GeckosSL.EntityModel.Enfant)">

                            @child.NomPrenom

                    </GeckosGridColumn>
                </Columns>

the grid
<table class="table table-sm table-borderless @(TableClass ?? "")"<EMAIL_ADDRESS>

                <CascadingValue Value="this">
                    @(Columns)
                </CascadingValue>

            @if (Items != null)
            {

                @foreach (var item in this.Items)
                {

                        @foreach (var c in this.InternalColumns)
                        {
                            @(c.Body(item))
                        }

                }
            }

[Parameter]
        public RenderFragment Columns { get; set; }
public List<GeckosGridColumnViewModel<TableItem>> InternalColumns = new List<GeckosGridColumnViewModel<TableItem>>();
        internal void AddColumn(GeckosGridColumnViewModel<TableItem> column)
        {
            InternalColumns.Add(column);
            this.LaunchStateHasChanged();
        }

and finally the Column component
<EMAIL_ADDRESS>[CascadingParameter]
        private BaseGridComponent<T> Parent { get; set; }

        [Parameter]
        public RenderFragment<T> Body { get; set; }

        [Parameter]
        public string Header { get; set; }

        protected override void OnInitialized()
        {
            if (Parent == null)
                throw new ArgumentNullException(nameof(Parent));
            Parent.AddColumn(this);
            base.OnInitialized();

        }

As you can see, i need to specify the type manually on the column (because i use the Context to specify a generic body), i would prefer the column retrieve the type of the grid container, i don't know how to make that, so if you have idea i take it !
thanks for your help !

I don't think that is currently possible. It would be good if Blazor would allow us to specify a [Parameter] property type that is an Array of components like this - so we could then enforce generic types on the embedded children.

yeah i try different solution but impossible to make better than declare directly the type (i try some things like T="@(this.Model.ListEnfantsSearch.GetType().GetGenericArguments()[0])" but i ended with error in razor.g.cs generated file.
So for the moement i will keep my solution, it's too bad because im really close to a perfect solution.
It can be nice if blazor team make something like you propose.
i think the post can stay opened until a better solution arrived.
Thanks again for your help  @mrpmorris , i will never ended this without you

@julienGrd perhaps you could create a new ticket as a feature request, requesting some way to define strongly-typed child content.

you are right, it's done (https://github.com/aspnet/AspNetCore/issues/17194), i close this one !


[BUG] ERROR: No matching distribution found for mlx>=0.x

Describe the bug
My GH tests are failing because they can't install mlx.
To Reproduce
Workflow yaml:
name: Test PRs

on:
    pull_request:
        branches:
            - main

jobs:
    test:
        runs-on: macos-14

        steps:
        - name: Checkout code
          uses: actions/checkout@v2

        - name: Set up Python
          run: |
            brew install<EMAIL_ADDRESS>            python3 -m venv env
            source env/bin/activate

        - name: Run style checks
          run: |
            pip install pre-commit
            pre-commit run --all
            if ! git diff --quiet; then echo 'Style checks failed, please install pre-commit and run pre-commit run --all and push the change'; exit 1; fi

        - name: Install dependencies
          run: |
            pip install pytest
            pip install -e .

        - name: Run Python tests
          run: |
            cd mlx_vlm/
            pytest -s ./tests

Requirements.txt:
mlx>=0.18.1

Expected behavior
I expect the dependencies to install normally as in the past.
Desktop (please complete the following information):

OS Version: MacOS 14

Additional context
Add any other context about the problem here.

Probably this is because we don't have a python 3.8 distribution anymore.
You should either setup the venv with the 3.10 distribution or use the 3.10 distribution you install directly:
            /opt/homebrew/bin/python3.10 -m venv env

Thanks, I fixed it with:
name: Test PRs

on:
  pull_request:
    branches:
      - main

jobs:
  test:
    runs-on: macos-14

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.10'

      - name: Install MLX
        run: |
          pip install mlx>=0.15

      - name: Install pre-commit
        run: |
          python -m pip install pre-commit
          pre-commit run --all
          if ! git diff --quiet; then
            echo 'Style checks failed, please install pre-commit and run pre-commit run --all and push the change'
            exit 1
          fi

      - name: Install package and dependencies
        run: |
          python -m pip install pytest
          python -m pip install -e .

      - name: Run tests
        run: |
          pytest -s .


build error

when I compile my project, there is a error

Hi @byte9527. Looks like your build pipeline has a problem with one of Handsontable helpers during the minification stage. This is not an issue with this wrapper, maybe with Handsontable. But we don't have enough information about your build process and tools you use. Please provide a minimal demo so we can reproduce the issue. Otherwise, I'm afraid we won't be able to help you.


Add index for valid_email column

It looks like there's no index for this field (in the users table). We use this to avoid including invalid addresses on our mailing lists, so it should really be indexed.

cc @mrniaboc

@camallen @marten @zwolf Could we make this a high priority? We absolutely have to start filtering on this column as soon as possible for all of our mailing lists, which we can't do when it's not indexed.

@astopy will you only be querying on the tr

I'm pretty sure we'll only need to find trues

@astopy see my comments on the PR.

closing this based on the results of the PR work.


non-canonical SMILES from FragmentOnBonds generated molecule

I used FragmentOnBonds to produce a new molecule. I used MolToSmiles to create what should be a isomeric SMILES. When I re-canonicalized the SMILES string, I got a different SMILES string, with fewer chiral centers. The following is a reproducible.
The structure CHEMBL1171624 at https://www.ebi.ac.uk/chembl/compound/inspect/CHEMBL1171624 is complicated, though pretty. I used the following to convert it to SMILES:
try:
  from urllib import urlopen  # Python 2
except ImportError:
  from urllib.request import urlopen  # Python 3

molblock = urlopen("https://www.ebi.ac.uk/chembl/download_helper/getmol/649726").read()
from rdkit import Chem
print(Chem.MolToSmiles(Chem.MolFromMolBlock(molblock), isomericSmiles=True))

It generates:
smiles = "OCC12C3[N@](Cc4cccnc4)C4C5(CO)C([N@](Cc6cccnc6)C1C3(CO)[C@H]5c1ccccc1)C4(CO)[C@H]2c1ccccc1"

I used FragmentOnBonds() to break the first bond and replace the two endpoints with "*"s:
>>> mol = Chem.MolFromSmiles(smiles)
>>> fragmented_mol = Chem.FragmentOnBonds(mol, [0], dummyLabels=[(0,0)])
>>> fragmented_smiles = Chem.MolToSmiles(fragmented_mol, isomericSmiles=True)
>>> fragmented_smiles
'[*]CC12C3[N@](Cc4cccnc4)C4C(CO)(C5[N@](Cc6cccnc6)C1C3(CO)[C<EMAIL_ADDRESS>
However, if I re-canonicalize that supposedly canonical output, I get a different SMILES:
>>> Chem.MolToSmiles(Chem.MolFromSmiles(fragmented_smiles), isomericSmiles=True)
'[*]CC12C3N(Cc4cccnc4)C4C(CO)(C5N(Cc6cccnc6)C1C3(CO)[C<EMAIL_ADDRESS>
I'll use another route to get what should be the same answer. Since the SMILES starts "OCC..." I can replace it with "O*.*CC...". This should be the same as the fragmented molecule:
>>> new_mol = Chem.MolFromSmiles("O*.*" + smiles[1:])
>>> Chem.MolToSmiles(new_mol, isomericSmiles=True)
'[*]CC12C3N(Cc4cccnc4)C4C(CO)(C5N(Cc6cccnc6)C1C3(CO)[C<EMAIL_ADDRESS>
I checked to see if this was related to the issue #1021 ,  but ClearComputedProps() does not affect the results as it did in that issue:
>>> Chem.MolToSmiles(fragmented_mol, isomericSmiles=True)
'[*]CC12C3[N@](Cc4cccnc4)C4C(CO)(C5[N@](Cc6cccnc6)C1C3(CO)[C<EMAIL_ADDRESS>>>> fragmented_mol.ClearComputedProps()
>>> Chem.MolToSmiles(fragmented_mol, isomericSmiles=True)
'[*]CC12C3[N@](Cc4cccnc4)C4C(CO)(C5[N@](Cc6cccnc6)C1C3(CO)[C<EMAIL_ADDRESS>
I don't know if it's relevant, but SMARTSViewer warns that the two "[N@]" are "Not right chirality type for number of bonds" and the SMILES from ChEMBL is:
OC[C@@]12C3N(Cc4cccnc4)C5[C@]6(CO)C(N(Cc7cccnc7)C1[C@@]3(CO)[C@H]6c8ccccc8)[C@@]5(CO)[C@H]2c9ccccc9

where the chirality is only on the carbons.

A quick one on the stereochemistry:
The mol block from ChEMBL does have wedged bonds from the nitrogens and the RDKit honors those.
There was a thread about this last year: http://www.mail-archive.com/search?l=rdkit-discuss%40lists.sourceforge.net&q=stereochemistry+differences+between+rdkit+indigo+&a=1

The reason you are seeing the difference between the smiles generated from the fragmented molecule and the smiles generated from the molecule created from that smiles has to do with sanitization: after you break one or more bonds, you really, really should re-sanitize the molecule (or at least call ClearComputedProps(), though in this case #1021 could end up raising its head).
Here's the demonstration of that:
In [70]: mol = Chem.MolFromMolBlock(molblock)

In [71]: fragmented_mol = Chem.FragmentOnBonds(mol, [0], dummyLabels=[(0,0)])

In [72]: Chem.SanitizeMol(fragmented_mol)
Out[72]: rdkit.Chem.rdmolops.SanitizeFlags.SANITIZE_NONE

In [73]: fragmented_smiles = Chem.MolToSmiles(fragmented_mol, isomericSmiles=True)

In [74]: fragmented_smiles
Out[74]: '[*]C1N(Cc2cccnc2)C2C3(CO)C4N(Cc5cccnc5)C(C([*])(CO)[C@@H]3c3ccccc3)C1(CO)[C@@H](c1ccccc1)C24CO'

I need to stare at the structure a bit longer, but I'm pretty sure that the Ns should not have lost their chirality here. That would be a bug.

Calling ClearComputedProps() isn't enough. For one, FragmentOnBonds() calls res->clearComputedProps() before returning the fragmented structure. My reproducible shows that calling a second time doesn't affect anything.
Thanks for the link to the email thread. Enjoy the staring - stereochemistry always leaves me with a headache.

I added sanitization, which removed some but not all of the error cases. The problem now is I have structures which don't canonicalize to themselves - no fragmentation needed. Since they still have chiral nitrogens in them, I think it's related to this issue, and not a new one.
In the following I use the usual canonicalization method, plus variations with SanitizeMol() and GetSymmSSR() (just in case; they shouldn't be needed). For each I check if the canonicalized SMILES can be parsed/re-canonicalized to itself.
from rdkit import Chem

def Canon(smiles):
    mol = Chem.MolFromSmiles(smiles)
    return Chem.MolToSmiles(mol, isomericSmiles=True)

def CanonSSSR(smiles):
    mol = Chem.MolFromSmiles(smiles)
    Chem.GetSymmSSSR(mol)
    return Chem.MolToSmiles(mol, isomericSmiles=True)

def CanonSanitize(smiles):
    mol = Chem.MolFromSmiles(smiles)
    Chem.SanitizeMol(mol)
    return Chem.MolToSmiles(mol, isomericSmiles=True)

def check_if_canonical(canon_func, smiles):
    s1 = canon_func(smiles)
    s2 = canon_func(s1)
    if s1 != s2:
        print("Failed to canonicalize using", canon_func.__name__)
        print(" input:", smiles)
        print("canon1:", s1)
        print("canon2:", s2)
        print("canon3:", canon_func(s2))
    else:
        print("Pased:", canon_func.__name__)

s = 'O[C@H]1CC2CCC(C1)[N@@]2C'
check_if_canonical(Canon, s)
check_if_canonical(CanonSSSR, s)
check_if_canonical(CanonSanitize, s)

The output from this is:
Failed to canonicalize using Canon
 input: O[C@H]1CC2CCC(C1)[N@@]2C
canon1: C[N@]1C2CCC1C[C@@H](O)C2
canon2: C[N@]1C2CCC1C[C@H](O)C2
canon3: C[N@]1C2CCC1C[C@@H](O)C2
Failed to canonicalize using CanonSSSR
 input: O[C@H]1CC2CCC(C1)[N@@]2C
canon1: C[N@]1C2CCC1C[C@@H](O)C2
canon2: C[N@]1C2CCC1C[C@H](O)C2
canon3: C[N@]1C2CCC1C[C@@H](O)C2
Failed to canonicalize using CanonSanitize
 input: O[C@H]1CC2CCC(C1)[N@@]2C
canon1: C[N@]1C2CCC1C[C@@H](O)C2
canon2: C[N@]1C2CCC1C[C@H](O)C2
canon3: C[N@]1C2CCC1C[C@@H](O)C2

You can see it's bi-stable. I assume this is related to your statement "The way the RDKit handles this is something of a hack: it doesn't identify those atoms as chiral centers, but it does preserve the chiral tags when generating a canonical SMILES" at http://www.mail-archive.com/rdkit-discuss%40lists.sourceforge.net/msg04930.html .
This is likely also the source of my failures with sulfur, as "[C@]1C[S@+]1O" also fails the above stability tests, and all of my failure cases are charged chiral sulfurs.

I pulled that last one out into its own issue: #1028


Hello.

django-payments-przelewy24 version: 0.1.7
Django version: none
Python version: none0
Operating System: none

Description
Will your code be compatible with saleor.io?

Hi 👋
As far as I know saleor.io does not use django-payments so you will not use django-payments-przelewy24 directly.


.NET version 8.0.302

Comment:
Just wanted to know when the newest version of .NET (v. 8.0.302) will be available on conda, as it solves some issues we have with WinForms OpenFileDialog.
thanks for the hard work

It's not available for download, yet, as far as I can see https://dotnet.microsoft.com/en-us/download/dotnet/8.0

Oops, I misread it, yes it is!

https://github.com/conda-forge/dotnet-feedstock/pull/94


Limit doesnt limit the number of hits returned

Describe the bug
The limit keyword in .search() doesn't limit the number of hits returned.
To Reproduce
Steps to reproduce the behavior:
Do this:
const meilisearchConnection = new MeiliSearch({
  host: process.env.MEILISEARCH_IP || "",
});

const usersIndex = meilisearchConnection.index("users");

async function main(){
    const data = await usersIndex.search("michael", {
        limit: 2
    });
    console.log(data);
}

main();

Prints data with 20 hits, instead of 2 hits.

Expected behavior
Return 2 hits.
Meilisearch version:
Javascript client<EMAIL_ADDRESS>Meilisearch server: v1.2.0
Additional context
Additional information that may be relevant to the issue.
WSL 2 on Windows 11
Node 18.13.0

Also tested with version v0.26.0. Same thing.


Using a src subdirectory

I notice that Next.js assumes that all source code is basically put in the root, e.g. pages directory.
I prefer to keep a separate src directory, so it's clear what's source and what is not (build, passwords, etc). Is this possible / easy? How do I do it?

Duplicate of https://github.com/zeit/next.js/issues/819


Fix error in PR#654

ensure backward compatibility for models other than Falcon
Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[ ] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


Completed Task 601 : Implement Different Divider

Description

Implement Different Divider:

Divider

Make the changes to index.ts , rds-divider/index.ts , rds-divider.css , rds-divider.stories.tsx and rds-divider.tsx file.

Screenshots :

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

Changes Reviewed and PR Approved


Add missing nuget reference for razor pages

Following the guide as written results in an error. UseInMemoryDatabase is provided by an additional package, and VS wasn't smart enough to be able to pull this down.

Do let me know if you want me to add the instructions for installing a package, or to link to them or something. I figure it's better to be super clear on all the steps for a Getting Started page.

This is the wrong place for that information.
Thanks for the effort.

@herrgruebner  thanks for the PR.


Add more contributors from projects that contribute to .NET

There are a number of projects that aren't represented in the thanks data. NuGet is one that has had various internal and community contributions that we outline in release notes and there doesn't seem to be a tag for a number of projects in the repos below:
https://github.com/dotnet/core/blob/main/Documentation/core-repos.md

Thanks @JonDouglas. We should look into that. Does NuGet follows the same tagging system as the dotnet repos? e.g. https://github.com/dotnet/runtime/tags

@JonDouglas Can you confirm whether NuGet uses the same release tags as .NET repos?

We do not sadly. Sorry I didn't answer earlier. Given we don't support tags right now, I think this issue is moot. Thanks for helping!


Constantly receiving "Error: usage CLI not found"

Describe the bug
I am constantly receiving

Error: usage CLI not found. This is required for completions to work in mise.
See https://usage.jdx.dev for more information.

To Reproduce
The moment I pop a new shell, type mise t and then follow with a space. I immediately receive the previous message, but only once for that terminal session.
I am on Archlinux, installed via the AUR from here https://aur.archlinux.org/packages/mise-bin
Expected behavior
I expect warning output, and having completions to work.
mise doctor output
version: 2024.11.29 linux-x64 (644cb6d 2024-11-25)
activated: yes
shims_on_path: no

build_info:
  Target: x86_64-unknown-linux-gnu
  Features: DEFAULT, NATIVE_TLS, OPENSSL
  Built: Mon, 25 Nov 2024 04:15:06 +0000
  Rust Version: rustc 1.82.0 (f6e511eec 2024-10-15)
  Profile: release

shell:
  /usr/bin/fish
  fish, version 3.7.1

dirs:
  cache: ~/.cache/mise
  config: ~/.config/mise
  data: ~/.local/share/mise
  shims: ~/.local/share/mise/shims
  state: ~/.local/state/mise

config_files:
  ~/.tool-versions
  ~/.config/mise/config.toml

backends:
  aqua
  asdf
  cargo
  core
  go
  npm
  pipx
  spm
  ubi
  vfox

plugins:
  elixir  https://github.com/mise-plugins/mise-elixir.git#7b06439

toolset:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
env_vars:
  MISE_SHELL=fish

settings:
  activate_aggressive = false
  all_compile = false
  always_keep_download = false
  always_keep_install = false
  asdf_compat = false
  cache_prune_age = "30d"
  ci = false
  color = true
  debug = false
  disable_backends = []
  disable_default_registry = false
  disable_hints = []
  disable_tools = []
  exec_auto_install = true
  experimental = false
  fetch_remote_versions_cache = "1h"
  fetch_remote_versions_timeout = "10s"
  go_default_packages_file = "~/.default-go-packages"
  go_download_mirror = "https://dl.google.com/go"
  go_repo = "https://github.com/golang/go"
  go_set_gopath = false
  go_set_goroot = true
  go_skip_checksum = false
  http_timeout = "30s"
  ignored_config_paths = []
  jobs = 4
  legacy_version_file = true
  legacy_version_file_disable_tools = []
  libgit2 = true
  lockfile = true
  log_level = "info"
  not_found_auto_install = true
  paranoid = false
  pin = false
  plugin_autoupdate_last_check_duration = "7d"
  quiet = false
  raw = false
  task_run_auto_install = true
  task_skip = []
  trace = false
  trusted_config_paths = []
  unix_default_file_shell_args = ["sh"]
  unix_default_inline_shell_args = [
      "sh",
      "-c",
  ]
  use_file_shell_for_executable_tasks = false
  use_versions_host = true
  verbose = false
  windows_default_file_shell_args = [
      "cmd",
      "/c",
  ]
  windows_default_inline_shell_args = [
      "cmd",
      "/c",
  ]
  windows_executable_extensions = [
      "exe",
      "bat",
      "cmd",
      "com",
      "ps1",
      "vbs",
  ]
  yes = false

  [aqua]
  cosign = true
  slsa = true

  [cargo]
  binstall = true

  [node]

  [npm]
  bun = false

  [pipx]
  uvx = false

  [python]
  default_packages_file = "~/.default-python-packages"
  pyenv_repo = "https://github.com/pyenv/pyenv.git"
  venv_auto_create = false
  venv_stdlib = false

  [ruby]
  default_packages_file = "~/.default-gems"
  ruby_build_repo = "https://github.com/rbenv/ruby-build.git"
  ruby_install = false
  ruby_install_repo = "https://github.com/postmodern/ruby-install.git"

  [status]
  missing_tools = "if_other_versions_installed"
  show_env = false
  show_tools = false

No problems found

Additional context
Add any other context about the problem here. Consider running mise with --debug or --trace for extra debug info.

@jdx bah, I just realized that usage-bin needed to be installed. That means the AUR for mise-bin needs to list it as a dependency. That resolves my issue.


Generalize PekkoDependency

For context of this change see https://github.com/pjfanning/sbt-pekko-build/pull/2#issuecomment-1879629941.
While the initial reason of this change is to do with general design (i.e. sbt-pekko-build contains code referencing pekko-http which doesn't make general design sense if its used within pekko core because you can then have pekko core) there is actually a stronger justification which was made more obvious when I wrote the change.
Currently in sbt-pekko-build the various versions (i.e. minVersion, defaultVersion) are essentially global and hardcoded where as generalizing this logic into a PekkoDependency as this PR does exposes granularity which is actually a requirement.
Take into account minVersion, the value of minVersion actually varies depending on the pekko module which happens to use sbt-pekko-build. The reasoning behind minVersion is that if some new feature is added to Pekko core and one of the Pekko modules requires that functionality, this is where you set minVersion. As a hypothetical, lets assume that functionality "A" gets added into Pekko Core 1.1.0 and functionality "B" gets added into Pekko Core 1.2.0, you can easily have a situation where Pekko Http needs functionality "A" (which means minVersion is 1.1.0) and Pekko gRPC needs functionality "B" (which means minVersion is 1.2.0).
This would mean that in pekko-http you would have
object PekkoCoreDependency extends PekkoDependency {
  override val checkProject: String = "pekko-cluster-sharding-typed"
  override val module: Option[String] = None
  override val currentVersion: String = "1.2.0"
  override val minVersion: String = "1.1.0"
}

and in pekko-gRPC you would have
object PekkoCoreDependency extends PekkoDependency {
  override val checkProject: String = "pekko-cluster-sharding-typed"
  override val module: Option[String] = None
  override val currentVersion: String = "1.2.0"
  override val minVersion: String = "1.2.0"
}

The only issue here is that there are some values such as checkProject/currentVersion which can be argued will never change. Its actually possible to auto derive both of these values, which can either be done in this PR or a future one i.e.

checkProject: This can be safely derived by looking at the first artifact that contains the moduleName. i.e. If you set module to Some("http") then you have a. simple heuristic, first you look for pekko-http and if you can't find an artifact with pekko-http then you look for the first artifact with pekko-http-*
currentVersion: This is easy, you just look at the latest non-snapshot/milestone version that has been published on maven central.

I would however recommend doing this in a future PR, in particularly the logic with checkProject is kinda hacky and there isa. decent argument that just using a hardcoded table is better due to KISS.

@pjfanning


Updating pg dump commands

The parameters used in the pg_dump commands are incorrect. It is updated with the right set of parameters.

Docs Build status updates of commit 780c97e:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error: CannotMergeCommit] Cannot merge commit 780c97ec4caceb8f45eeca9d9975e4edda3f1aba in branch updating_pg_dump of repository https://github.com/shriram-muthukrishnan/azure-docs into branch main (commit 9e8319786b6fa1241bd7e97e141fefaae60fa0ec). Please follow this documentation: https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/ to use git.exe to resolve you content conflicts locally and then push to remote.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Deprecated dependencies

running npm i earljs on an empty project yields
npm WARN deprecated<EMAIL_ADDRESS>See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated<EMAIL_ADDRESS>Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated<EMAIL_ADDRESS>https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated<EMAIL_ADDRESS>See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated<EMAIL_ADDRESS>some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added

those packages come from
$ npm ls source-map-url urix resolve-url source-map-resolve sane
└─┬<EMAIL_ADDRESS>  └─┬<EMAIL_ADDRESS>    └─┬<EMAIL_ADDRESS>      └─┬<EMAIL_ADDRESS>        └─┬<EMAIL_ADDRESS>          └─┬<EMAIL_ADDRESS>            └─┬<EMAIL_ADDRESS>              ├──<EMAIL_ADDRESS>              ├──<EMAIL_ADDRESS>              └──<EMAIL_ADDRESS>
you should at least update jest-snapshot to ^27 (released 9 months ago) (if you won't address #106 )
then preferably setup some dependency bot like renovate and/or dependabot

The newest development version completely removes jest-snapshot.
The changes are going to be released soon!


release capture key combination conflict [enhancement]

Describe the issue
When using UTM the key combination to release mouse capture (control + alt/option) interfere with application use (and the primary reason to use a vm).
As a user I want a (configurable) key combination that is highly unused, to release capture so it does not interfere with applications.
Configuration

UTM Version: Version 2.4.1 (40)
OS Version: Darwin 20.6.0 Darwin Kernel Version 20.6.0: Wed Nov 10 22:23:05 PST 2021; root:xnu-7195.141.14~1/RELEASE_ARM64_T8101 arm64
Intel or Apple Silicon? M1 arm64

@jimmont Are you aware that you can change the capture/release key combination to Command+Option? You just need to open the UTM preferences and click the checkbox Use Command+Opt for input capture/release. BTW this setting can be changed on the fly even while the VM is running.

I thought about this before but decided it would be something that people will rarely use. Is there a specific reason both the primary and alternative button combos don't work for you?

I thought about this before but decided it would be something that people will rarely use. Is there a specific reason both the primary and alternative button combos don't work for you?

Sorry to bump a very old issue, but this is exactly what I was about to post if I didn't already find it.
To answer your question, yes, there is a reason why the primary and secondary alternative buttons won't work for me. I use ergonomic, minimal-movement keyboards and I'm very dependent on physical key locations. I use a keyboard-centric workflow with minimal mouse usage, so I need lots of keyboard customization.
Combinations of modifiers is basically "prime real estate" in a keyboard-centric workflow. In fact, one specific keybind I use is cmd + opt + space to open Spotlight. This is because my main launcher is Alfred, which I've replaced Spotlight with and use the traditional cmd + space keybind. The reason why I have these two binds is because I have the command and option keys physically next to each other, so I can press both with one thumb. So basically, it's all about ergonomics.
I also remap modifiers for my terminal. Essentially, the command key is the defacto "mod key" for in-focus applications on macOS. But terminal applications generally use control as their mod key, so I swap control and command just for terminal emulators. The reason for this is nothing other than ergonomics; my thumbs can do exactly the same movements every time, consistently.
So with the two toggleable options in UTM for keyboard capture toggle, you can see how they can get in the way for someone who has a heavily keyboard-dependent workflow, or perhaps a workflow that uses different keybindings than defaults.
It would be nice to be able to change the keyboard capture hotkey to an arbitrary combination. For me, I'd probably pick something like hyper + backslash. Hyper is basically all 4 modifiers a the same time, so this would be shift + control + command + option + backslash. This is very out-of-the-way and won't interfere with any sensible, fast, ergonomic, high-frequency keybinds for my particular workflow. But everyone is different!
Anyways, I hope my examples/explanation might shed some light on the use cases people may have. If you have the time to maybe put together some code pointers and a general approach for accomplishing this, I can try to take a stab at it. I'm not a macOS developer, but I can try to spend some time on this if you can point me in the right direction.

+1, modifying the capture shortcut would be a great enhancement!

+1 as well, I'd like to set my own capture shortcut, this one's a bit of a breaker for me as my window tiling management hotkeys have been bound to these keys for years. I'd put my capture key way over to Meta+Escape, personally.


Question about Tesla.post function

I am trying to do post request to this url
https://api-ssl.bitly.com/v4/shorten
with [long_url: "http://www.google.com"]
In doc it says post(client, url, body, opts)
so I tried Tesla(client, "https://api-ssl.bitly.com/v4/shorten",  "", [long_url: "http://www.google.com"])
I don't know what to put in body argument, so I tried with empty  string like ""
and as I expected it didn't work.
what should I put in body argument?

Are you using this api? The doc says body is in json.
access_token = "foo"

client = Tesla.build_client([
  {Tesla.Middleware.BaseUrl, "https://api-ssl.bitly.com"},
  {Tesla.Middleware.Headers, [{"Authorization", "Bearer #{access_token}"}]},
  Tesla.Middleware.JSON
])

{:ok, resp} = Tesla.post(client, "/v4/shorten", %{long_url: "http://www.google.com"})

resp.body
# it's a Map

@wlminimal You need to include more information, we are not oracles.
If you want to make a HTTP request you need to know at least the method and URL. If this is a POST(or PUT) you need to know the format of the body (content-type). Most popular ones are JSON and form/url-encoded - there are specific tesla middlewares for these.
Please read the docs what is the opts argument.
I'm closing this issue right now, but please do comment if you have more details (and more specific issue), I'm happy to open it then.


fix(package-lock): fixed some vulnerabilities

While updating the package-lock, NPM logged 19 vulnerabilities and I fixed all of them.

Doesn't this also have to involve updating the package.json?

@RichardLitt Not always as sometimes NPM (technically NSP) and even Snyk will update only dependencies at a certain depth while keeping the same direct dependencies.

@RichardLitt Not always as sometimes NPM (technically NSP) and even Snyk will update only dependencies at a certain depth while keeping the same direct dependencies.

Good to know! Can you rebase? I'm not sure how you solved this, so I don't think doing a line-by-line diff rebase on my end would work.

I just noticed my travis PR may have broken the npm ci bit in the build and I'm not sure if it's one of those random NPM failures that I see once in a while or if the greenkeeper-lockfile script has something to do with it.

Let's find out. Thank you.


Dividers not show

Especiais
Facção
Registro

Can you paste the name of the roles here?

Can you paste the name of the roles here?

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀・ESPECIAIS
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀・FACÇÃO
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀・REGISTRO
It's in portuguese-br roles, must that be why it doesn't work?

Should be fixed in the latest version (1.0.10), please update and confirm. I added an additional character (・) to the list and allowed for no spaces at the end of the role.


fix: use package name according to the framework param

I noticed that the first snippet of the configuration page had the package name hardcoded. Since I assumed it should change according to the selected framework, I made it dynamic.
Unfortunately, I couldn't check this change locally, as I described on the following issue: https://github.com/css-hooks/css-hooks/issues/17

Oops, good catch!

Thanks for your help!


Fix 156

Improve status computation so that it is more precise and can take different cases into account. Status reporting should also be improved.
In particular, we are now able to change the status of the associated component when a link is created, using a newly introduced ComponentLinking status. This allows the controller to distinguish between a regular pending state and a state where the component needs to wait for its associated pod to be re-created: the component controller thus won't allow the component to switch back to ready until the associated pod has been recreated when the component is in the Linking state. The pod name will also be properly updated. This should properly fix #156 because it will cause hal to wait for the component to switch back to ready before attempting to push.

When we execute this scenario using latest version of hal = 0.1.10 - https://gist.github.com/cmoulliard/9ea0351fd7848835f1b50335b3485e1f and that we check the link, we go bad status message
oc get links
NAME            AGE       STATUS    MESSAGE
backend-to-db   5m        Pending   Waiting for the following resources:
Component: Ready
client-to-backend   5m        Pending   Waiting for the following resources:
Component: Ready


investigate special mode commands - error and intensity.

from datasheet 9.4 page 16,
The TLC591x provides two operation modes: Normal Mode and Special Mode. Normal mode is used for shifting
LED data into and out of the driver. Special Mode includes two functions: Error Detection and Current Gain
Control.
Error Detection
In the Special Mode phase, the low-voltage-level signal on OE(ED2) can enable output channels and detect the
status of the output current to determine if the driving current level is sufficient. The detected Error Status is
loaded into the 8-bit shift register and shifted out via the pin SDO, synchronous to the CLK signal. The system
controller can read the error status and determine if the LEDs are properly lit.
This function needs to connect the SDO line and read back values.
For me this has lower priority so will not be implemented yet.
Current Gain Control
In the Special Mode phase, the TLC591x allows users to adjust the output current level by setting a runtime
programmable Configuration Code. The code is sent into the TLC591x through SDI. The positive pulse of
LE(ED1) latches the code in the shift register into a built-in 8-bit configuration latch, instead of the output latch.
The code affects the voltage at the terminal R-EXT and controls the output-current regulator. The output current
can be finely adjusted by a gain ranging from 1/12 to 127/128 in 256 steps. Therefore, the current skew between
ICs can be compensated within less than 1%. This feature is suitable for white balancing in LED color display
panels.
This is the most important function (imho) of the Special mode, so that needs to be implemented first.

I am currently struggling to realize individual effects that I used to control with a ULN2003 on 7 LEDs.
But it doesn't work. Every time the status changes, it shifts the signal. I thought the TLC5917 was a smaller version of the TLC5947. Just a simple blinking of all LEDs becomes an alternating blinking, or switching on all LEDs suddenly stops.
But the special mode sounds good to me.

I have tested the TLC5917_demo_gain.
I don't understand the effect and the function behind it, but here is the result from the serial monitor:
TLC5917_LIB_VERSION: 	0.1.2

Channels: 8
MODE:	0
MODE:	1
TIME:	25613
MODE:	0

done...

Here a performace test, but today he work an LGT8F338P
TLC5917_LIB_VERSION: 	0.1.2
Channels:		800
SETCHANNEL TRUE:	1156
SETCHANNEL FALSE:	1296
SETALL TRUE:		108
WRITE:			5508

When testing the TLC5917_demo.ino, I came across a strange behavior.
I modified the demo a bit to have a closer look at the new tlc.channelCount(). For this I put the “for” loop from the setup into the loop. What I would generally suggest as a change for the demo.
When I comment out
  if (tlc.begin() == false)
  {
    Serial.println(“error”);
    while (1);
  }

it only controls LEDs 1-7, LED 8 is not controlled and everything is dark at channel 0, which seems to cause a shift forward by one value.  so that 0 is -1, 1=0, 2=1, 3=2.....
After adding a serial output of “ch”, I noticed that it does not control the last of the 8 LEDs and also does not control any in the serial at position 0.

@Devilscave
I have updated the develop branch, build is running
The function has been renamed to void setSpecialMode() to be in line with the datasheet.
getMode() is in it too, returning 0 or 1.
updated the TLC5917_demo_gain.ino example that should use this.
Please update to the latest develop and give it a try.

Will look into your last post here.

When testing the TLC5917_demo.ino, I came across a strange behavior. I modified the demo a bit to have a closer look at the new tlc.channelCount(). For this I put the “for” loop from the setup into the loop. What I would generally suggest as a change for the demo. When I comment out
  if (tlc.begin() == false)
  {
    Serial.println(“error”);
    while (1);
  }

it only controls LEDs 1-7, LED 8 is not controlled and everything is dark at channel 0, which seems to cause a shift forward by one value. so that 0 is -1, 1=0, 2=1, 3=2..... After adding a serial output of “ch”, I noticed that it does not control the last of the 8 LEDs and also does not control any in the serial at position 0.

When you comment out the Begin() call the lines are not set as OUTPUT and to their initial state.

@Devilscave
Did you make progress with your project (or the PCA9634?)
Today I worked on the setting of the gain (special mode) implementing extra functions and two new examples.
Still no hardware for testing, saw the TLC5917IN chip that I can test in a breadboard only at Mouser for 1.56 a piece with 20 euro for post and package.
In short I will release the new code as a 0.1.2 version later today. When I merge that code this issue will be closed.
Feel free to reopen if you still try to get the chip working.

I would like to test it for you, currently somewhat limited in time due to an upcoming move and completion of my other project. But I am looking ahead with your library


ipynb to download the hyp3 datasets

Added an ipynb to download the datasets in hyp3 given a json file.

@gracebato I've reviewed the PR, and while it works as is, I've modified it to instead ingest the name of the job directly to then access the job ids from the server and populate the json.
This saves the extra manual step on our end of generating the json. Let me know what you think.


Email verified for local connector

This PR implements 'email_verified' for the local connector (password DB) and resolves https://github.com/coreos/dex/issues/957
As it stands right now, Dex will always return 'email_verified' as true for any locally stored accounts. Presumably this is so that registration and eventual email verification is done outside and is out of scope of Dex. While this is understandable, this causes a problem where after user registration we want to show a specific "waiting for email verification" error on login (before the verification is done).
As this flow is pretty much the standard, I propose supporting it by means of a config boolean switch.
What is done:

email_verification added to the local password DB
gRPC API for passwords updated to reflect the field addition
when logging in via local account (email) return the stored value of email_verification field

should this return true when "requireEmailVerification" config value is false/ommited?

requireEmailVerification config value introduced. False by default, it will only allow verified accounts to be logged in.

also a special error on login message added for this purpose

This feature is not covered by tests yet.

I don't think we should do this. I'd rather have external systems do this kind of user management.


GRISS to flat CSV, matching GBIF and adding acceptedKey

Similar to the concatenated and waarnemingen lists, a matching with GBIF is needed to make comparison possible.

@timadriaens @SoVDH before we move further: what is the expected output here?
In other words: How do we plan to validate the list we got from GRIIS? We now created an aggregated, standardized checklist from the sources we trust: https://github.com/inbo/alien-species-checklist/blob/30801e9a03145378626ec27962da36b1b2ed4e74/data/processed/aggregated-checklist.tsv Do we give them that list or should we crossref ours with GRIIS (= more work)?

Closing issue, project is archived. If issue is still relevant, submit to the actively maintained TrIAS unified checklist.


Alignment of message for toast with an image and no title

Hello,
I really like this Toast library and while integrating it into one of my projects I've noticed some strange alignment.
If you set an image and just message (no titile) it looks like this:

And will be better IMHO to align like this:

Thanks! Open for discussion

Thanks @lanserxt, this makes sense to me. Will plan to merge after I get a moment to do some testing.

Hi @scalessec! Any news?


Add description of json file specifications

We should have a specific section in the documentation that outlines how each input file is structured.

One thing I wanted to check in on @peterlai1 was the structure of the tours.json files: Specifically, what are the order of the parameters in the routes list?
"routes": [
      {
        "name": "R-Westbound",
        "args": [
          {
            "departure": 20850
          },
          null,
          {
            "departure": 20975
          },
          null,
          {
            "departure": 21080
          },
          null,
          {
            "departure": 21193
          },
          null,
          {
            "departure": 21354
          }
        ]
   ...

I assume they are sequences of components but I just wanted to check that the "null" is read as "no parameters".

Hi @wklumpen, yes the tour object contains a list of routes to traverse. Within each route instance, the args list correspond to the argument data objects to be applied to the components 1-1 in the order specified for the corresponding route in the routes.json file.  null does mean "no parameters".


medspacy is not compatible with scispacy

I suspect this is because we haven't updated medSpaCy to use spaCy 2.3.

Fixed by updating requirements to >= spacy 2.3.0. #12


Add a way to iterate on glyphs

The sf::Font class gives access to glyphs attributes, but it's very hard to use. One needs to interpret the glyphs metrics correctly, handle whitespace characters, etc..
This feature would allow to:

get the bounding rectangle of a text without constructing a sf::Text instance (with its internal vertex array)
implement your own text class easily
compute a glyph's position in a sf::Text without a special function (getCharacterPos)
etc.

Inactive for half a decade, are we still interested in this?
Has finer-grained access to glyphs ever been requested by SFML users?

Running into this exact issue. Creating a text object seems to be computationally inefficient, and, for things like adjusting word wrap on a resize event, is way too slow. I would absolutely love to see some improvements to this. If I get some time, I'll submit a PR.


Racer support for local crate completion?

I don't know if racer supports completion for extern crates yet for per project, but that would be swell. I don't see anything in the documentation and trying completion in vim isn't working.

Hi @norcalli. Can you give an example? Racer should be able to complete things in extern crates if your cargo.toml is setup, but you may be running into another issue

I installed racer using multirust run beta cargo install --git https://github.com/phildawes/racer.git. I have racer 1.0.0 installed. I cd to a directory with Cargo.toml with hyper dependency listed which has been compiled.  My RUST_SRC_PATH is set to the rustsrc/rust/src path which points to the git clone of rust. I really am not sure what I'm doing wrong.

Hi @norcalli. Hmm, this should work. Maybe there's something up with the cargo install bit. Can you paste post your Cargo.toml and src file please and I'll take a look. Thanks!

It also could be a problem finding the cargo directory under multirust. Is the cargo directory in ~/.multirust/toolchains/beta/cargo/registry/ ?
(I'm assuming you're on unix for multirust - right?)

Yes Mac OSX multirust. https://github.com/norcalli/mintrs is the project if you are curious. Yes the cargo directory exists under ~/.multirust/toolchains/nightly/cargo/registry/. Is there a special setting I should set or is this assumed to be the default?

Ok strangely enough for some reason it is working now, but only when I specify the linenum column and filename, but not when I supply the prefix by itself. Does racer take into account context automatically from where it is called?

Are you using this in an editor or on the command line? If command line, can you paste the commands? Thanks

I ran racer complete hyper:: and nothing showed. Then I made a simple test file with only hyper:: in it at src/test.rs and ran racer complete-with-snippet 1 7 src/test.rs and it works. In neovim, I have deoplete installed as well, and it doesn't seem to be able to pick up the completion for specifically cargo plugins, but running omnicomplete (which calls RacerComplete) works.

I figured it out. When running racer in neovim, it was creating a temporary file, so racer wasn't able to figure out which directory it was based in and the completions didn't work. If I could pass an option to racer about where to search for a path, then that would be optimal. Additionally, if racer complete hyper:: could work based off of the current working directory at least if not through a flag --cwd or something.

Hi @norcalli.
racer takes an additional parameter to allow usage of temporary files - you can tell it where the file should be (so that it can work out the cwd and the filename), and then tell it the tmpfile you actually want to read from.
$ ./target/release/racer complete --help
racer-complete v1.0.0
performs completion and returns matches

USAGE:
	racer complete <fqn>
	racer complete <linenum> <charnum> <path> [substitute_file]

E.g.   racer complete 25 5 /path/to/crateroot/file.rs  /tmp/tmpfile.rs
Hope that makes sense


time left bug?

When using Cookie Monster, often the time left messes up. It will sometimes just freeze in a time which isn't anywhere near the real time.

It's based on average CPS now.  There is an option to revert back to current CPS.  You could also change the history used to calculate average CPS to see if you can get it closer to the update you want.  In my opinion, average CPS would be closer to the real time left since it does account for Wrinklers and Golden Cookies.

Oh, thank you.

Can I close this?

Closing due to lack of response.

I don't see any information on how to set this option. Could you put instructions in the readme?

It's the option that says "Average Cookies Per Second" which would change to "Current Cookies Per Second" which you click on it.


[question] whats is better featehrs services or client rest

whats is the best mthod for use when retrieve info of server for example post pages and list pages of post toolbars etc, whats is better method feathers services or client ??

The client (feathers) in front will get his information on services on back (feathers).
But these services are also usable with any rest client (axios, superagent, ...), I advise to use the feathers client as much as possible for simplicity.

You are refere feather client to app.service(my service) or to client.get,post,push

app.service(path) (https://docs.feathersjs.com/api/client.html)


Total Staked Nodes query does not show data

message | "Relay attempts exhausted"

The portal API is failing with both the network and the altruists on this query. Something probably changed between pocket-core versions and the response.

https://mainnet.gateway.pokt.network/v1/lb/60a2ac11b1747c6552385c61/v1/query/nodes

curl -H 'Content-Type: application/json' --data-raw '{"chain":"0005"}' https://mainnet.gateway-staging.pokt.network/v1/lb/60a2ac11b1747c6552385c61/v1/query/nodes
/query/nodes now times out on most pocket nodes given that RPC timeout is usually 3000ms

According to core, there is no solution for this and may not be a solution in the near future.
The Explorer panel should be changed to say just a static text of "Total nodes: 5000+"
with no call to the /v1/query/nodes endpoint


Use an existing test suite

As per suggestion of @SirVer: https://github.com/json-schema-org/JSON-Schema-Test-Suite

Going to close this issue for now, unit test coverage seems satisfactory for now, and JSON schema is outside the scope of this crate (at least for now).


TextLabelWidget and EditLineWidget 's dispalys are not working properly.

Using this code:
module app;

import qui.qui;
import qui.widgets;
void main(){
	QTerminal term = new QTerminal("Term");
	EditLineWidget input = new EditLineWidget("Input: ");
	TextLabelWidget label = new TextLabelWidget("someText");
	term.addWidget(label);
	term.addWidget(input);
	term.run;
}

The display is "bugged" (look into screenshots).

Although the pattern formed is good-looking, it's a bug and needs to go.
I have rewritten EditLineWidget, but the result is same. This might be an indication that the bug is not in the widgets but probably in Matrix class.

Since I was going to rewrite Matrix class anyways, I'm doing it now.
The current implementation wastes memory by storing all the Cells. I'm rewriting it to only store the changes, and when those changes are written to terminal, they'll be removed.
This might solve the bug.

In Commit bf0cc9377f966900ace793eb386a5d22bd4ed772, most of it has been fixed, and as mentioned in previous comment, Matrix works very differently. I think this bug has been fixed, but another has been introduced, which I am working on.
issue will be closed when these few bugs are fixed

Commit a4759ad499d1301cf030b3feb8f6b298354b54e1 . The bug in Matrix is fixed, but there is another bug in EditLineWidget. Since this issue is about EditLineWidget aswell, this issue wont be closed until that bug is fixed too.

As of commit 9c50c71fe501539171bd2a984c9d982a01d0ab80 , this bug is fixed


RPM name collision on Fedora / Enterprise Linux

There is a name collision in the default repo for Fedora / Enterprise Linux with an older archive utility.  Here is the output of dnf5 info freeze. Due to the version number it will want to upgrade a manually installed RPM to the other package.
Name           : freeze
Epoch          : 0
Version        : 0.1.4
Release        : 1
Architecture   : i386
Download size  : 4.6 MiB
Installed size : 11.1 MiB
Source         :
Repository     : charm
Summary        : Generate images of code and terminal output.
URL            :
License        :
Description    : Generate images of code and terminal output.
Vendor         : <NULL>

Name           : freeze
Epoch          : 0
Version        : 2.5.0
Release        : 36.fc39
Architecture   : x86_64
Download size  : 35.1 KiB
Installed size : 59.7 KiB
Source         : freeze-2.5.0-36.fc39.src.rpm
Repository     : fedora
Summary        : freeze/melt/fcat compression utilities
URL            :
License        : GPL+
Description    : Freeze is an old file compressor and decompressor that is not in
               : common use anymore, but can be useful if the need ever arises to
               : dearchive files compressed with it.
Vendor         : Fedora Project

For this to be more easily redistributable to a dev team, it might be nice to change the package name, perhaps something like freeze-charm? We certainly don't have (the older) freeze installed anywhere, but this collision means I would need to distribute it outside the standard channels, or rebuild/rename the RPM.

Why don’t we go with charm-freeze; we had to do the same for Nixpkgs.


Buy Port Resources from The Black Marketeer

https://runescape.wiki/w/The_Black_Marketeer

I think this is covered under "Player Owned Ports - Manage your player owned port"

Maybe add it here? I want to make sure I am not missing anything when doing my Dailies


Automatic commit & push during a closing an Obsidian

It would be very useful to be possible to turn on an option to
automatic commit & push during the closing of an Obsidian Vault.

Or even automatic pull

if it is difficult to catch Obsidian closing, for example, then button "Push to git" could be added to the interface or to the plugin settings page. Thanks 💜

It is not possible to run such code on closing. You have to call the push command before you close Obsidian.

After some research. Maybe it's still possible.

The current api interface does not work, why we have to wait until it's fixed by the Obsdian devs.

The api is still not fixed, but even if it would work, there's a limit of 4 seconds before Obsidian shuts down even if the plugin still pushes. I doubt that 4 seconds is enough to safely commit and push. Maybe it breaks something if it's stopped while running.

I think the problem is, that we want to have similar instant-save-capabilities which online services such as Google Docs etc. offer - but we are using Git for this instead of directly sending messages / states / diffs.
Even if Git and the repository could handle a commit every 10 keystrokes without the Obsidian UI randomly freezing or showing other artifacts or high CPU load... Even then we would generate possibly too many commits during each typing session. The larger the repository is, the more time git would need to go through all the files to check for any changes.
Theoretically, one could use some Git Internals and try to synchronize git-objects only (without using commits). One could then synchronize these git-objects in real time with the server in a background process. And whenever the user closes Obsidian (or the next commit time is reached) - we only need to snychronise the last few seconds of changes and combine them into a commit. This final push will only take a short time, since most of the objects have already been synchronised previously.
When looking at this stackoverflow discussion, it seems not so far fetched to do that. But most remote repositories would regularly rungit gc which may ruin this.

I'm not a typescript person, but would something like this work? I think exec can live past the parent process, so that would be a way around the time limit. In a real implementation, some sort of time governor might be good to ensure this doesn't hang for some reason, but all of that can be pushed over to the child shell process.
    async init(): Promise<void> {
.
.
.
// Settings area
                    if (true) { //this.settings.pushOnClose) {
                        this.registerEvent(this.app.workspace.on('quit', pushOnClose()));
                    }
.
.
.
// Define callback function
    async pushOnClose() {
        const { exec } = require("child_process");
        exec("git add .; git commit -m \"Test closing commit\"; git pull --rebase; git push;", (error, stdout, stderr) => {
            if (error) {
                console.log("Error while closing on exit: ${error.message}");
            }
        }
    }

I'm tinkering with something similar to what @jgonggrijp does with Shortcuts, but for Windows, using AutoHotKey. Essentially similar, it's a separate launcher for Obsidian but it'll also wait for shut-down and then, afterwards, run the git commands. This avoids the 4 second problem mentioned earlier, with minimal overhead. I can share the AutoHotKey script if anyone's interested.
Would it help to put in a feature request for Obsidian to have a "run task at shutdown time, but wait for this to finish, and then shut down" functionality?

Please share the AutoHotKey script, @dylan-k. I'm interested!
Also, I think asking for a shutdown script feature at Obsidian core is a good idea.

I was wondering if maybe the following flow for tracking changes wouldn't be better:
First we need several timers: add interval, commit interval, push interval, fetch interval (this also relates to #106). Maybe

On app start perform git fetch - to be in sync. If we are ahead of remote, push and resolve possible conflicts.
When user is editing files issue git add for every <add interval> on changed files (imo 3min would be just right). This moves the changes to the staging area. It has benefits in case of system crashes etc. It should also be performant, because git add only creates small blobs frequently. This is somehow similar to "Local history" in IntelliJ.
On commit interval, the commit is made with the timestamp, session number as the title and list of changed files in body (Session #7, 12.04.22-17:37:51 - session ID could inform user about "the sitting" he did the changes in). It resides in the local repository now and waits for a push. 15min interval for that should imo work. This helps us when network connection is poor or we don't want to push so often. It provides easy way of keeping track of local changes and because updates would probably be small, it shouldn't lag.
On push interval, or when user wants to exit the app, but the changes didn't sync yet, a fetch+push is made. For timer, the push would be automatic and in the background. For user induced exit, a prompt saying "Syncing changes... [Cancel]" would be presented (with optional message prompt and squash toggle).

The separation of commit and push would help, because we could constantly keep track of changes via commits in local repo, with added benefit of clean and squashed history in remote (without the need to keep local commit history in the repo). By prompting to wait we can ensure that changes are pushed before exiting.

@T3sT3ro As described in this comment, there are only 4 seconds before exit. I can't stop the exit process with a notification.
In addition, I don't understand, why you want to separate add from commit.

The separation of commit and push would help, because we could constantly keep track of changes via commits in local repo, with added benefit of clean and squashed history in remote (without the need to keep local commit history in the repo).

You want a different history for remote and local? I don't know how that should work.

@Vinzent03 about the 4 second limit -- what I had in mind was some kind of "capture" of the exit event - instead of exiting the app, cancel it and present user with a popup, that has [Close anyway] button that forces the app to quit and plain message/progress bar/loading circle saying that changes are being synced. When sync (push) completes, the app then exits. I don't know if that (capturing and canceling exit via X button) is doable.
As for separating add, commit and push, I don't really have some strong arguments for nor against, but from experience I can say that git add is on average faster than git commit. IIRC git add only creates blob objects, while git commit creates tree objects with metadata, thus the command can take up several seconds to finish.
git basically has 4 areas:
[working dir] --add--> [index] --commit--> [local repo] --push--> [remote]
Because add is fast, it could be run frequently. Keeping one commit or few commits would result in faster final push, thus the separation. Push would trigger only to sync the data.
What I currently use on my system is the following crontab run every 15 minutes. I think the flow idea works great and it would be useful to reproduce it here. It reduces the amount of commits in the repo, and each commit describes a meaningful "editing session".
#!/bin/bash

# The idea is to commit only after some inactivity.
# For cron interval X, there is the period it works like so:
# The session is called a "flow" because you are "in the flow" when editing files
#  | is cron interval, + is local file modification,
#  C is new flow commit, a is ammend, P is push, s is pull
#  f is the moment `.flow` file is generated, r is when `.flow` file is deleted
#  .flow file is added to .gitignore
# |.....|+.++.|..++.|....+|.....|.....|.+...|.....|     <- cron interval 15 min
# s     s     fC    a     a     srP   s     fC    srP
#       ---------flow #1---------     ---flow #2---     <- one commit per flow

cd "$HOME/notes"

msg_cmd(){ # compose commit message
    date +"auto sync $(cat .flow)@$HOSTNAME: %x %X"
}

CHANGES="$(/usr/bin/git status --porcelain | wc -l)"
if [[ "$CHANGES" -eq 0 ]]; then # nothing changed
    /usr/bin/git pull # sync remote changes first
    if [[ $? -ne 0 ]]; then # notify on merge conflict and exit
        /usr/bin/notify-send Notes "Conflicting notes" -i update-high -h int:transient:1
        exit 1;
    fi;

    if [[ -e .flow ]]; then # if there was a flow, but it became stale
        /usr/bin/git push
        rm .flow
        /usr/bin/notify-send Notes "Flow synced" -i update-low -h int:transient:1
    fi
else
    /usr/bin/git add . # if changes exist - add to index
    if [[ -e .flow ]]; then # if there is active flow, ammend the commit + time
        /usr/bin/git commit --amend -m "$(msg_cmd)"
        /usr/bin/notify-send Notes "Flow updated" -i update-medium -h int:transient:1
    else # if there is no active flow, create new commit
        date +%s >.flow # create a session with timestamp as session ID
        /usr/bin/git commit -qm "$(msg_cmd)"
        /usr/bin/notify-send Notes "New flow started" -i update-low -h int:transient:1
    fi
fi

what I had in mind was some kind of "capture" of the exit event

The key of this issue is that this is not possible. I cannot delay nor cancel the exit process. Thus, it's not safe enough to either commit or push.

If Obsidian does not support delay or cancel the exit process, can it support a command like "Commit, Push and Exit"? Then users can assign a hotkey to this command. When they need to exit Obsidian, they just press this hotkey instead of Alt+F4.
This will be quite similar to delay exit.

@a1exwang Thanks, an interesting idea. Available in new release 1.31.0. I will leave this issue open, but that's a good compromise.

Is the shortcut to "Commit, Push and Exit" implemented? I tried looking for it, or something equivalent, both in obsidian-git settings as well as in Settings > Hotkeys but couldn't find anything.

here's a shell script that you can run as a chron job that push/pulls on Obsidian open/close: https://gist.github.com/raghavauppuluri13/c55d5a6a820d75926472089c0d842f06

@raghavauppuluri13 your script works flawlessly, thank you!
but i dont understand how you would start this as a cronjob - as this scripts acts like a robot and runs in the background all the time. if you start it periodically with a cronjob you would start multiple of the job at the same time - or am i missing something?

@raghavauppuluri13 your script works flawlessly, thank you! but i dont understand how you would start this as a cronjob - as this scripts acts like a deamon and runs in the background all the time. if you start it periodically with a cronjob you would start multiple of the job at the same time - or am i missing something?

I am using a linux system. so I can simply run the following to open the crontab file:
crontab -e

Then add the following line:
@reboot XDG_RUNTIME_DIR=/run/user/1000 <full-path-to-script>/obsidian-push-on-close.sh

which ensures that the script gets started on reboot and any notify-send commands are visible on my screen. Here are alternatives for Mac and you can use the Task Scheduler on Windows

@a1exwang Thanks, an interesting idea. Available in new release 1.31.0. I will leave this issue open, but that's a good compromise.

This is pretty good, considering I don't even need a different hotkey -- it is possible to assign Alt+F4 as the hotkey. I also added this snippet to force myself to use the hotkey:
.titlebar-button.mod-close { display: none; }

There are still other ways to close without backing up, of course, but this is good enough. Unless you can find a way to intercept the vault closing/app exit and replace it with "backup and close".

one of common solution for this kind of problem is that launching a detached process and do the work in that process but i'm not sure these are possible in obsidian. because it usually touches some of security issues.

Maybe we can run a sync service in background, and 4 seconds is enough to send a sync message to the service.

bump + is it not possible to block the close process?

bump + is it not possible to block the close process?

No, and I doubt that this will ever change. It certainly won't change on all of the different operating systems where Obsidian runs.
The reason is this: when a multi-tasking OS decides that it's time for a process to end, it will usually send some kind of signal to that process saying "shut yourself down". When a process receives this signal, it is expected to save whatever data needs to be saved and then exit cleanly. If the process doesn't exit within a certain amount of time, the OS assumes that the process is "hung" and didn't receive the signal, so it will kill the process, i.e. just stop giving it any CPU time slices and remove it from memory. If this happens, any data that wasn't saved (to disk, to network, etc.) is lost.
It might be nice if the OS had a mechanism where, when a process receives this signal, it could tell the OS "wait, I need more than two seconds to save everything" ... but that's not something that macOS, Linux, or ms-windows have support for. The closest I've seen is in macOS - it sends a different signal when telling a process to shut itself down because the system itself is shutting down, and there's a way for the process to say "no" and block the shutdown ... but this isn't feedback channel isn't available for normal process shutdowns.


DOC: Fixed Midas Journal link to use HTTPS

The link to the Midas Journal is broken because it's using HTTP.  That server
requires HTTPS.

PR Checklist

[ ] No API changes were made (or the changes have been approved)
[ ] No major design changes were made (or the changes have been approved)
[ ] Added test (or behavior not changed)
[ ] Updated API documentation (or API not changed)
[ ] Added license to new files (if any)
[ ] Added Python wrapping to new files (if any) as described in ITK Software Guide Section 9.5
[ ] Added ITK examples for all new major features (if any)

Refer to the ITK Software Guide for
further development details if necessary.

How did this escape mass change from http to https?

How did this escape mass change from http to https?

I did a "git grep 'http:' | wc" on the ITK code base and got 2351 hits. So there are a lot that need to be fixed.  This one happened to not work when I was trying to read the reference.

Many could be old, broken links, without either http or https working.

That server requires HTTPS.

A property configured server should use a return 301 to redirect http to https, is that server something that could be fixed?

I've changed the link to MidasJournal.org.

I've changed the link to MidasJournal.org.

@dave3d  Are you sure? Your force-push only removed a single space, it seems.

I've changed the link to MidasJournal.org.

@dave3d Are you sure? Your force-push only removed a single space, it seems.

Oops, my bad.  Maybe it's right this time?

Maybe it's right this time?

Yes, now it's fine, thanks @dave3d. So HTTP was not the problem?

Maybe it's right this time?

Yes, now it's fine, thanks @dave3d. So HTTP was not the problem?

Yeah, you're right.  It was really an old/incorrect domain name.


Team Page sorting

Allow sorting on the team page by "recently edited" and "name (Alphabetical)
Add a way to favorite teams, which is the main way to "group" teams

Mock up idea:

Could also do some interesting filtering with the Elements:

Leave them all on for teams of any composition.
Or select the elements to display those team types, eg; if you want to see a Hu Tao, double hydro with Zhongli team you would only turn on Pyro, Hydro and Geo. And that would also show a Yoimiya, Xingqiu, Yunjin, Zhongli team

I think this filter would be too general. Another approach would be to filter based on character(s).
So if someone chooses Furina, they will get any team with Furina in it.
If they choose Furina and Xiao, they will get any team with both Furina and Xiao in it.
As for the implementation, I imagine it will lock something like the "Artefact Sets" drop-down menu in the artefacts page.

Yep I believe the plan is to add a character filter in exactly the manner you described

Could also do some interesting filtering with the Elements:
Leave them all on for teams of any composition. Or select the elements to display those team types, eg; if you want to see a Hu Tao, double hydro with Zhongli team you would only turn on Pyro, Hydro and Geo. And that would also show a Yoimiya, Xingqiu, Yunjin, Zhongli team

This seems to be a suggestion more appropriate for https://github.com/frzyc/genshin-optimizer/issues/1526. But on the outset I don't think it is very initituive to group teams by elements, because it can be ambiguious whether that means resonance or character element.

because it can be ambiguious whether that means resonance or character element.

Isn't that the same thing in this case?


Cannot parse time formats that look like this: 2017-01-17T22:58:45

Problem statement
When deserializing JSON from a server that has date formats that look like this: 2017-01-17T22:58:45, I get a parsing error:
parsing time \"\"2017-01-17T22:58:45\"\" as \"\"2006-01-02T15:04:05Z07:00\"\": cannot parse \"\"\" as \"Z07:00\"

Steps to reproduce
Try to deserialize 2017-01-17T22:58:45 into a strfmt.DateTime field
Suggestions?  I tried manually changing the generated code to a time.Time, but still get the error.

This time stamp is missing zone info, it should end with Z for UTC IIRC
It can be fixed by adding more patterns here: https://github.com/go-openapi/strfmt/blob/master/time.go#L60


Removing EventType dependency from eventing-contrib

Helps with https://github.com/knative/eventing/issues/2484
Proposed Changes

🧽Removing runtime dependency on eventing due to EventType.
🧽Lot's of cleanups to the different sources.

Disclaimer: only tested the GithubSource.
See eventing PR https://github.com/knative/eventing/pull/2770 for more context

Release Note

Sources in eventing-contrib no longer need EventType from eventing.

Docs

/assign @lionelvillard @vaikas @n3wscott @mattmoor

omg 👍 🥇

@slinkydeveloper it seems that moving to v2 broker some UTs in kafka? The message does not have Key anymore? Can you check?
afka/source/pkg/adapter/message.go:102:8: msg.Key undefined (type *kafka_sarama.Message has no field or method Key)

@nachocano https://github.com/knative/eventing-contrib/pull/927

@n3wscott this should be ready to go in if the integration test pass...
Can you take another look?

/lgtm
/approve


refactor(rust): do not force node_name on database creation

Does any of website examples need update because of the credential command change?

Nope, as the website examples stored credentials that don't include identity attributes. That is, the identity attributes repository/database table is not used.


Timing Diagram Visualization

Is your feature request related to a problem? Please describe.
What are your thoughts on making a timing diagram visualization. It would be easier to look at how the different signals are acting at certain instant of time.
Describe the solution you'd like
To build a tool that would help us to visualize the timing diagram. Probably something like this.

Are you working on this? (Yes/No)
No

Try placing a Flag from the Misc section and connect a wire to it. It does this.

Yes the feature is already present but in a prototype stage. Check #252


Consider adding Index trait syntax sugar for things that take FooOffset types

This occurred to me when doing DebugStr but I didn't write the code for it.  Instead of having doing
debug_str.get_str(offset)
Perhaps we should do
debug_str[offset]
What do you think, @fitzgen?

The Index trait is too strict about the types it can return: it has to return a reference. In most cases, we want to return an EndianBuf, which is really just a &[u8] but since it encapsulates the reference rather than being a reference, we can't use it with Index.
See https://github.com/fitzgen/gimli/blob/3989b84e811e3af46feb211c5f17a0cf35690572/src/endianity.rs#L99
Now, this ends up not being an issue for DebugStr, since we generally want to get &std::ffi::CStrs out of it, but I think it makes sense to just be consistent and avoid Index. Personally, I don't mind an explicit get_str method.
I don't feel super strongly about this though, so maybe if @philipc disagrees we should do it...

But in general, yes I think adding range{_from,_to} methods that return EndianBufs for all the various section types makes sense.

I guess Index wouldn't work for DebugStr either, since it returns a Result and not a reference.

I think we can only use Index if every index in [0..len()] is valid, and we can return a reference to it. For DebugStr, we could trivially ensure that by only allowing creation of DebugStr if the last byte is null (and then get_str can't fail), but that's probably getting a bit too tricky, and actually mid-string offsets aren't really valid, even though we can return a result for them.
For EndianBuf, we don't actually need the Index trait because of the Deref to [u8], and the code compiles if we delete it.

I haven't felt a need for either Index or range. I think this is something that user code rarely needs to do. Closing, but feel free to reopen if you disagree.


Update zio-interop-reactivestreams, ... to 2.0.0-RC7

Updates

dev.zio:zio-interop-reactivestreams
dev.zio:zio-nio

from 2.0.0-RC6 to 2.0.0-RC7.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (2.0.0-RC6).
You might want to review and update them manually.
build.sbt

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "dev.zio" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequest = { frequency = "@monthly" },
  dependency = { groupId = "dev.zio" }
}]

labels: library-update, early-semver-pre-release, semver-spec-pre-release, old-version-remains, commit-count:1

close in #1431


[ssl] add helper to fetch the latest cacert bundle

[ ] add helper to fetch the latest cacert bundle from

https://github.com/bagder/ca-bundle
https://curl.haxx.se/ca/cacert.pem

By the way: this is the official installer: https://github.com/CAcertOrg/cacert-root-cert-installer

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Added both download links to the documentation.


Include more descriptive property names

It would be nice to see an example with '''actual''' placeholder values already placed in the config.py.
For example, what does the workspace_id refer to, does it refer to the workspaceId in the Log analytics workspace, or does it refer to a resourceId of that La workspace (/subscription/...)

It's the workspace ID, there's no use of a resource ID. I'll specify it further in the README


Flavor specific

Metanorma PR checklist

[ ] Breaking changes (list related PRs)
[ ] Documentation update required (create task for this)
[ ] External dependency introduced (documentation update need)
[ ] Gem with native library introduced

Decided not to merge because of the following:

Most commits were already merged into main and this is just the commit history.
Ankita made 1 commit (most recent): The topics didn't meet the requirements for the Metanorma documentation and what we agreed on during the Season of Docs project. The topics also mostly consist of copied and pasted content from other sources.


Correct implementation of non-join query expressions

As it stands, UNION, INTERSECT and EXCEPT are implemented and Binary nodes on two ASTs - but the SQL spec and (at least Postgres's) implementations treat them more like a sub-select.  Check out:
http://www.postgresql.org/docs/9.1/static/sql-select.html
and
http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt (page 195)
Specifically, the only correct way to limit a union is like:
SELECT * FROM table {} UNION SELECT * FROM table LIMIT 100
LIMIT isn't valid (although it's accepted) at {} and it should apply to the overall query, not the second tree.
Regardless, SelectManager#{union,intersect,except} pass in two ASTs to the Binary nodes, so limits get removed anyway.

Per #523, Arel development is moving to rails/rails.
If this issue is still relevant, please consider reopening it over there. (Note that the Rails repository does not accept feature request issues, and requires reproduction steps that rely on Active Record's documented API.)


adding link checker

Right now it just checks in the Action but doesn't fail.
Some urls show failing but are resolvable.

added dependabot to keep Actions up to date.

closes #50


DatabaseMetaData getIndexInfo does not include COLUMNSTORE Indexes

Driver version
<IP_ADDRESS>
SQL Server version
Microsoft SQL Server 2022 (RTM-GDR) (KB5046861) - 16.0.1135.2 (X64)
Oct 18 2024 15:31:58
Copyright (C) 2022 Microsoft Corporation
Developer Edition (64-bit) on Windows 10 Pro 10.0  (Build 22631: ) (Hypervisor)
Client Operating System
Windows (but really any)
JAVA/JVM version
java version "21.0.1" 2023-10-17 LTS
Table schema
WideWorldImporters.Sales.InvoiceLines
Problem description
DatabaseMetaData getIndexInfo does not include COLUMNSTORE Indexes

See Screenshot from one of my tools:
And a Screenshot from SSMS:

Expected behavior
That all indexes that re on the table are included in the resultset
Actual behavior
Output of what you actually see.
Error message/stack trace
None
Any other details that can be helpful
Nope
JDBC trace logs
None

The driver calls sp_statisitcs procedure to get the index info and it does not include the COLUMNSTORE indexes
e.g.
exec sp_statistics 'tcol', 'dbo', 'tpch', '%', 'N', 'E'

We will check why it does not return this info and get back on this.
Meanwhile, as a workaround, a query similar to following on sys.indexes returning this info can be used:

SELECT
    db_name() AS CatalogName,
    sch.name AS SchemaName,
    t.name AS TableName,
    i.name AS IndexName,
    i.type_desc AS IndexType,
    i.is_unique AS IsUnique,
    c.name AS ColumnName,
    ic.key_ordinal AS ColumnOrder
FROM
    sys.indexes i
INNER JOIN
    sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
INNER JOIN
    sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id
INNER JOIN
    sys.tables t ON i.object_id = t.object_id
INNER JOIN
    sys.schemas sch ON t.schema_id = sch.schema_id
WHERE
	t.name = 'tcol'
	AND sch.name = 'dbo'
ORDER BY
    t.name, i.name, ic.key_ordinal;


update to version 1.0-1

@DrDaveD New packages are available: https://ecsft.cern.ch/dist/cvmfs/cvmfs-x509-helper/

Thanks.  Please tag the git source too.  I don't think 0.9 got tagged.


HAWQ-1183. Writable external table with Hash distribution shows slow …

…performance
This fixes some warnings also in the affected source file.

I thought adding a case, but it seems that it is hard to add one in the current framework.

ok, maybe we could test it manually for this.

@zhangh43

@huor

+1 for external table bucket number change.

+1

Merged.