#5264 - Add amino acids to the library

Issue = > https://github.com/epam/ketcher/issues/5264

[x] Add amino acids to the library

https://github.com/user-attachments/assets/a3f53fc0-0301-4f90-af7f-cdb0d4a2eca9
Check list

[ ] unit-tests written
[ ] e2e-tests written
[ ] documentation updated
[x] PR name follows the pattern #1234 – issue name
[x] branch name doesn't contain '#'
[x] PR is linked with the issue
[x] base branch (master or release/xx) is correct
[x] task status changed to "Code review"
[x] reviewers are notified about the pull request

As I can see, the ticket has draft label, could you please clarify with the BA whether it could be picked up for work?
Also aminoacids should be placed within Peptides tab of the library, not CHEM

As I can see, the ticket has draft label, could you please clarify with the BA whether it could be picked up for work? Also aminoacids should be placed within Peptides tab of the library, not CHEM

Thanks. I have already contacted BA work on this issue will be finalized soon, after that I will make edits.

I am closing this pull request because the code implementation had issues with the JSON file, and I need to start over. I will create a new pull request with a corrected implementation shortly.


Import setting using OI File Manager fails on a new device

Expected behaviour
Expect to see my mail boxes configured
Actual behaviour
msg: Failed to import any settings form settings.k9s
Steps to reproduce

Export
Import
:)

Environment
K-9 Mail version:
5.0.10 on import side 5.108 on export side
Android version:
5.0.2 on export 6.0 on import
Account type (IMAP, POP3, WebDAV/Exchange):
IMAP

K-9 Mail 5.010 can't import settings exported by newer versions of the app.

👍


Extracting Errors

Flatten out error
Hi all I hope this should close PR issue 168 So I went for a KISS solution.

[x] Added extension underlyingError in order to get Swift.Error
[x] Added specs to cover claims

CI is seemingly failing

@freak4pc  all good now and it can now go into master.
Sent with GitHawk

@freak4pc final cross check.. I think it's ok now.. we can actually make another release


[BUG] - External linkage doesn't seem to work.

Please provide the following information when submitting an issue.
I am trying to link a function to be 'external' yet on the output ll it's not doing anything. This does work for internal, and all other linkage types.
function.Linkage = Linkage.External;
// Doesnt work
//output
define void @run()
//end of output
//expected output
define external void @run()
//end of expected output
function.Linkage = Linkage.Internal;
//Does work
//output
define internal void @run()
//end of output

It turns out it's an issue with LLVM-C or something of that nature.


Fix two issues of #4369

This fixes the two issues of #4369.

Swap file cannot be found by wrong expansion of environment variables. (mainly on Windows)
Expansion should be avoided in expand_wildcards() and fullpathcmp() in recover_names().
Cannot be recovered after the warning E325 when the extension is .scr etc.
Check of file extension should be avoided when ml_recover() is called from handle_swap_exists().

Codecov Report

Merging #4415 into master will increase coverage by 0.01%.
The diff coverage is 77.77%.

@@            Coverage Diff             @@
##           master    #4415      +/-   ##
==========================================
+ Coverage   80.39%   80.41%   +0.01%
==========================================
  Files         109      109
  Lines      142728   142735       +7
==========================================
+ Hits       114750   114783      +33
+ Misses      27978    27952      -26

Impacted Files
Coverage Δ

src/if_cscope.c
76.42% <ø> (ø)
:arrow_up:

src/main.c
71.88% <0%> (ø)
:arrow_up:

src/gui.c
57.99% <0%> (-0.06%)
:arrow_down:

src/buffer.c
80.86% <100%> (+0.27%)
:arrow_up:

src/spell.c
80.56% <100%> (+0.01%)
:arrow_up:

src/misc1.c
79.21% <100%> (+0.02%)
:arrow_up:

src/ex_docmd.c
80.04% <100%> (ø)
:arrow_up:

src/ex_cmds.c
82.18% <100%> (ø)
:arrow_up:

src/spellfile.c
73.83% <100%> (ø)
:arrow_up:

src/search.c
82.02% <100%> (ø)
:arrow_up:

... and 13 more

Continue to review full report at Codecov.

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

Fixed in 8.1.1371.


use GitHub username instead of login

One's GitHub handle is referred to as their username instead of their login.

Since this application is used externally, would you consider that such terminology should be used? You can use the login terminology for variables and such, but I recommend changing the input placeholders and paragraph elements with username.

Since this application is used externally, would you consider that such terminology should be used? You can use the login terminology for variables and such, but I recommend changing the input placeholders and paragraph elements with username.

Mhm! I'll probably just gratis merge this then change it in post.


CommonJS module receiving ESM export

Bug report

What is the current behavior?
I am building a typescript application with electron-forge. My tsconfig is set to module CommonJS, with Node moduleresolution, due to limitations in electron-forge libs.
When I import swr I get the ESM export from the swr module when running in development. I assume this is due to the module's package.json having no exports field, but main/module, and webpack picking module in this case, which gives me the module export from swr. This is expected and works fine.
Another one of my (own) dependencies gets imported as CommonJS. I assume it's due to the module's package.json.export-field, which is set to give the CommonJS export for require and ESM for import. This also works fine, and is expected when building as CommonJS.
However, a problem occurs when that module also imports swr, but this time via a CommonJS require-call. It seems to receive the same module as the first import of swr, which was resolved to the ESM export. This unfortunately doesn't work as the ESM module uses a named default export, which doesn't seem to be resolved the same way via CommonJS require-calls. The CommonJS code gets the exported object, which can't be called as a function (the expected default export).
If the current behavior is a bug, please provide the steps to reproduce.
Import swr and receive ESM export. Import another CommonJS module which itself importsswr via require. The second call receives the cached (i assume) ESM module, which doesn't have a valid CommonJS default.

What is the expected behavior?
I think my expected behavior is that the require-call in my external CommonJS module should receive the CommonJS export from the swr module, and not the ESM export.

Other relevant information:
webpack version:  5.74.0
Node.js version: 16.18.1
Operating System: macOS 12.6
Additional tools: Typescript 4.8.4

I did some more digging here, and don't think the problem is due to the ESM module being cached due to earlier imports.
I tried removing the other swr imports, and the require-call in my imported commonjs module still receives the module and not main export from swr.
The problem seems to be webpack picking the swr module export, even when swr is being loaded via a CommonJS require call..

I think this problem is caused by webpack preferring 'module' over 'main' (due to my resolve.mainFields). While the exports field is directly connected to how the module is requested, import or require, which can give a mix of ESM-exports being provided to CommonJS require-calls.
I can override this behavior by changing resolve.mainFields or resolve.conditionNames, but it's unfortunate that it's changed for my entire build and not just the case where I'm requiring modules from CommonJS code.
I think I'll put in a vote for the swr issue requesting named export, which will fix my issue.

I solved this by adding a module condition to the package.json exports fields in my modules, which causes webpack to pick up the ESM export.


Fix Action Titles in shared model

Some Action classes had title as member variables. This is now part of the BaseActionElement class.

@riarenas,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Add link to blogpost

I recently wrote an introductory blogpost about daru. The article is entry level and basically an example of manipulating small, simple dataset.

Thanks :)


beforeEach as an adding function instead of a unique hook.

What is your Test Scenario?
I want to have the same settings for a lot of different tests. Extending somehow the default beforeEach behavior so they are easily to put in groups.
What are you suggesting?
Being able to define more than one beforeEach like we have more than one meta for each fixture so we can extend and group fixtures that need a common setup.
What alternatives have you considered?

Additional context
for example
export function desktop_fixture(fixture_name) {
  return fixture(fixture_name)
    .meta('fixture_size', 'desktop')
    .beforeEach(async t => {
      await t.maximizeWindow();
    });
}

and then have desktop_fixture for some of my tests and others are mobile_fixtures and they have the beforeEach also for them in the fixture definition...

Thank you for your suggestion. The idea to specify multiple fixture/test hooks without them being overridden looks interesting. We will consider supporting this scenario.
Also, I think you can achieve the desired functionality once it is possible to specify fixture and test hooks at the test run level (#4323). After that, you can run tests whose metadata contains specific values with a separate setup logic:
testcafe chrome --fixture-meta fixture_size=desktop e2e/**/* --global-setup desktop-setup.js
testcafe "chrome:emulation:device=iphone X" --fixture-meta fixture_size=mobile e2e/**/* --global-setup mobile-setup.js

Then, these runs can be divided among multiple CI jobs. Please note that we haven't finalized the feature design of global hooks yet, so it'll probably be changed in the future.


k8s: Update grafana dashboard with latest metrics

This change is

Coverage decreased (-0.02%) to 43.027% when pulling 8b72dfc43127b556a08cc2c687ec5cad60e2f0e6 on pr/tgraf/update-grafana-dashboard into 2ee4d5f2c323df859ec53a093fe116ec0a948c27 on master.

Reading the diff of the Grafana dashboard is not feasible due to its size. Maybe we should use https://github.com/weaveworks/grafanalib to generate the dashboard?

Agreed with @brb  , it's hard to review such large diffs. Is there anything in particular to look at / note in this PR which would make it easier to review?

Not opposed to grafanalib but it's another steep learning curve for all engineers. Who would be able to review that diff right now? It's auto-generated JSON, the review should really happen in the rendered dashboard with actual data. So maybe screenshots?

So maybe screenshots?

Yes, it would work.

Reading the diff of the Grafana dashboard is not feasible due to its size. Maybe we should use https://github.com/weaveworks/grafanalib to generate the dashboard?

Grafana also uses jsonnet to create the dashboards, we can use that also.


Do not block admission if namespace already exists

Resolves https://github.com/GoogleCloudPlatform/kubernetes/issues/5873
If there are concurrent operations that attempt to create a resource in a namespace that had not previously existed, there could be a race on who gets to auto-provision that namespace.  The second call will fail with a reply from their attempt to create a namespace saying it already exists.  Since the goal is to ensure it exists, we should not error on an already exists error.

LGTM


publish to arch user repository

https://misskey.niri.la/notes/9km7ougw0c
https://misskey.niri.la/notes/9km7siew28

https://misskey.niri.la/notes/9km7jxrszd

I published vrc-get to AUR yesterday. I hope it was not premature or impolite to do so.
https://aur.archlinux.org/packages/vrc-get
I read that you want to automate publishing to AUR through GitHub Actions. Please feel free to use the above PKGBUILD as a template.

I'm interested in publishing to AUR through GitHub Actions but since I'm not a user of Arch Linux, It's hard to check the PKGBUILD is working well or not. So, If possible, I want someone to maintain AUR distribution of vrc-get.

I will be able to maintain the AUR.
I looked at GitHub Actions that publish a PKGBUILD to AUR, and they seem to
only handle the publishing step; they require a previous script to handle
generating the PKGBUILD with the correct version number, hashes, etc. So, I
haven't looked into automation further.
If you have any requests, suggestions, or would like me to add you or
someone else as an AUR maintainer, please feel free.
Thank you!
On Fri, Dec 15, 2023, 10:54 PM anatawa12 @.***> wrote:

I'm interested in publishing to AUR through GitHub Actions but since I'm
not a user of Arch Linux, It's hard to check the PKGBUILD is working well
or not. So, If possible, I want someone to maintain AUR distribution of
vrc-get.
—
Reply to this email directly, view it on GitHub
https://github.com/anatawa12/vrc-get/issues/236#issuecomment-1858719823,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA4SWYHLS2K55JM22MRCK4DYJUSPRAVCNFSM6AAAAAA5YOTWCKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNJYG4YTSOBSGM
.
You are receiving this because you commented.Message ID:
@.***>

@libjared could you add @YTJVDCM as a maintainer of vrc-get on AUR?

Good idea, done.
On Wed, Feb 14, 2024 at 8:45 PM anatawa12 @.***> wrote:

@libjared https://github.com/libjared could you add @YTJVDCM
https://github.com/YTJVDCM as a maintainer of vrc-get on AUR?
—
Reply to this email directly, view it on GitHub
https://github.com/anatawa12/vrc-get/issues/236#issuecomment-1945279882,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA4SWYGWCWB22CVMTXNERKLYTVZGLAVCNFSM6AAAAAA5YOTWCKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNBVGI3TSOBYGI
.
You are receiving this because you were mentioned.Message ID:
@.***>


Refactor FilePicker.java intent result handling

Fixes #5850
What changes did you make and why?

Removed CAPTURE_VIDEO request code and it's checks, while from what I can understand we do not handle video mime type. Though if I missed something and I'm wrong please let me know, happy to make changes.

Removed Video's picker test cases.

Only Gallery picker's callback was handling changes for both Document picker and Gallery picker.  So, passed appropriate flag to make sure respective callbacks get invoked

EDIT:

Removed below code

 else if (isPhoto(data)) {
                        onPictureReturnedFromCamera(activity, callbacks);
                    } else {
                        onPictureReturnedFromDocuments(data, activity, callbacks);
                    }

isPhoto(data) method checks if the returned data is null or not. Now, it for Document and Gallery picker results we rely on returned results so we are making sure it's not null. But, later after all the specific checks we had the above code.
To understand the problem, let's say we got the result of Document picker which also checks for !isPhoto() to make sure result is not null. But let's say it is then the above mentioned check would invoke the callback for handling camera result but didn't we returned the result for document picker (however very unlikely to get null from document picker we either get cancelled or result ok, which we already take care of before making these checks).
My understanding is this the check was added under the assumption that we store the image in the persistent storage when using camera's result. So it just made simple check if the result is null then it must be camera's result otherwise document's result. But from above we understand that it would wrong to use camera's image (will return the last stored image which is wrong)  when user has chosen Document/Gallery one (less likely but still we shouldn't have this check)
Tests performed (required)

Ran test for FilePicker.java file.

manually tested. below is this demo.

Screencast from 2024-10-15 02-07-13.webm
Tested {build variant, e.g. ProdDebug} on {name of device or emulator} with API level {API level}.
Build variant: betaDebug
API level: 34 (Emulator) & 34 Oneplus 9RT 5G

Wow, that was fast! Thanks @nicolas-raoul 👍


Add note command to store confidential texts / notes

A new note command would be helpful to store confidential texts / notes in addition to accounts.
To add and edit a secure note:
$ pick note edit todo
Enter password:
..
Now, some kind of editor like vim is invoked.
Once this editor is closed, the note will be saved in pick.

To remove a secure note:
$ pick note rm todo
Enter password:
..
Note removed

This should be quite easy to implement using os/exec which opens the default $EDITOR with a temporary file in ~/.pick/tmp.
Once this file is closed, pick will copy the file's contents to memory, delete the file, and save the contents to the safe.

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"os"
	"os/exec"
)

func main() {
	editor := os.Getenv("EDITOR")
	if editor == "" {
		editor = "vim"
	}
	editorPath, err := exec.LookPath(editor)
	if err != nil {
		log.Fatal(err)
	}
	tmpDir := os.TempDir() // "~/.pick/"
	tmpFile, err := ioutil.TempFile(tmpDir, "pick.note.tmp")
	if err != nil {
		log.Fatal(err)
	}
	cmd := exec.Command(editorPath, tmpFile.Name())
	cmd.Stdin = os.Stdin
	cmd.Stdout = os.Stdout
	cmd.Stderr = os.Stderr
	if err := cmd.Start(); err != nil {
		log.Fatal(err)
	}
	if err := cmd.Wait(); err != nil {
		fmt.Println("Done with error", err)
		return
	}
	fmt.Println("Done without any errors, entered text:")
	note, err := ioutil.ReadFile(tmpFile.Name())
	if err != nil {
		log.Fatal(err)
	}
	fmt.Print(string(note))
}

Interesting idea.
I'd like to flush out the design for this feature before jumping into implementation (although I like the use of $EDITOR). My concern is adding something that feels like a bolted on feature.

What if we add a --note flag to the commands?
$ pick add --note foo

$ pick cat --note foo

$ pick ls --note

$ pick rm --note foo

Doesn't this make it much more complicated to implement and use?
I would rather add a $ pick note subcommand

@leonklingele Thought about this last night, along with some other general design things, and am totally onboard with adding notes as a first-class citizen.
If you're interested, I'd like to share/spitball some of these ideas so I can setup a bit of a roadmap. You can email me at<EMAIL_ADDRESS>to start the conversation (I didn't see any contact for you or I'd have just shot you a message).

Thanks for merging.


feat(merkle tree): Snapshot recovery for Merkle tree

What ❔
Allows to recover a Merkle tree from a snapshot (collection of tree entries ordered by ascending key). The recovery procedure is fault-tolerant (may be paused and restarted).

⚠ Warning. This branch is (temporarily) based on #119 and includes all its commits. Once #119 is merged, I'll rebase this branch to exclude these extra commits.

Why ❔
This is one of components for recovering a node from a snapshot.
Checklist

[x] PR title corresponds to the body of PR (we generate changelog entries from PRs).
[ ] Tests for the changes have been added / updated.
[ ] Documentation comments have been added / updated.
[x] Code has been formatted via zk fmt and zk lint.

Recovery timings
Preliminary order of timings with 10M recovered entries (50 chunks x 200k entries / chunk), performed locally on my MacBook using the new recovery example in the tree crate:

Tree traversal (creating new nodes) is 0.18s / chunk.
Computing hashes is 1.3s / chunk.
Persisting to RocksDB is 0.2s / chunk.
Total recovery time is 77.5s.

(I've initially messed up with key distribution for the generated snapshot, so the previous values were incorrect.) Overall, these values are on par with the main tree operation (I've tested it locally as well for this branch and the main branch to see if there are perf regressions – doesn't look like that). The only weird thing is that the tree crate readme contains significantly smaller timing for computing hashes (0.7s) for about the same amount of hashed data. Since the tree in main still has 1.3s timing for computing hashes, if this is a regression, it's not related to this PR.
Leaf versions are hard
I've spent quite a bit of time implementing "correct" node version recovery so that after the recovery the tree is identical to the pruned tree at the recovered version, not only in terms of (key, value, enum index) triples, but in terms of versions of each tree node as well. A slight problem that I've realized too late is that the tree is the only place we can get these versions from. I've initially thought that a leaf version is equal to the L1 batch number it was last modified in, but this is actually not the case. A leaf may be moved afterwards (caused by a new leaf being inserted adjacent to the leaf), which would increase its version as well. So either we need to get leaf versions from the tree, or we'd need to give up on having version-accurate tree after recovery.


Dynamic import unable to load requested module

Hello!
I am experimenting with ClearScript and I am unable to resolve one issue.
I was trying to invoke metod from module but, as the description of Invoke function says: only globally available functions and procedures.
I created special bootstraping script which does not seem to work properley.
I have such Program.cs:
public static class Program
    {
        static async Task Main(string[] args)
        {
            using (var engine = new V8ScriptEngine(V8ScriptEngineFlags.EnableDynamicModuleImports))
            {
                engine.DocumentSettings.AccessFlags = DocumentAccessFlags.EnableAllLoading;

                engine.ExecuteDocument("bootstrap.js", ModuleCategory.Standard);

                var b = await engine.Invoke("bootstrapModule", "./test.js", "testScript", new object[] { }).ToTask();

                Console.WriteLine(b as string);
            }
        }

    }

And such bootstrap.js
export async function bootstrapModule(path, funcName, params) {

    let importedModule;
    try {
        importedModule = await import(path);
    } catch (ex) {
        return 'err: ' + ex;
    }

    return importedModule[funcName].apply(null, params);
}

globalThis.bootstrapModule = bootstrapModule;

and also test scripts
//test.js
import { testScript2 } from './test2.js';

export function testScript() {
    return testScript2();
}

//test2.js
export function testScript2() {
    return 'addddsdf';
}

All the time I am receiving only error: Error: Invalid module load request. I am not sure why this occure. I think that this has problem with function from bootstrap.js that is "exported" globally via globalThis.bootstrapModule.

Hi @mikart143,
This is a bug in ClearScript. A script function invoked directly by the host – e.g., via ScriptEngine.Invoke – currently can't perform dynamic module import. Thanks for reporting it!
We'll fix that in the next release. In the meantime, you can work around the issue by avoiding ScriptEngine.Invoke. For example:
var b = await engine.Evaluate("bootstrapModule('./test.js', 'testScript', [])").ToTask();

Good luck!

@ClearScriptLib
Thank you! Works as expected 😄

Fixed in Version 7.2.2.


Efficient way to look up an item by Id?

Is your feature request related to a problem? Please describe.
I'd like to look up an item as efficiently as possible when only the Id of the item is available.
I had assumed that the ReadItemAsync method would support this, but it appears to require a PartitionKey.  To be clear, a key is defined in the collection, I just don't know it at certain times.
Describe the solution you'd like
An efficient way of querying a document by Id when the PartitiondKey is unknown
Describe alternatives you've considered
The best idea I have:
var feedIterator = _container.GetItemQueryIterator<TDataType>($"SELECT TOP 1 * FROM c WHERE c.id = '{documentId}'");
if (feedIterator.HasMoreResults)
{
	var document = await feedIterator.ReadNextAsync();
	return document.FirstOrDefault();
}

Additional context
I just feel as though there must be a better way!

Please take a look at the Partition documentation. Items in Cosmos DB are identified by the Id and Partition Key value. The partition key is what determines what machine it is stored in and the id is used to identify the item in that partition. There is no efficient way to find an item without the partition key, because you have to go every physical partition and do a query to check if it is there. This will get worse as the container is scaled up as there will be more physical partitions that have to be checked. If you have a large container or planning it scaling up I would recommend changing the partition key to something the application is always aware of.

As @j82w said and linked, the identity of the document is defined by the id and partition key value.
If your container has the id as the Partition Key Definition, then just the id would work, but without that value, a point read is not possible.
Which is your Partition Key Definition?

Closing. Service requests require both id and Partition Key for point reads. If the container has /id as the Partition Key definition then the same value can be used on both parameters, otherwise, the value of the Partition Key property needs to be used as second parameter in order to do a point read.

With the example you gave (using while instead of if).  If there can be empty pages, wouldn't I need to return something like this: results.FirstOrDefault(m => m != null) ?
Alternatively, my expectation is that feedIterator.ReadNextAsync would return a null item, therefore I would use:
while (feedIterator.HasMoreResults)
{
    var document = await feedIterator.ReadNextAsync();
    if (document != null)
    {
        return document;
    }
}

Apologies for the confusion here, I'd just like to make sure I'm handling things correctly.

Empty pages does not mean they have a list with null values. Empty pages means it's a FeedResponse where the list of items returned is empty. So no, you don't have to compare with null and document won't be null (document is of type FeedResponse).

Is there a reason to add to the collection multiple times in the way you did or would this achieve the same result?
public async Task<TDataType> GetById(Guid documentId)
{
	var feedIterator = _container.GetItemQueryIterator<TDataType>($"SELECT TOP 1 * FROM c WHERE c.id = '{documentId}'");

	while (feedIterator.HasMoreResults)
	{
		var iterator = await feedIterator.ReadNextAsync();
		var document = iterator.FirstOrDefault();

		if (document != null)
		{
			return document;
		}
	}

	return default;
}

Perhaps I misunderstood the intent behind your implementation, but it seems as though it could try to add an empty collection to the list multiple times, and could continue looping after it has found one result (more empty pages)?

Your code is not draining the query and dealing with empty pages.
public async Task<TDataType> GetById(Guid documentId)
{
	var feedIterator = _container.GetItemQueryIterator<TDataType>($"SELECT TOP 1 * FROM c WHERE c.id = '{documentId}'");
        List<TDataType> results = new List<TDataType>();
	while (feedIterator.HasMoreResults)
	{
		var iterator = await feedIterator.ReadNextAsync();
                results.AddRange(iterator);
	}

	return results.FirstOrDefault();
}


Dynamic dispatch for Keras backend

Hi everybody!
This PR provides dynamic dispatch in the Keras backend. Python reflection magic.
TL;DR: Instant support for any function in the theano or tensorflow backend not already in Keras backend, like arccos, etc.

If a function is defined in the keras backend, K.method works as before.
If a function is not defined in the keras backend, but defined in the backend module, K.method will call tf.method or theano.tensor.method depending on the backend module.
If a function is not in keras backend or the backend module, it will throw a custom message AttributeError that the requested function is not in either the keras backend or the selected backend module

Many functions have the same name and invocation in theano and tensorflow. When a new function comes out in either library, we can write code like K.method. If eventually someone writes some custom code in the keras backend, K.method will start calling that custom code.
Hypothetically, could delete large portions of the backend after this pull request, but might cause performance and documentation issues.
Shouldn't impact any existing code but will wait for tests to complete before celebrating.
Cheers,
Ben

So I did some testing and dynamic dispatch works except for messing up dir(keras.backend). Here is an alternative that just copies any functions that aren't already in the backend into the backend. This version works correctly with dir().
#Copy any functions from the selected backend not already in keras.backend
for func in dir(backend()):
    if not hasattr(globals(), func):
        globals()[func]=getattr(backend(), func)

For anyone interested in dynamic dispatch from an academic perspective, this code works other than dir doesn't list all functions.
class Backend:
  def __init__(self, module):
    self.module = module

  def __getattr__(self, item):
    if hasattr(self.module, item):
      return getattr(self.module, item)
    elif hasattr(self.module.get_backend(), item):
      return getattr(self.module.get_backend(), item)
    else:
      raise AttributeError(
             "Neither module 'keras.backend' nor '{}' has attribute '{}'".format(self.module.backend(), item))

sys.modules[__name__] = Backend(sys.modules[__name__])

These are the functions added in Theano. Most won't be useful but some like jacobian or arcsinh might be useful.

My first thought: clever. But isn't this a bit too clever?
As you write, most of the things in the Theano list won't be useful, but they are still polluting the namespace. I can also see how this could be confusing: right now, you know that (almost) every function you find in keras.backend works with both backends and will work in the same way. If you blindly copy all functions from theano.tensor, you can no longer be sure that it will also be there in TensorFlow, and you also can't be sure that it has the same meaning.
I do like the get_backend() function, though. Wouldn't that already solve most of the problem? Then you can still call K.get_backend().cos and it will work for both backends, but at least you know that you're calling backend-specific methods and should be careful.

Thanks! All good points. TL;DR, what do you think about the code below as an alternative? It doesn't provide instant pass-through, but at least it makes it really easy to add new functions.
What I should have said is more along these lines: I have no personal reason to use most of the functions on that list, but then again, most functions I could imagine someone somewhere finding useful at some point.
This is my ideal use case:

Tensorflow releases function qwerty at midnight and you can use K.qwerty at 12:01 without modifying keras.
Months down the road, theano releases qwerty and your original code can work on theano without any modification to keras or your code.
Keras finally adds a custom implementation of qwerty to the backend and it is faster and fixes some numerical stability issues in the tensorflow code, and your code will start using the keras customization without modification.

So, if you just have get_backend, K.get_backend().arccos will go directly to the backend. If the other backend didn't have the function, the call would fail. If you do the aliasing, you can be much more flexible. There may also be situations where a function is an alias in one backend but a custom function in the other.
Maybe a pattern like filtering leading and trailing underscores and capitals would take out some redundancy and clean up the list somewhat.
An interesting side effect is that help(K.arccos) will display the theano or tensorflow documentation, which is way more detailed than anything we could try to write.
Did some thinking and testing since yesterday and here is an example of another approach. Only copies in what we want, but does it efficiently. This might be what I'm leaning towards, because it isn't too radical but gets the job done:
#theano_backend.py
arccos, arcsin, arctan = theano.tensor.arccos,  theano.tensor.arcsin,  theano.tensor.arctan

Another alternative is to do something similar to the current state of the PR, but iterate over a list of stuff to copy.
Some discussion at:
https://github.com/fchollet/keras/pull/4939
https://github.com/fchollet/keras/issues/4929
Cheers,
Ben

Good point, I hadn't realised that K.get_backend().something doesn't give you the option to override functions.
I very much prefer your second option, explicitly aliasing functions, over just copying everything and hoping for the best. (But this is not for me to decide, of course.) If TensorFlow adds that hypothetical new function at midnight, you can still call tf.new_function directly. I must admit that I don't switch backends every day.

@gvtulder forgot to mention the original version, which didn't pollute the namespace. Maybe I should go back to that one? Too many choices!
With a little reflection magic, if you call a function not in keras backend, it will check if that function is in tf/th before throwing the missing attribute exception. dir lists just the functions in keras.backend, but you can call any function in keras.backend or tf/th.
The downside of that approach was that arccos, etc. wouldn't be listed in dir(K), it would just magically work when you call it. But maybe that way is better after all?
Cheers,
Ben

Of course you can always use theano or tensorflow directly in keras, but anything we can do to encourage platform-independent code would be awesome.
I code in windows on theano and do my jobs on an ubuntu server running theano or tensorflow depending on the occasion. Seems like everyone I work with these days is on tensorflow, so I've been trying to make things more compatible, but I prefer theano myself.

For anyone coming in at this point, options so far:

Copy everything in. Functions from tf or th are instantly available and listed using dir(keras.backend) but pollutes namespace.
Dynamically call everything: Functions from tf or th are instantly available but not listed using dir(keras.backend).
Explicitly alias: functions are available as they are aliased, but at least minimal amount of code to accomplish the task.

For all three of these options, help(keras.backend.qwerty) will show the detailed tf or th documentation and we don't have to waste time documenting in keras.
Anyone out there feel strongly one way or another?

@bstriner: Well, for me the main benefit of the keras.backend abstraction is that it provides a set of functions that are guaranteed to work across backends. Having a bunch of automatically copied functions that may or may not work consistently removes most of the value, then I might just as well call the Theano function directly. The value, in my opinion, is that someone checked that the two backends provide the same functionality. But I guess that might be different if you regularly switch backends.

This is dangerous for 2 reasons:

Some thing will work using K with one backend but not the other(s) because some methods are present in one of the underlying frameworks but not the others. Normally, using K should be a guarantee of portability (with as few caveats as possible). That's why it is better to revert to using tf / theano.tensor when functionality is not available in K.
There is no guarantee that a method present both in tf and theano.tensor under the same name will have the same API. There are significant API discrepancies here and there. This is a guaranteed source of serious, hard-to-debug issues.

@fchollet I'll start by saying thank you for an amazing library and we are all in your debt.
Point taken regarding compatibility. Is option 3 still reasonable? For something like sin, exp, or arctan where the keras implementation is or will-be just a pass-through, aliasing gets the job done with minimal code. help will display the detailed docs from the underlying system. For the simple functions, of which there are probably a good number, this should be an efficient implementation.
#tensorflow_backend.py
sin, cos, tan = tf.sin, tf.cos, tf.tan
asin, acos, atan = tf.asin, tf.acos, tf.atan

#theano_backend.py
sin, cos, tan = theano.tensor.sin, theano.tensor.cos, theano.tensor.tan
asin, acos, atan = theano.tensor.arcsin, theano.tensor.arccos, theano.tensor.arctan

etc. for any other functions that are just simple wrappers.
If not, we'll just proceed with the usual function definitions for the trig functions, but I was interested in thoughts regarding more elegant ways to handle pass-through functions.
Cheers,
Ben

Given https://github.com/fchollet/keras/issues/4944, maybe the cleanest approach is to get the contrib repo up and running, and maintain some modules like keras.contrib.backend.trig or something manually.
To standardize the documentation for both backends, I added the following to __init__.py. Should make everything look the same as it did before, except for the added functions. Also, this means the documentation will be the same regardless of the backend when you generate, whereas it used to be different.
sin.func_name, sin.func_doc = "sin", "Computes sin of x element-wise.\n"
cos.func_name, cos.func_doc = "cos", "Computes cos of x element-wise.\n"
tan.func_name, tan.func_doc = "tan", "Computes tan of x element-wise.\n"
asin.func_name, asin.func_doc = "asin", "Computes asin of x element-wise.\n"
acos.func_name, acos.func_doc = "acos", "Computes acos of x element-wise.\n"
atan.func_name, atan.func_doc = "atan", "Computes atan of x element-wise.\n"

At this point, I'll just consider this an interesting experiment and close the PR. The intention was to make it easier to add new functions, but once you are customizing all of the documentation it is almost as much code as just writing the functions as usual.
Cheers,
Ben


Ambiguous common names "green" and "red edge"

The relationship between common name and short/standard name is not 1-to-1 for the "green" or "rededge" common names. This leads to ambiguity when trying to map common names back to short names (e.g if "green" is passed, does the user mean G or G1?). Was this a purposeful design choice? If not, I think updating the common names to "green1", "rededge1",  "rededge2",  and "rededge3"  for the Green and Red Edges respectively could be a possible solution.
Let me know what you think. I can make a PR if you agree!

Hi @szwiep!
The common names mapping comes from https://github.com/awesome-spectral-indices/awesome-spectral-indices/issues/30. Here the idea was to use the common names from the eo stac-extension, making the indices fully compatible. However, the extension hasn't been updated accoridng to the different red edge bands (see https://github.com/stac-extensions/eo/issues/19 and https://github.com/stac-extensions/eo/pull/22#issuecomment-1416515221). Furthermore, in Awesome Spectral Indices (ASI) we have additional bands too (e.g. G1, as you pointed out)
My suggestion: do not use the common names for now. Use the actual standard of Awesome Spectral Indices.
Cheers!
David

Thanks for the explanation @davemlz! This makes more sense to me now. I appreciate the response and am excited to see the built-in compatibility with the eo-stac extension.


Same error after 12/1 update

Same error after 12/1 update 'could not load file or assembly' after unistall and reinstall UWPHook.

application.log
Jim Larson
<EMAIL_ADDRESS>

Could you try this release?
https://github.com/dos-ise/UWPHook/releases/tag/Fix

I was keeping an eye on this issue as I also ran into it and that fixed it for me.

Fixed!  Thank you!Jim LarsonOn Dec 2, 2024, at 1:34 AM, Dennis @.***> wrote:
Could you try this release?
https://github.com/dos-ise/UWPHook/releases/tag/Fix
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

Could you try this release?
https://github.com/dos-ise/UWPHook/releases/tag/Fix

This resolved the issue for me too.

The .Net 8 version has been published to the main Branch:
https://github.com/BrianLima/UWPHook/releases/tag/2.14.3


Add support for Superset v1.4.2, v1.5.3, v2.0.1, v2.1.0

For https://github.com/stackabletech/superset-operator/issues/237
Tested using the trino-taxi-data demo

This is 2.0.0, can we please support 2.0.1 instead?

@lfrancke 2.0.1 has not been released yet. Bumping from 2.0.0 to 2.0.1 should be easy though

Then it is in the process of being voted on. I checked last week. I Believe. Can we wait for that?

https://lists.apache.org/thread/4jf0y7zjkno5m8shqct8x1ms05dqy61z

Yeah sure! Move to on hold then?

Ah, the vote did not pass. Still, let's wait a few days. End of next week we can decide again

--- PASS: kuttl (877.14s)
--- PASS: kuttl/harness (0.00s)
--- PASS: kuttl/harness/logging_superset-1.3.2-stackable0.0.0-dev_openshift-false (51.60s)
--- PASS: kuttl/harness/ldap_superset-2.0.1-stackable0.0.0-dev_ldap-authentication-no-tls_openshift-false (69.67s)
--- PASS: kuttl/harness/ldap_superset-1.3.2-stackable0.0.0-dev_ldap-authentication-server-verification-tls_openshift-false (69.78s)
--- PASS: kuttl/harness/ldap_superset-2.0.1-stackable0.0.0-dev_ldap-authentication-insecure-tls_openshift-false (63.92s)
--- PASS: kuttl/harness/ldap_superset-1.5.3-stackable0.0.0-dev_ldap-authentication-no-tls_openshift-false (69.24s)
--- PASS: kuttl/harness/ldap_superset-1.5.3-stackable0.0.0-dev_ldap-authentication-server-verification-tls_openshift-false (71.94s)
--- PASS: kuttl/harness/logging_superset-2.1.0-stackable0.0.0-dev_openshift-false (54.52s)
--- PASS: kuttl/harness/ldap_superset-1.3.2-stackable0.0.0-dev_ldap-authentication-no-tls_openshift-false (66.45s)
--- PASS: kuttl/harness/ldap_superset-1.5.3-stackable0.0.0-dev_ldap-authentication-insecure-tls_openshift-false (69.44s)
--- PASS: kuttl/harness/ldap_superset-1.4.2-stackable0.0.0-dev_ldap-authentication-server-verification-tls_openshift-false (72.90s)
--- PASS: kuttl/harness/ldap_superset-1.3.2-stackable0.0.0-dev_ldap-authentication-insecure-tls_openshift-false (65.76s)
--- PASS: kuttl/harness/ldap_superset-1.4.2-stackable0.0.0-dev_ldap-authentication-no-tls_openshift-false (67.45s)
--- PASS: kuttl/harness/logging_superset-1.5.3-stackable0.0.0-dev_openshift-false (53.37s)
--- PASS: kuttl/harness/cluster-operation_superset-latest-2.1.0-stackable0.0.0-dev_openshift-false (90.09s)
--- PASS: kuttl/harness/ldap_superset-1.4.2-stackable0.0.0-dev_ldap-authentication-insecure-tls_openshift-false (68.98s)
--- PASS: kuttl/harness/logging_superset-2.0.1-stackable0.0.0-dev_openshift-false (53.03s)
--- PASS: kuttl/harness/druid-connection_superset-1.4.2-stackable0.0.0-dev_openshift-false (57.35s)
--- PASS: kuttl/harness/druid-connection_superset-1.3.2-stackable0.0.0-dev_openshift-false (56.90s)
--- PASS: kuttl/harness/logging_superset-1.4.2-stackable0.0.0-dev_openshift-false (49.83s)
--- PASS: kuttl/harness/druid-connection_superset-2.1.0-stackable0.0.0-dev_openshift-false (55.12s)
--- PASS: kuttl/harness/smoke_superset-2.0.1-stackable0.0.0-dev_openshift-false (210.47s)
--- PASS: kuttl/harness/druid-connection_superset-2.0.1-stackable0.0.0-dev_openshift-false (53.13s)
--- PASS: kuttl/harness/druid-connection_superset-1.5.3-stackable0.0.0-dev_openshift-false (55.93s)
--- PASS: kuttl/harness/resources_superset-latest-2.1.0-stackable0.0.0-dev_openshift-false (42.64s)
--- PASS: kuttl/harness/smoke_superset-2.1.0-stackable0.0.0-dev_openshift-false (209.34s)
--- PASS: kuttl/harness/ldap_superset-2.1.0-stackable0.0.0-dev_ldap-authentication-server-verification-tls_openshift-false (69.40s)
--- PASS: kuttl/harness/smoke_superset-1.5.3-stackable0.0.0-dev_openshift-false (54.75s)
--- PASS: kuttl/harness/ldap_superset-2.1.0-stackable0.0.0-dev_ldap-authentication-insecure-tls_openshift-false (63.04s)
--- PASS: kuttl/harness/smoke_superset-1.4.2-stackable0.0.0-dev_openshift-false (208.84s)
--- PASS: kuttl/harness/ldap_superset-2.1.0-stackable0.0.0-dev_ldap-authentication-no-tls_openshift-false (68.43s)
--- PASS: kuttl/harness/smoke_superset-1.3.2-stackable0.0.0-dev_openshift-false (208.20s)
--- PASS: kuttl/harness/ldap_superset-2.0.1-stackable0.0.0-dev_ldap-authentication-server-verification-tls_openshift-false (67.10s)
PASS


fix: by provider claimable rewards column

Description

Notice

[ ] Have you followed the guidelines in our Contributing guide?
[ ] Have you checked to ensure there aren't other open Pull Requests for the same update/change?

Pull Request Type

[ ] :bug: Bug fix (Non-breaking Change: Fixes an issue)
[ ] :hammer_and_wrench: Chore (Non-breaking Change: Doc updates, pkg upgrades, typos, etc..)
[ ] :nail_care: New Feature (Breaking/Non-breaking Change)

Issue (if applicable)

closes #
Risk

Testing

Engineering

Operations

Screenshots (if applicable)

Current dependencies on/for this PR:

develop

PR #4085   👈

PR #4086

This comment was auto-generated by Graphite.


Alpha Kslack results are inconsistence

Alpha Kslack results are inconsistence and hence testcases are failing

Is this issue solved?

Fixed now


ln: resources.deb: No such file or directory when compiling xcode project

Im trying to add a different resource deb version
Full code:

~/Library/Developer/Xcode/DerivedData/Undecimus-agefbofakrzfyfazpokpadgnyllx/Build/Products/Debug-iphoneos/Undecimus.app/apt ~/Downloads/Undecimus-master
dpkg-scanpackages: info: Wrote 62 entries to output Packages file.
ln: resources.deb: No such file or directory
Command PhaseScriptExecution failed with a nonzero exit code

you don thave to compile it there is an ipa btw or you can pull request it and add the file you want

you don thave to compile it there is an ipa btw or you can pull request it and add the file you want

@CoolPersonMaam well im trying to just replace the resources deb. Shouldnt i be able to without having to request them to make an ipa?
Sent with GitHawk

If you guys need for a extra A12 Xmax for initital testing or so, ive got 12.1.1 i can use xcode and and mailing from Japan. We people dont talk that much:) Just to let you know im more than welcome to use as test machine.

you need to pull submodules to compile unc0ver.
If you don't know how to do this, you probably shouldn't be trying to, please use the ipas over on releases


New rule idea: alphabetic __all__

I am using ruff==0.0.292.
I think a nifty rule would be to alphabetize the values in a module's __all__.  An alphabetized __all__ is easier to skim through than an unsorted __all__.

I believe this is similar to #3119!

Sorry for the dupe 👌


fix: OAuth2 Expectations merge being in-place and then returning a copy

Related issue(s)
Doesn't have a issue number yet.
Checklist

[x] I agree to follow this project's Code of Conduct.
[x] I have read, and I am following this repository's Contributing Guidelines.
[x] I have read the Security Policy.

Description
.Merge() used to work on the receiver, silently changing the receiver and afterwards returning a copy. This commit changes the method to create a copy and work on the copy. Most uses of the function are only called once, where the bug isn't triggered. However, this prevented the JWT issuer with dynamic Issuer URLs from working correctly because only the first issuer would be taken for eternity.
Changelist
fix: OAuth2 Dynamic Issuer usage in JWT/OIDC authenticators when used with metadata_endpoint

Replaced by #1658


⚠ Bofrost.es has degraded performance

In ffb7127, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1979 ms

Resolved: Bofrost.es performance has improved in e6bc974 after 6 minutes.


Improve expand/collapse UI

Right now there is a "show"/"hide" button to deal with nested datasets. Instead this should probably be an arrow on the right side.

One option would be to try to reuse VS code's tree view UI https://github.com/microsoft/vscode/blob/3b9d26ded95c87dc46baf1182dde7d655cf56134/src/vs/workbench/api/common/extHostTreeViews.ts#L148

We could also try to reuse some of this work https://github.com/jupyterlab/jupyterlab-data-explorer/pull/71

It looks like the VSCode tree view is actually defined here: https://github.com/microsoft/vscode/blob/ccd6d203a064efb308ca1b1043ef2c87e327a2ac/src/vs/base/browser/ui/tree/abstractTree.ts#L1197


Example Request (IDFGH-4160)

Any example to develop CTL_Server model for ESP32 BLE MESH

ble_mesh_ctl_hsl_server.zip
This is an example about BLE Mesh Lighting CTL server model and Lighting HSL server model. Please focus mainly on usage.
Please feel free to contact me.

Thanks for reporting, feel free to reopen.


Syntax error when plugin name starts with "as"

Test ~/.zshrc:
source ~/.zplug/zplug

zplug "ascii-soup/zsh-url-highlighter"

if ! zplug check --verbose; then
    printf "Install? [y/N]: "
    if read -q; then
        echo; zplug install
    fi
fi

zplug load

Error message:
[zplug] #syntax error# tag 'as:' takes ['command','plugin'] (zplug "ascii-soup/zsh-url-highlighter")

Expected:
- ascii-soup/zsh-url-highlighter: not installed
Install? [y/N]: _

Thank you for your report.
Fixed. Please update zplug.
BTW, if you install ascii-soup/zsh-url-highlighter and use it, you should specify of tag in zplug.
zplug "ascii-soup/zsh-url-highlighter", of:url
# OR
zplug "ascii-soup/zsh-url-highlighter", of:url/url-highlighter.zsh
# OR
zplug "ascii-soup/zsh-url-highlighter", of:"url/*.zsh"

Thanks for the quick fix, also pointing out the missing tag - saved me some time. :+1:
I'll close this since it's working properly now.


filesystem fill up time

One reason why I still have the host stats dashboard is because it has this neat little table of "Filesystem Fill Up Time" which (tries to?) compute the time at which the filesystem will fill up.
I don't think it's working very well because the results are just off here. But it got me thinking about how this could be implemented and whether you'd be interested in adding this to the dashboard...
The hosts stats dashboard uses this formula:
(node_filesystem_size_bytes{job='node',instance='$instance'} - node_filesystem_free_bytes{job='node',instance='$instance'}) / deriv(node_filesystem_free_bytes{job='node',instance='$instance',fstype!='rootfs',mountpoint!~'/(run|var).*',mountpoint!=''}[3d]) > 0

This blog post suggests instead just using the derivative as a base:
(deriv(node_filesystem_free{device=~"/dev/sd.*",instance=~"$node:.*"}[4h]) > 0)

I would suggest using node_filesystem_avail_bytes in any case, as that is the user-visible metric that will detect actual failures in userspace...
I'm not very familiar with Prometheus formulas, so I'm not sure how it works. I suspect it just doesn't, because it gives me negative numbers here (they don't show up) or absurd estimates<PHONE_NUMBER>47366 year for a 99% full disk), etc.
Yet this could be an interesting addition.

Hi Anarcat,
Thanks for the upgrade proposal, it looks nice.
I've been testing both formulas and the first one seems to work better, but take note that it only reports content if the values are "> 0", if not, the box it will be empty.
The second formula doesn't report good values, in my testing lab, 11ms in a filesystem without changes. In any case, if you want to test it, the corrected formula is:
deriv(node_filesystem_avail_bytes{instance=~"$node:$port",job=~"$job",device!~'rootfs'}[4h]) > 0
Please, check the last commit on node-exporter-full.json it have the new box under "CPU Memory Net Disk", you can move it to other place without problem.
Regards,

that looks okay, but I still find some strange things going on. take this graph for example:

This gives the following table:

Metric
Current

/boot
2.39 day

/boot/efi
142257726.77 year

There are many problems here, the first of which of course is the host isn't continuously available (it's a workstation, and it shuts down once in a while). But then the other filesystems (I'm specifically interested in /, /home and /srv) do not show up, because of the > 0 constraint. When I shift the time range in grafana from the default (5 minutes?) to three days, all of a sudden, the estimates show up for the other partitions:

Metric
Current

/boot
2.40 day

/home
10.80 week

/srv
14.05 week

/boot/efi
141341662.68 year

Here's the raw unprocessed output from Prometheus doing the query ((node_filesystem_size_bytes{device!~'rootfs'} - node_filesystem_avail_bytes{device!~'rootfs'}) / deriv(node_filesystem_avail_bytes{device!~'rootfs'}[3d])):

Element
Value

{device="/dev/mapper/curie--vg-home",fstype="ext4",instance="curie:9100",job="node",mountpoint="/home"}
-1996694.4176633644

{device="/dev/mapper/curie--vg-root",fstype="ext4",instance="curie:9100",job="node",mountpoint="/"}
-14338319.371650279

{device="/dev/mapper/fedora_crypt",fstype="btrfs",instance="curie:9100",job="node",mountpoint="/srv"}
-38339918.49760082

Notice how Prom thinks those numbers are negative. I would also point out that it's somewhat unlikely that (for example) /srv runs out of space in 14 weeks: it gained only 0.4% of space in the last three days, which, if I do a napkin rule-of-three, means it would gain 13% in 14 weeks (0.4147/3), bringing it to 90% disk usage...
So I'm not sure those derivatives are that useful in predicting the future. There might be something fishy going on here... I find it especially strange that the estimates would vary based on the Grafana time range...

Another example of the estimate failing, on my home server:

Metric
Current

/var
45.23 week

/
1.33 year

/usr
1.51 year

/tmp
2.69 year

/home
118.48 year

/boot
2491947820794.12 year

/srv
117533249733896.45 year

Here's the absolute numbers:

And relative:

As you can see, /srv is quiiite full and a specific concern I was trying to address ("how much time do I have left with that poor HDD")... the answer (10^14 years, 10^5 times more the age of the universe) is ... rather unlikely. ;)
In fact, maybe we should use the infinity symbol (∞) instead of anything larger than the age of the universe (10^9)...

Maybe I'm just proving how useless those metrics are, sorry for thinking out loud. :)

Well, it's a fact that the formula doesn't work as expected. As the original was made by Robust Perception, maybe @brian-brazil or @Conorbro can said something about it and help us?

Could you check if predict_linear function return results in your case:
https://www.robustperception.io/reduce-noise-from-disk-space-alerts#more-614
predict_linear(node_filesystem_free{instance=~"$node:$port",job=~"$job",device!~'rootfs'}[1h], 4 * 3600) < 0
I'm testing it, but I don't get any result in my setup...

from what i understand, predict_linear tries to find the value at a specific time. we're looking for the opposite: the time for a specific value (namely, "zero space left")...

Do you finally find any working solultion? If the dashboard isn't reliable, I think that it's better to remove it.

i haven't, unfortunately, and i agree. :/

I am using a similar query to find filesystem usage but i get error ("1:2: parse error: unexpected character: '\ufeff'") when i try to filter for just one node/instance.
( 1 - (node_filesystem_free_bytes{device!~'rootfs'} / node_filesystem_size_bytes{device!~'rootfs'})) * 100 * on{(instance="dbst123")} group_left(nodename) (node_uname_info)
below is the original query i am using but this gives data for all the nodes that are registered to my PMM.
( 1 - (node_filesystem_free_bytes{device!~'rootfs'} / node_filesystem_size_bytes{device!~'rootfs'})) * 100 * on(instance) group_left(nodename) (node_uname_info)
Any idea on how to filter specific nodes?

Small brain dump as I looked into this.
https://promcon.io/2022-munich/talks/tamland-how-gitlabcom-uses-long-/
https://gitlab.com/gitlab-com/gl-infra/tamland
seem to be the way to go. Ref that pointed me into this direction: https://github.com/prometheus/prometheus/discussions/11705#discussioncomment-4388537
About the formulas used here, I reworked them into:
node_filesystem_avail_bytes{job='node',instance='$instance'} / (delta(node_filesystem_avail_bytes{instance='$instance'}[1d]) * -1) > 0

Which gives daily until full but only for linear disk usage change. Very poor approach compared to Tamland.


Improve expo-router compatibility

Open PR
Changes

Now expo plugin generates AppDelegate code in a way that do not cause conflicts with deep linking.

Maybe modify the Manual integration readme too. I guess this is also an issue for non-expo implementations?


Create Mini Simulation Runner

Something that would allow you to run code out of a block to try and see how the simulation might look

Should have name and monte carlo run attached
Also metrics can be concatenated together


(SP: 2) Add Interests step to student stepper

UserStory: #62
Blocked by: #143  , #141
Description
Add Interests step for student stepper by using implemented Subjects step of a tutor
Design

Acceptance Criteria

[ ] When user clicks on field with categories they should be fetched from server
[ ] When user chose a category and clicked on subjects select it should fetch all subjects of this category
[ ] When user clicks on criss-cross of select it should clear it

Implemented by Subjects step.


Price Rule Delete Error

Issue summary
When I try to delete Price Rule with Admin API following the documentation mentioned over this link https://shopify.dev/api/admin-rest/2021-10/resources/pricerule#[delete]/admin/api/2021-10/price_rules/{price_rule_id}.json . It deletes my Price Rule from shopify but also through this error Failed to make Shopify HTTP request: FetchError: invalid json response body at https://example.myshopify.com/admin/api/2021-10/price_rules/1058298364037.json reason: Unexpected end of JSON input
Expected behavior
Successful response after deletion of the Price Rule.
Actual behavior
Deletes the Price Rule from Shopify Store but also through invalid json error.
Steps to reproduce the problem

Delete Price Rule with shopify-node-api (rest)

Reduced test case
Properly handle JSON response data with shopify-node-api

I got same error on deleting recurring application charge.

I got same error on deleting recurring application charge.

Actually, this error occur when Shopify did not return any response and this app handling response with response.json(). According to Shopify Admin API REST its returns nothing 'No Content' on deletion of PriceRule and Coupon.
You can avoid this error by just making some changes to this file<EMAIL_ADDRESS>replace 169 line : case 0: return [4 /yield/, response.json()];
with this line: case 0: return [4 /yield/, response.status !== 204 ? response.json() : response];

21 May, still not fixed. Do everyone has to waste 5 hours for just to learn this?


change the current dir to the config dir

Otherwise the script can't run in other dirs.

@erictune assigning to you, please reassign as you wish

@resouer @WIZARD-CXY can one of you review this, and I'll merge if either of you say it looks good.

Thanks for updating the script @you-n-g , but we have a new approach of deploying k8s on ubuntu as described here. https://github.com/GoogleCloudPlatform/kubernetes/pull/5498.It will be more easy and automatic for user to use.So the file  changed will be refactored to another new files. @erictune @resouer. What do you think? Should we merge it ?

@WIZARD-CXY  Code looks good.
As it is a minor fix, we can merge it first and copy-paste it into our current PR.

I think we don't need it in our approach @resouer.Because the directory will be totally different.

@WIZARD-CXY Always make sure current script is usable until  #5498 is merged, although this file will be deprecated in the future, we still need ship this change.

Ok, I'm just saying it won't be needed in the new approach and I am busy working on updating https://github.com/GoogleCloudPlatform/kubernetes/pull/5498.If you reviewed it and say LGTM, I'll be ok with it

@you-n-g  I added comment, please consider it.

@resouer I added commend by amending and pushed just now.  :)

@erictune LGTM
plz ship it whenever you have time, thanks

thanks @resouer for reviwing.
thanks @you-n-g for contrib.


Make the testing pass

Travis testing on the develop branch failed.
konradkonrad [8:28 PM]
before I got distracted, my understanding was, that there were some new, not yet supported, testcases imported through the fixtures-git-submodule. IF that is true, it would be nice to bisect the submodule versions and find the last supported test-scenario.
the goal should be:

make sure, PRs against develop have a chance to build (again)
make sure, development against newer test-cases find a new place (e.g. homestead-branch, IF everything above is true and this is the problem with the test-cases)

Some assistance needed in reproducing locally.
My attempt to run the tests locally crashes even earlier than travis:
running them as
pyethereum/ethereum/tests$ python test_transactions.py ../../fixtures/TransactionTests/
gives
.....
Testing: ../../fixtures/TransactionTests/ttTransactionTest.json TransactionWithRvalueHigh
[libsecp256k1] illegal argument: !secp256k1_fe_is_zero(&ge->x)
Aborted (core dumped)
I have c_secp256k1-0.0.8 installed. May be some other version required? Or I'm executing tests not properly?

I think the interface is changed in pysecp256k1 0.0.8 (e.g. ecdsa_sign_raw no longer exists), but I'm not sure which version should be used.
pybitcointools works for me. see: https://github.com/ethereum/pyethereum/blob/develop/ethereum/transactions.py#L20
New fixtures is just one source of test breakers. If you checkout an old version like v1.0.8 which contains no new fixtures like 'Homestead', some tests still fail.
+1 for healthy tests :pill:

Bisecting identified that the issue first showed up in the FIXTURES commit bedbe0792a681a57a08c46908aa2c29e80e0af9b
But testing the recent version of the pyethereum develop branch with the previous commit (to the bedbe0792a681a57a08c46908aa2c29e80e0af9b) also fails due to other errors.

@konradkonrad  Need to create a homestead branch now, to continue development against the recent unit tests in it.
The tests in the develop branch will be rolled back to the commit 8c39257df28b8b49368249f43c836d419d5f0bf2 afterwards.

Update:
The commit changed to a6382c20817e6b8ba539a3cba396ec0d79a4a1c3 and the test_vm_failing.py was removed.
The development with testing against the most recent fixtures and test_vm_failed.py should be continued in the homestead branch.

I fixed the checks for the signature S value and the tests has passed.


deps: google-cloud-core 2.6.0

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[ ] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[ ] Ensure the tests and linter pass
[ ] Code coverage does not decrease (if any source code was changed)
[ ] Appropriate docs were updated (if necessary)

Fixes #<issue_number_goes_here> ☕
If you write sample code, please follow the samples format.

Tests failing because google-cloud-core 2.6.0 artifact is not yet available on maven.

Not available yet.
Error:      Non-resolvable import POM: com.google.cloud:google-cloud-core-bom:pom:2.6.0 was not found in https://repo.maven.apache.org/maven2 during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of central has elapsed or updates are forced @ com.google.cloud:first-party-dependencies:2.9.1-SNAPSHOT, /home/runner/work/java-shared-dependencies/java-shared-dependencies/first-party-dependencies/pom.xml, line 124, column 19 -> [Help 2]

https://repo.maven.apache.org/maven2/com/google/cloud/google-cloud-core-bom/ not having 2.6.0 yet.


WIP: Simplify Dashboard Viewing

Describe changes
I implemented a view changes that make it easier to view the dashboard, in particular when running in notebook environments:

Added zenml up --ngrok <TOKEN> option that can be used to automatically tunnel the created local dashboard through ngrok
Added zenml show CLI command and a new zenml.show() Python command

New UX in notebooks:

Old UX in notebooks:

Questions to reviewers

What do you think about exposing zenml.show() as top level API as I did? Any ideas where else we could put things like this that are unrelated to the client? What do you think about similarly having zenml.up(), zenml.connect(), zenml.down() etc.?

TODO:

Adjust quickstart
Adjust docs
Get user/pw of connected server from global config

Pre-requisites
Please ensure you have done the following:

[x] I have read the CONTRIBUTING.md document.
[ ] If my change requires a change to docs, I have updated the documentation accordingly.
[ ] If I have added an integration, I have updated the integrations table and the corresponding website section.
[ ] I have added tests to cover my changes.

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Other (add details above)

Some inspiration from gradio docs:


Release version 0.15.3

Signed-off-by: Igoshev, Iaroslav<EMAIL_ADDRESS>
What do these changes do?

[ ] commit message follows format outlined here
[ ] passes flake8 modin/ asv_bench/benchmarks scripts/doc_checker.py
[ ] passes black --check modin/ asv_bench/benchmarks scripts/doc_checker.py
[ ] signed commit with git commit -s
[ ] Resolves #?
[ ] tests added and passing
[ ] module layout described at docs/development/architecture.rst is up-to-date
[ ] added (Issue Number: PR title (PR Number)) and github username to release notes for next major release

Do not merge until the PR is ready for review.


Unstoppable Lite Wallet browser extension

WIP
Screenshots

Screenshots:
Main screen

Menu options

Settings

Messages
Chat window

Receiving a message notification

Sending crypto to another wallet

Interacting with an app
Connecting wallet

Approving connection

Approving a signature

The resolution part looks good to me!


RuntimeConfig support for i18n-module

Hello,
My application is made so that we build one image and use it on different countries,
Meaning, we load the image that has been built, with a different set of environment variables.
In order to do that, one of our dependencies is nuxt-i18n but I don't see any option of passing the language settings (defaultLanguage/...etc) through runtime environment variables,
If I use process.env.* cuz it seems it gets parsed on buildtime,
Any solution for this?
Thank you.

See https://github.com/nuxt-community/i18n-module/issues/1007

Hi @rchl , i saw that issue and another related thread, so all in all, this is not possible to do using i18n and nuxt?
And what other solutions/directions u would suggest to solve this?

I have the same troubles like you @Sletheren Runtime config would be a great feature.

Duplicate of #1007
I don't really see any alternative option currently besides building separately for each locale.
Maybe it would be possible to refactor the module to instead of generating routes up front would create more dynamic routes but it would be huge undertaking.


err_on_ascii_context_bounded test broken

I am not sure what the test is trying to do, but removing the bound does not result in a test failure. The test is already fixed in branch reiner-diagnostics by my understanding of what the test should do.
@problame What are you trying to do in the test? The string generated by the loop results in exactly 180 characters. Shouldn't it generate at least 1 more character?

idea of the test was to check that the bound is not exceeded in case there is no \n in the preceding ENCODING_ERROR_MAX_CONTEXT_LEN characters.


PlatformNotSupportedException in LiteEngine ctor FileDiskService.Lock on Mac OS X using .Net Core 2.1.4

I'm trying to use LiteDB on Mac OS X 10.12.6 (Sierra) using .Net Core 2.1.4. I am getting an exception:
Unhandled Exception: System.PlatformNotSupportedException: Locking/unlocking file regions is not supported on this platform. Use FileShare on the entire file instead.
at System.IO.FileStream.LockInternal(Int64 position, Int64 length)
at LiteDB.FileHelper.TryExec(Action action, TimeSpan timeout)
at LiteDB.StreamExtensions.TryLock(FileStream stream, Int64 position, Int64 length, TimeSpan timeout)
at LiteDB.FileDiskService.Lock(LockState state, TimeSpan timeout)
at LiteDB.LiteEngine..ctor(IDiskService disk, String password, Nullable1 timeout, Int32 cacheSize, Logger log, Boolean utcDate) 							at LiteDB.LiteDatabase.<>c__DisplayClass11_0.<.ctor>b__0() 							at LiteDB.LazyLoad1.get_Value()
at LiteDB.LiteCollection`1.EnsureIndex(String field, String expression, Boolean unique)
See the Dec 12 2016 post in this discussion: https://github.com/dotnet/corefx/issues/5964
If I understand this discussion correctly then they have specifically decided not to support this particular locking behavior on Mac OS X, so LiteDB as is will never work.
I would like to use LiteDB on Mac OS X. Am I understanding the issue correctly? Is there any solution to this?

Hi @ryanseghers, OS X do not  support file lock, so you cann't use LiteDB with lock support (no multi process access). But you can still use LiteDB in multi thread model, using: "Mode=Exclusive" in connection string (exclusive mode do not lock file because open file in exclusive mode

FWIW, there is no way to just see if File Locks are supported in .net Core (e.g., no static FileStream.CanLock), the only option apart from hardcoding a list of OS platforms that support it would be to try to open the file during the constructor/init, catch the PlatformNotSupportedException and change the FileMode to .Exclusive.


Escape player usernames in discord

If a players name, for example contains text being used by discord to format, for example x__gamer__x, this text will be displayed in discord formatted.
Escaping usernames like x_gamer_x -> x\_gamer\_x would prevent this.

working on fixing it

I think everything that needs escaping are asterisks, undescores, backticks and backslashes by putting a blackslash in front of it somewhere in there:
https://github.com/arthurbambou/Fabric---Discord-Link/blob/c7d8ffd69f6a407597ca39c7bb2caa08a08d08cc/src/main/java/fr/arthurbambou/fdlink/discordstuff/DiscordBot.java#L234


Step 5 in the pre-built dataset example does not work.

https://github.com/intel-data/dataset-reader-sample/raw/master/data/nf-data-application.csv link is not reachable.

Issue has been fixed by #3


PR: Enh/vcs status

Description of Changes

[x] Wrote at least one-line docstrings (for any new functions)
[ ] Added unit test(s) covering the changes (if testable)
[x] Included a screenshot (if affecting the UI)

Add a basic VCS status bar widget to display current (git) branch.
File not tracked by git

File tracked by git but without changes

File tracked by git with changes

Issue(s) Resolved

Fixes #
Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct:

Hello @goanpeca! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file spyder/plugins/editor/plugin.py:

Line 1094:80: E501 line too long (80 > 79 characters)

In the file spyder/plugins/editor/widgets/status.py:

Line 66:59: W291 trailing whitespace


[Easy] Parsing 1inch errors correctly

For the 1inch solver, we got a lot of parsing errors
The errors send by the api look actually like [that](https://logs.gnosis.io/app/discover#/?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:'2021-12-21T02:12:07.199Z',to:now))&_a=(columns:!(log),filters:!(('$state':(store:appState),meta:(alias:!n,disabled:!f,index:de1f5360-a9ae-11ea-acbb-9d2e3cb124ca,key:kubernetes.pod_name,negate:!f,params:(query:solver-mainnet),type:phrase),query:(match_phrase:(kubernetes.pod_name:solver-mainnet))),('$state':(store:appState),meta:(alias:!n,disabled:!f,index:de1f5360-a9ae-11ea-acbb-9d2e3cb124ca,key:log,negate:!f,params:(query:'Response%20from%201inch%20API:%20Ok(%22%7B%5C%22statusCode%5C%22:400,%5C%22error%5C%22:%5C'),type:phrase),query:(match_phrase:(log:'Response%20from%201inch%20API:%20Ok(%22%7B%5C%22statusCode%5C%22:400,%5C%22error%5C%22:%5C')))),index:de1f5360-a9ae-11ea-acbb-9d2e3cb124ca,interval:auto,query:(language:kuery,query:''),sort:!(!('@timestamp',desc))))
)
Hence, the adjustment
Test Plan

Codecov Report

Merging #1506 (5c0cef2) into main (9a3d66f) will increase coverage by 0.00%.
The diff coverage is 66.66%.

@@           Coverage Diff           @@
##             main    #1506   +/-   ##
=======================================
  Coverage   66.40%   66.41%
=======================================
  Files         164      164
  Lines       31715    31715
=======================================
+ Hits        21061    21064    +3
+ Misses      10654    10651    -3


Mysterious legends

I have created a visualization using one of our customers' account (he asked for it, haha).
Here's the think: 2 layers with two legends that when activated/hidden from the editor work perfectly. That means: when 1 layer is active 1 legend is active and when 2 layers are active 2 legends are active, no layers no legends.
When we go to the visualization we find something different: 1 layer active 1/2 legends active, 0 layers active 1 legend active, 2 layers active 2 legends active.
What's going on here?
@fdansv @pscartodb

There has been no activity on this issue for several months and that's why are closing it (automatically). If you think this still needs to be addressed please reopen it. The good news is that we are now working on the next version of CARTO.js, stay tuned.


feat(sandbox): Design Adjustments

What?
EXT-1297
Various adjustments to the design.
Most significantly, the background of the preview area was changed to grey to match the Visual Editor. The background of the Visual Editor was changed last week:

This means that we also need to change the background for the templates. Previously, they had transparent background. The new design of the templates has a border and white background:

Added a header to the preview area:

The elements that can be resized was changed from the iframe wrapper to the grey background:

The distance between the header and the preview was decreased:

The Data view is expanded by default:

The bottom margin was increased:

How to test? (optional)
See the preview deployment in this pull request.

This looks so much better. Thanks!

Thanks for the compliments 🙏


Null values for raw query parser

Changes proposed ✍

Null values for raw query parser when sending with eq and ne operators

Checklist ✅

[x] Label appropriately with Feature, Enhancement, or Bug.
[ ] Tests are passing.
[ ] New backend functionality has been unit-tested.
[ ] Environment variables have been updated:

[ ] Local frontend configuration: frontend/.env.dist.local, frontend/.env.dist.composed.
[ ] Local backend: backend/.env.dist.local, backend/.env.dist.composed.
[ ] Configuration docs have been updated.
[ ] Team members only: update environment variables in override, staging and production env. files and trigger update config script.

[ ] API documentation has been updated (if necessary) (see docs on API documentation).
[ ] Quality standards are met.
[ ] All changes have been tested in a staging site.
[x] All changes are working locally running crowd.dev's Docker local environment.

There are tests that have to be fixed tho @epipav.


Implement health checks for Providers

Our httpserver/wasmcloud-redis providers that are in this repository should implement health checks, and all generated providers from smithy should also implement health checks.

Capability providers implemented in rust using the wasmbus-rpc library implement a trait which has a default health check implementation that always returns healthy.
There's a separate question of what should a good health check function do to determine whether its service is healthy, which this issue didn't ask.
We have implemented the ability for capability providers to automatically confirm that they can respond to healthy check queries.

The important thing is that we have a basic health check mechanism that should indicate if the provider isn't responding, and if it is responding then we get some amount of certainty that it's at least running. Glad it's automatically implemented on the Trait, can it be overridden?


Create Manga oni

Manga
Checklist:

[x] Updated extVersionCode value in build.gradle for individual extensions
[x] Updated overrideVersionCode or baseVersionCode as needed for all multisrc extensions
[x] Referenced all related issues in the PR body (e.g. "Closes #xyz")
[ ] Added the isNsfw = true flag in build.gradle when appropriate
[ ] Have not changed source names
[ ] Have explicitly kept the id if a source's name or language were changed
[ ] Have tested the modifications by compiling and running the extension through Android Studio
[ ] Have removed web_hi_res_512.png when adding a new extension

What even is this?
Some kind contributor has to take the time, and if they are willing, to create/fix the extensions you want & use. If you aren't contributing yourself, wait patiently, learn how to contribute, or use something else.


fail to compile QAT_Engine-1.6.0(cannot find -lqat)?

@venkatesh6911 @Yogaraj-Alamenda
[root@hostname QAT_Engine-1.6.0]# make -j 4
make err-files && make  all-am
......
QAT: 332 new reasons
make[1]: Leaving directory '/tmp/QAT_Engine-1.6.0'
make[1]: Entering directory '/tmp/QAT_Engine-1.6.0'
CC       e_qat.lo
CC       qat_fork.lo
......
CC       qat_sys_call.lo
CCLD     qatengine.la
/usr/bin/ld: cannot find -lqat
collect2: error: ld returned 1 exit status
make[1]: *** [qatengine.la] Error 1
make[1]: Leaving directory '/tmp/QAT_Engine-1.6.0'
make: *** [all] Error 2

Hi @lastpepole , can you share the output for the following commands:

lsmod | grep "qat"
lspci | grep "Co-p"

hi, @venkatesh6911 ,information as below:
[root@hostname ~]# lsmod | grep "qat"
qat_contig_mem         16384   0
qat_c62x                      20480   0
intel_qat                       274432  2 qat_c62x,usdm_drv
uio                                 20480   1 intel_qat
[root@hostname ~]# lspci | grep "Co-p"
60:00.0 Co-processor: Intel Corporation Device 37c8 (rev 04)
61:00.0 Co-processor: Intel Corporation Device 37c8 (rev 04)
62:00.0 Co-processor: Intel Corporation Device 37c8 (rev 04)
b1:00.0 Co-processor: Intel Corporation Device 37c8 (rev 04)
b2:00.0 Co-processor: Intel Corporation Device 37c8 (rev 04)
b3:00.0 Co-processor: Intel Corporation Device 37c8 (rev 04)

Can you share the ./configure command used to build the QAT Engine along with the config.log file ?

@venkatesh6911 Have you reproduce the case?
My machine environment configuration as below:
kernel: 5.10
os: centos7u5
qat driver: 4.25.0
qat engine: 1.6.0
openssl: 1.1.1w
tengine: tengine-2.4.0

Can you share the ./configure command used to build the QAT Engine along with the config.log file ?

Can you share the output ?


EN and RU translation

Hi, @lonlie. I added little instructions in English and Russian.

Thanks for you!


Very Common runtime.lastError

When trying to create or join a group with the extension, the error Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist is very common. I am currently not sure why this is happening, but I am looking into it.

Fixed in commit b038d20.


zkBIP-001: Tokens As Data in Apps (TADA  🎉)

First zkBIP ever.

There's some PoC code for this here: https://github.com/imikushin/zkbitcoin/commits/tada-poc/


Support Gitea's login with Casdoor

If Gitea already supports OIDC or OAuth, then we can directly try to connect it with Casdoor.
See references:

https://docs.gitea.io/en-us/authentication/
https://github.com/go-gitea/gitea/issues/1299
https://github.com/go-gitea/gitea/issues/3644
https://github.com/go-gitea/gitea/issues/3768
https://discourse.gitea.io/t/gitea-as-oauth2-client-app/2209

@Nekotoxin


[Autocomplete] Allow to edit route

Q
A

Bug fix?
no

New feature?
yes

Tickets
Fix #...

License
MIT

Same issue as https://github.com/symfony/ux/pull/562 but for Autocomplete component.
@weaverryan @kbond let me know if this implementation is OK for you, then I will add tests, docs & changelog.

PR ready @weaverryan

Thanks again Simon for the excellent work!


add 'configure-wardrobe' kata

Here is a new TDD-Kata to train an algorithmic problem.
I hope you enjoy it!

can you be so kind and update your pull request to be compatible with the latest merges? sorry, i really don't have the resources to do so myself


VNC tract edits

Related to https://github.com/VirtualFlyBrain/Management/issues/242
Changes requested by @Robbie1977
Needs some clarification/references please

Symbol
is_a IRI
is_a label
Notes
Clare notes

DLT
http://purl.obolibrary.org/obo/FBbt_00047533
dorsal lateral tract of the dorsal cervical fascicle
Add Synonym 'dorsal lateral tract' as being used
adding as broad synonym - also adding to 'dorsal lateral tract of the ventral cervical fascicle'

DMT
median tract of the dorsal cervical fascicle (FBbt_00047535)
dorsal medial tract
New Adult Term to replace FBbt_00047535?
FBbt_00047535 is an adult term, referred to as MTD in Power and Namiki papers - where does DMT come from?

MDT
FBbt_00047544
median dorsal abdominal tract
Checked OK
where does MDT synonym come from (MDA in Power and Namiki)?

ITD HC/cHIN
FBbt_00047529
haltere chiasma
Checked OK
where does cHIN synonym come from?

ITD HT
FBbt_00004094
dorsal metathoracic nerve
should probably have Haltere Tract (HT) as synonyms?
thought tracts were meant to be within CNS? Is there a reference for 'haltere tract'?

DMT & MDT is used in the Paper under review and the previous preprint versions so will have to wait until published (https://www.biorxiv.org/content/10.1101/122952v2)
I'll look up refs for cHIN and HT (it's the bit inside the CNS transitioning to the HN so maybe a separate term?)

name: haltere chiasma
def: "A commissure formed by the lateral tracts of the intermediate tract of the dorsal cervical fasciculus, as they cross the midline between the meso- and metathoracic neuromeres and extend to the dorsal metathoracic (haltere) nerve of the contralateral side. The haltere commissure is posterior to the chiasma of fine fibers." [FlyBase:FBrf0007196, FlyBase:FBrf0210897]
comment: “lineage 8?”
subset: cur
synonym: "HC" EXACT [FlyBase:FBrf0007196]
synonym: "cHIN" EXACT [FlyBase:FBrf0056602]

Dorsal Metathoracic Nerve (Haltere Nerve) and is the tract referred to as the Haltere Tract in Merritt and Murphey (1992).
FBrf0056602

FYI https://www.biorxiv.org/content/10.1101/122952v1.full.pdf+html has all my original refs and definitions showing all the classical refs for synonyms etc. (a lot was stripped out in v2 for simplicity)

I have added 'haltere tract' as a new term based on your preprint.
Also added other requested published synonyms.
Probably best to wait for final (published) version before doing other renames/synonyms from your paper (and that should be its own ticket).
You should try to get that extra v1 synonym info published as a supplementary file - it is useful!


Use without global ACAN2517 objects

Hi Pierre,
thanks for this great library!  It is working out of the box on my ESP32 dev board with two MCP2517FD devices on a single SPI bus.
I'm trying to organize ACAN2517 objects as struct members of a parent object instead of as globally scoped instances.
I'm failing to understand how to properly call ACAN2517.begin(...) in this scenario.
void Parent::init(uint32_t baud_rate)
{
    ACAN2517Settings settings(ACAN2517Settings::OSC_40MHz, baudrate);
    settings.mRequestedMode = ACAN2517Settings::Normal20B;

    const uint32_t errorCode = driver->begin(settings, [] {driver->isr();});
    if (errorCode)
        Serial.printf("Configuration error 0x%x\n", errorCode);
    else
        Serial.println("ACAN2517 Configuration success");
}

This fails to compile with the error message:
the enclosing-function 'this' cannot be referenced in a lambda body unless it is in the capture list
As best I understand:
driver->begin() requires a callback function of type void (*)(void).
If I change the lambda function definition to include this:
const uint32_t errorCode = driver->begin(settings, [this] {driver->isr();});

Then the lambda function signature becomes void(*)(Parent*) which is incompatible with driver.begin().
How might one call begin() on ACAN2517 objects that are private to a class?
Thank you,
Nick

Hi Nick,
Thank you for your message!
I am not a C++ lambda specialist. ESP32 current build system uses gcc with -std=gnu++11 option, and it seems C++11 with the lambda expression partially supports closure.
So I did find a good solution for your problem.
I only find a workaround: using the global Parent instance. If you have declared :
Parent parent ;
You can write:
const uint32_t errorCode = driver.begin (settings, [] { parent.driver.isr () ; }) ;
I expect this can help.
Best regards,
Pierre

Le 25 mai 2019 à 10:19, Nick Kirkby<EMAIL_ADDRESS>a écrit :
Hi Pierre,
thanks for this great library! It is working out of the box on my ESP32 dev board with two MCP2517FD devices on a single SPI bus https://github.com/nkirkby/acan2517/blob/two_devices/examples/LoopBackDemoESP32/LoopBackDemoESP32.ino#L46.
I'm trying to organize ACAN2517 objects as struct members of a parent object instead of as globally scoped instances.
I'm failing to understand how to properly call ACAN2517.begin(...) in this scenario.
void Parent::init(uint32_t baud_rate)
{
ACAN2517Settings settings(ACAN2517Settings::OSC_40MHz, baudrate);
settings.mRequestedMode = ACAN2517Settings::Normal20B;
const uint32_t errorCode = driver->begin(settings, [] {driver->isr();});
if (errorCode)
    Serial.printf("Configuration error 0x%x\n", errorCode);
else
    Serial.println("ACAN2517 Configuration success");

}
This fails to compile with the error message:
the enclosing-function 'this' cannot be referenced in a lambda body unless it is in the capture list
As best I understand:
driver->begin() requires a callback function of type void (*)(void).
If I change the lambda function definition to include this:
const uint32_t errorCode = driver->begin(settings, [this] {driver->isr();});
Then the lambda function signature becomes void()(Parent) which is incompatible with driver.begin().
How might one call begin() on ACAN2517 objects that are private to a class?
Thank you,
Nick
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/pierremolinaro/acan2517/issues/4?email_source=notifications&email_token=AEWKZVDIQTK54MBA22U5ICTPXDY7PA5CNFSM4HPUEH7KYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GV2TXFA, or mute the thread https://github.com/notifications/unsubscribe-auth/AEWKZVERVKQ6EENQ4GDWYFTPXDY7PANCNFSM4HPUEH7A.

Pierre,
Thank you for your response!  This is a good solution for the time being.
I think I've found a relevant Q&A on StackOverflow:
https://stackoverflow.com/questions/27045304/callback-to-a-member-function
FreeRTOS's xTaskCreate handles this scenario by accepting a callback function of signature void (*)(void *).
This allows the optional use of an object within a static callback function.  For example:
static void led_callback(void *pvParameter)
{
	StatusLED *led = (StatusLED*)pvParameter;
	while (1)
	{
		switch (led->state)
		{
			case FAST_BLINK:
				vTaskDelay(50 / portTICK_PERIOD_MS);
				led->set_brightness(0);
				vTaskDelay(50 / portTICK_PERIOD_MS);
				led->set_brightness(1);
				break;
			case OFF:
			default:
				led->set_brightness(0);
				vTaskDelay(500 / portTICK_PERIOD_MS);
				break;
		}
	}
}

void StatusLED::setup()
{
	xTaskCreate(led_callback, "LED blinker", 2048, this, 1, NULL);
}

In the event that no such object is needed, a NULL pointer may be passed instead of this.
I looked at adding this to ACAN2517, but found that the Arduino attachInterrupt function only accepts callbacks of type void (*)(void).

Hello,
You are right, ESP32 task creation has a parameter, I use this feature for the myESP32Task task. But the problem is on the interrupt service routine, that does not accept any argument.
Pierre

Le 26 mai 2019 à 02:51, Nick Kirkby<EMAIL_ADDRESS>a écrit :
Pierre,
Thank you for your response! This is a good solution for the time being.
I think I've found a relevant Q&A on StackOverflow:
https://stackoverflow.com/questions/27045304/callback-to-a-member-function https://stackoverflow.com/questions/27045304/callback-to-a-member-function
FreeRTOS's xTaskCreate handles this scenario by accepting a callback function of signature void (*)(void *).
This allows the optional use of an object within a static callback function. For example:
static void led_callback(void *pvParameter)
{
StatusLED led = (StatusLED)pvParameter;
while (1)
{
switch (led->state)
{
case FAST_BLINK:
vTaskDelay(50 / portTICK_PERIOD_MS);
led->set_brightness(0);
vTaskDelay(50 / portTICK_PERIOD_MS);
led->set_brightness(1);
break;
case OFF:
default:
led->set_brightness(0);
vTaskDelay(500 / portTICK_PERIOD_MS);
break;
}
}
}
void StatusLED::setup()
{
xTaskCreate(led_callback, "LED blinker", 2048, this, 1, NULL);
}
In the event that no such object is needed, a NULL pointer may be passed instead of this.
I looked at adding this to ACAN2517, but found that the Arduino attachInterrupt function only accepts callbacks of type void (*)(void).
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/pierremolinaro/acan2517/issues/4?email_source=notifications&email_token=AEWKZVCRBWI32V5PKRZIOHLPXHNJ5A5CNFSM4HPUEH7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWH3VPA#issuecomment-495958716, or mute the thread https://github.com/notifications/unsubscribe-auth/AEWKZVBVT6OTW6WMHWNJWVLPXHNJ5ANCNFSM4HPUEH7A.

After reading StackOverflow: Passing capturing lambda as a function pointer, I made another attempt at this and failed.
I learned a couple things along the way:

it's possible to change the compiler flags used by Arduino to compile with xtensa-esp32-elf-gcc in ~/ Arduino/hardware/espressif/esp32/platform.txt
ESP32 for Arduino currently uses std=gnu++11 (source)

Thank you for theses points.
Best regards,
Pierre

Le 27 mai 2019 à 22:32, Nick Kirkby<EMAIL_ADDRESS>a écrit :
After reading StackOverflow: Passing capturing lambda as a function pointer https://stackoverflow.com/questions/28746744/passing-capturing-lambda-as-function-pointer, I made another attempt at this and failed.
I learned a couple things along the way:
it's possible to change the compiler flags used by Arduino to compile with xtensa-esp32-elf-gcc in ~/ Arduino/hardware/espressif/esp32/platform.txt
ESP32 for Arduino currently uses std=gnu++11 (source https://github.com/espressif/esp-idf/issues/2449)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/pierremolinaro/acan2517/issues/4?email_source=notifications&email_token=AEWKZVFFK7IOX4QZ2XGQEMTPXRANDA5CNFSM4HPUEH7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWKPEBY#issuecomment-496300551, or mute the thread https://github.com/notifications/unsubscribe-auth/AEWKZVEDWZ37EBTLFOXOT4TPXRANDANCNFSM4HPUEH7A.

It looks like the necessary function exists inside arduino-esp32 FunctionalInterrupt.cpp, but it's not a public function.
I've posted a question on StackOverflow hoping to draw on the expertise there.


docs: fixed documentation error for validate function

Description of Changes
fixes documentation for #386
Link to Issue

PR Checklist

[x] The PR title follows the conventional commit standard
[x] There is a associated GitHub issue
[ ] If I have added significant code changes, there are relevant tests
[ ] If there are behaviour changes these are documented

@JinIgarashi thank you!


Asset registry not correct for testnet-phobos-2

There's a new testnet chain penumbra-testnet-phobos-2, running here: https://testnet.plinfra.net There's also a dex-explorer instance running against that chain https://dex-explorer.testnet.plinfra.net (#72). Despite recent updates to the prax registry in https://github.com/prax-wallet/registry/pull/91 & https://github.com/prax-wallet/registry/pull/93, as well as corresponding changes in this repo to consume https://github.com/penumbra-zone/dex-explorer/issues/57, the test_usd asset still isn't loading correctly:

The asset on the lefthand side is test_usd, or at least that's how it was specified on when swapped via pcli. But the app fails to understand the asset, which indicates that we likely have the wrong string set in the prax registry still: https://github.com/prax-wallet/registry/blob/7cfdd0000c4f4c458e147b85ba6c7f3f87066c11/input/chains/penumbra-testnet-phobos-2.json#L144 Let's debug that and fix it.

With an assist from @hdevalence, I've confirmed that the test_usd asset string appears to be correct. One can cross-check it by using the AssetMatadataById RPC: https://buf.build/studio/penumbra-zone/penumbra/penumbra.core.component.shielded_pool.v1.QueryService/AssetMetadataById?target=https%3A%2F%2Ftestnet.plinfra.net&selectedProtocol=grpc-web So why isn't it displaying correctly in the application? Are other assets displaying correctly? At least UM is. Let's test with more.

Ah-ha, it looks like a problem with the container build story. Testing locally via pnpm dev with the same database backend, I see the assets rendering correctly:

So something with the npm run build is emitting bad or incomplete artifacts.

After much debugging, and poring over the NextJS docs, it's now clear to me that the application does not actually accept runtime configuration via env var for chain id. The code looks up NEXT_PUBLIC_CHAIN_ID here: https://github.com/penumbra-zone/dex-explorer/blob/eff9854eaab688b9424c1e72ba614314aa3f98c9/src/constants/configConstants.ts#L6-L11 allegedly with fallback to penumbra-1, but if you set NEXT_PUBLIC_CHAIN_ID=penumbra-testnet-phobos-2 at runtime, the app will still query for penumbra-1. That's because the NEXT_PUBLIC_* env vars are baked in at build time based on the value of the environment variable, and cannot be updated at runtime. Notably the nextjs docs do describe this behavior:

After being built, your app will no longer respond to changes to these environment variables. For instance, if you use a Heroku pipeline to promote slugs built in one environment to another environment, or if you build and deploy a single Docker image to multiple environments, all NEXT_PUBLIC_ variables will be frozen with the value evaluated at build time, so these values need to be set appropriately when the project is built. If you need access to runtime environment values, you'll have to setup your own API to provide them to the client (either on demand or during initialization).

We currently build a container image, ghcr.io/penumbra-zone/dex-explorer, to make it easy for anyone to run a dex-explorer. There are currently multiple deployments, tracking different chains, based on this image. We must update the application config such that the same built artifact, i.e. the container, can be used to run against multiple chains.
So, how to do that? From my limited understanding of the nextjs docs, it appears we should be using getServerSideProps to pass server-side info to the client code cleanly. There's also a possibility that we can prevent the inlining-at-build-time behavior by tweaking the env var lookups to use a var rather than a string (ctrl+f for "will not be inlined"). Will try that next, otherwise fall back to running pnpm run dev as container entrypoint, hacky as that is.

There's also a possibility that we can prevent the inlining-at-build-time behavior by tweaking the env var lookups to use a var rather than a string (ctrl+f for "will not be inlined").

No, that approach didn't work: when I tested, the server-side code reports the runtime value, but the client-side code reports the build-time value. That's not good enough for our use case.

otherwise fall back to running pnpm run dev as container entrypoint, hacky as that is

That's the approach I went with in #76, as a temporary solution to have a working staging environment again. @JasonMHasperhoven, I'd very much appreciate you taking a look at the config logic, and resolving as you see fit, so that we can use pnpm run build standalone output again.

There are some optimization that we would miss if we don't pre-build nextjs. I think the move is to have multiple images that point to different environments, so then we run the test image in our staging env and the prod image in the prod env.

I think the move is to have multiple images that point to different environments, so then we run the test image in our staging env and the prod image in the prod env.

I'd prefer to keep the built artifact, i.e. the container, environment-agnostic, using runtime environment variables to configure the same app code to interact with different networks. We already have the ability to inject e.g. a postgres database URL at runtime, and the same should be true of asset registry info. Discussed this out of band with @JasonMHasperhoven, who agreed that GetServerSideProps looks like it would solve our problem. If that turns out to be the case, we can close out #76 as an unused experiment.

Another idea: what if running the server involved running the next build in the current environment, and then serving that? This way you could have one container, and then dynamically configure the build process, but then also not require changes to the code.

Resolved via #80.


Icon: New Icon designs

Update icons

arrow
chevron
avatar
close
progress
menu (formerly hamburger)
and add ExternalLink

New search icon also available in Figma