Fixes #1629 "Umpleonline readOnly argument setting for embedding allows certain changes such as tab adding"

Disable createTab and loadExample feature in readOnly mode.

It is still possible to delete a tab when readOnly is set. It is also possible to rename a tab. Both of these need to be blocked. This PR fixes adding a tab but not deleting or renaming.

After the latest changes, I am still able to double-click on a tab to rename it.

OK. I see the renaming has no effect. I think that is OK.


Group Legend Query Application header buttons with Query Builder buttons

Summary

Group Legend Query Application header buttons with Query Builder buttons
How did you test this change?

[ ] Test(s) added
[x] Manual testing (please provide screenshots/recordings)
[ ] No testing (please provide an explanation)

https://github.com/finos/legend-studio/assets/73408381/891e5ac4-0088-40d9-89f8-551b4723a525

just make it mergeable before
small css improvements are needed 🫡😅


URL Rewriter breaks valid CSS

I noticed that django-pipeline breaks the minified bootstrap 4 CSS file, even when using the no-op compressor. This affects at least 1.6.0, 1.6.10 and master.
I dug into the code and tried to fix it for about an hour, but that URL processing seems quite convoluted. Sorry :)
The problem is with CSS like this:
.data-url-quoted-mixed {
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
}

Because the URL detector regex looks like this:
URL_DETECTOR = r"""url\((['"]){0,1}\s*(.*?)["']{0,1}\)"""

...it does not ensure that both matched quotes are the same.
I tried to solve the issue with a backreference:
URL_DETECTOR = r"""url\((['"]){0,1}\s*(.*?)\1\)"""

...but that seems to break some other tests.
Anyways, I couldn't come up with a fix, but here's a test case that should cover this issue:
diff --git a/tests/assets/css/nested/nested.css b/tests/assets/css/nested/nested.css
index 8adac3c..07a54f1 100644
--- a/tests/assets/css/nested/nested.css
+++ b/tests/assets/css/nested/nested.css
@@ -4,3 +4,6 @@
 .data-url-quoted {
   background-image: url('data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2212px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2012%2014%22%20style%3D%22enable-background%3Anew%200%200%2012%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M11%2C6V5c0-2.762-2.239-5-5-5S1%2C2.238%2C1%2C5v1H0v8h12V6H11z%20M6.5%2C9.847V12h-1V9.847C5.207%2C9.673%2C5%2C9.366%2C5%2C9%20c0-0.553%2C0.448-1%2C1-1s1%2C0.447%2C1%2C1C7%2C9.366%2C6.793%2C9.673%2C6.5%2C9.847z%20M9%2C6H3V5c0-1.657%2C1.343-3%2C3-3s3%2C1.343%2C3%2C3V6z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E');
 }
+.data-url-quoted-mixed {
+  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
+}
diff --git a/tests/tests/test_compressor.py b/tests/tests/test_compressor.py
index 4291b51..6b55b2c 100644
--- a/tests/tests/test_compressor.py
+++ b/tests/tests/test_compressor.py
@@ -177,6 +177,9 @@ class CompressorTest(TestCase):
 .data-url-quoted {
   background-image: url('data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22iso-8859-1%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20width%3D%2212px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2012%2014%22%20style%3D%22enable-background%3Anew%200%200%2012%2014%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20d%3D%22M11%2C6V5c0-2.762-2.239-5-5-5S1%2C2.238%2C1%2C5v1H0v8h12V6H11z%20M6.5%2C9.847V12h-1V9.847C5.207%2C9.673%2C5%2C9.366%2C5%2C9%20c0-0.553%2C0.448-1%2C1-1s1%2C0.447%2C1%2C1C7%2C9.366%2C6.793%2C9.673%2C6.5%2C9.847z%20M9%2C6H3V5c0-1.657%2C1.343-3%2C3-3s3%2C1.343%2C3%2C3V6z%22%2F%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E');
 }
+.data-url-quoted-mixed {
+  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
+}
 """, output)

     @skipIf(sys.platform.startswith("win"), "requires posix platform")

Maybe it could help to quickly find a proper fix? I guess I just overlooked something in the codebase.
PS: How about using a proper CSS parser for this, that returns tokens with offsets?

Hey guys, @triat!
I might have a fix for this. Could you take a look into referenced pull request?
Thanks!

I have the same problem with https://cdnjs.cloudflare.com/ajax/libs/Swiper/3.1.2/css/swiper.css
@vskh's PR solve the problem.

Hey guys, thanks @vskh for his PR, I just merged it, it should be there in the next version of django-pipeline.

This seems like an important fix. Preparing a 1.6.13 release.


Lynx support (as for now FAILING)

I've forked your script to add Lynx Support, but unfortunately I am unable to get it working. You can see what I've done on my fork, Lynx branch. I was able to open Lynx, but with no luck to open it on desired url.

@Sheerley - I have an open PR for Chromium and Brave browser support.
I'd be happy to tackle this issue if/after my PR gets approved.

@Sheerley please have a look to my lynx branch: please ignore for now that I'm using gnome-terminal and let me know if it works for you (ignoring the terminal).

Thanks @gsornsen I just merged your PR. Please have a look to my lynx branch.

Thanks @pdonadeo - starting on it now. I'm considering adding a TERMINAL variable under configuration, so we can handle lynx with multiple terminals.

@gsornsen ok for the new variable but please use a list like I did in the lynx branch because different terminals use different command line conventions to run a program. The vast majority use -e but gnome-terminal seems to prefer --.

@Sheerley @pdonadeo - PR for lynx support Here

I opted to not use CONFIG['BROWSER_PATH'] and did not add CONFIG['TERMINAL'] for lynx st or gnome-terminal as subprocess should be able to determine the path of the binaries on its own since the string matches the binary name in system space. It's also possible the installation locations may change if someone compiled the binary themselves, such as I did with my custom fork of st
Example:
(base) gsornsen@pop-os:~/git/rofi-web-search$ which lynx
/usr/bin/lynx
(base) gsornsen@pop-os:~/git/rofi-web-search$ which st
/usr/local/bin/st
(base) gsornsen@pop-os:~/git/rofi-web-search$ which gnome-terminal
/usr/bin/gnome-terminal

Thanks @gsornsen, I'll review the PR tonight, I'm at work now.

Closed by c5c6db5


GithubInstallationModel.repositories represented as ARRAY of Integers (foreign keys to GitProjectModel)

https://github.com/packit/packit-service/blob/02991ecc3d6a267b01a07d5280929067c537babf/packit_service/models.py#L1756
The syntax is wrong in the first place because the ARRAY is declared as
class sqlalchemy.types.ARRAY(item_type, as_tuple=False, dimensions=None, zero_indexes=False)

so what we actually do is
repositories = Column(ARRAY(item_type=Integer, as_tuple=ForeignKey("git_projects.id")))

I guess the aim was to have an array of foreign keys. I'm not sure it's possible to do
repositories = Column(ARRAY(item_type=ForeignKey("git_projects.id")))

so we should at least do
repositories = Column(ARRAY(item_type=Integer))  # Integer == ForeignKey("git_projects.id")

The bigger question, however, is what we actually want to represent. Correct me if I'm wrong but I think that:
A) If we want a 1 (installation) to N (repositories/projects) relation then the way is to have
class GitProjectModel
    installation_id = Column(Integer, ForeignKey("github_installations.id"))
    installation = relationship("GithubInstallationModel", back_populates="repositories")

class GithubInstallationModel
    repositories = relationship("GitProjectModel", back_populates="installation")

B) If we want an N to M relation then we better need a joint table with foreign keys to git_projects and github_installations.

Still relevant.


slow_mode_delay for groups and supergroups caused problem for bots

Our Architecture
We are using long-polling and PHP (Laravel queues)[https://laravel.com/docs/8.x/queues] for handling updates. Updates are fetched in batch by getUpdates() and each one is sent as a job (message) into a queue. There are a limited number of workers (processes) handling jobs in the queue, e.g. 50 workers. Each worker handles jobs one at a time. So at the moment that all the 50 workers are handling jobs, the other jobs must wait in the queue until the first worker is done processing its current job.
Issue
A while ago our bot was became too slow. We find the reason is that it was added to a crowded supergroup with slow_mode_delay enabled. The problem with slow mode is that, when it is enabled and the time remaining before bot can send another message is less than 10 seconds, Telegram will hold the message for 10 seconds and send it and send back the http response after this long delay.
A user in the group sends a command to our bot. Our bot answers with a message that has InlineKeyboardMarkup with some callback keyboards. Now the bot is banned for 10 seconds. Because the group is large, many users start to click on the callback buttons and our bot receives many requests, demanding bot to send many messages to the chat.
What is the bug
Because the bot is banned only for 10 seconds, Telegram kindly holds the messages for 10 seconds and send it to the user then answer the bot with a successful response after a 10 seconds delay. The good thing is that Telegram doesn't send us too many request errors. The bad thing is that all of our 50 workers will get stuck receiving response from sendMessage() for 10 seconds each, so many our queue gets overflowed, leading in huge delay in answering to requests from other chats and users.
The bug is the conflict between 2 assumptions we have:

As a client bot developer, assume the Telegram handles our HTTP requests as fast as possible so there where be no congestion in any kind of queue that we use. It doesn't matter if I am a PHP developer working with blocking sync architecture, or a non-blocking event-loop one, or even use webhooks. There is always a limit in how many concurrent updates I can hold in memory while processing.
As a server Telegram/bot developer, you think it is nicer to keep HTTP requests as long as they don't require more than 10 second delay, instead of immediately rejecting the request and ask the client to try later.

What I have done to fix the issue temporarily
Before the issue is solved by the Telegram solve, if ever it is going to be solved, I have no choice but somehow detect such groups and ban them from our service.
Here is a piece of code to remove only one group for a bot that receives about 2000 updates a minute:
if ($request->update->getChat() && $request->update->getChat()->getId() == -100******) {
    // Ban spam supergroup
    return;
}

Let me know if you want the id of the mentioned chat, because I am a bit suspicious of it.
And here is the amount of speed-up of processing jobs (almost 4x) after the change in the code:

Also I don't know why one bad supergroup slows down runtime of other requests from other chats as well. I am not sure but it seems a potential DOS vulnerability to me.
What I think Telegram can change
IMHO, Telegram can simply stop being nice and reject the HTTP requests as soon as possible with 429 status code instead of holding requests for 10 seconds.
Another thing that can be done is to put some information in the update about how many seconds bot must wait before sending a message. Currently there is a slow_mode_delay which is only in the response of getChat() method. However, it is not convenient, because not only accessing the value requires an extra call to getChat(), but also it doesn't show how many actual seconds the bot needs to wait at the time of receiving an update.
Thanks for your help.

Telegram will hold the message for 10 seconds

Yes, but for at most 8 seconds.

Also I don't know why one bad supergroup slows down runtime of other requests from other chats as well.

It shouldn't. You graph doesn't show that other requests begin to process faster. It show that they are processed faster than average banned requests.

Telegram can simply stop being nice and reject the HTTP requests as soon as possible with 429 status code instead of holding requests for 10 seconds.

This would break delivery of a lot of otherwise sent messages. It can solve this specific issue, but there can be a lot of other issues which would cause slow responses. Network connection to Bot API servers can be slow or unreliable, Bot API server can be overloaded, Telegram servers can be overloaded. This implies that there is no way to guarantee that requests are handled fast, so a robust architecture shouldn't depend on that.
The most robust solution is to always send network requests asynchronously, so network requests are never block other network requests or processing of new updates.
Given your architecture with PHP and 50 workers which do synchronous network requests to Telegram API, I would suggest to switch to webhooks. Updates from the same chat are delivered successively to webhook to guarantee that they are processed in the correct order, so such chat can block no more than 1 worker simultaneously.
To fix this specific problem, you can call getChat after receiving a 429th error (you should receive it when the second message is sent within two second after the first one) and block processing updates from the chat for slow_mode_delay seconds. You can save received slow_mode_delay value and refresh it once 1-2 hours using getChat. But more general solutions should be also more simple.

Telegram will hold the message for 10 seconds

Yes, but for at most 8 seconds.

Also I don't know why one bad supergroup slows down runtime of other requests from other chats as well.

It shouldn't. You graph doesn't show that other requests begin to process faster. It show that they are processed faster than average banned requests.

Telegram can simply stop being nice and reject the HTTP requests as soon as possible with 429 status code instead of holding requests for 10 seconds.

This would break delivery of a lot of otherwise sent messages. It can solve this specific issue, but there can be a lot of other issues which would cause slow responses. Network connection to Bot API servers can be slow or unreliable, Bot API server can be overloaded, Telegram servers can be overloaded. This implies that there is no way to guarantee that requests are handled fast, so a robust architecture shouldn't depend on that.
The most robust solution is to always send network requests asynchronously, so network requests are never block other network requests or processing of new updates.
Given your architecture with PHP and 50 workers which do synchronous network requests to Telegram API, I would suggest to switch to webhooks. Updates from the same chat are delivered successively to webhook to guarantee that they are processed in the correct order, so such chat can block no more than 1 worker simultaneously.
To fix this specific problem, you can call getChat after receiving a 429th error (you should receive it when the second message is sent within two second after the first one) and block processing updates from the chat for slow_mode_delay seconds. You can save received slow_mode_delay value and refresh it once 1-2 hours using getChat. But more general solutions should be also more simple.

Thanks for your response and suggestions:

Yes, but for at most 8 seconds.

For me, it makes development a bit more complicated than it should be. I can work around it one way or the other, but usually no one even consider the chance of having 8 seconds delay for many requests other than some rare and temporary cases.

This (sending immediate 429) would break delivery of a lot of otherwise sent messages.

I think no one would care about this break :) Telegram bots also can handle immediate 429 and retry if they really need to send the message. In case your concern is about non-bot users, I don't think this change affect non-bot users either; Android clients show a timer to the users so they practically can't even try sending messages before they are unblocked. In case you are afraid of breaking something, you may add some extra parameter to sendMessage() to let the bot developer choose which option they prefer the most, or how many seconds they are willing to wait. Or maybe a setting can be added to BotFather?
Also using webhooks makes not much a difference, because there has to be a max limit on the number of processes on php-fpm pool as well. But increasing number of processes with queues/webhook for sure will help, with the cost of using more memory. Also based on my experience, using queue system instead of webhooks makes PHP based bots faster because of the following reasons:

Workers spends less time and CPU because they don't have extra process initiation and framework bootstrap delay.
More importantly, queue workers can reuse opened https connections from the previous jobs, but web processes can't. Sending a Telegram request with a new connection is too slower (~340ms from our servers) than sending it via a previously opened connection (~80ms).

Thanks for your response and suggestions:

Yes, but for at most 8 seconds.

For me, it makes development a bit more complicated than it should be. I can work around it one way or the other, but usually no one even consider the chance of having 8 seconds delay for many requests other than some rare and temporary cases.

This (sending immediate 429) would break delivery of a lot of otherwise sent messages.

I think no one would care about this break :) Telegram bots also can handle immediate 429 and retry if they really need to send the message. In case your concern is about non-bot users, I don't think this change affect non-bot users either; Android clients show a timer to the users so they practically can't even try sending messages before they are unblocked. In case you are afraid of breaking something, you may add some extra parameter to sendMessage() to let the bot developer choose which option they prefer the most, or how many seconds they are willing to wait. Or maybe a setting can be added to BotFather?
Also using webhooks makes not much a difference, because there has to be a max limit on the number of processes on php-fpm pool as well. But increasing number of processes with queues/webhook for sure will help, with the cost of using more memory. Also based on my experience, using queue system instead of webhooks makes PHP based bots faster because of the following reasons:

Workers spends less time and CPU because they don't have extra process initiation and framework bootstrap delay.
More importantly, queue workers can reuse opened https connections from the previous jobs, but web processes can't. Sending a Telegram request with a new connection is too slower (~340ms from our servers) than sending it via a previously opened connection (~80ms).

I think no one would care about this break

You underestimate, how much messages it helps to deliver.

Android clients show a timer to the users

And bots can do the same using getChat (this is what Android client does to show the timer).

Also using webhooks makes not much a difference

I told exact reason, why it helps a lot in this particular case. You would need 50+ such groups to block all 50 workers.

Workers spends less time and CPU because they don't have extra process initiation and framework bootstrap delay.

True, but this should be highly optimized in modern frameworks and very fast in the latest PHP versions.

Queue workers can reuse opened https connections from the previous jobs

True, but you can use a local forward proxy to send requests to api.telegram.org instead.

I think no one would care about this break

You underestimate, how much messages it helps to deliver.

Android clients show a timer to the users

And bots can do the same using getChat (this is what Android client does to show the timer).

Also using webhooks makes not much a difference

I told exact reason, why it helps a lot in this particular case. You would need 50+ such groups to block all 50 workers.

Workers spends less time and CPU because they don't have extra process initiation and framework bootstrap delay.

True, but this should be highly optimized in modern frameworks and very fast in the latest PHP versions.

Queue workers can reuse opened https connections from the previous jobs

True, but you can use a local forward proxy to send requests to api.telegram.org instead.

I missed your reason on why webhooks works better in this case. Thanks for letting us know about it.
Also the local forward proxy idea is an interesting idea. I don't know if it is a common pattern or a new idea :) Thanks again for sharing so much helpful information.
I leave my final feature request here. I understand it might not be a high priority or you may have reasons it's not a good feature:
Let the bot developer somehow disable blocking of sendMessage() requests, by either a parameter in sendMessage, or some settings in botfather.

I missed your reason on why webhooks works better in this case. Thanks for letting us know about it.
Also the local forward proxy idea is an interesting idea. I don't know if it is a common pattern or a new idea :) Thanks again for sharing so much helpful information.
I leave my final feature request here. I understand it might not be a high priority or you may have reasons it's not a good feature:
Let the bot developer somehow disable blocking of sendMessage() requests, by either a parameter in sendMessage, or some settings in botfather.

So @levlam you said that returning a 429 would break other things, so it  seems that you can't know whether there is slow mode enable, nor if message can't be send because of slow mode. But you CAN know it, this is absolutely obvious, so why can't you return a 429 error ONLY when message can't be sent because of slow mode, and not anytime the request execution time exceeds 8 seconds?

So @levlam you said that returning a 429 would break other things, so it  seems that you can't know whether there is slow mode enable, nor if message can't be send because of slow mode. But you CAN know it, this is absolutely obvious, so why can't you return a 429 error ONLY when message can't be sent because of slow mode, and not anytime the request execution time exceeds 8 seconds?


IE 7,8,9 The object don't accept this property o method. Line 1160

I'm testing my backbone application.
I use backbone with coffeescript and requirejs.
I chrome the application run without any problem, but in IE (7,8 y 9) give and error in lin 1160

// Wrap an optional error callback with a fallback error event.
var wrapError = function(onError, model, options) {
  return function(model, resp) {
    var resp = model === model ? resp : model;
    if (onError) {
      onError(model, resp, options);
    } else {
      model.trigger('error', model, resp, options);
    }
  };
};

I'm afraid this isn't nearly enough information to reproduce your problem ... but you're probably passing an improper object somewhere. Hope that helps.


Receiving the error: "ValueError: Input 0 of layer sequential_8 is incompatible with the layer: expected axis -1 of input shape to have value 8 but received input with shape (None, 7, 169)"

Hello,
I would like to apologize if this is posted in the wrong location.  If that is the case, any guidance as to where I can ask this question would be greatly appreciated.  I am new to coding and GitHub, but have found many answers to posts on this forum very helpful to me.  I am trying to setup a code to utilize the Keras model for deep learning with a 3d dataset, and am uncertain how to deal with the error I'm receiving (in the title).  I have found a similar error reported on this forum, but the response was that it would be fixed in TensorFlow v 2.1.  I am using v2.4.0, so I expect I'm probably doing something wrong here.  The code I am using is as follows:
# define the keras model
model = Sequential()
model.add(Dense(12, input_dim=7, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

# compile the keras model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# separate the data
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.3, random_state=0)

# fit the keras model on the dataset
model.fit(X_train, y_train, epochs=150, batch_size=10)

# evaluate the keras model
_, accuracy = model.evaluate(X_test, y_test)
print('Accuracy: %.2f' % (accuracy*100))

Information on the variables as follows:
X is an array of float64, with size (152,7,169)
Y is an array of int32, with size (152,)
Information on versions as follows:
_Python version 3.8.5
Keras version 2.4.3
TensorFlow version 2.4.0
Windows 10
Intel(R) Core(TM) i5-8350U CPU @ 1.70GHz   1.90 GHz  (AVX capable)
Spyder version 4.2.0
_
The full error I am getting is as follows:

Epoch 1/150
Traceback (most recent call last):
File "C:\Users\pdeol\Documents\CodingPractice\KerasCombined.py", line 171, in
model.fit(X_train, y_train, epochs=150, batch_size=10)
File "C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\keras\engine\training.py", line 1100, in fit
tmp_logs = self.train_function(iterator)
File "C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\eager\def_function.py", line 828, in call
result = self._call(*args, **kwds)
File "C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\eager\def_function.py", line 871, in _call
self._initialize(args, kwds, add_initializers_to=initializers)
File "C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\eager\def_function.py", line 725, in _initialize
self._stateful_fn._get_concrete_function_internal_garbage_collected(  # pylint: disable=protected-access
File "C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\eager\function.py", line 2969, in _get_concrete_function_internal_garbage_collected
graph_function, _ = self._maybe_define_function(args, kwargs)
File "C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\eager\function.py", line 3361, in _maybe_define_function
graph_function = self._create_graph_function(args, kwargs)
File "C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\eager\function.py", line 3196, in _create_graph_function
func_graph_module.func_graph_from_py_func(
File "C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\framework\func_graph.py", line 990, in func_graph_from_py_func
func_outputs = python_func(*func_args, **func_kwargs)
File "C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\eager\def_function.py", line 634, in wrapped_fn
out = weak_wrapped_fn().wrapped(*args, **kwds)
File "C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\framework\func_graph.py", line 977, in wrapper
raise e.ag_error_metadata.to_exception(e)
ValueError: in user code:
C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\keras\engine\training.py:805 train_function  *
    return step_function(self, iterator)
C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\keras\engine\training.py:795 step_function  **
    outputs = model.distribute_strategy.run(run_step, args=(data,))
C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:1259 run
    return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:2730 call_for_each_replica
    return self._call_for_each_replica(fn, args, kwargs)
C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:3417 _call_for_each_replica
    return fn(*args, **kwargs)
C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\keras\engine\training.py:788 run_step  **
    outputs = model.train_step(data)
C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\keras\engine\training.py:754 train_step
    y_pred = self(x, training=True)
C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\keras\engine\base_layer.py:998 __call__
    input_spec.assert_input_compatibility(self.input_spec, inputs, self.name)
C:\Users\pdeol\anaconda3\lib\site-packages\tensorflow\python\keras\engine\input_spec.py:255 assert_input_compatibility
    raise ValueError(

ValueError: Input 0 of layer sequential is incompatible with the layer: expected axis -1 of input shape to have value 7 but received input with shape (None, 7, 169)

The above error is what I receive every time I run this code.  I just restarted the software and ran it again, and in addition to the above error, I received the following error immediately below:

2020-12-30 10:17:26.556667: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found
2020-12-30 10:17:26.557141: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
2020-12-30 10:26:08.613023: I tensorflow/compiler/jit/xla_cpu_device.cc:41] Not creating XLA devices, tf_xla_enable_xla_devices not set
2020-12-30 10:26:08.616994: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'nvcuda.dll'; dlerror: nvcuda.dll not found
2020-12-30 10:26:08.617895: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303)
2020-12-30 10:26:08.628902: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:169] retrieving CUDA diagnostic information for host: LT-B831B58344E3
2020-12-30 10:26:08.629094: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:176] hostname: LT-B831B58344E3
2020-12-30 10:26:08.634489: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2020-12-30 10:26:08.636834: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set
2020-12-30 10:26:08.863911: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:116] None of the MLIR optimization passes are enabled (registered 2)

I'm not sure if this is related, or a completely separate issue.  Any information or guidance you can provide would be greatly appreciated.

@p-deol
This question is better asked on StackOverflow since it is not a bug or feature request. There is also a larger community that reads questions there.
please move this to close status once issue is created on SO.

Thank you.  I received a response from Andrey on StackOverflow that solved my issue.  Response was as follows:

Input_dim argument of the first Dense layer is 7. It means that your model expecting the last dimension of your data is 7. But you are feeding (152, 7, 169), where 169 is the last dimension.
Try to transpose it:
X = tf.transpose(X, [0, 2, 1])


initialPage doesnt work in android

Issue Description
I have 4 tabs in android and want to display the 4th tab by default if a condition sets true.
"react-native": "^0.52.0",
"native-base": "2.3.5",
Expected behaviour
The 4th tab should be the active tab (works this way in ios)
Actual behaviour
Opens the page with 1st tab active
Steps to reproduce
<Tabs
prerenderingSiblingsNumber={4}
initialPage={4} // works in ios
Is the bug present in both iOS and Android or in any one of them?
Android
Any other additional info which would help us debug the issue quicker.
@SupriyaKalghatgi - Can you look into this issue ?

To display nth tab, we need to give initialPage={n-1}

initialPage={n-1} is taking to nth Tab but it's not rendering the nth tab

It's rendering when i go to another tab and come back to this tab

To display nth tab, we need to give initialPage={n-1}

it's not work :(

Please try with the latest version of NativeBase.

Hi @siddhesh-atd , we hope its working with updated NativeBase. Closing for now. Let us know if the issue still persists.


Work requested in issue #166

LGTM


Order of series in chart should be based on peak/volume ratio

The lowest ratios comprise the 'base loads': they go on the bottom of the chart. The more peaky series go on the top of the chart.
Example.
I guess this is also the logic behind the other of technologies from Frauenhofer:

As suggested by Sybren on our meeting at April 20th 2016.
Complication
The ratio could vary between scenario's, strategies or in time: so question is: do we want to keep this fixed (so based on average ratios?)

Assigning to @grdw and putting on-hold for now.

Can this be closed @grdw?

Yes it can


Transition to CircleCI

To do:

[x] Remove snap environment variables
[x] Figure out way to trigger slow tests
[x] Go back to using ansible version v<IP_ADDRESS>

Should we add the PR trigger.
deployment:
  fake_deploy_for_cci2:
    tag: /.*/
    commands:
      - echo "make tags run in 2.0"

Can we have make local that includes the docker run ... for make test and make dist since those are used to often.

LGTM!


Tuning Hacks For Benchmarks

Closing some old PRs. This looks like it was just posted for benchmark results.


Process a data deposit - xml tag

Hello
On the administration side, when you process a data deposit, you can choose a study ID.
Here, a DOI as an ID

This ID is placed in the URI of the XML tag "serStmt". I expected that this ID would go in the tag "IDNo".
If it stays in the serStmt, the field should specify that an URI is needed.
Screenshot of the serStmt tag

Empty IDNo

Is there a problem with the mapping?
Thank you

This issue is on the latest version : Nada 5.3


update release notes for 0.4.14

Description
minor update to release notes for new PRs since #4013

Number of reviewers is outdated!


Add $restart param to control service restarts

This PR is to add restart parameters for mongo & mongos which when set to:

false - don't restart the service on config file changes
true - (default) trigger service restarts on config file changes

Are you able to add some docs to the README as well?

@juniorsysadmin done.
I should probably add that I tested the change with MongoDB on Ubuntu; didn't test Mongos but the logic is the same.
Also, the module handles both mongo and mongos and the restart parameter is inherited from mongodb::params to mongodb::mongos, there's no separate restart parameter for mongos. I can't think of a scenario where one would want to not restart Mongo but restart Mongos on config file changes.

Added a separate restart param for mongos - they can be configured independently from mongo using config/config_content available in the mongodb::mongos class so the restart should be treated separately too.

Can you please squash your commits. @hunner are you happy with the changes ?

@tphoney squashed, thanks.

Thanks, CI is failing. Sorry dude.

When before it wasn't and all I did was squash my commits, nice. I'll look into it.

ping @atrepca, can you merge the commits, and have a look into the failing travis.

There you go @tphoney, back to green and all I did was merge the latest master.

@tphoney Anything else I could do to get a resolution here?

This needs a rebase, but lgtm

@nibalizer is correct. needs a rebase

@nibalizer, @tphoney rebased, thanks.

Thanks for the effort you put into this.


Limit number of sessions?

I see we can sort sessions, by my list is really long. Can I limit my session list to some number, similar to g:startify_files_number?

let g:startify_session_sort = 1
let g:startify_session_number = 10

:)


Unable for connect to Device (supports web server)

Unable to connect to device even device has its own web server and I can ping its IP from my laptop.

The code i am using is
<?php
require 'tad/lib/TADFactory.php';
require 'tad/lib/TAD.php';
require 'tad/lib/TADResponse.php';
require 'tad/lib/Providers/TADSoap.php';
require 'tad/lib/Providers/TADZKLib.php';
require 'tad/lib/Exceptions/ConnectionError.php';
require 'tad/lib/Exceptions/FilterArgumentError.php';
require 'tad/lib/Exceptions/UnrecognizedArgument.php';
require 'tad/lib/Exceptions/UnrecognizedCommand.php';

use TADPHP\TADFactory;
use TADPHP\TAD;

$options = [
    'ip' => '<IP_ADDRESS>',   // '<IP_ADDRESS>' by default (totally useless!!!).
    'udp_port' => 4370,      // 4370 by default.
  ];

$tad_factory = new TADFactory($options);
$tad = $tad_factory->get_instance();
$logs = $tad->is_alive();
var_dump($logs);die();

?>

also tried different functions other than $tad->is_alive() but not working at all. When I use $tad->get_att_log();  i get error
Fatal error: Uncaught TADPHP\Exceptions\ConnectionError: Imposible iniciar conexión con dispositivo <IP_ADDRESS> in C:\xampp\htdocs\projects\tx628\tad\lib\TAD.php:408 Stack trace: #0 C:\xampp\htdocs\projects\tx628\tad\lib\TAD.php(271): TADPHP\TAD->check_for_connection() #1 C:\xampp\htdocs\projects\tx628\test.php(23): TADPHP\TAD->__call('get_att_log', Array) #2 {main} thrown in C:\xampp\htdocs\projects\tx628\tad\lib\TAD.php on line 408
Can you please tell what is the issue with it? One thing also to share is this device was working properly with ZK_Lib.

Hi,
Can you double check your device has a web server with SOAP support?  ...
If you say Zk_lib it's working properly, that is because uses  UDP protocol
for communication, but TAD uses SOAP. So,  I think your device's web server
had not SOAP support or maybe it is not configured properly
Best regards,
El 09/09/2017 04:09, "salmansidd17"<EMAIL_ADDRESS>escribió:

Unable to connect to device even device has its own web server and I can
ping its IP from my laptop.
[image: capture]
https://user-images.githubusercontent.com/31650139/30238350-2bc6c0ce-955f-11e7-8e1b-9b2d46e9d3c0.PNG
The code i am using is
`<?php
require 'tad/lib/TADFactory.php';
require 'tad/lib/TAD.php';
require 'tad/lib/TADResponse.php';
require 'tad/lib/Providers/TADSoap.php';
require 'tad/lib/Providers/TADZKLib.php';
require 'tad/lib/Exceptions/ConnectionError.php';
require 'tad/lib/Exceptions/FilterArgumentError.php';
require 'tad/lib/Exceptions/UnrecognizedArgument.php';
require 'tad/lib/Exceptions/UnrecognizedCommand.php';
use TADPHP\TADFactory;
use TADPHP\TAD;
$options = [
'ip' => '<IP_ADDRESS>', // '<IP_ADDRESS>' by default (totally useless!!!).
'udp_port' => 4370, // 4370 by default.
];
$tad_factory = new TADFactory($options);
$tad = $tad_factory->get_instance();
$logs = $tad->is_alive();
var_dump('
',$logs);die();
?>`
also tried different functions other than $tad->is_alive() but not working at all. When I use $tad->get_att_log();  i get error
Fatal error: Uncaught TADPHP\Exceptions\ConnectionError: Imposible iniciar conexión con dispositivo <IP_ADDRESS> in C:\xampp\htdocs\projects\tx628\tad\lib\TAD.php:408 Stack trace: #0 C:\xampp\htdocs\projects\tx628\tad\lib\TAD.php(271): TADPHP\TAD->check_for_connection() #1 C:\xampp\htdocs\projects\tx628\test.php(23): TADPHP\TAD->__call('get_att_log', Array) #2 {main} thrown in C:\xampp\htdocs\projects\tx628\tad\lib\TAD.php on line 408
Can you please tell what is the issue with it? One thing also to share is this device was working properly with ZK_Lib https://github.com/dnaextrim/php_zklib.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/cobisja/tad-php/issues/35, or mute the thread
https://github.com/notifications/unsubscribe-auth/AJzLMvNTuUns32bZc-B_BIDUyOMcB2Efks5sgkefgaJpZM4PR7FT
.

I think my device only supports UDP. I was facing some bugs in ZK_lib that's why switched to yours but that also didn't work for me.So I made changes in ZK_lib myself and got it to work fine for me.
Thank you for your response by the way. :)

i have the same issue with my device can you explain what changes do you made in Zk_lib?

@salmansidd17 ??

@haseebhk22
in zklib/zklib.php
line no: 114
change if ($command == CMD_ACK_OK) to if ($command == CMD_ACK_OK || $command==2005)

@salmansidd17 I have change this code but there show nothing empty table my device is ZKTecho mb160 can you help me how to make connection and get data ?

@salmansidd17 And can you tell me how do i know that my device is udp supported or not and how to check firmware version and all this

@haseebhk22  do you have any attendance data in your device?

@salmansidd17 Yes i have and i can access it from the software which is provided by the company in a cd disk

@haseebhk22 i had zk tx628. That tweak worked for me that time. I think they had changed their firmware so the older library doesn't works anymore.

@salmansidd17 so you can't help me in this if you have anything know about it please let me now me

@haseebhk22 in zklib/zklib.php line no: 114 change if ($command == CMD_ACK_OK) to if ($command == CMD_ACK_OK || $command==2005)

working as expected


Add polaris-icons

We're open-sourcing the https://github.com/Shopify/polaris-icons repository on Monday 🎉

It's now public and live! Merging now :)


Support needed for waiting for child fragments

There is no way currently to wait for a child fragments to be visible using any of the waitForFragment* methods.  New methods would be needed that utilized getChildFragmentManager at the lower level.

Thanks for the feature request.


Support for different color models

Will there ever going to be support for different color models? While there is a swatch to pick colors from, it eventually ends up in a hex value. I don't find hex easy to work with. It'd be more practical if there was a way to switch between models (hex, rgb, hsl, etc.).

We'll add a "..." button next to the input element for selecting the color in different color models:

Just came across: https://twitter.com/drawio/status/1430123597096538120 🙂


Downlinks are not properly sent (wrong timings and RX1 channel)

Describe the bug
The downlink is refused by the gateway because it arrives too late, and RX1 does not use a correct tmst value, nor RX1 frequency.
To Reproduce

Reported from an EU868 data only gateway, helium_gateway v1.0.0-alpha.31, asserted in France
Connected to Semtech pico gateway thanks to picoGW_packet_forwarder v.0.1.0
The device uplinks/downlinks was working fine few month ago with another gateway which is know down.
The device RxDelay is set to 4
The network server tries to send an ADRReq to the device:

The packet forwarder reports

Uplink:
INFO: Received pkt from mote: 48000000 (fcnt=18893)
JSON up: {"rxpk":[{"tmst":2597889415,"chan":1,"rfch":1,"freq":868.300000,"stat":1,"modu":"LORA","datr":"SF12BW125","codr":"4/5","lsnr":-5.2,"rssi":-107,"size":16,"data":"QAAAAEiAzUkC/eZOUR/hwQ=="}]}
INFO: [up] PUSH_ACK received in 0 ms

Downlink:
JSON down: {"txpk":{"imme":false,"tmst":2602889415,"freq":869.5250244140625,"rfch":0,"powe":14,"modu":"LORA","datr":"SF12BW125","codr":"4/5","ipol":true,"prea":null,"size":17,"data":"YAAAAEiFfDIDMP8AAAtc/ik="}}
src/jitqueue.c:251:jit_enqueue(): ERROR: Packet REJECTED, timestamp seems wrong, too much in advance (current=2981758355, packet=2602889415, type=0)
ERROR: Packet REJECTED (jit error=2)
INFO: [down] PULL_RESP received  - token[140:35] :)

(correct downlink as the FCnt is 12924 as reported in the Console)

gateway-rs reports:

Uplink:
Dec 13 13:34:28 grog helium_gateway[880587]: uplink @2597889415 us, 868.30 MHz, Ok(DataRate(SF12, BW125)), snr: -5.2, rssi: -107, len: 16 from 30:37:34:32:48:00:6C:00, module: gateway

Downlink:
Dec 13 13:39:29 grog helium_gateway[880587]: rx1 downlink @2602889415 us, 869.53 MHz, DataRate(SF12, BW125), len: 17 via 30:37:34:32:48:00:6C:00, module: gateway
Dec 13 13:39:29 grog helium_gateway[880587]: rx2 downlink @2602889415 us, 869.53 MHz, DataRate(SF12, BW125), len: 17 via 30:37:34:32:48:00:6C:00, module: gateway

Expected behavior

The rx1 downlink should be on frequency 868.30, not 868.525 MHz
The rx1 and rx2 downlinks should not have the same tmst (SX130x internal counter) value
As rx_tmst - tx_tmst= 5 sec, I guess that RX2 is correct but not RX1
Despite parameters for RX2 being correct, the downlink command arrives far after the RX windows expiration:

Around 5 min as per gateway-rs logs (13:39:29 - 13:34:28)
Around 6 min as per SX1308 tmst counter<PHONE_NUMBER>-2602889415 us)

Device Info (please complete the following information):

Environment: production, https://console.helium.com/
Console Device ID: 953f8b66-9f13-4df4-bbc4-881ccc4f8aa0
Every 10 min, but PER is high as NS is not able to increase the device TxPower
Region: EU868
Hotspots: Feisty Orange Hamster

Full logs, both are starting approximately at the same time:
221213 rx_issue_logs.zip

@mikev might want to take a look at this

The behavior is likely related to this issue & PR
Issue - https://github.com/helium/router/issues/891
PR - https://github.com/helium/router/pull/442/files

At some point I even wondered if there was a confusion between 5 seconds and 5 minutes in your scheduler, but I also saw smaller values

tmst is given in microseconds (10^-7) so these look fine:
>>><PHONE_NUMBER>-2424775723)/10**6
5

However, we've noticed the error message has some bug in the logic where "too much in advance" is sometimes reported for late packets. It could simply be that these are showing up late.
What's the networking setup here? Backhaul used? Which console/LNS is the device connecting to?

Yes tmst value is correct on those last, but look at the timing from helium_gateway:

Dec 14 12:43:51 grog helium_gateway[1199527]: uplink
Dec 14 12:48:07 grog helium_gateway[1199527]: rx1

This is the 5 minutes I am talking about.  That said in my first post rx1_tmst=rx2_tmst, which is another issue to me
I reproduced it with an x86 computer and a rPi, both on the same corporate network. As said to @mikev privately I am waiting to go to the office next week, to try a working laptop I have at home in this network, and bring back the rPi home to see  if it is related to this corporate network.

So I did further testing: the issue related to 5 minutes delay of the downlink appears only in the office, I will try to explore it with IT in order to understand why. Did you already encountered such behavior on corporate networks?
Then there is still the rx1_tmst=rx2_tmst issue which I do not find exact steps to reproduce, so as discussed with @mikev maybe the easiest way forward is the switch to Chirpstack


Revamp SocketCluster Protocol overview

closes https://github.com/SocketCluster/socketcluster/issues/557
I’ve tried to revamp SocketCluster Protocol overview considering all the changes in the recent years.
I guess it's more meaningful to read as a whole document at
https://github.com/MegaGM/socketcluster/blob/docs-sc-protocol/socketcluster-protocol.md
Please, check if it's all right :ballot_box_with_check:

LGTM, nice guide.

@MegaGM Thanks for the contribution and sorry for the absurdly long delay. I've had a rough year...


Issues with duplicate files

First of all, thank you for this great project!
I've noticed that when I have duplicate files for a message, only one of the files is moved to the destination directory and the remaining files stay where they are. Could this be adjusted to move all files into the target directory?

Hi @korrat,
thank you for reporting the issue. Could you clarify what you mean by duplicate files? Could you possibly provide an example?

I recently sent an email and CCed myself. So, I had two files for the same message. However, notmuch-mailmover only moved one of these files into the target directory. The other file remained in the Sent folder, even on following invocations.

Ah, okay, I think I understand now. I don't believe there's much I can do because, technically, these are two different files (i.e., they have different filenames). Could you share the rule that you used? Perhaps the rule can be tweaked so that both files are detected. You can debug your query using the CLI with a command like:
notmuch search --output=files<EMAIL_ADDRESS>

If I run the command (for the specific thread), I get all three files (original message + 2 copies of the reply).
> notmuch search --output=files 'thread:000000000000218a'
/home/korrat/Maildir/tsv/Sent/cur/1716530705.333818110009483e416a9835d7b68aa8.atlas,U=11:2,S
/home/korrat/Maildir/tsv/Archive/cur/b131e75f-0944-40a7-a7eb-de82ec128627,U=26:2,S
/home/korrat/Maildir/tsv/Archive/cur/34583611-969b-417f-91d9-6bdabf2158bc,U=24:2,RS

If I use the notmuch-mailmover query, I get no results:
> notmuch search --output=files 'NOT folder:<target> AND thread:000000000000218a'

According to the notmuch documentation, both folder nor path match if any copy of a message is in the directory. Therefore, notmuch-mailmover does not detect the misfiled email.

I think your issue is with notmuch queries and not with notmuch-mailmover because under the hood, notmuch-mailmover has a very simple logic and just forwards your query to notmuch to get back the filenames: https://github.com/michaeladler/notmuch-mailmover/blob/f38e264c876233c6ce62a98e8fc35d943e51a81d/src/engine.rs#L54

I think the issue is a few lines above:
https://github.com/michaeladler/notmuch-mailmover/blob/f38e264c876233c6ce62a98e8fc35d943e51a81d/src/engine.rs#L49
With that, I think my scenario looked like this:

I sent an email from<EMAIL_ADDRESS>to<EMAIL_ADDRESS>My email client copied the message to a/sent.
I manually tagged the email as a and sent.
I ran notmuch-mailmover (in a pre-new hook), which moved the message to a/archive as per the query.
I ran mbsync (still as part of pre-new), which downloaded a second copy of the message (same message id) to b/inbox.
On any further invocation to notmuch-mailmover, that second copy stays in b/inbox, because another copy is already in the correct folder, so the query doesn't match.

So, based on this, it seems that it comes down to some kind of race condition between steps 3 and 5 in the scenario. If I ran step 5 before tagging the email, both files would have been moved to a/archive.

Hi @korrat,
I just had the same problem as you which helped me to understand the underlying problem. I'll push a fix shortly. This should resolve your issue as well. Feel free to report back here :)


Files missing in bower distribution

When installing version 12.1.2 from bower, only LICENSE, README.md, bower.json and package.json are present in bower_components/twemoji
bower install twemoji#12.1.2 --save
When version 12.0.4 is installed from bower, the "2" directory is also present, containing the javascript files and the "72x72" and "svg" directories and files.
bower install twemoji#12.0.4 --save

Same issue for version 12.1.3


Disabling click events when dragging scene with orbit control

When dragging the scene and ending the drag above an interactive object, a click event is triggered from the object. When dragging on touch screen I don't get this behavior, and I would expect to only get the click handler if I have not initiated a drag.
In previous projects with three I have listened on movement from the orbit-control and stopped the propagation of the click events if the user has moved more than threshold values for distance or duration. I've also done the opposite, if a scene object is dragged the orbit-control is inactivated during the drag duration. Not sure how the interactivity works in threlte yet, though.
Cheers,
David

Your described behaviour is actually in-line with regular DOM events. "Dragging" on a DOM element (that is mousedown somewhere on the element, mousemove on the element and mouseup on the element) triggers a click event. This might seem counterintuitive at first, but I wanted to adhere to regular DOM events as much as possible. See this REPL.
The <Orbitcontrols> emit certain events on user interaction, feel free to use that to build your drag interaction.
In my opinion accounting for interferences between Controls and "regular" events is something that is out of reach of this project as that is something that is totally up to the individual design of the whole experience you are trying to achieve.

I do understand that if I drag on top of a button element an release on the same element, I should get a click event. But I don't think its standard that you get a click event when you are interacting/dragging an element.
I added a "click" message in this repl: https://svelte.dev/repl/adf5a97b91164c239cc1e6d0c76c2abe?version=3.14.1
It is not triggered if I drag and release one of the boxes.
Another example is google maps, and well, almost all instances I can think of where you drag objects on the screen. You almost always want to be able to differentiate between a drag and a click.
Currently the only way I can do this is to listen for drag events on the orbitcontrol to set a flag and then check this flag in every click handler bound to objects in the scene. Not a big problem but it might be easier if I could handle this globally somehow.
But I totally understand that you want/need to scope the project. You have done a lot of amazing work on this lib!

I recently ran into this problem as well, and it's very unintuitive behaviour to me. I can open a new issue since this one is really old, but I figured I'll put it here so you can just leave this issue closed if this is in fact something you're not looking to change.
If I've got a scene above a button like this:

I rotate the scene by clicking in it and dragging, and I release while I'm above the button. Then the button is triggered.
I was really surprised by this at first because I was looking at the rotating object and didn't even notice I was above the button, so it took me a bit to understand why something was happening at all.
I'd strongly prefer a different behaviour, and I don't understand why anybody would expect it to work like this, but I will respect if this is intended and you don't want to change it.


fixed ms.author

Docs Build status updates of commit c995196:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/holographic-frame.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


[SILOptimizer] Switch hasArchetypes() to any_of(). NFCI.

This version is slightly shorter and improves readability.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

@swift-ci please smoke test


Added correct style in header image and made it responsive

fixes #1
Made the Header image resposive and the issue of image resizing is also solved.

Thanks ! This works as expected now on small screens all the way up to laptop sizes and I will merge and add hacktoberfest tags

It's ok if you have some paid work related to development feel to free to
connect I am open to work.
On Tue, 17 Oct, 2023, 4:32 pm Marcell, @.***> wrote:

Thanks ! This works as expected now on small screens all the way up to
laptop sizes and I will merge and add hacktoberfest tags
—
Reply to this email directly, view it on GitHub
https://github.com/0silverback0/LandingPages/pull/2#issuecomment-1766182090,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A7CEKRLKDMSJ2IUBFDJH5NDX7ZQUDAVCNFSM6AAAAAA6DJQFC6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRWGE4DEMBZGA
.
You are receiving this because you authored the thread.Message ID:
@.***>

Ok, no problem
On Tue, 17 Oct, 2023, 5:00 pm Marcell, @.***> wrote:

Sorry I have no paid work im looking for that myself! But maybe we can
collaborate on more projects together.
—
Reply to this email directly, view it on GitHub
https://github.com/0silverback0/LandingPages/pull/2#issuecomment-1766224046,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A7CEKRKQGBDUTUYXBU5MGSDX7ZT6BAVCNFSM6AAAAAA6DJQFC6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRWGIZDIMBUGY
.
You are receiving this because you authored the thread.Message ID:
@.***>


$interpolate(true)({}) throws error

Do you want to request a feature or report a bug?
bug or breaking change.
What is the current behavior?
if we inject $interpolate and use it with a value that is not a String, an error is thrown because replace only exists in String.prototype.
**If the current behavior is a bug, please provide the steps to reproduce and if possible a $interpolate(true)({});
What is the expected behavior?
If the behaviour is ok, at least throw a concise error and test it in the spec.
Expected behaviour is the same as previous version, 1.4.9 at least. In this version while (index < textLength) avoided executing text.replace, the result is an empty string.
What is the motivation / use case for changing the behavior?
It's a breaking change if someone used $interpolate service calling it with a first parameter that is not a string.
TypeError: text.replace is not a function
at unescapeText (webpack:///./~/angular/angular.js?:12183:19)
at $interpolate (webpack:///./~/angular/angular.js?:12336:31)
Which versions of Angular, and which browser / OS are affected by this issue? Did this work in previous versions of Angular? Please also test with the latest stable and snapshot (https://code.angularjs.org/snapshot/) versions.
It worked with angular 1.4.9; It does not work with angular 1.5.8

@jbedard Seems like this is the result of https://github.com/angular/angular.js/commit/cf83b4f445d3a1fc18fc140e65e670754401d50b Would you mind taking a look?

It didn't really handle this before cf83b4f either. It might not have crashed but it didn't detect it and throw any proper error message.
Is this really worth fixing? I don't like the idea of detecting every possible programmer error...

That is a good point, actually. The function is documented as only taking strings. @pabloes What is your use case for passing a boolean to interpolate? Or in what circumstance does it happen?

I'm involved in a migration from angular 1.4.9 to ~1.5.8
In my case we have a function that can receive an string or a boolean, and I execute first the interpolation and afterwards checks if the parameter is a boolean. In previous version no error was thrown and the execution was going forward.
For me is really easy to solve, just check the parameter and if it's not a string avoid using $interpolate, or a try catch; but I was just thinking if you want to do something here to avoid the error or to throw a precise error.
Anyway it's true that the documentation says that first parameter must be a string.

In that case, I think we should leave it as is. The change has been in the stable version for almost 6 months and this is the first issue about it. If more poeple encounter this problem, we can reconsider a different behavior.


PT-1607 | fix: cms page title and lang meta tags

Description :sparkles:

Issues :bug:
Closes :no_good_woman:
PT-1607:
Related :handshake:
Testing :alembic:
Automated tests :gear:
Manual testing :construction_worker_man:
Screenshots :camera_flash:
Additional notes :spiral_notepad:

kultus-admin-ui branch is deployed to platta: https://kultus-admin-ui-pr339.dev.hel.ninja :rocket::rocket::rocket:


Query build doesn't behave in an expected way

Unfortunately this is a showstopper for our migration from Knex, I hope this can be looked into.
See below code:
console.log(
		await kysley.selectFrom('user').where('id', '=', '1').selectAll().compile()
			.sql
	); // select * from "user" where "id" = $1
console.log(
		await kysley.selectFrom('user').where('id', '=', '1').selectAll().execute()
	); // returns correct values

const wat = kysley.selectFrom('user');
wat.where('id', '=', '1');
wat.selectAll();
console.log(wat.compile().sql); // select from "user"
const f = await wat.execute();
console.log(f); // [ {}, {}, {} ]

Those two queries should be outputting the same values. They are built with the same inputs and call the same methods. The second one just happens to be built in multiple calls (which is an extremely common pattern for building complex queries. But for some reason, the second query seems to be ignoring some of the commands it was provided. This is not good.

Kysely is immutable. Please use discord for these questions. These are not issues.


fix assume script not printing output properly on linux

Fixes #255.
Sometimes Granted needs to print to stdout. Our assume wrapper script needs to capture Granted's output in a specific format, so we prepend anything that needs to be printed with GrantedOutput. assume then chops the GrantedOutput prefix off and prints the rest to stdout.
For running commands like assume my-profile --exec "echo hello world", the output that the assumego Go binary creates is:
GrantedOutput
hello world

Which is then interpreted by the assume wrapper, and finally printed to the console as
hello world

the problem
Bash on Ubuntu was printing
GrantedOutput <URL>

Whereas the assume script requires the output to look like
GrantedOutput
<URL>

with a newline in between.

Confirming that this resolves the reported issue. Nice work!

shellcheck is often good at finding these kinds of issues. It's basically static analysis linter for shell scripts. I often run it in CI and let it pass/fail the PR.

Fantastic suggestion @lorengordon, I've added support for shellcheck in our CI in #265. Shellcheck correctly caught the issue in #255 too.


List Note typing speed

On the List Note, the note seems to be constantly refreshing as I type. If I type at a normal speed, the cursor will jump back and will often not register typed characters. It seems to be some sort of refresh. Maybe the focus or the flexbox? Couldn't figure it out from the console. If this is a new issue, it might be a conflicting module. Just wanted to raise it.

I will look into it

I tried to implement a fix for that with v1.4.3. In case this fix does not work, which browser are you using?

Thanks. I just downloaded the module today but I'll check my module version. I was on Chrome.
On Wed, Jul 31, 2024 at 6:16 PM, @.***> wrote:
I tried to implement a fix for this behaviour with v1.4.3. In case this fix does not work, which browser are you using?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

I had v1.4.2; it's fixed in v1.4.3. Thank you.

Good to hear


Added Road accident analysis project using Power BI

I have successfully added the project as a new folder in the repository.

Please tag the corresponding issue.

#622
#623

@jeet-Abhi123 You seem to have created this PR for 2 issues of different topics.
It is suggested that a single PR fixes single issue. So, please create separate ones.

How can I create different PR? When I clicked the PR of issue #623 it is getting adding to this PR only.

@jeet-Abhi123 That is because you mentioned 2 issue numbers above (622 and 623).
Also the files you uploaded in the commit in this PR have both Road accident analysis and Data Cleaning Techniques.
Since this PR is for Road Accident Analysis, retain these files and delete others from this PR.
You can make another PR with Data Cleaning files and tag issue 623 there.

For creating another PR, you must first create another branch in your local repo. And commit the relevant files there.
(Separate issue <-> separate PR <-> separate branch)


Skip adding dns_servers into heat template for ipv6.

Adding dns server (<IP_ADDRESS>) for ipv6 network breaks heat template deployment due to mismatch of ip version. This PR will only add dns server for ipv4 deployment.
Without fix:
https://ci.suse.de/job/openstack-ardana-heat/9308/console
With fix:
https://ci.suse.de/job/openstack-ardana-heat/9309/console

can you add a rationale (why) to the commit message? its not clear why ipv6 would be able to live without dns servers to me.

Updated commit message with explanation. Thanks.

I wonder if we shouldn't separate out the dns servers given by the ecp into ipv4 and ipv6 ones? is there a way to filter them maybe?

We can pursue making the passing of DNS servers more clean with a follow-up patch. This does the job for now. There's more work to be done in this space, so this patch isn't the end-all for IPv6 and DNS.


history.listen doesn't fire when route changes via history.push

Version
5.0.0
Test Case

Steps to reproduce

import { withRouter, Link } from 'react-router-dom';
componentDidMount() {this.unlisten = this.props.history.listen(() => console.log('route changed')); }
componentWillUnmount() {this.unlisten();}
this.props.history.push('url'); in my case this line executed after ajax req
export default connect(mapStateToProps, mapDispatchToProps)(withRouter(MyCom));

Expected Behavior
console.log('route changed') should run after step 4. but it doesn't.
Actual Behavior
history.listen doesn't fire.
BTW when if route changes via <Link>, everything is fine.

Just for reference, for more info about this issue, see: https://github.com/ReactTraining/history/issues/710


CNV-32401: Change "SSH key name" field to "Authorized SSH key"

📝 Description
Fixes:
https://issues.redhat.com/browse/CNV-32401
Change SSH key name field name to Authorized SSH key in InstanceTypes tab when creating VM from InstanceTypes, section 3 - VirtualMachine details, to align it more with the Authorized SSH key modal and with VM -> Configuration -> Scripts tab.
🎥 Screenshots
Before:

After:

@avivtur @metalice @pcbailey @upalatucci @vojtechszocs please review

/lgtm


VTOL: Implement MC cruise using fw motor

In strong winds the VTOL now tries to move forward by pitching down. This creates negative lift when the plane is facing into the wind and the thrust setpoint goes up. We've encountered cases where the position controller would disable horizontal position control in order not to decrease altitude.
https://github.com/PX4/Firmware/blob/master/src/modules/mc_pos_control/mc_pos_control_main.cpp#L1635
The position controller would then get into a cycle of enabling and disabling horizontal position control which leads to large oscillations of the pitch setpoint.
Log: http://logs.uaventure.com/view/W8rC6nV8y5C9dmfMYoxQsd

This can be fixed by allowing the MC controller to move around using the fw motor instead of using pitch / roll.

implementing this will also benefit yaw behavior

first draft, works in sitl:https://github.com/PX4/Firmware/pull/3838

What you did there will de-stabilize the attitude control. What we will likely need instead is to split attitude and lateral acceleration demand in the position controller (sort of the direction of the trust vector vs. the direction of the desired attitude) and the attitude controller then either combines them for an under actuated vehicle (like a quad) or looks at them separately for a fully actuated or over actuated vehicle. @tumbili Please pitch in.
The interesting point about that concept is that it will scale to tilt rotors or anything like that and will naturally give you the right tilt angle + the right rotor speeds for what you want to achieve.

I know, it's just a proof of concept now.
I'm actually amazed at how well it's holding attitude in SITL now.
We could include setpoints to determine lateral acceleration but i think we could also include airspeed to detect if we are flying in nose wind. @tumbili what do you think?

/cc @AndreasAntener


Support for VisualEditor

Please add support for the VisualEditor extension.

...Word...
Love your skin and the flexibility. But absolutely need the support for VisualEditor! Thanks for your work.

Need VisualEditor support too. Thanks!

Same here ! Visual Editor Please!

I have managed to hack my way into getting visual editor working.
Will update once all functionality is sorted out.

The solution was achieved by implementing the following changes:

LocalSettings.php
Add the following code to the end of LocaSettings.php

$wgVisualEditorSupportedSkins = [
                        "vector",
                        "apex",
                        "monobook",
                        "minerva",
                        "blueprint",
                        "bootstrapmediawiki"
                ];

BootstrapMediaWiki.skin.php
Replace line 2360 with the following:

as

Replace line 444 with the following:
case 'Edit': $icon = 'pencil'; break;
as
case 'Edit': $icon = 'pencil'; $id='ca-ve-edit'; break;

replace line 453 with the following:
$link['title'] = ' ' . $link['title'];
as
$link['title'] = ' ' . $link['title'];

I know it's rough, hope this helps though


Cli path support

fixes #359
Some documentation will be required for this which I have noted down in #369 .
First thing I tried is simply modifying the PATH that the ProcessBuilder has.  Unfortunately, this did not work.  As far as I can tell, that modifies only the environment of the subprocess and does not impact resolution of the script/command itself.  There are a number of SO articles that back up this theory and don't butcher the terminology as much as I may be doing 😁
https://stackoverflow.com/questions/26992165/how-to-set-path-environment-variable-in-processbuilder-java-in-windows
https://stackoverflow.com/questions/10035383/setting-the-environment-for-processbuilder
One beneficial side effect is this allows us to delegate quoting (and escaping) and breaking up of individual args to the shell rather than having to do it ourselves.  In fact, I'm tempted to remove our code for doing that altogether and have the non-PATH branch also use bash -c.

Thanks for the detailed explanation. Are there guarantees for bash presence?

Thanks for the detailed explanation. Are there guarantees for bash presence?

Nope, that's an excellent point.  I'll switch to bin/sh.


feat: added api-keys command for projects

What kind of change does this PR introduce?
Created projects api-keys sub-command. Added necessary test as well.
Additional context
I have improved the table rendering using charm/bubbles pkg. In terms of UX, it's better now and maybe we can implement the same everywhere else by adding a common styles file. Also here the keys are not getting word wrapped and I wasn't able to find a solution anywhere. Wdyt? Should we go with this or the same old glamour rendering?

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

31 of 38 (81.58%)  changed or added relevant lines in 2 files are covered.
7 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.03%) to 61.829%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

cmd/projects.go
5
8
62.5%

internal/projects/apiKeys/api_keys.go
26
30
86.67%

Files with Coverage Reduction
New Missed Lines
%

internal/gen/keys/keys.go
7
7.94%

Totals

Change from base Build<PHONE_NUMBER>:
0.03%

Covered Lines:
4772

Relevant Lines:
7718

💛  - Coveralls

Also here the keys are not getting word wrapped and I wasn't able to find a solution anywhere. Wdyt? Should we go with this or the same old glamour rendering?

Bubbles doesn't seem to support word wrapping as it currently truncates cell content to ... when it overflows. Not able to show the full key would make this command quite useless...
I do appreciate the new look though. Perhaps we can work on the styling on a separate PR.

Thank you! The rest of the changes LGTM.

Sorry for the unnecessary commits... I think we need a squash and merge here haha :)


Bug: mockName throws an error

Do you want to request a feature or report a bug?
Bug
What is the current behavior?
An error is thrown:
TypeError: jest.fn(...).mockName is not a function

If the current behavior is a bug, please provide the steps to reproduce and either a repl.it demo through https://repl.it/languages/jest or a minimal repository on GitHub that we can yarn install and yarn test.
https://repl.it/MYi9
What is the expected behavior?
Based on the Docs for mockName, it should work.
I've also logged jest.fn() and mockName wasn't on it:
    { [Function: mockConstructor]
      _isMockFunction: true,
      getMockImplementation: [Function],
      mock: [Getter/Setter],
      mockClear: [Function],
      mockReset: [Function],
      mockReturnValueOnce: [Function],
      mockReturnValue: [Function],
      mockImplementationOnce: [Function],
      mockImplementation: [Function],
      mockReturnThis: [Function],
      mockRestore: [Function] }

Please provide your exact Jest configuration and mention your Jest, node, yarn/npm version and operating system.
Jest config: testEnvironment: 'node'
Jest v21.2.1
Node v8.6.0
Yarn 1.1.0
Mac OS X 10.12.6

Unfortunately this is a new feature that is not in a release yet. We should add a message to the docs (cc @SimenB : ) ).

Hah, didn't take long


Update elasticsearch.rst

updated example for elasticsearch producer

Coverage remained the same at 71.668% when pulling 5f3bf16bd90472e4fe755af1435be5565b99cd35 on serii833:patch-1 into 30a7891a579880f230b63db9f3c2ba696dfd9981 on trivago:master.

Coverage remained the same at 71.668% when pulling 5f3bf16bd90472e4fe755af1435be5565b99cd35 on serii833:patch-1 into 30a7891a579880f230b63db9f3c2ba696dfd9981 on trivago:master.

Sorry this took so long and thanks for the fix.


test add some delete-example in doris's doc to regression test

What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx
Problem Summary:
Check List (For Committer)

Test

[x] Regression test
[ ] Unit Test
[ ] Manual test (add detailed scripts or steps below)
[ ] No need to test or manual test. Explain why:

[ ] This is a refactor/code format and no logic has been changed.
[ ] Previous test can cover this change.
[ ] No colde files have been changed.
[ ] Other reason

Behavior changed:

[x] No.
[ ] Yes.

Does this need documentation?

[ ] No.
[x] Yes. https://github.com/apache/doris-website/pull/1274

Release note

None

Check List (For Reviewer who merge this PR)

[ ] Confirm the release note
[ ] Confirm test cases
[ ] Confirm document
[ ] Add branch pick label

run buildall

run buildall

run buildall

run p0

run cloud_p0

run buildall

run p0

run cloud_p0


Get name of feature

It would be awesome to get the name if a GSUB/GPOS feature, if a UINameID is supplied.
For example Bungee Regular, ss02 has UINameID pointing to ID 256 in the name table, being "Round forms". It would be nice if that is returned by default, or lookupable.

I added in parsing for Feature Parameters, which was missing (I didn't even know that was a thing =D) and added parsing for the three features listed under https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags:

cc01-cc99
size (which got superceded by the STAT table, but why not, it's only 5 uint16 anyway)
ss01-ss99

Running this on the Bungee font, with the following code:
import { Font } from "../../Font.js";
const myFont = new Font(`Bungee`);
myFont.onerror = evt => console.error(evt);
myFont.onload = function testFont(evt) {
    const font = evt.detail.font;
    const tables = font.opentype.tables;

    const GSUB = tables.GSUB;
    const ls = GSUB.getLangSysTable(`latn`, `CAT `);
    const features = GSUB.getFeatures(ls);

    features.forEach(feature => {
        if (feature.featureTag.startsWith(`ss`)) {
            const params = feature.getFeatureParams();
            const name = tables.name.get(params.UINameID);
            console.log(`${feature.featureTag} has a name: ${name}`);
        }
    });
}
myFont.src = `./protected/bungee/BungeeColor.ttf`;

We get:
>node protected\bungee\test.js
ss02 has a name: Round forms
ss03 has a name: Round E
ss04 has a name: Sans-serif I
ss05 has a name: Sans-serif L
ss06 has a name: Alternate ampersand
ss07 has a name: Small quotes


Opener not showing up

Hi! Thanks so much for all your amazing work! Really enjoying a number of your plugins.
I have a Nuki Opener and Lock (1st Gen)
I have enabled the nuki bridge HTTP API through the app, and have taken what I thought were the correct steps to ensure the plugin to function. The Nuki lock does appear and work well, but there is no sign of the Opener. Log shows that unsuccessful at requesting something, and tries to one time per minute with the following error:
14:01:41" (from "Tue Apr 04 2023 14:00:41")
[04/04/2023, 14:01:41] [Nuki] Nuki_Bridge_17D831E1: warning: heartbeat error: RangeError: : invalid name
at Opener.set name [as name] (/var/lib/homebridge/node_modules/homebridge-nb/node_modules/homebridge-lib/lib/Delegate.js:132:13)
at new Delegate (/var/lib/homebridge/node_modules/homebridge-nb/node_modules/homebridge-lib/lib/Delegate.js:39:15)
at new AccessoryDelegate (/var/lib/homebridge/node_modules/homebridge-nb/node_modules/homebridge-lib/lib/AccessoryDelegate.js:43:5)
at new NbAccessory (/var/lib/homebridge/node_modules/homebridge-nb/lib/NbAccessory.js:14:5)
at new Opener (/var/lib/homebridge/node_modules/homebridge-nb/lib/NbAccessory.js:373:5)
at Bridge.addOpener (/var/lib/homebridge/node_modules/homebridge-nb/lib/NbAccessory.js:218:24)
at Bridge.heartbeat (/var/lib/homebridge/node_modules/homebridge-nb/lib/NbAccessory.js:279:22)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
As I am not so experienced on here, could you possibly locate what the source of the problem might be?
Thanks so much for your help! Been enjoying being a new HomeBridge user:)

It didn't have a name, you were right, upon checking nb list and the Nuki app. So I added a name on the app, which is now saved there. Restarted homebridge but it still doesn't show up on nb list. How do I had the name there? Should I uninstall and reinstall?

Does the name now show on nb list?  If so, Homebridge NB should pick it up, or try restarting Homebridge.  If not, try power cycling the Nuki bridge, and check again.

The name finally showed up on nb list. A subsequent restart did the trick. Thank you!


Separate out NFT data from Member data

Description
This is a continuation of the gradual refactor of the frontend.
Data in the MemberData interface comes from AtomicAssets. It is the member's NFT information. Member data on the other hand now comes from the subchain. In the future, a member's current profile information may differ from the (older) information in their NFT.
For this reason, and for the sake of clarity--especially as we refactor--I have renamed MemberData to MemberNFT. The real data for a member will now be found in the Member interface/model.
To restate the rule from now on: If we want a member's profile or current Eden membership status/data, we should get that from the subchain/box (via the Member interface). If we want a member's NFT information (including profile information as minted in that NFT), we should get that from the AtomicHub APIs (via the MemberNFT interface).
This will also make it easier for us to remove NFTs from the platform, if we so choose.
In this PR, I also...

[x] adjust member chips to accept either Member or MemberNFT, so I can...
[x] make the main members list page use Member and box queries,
[x] organize/move NFT interfaces into the NFT domain

Future work

continue refactoring remaining UI (e.g., elections, inductions) to use box queries and the new interfaces

Then I was thinking that the MemberNFT was not being used in the proper places (eg: voting rounds should not care about nft data, right?). But by reading some code comments regarding future refactors it seems like it will come later....

Correct. Just haven't gotten to refactoring those areas yet.


Fix #410: Not working on android

If Android and iOS were configured platforms, the android after_prepare script was not run properly on android. This is fixed by switching from one “if else” to two ”if” clauses and using the cordova context to determine the platform we are currently running at.
by making sure the script is run properly even when iOS and android are configured.

@robertarnesson not so used to github pull request yet. can i delete the branch now?

@ben-8409 yes you can


The ply file dumped by the ch9 example code cannot be opened

Hi, thanks for your book.
The example code in ch9 cannot dump a PLY file with a correct format, so that the cloudcompare software cannot open it.
You missed a necessary space here.
    // Export extrinsic data (i.e. camera centers) as green points.
    double angle_axis[3];
    double center[3];
    for (int i = 0; i < num_cameras(); ++i) {
        const double *camera = cameras() + camera_block_size() * i;
        CameraToAngelAxisAndCenter(camera, angle_axis, center);
        of << center[0] << ' ' << center[1] << ' ' << center[2]
           << "0 255 0" << '\n';
    // ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ add a space before `0 255 0`
    }

The point cloud software I used to open PLY files is CloudCompare.

Thanks, fixed already.


Reusable "schemas"

It would be nice to be able to pre-assemble "schema" objects that define all the server-side parameters of an LR request in a single object, and can be passed client-side information (UriInfo, path parameters, etc) to serve a specific request. Such schemas have a potential for better performance (compared to on-the-fly current API), but also encapsulation of the REST API building blocks with custom rules.
A runnable schema can be defined as LrEntity + constraints + standard stages + custom stages. We need to devise fluent API for assembling schemas from available parts, decide on schemas mutability and API for running requests, etc.

Another important aspect of schemas is the default span. Currently it is hardcoded to all attributes of the root entity and no relationships. Should be customizable to be able to expose the most useful set of properties by default, simplifying the client job.


Basic implementation of column reordering

i. Reordering of columns

@kumarankit1234 Let's implement this using https://github.com/atlassian/react-beautiful-dnd
This will help us with a lot of stuff, and also in column-resizing.

@samrith-s

We either use that, or if we do not want to use additional packages, we should clone the element rather than using native ghost preview.

Currently we are not showing any preview of the column being reordered. That I will do later once the basic integration of reordering is done with the existing Table.

@dmitriy-kudelko

to add a mechanism to prevent re-ordering of certain columns (such as checkbox column for instance). This can be done by providing a certain prop: e.g reordable={false}

This will prevent a column from being reordered. But what will happen in the case when reordering of other columns will have to reorder a column whose reordable={false} is set.?

@kumarankit1234 ,

This will prevent a column from being reordered. But what will happen in the case when reordering of other columns will have to reorder a column whose reordable={false} is set.?

I think what should happen is that when you drag any other column over a not re-ordarable one, the cursor should change to disabled and drop event shouldn't fire.

@dmitriy-kudelko As discussed with @samrith-s For now if we are not allowing reOrderable props. For now we will prevent the reodering of the first column if it is a checkbox column. Later we will think of a better way to handle reordering of columns when one of them has reOrderable false.

Also

to drag the whole column rather than just the header

Not an important requirement for now. Will do this later.


[Ania-19] issue with unknown interaction by calling defer reply earlier

Trying to fix:

#27

Patch applied:

Now deferRely is called before trying to access the interaction attributes, it is called as early as it can to avoid the 3-second window to close.

Attempt failed


Observable.Interval not returning int - Unity

In UniRx we could do something like this which would give us the time of the interval
Observable.Interval(TimeSpan.FromSeconds(1))
                .Subscribe(time => Debug.Log("Time: " + time));

I'm doing exactly the same with R3 and the Interval returns a Unit, is this the expected behaviour?
Thanks !

You can use Interval().Index().

Great thanks! Couldn't find it in the docs :)

Great thanks! Couldn't find it in the docs :)

Ok great thanks ! It works but now I see a problem with the Timer. Maybe I'm wrong and I can't check right away how I did it with UniRx, but with this code I would expect to have a 5 seconds timer, with an OnNext every 1 second. But what is happening is that the 5 is a delay, and then it starts printing every 1 second.
       Observable.Timer(TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(1))                 .Index()                 .Subscribe(number => Debug.Log("timer" + number) );

Oh okok.
So probably I had an extension method for doing this, of  UniRx, because in my previous company we did this in a different way.
So yeah thanks and sorry for the misunderstanding


Remove the team(comment it out for now)

Remove team from the nav bar and the our team section (comment it out for now)

@Tejas-R-Pattar just remove the team from nav bar
solve all the issues assigned and make a single pr for it

Done


hasOwnProperty return type

Search Terms
hasOwnProperty

Suggestion
interface Object {
    hasOwnProperty<Key extends PropertyKey>(v: Key): this is this & Record<Key, unknown>;
}

Use Cases

To be able to use the property of an object after it has been tested for its existence.
Current behavior:
// Property 'testProp' does not exist on type 'object'.(2339)
obj.hasOwnProperty('testProp') && typeof arg.testProp === 'string'

Examples
https://www.typescriptlang.org/play?#code/JYOwLgpgTgZghgYwgAgPICMBWEFmQbwFgAoZM5AeguQGEB7AWwYnGToFc8wALYAZ2QAbUCjB1kfCCnTtggsAFpQydnzgBzCADoS5ZNzh9UAdxAAFKHQAO0MAE8APAGkId5BAAekEABMBF61s7FzsAPgAKADcALmQQgEpYnn5kFOSBADJkACUcOigfZ1cAGhUQAGsQOlNQgG4SAF8SEhh2EFxgOhBkSD4wcLgodVi2yuqQeIJdcmAYZHDm0j1yexs6OcH1ZABeXeQAcjosHDB96eXkDKzN5ABCPZB2QUFz5avkTa0DI1MAmyh7OF9r0wH99vFXnp3qsIOsPkMtCC-js9vs+lBQOp9pRqAA5fIMOCCdxQSxQWJ-IIHJGWKzYnx0CACKp4Tz8PBdHp2GwHI7YXD7LThABMAGZRQBOCHEV6TIhLC7GODgPgAZTAGJA6gGCJp1ni9QVyCaxBNLTaHU5IOFOuGZTGpjlr1m80WFzIMLhN12215xwFkPI7xu919j2egbI72BTNBtOxyk2kcuWU9G11seRPoO6Mx2KoyFVcGYJLJFNpVJjfTByAZTOQLPcHnZbG6ML9-NOQrFkulsqmRr0SpV6s12s+eqsBteJrNxFa7TAnW6w7Aao1mPC6Niua1cuQUAgYHYUG66NqxtqQA
Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

PS: if this can be 'fixed' for testProp' in obj that would be amazing too.

Duplicate of #18282.

if this can be 'fixed' for 'testProp' in obj that would be amazing too.

This is tracked by #21732.

Duplicate of #18282.

You say it's a duplicate, but it seems their example was a far inferior attempt?
None of the examples in #18282 would be as seamless as this is this & Record<Key, unknown>
Maybe due to 3 years ago when TS was not as mature.

@RyanCavanaugh https://github.com/microsoft/TypeScript/issues/41915#event-4096056014
What feedback still needs to be awaited?