Plugin failing to communicate

Hello,
I have installed the plugin for home-assistant, input the url of the instance, and input the long-lived access token. But am unable to control my devices with it.
The devices in my home show up, so I know that the connection is active and working, and when I switch devices on/off in the home-assistant web app, the status on the stream deck changes, so I can see when devices are on or off with it.
Screenshots are below of what my settings are, is this something that you know how to fix?

For addition, I cannot see any requests for this in the homeassistant logs, and there are also no debug methods that I can find for the streamdeck plugin.

Normally, between Service and Service data, there should be a third drop-down where you can select the entity you want to turn on.
If it is not visible, this normally means, that there isn't any light entity that supports the turn-on service. Maybe you have to use the "switch" domain instead of "light"?

I see, I can confirm that none of the domains allow me to choose an entity for this. I will have a play around in HomeAssistant to see if anything needs to be changed there, if you have any ideas, please let me know. 😊

I have wathced other videos on how to do this and they do not have what you are saying, but do have the below, which is a screenshot from my machine so to confirm that I can see this and have set this correctly.

Also, to rule out any other affecting factors, I have re installed Home Assistant to try and get this working so this is the only entity linked to it.

If you got to Developer > Services in HA and use the light.turn on service. Does your entity show up and respond?

Yes I have just done this and it turned the light.turn_on service worked and vice versa

@kBraDrs I had this happen to me as well. Are you on 2.4.2? Try rolling back to 2.4.1 and disabling auto updates. I had the same issue as you it sounds like: https://github.com/cgiesche/streamdeck-homeassistant/issues/193#issuecomment-1868189281

@kBraDrs I had this happen to me as well. Are you on 2.4.2? Try rolling back to 2.4.1 and disabling auto updates. I had the same issue as you it sounds like: #193 (comment)

That was it! It's working perfectly. I have quite a complex networking system at home and spent all of yesterday tracking down whether my network was blocking internal websocket requests 😂 Glad to find out it was this simple all along.
Thank you @joestump, you have made my morning 😊
@cgiesche Any idea why the newer version is not working correctly?

Oh ****.
It's my friend Jesus birthday today and I am far away from my computer for some time.
I have no idea what is going on but I will try to get the store version rolled back to the last working version. This may take some time...
You may download and install the "latest" version from releases page (coming in some minutes). This can be installed manually and you do not have to disable automatic update from store.

@kBraDrs I have a similarly complex network with multiple VLANs and was worried that was an issue, but all of the devices were on the same VLAN. Interesting that there's overlap in our setup; wonder if there's something (bad network dependency update?) in 2.4.2 causing issues with VLAN tagging?

I am not at home, so I can not really check what it is, but it seems to be a general bug and not related to your network setups.

Not sure if others are dealing with this, but even with "Automatically update" unchecked the plugin is auto-updating nightlight, which breaks things all over again. Presumably the Stream Deck software itself has a bug that ignores disabled auto-updates. 😢
Is it possible to pull the 2.4.2 release?

Hello everyone.
I just got home and immediately tried to reproduce the issue. I completely uninstalled the plugin and installed the current version (2.4.2) from the Elgato Store. "Unfortunately," everything seems to be working as expected on my end:

Does this issue occur with existing buttons (those that existed before the update) or with newly configured ones as well?

I started an entirely new profile with new buttons and nothing worked. It also persisted across two computers as new profiles with new buttons failed to address the issue. Both macOS and Windows 11.

I believe I am experiencing this issue as well.
I just installed today (1 January 2024). I originally installed from the Elgato Marketplace and received version 2.4.2. After I was unable to get that to function, I did some googling, and stumbled across this. Downgrading to the 2.4.1 build from github did not alleviate my issue though.
The biggest difference I can think of between my config and others is that I am using the remote domain.

I believe I am experiencing this issue as well. I just installed today (1 January 2024). I originally installed from the Elgato Marketplace and received version 2.4.2. After I was unable to get that to function, I did some googling, and stumbled across this. Downgrading to the 2.4.1 build from github did not alleviate my issue though. The biggest difference I can think of between my config and others is that I am using the remote domain. I have also tried uninstalling and purging everything I could find from the Stream Deck software and reinstalled, only using the 2.4.1 build, but I am seeing the same behavior.

So, after being stumped by this yesterday, suddenly, today it has the Entity... I am confused, but it works for me now on 2.4.1.

Wanted to share I am seeing the same issue on a new install on 2.4.2 from the Marketplace. The status on the icon appears to be syncing correctly (e.g. when I turn the light on/off the change shows on the button). But I can't get the short press or long press to work and both are missing the "Entity" dropdown after I select the Domain and Service dropdowns although the "Service Data JSON (optional) section appears.
Glad to do any troubleshooting for you if helpful.

I'm slowly going crazy:

I uninstalled the Stream Deck application on my main PC and deleted all directories (caches, settings, plugins), then reinstalled it completely: The plugin works.
I installed Stream Deck from scratch on my notebook: The plugin works.
I've tried it on both using both the XXL and SD+.
I've tried both admin and regular user tokens from Home Assistant.

I don't understand it.
Maybe someone who is experiencing the issue (on Windows) can check if there is an error in the debug console. Here's how to do it:

In the Registry, navigate to HKEY_CURRENT_USER\Software\Elgato Systems GmbH\StreamDeck and set the key html_remote_debugging_enabled to the value 1 (DWORD).
Restart the Stream Deck application.
Go to a button configuration with the Home Assistant plugin on the Stream Deck (stay on this page!).
In your web browser, navigate to the page http://localhost:23654/.
Click on "HomeAssistant Plugin PI" (important: PI).

Switch to the "Console" view and then try to configure an action on the Stream Deck (do not leave the "button" page).
Ideally, you should see an error in the console if there is an issue.

Here is the screenshot I have after following those steps:

Also not sure if this matters but I'm running on Windows 10

Here is the screenshot I have after following those steps:

Thank you! Nothing unusual to see there :/

Also not sure if this matters but I'm running on Windows 10

In this case, it does not matter. My personal verdict is, that there must be at least one "special" entity in your home-assistant, that somehow causes the problem.
Maybe, you or someone else with this issue can make this request and share the response with me:
https://reqbin.com/c-2qwz2ahd
DISCLAIMER The respone contains the names, ids and current state of ALL our home assistant entities. If you do not want to share this data with the public, please attach the output to a mail and send it to me (christoph.giesche_github@cgidev.de). I will only use it to find out, if one of the enties is causing the problem and then delete this data.

Replace "TOKEN" with a fresh token from Home-Assistant (delete it afterwards).
Replace the first part of the URL with your Home-Assistant hostname and port
Click "Run"

After your request succeeded, it should look like this:

Status should be 200
The content in the text box (depending on your entity count it may be huge) is, what i need.

Thanks. I will take a look at this later tonight and email you the output.
Note that the first time I select the entity box under keypad appearance, it appears to work correctly; i.e. I select "light" from the dropdown under Domain and then all of the lights are populated correctly under the Entity dropdown list.

Any updates on this? I am experiencing the same issue:
OS: MacOS 14.2.1
Stream Deck: 6.4.1 (19697)
Home Assistant Plugin: 2.4.2 (from Marketplace)
I'm happy to help out anyway I can with sending diagnostics but am unsure how to do so on Mac.

Interestingly, the plugin doesn't even seem to make requests for services where the entity is specified in the service data. Case in point, the following works perfectly in HA

Everything points to the problem being one or more entities that somehow break my code. Yesterday I installed my PC from scratch, did not use any backups and the plugin is working perfectly fine.
You can help like described above:
https://github.com/cgiesche/streamdeck-homeassistant/issues/227#issuecomment-1877768549
With this data, I could import your entities in my local plugin (of course, i can not control them or view live data as this is only a snapshot) and hopefully, the error will occur.

@cgiesche I have a large network of devices which I'm not comfortable sharing, even with someone privately, I hope you can understand.
I do agree though that this is environmental.
May I suggest another way to approach this? If it were true that there is some sort of entity was causing the code not to show the list of entities, and prevent requests from sending, what are the most likely places of code that would be error?
I'm unfamiliar with the codebase, Vue and Stream Deck plugins, but if I were to take a high probability stab in the dark... I wonder if the code is expecting a property to exist on an entity and it's accessing a sub-property/method of it but the property is undefined for a particular entity.
Some suggestions:

Focusing on the area that is likely to contain the problem, double-checking how and which properties are accessed and whether they can be accessed in a safer way (e.g. using optional chaining)

Adding some error catching and logging to the likely area or adding UI elements in a special "debug" release which give feedback on any errors, etc

I have just created a debug release which has to be installed manually (https://github.com/cgiesche/streamdeck-homeassistant/releases/tag/2.4.3).
It does perform intense logging at the place where available entities are filtered after selecting a service for a service.
You can access the logs like described in https://github.com/cgiesche/streamdeck-homeassistant/issues/227#issuecomment-1875988101.
Example output:

@cgiesche Here is a screenshot of the JS console along. Note that I tweaked your build slightly to just output the count of available entities and services rather than outputting the entities and services themselves.

I hope this is helpful. I also privately emailed you a screen-recording of my session if that's more helpful.

I've also just come to the same realization. Thanks for the support!
And once again, as a Java developer, I've fallen victim to the type uncertainty of JavaScript. :D

Here we go: https://github.com/cgiesche/streamdeck-homeassistant/releases/tag/2.4.4
This will hopefully be the next release for the elgato store. Besides (hopefully) fixing this issue, It contains some other minor fixes and improvements.
Please feel free to test and give your feedback.

And once again, as a Java developer, I've fallen victim to the type uncertainty of JavaScript. :D

Haha, well you're in good company. As a former C# (basically Java) dev myself, my advice is to embrace TypeScript! 😅
2.4.4 seems to be working as expected 👌
Thanks for your time, patience and persistence 💯 🥇


Support file locking for Windows

The current file locking implementation is effectively a noop on Windows.

just tried it on windows and starting a second Prometheus with the same DB returns an error so locking is working as expected.
Also looked at the code and it is indeed implemented for windows as well.
https://github.com/prometheus/tsdb/blob/109252f3aa66b954d237978b5fac7a4e57edf4da/fileutil/flock_windows.go#L26-L36
@fabxc 	please let me know if you meant something else.


LCFS-1207: Adding new columns to Other Use

Add new columns to the Fuels for Other Use AG grid table in the compliance report and Report Details:

Determining Carbon Intensity
Fuel Code
CI of Fuel

Tests passing :)


Victor VosMottor: Watch watches title, body and username

Victor VosMottor requests the watch of the watch_keyword watches title, body and username. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

watches title, body and username has been seen in 0 true positives, 0 false positives, and 0 NAAs.

Rejected by Spevacus in Charcoal HQ. Reason: 'Accidental watch'


The best results by using Resnet152

Hi, according to the paper, all results in the paper are obtained by AlexNet.
So what's the result on the three datasets if use Resnet152 as feature extraction model?
I run your pytorch code by using Resnet152 as the base CNN model, but get worse results than your paper.
Thank you very much if you can answer this question!!!

You need to tune the parameters such as learning rate and the trade off for other base networks. You can also try to fix some layers of ResNet to prevent overfitting.

Yes, I fine-tuned on the ResNet, but didn't get a better result, but I also want to know the results you got, because I want to compare with your results.

I mean try some hyper parameters such as learning rate and the trade off. And since ResNet os much more deeper than AlexNet, I suggest fixing the ResNet and only train the encoding layer.

Thank you! zhangjie.

@yl2488
How did you train the model? I fine-tuned on the ResNet50, the mAP is 0.7780.
This is my experiment details:
Model: ResNet50(the activation function is tanh)
Loss: pairwise cross-entropy(without the weight to account for the data imbalance, with alpha==1)
R: 5000(dataset is nuswide_81)
epoch: 50(if go on training, the loss will be lower)
loss:
def pairwise_loss(outputs1,outputs2,label1,label2):
    similarity = Variable(torch.mm(label1.data.float(), label2.data.float().t()) > 0).float()
    dot_product = torch.mm(outputs1, outputs2.t())
    #exp_product = torch.exp(dot_product)

    mask_positive = similarity.data > 0
    mask_negative = similarity.data <= 0

    exp_loss = torch.sum(torch.log(1+torch.exp(-torch.abs(dot_product))) + torch.max(dot_product, Variable(torch.FloatTensor([0.]).cuda()))-similarity * dot_product)

    #exp_loss = torch.sum(torch.log(1 + exp_product) - similarity * dot_product)
    loss = exp_loss/(torch.sum(mask_positive.float())  + torch.sum(mask_negative.float()))
    return loss

map:
def mean_average_precision(database_codes,database_labels,test_codes,test_labels, R):
    query_num = test_codes.shape[0]

    sim = np.dot(database_codes, test_codes.T)
    ids = np.argsort(-sim, axis=0)
    APx = []

    for i in range(query_num):
        label = test_labels[i, :]
        label[label == 0] = -1
        idx = ids[:, i]
        imatch = np.sum(database_labels[idx[0:R], :] == label, axis=1) > 0
        relevant_num = np.sum(imatch)
        Lx = np.cumsum(imatch)
        Px = Lx.astype(float) / np.arange(1, R + 1, 1)
        if relevant_num != 0:
            APx.append(np.sum(Px * imatch) / relevant_num)

    return np.mean(np.array(APx))

@yl2488
How did you train the model? I fine-tuned on the ResNet50, the mAP is 0.7780.
This is my experiment details:
Model: ResNet50(the activation function is tanh)
Loss: pairwise cross-entropy(without the weight to account for the data imbalance, with alpha==1)
R: 5000(dataset is nuswide_81)
epoch: 50(if go on training, the loss will be lower)
loss:
def pairwise_loss(outputs1,outputs2,label1,label2):
    similarity = Variable(torch.mm(label1.data.float(), label2.data.float().t()) > 0).float()
    dot_product = torch.mm(outputs1, outputs2.t())
    #exp_product = torch.exp(dot_product)

    mask_positive = similarity.data > 0
    mask_negative = similarity.data <= 0

    exp_loss = torch.sum(torch.log(1+torch.exp(-torch.abs(dot_product))) + torch.max(dot_product, Variable(torch.FloatTensor([0.]).cuda()))-similarity * dot_product)

    #exp_loss = torch.sum(torch.log(1 + exp_product) - similarity * dot_product)
    loss = exp_loss/(torch.sum(mask_positive.float())  + torch.sum(mask_negative.float()))
    return loss

map:
def mean_average_precision(database_codes,database_labels,test_codes,test_labels, R):
    query_num = test_codes.shape[0]

    sim = np.dot(database_codes, test_codes.T)
    ids = np.argsort(-sim, axis=0)
    APx = []

    for i in range(query_num):
        label = test_labels[i, :]
        label[label == 0] = -1
        idx = ids[:, i]
        imatch = np.sum(database_labels[idx[0:R], :] == label, axis=1) > 0
        relevant_num = np.sum(imatch)
        Lx = np.cumsum(imatch)
        Px = Lx.astype(float) / np.arange(1, R + 1, 1)
        if relevant_num != 0:
            APx.append(np.sum(Px * imatch) / relevant_num)

    return np.mean(np.array(APx))

Hi, after fine-tuning, I also obtain similar result with you by using ResNet50. MAP@64bit, 77.51 for bus_wide


Docker doesn't remove MASQUERADE nat rule when removing network

Description of problem:
Docker doesn't remove MASQUERADE rule from iptables when network is rm'ed.
If the same network is created, removed, then created again, the rule
is duplicated in iptables. One result of this is that the gateway address
is wrongly propagated as the source address of a connection.
docker version:
Client:
 Version:      1.9.0
 API version:  1.21
 Go version:   go1.4.2
 Git commit:   76d6bc9
 Built:        Tue Nov  3 17:48:04 UTC 2015
 OS/Arch:      linux/amd64

Server:
 Version:      1.9.0
 API version:  1.21
 Go version:   go1.4.2
 Git commit:   76d6bc9
 Built:        Tue Nov  3 17:48:04 UTC 2015
 OS/Arch:      linux/amd64

docker info:
Containers: 41
Images: 52
Server Version: 1.9.0
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 134
 Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.19.0-33-generic
Operating System: Ubuntu 15.04
CPUs: 4
Total Memory: 7.705 GiB
Name: wackbook
ID: VNVB:5RAY:RLCV:FJ4U:IHYI:T2V3:E7AD:KOTF:ZZAI:UB5X:LAA7:JCPA
WARNING: No swap limit support

uname -a:
Linux wackbook 3.19.0-33-generic #38-Ubuntu SMP Fri Nov 6 18:18:12 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Environment details (AWS, VirtualBox, physical, etc.):
Physical laptop
How reproducible:
Easy?
Steps to Reproduce:

docker network create --subnet=<IP_ADDRESS>/24 batman
docker network rm batman
docker network create --subnet=<IP_ADDRESS>/24 batman
iptables -t nat -L | grep 10.5.5

Actual Results:
MASQUERADE  all  --  <IP_ADDRESS>/24          anywhere
MASQUERADE  all  --  <IP_ADDRESS>/24          anywhere

Expected Results:
MASQUERADE  all  --  <IP_ADDRESS>/24          anywhere

Additional info:
Cross reference #7540 which may be related

ping @mavenugo

I think this is also a dup of https://github.com/docker/libnetwork/issues/570, and the fix is ready.

Yep, sure is. @WeiZhang555 I had a look at your PR, looks good to me, though I'm sure a test would help it get merged :). Would be relatively easy too by the looks of it, just to make sure that the natChain and filterChain are the same before and after?

See #docker/libnetwork#591.

@ssadler Just tested with a docker image containing @WeiZhang555's change and can confirm it fixes the issue you reported.
Next libnetwork vendoring in docker will bring the fix in. Thanks @WeiZhang555.

Thanks @WeiZhang555 @aboch

Glad to help :smile:

Closed via https://github.com/docker/libnetwork/pull/591.
Server Version: 1.12.1
Storage Driver: overlay
 Backing Filesystem: extfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null bridge host overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: selinux
Kernel Version: 4.7.3-coreos
Operating System: CoreOS 1192.0.0 (MoreOS)
OSType: linux
Architecture: x86_64
CPUs: 24
Total Memory: 62.95 GiB
Name: localhost
ID: HGO4:Z5FW:YF4I:B2TD:TZQ5:C6ZQ:MMSR:RHXA:QDEY:53P4:M2RV:FMPB
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
...

iptables --version:
iptables v1.4.21

How reproducible:
It seems random, sometimes MASQUERADE nat rule is left behind. And other times it's cleaned up.
Additional info:
The issue is also causing #7540

@Timoha the original issue reported here was fixed. If you're still seeing this on the current (1.12.3) release, open a new issue. Please take into account that we don't provide builds for CoreOS, and that their packages contain modifications both in source code, and configuration, which can be related

Thanks for the prompt response! Indeed that was the issue.


What type of update are you requesting?
A new version of an existing package
Current Package Identifier
DG0JBJ.HDSDR
Package Version
2.81-b14
Please describe the changes you would like to see
There is a new release (2.81-b14) available. Download Page Url: https://www.hdsdr.de/ (https://hdsdr.de/download/HDSDR281b14_install.exe)

Acronym disambiguation suggests "high definition software defined radio."


rendering is taking too much time

I am using mathjax with my react-native quiz application. But it is taking too much time in loading the question with all four options and downgrading the performance of application.
I tried putting loader when webview loads but loader stays only untill the webview loads and rending of mathematical questions still takes more time to display.
Any way by which we can reduce the rendering time or put a loader/activity indicator on rending too?

Hi @dverma4u , I am using this component for the exact same purpose (a multiple choice quiz app with a question and 4 options, and step-by-step solutions, ie 6 mathjax webview to be displayed at the same time) and seems do not have the performance issue you mentioned. It is loaded within 1s like ordinary mathjax in web. Would you mind providing some metrics? Like how long does it take to load and what device are you using?

It is taking around 5-6 seconds for everything to be loaded. Please help me in reducing this time lag.

can you please share the quiz app demo? how you are implementing mathJax? Actually I'm only usong the wrapMathkax function from your example app with react-native-webview-autoheight because react-native-autoheight-webview was causing some unresolved error.

Just fixed some bugs on this module and added demo code on it. it loads almost instantly on my iphone 6 simulator. Please check

yes, in real device it loads instantly, maybe the issue is with my android emulator.

I am facing this same issue on my android device. It is taking 5-6 seconds to load the content. Please help

I am also facing the same problem.... I guess it is due to the cdn file which is requested every time the webview renders. Is there any way to use the local mathjax lib instead of cdn


Added explicit Athena dialect, support for empty array literals

We had SQL queries that contained fragments that looked like this:
,COALESCE(t.location_id_tokenized, ARRAY []) AS location_id_tokenized

We needed to coalesce the values down to empty arrays. This is the recommended syntax on the AWS Athena docs: https://docs.aws.amazon.com/athena/latest/ug/creating-arrays.html
Oddly, the parser assumed all ARRAY keyword literal values would have a comma separated list of values inside of them. This initially threw me off as I assumed it would be a lexing problem. That's one reason there's an AthenaSqlDialect in here. The other reason is that I wasn't sure if I should bolt the ARRAY[] test onto an existing dialect or carve out an Athena dialect. The Athena SQL dialect tests are a hodgepodge of Hive tests with a single array literal test from PostgreSQL adapted to this specific missing feature.
If you want to migrate the test into an existing dialect and nuke the Athena dialect, that's fine by me. Athena SQL is basically Presto+Hive I think, so it's whatever you want to do. This problem is fixed for all SQL dialects regardless because it's in the parser.
Cheers and thanks for the parser, this thing has saved me countless hours.

Hey @bitemyapp , thanks for the PR!

If you want to migrate the test into an existing dialect and nuke the Athena dialect, that's fine by me. Athena SQL is basically Presto+Hive I think, so it's whatever you want to do. This problem is fixed for all SQL dialects regardless because it's in the parser.

Yes please, that sounds like the best way forward.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

132 of 133 (99.25%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 90.002%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/parser.rs
7
8
87.5%

Totals

Change from base Build<PHONE_NUMBER>:
0.2%

Covered Lines:
8993

Relevant Lines:
9992

💛  - Coveralls

Yes please, that sounds like the best way forward.

Okie dokie artichokie. I'll push it tomorrow.

@Dandandan oh, actually, where should the test specifically for the ARRAY[] syntax go? I nabbed the value-full version from PGSQL but not sure if that's where you actually want it.

Amended the MR title to fit the reality better.

@bitemyapp could you fix the code style issue? Otherwise this is good to go!

@Dandandan it should be fixed now. FWIW that license template header option seems to be gone in newer versions of cargo fmt.

@Dandandan it should be fixed now. FWIW that license template header option seems to be gone in newer versions of cargo fmt.

Thank you @bitemyapp !


Custom attributes ( for example IDs)

This library is amazing. It would help a lot if there were more custom attributes

Assuming you mean gltfpack, it supports ID attributes in the latest version (0.20); the attribute needs to be named "_ID", "_BATCHID" or "_FEATURE_ID_n" for this to work. Feel free to suggest additional naming schemes to support, these were the ones that are commonly used in the ecosystem.


Authentification needed without opened session on Windows

Hello
I have a schedule task on Windows XP, it synchronize a file on my Gdrive.
No problem if i opened a session and execute the task.
But when there is any session, the task start and when Gdrive upload, it ask the verification code.
I have the .gdrive folder in the user older who execute the task.
For example, my task must start with TOTO user, and in TOTO home folder/applicationData, i have .gdrive.
Do you have an idea ?
Can I force the folder of the token ?
regards

Any idea ?

@ordimans We're having the same issue and haven't gotten it to work yet either.

I change my command line with
drive --refresh-token AUTH_TOKEN
It seems to be OK, i will confirm in some days, if no problem encountered.

Work without problem since several month.
Issues can be closed.


counter: stm32: Missing implementation of set_top_value

Is your enhancement proposal related to a problem? Please describe.
Current implementation of counter api in stm32 rtc driver is a no-op:
static int rtc_stm32_set_top_value(const struct device *dev,
				   const struct counter_top_cfg *cfg)
{
	const struct counter_config_info *info = dev->config;

	if ((cfg->ticks != info->max_top_value) ||
		!(cfg->flags & COUNTER_TOP_CFG_DONT_RESET)) {
		return -ENOTSUP;
	} else {
		return 0;
	}

Describe the solution you'd like
Implement effective support for this feature with optional COUNTER_TOP_CFG_DONT_RESET if supported by HW.

In the counter_set_top_value  api, there is a callback to be called when the top_value is reached: counter_top_callback_t
The rtc_stm32_data must be extended to include this callback from the  rtc_stm32_isr

After Disabling the WritePortection on all the RTC registers, the following sequence is required to configure or change the wakeup timer (WUT) auto-reload value.

disable the wakeup timer.
Poll WUTWF until it is set in RTC_ISR to make sure the access to wakeup auto-reload counter and to WUCKSEL[2:0] bits is allowed. It takes 1 to 2 RTCCLK clock cycles (due to clock synchronization).
Program the wakeup auto-reload value and the wakeup clock selection.
Set WUTE in RTC_CR to enable the timer again.
The wakeup timer restarts down-counting.

The RTC wakeup (WUT) of the stm32 counts DOWN  from its load value max 0xFFFF to 0.
The RESET / DONT_RESET flag of the counter_top_cfg, change the value of the starting WUT counter :

starts from the new value set (RESET mode)
adds the current counter value to the new value set  (DONT_RESET mode).
In any case this value could be maximized to 0xFFFF.

Depending on the stm32 soc device, the RTC WakeUp interrupt has its own IRQ entry and EXTI line.
Consequently the DTS must be adapted to accept more than the ALARM interrupt entry and EXTI line.
Some devices, like the stm32L552 or stm32L562 have a common interrupt EXTI line for all the RTC functions.

The zephyr API, explicitly mentions that " Top value can only be changed when there is no active channel alarm."
This is detected by the valid alarm_callback function.
Because the stm32 WUT is counting down, the  -ETIME return code is not identified:
"if COUNTER_TOP_CFG_DONT_RESET was set and new top value is smaller than current counter value (counter counting up)." It means , the new top value won't be reached.
In case of down counting, a proposal here is to return -ETIME if COUNTER_TOP_CFG_RESET_WHEN_LATE is NOT set and the new top value is greater than the current counter value.
In case of of down counting, if COUNTER_TOP_CFG_RESET_WHEN_LATE is set and  and the new top value is greater than the current counter value, then the counter is stopped, new value is loaded and counter is re-started.
In case of of down counting, if the new top value is smaller than the current counter value, then the counter is stopped, new value is loaded and counter is re-started.

The zephyr API, explicitly mentions that " Top value can only be changed when there is no active channel alarm."
This is detected by the valid alarm_callback function.
When setting the new top value, the current position of the counter is compared.
if new top value to set > current counter position then resetting the counter depends on the flag COUNTER_TOP_CFG_DONT_RESET.
if new top value to set < current counter position then resetting the counter depends on the flag COUNTER_TOP_CFG_RESET_WHEN_LATE. if not set, the new top value cannot be set, returning an -ETIME error.

Closing for now as too complex vs gain.


Implement Var.plot_vars and Model.plot_vars

All of the below applies to plot_vars as well as plot_nodes.
This PR adds methods to the lsl.Var and the lsl.Model objects that wrap the referenced plotting functions. The method on lsl.Model is inspired by the corresponding lsl.GraphBuilder.plot_vars method, which has existed for a long time and I find quite convenient.
The lsl.Var.plot_vars brings more novelty, because it is a way to very quickly plot intermediate sub-models. One tricky bit was to deal with the automatic naming: As soon as you initialize a model, Liesel will automatically assign names to unnamed nodes. Because lsl.plot_vars works similar to lsl.GraphBuilder.plot_vars, this also happens here: A helper model is built, then the plot is created, then the helper model is discarded. The issue is: The previously unnamed nodes keep their new names. I think this is not intended behavior, so the lsl.Var.plot_vars method resets the automatically assigned names after plotting. It also emits a logging message that notifies users of this behavior, because I think otherwise it could be confusing.
lsl.Var.plot_vars will not work for variables that are already part of a model, because in this case, no intermediate model can be created.
In lsl.Var.plot_nodes, the three model nodes (log_prob, log_lik, log_prior) will also show up. I think this is ok. This plot is intended for advanced users anyway, and having the three log prob nodes in there allows users to spot potential issues with the likelihood and prior attribution in their subgraph.
Example
>>> import liesel.model as lsl
>>> a = lsl.Var.new_value(1.0)
>>> b = lsl.Var.new_calc(lambda a: a + 1.0, a=a, name="b")

>>> a.name
''

>>> b.plot_vars()
liesel.model.nodes - INFO - Unnamed variables were temporarily named for plotting. The automatically assigned names are: ['v0']. The names are reset after plotting.

>>> b.plot_nodes()
liesel.model.nodes - INFO - Unnamed variables were temporarily named for plotting. The automatically assigned names are: ['v0']. The names are reset after plotting.

Note: In this example, the three model nodes are unconnected, because there is no node with a probability in the minimal example model.
>>> a.name
''

In lsl.Var.plot_nodes, the three model nodes (log_prob, log_lik, log_prior) will also show up. I think this is ok. This plot is intended for advanced users anyway, and having the three log prob nodes in there allows users to spot potential issues with the likelihood and prior attribution in their subgraph.

I think this is rather a feature, because when your var has an associated distribution the user can varify that it contributes to the model_log_prob / likelihood / prior node.

Maybe the necessity to build an intermediate model can be removed by using lsl.Model._build_graph directly. This would be very nice, because it would mean that you can also simply plot the subgraph of a variable that is part of a model.

In lsl.Var.plot_nodes, the three model nodes (log_prob, log_lik, log_prior) will also show up. I think this is ok. This plot is intended for advanced users anyway, and having the three log prob nodes in there allows users to spot potential issues with the likelihood and prior attribution in their subgraph.

I think this is rather a feature, because when your var has an associated distribution the user can varify that it contributes to the model_log_prob / likelihood / prior node.

I agree 😊

In lsl.Var.plot_nodes, the three model nodes (log_prob, log_lik, log_prior) will also show up. I think this is ok. This plot is intended for advanced users anyway, and having the three log prob nodes in there allows users to spot potential issues with the likelihood and prior attribution in their subgraph.

I think this is rather a feature, because when your var has an associated distribution the user can varify that it contributes to the model_log_prob / likelihood / prior node.

I agree 😊

I thought a bit more on it, and I now think the behavior is not all that useful. The model nodes we see on the graph above are not model nodes from the "true" model, but from an auxiliary model that is created just to construct the graph for plotting. So connections to these nodes are not diagnostic of the presence or absence of problems in the "true" model that includes child nodes.
I added some commits with the following updates:

Calling Var.plot_vars() and Var.plot_nodes() will now also work as expected when the Var is already part of a model. In the process, I added the methods Model.var_subgraph() and Model.node_subgraph.
The model nodes are not part of the plot produced by Var.plot_nodes anymore.

A more involved example:
import liesel.model as lsl
import tensorflow_probability.substrates.jax.distributions as tfd

mu = lsl.Var.new_param(1.0, lsl.Dist(tfd.Normal, loc=0.0, scale=1.0), name="mu")
sigma = lsl.Var.new_param(
    1.0,
    lsl.Dist(
        tfd.InverseGamma,
        concentration=lsl.Var.new_value(2.0),
        scale=lsl.Var.new_value(0.5),
    ),
    name="sigma",
)
y = lsl.Var(1.0, lsl.Dist(tfd.Normal, loc=mu, scale=sigma), name="y")

y.plot_vars()

model = lsl.Model([y])
y.plot_vars()

y.plot_nodes()


Integrate the prettier module

would you consider using or doing something like https://github.com/kentcdodds/prettier-eslint for xo --fix ?
more links
https://github.com/jlongster/prettier
https://github.com/kentcdodds/prettier-eslint-cli

Maybe. I'm gonna give it some time to mature first. Right now it's very buggy. I'll keep this issue open.

Relevant: https://github.com/not-an-aardvark/eslint-plugin-prettier
(I use it and think it's great.)

@sindresorhus we will see this feature in a near feature ? thanks!

Heads-up: Prettier has just hit v1.0!
I found this issue because I do not fully understand what differentiates Prettier from XO.  Wouldn't a Prettier plugin duplicate XO's functionality?

@jangerhofer Prettier is a formatter and XO is a linter that uses ESLint underneath

Oh no. Every time I try prettier I don't like its tricks to shorten the lines.
xo ok

prettier

Why.

Prettier is really mature now and can be easily integrated.. here is an example on how to use it with ESLint https://github.com/lipis/prettier-setup

Prettier is really stable for a while now and used in many large projects (in particular most of Facebook code).
It can be integrated with xo or eslint pretty easily with eslint-plugin-prettier and eslint-config-prettier:

eslint-config-prettier disable all the eslint formatting rules (rules related to comma, spaces etc but not the rules related to code issues) that are covered by prettier.
eslint-plugin-prettier report errors/warnings when some code is formatted differently than the prettier format and allow to automatically fix it with --fix.

In order to use it with xo it can be configured this way in package.json:
"devDependencies": {
  "eslint-config-prettier": "^2.8.0",
  "eslint-plugin-prettier": "^2.3.0",
  "prettier": "^1.8.2",
  "xo": "^0.18.2"
},
"prettier": {
  // Any other prettier options
  "singleQuote": true
},
"xo": {
  "extends": [
    "prettier"
  ],
  "plugins": [
    "prettier"
  ],
  "rules": {
    "prettier/prettier": "error"
  }
}

It works well but it requires some configuration and devDpendencies.
In xo we could:

Add a prettier option (true or false, false by default)
if prettier option is true add eslint-plugin-prettier and eslint-config-prettier and the rule  "prettier/prettier": "error"

Would you be open to such PR?


signup with auth0

I have implemented siging up a user using the auth0 api and is it possible that I could still use the hooks available in auth0/nextjs-auth0 to store the user across the application, and login to the application using the universal login, and store the logged in user across the application as well?

Hi @Malith077 - nextjs-auth0 only supports using the Universal Login Page for authentication. If you want to use your own bespoke embedded system for doing auth then this SDK won't be suitable for them as we don’t expose the low level functionality for managing the session.
Auth0 recommends using the Universal Login Page over embedded but if you want to persevere with embedded, Vercel recommends iron-session for a low-level, encrypted, and stateless session utility.

Hi @adamjmcgrath So after I signup a user then I have to redirect them to complete the login. After that I'll be able to keep the user across the application?
Is there any  other auth0 npm package that I could use which doesn't redirect the user to ULP after signing up? In my use case, I need to signup a user then redirect them to a "Thank you for signing up" page. However, this particular page has to have the signed up user in the navbar right away.
Appriciate some directions. Thanks.

So after I signup a user then I have to redirect them to complete the login. After that I'll be able to keep the user across the application?

Correct

Is there any other auth0 npm package that I could use which doesn't redirect the user to ULP after signing up?

Only our legacy SDKs do embedded auth (like auth0.js see https://github.com/auth0/auth0.js#auth0authentication)

Closing - feel free to ping me if you want me to reopen


Allow remove action before map is ready

Tested on iOS and Android. I was seeing issues with the map sticking in the background when we transitioned between views. This allows us to remove the map before it is ready.

Thank you for sending a PR.
But I think the multiple_maps branch version does not have this issue.
Did you test the multiple_maps branch code?
Also, could you share the project files that reproduce your issue 100% on github (or other git repo)?

I actually just realized I tested it against your commit #73ec7f7.
I can't get the latest commit from multiple_maps to build on Android. Been getting symbol StreetViewSource not found even though I have all the latest packages and google play updates.

Ah, yes, #73ec7f7 is incorrect.
But the latest commit of the multiple_maps branch is this one, not #73ec7f7
https://github.com/mapsplugin/cordova-plugin-googlemaps/commit/5d1d018db837116ca45649acf968cf53dfb19ebe
I appreciate your PR, but I just want to validate the case of your issue.
I guess the issue is occurred during the page moving from A to B on ionic.
Would it be possible to ask you to share the project files that reproduce your issue (100% or frequently reproducible)?

ping

I'm not sure what happened, but there was one time I confirmed a native map had been remained in the next page.
So maybe your PR is true.

Thank you for sending this PR.

(Oh, you sent to the master branch...)


Relayer should create a directory inside keystore for specific chain-nid if not exists

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Additional context
Add any other context about the problem here.

not needed


Keep an eye on SHACL

Shapes Constraint Language (SHACL) is a language for validating RDF graphs against a set of conditions.

Since July 2017 SHACL is a W3C recommendation.
Some other interesting links:

https://www.linkedin.com/pulse/meet-shacl-next-owl-kurt-cagle

https://semanticarts.com/blog/rdf-shapes/

We are currently integrating SHACL validation in dsp-tools.
This issue has been inactive for a significant time, so we’re closing it for now. If it’s still relevant, feel free to reopen.


Replace FundError with InvoiceModal

invoices are no longer deleted to prevent double-spends but marked as confirmed.
therefore, during checkInvoice, we also check if the invoice is already confirmed.
instead of showing FundError (with "fund wallet" and "pay invoice" as options), we now always immediately show an invoice
since flagging, paying bounties and poll voting used FundError but only allowed spending from balance, they now also support paying per invoice

Based upon #432, so #432 should be merged first
Closes #405

I'll rebase this now since #432 was merged

I'm not sure the info message actually scratches the issue's itch. It's just kind of telling people they can overpay an invoice which most wallets don't support and most people aren't aware of (not to mention there are limitations on how much you can overpay an invoice). So I suspect this message is more confusing than helpful.
After seeing this invoicable stuff live for a bit, I don't think we need the ability to fund an account from these modals. It might not be worth the UX bloat to even do it how I imagined it and people can always put sats in their wallet if they want to.
I'm going to remove the info message for now.


Support non-IDebugMemoryBytesDAP engines

There can be cases where the engine loaded is not the latest AD7Engine or the Microsoft.MIDebugEngine.
In GetMemoryContext, we do a hard cast to IDebugMemoryBytesDAP. This
will error with "Specified cast is not valid" if the engine does not
implement IDebugMemoryBytesDAP and the engine is not the latest
Microsoft.MIDebugEngine.
This PR converts the hard cast to be a is check. If the engine is not
IDebugMemoryBytesDAP, it will return E_NOTIMPL.
Related: https://github.com/microsoft/MIEngine/issues/1081

Should we send false for SupportsReadMemoryRequest if m_engine is not IDebugMemoryBytesDAP, too?
https://github.com/microsoft/MIEngine/blob/f3fafeb3dd1e7f50390d81e1348d1b29b31150b2/src/OpenDebugAD7/AD7DebugSession.cs#L729

Should we send false for SupportsReadMemoryRequest if m_engine is not IDebugMemoryBytesDAP, too?

Ideally, yes


Add voice over

Add an option to play audio on designated pages.
There can be two approaches to this:

Have a button that when pressed, plays the audio of the current page (could maybe add a "voice over" checkbox that if checked will play the audio every time the user swaps to a different page).
Have  interactable parts on a page that when clicked, plays the corresponding audio (a bit harder to do, also has to consider the fact that page navigation is done through clicking on the page).

As per discussion on Discord we're not doing this anymore due to time constraints :pensive:


TRANS_CREATE_05, TRANS_ESTIMATE_08 and STAKE_POOLS_JOIN_04 fail on Jormungandr

Context
3 scenarios failed on Jormungandr:
https://buildkite.com/input-output-hk/cardano-wallet/builds/8496#3a7edef1-0925-4024-9708-5da492de71cb
Test Case
STAKE_POOLS_JOIN_04
TRANS_CREATE_05
TRANS_ESTIMATE_08
Failure / Counter-example
3 scenarios but generate 20 failures...

Failures:
--
  |
  | test/integration/Test/Integration/Jormungandr/Scenario/API/StakePools.hs:328:5:
  | 1) API Specifications STAKE_POOLS_JOIN_04 - Rewards accumulate and stop
  | uncaught exception: IOException of type UserError
  | user error (waited more than 3min for action to eventually resolve. Action: "Wallet gets rewards")
  |
  | To rerun use: --match "/API Specifications/STAKE_POOLS_JOIN_04 - Rewards accumulate and stop/"
  |
  | test/integration/Test/Integration/Jormungandr/Scenario/API/StakePools.hs:386:5:
  | 2) API Specifications STAKE_POOLS_JOIN_04 -Delegate, stop in the next epoch, and still earn rewards
  | uncaught exception: IOException of type UserError
  | user error (waited more than 3min for action to eventually resolve. Action: "wallet gets rewards")
  |
  | To rerun use: --match "/API Specifications/STAKE_POOLS_JOIN_04 -Delegate, stop in the next epoch, and still earn rewards/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:332:13:
  | 3) CLI Specifications, TRANS_CREATE_05 - Invalid addresses, -1000
  | "Please enter your passphrase: *****************\nError in $.payments[0].address: Unable to decode Address: encoding is neither Bech32 nor Base58.\n" does not contain "Unrecognized address encoding"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_CREATE_05 - Invalid addresses/-1000/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:332:13:
  | 4) CLI Specifications, TRANS_CREATE_05 - Invalid addresses, q
  | "Please enter your passphrase: *****************\nError in $.payments[0].address: Unable to decode Address: neither Bech32-encoded nor a valid Byron Address.\n" does not contain "Unable to decode address"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_CREATE_05 - Invalid addresses/q/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:332:13:
  | 5) CLI Specifications, TRANS_CREATE_05 - Invalid addresses, empty
  | "Please enter your passphrase: *****************\nError in $.payments[0].address: Unable to decode Address: neither Bech32-encoded nor a valid Byron Address.\n" does not contain "Unable to decode address"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_CREATE_05 - Invalid addresses/empty/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:332:13:
  | 6) CLI Specifications, TRANS_CREATE_05 - Invalid addresses, arabic
  | "Please enter your passphrase: *****************\nError in $.payments[0].address: Unable to decode Address: encoding is neither Bech32 nor Base58.\n" does not contain "Unrecognized address encoding"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_CREATE_05 - Invalid addresses/arabic/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:332:13:
  | 7) CLI Specifications, TRANS_CREATE_05 - Invalid addresses, kanji
  | "Please enter your passphrase: *****************\nError in $.payments[0].address: Unable to decode Address: encoding is neither Bech32 nor Base58.\n" does not contain "Unrecognized address encoding"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_CREATE_05 - Invalid addresses/kanji/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:332:13:
  | 8) CLI Specifications, TRANS_CREATE_05 - Invalid addresses, polish
  | "Please enter your passphrase: *****************\nError in $.payments[0].address: Unable to decode Address: encoding is neither Bech32 nor Base58.\n" does not contain "Unrecognized address encoding"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_CREATE_05 - Invalid addresses/polish/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:332:13:
  | 9) CLI Specifications, TRANS_CREATE_05 - Invalid addresses, []
  | "Please enter your passphrase: *****************\nError in $.payments[0].address: Unable to decode Address: encoding is neither Bech32 nor Base58.\n" does not contain "Unrecognized address encoding"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_CREATE_05 - Invalid addresses/[]/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:332:13:
  | 10) CLI Specifications, TRANS_CREATE_05 - Invalid addresses, no address
  | "Please enter your passphrase: *****************\nError in $.payments[0].address: Unable to decode Address: neither Bech32-encoded nor a valid Byron Address.\n" does not contain "Unable to decode address"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_CREATE_05 - Invalid addresses/no address/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:332:13:
  | 11) CLI Specifications, TRANS_CREATE_05 - Invalid addresses, address is space
  | "Please enter your passphrase: *****************\nError in $.payments[0].address: Unable to decode Address: encoding is neither Bech32 nor Base58.\n" does not contain "Unrecognized address encoding"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_CREATE_05 - Invalid addresses/address is space/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:568:13:
  | 12) CLI Specifications, TRANS_ESTIMATE_08 - Invalid addresses, -1000
  | "Error in $.payments[0].address: Unable to decode Address: encoding is neither Bech32 nor Base58.\n" does not contain "Unrecognized address encoding"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_ESTIMATE_08 - Invalid addresses/-1000/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:568:13:
  | 13) CLI Specifications, TRANS_ESTIMATE_08 - Invalid addresses, q
  | "Error in $.payments[0].address: Unable to decode Address: neither Bech32-encoded nor a valid Byron Address.\n" does not contain "Unable to decode address"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_ESTIMATE_08 - Invalid addresses/q/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:568:13:
  | 14) CLI Specifications, TRANS_ESTIMATE_08 - Invalid addresses, empty
  | "Error in $.payments[0].address: Unable to decode Address: neither Bech32-encoded nor a valid Byron Address.\n" does not contain "Unable to decode address"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_ESTIMATE_08 - Invalid addresses/empty/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:568:13:
  | 15) CLI Specifications, TRANS_ESTIMATE_08 - Invalid addresses, arabic
  | "Error in $.payments[0].address: Unable to decode Address: encoding is neither Bech32 nor Base58.\n" does not contain "Unrecognized address encoding"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_ESTIMATE_08 - Invalid addresses/arabic/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:568:13:
  | 16) CLI Specifications, TRANS_ESTIMATE_08 - Invalid addresses, kanji
  | "Error in $.payments[0].address: Unable to decode Address: encoding is neither Bech32 nor Base58.\n" does not contain "Unrecognized address encoding"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_ESTIMATE_08 - Invalid addresses/kanji/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:568:13:
  | 17) CLI Specifications, TRANS_ESTIMATE_08 - Invalid addresses, polish
  | "Error in $.payments[0].address: Unable to decode Address: encoding is neither Bech32 nor Base58.\n" does not contain "Unrecognized address encoding"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_ESTIMATE_08 - Invalid addresses/polish/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:568:13:
  | 18) CLI Specifications, TRANS_ESTIMATE_08 - Invalid addresses, []
  | "Error in $.payments[0].address: Unable to decode Address: encoding is neither Bech32 nor Base58.\n" does not contain "Unrecognized address encoding"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_ESTIMATE_08 - Invalid addresses/[]/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:568:13:
  | 19) CLI Specifications, TRANS_ESTIMATE_08 - Invalid addresses, no address
  | "Error in $.payments[0].address: Unable to decode Address: neither Bech32-encoded nor a valid Byron Address.\n" does not contain "Unable to decode address"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_ESTIMATE_08 - Invalid addresses/no address/"
  |
  | src/Test/Integration/Scenario/CLI/Shelley/Transactions.hs:568:13:
  | 20) CLI Specifications, TRANS_ESTIMATE_08 - Invalid addresses, address is space
  | "Error in $.payments[0].address: Unable to decode Address: encoding is neither Bech32 nor Base58.\n" does not contain "Unrecognized address encoding"
  |
  | To rerun use: --match "/CLI Specifications/TRANS_ESTIMATE_08 - Invalid addresses/address is space/"
  |
  | Randomized with seed 970827029
  |
  | Finished in 1402.1443 seconds
  | 675 examples, 20 failures, 3 pending

Resolution

Fixed as part of the jormungandr update to 0.9.0 ==> #1779

QA

see latest nightly build that includes the PR above: https://buildkite.com/input-output-hk/cardano-wallet/builds/8590

lgtm


Unable to train TF2 Hub model with tf.distributed.MirroredStrategy

Trying to train a TF Hub model (TF2 version, using hub.KerasLayer) raises the following error:
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-13-b87e02e8ae0a> in <module>()
----> 1 model.fit(train_dataset, epochs=12, callbacks=callbacks)

5 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_freq, max_queue_size, workers, use_multiprocessing, **kwargs)
    641         max_queue_size=max_queue_size,
    642         workers=workers,
--> 643         use_multiprocessing=use_multiprocessing)
    644
    645   def evaluate(self,

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training_distributed.py in fit(self, model, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_freq, **kwargs)
    631             batch_size=batch_size,
    632             validation_split=validation_split,
--> 633             shuffle=shuffle)
    634
    635     val_dataset = None

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py in _standardize_user_data(self, x, y, sample_weight, class_weight, batch_size, check_steps, steps_name, steps, validation_split, shuffle, extract_tensors_from_dataset)
   2388           target_tensors=target_tensors,
   2389           run_eagerly=self.run_eagerly,
-> 2390           cloning=self._cloning)
   2391
   2392     # In graph mode, if we had just set inputs and targets as symbolic tensors

/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/tracking/base.py in _method_wrapper(self, *args, **kwargs)
    456     self._self_setattr_tracking = False  # pylint: disable=protected-access
    457     try:
--> 458       result = method(self, *args, **kwargs)
    459     finally:
    460       self._self_setattr_tracking = previous_value  # pylint: disable=protected-access

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py in compile(self, optimizer, loss, metrics, loss_weights, sample_weight_mode, weighted_metrics, target_tensors, distribute, **kwargs)
    353         for v in self.variables:
    354           strategy = self._distribution_strategy
--> 355           if not strategy.extended.variable_created_in_scope(v):
    356             raise ValueError(
    357                 'Variable (%s) was not created in the distribution strategy '

/usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py in variable_created_in_scope(self, v)
   1294       True if `v` was created inside the scope, False if not.
   1295     """
-> 1296     return v._distribute_strategy == self._container_strategy_weakref()  # pylint: disable=protected-access
   1297
   1298   def colocate_vars_with(self, colocate_with_variable):

AttributeError: 'UninitializedVariable' object has no attribute '_distribute_strategy'

A Colab showing the issue is available here
Tha colab is a copy of the Distributed Training with Keras example, adapted to use Hub's MobileNet V2 TF2 module (plus image resizing and tiling to make the inputs compatible).

Please try again with
!pip install --pre tf-nightly-gpu-2.0-preview
In 2.0.0-beta1, there are known issues between DistributionStrategy and tf.saved_model.load().
Running that now gave me version 2.0.0.dev20190809, and I could run .fit() in your script to 97% train accuracy (and then stopped watching).


Add short descriptions of schemas and fields to as subtitles in UI

Add short (like 80 characters max) descriptions as subtitles to describe fields, slices, templates

Sounds good 👍

This feature has been implemented as a part of https://github.com/birkir/prime/commit/50107ad69ded1ab2f158a6e1d1d5339ff3388b69


Apps or scripts are not served on sub-paths

Wave SDK Version, OS
wave server 0.25.0
h2o-wave 0.25.1
python 3.10.7
windows 10
Actual behavior
When I run any app or script (e.g., the system monitor example) on a route like /stats/monitor instead of /monitor, nothing is shown. The waved server does receive data periodically:
2023/03/16 08:33:41 * /stats/monitor {"d":[{"k":"cpu_stats data usage","v":0.0},{"k":"cpu_stats plot_data -1","v":[16,0.0]},{"k":"mem_stats data usage","v":93.0},{"k":"mem_stats plot_data -1","v":[16,93.0]}]}
2023/03/16 08:33:43 * /stats/monitor {"d":[{"k":"cpu_stats data usage","v":10.5},{"k":"cpu_stats plot_data -1","v":[17,10.5]},{"k":"mem_stats data usage","v":93.0},{"k":"mem_stats plot_data -1","v":[17,93.0]}]}
2023/03/16 08:33:45 * /stats/monitor {"d":[{"k":"cpu_stats data usage","v":9.6},{"k":"cpu_stats plot_data -1","v":[18,9.6]},{"k":"mem_stats data usage","v":93.0},{"k":"mem_stats plot_data -1","v":[18,93.0]}]}

But when I visit the page at http://localhost:10101/stats/monitor it's just a white background as if no widgets were loaded. This is in contrast to visiting any "single" route like /stats where the "wave live placeholder" is shown instead. If I set the script path to /monitor it works fine. For apps, it's the same behavior: Setting the route to / or /app is fine but /app/first will just show an empty window.
Interestingly, when I set the script path to /#/stats/monitor or /#/monitor it works! The same does not work for the app though.
Expected behavior
Based on https://wave.h2o.ai/docs/routing, I expected that can choose any "composite" route as an endpoint (from example: /foo and /foo/bar are two distinct paths..
My idea was to have an app that hosts multiple pages with different forms but also self-refreshing dashboards that are served on /scripts/ and are pulled into the app with ui.frame(). This is really just for clean separation of app pages and script views, so it would be a nice to have.
If the actual behavior IS the expected behavior, I think it would be nice to mention that explicitly in the documentation. Or even better: Add my expectation as a feature 😄 😉
Steps To Reproduce

Run system monitor script at /monitor. Visit http://localhost:10101/monitor to confirm it's working
Run system monitor script at /stats/monitor. Visit http://localhost:10101/stats/monitor. You will see an empty page. Check the server log to confirm that data is being sent.
Run system monitor script at /#/stats/monitor. Visit http://localhost:10101/#/stats/monitor to confirm it's working

Hi @aranvir this should be already fixed in 0.25.1. Can you please try it out?

wave server 0.25.0
h2o-wave 0.25.1

I just noticed. This is the problem. Wave server and python driver need to always match versions.


opam build setup

see https://github.com/gallais/parseque/issues/7
includes a GH actions config for an (arbitrary) selection of coq versions

Thanks!


'AggregateException' could not be found

Hi,
When I try to open and compile the following branch (https://github.com/charlesw/tesseract/tree/feature/321-Tesseract-4) using Visual Studio 2015, I get the following error :
The type or namespace name 'AggregateException' could not be found (are you missing a using directive or an assembly reference?) Tesseract	C:\Users\xxxxxx\xxxxxx\tesseract-feature-321-Tesseract-4\tesseract-feature-321-Tesseract-4\src\Tesseract\AggregateResultRenderer.cs	144
for the following line (144) of code
`
              if (childDisposalErrors.Count > 0) {
                   // If one or more the child document fail to be disposed of then return an aggregate of all the errors, including the initial error.
                   var errors = new List<Exception>(childDisposalErrors.Count + 1);
                   errors.Add(error);
                   errors.AddRange(childDisposalErrors);

                   throw new AggregateException(error.Message, errors);
               } else {
                   throw error;
               }`

Any idea?

Thanks

I tried on two different PCs but i'm getting the same error, do I have to use windows 7 ? incase it's related with my operating system?

AggregateException is part of the System namespace in .Net.  I would check the health and version of .Net on the target machines.  Install the .Net version targeted by your VS solution.  Just a guess.

Hi,
After some troubleshooting I found the issue. When you open the project by default it's set to use debug profile "Debug20" I had to change that to "Debug40" or higher
Thanks


Present SDM to DG management meetings

Present the strategy to 5 DG management meetings as an ice breaker, and communicate intention for 2 rounds of peer reviews:

[ ] BSI
[x] BSIM
[x] EO
[x] BOSS
[ ] BOP

No response from BSI and BOP
Scheduling independent meeting with technical debt team


Cut a new release?

Hey is it possible to cut a new release?  1.5 is from December 2015.
Thanks!
Stephen

@Crim
Yeah, I will dev new version to support newer protocol


Add support for quantized Conv2d

This layer is required for all computer vision models.

A first implementation here: https://github.com/huggingface/quanto/tree/qconv2d
The gradient test needs to be fixed (tricky weight gradient calculation), but otherwise it seems to work as expected.

Thanks much! Let me get back to you after applying these changes.

Alright. Things seem to be better now (script here):
Timing and memory:

setting
timing (secs)
memory (gb)

vanilla fp16
4.016
8.958

weight-only
4.614
6.729

weight & activations
11.582
13.375

Observations / questions:

Not sure if the timing for weight-only is expected.
Can the increased timing for "weight & activations" attributed to the int8 kernels?
Why has the memory increased for "weight & activations"? Because we're also calibrating?

Coming to the visual quality:

vanilla fp16
weight-only
weight & activations

I think I am not doing the calibration properly which is why the quality is still degraded. What would you advise?

@sayakpaul this is indeed much better.
Regarding the activations:

quality might be increased by calibrating with more samples (I typically use a batch of at least 128 samples),
it may also appear that you actually have outliers in your activations: try to use float8 activations to see if that makes a difference (torch.float8_e4m3fn),
I suspect the increased timing is due to the dynamic quantization of the activations, which is not compensated by the int8 matmul speedup. Maybe the matrices are too small ?
the increased memory is probably a bug: I might keep references to temporary activations somewhere in the graph.

Using float8 seems to immediately improve the results:

Timing-wise, we're much worse now: 15.500 secs.
I applied more calibration to the earlier setup (non-float8) as well:

With calibration and float8:

I suspect this will be improved with a bit more calibration. WDYT?

Relevant calibration code
CALIBRATION_PROMPTS = load_dataset("nateraw/parti-prompts", split="train").shuffle(seed=2024).select(range(100))

if args.act_quant:
    chunk_size = 2
    print("Calibrating")
    with Calibration():
        for i in range(0, len(CALIBRATION_PROMPTS), chunk_size):
            _ = pipeline(
                CALIBRATION_PROMPTS[i: i + chunk_size]["Prompt"],
                num_inference_steps=10,
                generator=torch.manual_seed(2024),
            )
    print("Calibration done.")

I suspect the increased timing is due to the dynamic quantization of the activations, which is not compensated by the int8 matmul speedup. Maybe the matrices are too small ?

You may be correct. Actually, this is hinted in https://pytorch.org/blog/accelerating-generative-ai-3/ as well. Let me try out some stuff from there to ensure we're not applying in8 for matrix multiplications that consist of small matrices. Will update this issue thread after running a couple experiments. Will this apply to float8 weight-activation quantization, too? I think yes.
Let me know if you have specific experiments for me run.

This is super interesting ! First it confirms that float8 are probably the best candidate type for quantizing activations to 8-bit, due to their non-linear representation and wider range.
Unfortunately, as you noticed, there is no hardware support for float8 on most hardware, so it is slower. I might improve this in the future by using specific kernels.
You can pinpoint which specific parts of a model you want to quantize by passing a list of modules to quantize.
Finally, about calibration, you can try adding more samples, but I think it is more important to pass them as batches, so that they are averaged: if you pass them individually, you give too much importance to the first sample (next samples always contribute as (1 - momentum) to the moving average).
If you really need to pass them one by one, you can use a lower momentum in the moving average, but I am not sure it will be better.

You can pinpoint which specific parts of a model you want to quantize by passing a list of modules to quantize.

Could you provide an example here?
Regarding calibration batches, let’s not forget we’re in the image generation space :D. So, asking a model to generate four 1024x1024 images is just infeasible for most consumer GPUs.
So, it appears to me that quantization still remains a challenging thing in the diffusion world.
I will try to selectively quantize some modules where the matrix shapes are larger as we did in PyTorch post (weight-only quant) and share my findings here.

Example of selecting module:
quantize(model, modules=[model.lm_head])

I enabled fusion of the QKV projection matrices to increase the size of the matrices to see if the quantization speed-up becomes more evident. However, I am running into:
Traceback (most recent call last):
  File "/home/sayak/brrr_quanto_diffusers.py", line 72, in <module>
    _ = pipeline(
  File "/home/sayak/.pyenv/versions/diffusers/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
  File "/home/sayak/diffusers/src/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py", line 1216, in __call__
    noise_pred = self.unet(
  File "/home/sayak/.pyenv/versions/diffusers/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/home/sayak/.pyenv/versions/diffusers/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1561, in _call_impl
    result = forward_call(*args, **kwargs)
  File "/home/sayak/diffusers/src/diffusers/models/unets/unet_2d_condition.py", line 1121, in forward
    sample, res_samples = downsample_block(
  File "/home/sayak/.pyenv/versions/diffusers/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/home/sayak/.pyenv/versions/diffusers/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1561, in _call_impl
    result = forward_call(*args, **kwargs)
  File "/home/sayak/diffusers/src/diffusers/models/unets/unet_2d_blocks.py", line 1199, in forward
    hidden_states = attn(
  File "/home/sayak/.pyenv/versions/diffusers/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/home/sayak/.pyenv/versions/diffusers/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1561, in _call_impl
    result = forward_call(*args, **kwargs)
  File "/home/sayak/diffusers/src/diffusers/models/transformers/transformer_2d.py", line 391, in forward
    hidden_states = block(
  File "/home/sayak/.pyenv/versions/diffusers/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/home/sayak/.pyenv/versions/diffusers/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1561, in _call_impl
    result = forward_call(*args, **kwargs)
  File "/home/sayak/diffusers/src/diffusers/models/attention.py", line 329, in forward
    attn_output = self.attn1(
  File "/home/sayak/.pyenv/versions/diffusers/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/home/sayak/.pyenv/versions/diffusers/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1561, in _call_impl
    result = forward_call(*args, **kwargs)
  File "/home/sayak/diffusers/src/diffusers/models/attention_processor.py", line 512, in forward
    return self.processor(
  File "/home/sayak/diffusers/src/diffusers/models/attention_processor.py", line 1335, in __call__
    query = query.view(batch_size, -1, attn.heads, head_dim).transpose(1, 2)
  File "/home/sayak/quanto/quanto/calibrate.py", line 49, in __torch_function__
    output = func(*args, **kwargs)
  File "/home/sayak/quanto/quanto/tensor/core.py", line 291, in __torch_function__
    return func(*args, **kwargs)
  File "/home/sayak/quanto/quanto/tensor/core.py", line 309, in __torch_dispatch__
    return qdispatch.qop(*args, **kwargs)
  File "/home/sayak/quanto/quanto/tensor/ops.py", line 317, in view
    return qfallback(op, input, *shape)
  File "/home/sayak/quanto/quanto/tensor/core.py", line 160, in qfallback
    args, kwargs = pytree.tree_map_only(QTensor, lambda x: x.dequantize(), (args, kwargs or {}))
  File "/home/sayak/.pyenv/versions/diffusers/lib/python3.10/site-packages/torch/utils/_pytree.py", line 858, in tree_map_only
    return tree_map(map_only(__type_or_types)(func), tree)
  File "/home/sayak/.pyenv/versions/diffusers/lib/python3.10/site-packages/torch/utils/_pytree.py", line 732, in tree_map
    return treespec.unflatten(map(func, *flat_args))
  File "/home/sayak/.pyenv/versions/diffusers/lib/python3.10/site-packages/torch/utils/_pytree.py", line 599, in unflatten
    leaves = list(leaves)
  File "/home/sayak/.pyenv/versions/diffusers/lib/python3.10/site-packages/torch/utils/_pytree.py", line 818, in wrapped
    return func(x)
  File "/home/sayak/quanto/quanto/tensor/core.py", line 160, in <lambda>
    args, kwargs = pytree.tree_map_only(QTensor, lambda x: x.dequantize(), (args, kwargs or {}))
  File "/home/sayak/quanto/quanto/tensor/core.py", line 259, in dequantize
    return Dequantizer.apply(self)
  File "/home/sayak/.pyenv/versions/diffusers/lib/python3.10/site-packages/torch/autograd/function.py", line 553, in apply
    return super().apply(*args, **kwargs)  # type: ignore[misc]
  File "/home/sayak/quanto/quanto/tensor/core.py", line 202, in forward
    return (t._scale.to(torch.float32) * t._data).to(t._scale.dtype)
RuntimeError: The size of tensor a (1920) must match the size of tensor b (640) at non-singleton dimension 2

Is this expected?

Not really: basically the QKV were quantized per-axis/channel with vector scales of shape (640) corresponding to their last dim, but were later concatenated to a tensor whose last dim is (1920) = (640) x 3 (I think). This should have triggered also a concatenation of the scales, but it didn't because the corresponding dispatched op for quantized tensors has not been updated since older versions of quanto and always assume scalar scales.
https://github.com/huggingface/quanto/blob/5c2a4114eab4dc37208fbc9fff35143453a2017e/quanto/tensor/ops.py#L89
Sorry you hit that bug ...

Ah cool. Seems like I should wait for a fix?

This is my pipeline loading function, btw:
def load_pipeline(do_quantize, act_quant):
    pipeline = DiffusionPipeline.from_pretrained(
        "stabilityai/stable-diffusion-xl-base-1.0",
        variant="fp16",
        torch_dtype=torch.float32 if act_quant else torch.float16
    ).to("cuda")
    pipeline.vae = AutoencoderKL.from_pretrained(
        "madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float32 if act_quant else torch.float16
    ).to("cuda")
    pipeline.fuse_qkv_projections()

    if do_quantize:
        quantize(pipeline.unet, weights=torch.int8, activations=torch.float8_e4m3fn if act_quant else None)
        quantize(pipeline.vae, weights=torch.int8, activations=torch.float8_e4m3fn if act_quant else None)

        freeze(pipeline.unet)
        freeze(pipeline.vae)

    pipeline.set_progress_bar_config(disable=True)
    return pipeline

I don't think changing the order in which fuse_qkv_projections() is called will make sense?

Closing as it has been merged in #91


Consider providing the core llvm lib as a Rust crate

We've heard from people using the Rust core of PyQIR directly. I am hence filing this issue for the purpose of discussion and to gather interest in having a Rust package. So far, the Rust API were not necessarily intended to be used directly, and would need to be examined carefully if we were to provide the Rust infrastructure as its own crate.

This may also "solve" https://github.com/qir-alliance/pyqir/issues/52


Flipkart Scraper

Create a flipkart scraper similar to what amazon scraper works. I am a GSSOC'24 Contributor. Kindly assign me this issue.

/attempted #212

dont raise PR and issue at the same time, some times it never go with the repo ideas. so it will be waste of time.


seeding data in migrations

i want to seed my static data within my migrations and only example is here with raw sql: https://orchid-orm.netlify.app/guide/migration-writing.html#writing-a-migration
is there a way to use orchid-orm to do so within migrations?
i was able to seed my data using
    for (const entry of regions) {
      await db.query({
        text: "INSERT INTO region (id, code, name) VALUES ($1, $2, $3)",
        values: [entry.id, entry.code, entry.name],
      });
    }

but i'm looking for a way to push all records once.

Thank you for reaching out!

is there a way to use orchid-orm to do so within migrations?

Not ORM itself, because in migration we are changing columns, and in ORM we have models with specific columns.
But it must be possible to use a query builder for this. I'll test it, add it to a doc and write back to you, in a day or two.

It is possible with fresh versions, I added an example to the docs


feat: Adds TLS for Ingress

Description of the change
Adds TLS Configuration for Ingress. Closes: https://github.com/backstage/charts/issues/2
Checklist

[x] Chart version bumped in Chart.yaml according to semver.
[x] Variables are documented in the values.yaml and added to the README.md. The helm-docs utility can be used to generate the necessary content. Use helm-docs --dry-run to preview the content.
[N/A] JSON Schema generated.
[x] List tests pass for Chart using the Chart Testing tool and the ct lint command.

Have added the variables to the Values file and the README.md but we don't use helm-docs auto-generation at the moment. There was an open issue on this on the old backstage chart repo but we never actually implemented it. I feel we should raise a separate issue for this and track it separately.
Signed-off-by: ChrisJBurns<EMAIL_ADDRESS>

@tumido  @vinzscam  merge conflicts sorted :+1:


Hide unknown information from the ui

Is it a ?

[x] Bug Report

[ ] Feature Request

[ ] Chore

Bug Report
Actual Behaviour
The visibility of the views which don't have any data is still set to VISIBLE. eg. In Attendee Details, Event details.
Expected Behaviour
If the data is unknown, then the view's visibility should be made GONE.
Screenshots of the issue

Android version and Phone Model
All
Would you like to work on the issue?
Yes

Hi @srv-twry ,
I would like to work on this issue. Is this stikk open?

Yeah, it is still open. Please go ahead.

ok, i'll contact you if there is any issue.

@srv-twry ,
i have signed up through the android app. I got the verification email too. But the verifiaction email doesnot seem to be working.

Can you please look into this. I can't work on as nothing is shown when i'm logged into the app. It shows that i'm not verified.

There's no need to verify the email

ok @iamareebjamal

@MLPJ are you still working on this issue, if not can i take over.

@AkshayCHD  yes i'm still working on the issue, but you can work on it too, I think it does not matter if the owner is ok

@MLPJ  i have no problem with that, but the thing is if i or you make a pull request that fixes the issue then, work of the other person goes in vain. that is why i wanted to ask if i could work on it

I'm still working on the issue @AkshayCHD . So I think you better go for another issue then.

@srv-twry  @iamareebjamal please review the PR


mouse wheel fix for Mozilla Firefox

Did the changes. NOT WORKING on Firefox 51.0.1 (32-bit).

Confirmed again it is still working just fine on working on 51.0.1 (32-bit).

I tested this a while back and it was working well for me, thanks for the contribution and sorry for being slow to merge! Possibly a fix for https://github.com/drien/jquery-flipster/issues/113 ?


pretrained model of chase can't be loaded

Hello, the pretrained model of CHASE can't be loaded. Error message is
ValueError: Shapes (7, 7, 4, 128) and (64, 4, 7, 7) are incompatible.
In addition, could you provide the trained model?
I have tried many times, but I can't get the f1 score near which descaribed in the paper.
Until now, the best F1 score trained on drive is 0.78, Se is 0.74. The results on STARE is better(f1=0.8030 Se=0.8191). The training process is time-consuming(I use a card of 2080ti).

Hi, can you try load model, rather than using load weights
For example.
from tensorflow import keras
g_model_coarse= keras.models.load_model('coarse_model.h5')
g_model_fine = keras.models.load_model(fine_model.h5')

It didn't work. Error msg is
ValueError: Unknown layer: ReflectionPadding2D

Please write this code before loading the model. Also
import tensorflow as tf
from keras.layers import Layer, InputSpec,

class ReflectionPadding2D(Layer):
    def __init__(self, padding=(1, 1), **kwargs):
        if type(padding) == int:
            padding = (padding, padding)
        self.padding = padding
        self.input_spec = [InputSpec(ndim=4)]
        super(ReflectionPadding2D, self).__init__(**kwargs)

    def compute_output_shape(self, s):
        """ If you are using "channels_last" configuration"""
        return (s[0], s[1] + 2 * self.padding[0], s[2] + 2 * self.padding[1], s[3])

    def call(self, x, mask=None):
        w_pad,h_pad = self.padding
        return tf.pad(x, [[0,0], [h_pad,h_pad], [w_pad,w_pad], [0,0] ], 'REFLECT')
```

It didn't work. Same error.

Hi,
I re-uploaded the weights for Chase. Its the same download link.
Can you try again with your original code?
Thanks
Download link
https://drive.google.com/drive/folders/1e_dMNjwsPo9ykoYuy3Fn0cmTg1FH8K5H?usp=sharing

Yes，it worked. Thanks!
Did you update the weights for DRIVE and STARE?

Hi,
For the STARE and DRIVE, can you try stride=3 for generating the crops.

This is the predicting image1 I use pretrained model Drive to generate with stride of 64. I used other model to generate images with  stride of 3, but the f1 just improve less than 1%.

Hi
I just tested the DRIVE models and its giving me good outputs.
Check the outputs in the following shared drive
https://drive.google.com/drive/folders/1bEqtQj8P6iNXQASJdIY42W05MVjYdR48?usp=sharing

Also I have written a Google Colab Notebook which was used to generate the outputs.
Try to replicate the code by yourself from the notebook
https://colab.research.google.com/drive/1oLMSmd7vXglRkvk9VXTXpBsCTtUz9yxI?usp=sharing

Hope this helps !
Thanks

Hello,
I find where the problem is. In the SFA block, I connect the first added tensor to the output instead of connecting the input to the output. It seems that this connection is important and it's interesting.
Using the pretrained model, I finally get the correct result. But stride 3 still doesn't improve a lot.
Another question
How do you calculate the mean IOU? It's so high.
TP/(TP+FP+FN) ? I calculate it using this which is lower.
It's very nice of you.
Thank you for help.

Hi,
I have uploaded the eval,.py code (link : https://github.com/SharifAmit/RVGAN/blob/master/eval.py)
I am closing the issue for now. If I find any problem with the results please open this issue again.
Thanks

Hi,
I have uploaded the eval,.py code (link : https://github.com/SharifAmit/RVGAN/blob/master/eval.py)
I am closing the issue for now. If I find any problem with the results please open this issue again.
Thanks

Thanks for your wonderful work! However, I am still confused about the mIoU calculation.
In my opinion, we always calculate IoU for each class (2 classes in the vessel segmentation task, background and vessel), then report the average value as mIoU. But the eval,.py code (https://github.com/SharifAmit/RVGAN/blob/master/eval.py) utilizes the jaccard_similarity_score function to sum correct predictions for all categories and calculate the "total" IoU. It's a little strange...

@martin-liao In eval.py we used the normalize=True flag in the jaccard_similarity_score function, which calculates the average Jaccard similarity coefficient not the sum of the correct prediction.
https://scikit-learn.org/0.15/modules/generated/sklearn.metrics.jaccard_similarity_score.html

From the documentation,
normalize : bool, optional (default=True)
If False, return the sum of the Jaccard similarity coefficient over the sample set. Otherwise, return the average of Jaccard similarity coefficient.

Thanks for your response!
Yeah, I disregarded the normalize option. You are right.

Another question: all the mIoU indexes reported in the manuscript are really high (e.g., U-Net, miou=0.9536 on CHASE-DB1). However, when I train the model with the mmseg toolbox following your settings, the mIoU is significantly lower. I was wondering if any trick (like NMS?)  used during evaluation ?

Furthermore, the DconnNet (accepted by CVPR2023) reported that the U-Net achieved iou=59.3 of vessel class on the CHASE-DB1 dataset. I know that the train and evaluation settings, software and hardware environments are different, but the performance gap of U-Net reported between RV-GAN and U-Net is too large.


sep: resigning for presigned pause

This pr invalidates presigned pause transactions on sepolia.

Closing because we have more than just one presigned pause tx signed.


COCO Export missing keypoints

Actions before raising this issue

[X] I searched the existing issues and did not find anything similar.
[X] I read/searched the docs

Steps to Reproduce

Add a new label, set it to "Points" (not a shape skeleton but simply keypoints that may vary in number per image, for example, links in a chain)
Annotate points in one or more images
Export the annotations to the COCO format
The exported instances_default.json do not contain any annotations - despite the fact that COCO explicitly supports keypoints

Note: if you export the annotations into the CVAT format the keypoints are present
Expected Behavior
COCO export annotations should include "Points" style annotations
Possible Solution
Include "Points" annotations as keypoints in COCO format.
Context
Annotate keypoints for links on a chain. The annotations will be used to detect the keypoints rather than using bounding boxes
Environment
Used online trial account to verify issue:
https://app.cvat.ai/tasks/383174/jobs/423493

Hi. As you said, the COCO Keypoints format supports keypoints. Each annotation belongs to one of the labels, and each label has a corresponding skeleton (joints and vertices), i.e. a fixed size structure. COCO doesn't support point sets of different sizes in COCO format under one label.

Thanks for clarifying @zhiltsov-max


Configure application to use Docker

At this moment, the project is deployed in a shared host with a dedicated PostgreSQL database. I want to leave this provider and move the project to a Digital Ocean droplet (or similar). I want to use Docker to orchestrate that so I need a docker-compose.yml file (and the required Dockerfiles) with:

[ ] Django application
[ ] PostgreSQL as container
[ ] Static files running in nginx

As a bonus, a docker-compose-dev.yml file to make configure development environment easier will be good.

I can help with that.


Improve Steering Controllers Documentation

In general, I'd appreciate more documentation of the kinematics in the docs for all controllers here. Is there any publicly available reference/book for these mobile robot kinematics we could refer to?
I'd happy to help with writing the docs, and maybe writing proper tests for the implementations. But I'm not "fluent" with these type of kinematics, I'd need a textbook for that.

Originally posted by @christophfroehlich in https://github.com/ros-controls/ros2_controllers/issues/878#issuecomment-1837235341

For example, some simple sketches showing the system inputs of the different steering geometries. Pictures with appropriate licenses could be used and adapted, e.g., from wikipedia. This might also be related with #692

I'd suggest relying on Wikipedia as much as possible. The core equations are usually well explained but figures may be lacking.

I haven't found anything appropriate to Ackermann steering for example :man_shrugging:

This is a resource that I found useful: https://msl.cs.uiuc.edu/planning/node657.html

Some literature review

From above or as PDF version (Tri-Cylce, Simple Car)
@franzrammerstorfer mentioned Lynch, Kevin M., and Frank C. Park. Modern Robotics: Mechanics, Planning, and Control 1st ed. Cambridge, MA: Cambridge University Press, 2017, which has a PDF preprint available. (Car-Like Robot)
Siciliano et.al  Robotics: Modelling, Planning and Control (Bicycle)
Ribeiro, Lima - KINEMATICS MODELS OF MOBILE ROBOTS (Tricycle)

They all handle the kinematics of car-like robots in state-space form, but none is discussing odometry etc. of the different geometries @ARK3r has pointed to here. I guess we have to write that on our own :nerd_face:


Schema name is capitalized when using H2 and objectQuotingStrategy="QUOTE_ALL_OBJECTS"

Search first

[X] I searched and no similar issues were found

Description
Starting from version 4.24.0, change sets can not be executed on H2 when all of the following are true:

objectQuotingStrategy="QUOTE_ALL_OBJECTS" is used (either on a changeSet or on databaseChangeLog)
DATABASE_TO_LOWER=TRUE is configured in connection string

The DATABASECHANGELOGLOCK table will be created on the public schema, as it is supposed to.
When Liquibase executes a changeset, it tries to use the PUBLIC schema, which does not exist. Resulting in the following error:
Caused by: liquibase.exception.DatabaseException: Error executing SQL SELECT COUNT(*) FROM "PUBLIC"."DATABASECHANGELOGLOCK": Schema "PUBLIC" not found; SQL statement:
Steps To Reproduce

Create a new project with H2 and Liquibase

I used Spring Initializr with spring boot version 3.1.8
spring-boot-starter-data-jpa
om.h2database:h2
org.liquibase:liquibase-core:4.24.0
Java 17

Be sure to use org.liquibase:liquibase-core:4.24.0
Create a change log file with at least one change set
Apply  objectQuotingStrategy="QUOTE_ALL_OBJECTS" to the change log or change set
Add DATABASE_TO_LOWER=TRUE to the connection url
Start the application

My db.changelog-master.yaml file:
databaseChangeLog:
  - objectQuotingStrategy: QUOTE_ALL_OBJECTS
  - changeSet:
      id: 001
      author: You
      changes:
        - createTable:
            tableName: Book
            columns:
              - column:
                  name: id
                  type: bigint
                  autoIncrement: true

My application.properties file:
spring.datasource.url=jdbc:h2:mem:test;DATABASE_TO_LOWER=TRUE

Expected/Desired Behavior
Schema name should not be capitalized and respect the DATABASE_TO_LOWER=TRUE setting
Liquibase Version
4.24.0
Database Vendor & Version
H2 2.1.214
Liquibase Integration
Spring boot
Liquibase Extensions
No response
OS and/or Infrastructure Type/Provider
No response
Additional Context
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR (Thank you!)

Hi @annedirkdejong
I've been able to confirm that this is an issue, though with different results than what you've reported.
Using Spring Boot and either Gradle or Maven, the execution fails with this exception:
Table "databasechangeloglock" already exists; SQL statement:
CREATE TABLE public.DATABASECHANGELOGLOCK (
     ...
)

Note that the schema name is in lowercase, as expected, but I'm not sure why the DATABASECHANGELOGLOCK table is being created twice.
Using the CLI, the code runs with no issues, but running liquibase update-sql outputs the following code (this is a snippet):
CREATE TABLE
  PUBLIC.DATABASECHANGELOG (
    ...
  );

-- Changeset changelog.yml::1::You
CREATE TABLE
  "PUBLIC"."Book" ("id" BIGINT GENERATED BY DEFAULT AS IDENTITY);

Both times the schema name is in all caps. The objects are only quoted in the changeset statement, not in the Liquibase-specific statements.
This is also true for Liquibase version 4.25.1.
For a temporary workaround, removing - objectQuotingStrategy: QUOTE_ALL_OBJECTS results in the execution completing successfully, though I understand that it's not exactly the desired outcome.

There are some known issues around database or schema casing, which can be found in the milestone linked to this issue.
We'll be leaving this issue available for the community to fix via a PR. Our dev team will be available to provide any guidance that's needed.
Let us know if you run into more instances of this bug or if you have any questions.
Thank you,
Tatiana


No OpenIDConnect method to obtain access/refresh token?

It appears that OpenIDConnect has no object method to obtain access/refresh token. The only way I can figure out appears to be getting the credentials from credentials_store:
oidc = OpenIDConnect()
(...code validating/obtaining id_token...)
sub = oidc.user_getfield("sub")
credentials = oidc.credentials_store[sub]
access_token = credentials["access_token"]
refresh_token = credentials["refresh_token"]

I believe flask-oidc should provide method to obtain access/refresh token easily.

In order to get a hand on the access_token I needed to do something like:
@app.route('/private')
@oidc.require_login
def hello_me():
    info = oidc.user_getinfo(['preferred_username', 'email', 'sub'])

    from oauth2client.client import OAuth2Credentials
    access_token = OAuth2Credentials.from_json(oidc.credentials_store[info.get('sub')]).access_token
    print access_token

    return ('Hello, %s your email is %s and your userid is %s! Return' %
            (info.get('preferred_username'), info.get('email'), info.get('sub')))


ERROR to index module in React Native

Hello buddy, first congratulations for the component.
But I'm having a problem using it in React Native. I can install it using the NPM command like this in the documentation, however in the file I import the component in my React Native project it can't index your component. The same accuses an error in your component's package.json. Do you know what it could be?

Hi. Thanks for using my component. And sorry for late answer.
I had no that issue with react native. You can check how it work in example folder. Its maybe problem with your project setup. I can help if you give me minimal reproducible example.


Bitbucket

@renatomarinho  can you indicate what files are used for oauth (structure)? maybe I can do something...
Bitbucket send this response:
User {#391 ▼
  +token: "{token}"
  +refreshToken: "{refreshToken}"
  +expiresIn: 3600
  +id: "{xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"
  +nickname: "{username}"
  +name: "{name}"
  +email: "{email}"
  +avatar: "https://bitbucket.org/account/{username}/avatar/{id}/"
  +user: array:11 [▼
    "username" => "{username}"
    "website" => "{website}"
    "display_name" => "{name}"
    "account_id" => "557058:xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    "links" => array:8 [▼
      "hooks" => array:1 [▼
        "href" => "https://api.bitbucket.org/2.0/users/{username}/hooks"
      ]
      "self" => array:1 [▶]
      "repositories" => array:1 [▼
        "href" => "https://api.bitbucket.org/2.0/repositories/{username}"
      ]
      "html" => array:1 [▶]
      "followers" => array:1 [▼
        "href" => "https://api.bitbucket.org/2.0/users/{username}/followers"
      ]
      "avatar" => array:1 [▼
        "href" => "https://bitbucket.org/account/{username}/avatar/{id}/"
      ]
      "following" => array:1 [▼
        "href" => "https://api.bitbucket.org/2.0/users/{username}/following"
      ]
      "snippets" => array:1 [▼
        "href" => "https://api.bitbucket.org/2.0/snippets/{username}"
      ]
    ]
    "created_on" => "20xx-xx-xxTxx:33:54.550898+00:00"
    "is_staff" => false
    "location" => null
    "type" => "user"
    "uuid" => "{xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"
    "email" => "{email}"
  ]
}

so we have uuid instead id so i have change the type in DB users.provider_id for accept this type or create a new Column, any ideas?

@renatomarinho Curious if there is any update on Bitbucket support?

@renatomarinho  any news?

Hi @cognitus,
We have integration with Bitbucket (by @Te7a-Houdini ). Have you tried it? Works well?

not, today I installed... it works, but has some bug, for example:

not return all repositories from organization
icon of github appears en product backlog


fix(plugins): return full serialization of  HTML document

Pull Request Test Coverage Report for Build 924708602

4 of 4 (100.0%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 98.969%

Totals

Change from base Build 921471933:
0.0%

Covered Lines:
362

Relevant Lines:
364

💛  - Coveralls


Make IsolateRunner.run generic to remove errors in dependent packages

Sorry about the formatting churn! The only substantive change is on lines 187-188.

Rebase you change on top of my "strong" branch – enabling strong mode will
light up a number of issues
On Thu, Sep 7, 2017 at 1:08 PM, Brian Wilkerson<EMAIL_ADDRESS>wrote:

@bwilkerson commented on this pull request.
In lib/isolate_runner.dart
https://github.com/dart-lang/isolate/pull/12#discussion_r137642599:

@@ -185,7 +184,8 @@ class IsolateRunner implements Runner {
///     } finally {
///       await iso.close();
///     }

Future run(function(argument), argument, {Duration timeout, onTimeout()}) {

Not going to work...need to fix subclasses, too!
Where do I find the subclasses that need to be fixed?
Might want to build on #11 https://github.com/dart-lang/isolate/pull/11
– I enable strong mode checks, etc
If you think #11 https://github.com/dart-lang/isolate/pull/11 should
land first, I have no problem with that. But I have no idea what "build on"
means in this context.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dart-lang/isolate/pull/12#discussion_r137642599, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AABCirhfSksyuY-8AxBDnOylsWFpvFjBks5sgE0jgaJpZM4PQTl2
.

Digging around more, it seems that some serious refactoring is needed.
There are lots of methods with an optional callback.
So in so cases you need Future doThing(R returnValue());
In others Future doThingWithCallabck<P, R>(P returnValue(), R
callback(P value));
Etc...
On Thu, Sep 7, 2017 at 1:26 PM, Kevin Moore<EMAIL_ADDRESS>wrote:

Rebase you change on top of my "strong" branch – enabling strong mode will
light up a number of issues
On Thu, Sep 7, 2017 at 1:08 PM, Brian Wilkerson<EMAIL_ADDRESS>wrote:

@bwilkerson commented on this pull request.
In lib/isolate_runner.dart
https://github.com/dart-lang/isolate/pull/12#discussion_r137642599:

@@ -185,7 +184,8 @@ class IsolateRunner implements Runner {
///     } finally {
///       await iso.close();
///     }

Future run(function(argument), argument, {Duration timeout, onTimeout()}) {

Not going to work...need to fix subclasses, too!
Where do I find the subclasses that need to be fixed?
Might want to build on #11 https://github.com/dart-lang/isolate/pull/11
– I enable strong mode checks, etc
If you think #11 https://github.com/dart-lang/isolate/pull/11 should
land first, I have no problem with that. But I have no idea what "build on"
means in this context.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dart-lang/isolate/pull/12#discussion_r137642599, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AABCirhfSksyuY-8AxBDnOylsWFpvFjBks5sgE0jgaJpZM4PQTl2
.

Can't push changes. Closing in order to re-create the branch.