Bump the C++ version from C++11 to C++17

This will allow the usage of more modern features in the future.

Hi Mirko!
Before last xmas I built ModSec with these flags:
CXXFLAGS=-std=c++20 -Wall -Wextra -Wconversion -Wshadow -Wpedantic -fsanitize=undefined,address
LDFLAGS=-fsanitize=undefined,address
It produced a huge amount of warnings. I read about secure coding and found, that one of the best practices is to fully utilize the language and the compiler provided features to enhance code clarity and security before using 3rd party static and dynamic analyzers.
I kindly ask what is your opinion not to stop at C++17 but bump it to C++20, and introduce more compiler and linker flags to promote higher level code quality?
My goal is not to use new language features as much as possible at all cost, but let the language and the compiler
help us write nicer, cleaner and more secure code.
References:
https://wiki.sei.cmu.edu/confluence/display/seccode/Top+10+Secure+Coding+Practices
https://learning.oreilly.com/library/view/c-coding-standards/0321113586/ch02.html
https://www.sonarsource.com/blog/modernizing-your-code-with-cpp20/

Hi @MirkoDziadzka, thanks for sent this patch.
I took a quick review on QA logs and compared them with a previous build results. Here are some details just FYI:

on MacOSX the autoconf has changed, but that produces some not relevant outputs

35c35
< ./7_build-macos (macos-12, clang, wo maxmind, --without-maxmin.txt: Warning: autoconf 2.71 is already installed and up-to-date.
---
> ./7_build-macos (macos-12, clang, wo maxmind, --without-maxmin.txt: Warning: autoconf 2.72 is already installed and up-to-date.
38,40c38,40
< ./7_build-macos (macos-12, clang, wo maxmind, --without-maxmin.txt: configure.ac:106: warning: The macro `AC_TRY_COMPILE' is obsolete.
< ./7_build-macos (macos-12, clang, wo maxmind, --without-maxmin.txt: configure.ac:129: warning: The macro `AC_TRY_LINK' is obsolete.
< ./7_build-macos (macos-12, clang, wo maxmind, --without-maxmin.txt: configure.ac:140: warning: The macro `AC_HEADER_STDC' is obsolete.
---
> ./7_build-macos (macos-12, clang, wo maxmind, --without-maxmin.txt: configure.ac:106: warning: The macro 'AC_TRY_COMPILE' is obsolete.
> ./7_build-macos (macos-12, clang, wo maxmind, --without-maxmin.txt: configure.ac:129: warning: The macro 'AC_TRY_LINK' is obsolete.
> ./7_build-macos (macos-12, clang, wo maxmind, --without-maxmin.txt: configure.ac:140: warning: The macro 'AC_HEADER_STDC' is obsolete.
42,44c42,44
< ./7_build-macos (macos-12, clang, wo maxmind, --without-maxmin.txt: configure.ac:106: warning: The macro `AC_TRY_COMPILE' is obsolete.
< ./7_build-macos (macos-12, clang, wo maxmind, --without-maxmin.txt: configure.ac:129: warning: The macro `AC_TRY_LINK' is obsolete.
< ./7_build-macos (macos-12, clang, wo maxmind, --without-maxmin.txt: configure.ac:140: warning: The macro `AC_HEADER_STDC' is obsolete.
---
> ./7_build-macos (macos-12, clang, wo maxmind, --without-maxmin.txt: configure.ac:106: warning: The macro 'AC_TRY_COMPILE' is obsolete.
> ./7_build-macos (macos-12, clang, wo maxmind, --without-maxmin.txt: configure.ac:129: warning: The macro 'AC_TRY_LINK' is obsolete.
> ./7_build-macos (macos-12, clang, wo maxmind, --without-maxmin.txt: configure.ac:140: warning: The macro 'AC_HEADER_STDC' is obsolete.

and there are some Yacc warnings:

50,51c50,52
< ./build-linux (ubuntu-22.04, x32, clang, with parser generation, --enable-parser-generation)/7_make.txt: /home/runner/work/ModSecurity/ModSecurity/src/parser/seclang-scanner.ll:924: warning, rule cannot be matched
< ./build-linux (ubuntu-22.04, x32, clang, with parser generation, --enable-parser-generation)/7_make.txt: /home/runner/work/ModSecurity/ModSecurity/src/parser/seclang-scanner.ll:1077: warning, rule cannot be matched
---
> ./build-linux (ubuntu-22.04, x32, clang, with parser generation, --enable-parser-generation)/7_make.txt: /home/runner/work/ModSecurity/ModSecurity/src/parser/seclang-parser.yy:4.1-42: warning: deprecated directive: ‘%define parser_class_name {seclang_parser}’, use ‘%define api.parser.class {seclang_parser}’ [-Wdeprecated]
> ./build-linux (ubuntu-22.04, x32, clang, with parser generation, --enable-parser-generation)/7_make.txt: /home/runner/work/ModSecurity/ModSecurity/src/parser/seclang-parser.yy: warning: 1272 shift/reduce conflicts [-Wconflicts-sr]
> ./build-linux (ubuntu-22.04, x32, clang, with parser generation, --enable-parser-generation)/7_make.txt: /home/runner/work/ModSecurity/ModSecurity/src/parser/seclang-parser.yy: warning: fix-its can be applied.  Rerun with option '--update'. [-Wother]

Perhaps this one is because of the changed of the flags, but I guess those are also not relevant. So it looks like there are no limiting factors to switch to C++17. Let us wait for some other opinions.

I kindly ask what is your opinion not to stop at C++17 but bump it to C++20, and introduce more compiler and linker flags to promote higher level code quality?

I'm all in to add all compiler warnings and static analyzer flags we can. But from experience, this is a slow process because you have to fix a lot on the way. But yes, it is the right way.
Regarding compiler version: We can bump it to C++20. 17 is a compromise where a lot of modern C++ is already there and what should be supported on all modern systems. 20 may be too young for some build environments. I don't really know. YMMV
This PR is more or less: I want to fix another problem, for performance reasons, I would prefer to have std::string_view and not only std::string and therefore I did open this PR.
Maybe we need to distinguish between the production build compiler version which dictates the language feature versions we can use and the dev compiler build which can used the  newest compiler and the best static analyzer tools.

Maybe we need to distinguish between the production build compiler version which dictates the language feature versions we can use and the dev compiler build which can used the newest compiler and the best static analyzer tools.

That's a great idea. I'll work that way. Thank you very much.


Not selectable periodic tasks

The periodic task selection field does not contain a selection function, so the task name must be entered manually?

when I comment
# @admin.register(PeriodicTask)
# class PeriodicTaskAdmin(ModelAdmin):
#     pass

a combobox appears in the task addition field

Yes, you are right. In #483 I updated documentation to actually inherit from existing admins.


HK18: Support ignore worlds

Simplified solution by the whole worlds can be ignored.

@AlexeyFilich pls review


Search editor results in ton of onDidChangeTab events

Testing #145585

Maybe its from the title? But I see no change 🤔

😱 for one, there is a event fired for a method called getModels:
https://github.com/microsoft/vscode/blob/4d4d10c0f746bad80464e557eff56d969ac88008/src/vs/workbench/contrib/searchEditor/browser/searchEditorInput.ts#L174
When I comment that out, I still get 2 events for dirty state changing.


Support Bootstrappable ModelType

Main Feature
No need to depend on extra model registry
-- before
CREATE MODEL ssd_model
MODEL_TYPE ssd
USING 'mlflow://ssd'

-- now
CREATE MODEL ssd_model FLAVOR pytorch MODEL_TYPE ssd

Just make your ModelType bootstrappable, and provide the bootstrap method to load the model.
+    def bootstrappable(self) -> bool:
+       return True
+
+    def bootstrap(self):
+        return torchvision.models.detection.fasterrcnn_resnet50_fpn()

Extra Bennefits
For model service (eg. AWS rekognition), we do not load a model, we just call the API and get the result.

We already have tfhub and tensorhub supports, this PR seems to be an even smaller corner case while adds extra complexity for the adoption, isn't it?
Loading pre-trained models does not benefit the majority of the end-users. It only benefits to the people who is developing the model types, IIUC?
Let's spend sometime to make users happy first?

We already have tfhub and tensorhub supports, this PR seems to be an even smaller corner case while adds extra complexity for the adoption, isn't it?

No.
All other registries could be implemented in BootstrapRegistry with bootstrappable=True and bootstrap provided. So it is not smaller corner case.

Loading pre-trained models does not benefit the majority of the end-users. It only benefits to the people who is developing the model types, IIUC?

It is for:

Developing the model type
Wrap model service in ModelType (for this service, there is no way to load the model)

AWS rekognition
easyocr https://github.com/darcy-shen/rikai-easyocr/wiki

I talked with some engineers in perception team yesterday, they care more about the flexibility of developing the models than running the models and the deployment. I even spent some time to persuade them to not write UDF by their own.  I think developing the model type is not a corner use case. e.g. we are going to customize the mmdetection model type to enable batch inference, meanwhile we don't want to bind with tfhub or mlflow too early.

For the second case
Wrap model service in ModelType (for this service, there is no way to load the model) AWS rekognition
You dont really need bootstrap a model in this case, isnt it?  You just need to initialize a boto client in the constructor, and skip implementing load_model.  ModelType.predict() can call the boto Client directly.
And for other models of which a concrete model is needed (i.e., pytorch,  tensorflow, sklearn). You can just offer a default model in the constructor or lazily initialize a model if model URL is not presented, without introducing new interface.
I'd lean to keep the interface as small as possible. The more interface we add, the less likely this project will be adopted easily by users later.
@ffcai

we are going to customize the mmdetection model type to enable batch inference, meanwhile we don't want to bind with tfhub or mlflow too early.

Curious, does your team expect each model always return a pre-trained / fixed model when developing a model type? Or do they need to run different trained models from the same architecture? if so, an extra identity other than ModelType is needed.

And for other models of which a concrete model is needed (i.e., pytorch, tensorflow, sklearn). You can just offer a default model in the constructor or lazily initialize a model if model URL is not presented, without introducing new interface.

ModelType which is bootstrappable can be used by all registries.

You can just offer a default model in the constructor or lazily initialize a model if model URL is not presented, without introducing new interface.

This new interface is really simple. Just add two methods.

I'd lean to keep the interface as small as possible. The more interface we add, the less likely this project will be adopted easily by users later.

The two extra interface is optional. For normal use case, we do not have to use it.

You dont really need bootstrap a model in this case, isnt it? You just need to initialize a boto client in the constructor, and skip implementing load_model. ModelType.predict() can call the boto Client directly.

How about just adding one extra interface?
def bootstrappable()

For BootstrapRegistry, we need at least one extra method to indicate whether a model is bootstrappable.
Because bootstrappable ModelType can be used by all Rikai registries. It is not a good idea to add a python class like BootstrapModelType and let all bootstrappable ModelType extend BootstrapModelType.

@eddyxu  What's your idea on the BootstrapRegistry?
If you do not accept adding new interface to ModelType, can we still implement BootstrapRegistry?
For example, we can put BootstrapRegistry in rikai.experimental. And if a ModelType is not bootstrappable, just let it crash.

I think i am still not convinced that why do we need bootstrappable interface as well as BootstrapRegistry?
I am not in favor of adding these concepts to address small use cases, while it is achievable by other means. I'd rather to have 1 simple way to do multiple cases instead each case has one collection of concepts.  Especially these interfaces are public facing (not just for Rikai developers).
Is this design for the case in #560 (Optional URI)?
If so, we can just handle this problem in load_model?
And with that, we dont need a model registry right? because URI does not exist at all?
Also is bootstrap a well-known term to ML engineers in the sense of get pre-trained model by default?

Is this design for the case in https://github.com/eto-ai/rikai/issues/560 (Optional URI)?

Yes.

If so, we can just handle this problem in load_model?

I think No. Could you describe in detail on how to handle this problem in load_model.
For example, with this PR, the only thing I need to change for fasterrcnn_resnet50_fpn is:
+    def bootstrappable(self) -> bool:
+       return True
+
+    def bootstrap(self):
+        return torchvision.models.detection.fasterrcnn_resnet50_fpn()

How to implement without applying this PR (using Rikai 0.1.4 or applying another better PR)?

And with that, we dont need a model registry right? because URI does not exist at all?

When URI does not exist at all, I think a dummy registry (BootstrapRegistry in this case) is needed.
With a dummy registry, we can make minimum changes to the current impl.

Also is bootstrap a well-known term to ML engineers in the sense of get pre-trained model by default?

Welcome to suggest a better name.

plan to use only one extra method pretrained in ModelType, closing this PR


Fixes to make test-utils to work in external apps

For #1423
Background

Fixes to get test-utils working in other apps, using deck.gl 5.1

Change List

Remove waitForFunction that was moved to probe.gl
Add timer to ensure puppet function is available.
Add temporary support for viewports to support 5.1

This breaks yarn.lock, making a fix now.

https://github.com/uber/deck.gl/pull/1509


Execute predefined favourite queries using hotkeys on a current connection

Is your feature request related to a problem? Please describe.
I'm always frustrated when I need to execute quickly my favourite query on a current database.
Suppose, I work 99% of time with different databases (dev, test, debug, prod) but they all have the same database structure (the same table names, procedures and functions...).
It means I can safely (without syntax errors due to schema differences between databases) execute the same predefined query on any of this databases.
I don't want to create a view for my favorite queries (don't want to store it in the database, it is not applicable for dev-server, for example, and other developers may don't want my views in the database).
I don't want to search for sql-scripts every time I need it, open it, or keep it in a list of tabs always (lots of unwanted actions, distraction of a attention, additional tabs opened).
I need more quick and handy way (i.e. hotkeys for my favourite queries).
Describe the solution you'd like
I suggest to add feature: query shotcuts
You can see how it works in SSMS and clone this feature in DBeaver.
Here is an explanation:
https://www.youtube.com/watch?v=hdOnmTTs6Ow
Many people use it in SSMS without selecting any text in editor (I mean you may not analyze currently selected statement if it looks very complicated or confuse you).
Most of people just want to execute their favorite queries easily (inspite of currently active text in text editor).
Another suggestion for this feature:
It would be great to have more hotkeys (in SSMS, for example, only ~10 hotkeys available, which was usually not enough for me).
If you don't know what hotkeys you can use, please consider some of these:
Ctrl + digit
Ctrl + Alt + digit
Ctrl + Shift + Alt + digit
or some other way to define more than ~10 hotkeys.

Thank you for idea


Fix the randomization of the left/right tapping

one nitpicky "what really constitutes random/does it really matter here" comment, otherwise cool


MAINT: Add ultraslow run

As discussed in the flash bem issues/PRs, it would be good to have a run that actually executes our ultraslow tests. This PR adds one to Azure.

This appears to be working:
https://dev.azure.com/mne-tools/mne-python/_build/results?buildId=6899&view=logs&j=bf0f2fcf-46b6-5ffd-e30e-4688aa34951e&t=f37d81b4-3e73-5034-37ae-dd1a020c26b3
I'll get the CircleCI refactor working, then we should be good


Hide .new.

I'm just wetting my feet, feel free to tear this apart.
I renamed new to <new> as this seemed to be the easiest way to make it inaccessible.
I modified the error printing functions to print just Class instead of Class.new. I had to add special cases which I don't like but the errors seem better (ex. putting code in class Example, doing Example() and seeing Example rather than Example.new).
I thought about other ways to do this, like making the function name NULL, but it seemed like a deeper change that didn't seem worth it.

I wish I had noticed this earlier before I pushed my changes just about now. But that's my fault. Anyway, some thoughts:
Hiding new through <new> is fine, though I was surprised at first. I expected function dynaload to have a fit over that.
I like your error message more, that it lacks a constructor. Much better than the implicit new.
The special cases are fine. I'm planning to have function values store the entire name in the future, and thus much of that will be solved.
The real question is about hiding the constructor itself. That's something I'm okay with, because I don't much care for explicit .new. I'd much rather have one way of solving this.
The only problem I can see with this is that I think it might show the new name if an exception is thrown within a constructor (I don't think I have a test for that right now).
class Example {
    raise ValueError("")
}

var v = Example()

I'd like to merge what you've done, but I need to fix the build (I have an idea that might work). Supposing that I can get the build working, I'll merge this in. In the meantime, I'll add a test for that (throwing during construction) before I forget.
So I'll see if I can get it merged either soon or tomorrow afternoon.

I rebased my branch. The test you added passes (after I removed ".new"), which is good.

Excellent. Thanks!


Map icons are not displaying on Safari macOS 12

They are working in Chrome. map properly identifies members in region but icons don't display on map
Reported by Geoff Fitch in Intercom https://app.intercom.com/a/apps/wwelodje/inbox/inbox/all/conversations/27244385045

Looks like it is still not displaying. Has this been released?

I released an attempted fix but it did not work. It’s very strange because the icons appear on safari locally in my dev environment so its very hard to test and figure out what the issue is.

On Dec 3, 2021, at 8:17 AM, geofffitch @.***> wrote:
Looks like it is still not displaying. Has this been released?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub https://github.com/Hylozoic/hylo-evo/issues/956#issuecomment-985648260, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAA5HL4GN3OAHVAXV7QTE3UPDUQDANCNFSM5GJVKBEA.
Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Tricky!
Geoff
On December 3, 2021 at 9:17:51 AM, Tibet Sprague @.***)
wrote:
I released an attempted fix but it did not work. It’s very strange because
the icons appear on safari locally in my dev environment so its very hard
to test and figure out what the issue is.

On Dec 3, 2021, at 8:17 AM, geofffitch @.***> wrote:
Looks like it is still not displaying. Has this been released?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub <
https://github.com/Hylozoic/hylo-evo/issues/956#issuecomment-985648260>, or
unsubscribe <
https://github.com/notifications/unsubscribe-auth/AAAA5HL4GN3OAHVAXV7QTE3UPDUQDANCNFSM5GJVKBEA
.
Triage notifications on the go with GitHub Mobile for iOS <
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android <
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Hylozoic/hylo-evo/issues/956#issuecomment-985691712,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABUCQ4TQSXFBE5PW3K6J5LTUPD3T7ANCNFSM5GJVKBEA
.

@geofffitch this should now be fixed! let me know from your side

the good news is that the icons are now showing. bad news I'm getting an error whenever zooming in or out - oops something went wrong. Deleted browser data and still happens.

Weird… can’t reproduce. What browser and what community?
Sent by m

On Dec 3, 2021, at 4:27 PM, geofffitch @.***> wrote:

the good news is that the icons are now showing. bad news I'm getting an error whenever zooming in or out - oops something went wrong. Deleted browser data and still happens.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

Building Hylo but then I navigated to another community and the issue went away altogether. Must have been something transient. looks good now.


code style

Codecov Report

Merging #131 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #131   +/-   ##
=======================================
  Coverage   21.44%   21.44%
=======================================
  Files          41       41
  Lines        3623     3623
=======================================
  Hits          777      777
  Misses       2808     2808
  Partials       38       38

Continue to review full report at Codecov.

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


"Crimson Specialist" and "Cobalt Leader" pilot abilities missing from EPT selection.

Crimson Leader seems to be the only pilot ability that made it in from the Resistance Bomber xpack.
http://xwing-miniatures.wikia.com/wiki/"Crimson_Specialist"
http://xwing-miniatures.wikia.com/wiki/"Cobalt_Leader"

This presumably just needs a rebuild with the latest version of https://github.com/guidokessels/xwing-data

Updated to latest xwing data which has added the latest upgrades


Calendar: Add menu to jump to settings

Add menu to fast open settings to edit holidays
Drop "B2 Colors" setting, use theme dark indicator instead
Display Widgets in menus

Looks good to me, but I'd be a bit concerned about removing the non-dithered colour stuff? That was put there at some point specifically because some folks complained about not being able to see the text properly against the dither pattern?

ok, I can re-add the color option. I just thought I spare the part to reload the color after settings change and folowing the theme to choose which color to use seemed for natural to me. Also text looks fine for one on the Bangle.js2 with dark theme.

Ok, thanks, I just tried this out though:

There's just no comparison - I can barely make anything out, and the numbers that aren't in the current month are pretty unreadable even on desktop. I think the B2 colours option needs to stay and be the default for Bangle.js 2.

Just so you know while testing I spotted a bug in the settings (which wouldn't open on a fresh install it seemed) so I've fixed that - but didn't bump the version of change the changelog so I think your changes should still merge in fine

ok, I've undone the change of the ndColors removal

Great - thanks!


@objc - objective c support

Please will you add the @objc attribute to provide objective c support

Thanks for suggestion. I will add this to a milestone asap.

@okhanokbay was this implemented or it's time I learn swift? 😄

I'm working on this: https://github.com/lorenzoPrimi/ExpyTableView/tree/support/obj-c

Hey @lorenzoPrimi, this isn't implemented but great to see you working on it, thanks :)

https://github.com/okhanokbay/ExpyTableView/pull/18


Extract the residue numbers of a patch

I am currently working with MaSIF-search and am looking for a way to extract the residual numbers of a patch to validate the results. Does anyone know if this is possible?

Hi @TobiasPol
Any luck? I would be interested in this as well.

Hey @celalp, not yet unfortunately. Do you have any idea for the solution or do you know if it is even possible?

I'm not so sure if we can with certanity, I have a tiny pdb that I've been using to understand the code in greater depth, seems like the reduction in the number of vertices from the original msms output happens during the fixmesh function. There is a whole bunch of joining and collapsing happening during that. This seems to remove the vertex information and create new vertices and faces and there is no tracking of what's going on not just in the code but also from the point of view of pymesh, (pymesh dont care).
There are couple of things I'm looking into now,

in compute_charges we use the 4 closest charges from the original vertices, this is done using the kdtree algorithm, seems a bit backwards in the sense that we had this information, we lost it and now we are approximating it because we actually need it. Now can we assume that the closest 4 vertices are the actual orginial vertices before fixmesh, I don't think so, not all the time (see below).

doing something similar to compute charges and getting the coords myself, this is however done in euclidean space not geodesic if I'm not mistaken so same issues above, There is also no guarantee that we will get the correct number, for charges it may not matter because it's a simplification.

I looked into if i can map some of the vertices from the original mesh, and the answer is kinda no again for the reasons for fixmexh.

There are some functions to get patches that are not used in the calculations but either are for pymol or for debugging/sanity checks, if we can get the coords of the patch we can get the closest atoms and therefore aas, but this is kinda the same things as 2 and is not exact also the number of vertices and faces in each of the old/new mesh are not the same, for visualization this does not matter, for figuring out the aa it might, i don't really know. Probably depends on how steep the curvature of the surface is. As long as geodesic is close to euclidean should be pretty much the same.

I think I'm going to go with 2 and just say hey, these are the closest ones, we are dealing with atom coordinates and Ca's of aas pretty far from one another and I'm hoping that it would be right or very close to right.
To clarify this needs to be done on the vertex coordinates before you convert them to polar, I'm thinking about writing couple of functions that does the above calculations and saves them in a class of sorts and for I/O think and hdf5 per protein/chain while a bit expensive might be the simplest to implement.
This is my interpretation of the code and considering the spare commenting dont take this as "legal advice" and if you have any ideas I would love to hear.
Honestly, all i want to do is compare protein surfaces at the moment, I just want to see if patch x from protein a is similar to patch y from protein b and then get the aas involved. When I first started I was so sure that I would find something simple enough but I guess coordinate and rotation invariance requirement makes it challenging.
I'm hesitant to use learned features because I will not be working with human/mouse/even animal proteins for this specific project.
Sorry for the wall of text and rant.

Thank you for your detailed answer! That helps me a lot. I would prefer to have an output containing the two comparative patches with the coordinates and the respective residue numbers. Something like this:

query
match
match_cen
match_patch
query_cen
query_patch

7mjr_A
7ml9_A_152
[-7.37 76.34 82.97]
{'34', '48', '47', '35', '49', '37', '36', '51'}
[ 9.6537145 95.1163015 74.047997 ]
{'504', '512', '518', '519', '520', '503', '516', '517', '506', '505'}

Unfortunately, I only have this table and not the code behind it. And as you say, the code is very poorly documented.

may I ask where you got this table?
I was thinking more along the lines of getting closest atom to each vertex on the processed mesh, then it's just a matter of a lookup for each vertex in each patch. I would love to have an actual truth set even for a handful of cases to test out the code.

@TobiasPol Ok, following the authors' lead, here is a small snippet that finds the n closest amino acids. If you can verify this using your data I would be grateful
from sklearn.neighbors import KDTree

def map_aas(old_verts, new_verts, names, num_inter):
    """
    old_verts: vertices from the initial mesh from compute MSMS
    new_verts: vertices from the output of fixmesh
    names: names1 from again compute MSMS
    num_inter: how closest aas to return

   returns an ndarray of new_verts rows and num_inter columns, the values indicate the aa number coming from computeMSMS output
    """
    kdt = KDTree(old_verts)
    dists, result = kdt.query(new_verts, k=num_inter)
    aas=np.array([int(name.split("_")[1]) for name in names])
    closest_aas=np.zeros_like(dists)
    for i in range(num_inter):
        closest_aas[:, i]=aas[result[:, i]]

    return closest_aas

I was having the same issue. Below is a script I wrote to map vertices (with a high probability of being a binding site) to nearby residues in the input structure. The script prints the mapped residues along with a PyMOL CLI command to select them.
'''
Requires biopandas to parse pdb file
pip install biopandas

Usage:

python map-highprob-vertices-to-residues.py \
    --job_name 1cz8_V \
    --data_preparation /path/to/masif_output/data_preparation \
    --output /path/to/masif_output/pred_output \
    --prob_thr 0.7 --radius 1.2

'''
import argparse
import numpy as np
from typing import List
from pathlib import Path
from pprint import pprint
from biopandas.pdb import PandasPdb

def match_atoms(target_coords: np.ndarray, query_coords: np.ndarray, radius: float) -> List[int]:
    """
    Find atoms that are within a radius from the high-prob vertices

    Args:
        target_coords(np.ndarray): shape (N, 3), coordinates of the vertices
        query_coords (np.ndarray): shape (N, 3), coordinates of the atoms
        radius (float)           : radius in Å cutoff to retrieve atoms close to vertices

    Returns:
        idx (List[int]): indices of the atoms IN THE QUERY_COORDS
            that are within a radius from the vertices
    """
    from scipy.spatial import cKDTree

    tree = cKDTree(query_coords)  # indexing the atom coordinates
    # get atoms that are within a radius from the vertices
    idx = tree.query_ball_point(target_coords, r=radius)
    # flatten the list of lists
    idx = [item for sublist in idx for item in sublist]
    # remove duplicates
    idx = list(set(idx))

    return idx

# input
def cli():
    parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter)
    parser.add_argument("--job_name", type=str, help="job name assigned to the inference run, e.g. 1cz8_V")
    parser.add_argument("--data_preparation", type=str, help="path to data_preparation folder")
    parser.add_argument("--output", type=str, help="path to the inference output folder")
    parser.add_argument("--prob_thr", type=float, default=0.7,
                        help="probability threshold to filter vertices")
    parser.add_argument("--radius", type=float, default=1.2,
                        help="radius in Å to retrieve atoms close to vertices")

    args = parser.parse_args()

    return args

if __name__ == "__main__":
    args = cli()
    job_name = args.job_name
    inp_path = Path(args.data_preparation)
    out_path = Path(args.output)

    # --------------------
    # file paths
    # --------------------
    # pred probabilities of each vertex being part of a binding site
    pred_fp = out_path.joinpath('all_feat_3l', 'pred_data', f'pred_{job_name}.npy')
    # input pdb file to masif-site
    in_pdb_fp = inp_path.joinpath('01-benchmark_pdbs', f'{job_name}.pdb')

    # --------------------
    # read pred files
    # --------------------
    # Load the predicted surface numpy file.
    # If running inside a container, this is located by default under `/masif/data/masif_site/output/all_feat_3l/pred_surfaces`
    # e.g. `/masif/data/masif_site/output/all_feat_3l/pred_surfaces/1cz8_V.npy`
    probs = np.load(pred_fp)

    # Load vertex coordinates from precomputed files
    # If running in the container, this is located under `/masif/data/masif_site/data_preparation/04a-precomputation_9A/precomputation/`
    # e.g. `/masif/data/masif_site/data_preparation/04a-precomputation_9A/precomputation/1cz8_V`
    # - `1cz8_V` is the job name I used for this example.
    precompute_folder = inp_path.joinpath('04a-precomputation_9A', 'precomputation', job_name)

    # We only need the coordinates, other features are not needed in this notebook
    p1_X = np.load(precompute_folder/'p1_X.npy')
    p1_Y = np.load(precompute_folder/'p1_Y.npy')
    p1_Z = np.load(precompute_folder/'p1_Z.npy')
    print(f'p1_X.shape:                {p1_X.shape}')
    print(f'p1_Y.shape:                {p1_Y.shape}')
    print(f'p1_Z.shape:                {p1_Z.shape}')

    # --------------------
    # map high prob vertices to
    # residues in the structure
    # --------------------
    # use biopandas to parse the pdb file
    pdb = PandasPdb().read_pdb(in_pdb_fp)

    # convert to dataframe
    atom_df = pdb.df['ATOM']
    # add node_id in the format of [chain_id]:[residue_name]:[residue_number]:[insertion]
    atom_df['node_id'] = atom_df['chain_id'] + ':' + atom_df['residue_name'] + ':' + atom_df['residue_number'].astype(str) + ':' + atom_df['insertion']
    # remove the tailing space and colon in the node_id if insertion is empty
    atom_df['node_id'] = atom_df['node_id'].str.replace(r':\s*$', '', regex=True)

    # --------------------
    # Find atoms close to the
    # predicted surface vertices
    # --------------------
    # params
    prob_thr = args.prob_thr  # prob thr to filter vertices
    radius = args.radius      # radius in Å to retrieve atoms close to vertices

    # get the coordinates of the vertices (shape N_vertices, 3)
    vertices_coords = np.concatenate([p1_X.reshape(-1, 1),
                                    p1_Y.reshape(-1, 1),
                                    p1_Z.reshape(-1, 1)], axis=1)

    # get vertex with the probability greater than a threshold e.g. 0.9
    _, idx = np.where(probs > prob_thr)

    # get the coordinates of the vertices with the probability greater than a threshold
    hp_coords = vertices_coords[idx]

    # atom coordinates from the pdb file
    atom_coords = atom_df.loc[:, ['x_coord', 'y_coord', 'z_coord']].to_numpy()

    # atom df row indices
    idx = match_atoms(hp_coords, atom_coords, radius)

    # pymol selection string
    resis = atom_df.iloc[idx].drop_duplicates(subset=['node_id']).node_id.map(lambda x: x.split(':')[-1]).unique()
    chain_id = atom_df.chain_id.values[0]
    sel_str = f'select pred, ///{chain_id}/{"+".join(resis)}'
    print('PyMOL selection string (copy paste it in PyMOL CLI):')
    print(sel_str)

    # print residues
    print('Residue IDs:')
    for i in atom_df.iloc[idx].sort_values('residue_number')['node_id'].to_list():
        print(i)

Output
PyMOL selection string (copy paste it in PyMOL CLI):
select pred, ///V/86+21+29+53+15+81+16+31+24+32+17+83+48+91+18+49+58+59+78+20+27+85+60+79

Residue IDs:
V:VAL:15
V:LYS:16
V:PHE:17
V:MET:18
V:VAL:20
V:TYR:21
V:SER:24
V:HIS:27
V:ILE:29
V:THR:31
V:LEU:32
V:LYS:48
V:PRO:49
V:PRO:53
V:GLY:58
V:GLY:59
V:CYS:60
V:MET:78
V:GLN:79
V:MET:81
V:ILE:83
V:PRO:85
V:HIS:86
V:ILE:91

@celalp and @biochunan thanks for your replies! I will take a look at it and verify the results.

Quick Update: There is a problem with the Python version. I see that Pymesh comes with Python 3.6.11, but I need at least 3.7. Does anyone happen to have a working Dockerfile?

Mine was directly pulled from Docker hub according to the tutorial (https://github.com/LPDI-EPFL/masif/blob/master/docker_tutorial.md). I had problems setting up local environment for the dependencies, so I changed to from inside the container instead and it works well for me.
docker pull pablogainza/masif:latest

@biochunan
It doesn't work with the Docker container either. I still get this error:
Traceback (most recent call last):   File "/home/ec2-user/masif_seed/masif/source//masif_site/map_highprob_vertices_to_residues.py", line 19, in <module>     from biopandas.pdb import PandasPdb   File "/usr/local/lib/python3.6/site-packages/biopandas/pdb/__init__.py", line 12, in <module>     from .pandas_pdb import PandasPdb   File "/usr/local/lib/python3.6/site-packages/biopandas/pdb/pandas_pdb.py", line 8     from __future__ import annotations     ^ SyntaxError: future feature annotations is not defined

Hi @TobiasPol, apologies that I misunderstood your last question.
This is indeed a Python version compatibility issue.
I was running my script outside the container. What I did was running the masif-site using the container and save its outputs to host directory via mounting using flag '-v'
e.g.
WD=$(pwd)         # working directory
pdbid="1a2y"      # pdb code, e.g. 1a2y for specifying the pdb file path
jobname="1a2y_C"  # pdb code with chain ID(s), e.g. 1a2y_C is the antigen chain

docker run --rm \
  -v ${WD}/:/dataset/ \
  -v ${WD}/masif_output/data_preparation:/masif/data/masif_site/data_preparation  \
  -v ${WD}/masif_output/pred_output:/masif/data/masif_site/output  \
  -w /masif/data/masif_site \
  pablogainza/masif \
  /masif/data/masif_site/data_prepare_one.sh  \
  --file /dataset/${pdbid}.pdb ${jobname}

I have attached an example for your reference. You just need to cd into the folder and run run.sh with a python environment compatible with biopandas etc. (I'm using Python 3.11.4 and biopandas==0.5.1.dev0)
example.tar.gz


[W6.6h][T15-B3] Dickson Chan

added a new use case "rename tag" to DeveloperGuide.md

@itsdickson
Some comments added. Please ack & close the PR after reading comments.


Changes to return key in edge finding

The edge finding algorithms currently only return the end nodes of the identified edge, meaning instances of multiple edges between two nodes are not accounted for. This change adds key returning as well to correct this.

Coverage remained the same at 92.586% when pulling 78e8e3e17dfe6ac7e6e4196ee92eaca942582bee on tomshaffner:add_key_return_in_edge_finding into 69f9ad4aea85f898b3dcd4f1399bd6f3350e3876 on gboeing:master.


Similar testcases while fuzzing platform bios

The fuzzing process for example 5.3 "Fuzzing a platform BIOS" started successfully:

I expected to see the bugs added in example after some time. I left the fuzzer running for a while and the logs are as follows:

The first thing that confused me is exec/sec: 0.000.
I tried to use different data in corpus, but specifically in this case I used 7 different bmp images. So the second thing that is confusing is that the fuzzer used only two input images (only 2 were created in the corpus) and then nothing happened over time

After that, I stopped the fuzzer and started it again (I did not delete those 2 pictures in the corpus). And in this case  exec/sec: is not 0.000

next, I repeated the previous iterations but at the logging level 4. I left only 7 test bmp images and run a fuzzer with a logging level 4. As you can see, testcases are the same

After that, I restarted the fuzzer (there are 2 additional images in the case from the previous start). In the following logs, you can see that the size of the testcases is different, but the data is the same:

And as a result, it is not possible to find the added bugs, the solutions folder is empty

I'm not sure if this is a bug, the fact that the testcase sizes are different necessarily means they are different -- the log just displays the first 32 bytes otherwise we'd be polluting the terminal. It also might explain why the bug might not be found, because it is only triggered by a strangely formed (usually small) BMP file.


"'ascii' codec can't decode byte 0xc3 in position 1: ordinal not in range(128)"

Hi,
when i run vim-autopep8 plugin on a python script that contains an non-ascii character, my whole file get replaced by a traceback error. When i directly run autopep8 -i myfile.py, it works flawlessly. Any idea where the bug comes from? Thanks a lot
Python script: (note the non-ascii character é that creates the bug)
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
#ééé

if __name__=="__main__":
    print ""

The file gets replaced by:
Traceback (most recent call last):
  File "/usr/bin/autopep8", line 9, in <module>
    load_entry_point('autopep8==0.9.1', 'console_scripts', 'autopep8')()
  File "/usr/lib/python2.7/dist-packages/autopep8.py", line 2309, in main
    options))
  File "/usr/lib/python2.7/dist-packages/autopep8.py", line 1849, in fix_string
    return fix_lines(sio.readlines(), options=options)
  File "/usr/lib/python2.7/dist-packages/autopep8.py", line 1854, in fix_lines
    tmp_source = ''.join(normalize_line_endings(source_lines))
  File "/usr/lib/python2.7/dist-packages/autopep8.py", line 1820, in normalize_line_endings
    newline = find_newline(lines)
  File "/usr/lib/python2.7/dist-packages/autopep8.py", line 955, in find_newline
    if s.endswith(CRLF):
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1: ordinal not in range(128)

@EloiZ  Sorry for my late reply.
In my environment I couldn't reproduce the error.
Please try the latest version autopep8.  Maybe The error was fixed.

I ran into this issue after upgrading from 1.0.6 to 1.1.1. Investigating …

@pseyfert  Please tell me the code that I can reproduce and your environment?

So my understanding is, this is due to the following change from 1.0.7 to 1.1.0:
In 1.0.7 the buffer gets written to a temporary file on which autopep8 is run.
In 1.0.1 autopep8 is used in the commandline mode, here (my version of)
autopep8 encounters encoding problems with non-ascii characters.
So apparently autopep8 handles input encoding differently in command line mode
and in file mode.
Reverting this in vim-autopep8 (at least the quick revert I did) will break the
support for ranges, though I suspect the affected autopep8 versions anyhow
don't support --range.
This is with autopep8 version 0.9.1 (python2). I tested with this
file
(We used 90 character line width, which autopep8 will wrap to 80 characters. I
think the © symbol in the second line is enough to trigger the encoding
failure.)

@psefert
I could check the error. If you update autopep8 to v1.3.4, no error will occur.
v0.9.1  is too old version. you should not use it.

Thanks for the quick feedback.
I agree upgrading autopep8 is reasonable, v0.9.1 just is the debian stable and I was wondering why things still worked with vim-autopep8 v1.0.7.
Anyway, I tried with autopep8 v1.3.4 and the error somewhat persists.
I could actually reproduce it outside of vim with:
cat libfulltext/bin/get_fulltext.py | autopep8 -

(and the same with cat libfulltext/bin/get_fulltext.py | python3 $(which autopep8) - )
Do you have some global config that sets the python/autopep8 encoding to utf-8? (I'm wondering why it works for you but not for me.)
Looking at https://github.com/hhatto/autopep8/issues/148 I was successful with
cat libfulltext/bin/get_fulltext.py | PYTHONIOENCODING=utf-8 autopep8 -

Given the out-of-vim reproducer, this is probably an autopep issue8, but I'm wondering if vim-autopep8 can/could/should call autopep8 like that with encoding.

c28fc9aa6e33290b5e166cf44103c81b8a6ec2b3 fixes the behavior for me in a debian:experimental docker container (python2, autopep8 1.3.4). With autopep8 0.9.1 on stable, the issue persists (PYTHONIOENCODING apparently ignored), but I'm out of ideas for the old autope8 version for now.

@pseyfert

Do you have some global config that sets the python/autopep8 encoding to utf-8?

No, I don't have any config for autopep 8.
Perhaps your locale setting is not right? Please show me your local information.
$ locale
$ export | grep PYTHONIOENCODING

I'm using this Dockerfile at the moment:
FROM debian:experimental
RUN apt-get update && apt-get -y upgrade && apt install -y git vim-autopep8
RUN git clone https://github.com/andrenarchy/libfulltext.git
CMD echo "locale:"; locale; echo "locale -a:"; locale -a; echo "environment:"; export | grep PYTHON; echo "autopep8:"; cat libfulltext/bin/get_fulltext.py  | autopep8 -

and get as output:
locale:
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
locale -a:
C
C.UTF-8
POSIX
environment:
autopep8:
Traceback (most recent call last):
  File "/usr/bin/autopep8", line 11, in <module>
    load_entry_point('autopep8==1.3.4', 'console_scripts', 'autopep8')()
  File "/usr/lib/python2.7/dist-packages/autopep8.py", line 3905, in main
    fix_code(sys.stdin.read(), args, encoding=encoding))
  File "/usr/lib/python2.7/dist-packages/autopep8.py", line 3093, in fix_code
    source = source.decode(encoding or get_encoding())
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 35: ordinal not in range(128)

i.e. PYTHONIOENCODING is not set, locales are set to POSIX. Turns out, setting LC_ALL=C.UTF-8 also fixes the error.


Readme reflects min macOS requirement of 10.11

Cheating and yolo-landing this so that I can cut and push 3.2 tonight

@rnystrom don't forget to pod trunk push

@jessesquires done!
Sent with GitHawk


Operation failed: 22:0 + 2, maximum offset value exceeded error while executing a transaction

Please see https://github.com/lambdaclass/cairo-rs/issues/1246 for details.
It seems that I'm unable to run this transaction with blockifier -- but it works just fine when using starknet-in-rust:
With blockifier:
2023-06-19T14:04:54.707323Z ERROR execute: pathfinder_rpc::cairo::blockifier: Transaction execution failed error=Transaction validation has failed. source=Error in the called contract (0x002c133a0c1b78b0b16cf787bfeeb6a8978ef26e9d97a993cc7ffce9d192a313):
Error at pc=0:4418:
Operation failed: 22:0 + 2, maximum offset value exceeded
Cairo traceback (most recent call last):
Unknown location (pc=0:1498)
Unknown location (pc=0:3561)
 transaction_hash=0x00AE9AE3059D3D85F2AE7F30EF703838C91BC7AC96B69B0606E05B41EB228946

vs starknet-in-rust:
2023-06-19T14:07:51.896777Z TRACE execute: pathfinder_rpc::cairo::starknet_rs: Transaction execution finished actual_fee=6237633823169988 transaction_hash=0x00AE9AE3059D3D85F2AE7F30EF703838C91BC7AC96B69B0606E05B41EB228946 block_number=82027

Maybe caused by https://github.com/lambdaclass/cairo-rs/pull/1218 ?


new horizons tornado bug + feature

What Happened?

[ ] stop tornadoes from affecting the player underwater, or under the base of the tornado (bug).
[ ] allow rafts created by nh to be affected by tornadoes.

correct me if im wrong, but im pretty sure the first point is just a feature of vanilla gd tornadoes


Better travis-ci testing, including for fedora and archlinux

Tests group tools in set which require more or less 30 minutes of testing. Because the free travis-ci plan only allows 200 tests of 50 mins max each, it is best to keep the amount of tests to a minimum. The total count is 19 right now, for 86 tools and 4 distributions

Thanks!


Constraint issue in Xcode 8 Beta 6

.../Pods/BWWalkthrough/Pod/Classes/BWWalkthroughViewController.swift:236:53: Cannot assign value of type '[NSLayoutConstraint]' to type 'NSArray?'
// EDIT //
Fixed by changing
private var lastViewConstraint:NSArray?
To:
private var lastViewConstraint:[NSLayoutConstraint]?

@xoniq thanks. Xcode 8 and Swift 3 are not yet supported. Working on a new branch that I'm going to upload soon.


download should include fields selected in preview

currently field selection in preview is not being passed to download (which contains all the fields)

Unnecessarily fiddly. The download will just contain all the fields.


add daprEnabled param to container-apps bicep

Allow to pass in daprEnabled field as a parameter in container-apps.bicep module.
Fix URI parsing in output in container-app.bicep file to only be done when ingressEnabled is true.

@wbreza please review this PR when you have time. The current code fails to deploy if ingressEnabled is set to false as it tries to get a fqdn for output which is actually not available.

/azp run azure-dev - repoman

Repoman Generation Results
Repoman pushed changes to remotes for the following projects:
Project: todo-csharp-cosmos-sql
Remote: azure-samples-staging
Branch: pr/2248
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-cosmos-sql -b pr/2248

View Changes | Compare Changes

Project: todo-csharp-sql-swa-func
Remote: azure-samples-staging
Branch: pr/2248
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-sql-swa-func -b pr/2248

View Changes | Compare Changes

Project: todo-csharp-sql
Remote: azure-samples-staging
Branch: pr/2248
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-sql -b pr/2248

View Changes | Compare Changes

Project: todo-java-mongo-aca
Remote: azure-samples-staging
Branch: pr/2248
You can initialize this project with:
azd init -t Azure-Samples/todo-java-mongo-aca -b pr/2248

View Changes | Compare Changes

Project: todo-java-mongo
Remote: azure-samples-staging
Branch: pr/2248
You can initialize this project with:
azd init -t Azure-Samples/todo-java-mongo -b pr/2248

View Changes | Compare Changes

Project: todo-nodejs-mongo-aca
Remote: azure-samples-staging
Branch: pr/2248
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-aca -b pr/2248

View Changes | Compare Changes

Project: todo-nodejs-mongo-aks
Remote: azure-samples-staging
Branch: pr/2248
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-aks -b pr/2248

View Changes | Compare Changes

Project: todo-nodejs-mongo-swa-func
Remote: azure-samples-staging
Branch: pr/2248
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-swa-func -b pr/2248

View Changes | Compare Changes

Project: todo-nodejs-mongo
Remote: azure-samples-staging
Branch: pr/2248
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo -b pr/2248

View Changes | Compare Changes

Project: todo-python-mongo-aca
Remote: azure-samples-staging
Branch: pr/2248
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-aca -b pr/2248

View Changes | Compare Changes

Project: todo-python-mongo-swa-func
Remote: azure-samples-staging
Branch: pr/2248
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-swa-func -b pr/2248

View Changes | Compare Changes

Project: todo-python-mongo
Remote: azure-samples-staging
Branch: pr/2248
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo -b pr/2248

View Changes | Compare Changes


Bump re2 version to 1.7.5

This version tries to fetch dependency from Github, if possible. It is a great help for developers in China, where Google is blocked.

Thanks @fenek !


fix #92 Break after the first equals result_value to avoid duplicates

fix #92

Current repository looks like not longer maintaned.
@gkorland can you make this PR (if you want) to this fork https://github.com/azoyan/jsonpath


Error: Inconsistent values passed to SimpleDistribution. NaN != NaN when adding '7'

I tried to analyze a replay and got this error:
Error: Inconsistent values passed to SimpleDistribution.
Coach-334115-d60930c4007f715fdb609c3a5665f7ad_2021-04-14_19_01_24.zip

This has been fixed.

This has been fixed.


Fix cache_key_for_products

The specs are overkill but I wanted to show a test and it gave me an excuse to work out some of the testing challenges before I try making more substantive changes.

Changes available in gem version 0.3.4


Unexpected events for single updateWorkspaceFolders operation

testing #42195:

workspace with 4 folders f1, f2, f3, f4
code that swaps f2 with f3 (but removes and adds f4 unnecessarily):const folders = vscode.workspace.workspaceFolders;
vscode.workspace.updateWorkspaceFolders(1, folders.length-1, folders[2], folders[1], folders[3]);

For this single operation I get these two events:
onDidChangeWorkspaceFolders: added: 0, removed: 3
onDidChangeWorkspaceFolders: added: 3, removed: 0
I would have expected to only receive a single event:
onDidChangeWorkspaceFolders: added: 2, removed: 2
(or even better a single changed event:
onDidChangeWorkspaceFolders: added: 0, removed: 0, changed: 2
)
Another case:
renaming a folder with this code:
        const folders = vscode.workspace.workspaceFolders;
        vscode.workspace.updateWorkspaceFolders(1, 1, { uri: folders[1].uri, name: folders[1].name + 'x' });

results in two events too.

I now see added 0 removed 0 for both examples. 👍


Port the physics to 3.1

With Godot 3.1 the system can go back at full speed for more features, but before adding more features it will pass through an update that will break compatibility, moving many of the KinematicBody2D.move_and_slide calls to KinematicBody2D.move_and_slide_and_snap

Closed in #48


Fix pandoc >=2.0 syntax

Newer versions of pandoc are incompatible with the current (old) arguments that hexo-renderer-pandoc is sending to pandoc, which causes errors such as:
--smart/-S has been removed.  Use +smart or -smart extension instead.
For example: pandoc -f markdown+smart -t markdown-smart.
Try pandoc --help for more information.
Error: pandoc document conversion failed with error 2

This PR tries to fix it by sending the new argument "-smart" instead .

Merged. Thanks!

but hexo failed. any solutions?
$ hexo clean
$ hexo generate
INFO  Start processing
FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
Error: pandoc exited with code 9: pandoc: Unknown extension: smart

    at ChildProcess.<anonymous> (/builds/sli1989/sli1989.gitlab.io/node_modules/hexo-renderer-pandoc/index.js:84:20)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:886:16)
    at Socket.<anonymous> (internal/child_process.js:342:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at Pipe._handle.close [as _onclose] (net.js:501:12)
ERROR: Job failed: exit code 1

@sli1989 Have you upgraded pandoc to 2.0?

oh, i used CI commands. do u know how to add versions.
before_script:
  - apt-get update -qq && apt-get install -y -qq pandoc

I doubt that your distribution apt source contains pandoc 2.0.
For older pandoc version, you can install an older version of hexo-renderer-pandoc via:
npm install --save<EMAIL_ADDRESS>

yeah, thanks. I know it.

hello, npm install<EMAIL_ADDRESS>--save works last time.
but today failed for
INFO  Start processing
FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
Error: pandoc: Duplicate note reference `1' "source" (line 502, column 1)

    at ChildProcess.<anonymous> (/builds/sli1989/sli1989.gitlab.io/node_modules/hexo-renderer-pandoc/index.js:84:20)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:886:16)
    at Socket.<anonymous> (internal/child_process.js:342:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at Pipe._handle.close [as _onclose] (net.js:501:12)
ERROR: Job failed: exit code 1

do u know what's going on?

@RichardYan314 I think  he just suggested to use -smart without testing extension. I think it's proper to add it back.


[paymentservice] Adds otel logging support

This PR adds otel instrumentation of the pino library to the payment service

Okay, similar thing as with the accounting service. Any recommendations on what to do?
@puckpuck

@puckpuck I've just reformatted the require statements as you requested. Could you take a look?

@puckpuck @austinlparker @julianocosta89 is there a library or a stable exporter for javascript that can be used to export logs to opentelemetry?

I spoke with @Kimbohlovette today and asked him to reach out to the otel-js team and check if the OTel logs are actually usable.
Whenever he gets a reply, he will either adjust this PR to properly export the logs, or close it as not implemented yet.

I answered on Slack as well, but for the record here: the OTel JS package @opentelemetry/instrumentation-pino does not yet support the logs bridge API for sending log records via OTLP. I intend to work on that, but haven't gotten to it yet. (FWIW, the other instrumentation JS logging framework instrumentations -- Bunyan and Winston -- have added logs bridge support recently.)

@julianocosta89 I've done discussed with trentm I will use bunyan to implement this. So work is in progress

@trentm @julianocosta89 I have replaced pino with bunyan and done the neccessary instrumentation.
I would like you to test and check if logs and coming to otel correctly. And I would also like to ask if checking these logs in opentelemetry is something that I can do locally before I push

@Kimbohlovette you can build this service locally and then start the demo locally.
Once everything is up and running, you can navigate to grafana:
localhost:8080/grafana and check if the logs are arriving in the demo chart.

@Kimbohlovette you can build this service locally and then start the demo locally. Once everything is up and running, you can navigate to grafana: localhost:8080/grafana and check if the logs are arriving in the demo chart.

Okay I am on it

@julianocosta89, I've updated the environment variables. I would like you to look at the instrumentation.
Aside from that I looked at the log api which is currently in experimental and it looks like something that can work fine if we we want to keep things simple

@julianocosta89, I've updated the environment variables. I would like you to look at the instrumentation. Aside from that I looked at the log api which is currently in experimental and it looks like something that can work fine if we we want to keep things simple

We would like to have OTLP logs, if it works we will definitely get it merged.

Okay

Please update your IDE settings to not modify the indentation and line wrap of code files. This will make reviewing the PR much easier.
I ran this branch, and did not see the traces or logs being emitted from the payment service. With a quicker look I noticed you added console exporters for both. I don't think you need any exporter, since the default should be OTLP, which is configured using environment variables.

Please update your IDE settings to not modify the indentation and line wrap of code files. This will make reviewing the PR much easier.
I ran this branch, and did not see the traces or logs being emitted from the payment service. With a quicker look I noticed you added console exporters for both. I don't think you need any exporter, since the default should be OTLP, which is configured using environment variables.

Alright, I've been finding out how to disable that auto formatting on vscode for some time now

Hello @pichlermarc, I have tried to use @opentelemetry/sdk-logs in this service to send logs to open telemetry, Unfortunately I can not see any logs emitted on grafana.
Please can you look at my code to see what is not right?

@trentm  I tried bunyan but no lock too

Hello @pichlermarc, I have tried to use @opentelemetry/sdk-logs in this service to send logs to open telemetry, Unfortunately I can not see any logs emitted on grafana. Please can you look at my code to see what is not right?

Looking at this PR's diff, it looks like there's no exporter configured other than the console log exporter. Are you using a different set of changes to export to grafana/loki? :thinking:

Hello @pichlermarc, I have tried to use @opentelemetry/sdk-logs in this service to send logs to open telemetry, Unfortunately I can not see any logs emitted on grafana. Please can you look at my code to see what is not right?

Looking at this PR's diff, it looks like there's no exporter configured other than the console log exporter. Are you using a different set of changes to export to grafana/loki? 🤔

I don't full understanding on how the logs gets to grafana dashboard but what I understand is that in this exercise open telemetry has already been configured to send logs to grafana (which is one of the servies in this app serving on 8080/grafana).
So the goal of this issue is get the app to send logs to open telemetry and then it will show on grafana under the current service

hi guys, is there any news on that? I also want to enable logging in the payment service.


Add Cloud Automation steps for AWS setup

Updates documentation with steps for creating Gen3 resources on AWS using Cloud Automation and Terraform.

Looks very thorough, and well presented. It's a bit unclear at times what the differences between staging, development, and production, are for the names of things.
It might be worth it to stay consistent with one naming convention so that somebody who doesn't know what they're looking at can recognize the consistent name. Or if the naming does change  for some reason briefly explain why.
Or if the naming doesn't matter because the same file/thing that is being named stays consistent across all 3 environments, that could be worth mentioning.
Might be worth it to link to some general AWS/kubectl/rancher/docker resources that you found useful/effective in another MD file if there are any that stand out to you.
https://brew.sh/

linking to homebrew at the top since some of the installations in the beginning require it.


FEAT add narx model

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (d4306c4) to head (cefff95).
Report is 13 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##              main       #23    +/-   ##
==========================================
  Coverage   100.00%   100.00%
==========================================
  Files            3         6     +3
  Lines          110       402   +292
==========================================
+ Hits           110       402   +292

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

🚨 Try these New Features:

Flaky Tests Detection - Detect and resolve failed and flaky tests


Fixed "from" and "to" in the "So, the example NetworkPolicy:" section.

Fixed "from" and "to" in the "So, the example NetworkPolicy:" section.

Page in question: https://kubernetes.io/docs/concepts/services-networking/network-policies/

/lgtm

/lgtm cancel
/close
The text is correct as written; the policy has "pods with role=db in namespace default" as its subject, therefore the ingress rules describe connections that are allowed to those pods, and the egress rules describe connections that are allowed from those pods.


Single card containing all contacts rather than individual cards

I would like to import into google contacts, however they require single file import.
Google contacts will accept 1 file with multiple cards inside.
Would this be easy to do?

I guess this is currently possible

Herefore I reference to https://github.com/jeroendesloovere/vcard/pull/101

Hi, does this feature is present now in the master branch?
Thanks


Add CW-2981

Appreciate this might need some refining and/or further discussion.
Wanted essentially to have a bare minimum example for the EIP-2981 spec implemented in CW-land. This is my attempt at that.
In essence, it's a very light wrapper/extension for CW721 compliant contracts that adds two additional query messages:

RoyaltyInfo to be called when selling an NFT, to find out what royalties are owed
CheckRoyalties to be called on the contract, to see if it implements CW-2981

There's an example contract implemented that adds royalty information at token mint time, although it is also possible to add that as contract metadata at instantiation time (that instantiation message format is in the package).
The main thing as I understand it here is basically the shape of the queries, that can be called when a marketplace sells an NFT. The actual implementation might differ on a per contract basis (the example contract here just does a straight percentage).

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thank you for submitting this and nice to see more NFT ideas ported to CosmWasm and shared.
I am a bit busy now, but it will get a review this week.

Cool! Like I say, anticipating it will need a bit more polish, but I'm at my desk this week so will keep an eye out for messages on this thread. Cheers!

Sorry not to get to this earlier.
A whole lot of NFT issues came up and I felt ill-equipped to deal with them.
I think it would be great if you could close this PR and open a new one with the same design on https://github.com/CosmWasm/cw-nfts That should get more comments and a faster feedback


Max websocket payload setting support

Kirino-san,
This PR gives basic support for maximum websocket payload setting with default to 1MB. I have noticed that the default setting of ws library has been set to 100MiB. It was quite risky (DoS risk) for nostr relay to accept big payload size.
Simple test case:
let relay = new WebSocket(relayUrl);
relay.on("open", async () => {
    const kindList = (()=>{
        let counter = 0;
        let result = [];
        let limit = 10000000;
        // limit = 1000;
        while (counter < limit) {
            result.push(counter);
            counter += 1;
        }
        return result;
    })();
    const message: any[] = ["REQ", "subid", { kinds: kindList, limit: 1 }];
    const message2 = kindList.join("");
    relay.send(JSON.stringify(message));
    relay.send(message2);
});

nostr-filter will reject and give proper error for big payload message:
{"msg":"DOWNSTREAM ERROR","ip":"::1","port":0,"socketId":"3231018c-63e4-4d4e-aa46-e4d09c13486a","connectionCountForIP":1,"error":{"code":"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"}}

What do you think?
Thank you.

It's greatest work!


Clarifying what it means to "run all tests against the state resulting from your production deployment script"

In the Scripts section of the Best Practices guide, it says the following:

Test your scripts.

Write your deploy script and scaffold tests by running that script. Then, run all tests against the state resulting from your production deployment script. This is a great way to gain confidence in a deploy script.

What does this mean, in practice? Deploy the contracts to a testnet, then run the fork tests against the contracts previously deployed?
Deploy to Anvil, then configure the --rpc-url to be localhost?
In both cases, it seems to me that one would have to write a shell script or some sort of script in package.json (if one has a Node.js set-up).

No anvil/testnet required, basically just trying to convey that you can run your deploy script in the setUp portion of your tests.
So say you have Deploy.s.sol where the public run method deploys your protocol's contracts. You can have your test contracts inherit from the deploy contract, execute it, then run all tests against that resulting state. You can see an example of this pattern here: https://github.com/ScopeLift/foundry-template/blob/34958eb169eaa5c29b05a16a7d4300c0a2ead167/test/Counter.t.sol#L8-L12

Oh, but of course 😅 Sorry, I must have had a bit of brain fog when I opened the issue.
Thanks also for sharing the example - all clear now.
I still think it would be worth it to add an explicit note about what it means to test deployment scripts in practice - I can open a PR if you agree.

I still think it would be worth it to add an explicit note about what it means to test deployment scripts in practice - I can open a PR if you agree.

Right below the item cited in the title we do have these warnings about testing scripts, which is related, but definitely open to more details around the cited item too

I have tried to implement this in my tests but it looks like broadcasting is not compatible with pranking:
FAIL. Reason: Setup failed: You have an active prank. Broadcasting and pranks are not compatible. Disable one or the other

Is there any way to work around this limitation of the cheatcodes? Maybe selectively disable the broadcasts based upon the value of an environment variable?
If there is a solution, I think that it would be worth documenting it in the Foundry Book.

That error means your script has  vm.startBroadcast call but no corresponding vm.stopBroadcast call before a vm.prank in a test. (Or a floating vm.broadcast that wasn't used). Perhaps you are missing a stopBroadcast call somewhere? If not, can you provide a snippet to reproduce?

I'm pretty sure that I had a vm.stopBroadcast well before the calls to the prank cheatcodes.
I will try to set up a reproducible example.

@mds1 I have tried running my deployer scripts again and I bumped into the same problem, though I have been able refactor my tests to fix this. Here are the full logs:
    ├─ [0] VM::startPrank(Admin: [0x4D1d902947361FA7c8e7B4905E877823f27331B3])
    │   └─ ← ()
    ├─ [0] VM::envOr(FOUNDRY_PROFILE, )
    │   └─ ← <env var value>
    ├─ [768] DeployComptroller::run(Admin: [0x4D1d902947361FA7c8e7B4905E877823f27331B3])
    │   ├─ [0] VM::startBroadcast(0x0000000000000000000000000000000000000000)
    │   │   └─ ← "You have an active prank. Broadcasting and pranks are not compatible. Disable one or the other"
    │   └─ ← "You have an active prank. Broadcasting and pranks are not compatible. Disable one or the other"
    └─ ← "You have an active prank. Broadcasting and pranks are not compatible. Disable one or the other"

As you can see, the issue was that I had a startPrank cheatcode before startBroadcast. So cheats don't play nicely with broadcasts - it doesn't matter if the broadcast is stopped shortly after it is started if there is already an active prank before the start.

That makes sense. Though I'm not sure I follow what you're doing, i.e. why do you have a prank before a broadcast? (I assumed you had the opposite, but yes regardless you can't have both active). The flow this is trying to convey would be something like this:
// File: Deploy.s.sol
contract Deploy is Script {
  MyContract myContract;

  function run() public {
    vm.startBroadcast();
    // All deploy stuff here.
    myContract = new MyContract();
    vm.stopBroadcast();
  }
}

// File: MyContract.t.sol
contract MyContractTest is Test, Deploy {
  function setUp() public {
    // Run the deploy script.
    Deploy.run();
    // At this point, the deploy script + broadcast ended, so pranks are safe.
  }
}

What I was doing - that prank was a leftover from my previous test deployment flows. It just remained there. After removing it, I was able to use the scripts in my tests, too.
Sorry for the back-and-forth, and thanks for sharing that example code snippet. All clear now.


Image Carousel

What is the change?
Added an Image Carousel
Related issue?
closes: #60
How was it tested?
Tested it on live server.
Checklist:
Before you create this PR, confirm all the requirements listed below by checking the checkboxes [x]:

[x] Have you followed the Contribution Guidelineswhile contributing.
[x] Have you checked there aren't other open Pull Requests for the same update/change?
[x] Have you made corresponding changes to the documentation?
[x] Have you tested the code before submission?
[x] Have you formatted your code ? (You can use any html,css beautifier)
[x] My changes generates no new warnings.
[x] I'm Hacktoberfest'21 contributor.
[x] I have commented my code, particularly in hard-to-understand areas.

GIF/video of the working of component you created:
https://res.cloudinary.com/rohitkk432/image/upload/v1633155347/image-carousel_sjkjcu.gif

Link pr to the issue !

Just resolve conflicts

Resolve conflicts


Errors when train hmdb51

I have runned MPI_PREFIX=/usr/local/openmpi/ bash build_all.sh MPI_ON
When I run bash scripts/train_tsn.sh hmdb51 rgb, These errors have occurred：

It looks like MPI_INIT failed for some reason; your parallel process is
likely to abort.  There are many reasons that a parallel process can
fail during MPI_INIT; some of which are due to configuration or environment
problems.  This failure appears to be an internal failure; here's some
additional information (which may only be relevant to an Open MPI
developer):
ompi_mpi_init: ompi_rte_init failed
--> Returned "(null)" (-43) instead of "Success" (0)
*** An error occurred in MPI_Init_thread
*** on a NULL communicator
*** MPI_ERRORS_ARE_FATAL (processes in this communicator will now abort,
***    and potentially your MPI job)
[sugon-W580-G20:11455] Local abort before MPI_INIT completed completed successfully, but am not able to aggregate error messages, and not able to guarantee that all other processes were killed!
It looks like MPI_INIT failed for some reason; your parallel process is
likely to abort.  There are many reasons that a parallel process can
fail during MPI_INIT; some of which are due to configuration or environment
problems.  This failure appears to be an internal failure; here's some
additional information (which may only be relevant to an Open MPI
developer):
ompi_mpi_init: ompi_rte_init failed
--> Returned "(null)" (-43) instead of "Success" (0)
*** An error occurred in MPI_Init_thread
*** on a NULL communicator
*** MPI_ERRORS_ARE_FATAL (processes in this communicator will now abort,
***    and potentially your MPI job)
[sugon-W580-G20:11456] Local abort before MPI_INIT completed completed successfully, but am not able to aggregate error messages, and not able to guarantee that all other processes were killed!
Primary job  terminated normally, but 1 process returned
a non-zero exit code.. Per user-direction, the job has been aborted.

mpirun detected that one or more processes exited with non-zero status, thus causing
the job to be terminated. The first process to do so was:
Process name: [[54352,1],0]
Exit code:    1

Check your runtime MPI version and the compile time version. Seems there is some mismatch.

Closing this. Please feel free to reopen it if you meet any further problem.


MSID: 92632 Version: 2 DOI: 10.21203/rs.3.rs-1308149/v3

MSID: 92632
Version: 2
Preprint DOI: https://doi.org/10.21203/rs.3.rs-1308149/v3
Step 1. Awaiting reviews
Editorial to post reviews via hypothesis
Useful links:

DocMap: https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=92632
New model tracking: https://docs.google.com/spreadsheets/d/1_fHaoOy7hjyocptKtVJRijeNpUY4hBS7Ck_aVmx6ZJk/
Reviews on sciety: https://sciety.org/articles/activity/10.21203/rs.3.rs-1308149/v3

For trouble shooting (e.g. no Docmaps available):

DocMap issue addressing: https://miro.com/app/board/uXjVNCwK6EI=/
Explore DataHub DocMaps API: https://lookerstudio.google.com/reporting/4c2f0368-babb-4beb-b5b3-497e7e7b0f08/page/ejphD
Unmatched submissions and preprints: https://lookerstudio.google.com/u/0/reporting/9f86204f-3bf7-477c-9b18-5c5ef141bf69/page/p_gxi57ha93c
Unmatched manuscripts spreadsheet: https://docs.google.com/spreadsheets/d/15QcK8w-ssB7109RQEDtFpJPZ0J5HTGxoHa_2TtpMBbg/edit#gid=1336081641

Step 2. Preview reviewed preprint
Production QC content ahead of publication
Instructions:

QC preview: https://prod--epp.elifesciences.org/previews/92632v2
Update ticket with any problems (add blocked label)
When QC OK, add QC OK label to ticket and add publication date and time to https://docs.google.com/spreadsheets/d/1amAlKvdLcaDp5W8Z8g77NmkwbMF5n_u89ArSqPMO8jg
Move card to next column
(At end of the day post link in #enhanced-preprint and ask for PDF to be generated)

Useful links:

Preprint DOI :  https://doi.org/10.21203/rs.3.rs-1308149/v3
Confirm reviews returned by EPP: https://prod--epp.elifesciences.org/api/reviewed-preprints/92632/v2/reviews
To update the MECA path in the docmap: https://docs.google.com/spreadsheets/d/1mctCQuNFBjSn97Lihy7_vBO6z7-N-oqyLv4clyi6zHg

Step 3: Awaiting search reindex
This step adds the reviewed preprint to the homepage: https://elifesciences.org
The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.
Useful links:

Jenkins pipeline to reindex search can be triggered sooner or monitored here: https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 4: Published! PDF requested
Waiting for PDF to be generated
Useful links:

PDF tracking: https://docs.google.com/spreadsheets/d/106_XeDjmuBae7gexOTNzg60lapeqjl2aRn9DzupGyS8/

Step 5: Introduce PDF to data folder and git repo
Upload PDF to relevent folder in git repo https://github.com/elifesciences/enhanced-preprints-data/
Step 6: Done!

[ ] Kettle is on!

warn: [ref-comment-1] Reference (with id=R1) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R2) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R3) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R4) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R5) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R6) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R7) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R8) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R9) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R10) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R11) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R12) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R13) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R14) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R15) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R16) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R18) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R19) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R20) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R21) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R22) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R23) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R24) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R25) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R26) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R27) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R28) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R29) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R30) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R31) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R32) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R33) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R34) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R35) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R36) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R37) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R38) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R39) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R40) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R41) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R42) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R43) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R44) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R45) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R46) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R47) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R48) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R49) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R50) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R51) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R52) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R53) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R54) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R55) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R56) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R57) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R58) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R59) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R60) contains a comment element. Is this correct? DOI: https://doi.org/
warn: [ref-comment-1] Reference (with id=R61) contains a comment element. Is this correct? DOI: https://doi.org/
error: [media-test-12] Media element cannot contain text. This one has
.
error: [media-test-13] Media element cannot contain child elements. This one has the following element(s) label; caption.
error: [media-test-12] Media element cannot contain text. This one has
.
error: [media-test-13] Media element cannot contain child elements. This one has the following element(s) label; caption.
error: [media-test-12] Media element cannot contain text. This one has
.
error: [media-test-13] Media element cannot contain child elements. This one has the following element(s) label; caption.
error: [media-test-12] Media element cannot contain text. This one has
.
error: [media-test-13] Media element cannot contain child elements. This one has the following element(s) label; caption.
error: [media-test-12] Media element cannot contain text. This one has
.
error: [media-test-13] Media element cannot contain child elements. This one has the following element(s) label; caption.
error: [media-test-12] Media element cannot contain text. This one has
.
error: [media-test-13] Media element cannot contain child elements. This one has the following element(s) label; caption.
error: [media-test-12] Media element cannot contain text. This one has
.
error: [media-test-13] Media element cannot contain child elements. This one has the following element(s) label; caption.
error: [media-test-12] Media element cannot contain text. This one has
.
error: [media-test-13] Media element cannot contain child elements. This one has the following element(s) label; caption.
error: [media-test-12] Media element cannot contain text. This one has
.
error: [media-test-13] Media element cannot contain child elements. This one has the following element(s) label; caption.
error: [media-test-12] Media element cannot contain text. This one has
.
error: [media-test-13] Media element cannot contain child elements. This one has the following element(s) label; caption.


docs: fix typos and description

docs(typo): Fix TDP => TCP
docs(acm): Fix title of ACM certificates expiration control

Checklist

[ ] Issue(s) linked

Thanks @pdecat for the fixes! We'll release this in our next version most likely sometime next week.


PCB error - wrong pinout on motor connectors

According to documentation, Faulhaber 1717T006IE16 connector have following pinout:
6 4 2
5 3 1
where:
1 - motor -
2 - motor +
3 - GND
4 - VCC
5 - Encoder B
6 - Encoder A
On the board connector is:
5 3 1
6 4 2
Pins 5-6 and 1-2 can be inverted but inverting 3-4 causes providing negative voltage to the board.

Left motor connector still with wrong pinout


Summaries break reference-style Markdown links

Because  handling is done on the raw Markdown document, this breaks:
[Foo][foo]

[foo]: http://foo.example

The reference gets split off from the content when the summary is rendered, leaving the links rendering literally.
While it's far from a satisfying fix, this works:
--- components/content/src/page.rs
+++ components/content/src/page.rs
@@ -191,13 +191,8 @@ impl Page {
         ).chain_err(|| format!("Failed to render content of {}", self.file.path.display()))?;
         self.content = res.0;
         self.toc = res.1;
-        if self.raw_content.contains("") {
-            self.summary = Some({
-                let summary = self.raw_content.splitn(2, "").collect::<Vec<&str>>()[0];
-                render_content(summary, &context)
-                    .chain_err(|| format!("Failed to render content of {}", self.file.path.display()))?.0
-            })
-        }
+        self.summary = self.content.find("

")
+                                   .map(|pos| self.content[0..pos].to_owned());

         Ok(())
     }

What would be a satisfying fix for you? Looking at it, I don't see a much better solution than your patch

Pushing it into rendering seems more appropriate, seeing as it's basically all about how raw content is parsed and depends on how it's rendered.

As an aside, most of the Owned() bits in the Markdown parser should really be Borrowed().  e.g. Owned(String::new()) → Borrowed("").


replace deprecated oauth2client.tools.run() with run_flow().

If you use a newer oauth2client the current import for run will fail it is now run_flow

Duplicate of #229 and #211

The other issues are all closed and the current master uses still the old version. Why closing when a fix is not applied yet?

#165 is tracking the fix.  Sorry for not specifying that.


Template loading

With the new invenio-search changes regarding template loading, the template directory name must change to match the version of Elasticsearch.
e.g. path/templates/v2 or path/templates/v5

Closed via #46


Mangle exported symbols

For #180461
This prototype tries to mangle exported functions, constants, and classes
Seems like only minimal code changes are needed to get it working, although I need to test this further to make sure nothing is breaking
Current total savings: 1910kb
New total savings: 4150kb

Also explored mangling for top level exported constants. With the prototype, that would bring the total size savings up to: 2760kb (this includes the private prop mangling we already ship)
For now I skip mangling constants that shadow types, such as ISomethingService. For mangling those, we would need to also rename the interface

Runs ok locally but full builds are currently broken. I've identified two issues so far:

Untracked references to symbols from js files, such as https://github.com/microsoft/vscode/blob/0d7880a9aa751e5f36d516d713f259b09ebd654a/src/bootstrap-amd.js#L58
These don't get picked up by our mangling script so they keep using the original unmangled names. For now, I'm just adding @skipMangle to symbols used this way

localize
At runtime, vs/nls returns the shape of the localize API: https://github.com/microsoft/vscode/blob/0d7880a9aa751e5f36d516d713f259b09ebd654a/src/vs/nls.ts#L175. The returned module needs to use the mangled names, not the original names
Also temporary skipping mangling for localize until we can figure out how to handle this

Closing in favor of  https://github.com/microsoft/vscode/pull/182933 which moves to a branch in our main repo instead (so we can create full builds for testing)


health status now has its own type and it isn't being exported

Here we go. The corresponding issue discussing this topic can be found at https://github.com/dimiro1/health/issues/6

We decided to not export the status member on the Health struct, thats ok. I do not see a reason to make the status its own type. We could keep it as string and avoid this String() method. To finish I prefer not export the status constants, because it makes no sense outside the health package. What do you think?
const (
	up           = "UP"
	down         = "DOWN"
	outOfService = "OUT_OF_SERVICE"
	unknown      = "UNKNOWN"
)

type Health struct {
	status string
	Info   map[string]interface{}
}

func (h Health) MarshalJSON() ([]byte, error) {
	data := map[string]interface{}{}
	data["status"] = h.status

	for k, v := range h.Info {
		data[k] = v
	}

	return json.Marshal(data)
}

func (h Health) IsUnknown() bool {
	return h.status == unknown
}

fair enough. The String() method is a caveat. BUT: we still can make it its own type and lose the String method, when we just make the custom type a string instead of an int. let me update this pr to show you, how I would implement it. Just a sec.

OK, here we go. This is how I would build it with string instead of int.
Just a note: as you do not export the status anymore, the tests checking the actual status are kind of shady, as they now check an implementation detail instead of the public API.

One additional note, just to stress why I think it is good to have a type for the status: this way, it is impossible to accidentally assign a value that cannot be interpreted. So no "UNKOWN" or "DWON" status possible ;) (yeah.. been there)

Thank you @bestform. It looks very good to me.


artist explorer not working when searching with artist name

curl 'https://artist-explorer.glitch.me/spotify/search?limit=50&market=US&q=nancy+*&type=artist' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0' -H 'Accept: /' -H 'Accept-Language: en-US,en;q=0.5' --compressed -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' -H 'Referer: https://artist-explorer.glitch.me/' -H 'Cookie: _ga=GA1.3.1305526916.1591360844; _gid=GA1.3.2016024663.1594916955' -H 'TE: Trailers'
It makes a request to the above endpoint but the request never returns.

Works for me. Is this still an issue @agiratech-vigneshm ?

Interestingly, some months later, this has stopped working for me and I see the same kind of behaviour as OP.


You have hit the max amount of enchantments an item can have.

I have my permissions + config all set up, and non op players can't use the enchantments ? help
Permissions: https://pastebin.com/5g5W2aNp

It's because you didn't finish the limit perm. It is crazyenchantments.limit.# and change the # to the max.

Thank you! that worked

Np


[CT-1059] Support the location option to create schema

resolves #273

Description
Support the location options when creating a dataset
Checklist

[x] I have signed the CLA
[x] I have run this code in development and it appears to resolve the stated issue
[x] This PR includes tests, or tests are not required/relevant for this PR
[x] I have run changie new to create a changelog entry

Closing as discussed in the related issue.


Audio player not showing in the emulate ios

Ionic plugin list
cordova-plugin-compat 1.0.0 "Compat"
cordova-plugin-file 4.2.0 "File"
cordova-plugin-media 2.3.0 "Media"
cordova-plugin-whitelist 1.2.2 "Whitelist"
Downloaded the ion-audio script file to lib and added to the index file

Code snippet in the controller
app.controller('liveaudioCtrl', function($scope){
//console.log('liveaudio controller called ...');
$scope.myTrack = {
url: 'audio/less-happy-0x26p.mp3',
artist: 'Manasutho',
title: 'Manasutho',
art: 'img/ve_logo_90x90.png'
}
directive in the html file
<ion-audio-track track="myTrack">
Anything I missed adding to my code? Why player is not showing up in ios or andriod?
When launch in the browser, I see below error. But this is already mention in the document and know issue.
ionic-audio: missing Cordova Media plugin. Have you installed the plugin?
Run 'ionic plugin add cordova-plugin-media'
ionic.bundle.js:26794 TypeError: Cannot read property 'stop' of null
at ion-audio.js:316
at Scope.$digest (ionic.bundle.js:30239)
at Scope.$apply (ionic.bundle.js:30503)
at HTMLBodyElement. (ionic.bundle.js:26543)
at defaultHandlerWrapper (ionic.bundle.js:16787)
at HTMLBodyElement.eventHandler (ionic.bundle.js:16775)
at triggerMouseEvent (ionic.bundle.js:2953)
at tapClick (ionic.bundle.js:2942)
at HTMLDocument.tapMouseUp (ionic.bundle.js:3018)(anonymous function) @ ionic.bundle.js:26794

Have you tried running the sample project inside the module?

Inactive issue? Can we close this?
Otherwise:
Hi, I'm not the repository owner but I'm trying to help out as I need to use this package too so I'm doing my best to iron out the remaining issues. I've started to check out the opened issues. There are lots of doubles without any examples whatsoever. I'd like to do some clean up, so first I need to make sure the opened issues are legitimate.
Please make sure to follow these simple guidelines in the future:

Use the GitHub issue search — check if the issue has already been reported. Check if the issue has been fixed.

If none is found, create a new issue by describing your problem, providing example of the boggus code and also make sure to write it with proper syntax and syntax. Re-read your issue twice or more to make sure it will makes sense to the repository owner. He might not even reply if he doesn't understand what's the problem.

A good bug report shouldn't leave others needing to chase you up for more information. Please try to be as detailed as possible in your report. What is your environment? What steps will reproduce the issue? What browser(s) and OS experience the problem? What would you expect to be the outcome? All these details will help people to fix any potential bugs.
Example:

Short and descriptive example bug report title
A summary of the issue and the browser/OS environment in which it occurs. If suitable, include the steps required to reproduce the bug.
This is the first step
This is the second step
Further steps, etc.
 - a link to the reduced test case
Any other information you want to share that is relevant to the issue being reported. This might include the lines of code that you have identified as causing the bug, and potential solutions (and your opinions on their merits).

Once a proper issue description is provided, we will be way more prepared to help you out. Thanks a lot and have a nice day.