Don't understand

Hello 😊
In the monocon_heads.py--->in the _get_predictions method：the center2kpt_offset_pred head make the 64 channels of the backbone network output into 18 channels :  8 corner points and center point in the 3D bbox  project to the 2D , the offset of these 9 points with 2D bbox center point，right?
And  the kpt_heatmap_offset_head make the 64 channels of the backbone network output into 2 channels，But here we have 9 keypoints right? Don't understand

Hello 😊 In the monocon_heads.py--->in the _get_predictions method：the center2kpt_offset_pred head make the 64 channels of the backbone network output into 18 channels : 8 corner points and center point in the 3D bbox project to the 2D , the offset of these 9 points with 2D bbox center point，right? And the kpt_heatmap_offset_head make the 64 channels of the backbone network output into 2 channels，But here we have 9 keypoints right? Don't understand

I just mess up these 2 head's output channels's means😵

Hello.
Suppose that you have an image with width and height of 1248 and 384, respectively, and let's say you have a single ground truth keypoint at coordinate (1205, 374). As this image passes through the Backbone and Neck, the width and height will be reduced by 4 times, so that the width and height will be changed to 312 and 96 respectively.
However, a single ground truth keypoint at coordinate (1205, 374) changes to (301.25, 93.5) when divided by 4, which is not correct. Because coordinates cannot be decimal. Therefore, as it is changed to a close integer, an error occurs on the x and y axes, respectively, and this offset is learned from the model.
From the above, all predicted keypoints each have their own offset (error).  Since this error is a value along the x and y axes, it is 2 values, and since we have 9 keypoints, there is a total of 18-dimensional data.
You can see how this offset is generated in utils/target_generator/TargetGenerator.
target['kpt_heatmap_offset_target'][b_idx, o_idx, (k_idx * 2)] = (kptx - kptx_int)
target['kpt_heatmap_offset_target'][b_idx, o_idx, (k_idx * 2) + 1] = (kpty - kpty_int)

Hello.
Suppose that you have an image with width and height of 1248 and 384, respectively, and let's say you have a single ground truth keypoint at coordinate (1205, 374). As this image passes through the Backbone and Neck, the width and height will be reduced by 4 times, so that the width and height will be changed to 312 and 96 respectively.
However, a single ground truth keypoint at coordinate (1205, 374) changes to (301.25, 93.5) when divided by 4, which is not correct. Because coordinates cannot be decimal. Therefore, as it is changed to a close integer, an error (Quantization Residual) occurs on the x and y axes, respectively, and this offset is learned from the model.
From the above, all predicted keypoints each have their own offset (error). Since this error is a value along the x and y axes, it is 2 values, and since we have 9 keypoints, there is a total of 18-dimensional data.
You can see how the target of this offset is generated in utils/target_generator/TargetGenerator.
target['kpt_heatmap_offset_target'][b_idx, o_idx, (k_idx * 2)] = (kptx - kptx_int)
target['kpt_heatmap_offset_target'][b_idx, o_idx, (k_idx * 2) + 1] = (kpty - kpty_int)

the 18 channels is the kps own's Downsampling error right?
the head's name misslead me😂

Yes, that's right. 😊
If there are keypoints (k1, k2, k3, ..., k9) and the error of each keypoint is (x, y), the 18 channels you mentioned are made up of (x1, y1, x2, y2, ..., x9, y9).

kpt_heatmap_offset_pred = self.kpt_heatmap_offset_head(feat)  # 8,64,96,312--->8,2,96,312
So this head pred (3D center project to 2D，2D bbox center) offset right?

Could you please elaborate a little more on what you mean by "(3D center project to 2D, 2D bbox center)"?

Could you please elaborate a little more on what you mean by "(3D center project to 2D, 2D bbox center)"?

So，how can we get 3D center?
decomposed to the projected 3D center in the image plane (xc, yc) and the object depth z and we have camera intrinsic matrix
then we can get  3D center right?
So，how can we get the projected 3D center in the image plane (xc, yc)?
decompose into the center of 2D bounding box (xb, yb) and an offset right? This offset is my mentioned：(3D center project to 2D，2D bbox center) offset

Oh, I see what you mean. 😊
But, I have an urgent job right now, so if you don't mind me, is it okay if I give you an answer tomorrow?

Oh, I see what you mean. 😊 But, I have an urgent job right now, so if you don't mind me, is it okay if I give you an answer tomorrow?

Sure，Thank you😊


npm error fetch failed

Hi!
When I try to install webtorrent from npm , I have this error with mp4box.js
npm ERR! fetch failed https://github.com/jhiesey/mp4box.js.git#nodified
npm WARN retry will retry, error on last attempt: Error: fetch failed with status code 406

Please run the following and share the output:
node -v
npm -v

1st row
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":"0.6"} (current: {"node":"0.12.0","npm":"2.5.1"})
npm ERR! fetch failed https://github.com/jhiesey/mp4box.js.git#nodified
npm WARN retry will retry, error on last attempt: Error: fetch failed with status code 406

Thanks for sharing the version of node you're using. I just tested on node 0.12.0 and confirmed that it doesn't work. If you update to the latest from the 0.12 series (node 0.12.7), then it installs without error! It looks like there's probably a bug in the older version that got fixed.
You can download the latest node release from https://nodejs.org.

Thanks a lot, i now upgrade node

@baratch Cool - let me know if it works for you now!


blank_lines inserts all newlines before final inline comments

I’m not entirely sure if this is a bug, but I don’t think this yields compliant code?
Versions
pep8ify/0.0.13 on Python/2.7.11
$ pep8ify -f blank_lines test.py

Input
class Foo:
    def __init__(self):
        bar = 13
    def baz(self):
        pass
class Bar:
    def __init__(self):
        bar = 13  # comment
    def baz(self):
        pass  # comment
class Baz:
    pass

Expected
--- test.py     (original)
+++ test.py     (refactored)
@@ -1,12 +1,18 @@
 class Foo:
     def __init__(self):
         bar = 13
+
     def baz(self):
         pass
+
+
 class Bar:
     def __init__(self):
         bar = 13  # comment
+
     def baz(self):
         pass  # comment
+
+
 class Baz:
     pass

Actual
% pep8ify -f blank_lines pep8.py
RefactoringTool: Refactored pep8.py
--- test.py     (original)
+++ test.py     (refactored)
@@ -1,12 +1,18 @@
 class Foo:
     def __init__(self):
         bar = 13
+
     def baz(self):
         pass
+
+
 class Bar:
     def __init__(self):
-        bar = 13  # comment
+        bar = 13
+  # comment
     def baz(self):
-        pass  # comment
+        pass
+
+  # comment
 class Baz:
     pass
RefactoringTool: Files that need to be modified:
RefactoringTool: pep8.py

Yup, definitely a bug. Thanks for reporting.
I don't have much time to spend on this project these days, but happy to accept a PR if someone else wants to dig in.


Video data example

Thank you for quickest implementations of new papers.
I wanted to try Perceiver with video classification data, usually the shape of video data is [batch, frames, channel, height, width].
But the example for image showed [batch, height, width, channel], So example hyperparameters for video data would be very helpful.
So far I have tried [batch, channel, height, width, frames], I think it seems to work, confirmation would be great!
And is there any way to transfer imagenet pretraining of perceiver to video tasks?

@elb3k hmm, I think you can try permuting the channel dimension to the last dimension, and then increasing the input_axis = 3 and see if that work!

import torch
from perceiver_pytorch import Perceiver

model = Perceiver(
    input_channels = 3,          # number of channels for each token of the input
    input_axis = 3,              # number of axis for input data (2 for images, 3 for video)
    num_freq_bands = 6,          # number of freq bands, with original value (2 * K + 1)
    max_freq = 10.,              # maximum frequency, hyperparameter depending on how fine the data is
    depth = 6,                   # depth of net
    num_latents = 256,           # number of latents, or induced set points, or centroids. different papers giving it different names
    cross_dim = 512,             # cross attention dimension
    latent_dim = 512,            # latent dimension
    cross_heads = 1,             # number of heads for cross attention. paper said 1
    latent_heads = 8,            # number of heads for latent self attention, 8
    cross_dim_head = 64,
    latent_dim_head = 64,
    num_classes = 1000,          # output number of classes
    attn_dropout = 0.,
    ff_dropout = 0.,
    weight_tie_layers = False    # whether to weight tie layers (optional, as indicated in the diagram)
)

video = torch.randn(1, 224, 224, 3, 16) # 16 images, pixelized

model(video) # (1, 1000)

This seems to work, inference and backprop is working fine,  I have yet to train with dataset.


feat(OP): add OP token WLD

Checklist:

README.md includes:

[ ] The details of signing data and transaction data, this includes parameters.
[ ] Official docs or white paper.
[ ] Website or api can query assets and broadcast transaction.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

Task linked: CW-17731 [SDK] support WLD(Optimism)


How will the jinja conditionals work with exported qss?

I noticed some conditionals in the jinja template. I assume they will be evaluated during build_stylesheet - so for exported themes, the values in the environment during the export will be applicable and the deployed Qt/C++ with QSS has no effect?

Hi
Here an example:
from qt_material import export_theme

extra = {

    # Button colors
    'danger': '#dc3545',
    'warning': '#ffc107',
    'success': '#17a2b8',

    # Font
    'font_family': 'monoespace',
    'font_size': '13px',
    'line_height': '13px',

    # Density Scale
    'density_scale': '0',

    # environ
    'pyside2': True,
    'linux': True,

}

export_theme(theme='dark_teal.xml', qss='dark_teal.qss', rcc='resources.rcc',
             output='theme', prefix='icon:/', invert_secondary=False, extra=extra)

Hi
Here an example:
from qt_material import export_theme

extra = {

    # Button colors
    'danger': '#dc3545',
    'warning': '#ffc107',
    'success': '#17a2b8',

    # Font
    'font_family': 'monoespace',
    'font_size': '13px',
    'line_height': '13px',

    # Density Scale
    'density_scale': '0',

    # environ
    'pyside2': True,
    'linux': True,

}

export_theme(theme='dark_teal.xml', qss='dark_teal.qss', rcc='resources.rcc',
             output='theme', prefix='icon:/', invert_secondary=False, extra=extra)

@YeisonCardona This won't work because the linux variable is evaluated at the time of export, not at run time.
Consider a cross-platform Qt/C++ app which includes the exported .qss - the same app can run on windows or on linux. If the linux var was set during export, the app running on windows will end up using the linux CSS and vice versa.


Should unmount when not using the fs?

This isn't in any way a bug, rather than me asking a question about best practices on using littlefs.
The question is, should the filesystem be unmounted when not being used for long periods of times? This is in the context of protecting the file system from corruption in case of power failure.
Without knowing any of the implementation details, intuitively what I'm thinking is that it's better to have the fs unmounted rather than mounted when the power is cut unexpectedly. But does it really matter? Is perhaps having it mounted all the time the same in this regards?
Also, when we do software reboot, should we first unmount the fs or again it doesn't really matter?

A quick glance at the source of lfs_unmount, lfs_rawunmount and lfs_deinit shows no write access being performed in these situations, thus any data not already sync'd to the backend device before (by calling lfs_file_sync or lfs_file_close) will be lost.
So to answer your question: While freeing the resources you don't need is a good practice, it's not strictly required with littlefs in regards to unmounting. Looking at the design documentation it even was created with fault tolerance in mind. Nonetheless, you will need to ensure proper sync/close calls for all files you work on to retain your changes.

As @BenBE mentioned, the only benefit to unmounting is to reclaim RAM. This might be useful if your application needs to use the RAM to do some other processing, but it should be noted remounting comes with a relatively high read-cost. This is higher in littlefs than other filesystems (but cheaper than logging filesystems) because littlefs needs to reconstruct "global state". this ends up touching every metadata block in the filesystem.
I suspect the best design for most applications is to mount the filesystem during startup and just never call unmount, unless you are physically removing the disk for some reason.


Support weighted adapters

Allow users to provide a weighted listed of adapters per request:
parameters: {
    "adapter_weights": {"foo": 0.75, "bar": 0.25}
}

This parameter would be mutually exclusive with the existing adapter_id parameter (taking a single adapter).

Yes, this would be a fantastic addition, we currently have to merge the weights and save an adapter.

Thanks @codybum for the validation of this feature! Would love to hear more about your use case some time.
My hope is I should be able to get to this one some time next week if all goes to plan.

Hi @tgaddair, We train various lora modules independently, and at times with different lora configurations.  We use it like a poor man's MoE, where we weight the experts statically in different estimator trials, and based on the results we merge the best performing configuration.   It would be nice to be able to do this dynamically per question.
There are a few projects out there exploring this area:
LMoE: https://github.com/jondurbin/airoboros?tab=readme-ov-file#lmoe
LoraHub: https://github.com/sail-sg/lorahub
Thanks for the great work!

Hey @codybum, apologies this took longer than expected, but we now support linear, TIES, and DARE merging per request!
Here are the docs: https://predibase.github.io/lorax/guides/merging_adapters/

@tgaddair that is fantastic!  We just submitted a conference paper last night that makes use of LoRAX for multi-lora inferencing.  I submitted to arXiv as well this morning.  I will post it when the arXiv link is up.
The per-request effort is critical to a paper we will be submitting next month.
Thanks!

@tgaddair
https://arxiv.org/abs/2402.00913
Our latest paper, "Institutional Platform for Secure Self-Service Large Language Model Exploration", has been posted to arXiv.
Abstract—This paper introduces a user-friendly platform developed by the University of Kentucky Center for Applied AI, designed to make large, customized language models (LLMs) more accessible. By capitalizing on recent advancements in multi-LoRA inference, the system efficiently accommodates custom adapters for a diverse range of users and projects. The paper outlines the system’s architecture and key features, encompassing dataset curation, model training, secure inference, and text-based feature extraction. We illustrate the establishment of a tenant-aware computational network using agent-based methods, securely utilizing islands of isolated resources as a unified system.
The platform strives to deliver secure LLM services, emphasizing process and data isolation, endto-end encryption, and role-based resource authentication. This contribution aligns with the overarching goal of enabling simplified access to cutting-edge AI models and technology in support of scientific discovery.

Thanks @codybum, do you mind if we share this on social media?

Thanks @codybum, do you mind if we share this on social media?

Of course, please do!


First Making Issue for practice

First Making Issue for practice

Insert a quote

prinf("hello world \n");
output command
return 0
Error line

[task1 : Error check]

[task2 : Additionial opinion ]

#1 is Hot Issue

you have to correct word that is from return 0 to return 0;


WIP: Rpm linting

Is there a ticket with a description for this pull request?

Had to add one filter to get the linting to complete.
On a side note, the ownerships for /opt/google/gehttpd/logs/{geresourceprovider.log,gesystemmanger.log} are incorrect: they where 'geapacheuser:490' upon initial inspection. Changing them to 'geapacheuser:gegroup' allowed /etc/init.d/gefusion to start.


Does not make revision current

The instructions provided does not make the latest revision current nor does it have instructions on how to make any revision current.

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

ID: 803fb9a7-5896-f4b0-9144-af5f87f3b1d4
Version Independent ID: aeb99370-0ff3-bf47-1b69-e8710fe454e0
Content: Tutorial - Use revisions in API Management to make non-breaking API changes safely - Azure API Management
Content Source: articles/api-management/api-management-get-started-revise-api.md
Service: api-management
GitHub Login: @dlepow
Microsoft Alias: danlep

@abelal83 Thanks for the feedback! I have assigned the issue to the content author to investigate further and update the document as appropriate.

@abelal83 - Thank you for contacting us and letting us know about this issue. Can you please tell us a little more about your scenario? It sounds like you were able to create a revision as described in the article. Then, what happened when you tried to make the revision current? Were you using the portal or another tool to try this step? Many thanks for the info.

@abelal83 - I was able to reproduce the steps in this article, using the portal. Do you have more information about your scenario? Thanks!


Retry on DDL lock acquisition failures

DDL operations are run in a session in which SET lock_timout TO xms'  has been set (x defaults to 500 but can be specified with the --lock-timeout` parameter). This ensures that a long running query can't cause other queries to queue up behind the DDL operation as it waits to acquire its lock.
The current behaviour if a DDL operation times out when requesting a lock is to fail, forcing the user to retry the migration operation (start, rollback, or complete).
pgroll should automatically retry to acquire the lock in such situations to prevent the need for manual intervention.

Nice idea, introducing an exponential backof algorithm with jitter can improve things here. Some references:

https://en.wikipedia.org/wiki/Exponential_backoff
https://pkg.go.dev/github.com/cloudflare/backoff


VLAZ: Watch cjcmotor.com

VLAZ requests the watch of the watch_keyword cjcmotor\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

cjcmotor\.com has been seen in 3 true positives, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Fixed emoji not showing if bot is not in server.

This pull request allows bot to show emoji as a thumbnail even if the bot isn't in the server.

Firstly, Thanks for the pr.
Secondly, Could you help me with a screenshot of before and after, would be appreciated

Here is a screenshot:
https://akai.needs.rest/EhTs0.png
Notice the thumbnail of embed, its the url of emoji, as you can see the bot
cannot show the emoji if its not in the server where the emoji is from so I
customized it to show the emoji as thumbnail
Unfortunately I do not have ss from before pr because i purged those
messages lol.
On Wed, Feb 15, 2023 at 8:22 PM Honkertonken @.***>
wrote:

Firstly, Thanks for the pr.
Secondly, Could you help me with a screenshot of before and after, would
be appreciated
—
Reply to this email directly, view it on GitHub
https://github.com/Honkertonken/Honkertonken-Cogs/pull/61#issuecomment-1431493944,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AWLQDYI52RSLRE3K2ONUPDLWXTUT5ANCNFSM6AAAAAAU4526L4
.
You are receiving this because you authored the thread.Message ID:
@.***>


Swedish language

Hi, I did the Swedish translation

I did everything according instructions. Any changes needed?

thank @schmittent


Label to mark where to add the daily entries

Thank you for this extension, I find it very useful. I like its simplicity but still I would like to add a suggestion.
It would be nice to have a label to be able to mark from where we want to start adding the daily entries. This way I could have at the beginning of my diary some description, instructions or timeless tasks.

Ha! Amazing that people are using it! :) I totally did not expect that. I'd be delighted to bring in your idea.
At the moment, there is an entire document that is marked as a diary and the new entries always start on line 3. I see that this is a limitation that is not needed.
@eclemens - what would be your take on e.g. <!-- DAILY-TODO-LIST --> comment, under which we would add the daily elements right away. Would that be useful for you? Any suggestions on alternative names?

Amazing, that label seems perfect to me. It does its job and follows the pattern used by the other tag.
Thank you very much!


Getting Key Import Error on Firefox

To reproduce:

Using latest version of Firefox on macOS, add example 0 JWS to the input field below "Decode Numeric" button
After properly decoding the SHC and downloading the JWKS, the following error is shown:

Confirmed that this still works on Chrome, and IIRC worked previously on Firefox, so possibly a Firefox bug?

I'm seeing the same on Firefox and have an update to fix it.

Fixed with https://github.com/smart-on-fhir/health-cards-tests/pull/65


feature: save articles

hello,
Can we have the feature to send the article to Send articles to Telegram, Shaarli, Shiori, Matrix, Apprise, Pinboard, Instapaper, Pocket, Wallabag, Linkding, Espial, Notion, Readwise Reader or Nunux Keeper?
The API looks available: https://miniflux.app/docs/api.html#endpoint-save-entry
And also toggle entry bookmark: https://miniflux.app/docs/api.html#endpoint-toggle-bookmark

Sounds like a solid idea. It might be a little confusing to differentiate bookmarking vs. saving vs. starring, but honestly, that's a Miniflux thing, and this would just be adding support for what's already in Miniflux. Time permitting, I'll take a crack at this when I can.

Hi,
It is just to call the Miniflux API on:

https://miniflux.app/docs/api.html#endpoint-save-entry (maybe Ctrl+S)
the starred attribute, I think it is here: https://miniflux.app/docs/api.html#endpoint-toggle-bookmark (maybe Ctrl+D like in web browsers)

the starred attribute

cliflux already supports this one: https://github.com/spencerwi/cliflux/blob/8795c38b3962511a395fec5c12d1a9171d1e08aa/src/ui/components/keyboard_help.rs#L74
The other endpoint for  "save entry" (which actually seems to be a "share to other services" endpoint) seems relatively-straightforward to add. The difficulty there would just be UX; there's no persistent attribute on any given entry that tells you "this has been shared to another service", and it's not clear how to signal success or errors.

I know it's taken me forever to get back to this, but I implemented an initial version of the "save to external services" action in v1.5.0, releasing today.


feature: add no database support

Fix #412

Please make sure the below checklist is followed for Pull Requests.

[ ] Travis tests are green

[ ] Tests are added where necessary

[ ] Documentation is added/updated where necessary

[ ] Coding Rules & Commit Guidelines as per our CONTRIBUTING.md document are followed

@clement26695  Is it a CI random failure ?

I think so, yes. I'll try to restart the CI

@clement26695, can you also rebase against master?

CI is green!

Thanks @clement26695!


Update node version on install_dir change

Is there any reason not to update the version value when changing the install directory for a node (just as we do for cluster)? Otherwise this seems to cause issues for upgrade tests by sharing hints directories as described in 10f3ea95dee352a106bcb20182ec31354c490fc0.

No reason that I know of. Have you tested this with the upgrade tests, to confirm it works?

Still trying to get some of the tests working, it's definitely a combination of issues.

Ahh, so at the very least, this doesn't break them more? If so, then I'm fine merging it.

I don't think I'm able to do a dtest run on builds.apache.org with a custom CCM build, so I haven't been able to verify how this may effect other related tests.

Alright then, I'll run them locally over the weekend and merge on Monday. Thanks!


Allow specific input shape

Currently it assumes the input layer is 1x1xINPUT_LENGTH.
This does not support 2D or 3D inputs, my changes allow the user to specify the shape.

This could also be achieved by getting the X,Y,Z sizes from the input data:
layer_defs.push({type: 'input', out_sx: this.data[0].sx:, out_sy: this.data[0].sy, out_depth:this.data[0].depth});

this is currently hard coded to:
layer_defs.push({type: 'input', out_sx: 1, out_sy: 1, out_depth: input_depth});

It works the same either way bruh.

您好，我是薛文毅，已收到您的邮件，一会查收，谢谢！！


Feedback

Hi,
I saw your request for endorsements on the mailing list; I've been interested in having this feature for some time and hence was happy to see it. The mailing list subscription is too much noise for me so I'm putting my feedback here.

Your README.md proposes #include<boost/math/autodiff.h>. Presumably if this is just a single file, then it does not need to be it's own independent library and can just be added to boost.math. What is your opinion on this? What is @jzmaddock's opinion?

Your first minimal working example just worked for me, straight out of the box, which I was very happy with.

I'm not sure about your mixed partial example; the known results from Mathematica put a lot of noise into the example. Maybe move the known result into the unit tests?

Your second example does not compile for me:

➜  autodiff git:(master) ✗ g++ -Wfatal-errors --std=c++17 -I./include example/mixed_partials.cpp
In file included from example/mixed_partials.cpp:1:
./include/boost/math/autodiff.hpp:356:35: fatal error: non-type template argument evaluates to 2, which cannot be narrowed to type 'bool' [-Wc++11-narrowing]
        typename std::conditional<Depth,typename type_at<RealType,Depth-1>::type,dimension<RealType,Order>>::type;
                                  ^
./include/boost/math/autodiff.hpp:356:50: note: in instantiation of template class
      'boost::math::autodiff::v1::type_at<boost::math::autodiff::v1::dimension<boost::math::autodiff::v1::dimension<double, 3>, 4>, 2>' requested here
        typename std::conditional<Depth,typename type_at<RealType,Depth-1>::type,dimension<RealType,Order>>::type;
                                                 ^
./include/boost/math/autodiff.hpp:232:14: note: in instantiation of template class
      'boost::math::autodiff::v1::type_at<boost::math::autodiff::v1::dimension<boost::math::autodiff::v1::dimension<boost::math::autodiff::v1::dimension<double,
      3>, 4>, 2>, 3>' requested here
    typename type_at<RealType,sizeof...(Orders)-1>::type derivative(Orders... orders) const;
             ^
example/mixed_partials.cpp:33:34: note: while substituting deduced template arguments into function template 'derivative' [with Orders = <int, int, int, int>]
          const double value = v.derivative(iw,ix,iy,iz);
                                 ^
1 error generated.

cppcheck 1.86 had some opinions:

➜  autodiff git:(master) ✗ ➜  autodiff git:(master) ✗ cppcheck --enable=all --inconclusive include/boost/math/autodiff.hpp
Checking include/boost/math/autodiff.hpp ...
[include/boost/math/autodiff.hpp:116]: (style) 'dimension < RealType2 , Order2 >::operator=' should return 'dimension < RealType2 , Order2 > &'.
[include/boost/math/autodiff.hpp:483]: (style) Consider using std::transform algorithm instead of a raw loop.

Ran the example I could compile with -fsanitize=address -fsanitize=undefined, everything looked good.

Not sure how everyone feels about #pragma once; I guess if you are using C++17 you're pretty safe.

My barycentric rational interpolator requires two passes through the data to get the derivative; see here. I always found that to be inelegant. Can you get the derivative of a member function, and speed up my .prime() call?

Can you compare the speed of your autodiff on the Lambert-W function to boost::math::lambert_w0_prime?

Can you add some unit tests to make sure that real and complex multiprecision work? It looks like you have some calls to (say) std::log that won't work with multiprecision, you'll need using std::log and then just call log. Note: boost::multiprecision is very popular; you'll hear about it immediately if you don't support it.

Why this?

template<typename RealType,size_t Order>
dimension<RealType,Order> sqrt(const dimension<RealType,Order>& cr)
{
    return pow(cr,0.5);
}

I've found that calls to pow are very expensive; much more expensive than to sqrt.

How does your API compare to other automatic differentiation libraries? I'm not trying to insinuate that this one is not ergonomic, but I'd definitely like to hear that you researched other APIs before building this one and had a "take" on it that makes your better (perhaps via C++17 features older libraries couldn't work with). In particular, I'm wondering why I can't write something like

auto df = boost::math::autodiff(f);

I'm very much looking forward to my numerical_derivative.hpp looking like it was written in the stone age!

Your README.md proposes #include<boost/math/autodiff.h>. Presumably if this is just a single file, then it does not need to be it's own independent library and can just be added to boost.math. What is your opinion on this? What is @jzmaddock's opinion?

I think that's reasonable - especially if it interoperates well with the rest of Boost.Math - might be interesting to see how far down that road it's possible to go before the compiler explodes ;)  Headers should have a .hpp extension in Boost BTW.

Not sure how everyone feels about #pragma once; I guess if you are using C++17 you're pretty safe.

There was some discussion about this on the ML recently, the user experience seemed to be that #pragma once is - still - undersupported by some compilers/platforms where as include guards "just work".
I noticed one of your examples has:
template<typename W,typename X,typename Y,typename Z>
auto f(const W& w, const X& x, const Y& y, const Z& z)
{
  using namespace boost::math::autodiff;
  using namespace std;

It would be a real shame if the using namespace boost::math::autodiff; is really required as it would shut out existing code - are functions not found via ADL?

Ok, looks like John's on board, so I think you are safe in forking boost.math and submitting this as a PR over there. I think the file should probably be boost/math/tools/autodiff.hpp, unless the scope grows to the point where we need a new directory for differentiation. I don't think we're quite there yet; all it would have is the autodiff and numerical differentiation. However, I'm planning on adding the  lanczos_smoothing_derivative for noisy sequence data, as well as the maxflat smoothing derivative filter, so that'd get us up to four files specifically for numerical differentiation, but this won't happen for another few months at least.

wouldn't a "quadrature and differentiation" section make more sense?

wouldn't a "quadrature and differentiation" section make more sense?

Yeah, in the docs, certainly. But just from the point of view of the directory layout, we already have boost/math/quadrature, so we can't really put differentiation in there. So should we deprecate the differentiation tools in the tools directory and move them into boost/math/differentiation?

Thank you both for the great feedback.
These are done and commited to master:

Fix the clang error: non-type template argument evaluates to 2, which cannot be narrowed to type 'bool' [-Wc++11-narrowing]
Satisfy the cppcheck notices.
Replace #pragma once with traditional include guards.
Omit using namespace boost::math::autodiff. Indeed, the functions are found via ADL.

As suggested I will place the file at boost/math/tools/autodiff.hpp via a PR on boost.math, though I welcome your sense of organization should you change your mind on this.

I'm not sure about your mixed partial example; the known results from Mathematica put a lot of noise into the example. Maybe move the known result into the unit tests?

Actually that example is also in test/test_autodiff.cpp, it is the last one called mixed_partials. I wanted to demonstrate the accuracy of the derivatives calculated via autodiff. That is, out of the 240 different mixed partial derivatives of a 4-variable non-trivial function, the greatest relative error from their "true" value is about 6.82e-13. Unfortunately github markdown doesn't support LaTeX, so perhaps my intention is more clear on the doxygen page. More detail is given about this example at http://www.unitytechgroup.com/doc/autodiff/ . Perhaps I should add LaTeX images of the equations to make it more clear.

I've found that calls to pow are very expensive; much more expensive than to sqrt.

Agreed. I'm intending on going back to optimize that later on. I'm also intending to extend the library of functions for which arbitrary derivatives can be calculated exactly.

How does your API compare to other automatic differentiation libraries?

I haven't looked at very many, perhaps a cursory look at no more than a few a few years ago. My primary motivation was to work out the mathematics myself in an earlier closed source C++11 version (with messy SFINAE code). I'm fairly certain this is the only library out there that satisfies all of the Boost Real Number requirements, as that is something I've specifically searched for. The few libraries I did look at included some messy hacks (IMHO) which I am happy to have avoided by a relatively simple and consistent mathematical approach. I intend to document the library in greater mathematical detail.

I'm wondering why I can't write something like auto df = boost::math::autodiff(f);

That looks like how a symbolic differentiation library might work. Automatic differentiation instead keeps track of the derivatives, or sensitivities as they're sometimes called, as the computation progresses. The derivatives are known and evolve at every step of the way.
If that brief explanation doesn't make sense, then I will solicit your feedback when I write the documentation to clarify this interesting topic. Also, I'll try to see if I can use your barycentric rational interpolator and apply autodiff to calculate the derivatives in a single pass. Sounds like that should be possible if I understand the problem correctly.
Lastly, I'll get back to you on the boost::math::lambert_w0_prime function.
Cheers.

As suggested I will place the file at boost/math/tools/autodiff.hpp via a PR on boost.math, though I welcome your sense of organization should you change your mind on this.

I think we might need to think about this - about what namespace and directory structure would be most appropriate.  We could use boost/math/audodiff, but as I suspect Nick is planning all sorts of cunning differentiation tools, we could also go boost/math/differentials ?  Any better word than differentials?  derivatives? calculus? any thoughts or better ideas anyone?

Lastly, I'll get back to you on the boost::math::lambert_w0_prime function.

It might be interesting to feed it into a few special functions just to see how far one can go before it breaks, ultimately, since most of them have well defined derivatives, it's probably worth treating them as native operations like pow/exp etc.

I think we might need to think about this - about what namespace and directory structure would be most appropriate. We could use boost/math/audodiff, but as I suspect Nick is planning all sorts of cunning differentiation tools, we could also go boost/math/differentials ? Any better word than differentials? derivatives? calculus? any thoughts or better ideas anyone?

Most numerical analysis textbooks have a section on quadrature and differentiation, "quadrature and differentials" are never really found together. GSL uses "diff", which I personally dislike, and SciPy puts their numerical derivative is "misc". So I recommend the directory boost/math/differentiation, which complements boost/math/quadrature. Assuming everyone is on board with this, I'll go ahead and start moving the requisite files around and deprecate the differentiation utilities in tools.
However, Mike can just continue on his PR as planned; moving these files around will not be difficult.

Assuming everyone is on board with this, I'll go ahead and start moving the requisite files around and deprecate the differentiation utilities in tools.

No objections from me. In that case I'll keep the file at boost/math/autodiff.hpp which you can move to elsewhere.
Matt
p.s. I forgot to mention in my previous post that I'll also include tests for boost::multiprecision soon. Thanks again for the advice on integrating this.

Can you add some unit tests to make sure that real and complex multiprecision work? It looks like you have some calls to (say) std::log that won't work with multiprecision, you'll need using std::log and then just call log. Note: boost::multiprecision is very popular; you'll hear about it immediately if you don't support it.

Done. (But without complex multiprecision for now.)
Thanks, this was a very helpful suggestion. Also I replaced the 2nd example on README.md that had 240 calculations with a single 12th-order multi-variable and multi-precision example that matched to Mathematica with close to 100 digits. This provides both a simpler and more powerful example.

My barycentric rational interpolator requires two passes through the data to get the derivative; see here. I always found that to be inelegant. Can you get the derivative of a member function, and speed up my .prime() call?

I took a look. In short, I doubt using autodiff would speed up the .prime() call. Though it may do it in a single pass, each multiplication would turn into 2 multiplications plus an addition since they would be invoking the overloaded autodiff::operator*(). If you wanted to try it anyway, it would require changing the call signature of Real operator()(Real x) const; to
    template<class Real2>
    Real2 operator()(Real2 x) const;

You can then invoke it with something like this (untested)
    using Real = double;
    const std::vector<Real> px { 1, 2, 3, 4 };
    const std::vector<Real> py { 2, 4, 6, 8 };
    const boost::math::barycentric_rational<Real> f(px.data(), py.data(), px.size());
    const boost::math::autodiff::variable<Real,1> x(2.5);
    const boost::math::autodiff::variable<Real,1> y = f(x);
    y.derivative(0); // f(2.5) = 5
    y.derivative(1); // f'(2.5) = 2

In general when the derivative of a function is known, it is typically faster to directly call the derivative function. The advantages of using autodiff are instead to eliminate code redundancy (derivatives are a form of redundancy) and greater accuracy over other numeric methods. In fact the autodiff algorithm gives a mathematically exact calculation of the derivatives. The sole source of error comes entirely from the fact that quantized numeric types are used to approximate real continuous mathematical values. (Such discussion will be added to the docs.)

Ok, so as I understand it, there's essentially no hope for doing source code transformation automatic differentiation in C++. Maybe you could do it in LLVM IR, but parsing C++ and transforming it would be impossible and the LLVM IR is unstable, so you'd have problems there too. So my desired syntax auto df = autodiff(f) is basically impossible.
What is looks like to me is that you've got a forward accumulation AD up and running. How much harder is it to support reverse accumulation AD as well?
I searched around and found that Stan uses automatic differentiation. In addition, when we drop a feature, Stan tends replace their internal stuff with ours. So will your AD library satisfy their requirements? I'm not saying this is a requirement for acceptance, but it'd be nice to see that the library satisfies a real-world use case.

How much harder is it to support reverse accumulation AD as well?

That would be a significant project. Reverse mode, as you may know, does the calculation in reverse. It seems to me this would require keeping a list of operations/functions as they are made (unless the whole computation were done in a meta template language), and then once completed, doing the corresponding actions in reverse. It would be a fundamental redesign and probably deserve a separate project/file.

So will your AD library satisfy their requirements? I'm not saying this is a requirement for acceptance, but it'd be nice to see that the library satisfies a real-world use case.

Based on a cursory look through the code in the whitepaper, it seems fundamentally different. For example on page 8 their code queries the original variables for the derivatives, whereas this version autodiff queries the final return value for all the derivatives. But if you are wondering about whether the current library would satisfy a real-world use case, check out the 3rd README.md example that was just added for calculating Black-Scholes greeks. I worked at a company where an earlier version was used to calculate similar greeks in real-time. We used a non-standard pricing model which we were making tweaks to. Using AD saved us from having to make multiple changes to multiple derivative formulas which were often difficult to derive, and we could rely on the accuracy of the values. (Finite difference methods in contrast always left a question of accuracy due to proper selection of the delta_x free variable.)

In your example, is it a requirement that there be 4 different template types (W,X,Y,Z)?

No, but then it would require that all input parameters be of the same type. I've made this change; perhaps this does look cleaner.
Fyi you may notice that someone forked this project and is getting it to compile on C++11. He is working on how best to keep the C++11-specific code in a separate file so that we don't lose the high level organization that C++17 gives us. Any thoughts/experience you have on this kind of thing is welcome.

are you interested in doing reverse mode AD?

I don't see myself working on it in the immediate future. If I start getting a significant amount of feedback to where this forward mode version is too slow for people, and I am provided with some examples in which it is fairly clear that reverse mode would be significantly faster, then that might give some motivation. In the meantime, I am quite happy with the current version.

Ok, I've rearranged the file layout here. Create a branch off branch differentiation and then do the following:

cp doc/differentiation/numerical_differentiation.qbk doc/differentiation/autodiff.qbk just to have a template, then edit the docs to your liking. I recommend using Unicode literals like \u2202[sub x]for ∂x but you can also splice out pngs for equations.

Add your docs to the doc/math.qbk, namely:

[mathpart quadrature Quadrature and Differentiation]
...
[include differentiation/numerical_differentiation.qbk]
[include differentiation/autodiff.qbk]
[endmathpart]

Make sure the docs compile via

doc$ ../../../b2

and view them via
doc/html$ python3 -m http.server

and visiting localhost:8000.
Don't commit the generated .html files; John commits those just before each release.

Add include/boost/math/differentiation/autodiff.hpp (of course)

Copy (say) test/catmull_rom.cpp to test/autodiff_test.cpp to use as a template. Then add the line:

 [ run autodiff_test.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx17_if_constexpr ] ]

to test/Jamfile.v2
To run the tests I use:
test$ ../../../b2 cxxflags="-Wall --std=gnu++17 -fsanitize=address -fsanitize=undefined" linkflags="-fsanitize=address -fsanitize=undefined" autodiff_test

but you might have your own flags you like. John's idea of going through each special function in include/boost/math/special_functions seems like a good test to me; esp for those that already implement .prime(), but I imagine you have a much more sophisticated mental model of how an autodifferentiation should be tested.

Submit the PR and then ask for it to be reviewed at codereview.stackexchange.com. Those guys always catch something I miss.

Then I'll review it, then John will review it. Presumably it'll be a couple weeks before John gets to it because I think he's about to push the hypergeometrics past the finish line, but you won't need to worry about the PR languishing indefinitely-we want this feature in.

Will do. Thank you for the clear and thorough instructions.

Regarding naming,
boost::math::differentiation::autodiff::variable<double, 2> x;
seems extremely verbose.
However if one were to follow the advice in https://abseil.io/tips/153 this is what one would write.
Is the differentiation namespace adding any clarity for the reader or convenience for the writer? It seems to me that at the very least there is a redundancy between the "differentiation" namespace and the "diff" in "autodiff" (admittedly you presumably couldn't or at least shouldn't have a namespace called auto).
I imagine the value to a user of having all differentiation functionality bundled together in a namespace would be some sort of IDE autocomplete functionality allowing them to easily navigate to the relevant functionality and then select from those available. However in this context it seems that an overview of the available function names would be insufficient to educate the user on which function actually suits their purpose so they'd end up reading the docs anyway.
Regarding auto df = autodiff(f) and symbolic differentiation,
I have written a symbolic differentiation library which works a lot like this library in the sense that it defines types which take the place of numeric types in math-like functions and I have to define my own verisons of a bunch of functions (+, sqrt, sin, etc) to implement known differentiation rules. Unlike this library, which calculates as it goes, my classes are ever more complicated expression trees. Consequently code like the following is possible:
template<typename T>
auto fourth_power_func(const T& x)
{
	return x * x * x * x;
}

const auto fourth_power_lambda = [](auto x)
{
	return x * x * x * x;
};

template <typename F>
std::function<double(double)> diff(F f)
{
	auto x = Calculus2::Variable<'x'>();
	auto eval = f(x).differentiate(x);
	auto result = [=] (double val)
	{
		return eval.let(x, val);
	};
	return result;
}

#define DIFF(func) diff(func < Calculus2::Variable<'x'>>);

int main()
{
	auto df1 = diff(fourth_power_func< Calculus2::Variable<'x'>>);
	auto df2 = DIFF(fourth_power_func);
	auto df3 = diff(fourth_power_lambda);

	std::cout << df1(2.0) << ", " << df2(2.0) << ", " << df3(2.0) << "\n";
	return 0;
}

All three examples give the correct answer 32. df1 is pretty nasty because it exposes a lot of inner workings but df2 and df3 look syntactically like your example. Unfortunately because fourth_power_func is a template I can't simply pass it in as a type to diff, thus df2 requires a macro DIFF which instantiates the appropriate template. weirdly this limitation doesn't seem to apply to generic lambdas so df3 does what you want without macros but does require you to define (or wrap) your function as a lambda.
However the question remains as to why you would want to do this? Conceptually I guess it's the most representative of what you want to happen mathematically but computationally it seems like you're better off with automatic differentiation in all but trivial cases (A fact I was disappointed to discover having written my symbolic differentiation library =/). Admittedly fourth power is a trivial case and my library would calculate it as 4xx*x but anything with a cyclical derivative (exponentials) or a negative power will remain as complex or get more complex. For the use case I had at least this made the cost of evaluating the derivative (note that the expression is calculated at compile time so I specifically mean substituting in the value for x into the predetermined expression for dydx) significantly higher than evaluating the original function. For a first order derivative, it looks like this library will essentially evaluate the function twice but that is often going to be cheaper than evaluating the derivative function once.
There is possibly a question of the relative precision of the two approaches in the presence of floating point error but I haven't given this much thought.

It now occurs to me that one could also write
const auto fourth_power = [](auto x)
{
	x *= x;
	return x * x;
};

template <typename F>
std::function<double(double)> autodiff(F f)
{
	return [=](double val)
	{
		const auto x = boost::math::differentiation::make_fvar<double, 1>(val);
		return f(x).derivative(1);
	};
}

int main()
{
	auto df = autodiff(fourth_power);
	std::cout << df(2.0) << "\n";
}

which uses precisely the syntax you requested but uses automatic differentiation. This does, however, disguise the amount of computation being done in the sense that one might assume (despite the name I guess) that when autodiff is called the expression is being differentiated and when the result is called the resulting derivative is merely being evaluated.
Seems like the sort of thing that probably shouldn't be in the library but could easily exist in your own code base.

Regarding naming, boost::math::differentiation::autodiff::variable<double, 2> x; seems extremely verbose.

The current API is now boost::math::differentiation::autodiff_fvar<double,2> for the variable type, and boost::math::differentiation::make_fvar<double,2>(3.0) for constructing a variable of differentiation. There is a general requirement that the namespaces match the #include directory structure. There is also the possibility of adding reverse automatic differentiation in the future, and use rvar in place of fvar. Having said this, I think there is a general sentiment that it is a bit verbose. Do you have a better suggestion? (Others have said the same thing, but when I ask for a better suggestion, they then agree upon reflection that it is as good as any.)

For a first order derivative, it looks like this library will essentially evaluate the function twice but that is often going to be cheaper than evaluating the derivative function once.

You're probably aware of this fact, but it is worth mentioning for the sake of other readers that it may take about twice as long as the calculation of f(x0), but the result is the simultaneous calculation of both f(x0) and f'(x0).

I guess the concern is primarily the make_fvar not the autodiff_fvar since the latter would typically be a template parameter or an auto. This lacks the redundancy so I guess like everyone else I'm happy upon reflection.

std::min, std::max and #include <windef.h>?
Are there requirements/guidelines for boost library code regarding the use of std::min and std::max with respect to windef.h polluting the global namespace with macros min and max? Example discussion: https://stackoverflow.com/questions/11544073/how-do-i-deal-with-the-max-macro-in-windows-h-colliding-with-max-in-std
My own preference would be to use code like c = std::min(a,b) directly, and allow compiler errors to surface so that developers can fix the problem at its source rather than assisting in the contamination of poor design to all future code.

We have an "inspect" tool which rightly or wrongly enforces min/max not being used in a way which might fail if they are macros.
BTW it's actually quite hard to avoid being caught out by min/max macros in msvc as all sorts of std lib includes can quite incidentally end up defining these.

Sadly, I don't think we can win this battle. The Python2->Python3 backwards incompatible changes (which were quite minimal and very reasonable) caused a bifurcation which has thus far lasted 10 years. C++ is harder to edit than Python, so I doubt we can get anyone to change their code. So (sigh), (std::max)(a,b) it is.

(Ok::thanks)


[Feature request] Add multilanguage support

Please add the framework for translating the module to other languages (as other modules do, with an en.json file in a lang folder with keys that we can translate).
I have translated more than 10 modules and this one doesnt support translating.
Thanks and great work!

I'll definitely have to check how to do that exactly, and what can actually be translated. The styles certainly can, the sheet names I'm not so sure, but I'll look into that and keep you posted!

Great!

Translation support is in! For now, the actual sheet names can't be translated, but when the 7.x core update series becomes stable, I should be able to make use of the labels to make them translatable as well. Do not hesitate to make a pull request for any translation now, as well as letting me know if I missed anything! :)

Thank you, I translate the module to spanish. I will PR soon

Sent a PR, thanks!


update ETS model to predict rcc90

The first phenology model predicts greeness (gcc90) https://github.com/genophenoenvo/neon-datasets/blob/7b89995c7c63dc5d4fe4146041e75be50f6df3bd/models/simple/ets_forecast.R#L40
Can this be updated to predict rcc90 either as a single multivariate model or a new univariate model?
References: https://github.com/genophenoenvo/neon-datasets/tree/main/models#simple-team-peg and https://otexts.com/fpp3
Ask Chris about cron job originally discussed in this thread https://cyverse.slack.com/archives/CQAATRMCM/p1616445617007400

PR 66 adds a separate model for rcc, and combines the output for submission to the fall challenge. I could not get the EML libraries to load, so that portion of code is untested. Will check https://data.ecoforecast.org/minio/forecasts/phenology/ to see if today's version will upload successfully.

PR merged - thanks!
lets check to make sure rcc_90 is being predicted before closing (09-10 and 09-12 didn't have rcc_90)


Integrate automatic update of substrate-node-template

Fix https://github.com/paritytech/opstooling/issues/111
Example of PR: https://github.com/substrate-developer-hub/substrate-node-template/pull/363
Pipeline-script: https://github.com/paritytech/pipeline-scripts/pull/71

bot merge


MINOR: Move upgraded docs from site to Kafka docs

A number of doc updates have been applied to the website. For the 2.6.1 release, resync Kafka's docs folder with the website.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Copied docs from the 26 folder in kafka-site. I checked and as far as I can tell, this already included all recent changes made to /docs in the 2.6 branch

@bbejeck  Can you take a look?

@mimaison ack, I'll take a look

Thanks @bbejeck ! I've pushed an update


Artillery substitutes

This change allows Victoria artillery to become either "artillery_brigade" or plain "artillery" in HoI4, that is, either artillery brigades in the main division area, or support artillery in the support area. It's possible to add more such flexibility by extending the "substitutes" map - for example one could likewise allow artillery to become support AT companies.
Sorry for the whitespace noise, I can't seem to figure out how to get the line endings to behave. The only real changes are in HoI4Country.cpp.

I can't figure out the whitespace noise either,  it's a pain.


Rewordings and typos

This is a batch of rewordings, typo fixes and other stuff !
Follows #157

Merging, thanks a lot


test_opensubtitles.py: CannotOverwriteExistingCassetteException: No match for the request

Hello.
It seems that issue #666 has returned. I can reproduce the following testsuite results with Python-3.5:

subliminal-2.0.3: PASS
subliminal-2.0.4: PASS
subliminal-2.0.5: FAIL
subliminal-git @ 7eb7a53 PASS

None of python packages were changed or updated between the tests.
Please fix.

This is because the cassettes on the master branch are made for v2.1 and the version is still v2.0.

Ok, but this leads to problems with distros that run packages' testsuites regularly, e.g. Gentoo.
Could you please fix this problem for 2.0.x series (unless you are planning to release 2.1 soon)?

Fixed by dd74383d1cba82829ce720f2e439a65d13ffe7ef

Could you please make another 2.0.x release with this change?
I was hoping before that you'll make 2.1.x release somewhat soon, but it didn't happen (which is fine :)).


Level List: highlighted levels

In the level list (http://direct.codecombat.com/editor/level). Some levels are highlighted and sorted to the top of the list.
The intended behavior (from Nick) is it should highlight the ones where you are the person who last saved the level. This doesn't seem to be the actual way it works (might be first person to save?).
However, it would be nice to have it also highlight levels you are watching in addition to levels you created.

I will attempt to do this one...  It would be a good feature, I agree.


Added Cloudmersive Natural Language Processing

Thank you for taking the time to work on a Pull Request for this project!
To ensure your PR is dealt with swiftly please check the following:

[ X ] Your submissions are formatted according to the guidelines in the contributing guide
[ X ] Your additions are ordered alphabetically
[ X ] Your submission has a useful description
[ X ] The description does not end with punctuation
[ X ] Each table column should be padded with one space on either side
[ X ] You have searched the repository for any relevant issues or pull requests
[ X ] Any category you are creating has the minimum requirement of 3 items
[ X ] All changes have been squashed into a single commit

@davemachado Thanks for the feedback.  Will close this pull request and open a new one with the fix.


Does orderbook have support for celo?

I have been working with nft swap sdk for polygon and it works like a charm however i also wanted to extend my product to be available on celo and was wondering if 0x can add support for it?

It looks like the SDK has the appropriate addresses for Celo (chainid = 42220) but has the off-chain orderbook backend been deployed for Celo?


compatibility with multiple worker

Hi,
We are evaluating module to use in production.
I am having following doubt.

can module work properly with nginx worker more than 1?
If yes, then module does not seem to use 'SO_REUSEPORT' to load-balance among worker. Nginx throw error saying invalid parameter after adding 'reuseport' in listen directive. (https://blog.cloudflare.com/the-sad-state-of-linux-socket-balancing/)

Can anyone help me with these questions?

For RTMP - no. Workers won’t share streams. Option to enable auto push
to workers exist, but it is buggy since beginning. For HLS - you can run
separate nginx instance with multiple workers and load balance traffic like
plain HTTP.
look at 1)

If you look for hosted solution - contact me, maybe I will have something
interesting for you.
W dniu wt., 6.03.2018 o 21:53 Chetan Dhembre<EMAIL_ADDRESS>napisał(a):

Hi,
We are evaluating module to use in production.
I am having following doubt.

can module work properly with nginx worker more than 1?
If yes, then module does not seem to use 'SO_REUSEPORT' to
load-balance among worker. Nginx throw error saying invalid parameter after
adding 'reuseport' in listen directive. (
https://blog.cloudflare.com/the-sad-state-of-linux-socket-balancing/)

Can anyone help me with these questions?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/arut/nginx-rtmp-module/issues/1220, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAbp9g_5BT7nTkGV7zyhYZpnRhT_-4bBks5tbvcrgaJpZM4SfaSM
.

the module can work properly in multiple-processes mode except on Windows platform, since if you publish a stream to a nginx worker, it will relay to other workers through Unix domain sockets (named /tmp/nginx-rtmp.x by default ) on local machine. While on Windows, it doesn't support Unix domain sockets, so if you push a stream to one nginx worker, it can not relay it to other workers. As a result of this, if you play on a worker not that accepted the pushed stream, play will fail. Fortunately, Unix domain socket came to Windows 10 in last year: https://blogs.msdn.microsoft.com/commandline/2017/12/19/af_unix-comes-to-windows, then multiple-processes can work properly on Windows 10.

SO_REUSEPORT is relatively new in Linux kernel since 3.9.x, this module doesn't support it yet.

@chetandhembre here is my test screenshorts, tested with 4000 clients simulated by srs-bench and with 4 nginx workers.

There are problems with recording and control module. Sometimes it works
for hours, sometimes there's race condition and it breaks. I streamed for
30-50k clients and switched to HLS to have protocol much easier to scale.
W dniu czw., 8.03.2018 o 14:16 winshining<EMAIL_ADDRESS>napisał(a):

[image: multiple-processes]
https://user-images.githubusercontent.com/3250905/37152702-32845536-2315-11e8-8fbb-e232f562a7ff.png
[image: benchmark]
https://user-images.githubusercontent.com/3250905/37152678-23e61352-2315-11e8-8f5b-81e7df59f7c3.png
[image: ffplay]
https://user-images.githubusercontent.com/3250905/37152717-3e32ad88-2315-11e8-9bce-fdc9b4a7fb36.png
@chetandhembre https://github.com/chetandhembre here is my test
screenshorts, tested with 4000 clients simulated by srs-bench
https://github.com/ossrs/srs-bench and with 4 nginx workers.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/arut/nginx-rtmp-module/issues/1220#issuecomment-371483381,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAbp9lkVq0UNEUlq76HpIIJTB08FXoKGks5tcS8jgaJpZM4SfaSM
.

@winshining can you share your nginx conf?
@misiek08 currently looking into https://github.com/gnolizuh/BLSS
what you think about it?

@chetandhembre
worker_processes  4;
error_log logs/error.log error;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    keepalive_timeout  65;

    server {
        listen       80;

        location / {
            root   /var/www;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            root /var/www/rtmp;
        }
    }
}

rtmp_auto_push on;
rtmp_auto_push_reconnect 1s;
rtmp_socket_dir /tmp;

rtmp {
    out_queue   4096;
    out_cork    16;
    max_streams 256;

    server {
        listen 1935;

        application myapp {
            live on;
        }
    }
}

But as @misiek08 mentioned, there are some problems with control module when multi-processes are used, since only one process serves a control request at a time. I have no idea about recording problems.


5.1.0  - Syntax error in regular expression in IE11 (referenced from #3304)

Environment
System:

OS: Windows 10 10.0.18363
CPU: (8) x64 Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz
Memory: 2.84 GB / 15.81 GB

Binaries:

Node: 10.21.0 - C:\Program Files\nodejs\node.EXE
Yarn: 1.17.3 - ~\AppData\Roaming\npm\yarn.CMD
npm: 6.14.4 - C:\Program Files\nodejs\npm.CMD

npmPackages:

styled-components: 5.1.0 => 5.1.0

Reproduction
I have noticed similar issue was observed in 5.2 and was fixed however the code of 5.1 is similar to the fix and it is not clear why it fails..
@Link2Twenty This has been fixed as https://github.com/styled-components/styled-components/pull/3267, but the fix is still not released. So you have to avoid using 5.2.0 and wait for a new release.
Originally posted by @koba04 in https://github.com/styled-components/styled-components/issues/3304#issuecomment-706716709
Steps to reproduce
Write some code with styled and open  APP in IE11 , i.e.
"const AutoFillCatch = styled.input'
width: 100%;
height: 48px;
bottom: 0;
border: none;
font-size: 0;
position: absolute;
';"
Expected Behavior
App opens properly
Actual Behavior
App is not opened, console shows SCRIPT5017: Syntax error in regular expression

Issue was due to higher version and resolved after clean 5.1 installation


[Restructuring] Run thcrap through wrapper exes

A big part of the restructuring is to move all the DLLs in a directory. But thcrap_configure.exe and thcrap_launcher.exe have to move with them, but I don't want the user to enter the binaries directory to run thcrap.
The idea is to have small CRT-less exes in the root directory, one of them called thcrap_configure.exe, that just does a CreateProcess("binaries\\thcrap_configure.exe", ...).
They could also install the CRT and the .NET runtime (see #107 and #108).
I already wrote the code, I just need to integrate it.

Closed by 941659324b873318d08ca0ee12fa5d98bf9206fb


Adding UFX.Relay package brings in unwanted analyzers

When I add UFX.Relay into my project, it has the side effect of bringing in Microsoft.VisualStudio.Threading.Analyzers.*, causing many analyzer errors that I can't easily address (huge project, many code owners).
I think this happens as a result of it using Nerdbank.Streams, which itself depends on some Microsoft.VisualStudio.*.
But that seems like strange behavior, if it means that any project using Nerdbank.Streams directly or indirectly is forced into those analyzers.
I couldn't find a way to disable them, other than disabling all analyzers on the project. Maybe this should be viewed as a Nerdbank.Streams issue?

I'll see if it's something that can be resolved in this project otherwise look to get Nerdbank.Streams updated.

I just found https://github.com/dotnet/Nerdbank.Streams/issues/516 and https://github.com/NuGet/Home/issues/6279. Seems it's a long standing nuget limitation, and it lists some workarounds. So probably not much you can do here.

Wow, no prospect of this getting fixed anytime soon then, it might be an option to copy in the parts of Nerdbank.Streams that this project uses as it has a lot of features we are not touching. Not ideal and may not help, but given the prospect of this being used in a large/complex project might be worth considering.

Turns out there is a solution to disable globally, so I think we can get by as it is: https://github.com/NuGet/Home/issues/6279#issuecomment-2450961895


Error when entering too many decimals into withdraw amount

Happened at 19 decimals for me.  We should limit that input to only accept maybe 10 decimal places?  Does not happen with whole numbers, but that should be limited as well.  Maybe an overall character limit.

We could also benefit from a character limit in the Reason box in the withdraw modal as well.

Fixed in #41


What units are bandwidth in?

Bytes per second?  Thought it was bits per second but appears to be off by about a factor of 8.  Hence guessing it is bytes per second...

As the readme says: Bandwidth is in bytes per second.


On Windows XP the editor can't overwrite existing files

Operating system or device:
Windows XP 32bit
Issue description (what happened, and what was expected):
Create a new project, say "hello_world", create a new scene and save it, edit the project settings and set the start scene, then the console window shows

ERROR: close: Condition ' rename_error ' is true.
At: drivers/windows/file_access_windows.cpp:135

and the project didn't get saved (i.e. the start scene didn't changed).
Steps to reproduce:
Already described in issue description.
Link to minimal example project (optional but very welcome):

Sorry, windows XP is no supported
On Mar 2, 2016 12:21, "Jz Pan"<EMAIL_ADDRESS>wrote:

Operating system or device:
Windows XP 32bit
Issue description (what happened, and what was expected):
Create a new project, say "hello_world", create a new scene and save it,
edit the project settings and set the start scene, then the console window
shows
ERROR: close: Condition ' rename_error ' is true.
At: drivers/windows/file_access_windows.cpp:135
and the project didn't get saved (i.e. the start scene didn't changed).
Steps to reproduce:
Already described in issue description.
Link to minimal example project (optional but very welcome):
—
Reply to this email directly or view it on GitHub
https://github.com/godotengine/godot/issues/3901.

Just as a reference here, as of now there will be no part of the pipeline (relating to the 3D part of Godot at least) that is compatible with XP.
The Blender developers just officially pulled support for XP (ie. Blender 2.77 will not run on that OS) amid a decision by the Python developers to do the same thing (so future versions of the Better Collada addon will not work as well).
If you really don't want to go to Windows 10 and don't mind less software options, then I hear Linux Mint has made great strides in usability features lately.


feat: introduce HTTPException

In this PR, I will introduce HTTPException.
Until now, we have not dared to create an Exception class that extends Error. Because we can handle it with the middleware looking up status codes.
app.post('/validator', async (c, next) => {
  await next()
  if (c.res.status === 400) {
    return c.text('Validation error!', 400)
  }
})

But, if 401 error occurs in Basic Auth or Bearer Auth middleware, another middleware cannot handle it because Basic Auth and Bearer Auth middleware immediately returns the Response. We must not fire the next middleware handler for a security issue.
So, when a fatal error occurs, such as an authentication error, we can throw this HTTPException and handle it with app.onError.
app.onError((e, c) => {
  if (e instanceof HTTPException && e.status === 401) {
    return c.json(
      {
        message: 'Custom error message!',
      },
      401
    )
  }
  return c.text('Internal Server Error', 500)
})

It is not usually used, but it is a necessary feature to customize the error message for such an "Unauthorized" error.
This will be merged into "next" branch.

Hi @metrue @usualoma @ThatOneBro and others
If you have any opinion about this feature, please share it. I'll merge it after a while.

Looks good to me! I think it's a good change 👍 I thought about something like this before

I'm not sure if e instanceof UnauthorizedException is better than e instanceof HTTPException && e.status === 401.
Say HTTPException is the base Exception class, and bundled with some built-in Exceptions inherited from it.
Reference: https://docs.nestjs.com/exception-filters#built-in-http-exceptions

Of course, we can create an UnauthorizedException etc., but there will be more code. Also, it is more flexible to do it with only HTTPException.

I'll merge.

Of course, we can create an UnauthorizedException etc., but there will be more code. Also, it is more flexible to do it with only HTTPException.

Thank you for the explanation.

In the latest package, HTTPException not exported properly? I am not able to import it. :(

Hi @subhendukundu !
It's not documented. Can you import it like the following?
import { HTTPException } from 'hono/http-exception'


Getting unicode error while parsing with avro schema

I just downloaded and installed the tool, but when I am trying to validate against my schema it throws
omponent = SchemaParser.parse(schema)
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python2.7/site-packages/aptos/parser.py", line 16, in parse
component = Creator.create(schema.get('type')).unmarshal(schema)
File "/usr/lib/python2.7/site-packages/aptos/primitive.py", line 28, in create
}identifier.class
KeyError: <type 'unicode'>
I dont have any special character that requires unicode in the my data or schema. Is it possible to pass it as variable?

Hey @kchandan, thanks for opening this. Out of curiosity which version of Python are you using?

Python 2.7.5 on CentOS 7

@kchandan aptos only supports Python >=3.5. There is a python_requires keyword for setuptools that should be added to the setup.py module (e.g. python_requires='>=3.5').
Would you mind submitting a PR for this?

I don't have python 3.5 installed but when I try to use python_requires clause in the setup.py I am getting below error
python setup.py
/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'python_requires'
warnings.warn(msg)
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: setup.py --help [cmd1 cmd2 ...]
or: setup.py --help-commands
or: setup.py cmd --help
error: no commands supplied

You would need to run python setup.py install to install the module locally. setuptools should then detect the version of Python and throw an exception for Python versions < 3.5.
I'll submit a PR.

@kchandan I've added the python_requires keyword to the setup module. See 3cad2a5 for details. You'll need Python >=3.5 to install aptos. You can create a Python virtual environment that uses Python >=3.5.


undefined ident for prefixed module constants

System Information
 V doctor
V full version: V 0.3.3 f02b423.5e48817
OS: linux, "Manjaro Linux"
Processor: 16 cpus, 64bit, little endian, 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz

getwd: /home/turiiya/Dev/vlang/test
vexe: /home/turiiya/Dev/vlang/v/v
vexe mtime: 2023-03-27 14:53:38

vroot: OK, value: /home/turiiya/Dev/vlang/v
VMODULES: OK, value: /home/turiiya/.vmodules
VTMP: OK, value: /tmp/v_1000

Git version: git version 2.40.0
Git vroot status: weekly.2023.13-1-g5e48817d (8 commit(s) behind V master)
.git/config present: true

CC version: cc (GCC) 12.2.1 20230201
thirdparty/tcc status: thirdparty-linux-amd64 12f392c3

VLS info
vls version <IP_ADDRESS>cf9d3

Problem Description

Note This will import the module as well. Also, this is not allowed for constants - they must always be prefixed.

Is what is stated in the docs. Auto prefixing constants is also what v fmt does in modules, e.g. when working on a library.
The issue is that a prefixed constant results in an error diagnostic:

undefined ident: my_lib

Expected Output
No error since the code is correct and working.
Actual Output
Diagnostic error.
Steps to Reproduce
module my_lib

const my_const = 'my_const'

fn main() {
	println(my_lib.my_const)
}

Actually, just an error on my side with module directory naming to not end up here:
https://github.com/vlang/v/blob/master/vlib/v/checker/checker.v#L3425

I was linking the project from my Dev/ dir to .vmodules. When I put the directory directly into .vmodules it worked :+1:


Recommendation for SpotlightSequence

I changed new Handler(Looper.getMainLooper()).postDelayed(new Runnable()  to the
new Handler().postDelayed(new Runnable(){ and it works much better for me

Where?


support compactionHeuristic

From @dwelle on August 21, 2017 14:16
diff.compactionHeuristic for better diffs -- see "beautiful diffs" section in https://github.com/blog/2188-git-2-9-has-been-released
Copied from original issue: atom/git-diff#139

Currently we calculate these diffs using libgit2, which does not have this option AFAICT. This would become possible for us if we started computing them instead with the git binary, as the github package does.


New Gitea-Logo

As of #1121, i'll open a new thread to discuss my draft.

Excellent job! It is simple, refined, and it matches the name. Love it!
Small notes

On the main logo, I would place the hanging tag, so the same space is on both sides. Right now the left is slightly bigger than the right. I illustrate:

The hanging thread should be in the centre of tag the circle.

I must say I like this... A lot.
As an extension to this, it would be nice to be able to define custom logos.

Custom Logo is already supported. See docs.gitea.io about Customizing Gitea

lunny, all I can see under that section is the avatar not the actual gitea branding

I think I like this more than https://github.com/go-gitea/gitea/issues/1260, but both are good.
Maybe the cup and the tag should be squares instead of rectangles. Otherwise the logo may not fit well in the favicon or in the Gitea navbar.

The smaller versions look too similar to the git logo imho:

@silverwind it is intended. It is about an application which sole existence revolves around git. I see absolutely no issue with it.

@Fastidious @silverwind we wouldn't get any liscening problems with it at git is also an open-source project, wouldn't we?
But to be sure, we maybe should change the color to green, also because green is somehow more of a "gitea-color"

I definitely prefer this to #1260, if it's of any importance I just held a snap poll and my office is split 12/4 in favour of this one ;p

Well, I'd prefer a different color at least. like the green ones in https://github.com/go-gitea/gitea/issues/1260.
I'm not sure I like the logo here. The big one is a bit too complex for my taste, and the smaller ones aren't square which can be an issue.

I've changed the colour to green, also darkened the colour of the cup a bit and shortened the teabag rope. I think it is better recognizable with the green colour (so you won't think it is git).

I like the green one.

me, too. green!

green + 1

Very nice. Great work!

The favicon is barely visible, too much detail.

@qdbdbp Yes, i'd agree with that. But i think the favicon would be recognizable as the one of Gitea by the coulour and the white kinda-thing (-> the git icon). It's the same with the gitlogo.

(Gitlogo for comparison)

I've made a quick test for the favicon and decided to shorten the rope even more.
First Try:

Final Result:

Small icon still looks odd, and rather out of place.

Removed the rope completly:

But in fact, maybe this cup is not a traditional tea cup. But the original cup is. At least in China.

It is'nt a traditional tea cup here in europe either, but is that an issue?
I could change it though, but it'd probably look more like #1260

I'd love to see a cup-of-tea variant of this (rather than a mug-of-tea).

@kwill look a this one: https://github.com/go-gitea/gitea/issues/1260

Do the two tea bags have the same aspect ratio? Looks like they don't, which is kind of strange to me.

I am kind of waiting for a gopher to pop out from the tea cup or just relaxing in hot water on one side ☺

Please go to #1516 to vote.

Is there a place I can download this?


Drive by improvements

Reduce size of the image and number of layers in dockerfile, add links to badges, user shorter CLI args.

macOS CI fails with unrelated
denied: requested access to the resource is denied

Thanks a lot for the improvements! I've excluded pushing the Docker image for pull requests, so CI checks should work properly for the future PRs.


Move aliases definitions into the binding definition

This has a few advantages:

Reduce duplication
No differences between things like number of arguments (in the old version one might add an extra argument to one method en forget the aliases).
Having information on what methods are created as aliases helps with some checks of UnboundMethod, where aliased methods are seen as equal https://github.com/ruby/spec/blob/c91ccefa3eec64a8e11a44306b1776411c6fcb75/core/unboundmethod/name_spec.rb#L9.

This change only includes one alias for now, I want to have the idea and framework approved before I spend my time rewriting the other aliases.

For my own reference: the following duplicates are kept:
Found alias on Array: `===` vs `==` (type: `define_method`)
Found alias on Array: `intersection` vs `&` (type: `define_method`)
Found alias on Array: `to_ary` vs `to_a` (type: `define_method`)
Found alias on Array: `|` vs `union` (type: `define_method`)
Found alias on ENV: `each_pair` vs `each` (type: `define_singleton_method`)
Found alias on ENV: `size` vs `length` (type: `define_singleton_method`)
Found alias on ENV: `to_hash` vs `to_h` (type: `define_singleton_method`)
Found alias on ENV: `value?` vs `has_value?` (type: `define_singleton_method`)
Found alias on FalseClass: `^` vs `|` (type: `define_method`)
Found alias on File: `realpath` vs `realdirpath` (type: `define_singleton_method`)
Found alias on File: `unlink` vs `delete` (type: `define_singleton_method`)
Found alias on File: `zero?` vs `empty?` (type: `define_singleton_method`)
Found alias on FileTest: `executable_real?` vs `executable?` (type: `define_singleton_method`)
Found alias on Dir: `pwd` vs `getwd` (type: `define_singleton_method`)
Found alias on Dir: `rmdir` vs `delete` (type: `define_singleton_method`)
Found alias on Dir: `unlink` vs `delete` (type: `define_singleton_method`)
Found alias on Float: `quo` vs `/` (type: `define_method`)
Found alias on Kernel: `eql?` vs `===` (type: `define_method`)
Found alias on Kernel: `kind_of?` vs `is_a?` (type: `define_method`)
Found alias on Kernel: `public_methods` vs `methods` (type: `define_method`)
Found alias on Kernel: `to_s` vs `inspect` (type: `define_method`)
Found alias on Module: `attr_reader` vs `attr` (type: `define_method`)
Found alias on NilClass: `^` vs `|` (type: `define_method`)
Found alias on Range: `step` vs `%` (type: `define_method`)

Most often this was because the Ruby docs did not describe an explicit alias (especially ENV and File were subject to this). Sometimes the method did not exist according to the Ruby documentation (Array#=== and most of the leftovers on Kernel). FileTest#executable? is actually different from FileTest#exectuable_real? (Using effective or real user id), so that's a bug on our side.

For the stats: the generated bindings.cpp has shrunk from 8780 to 8136 lines


beam_PreCommit_PythonLint_Commit takes 50+ minutes to execute

The beam_PreCommit_PythonLint_Commit phase takes 50**** minutes to execute as seen here:

https://builds.apache.org/job/beam_PreCommit_PythonLint_Commit/4252/ (53 minutes)
https://builds.apache.org/job/beam_PreCommit_PythonLint_Commit/4253/ (52 minutes)

According to the build blame report the mean time is ~10 minutes (https://builds.apache.org/job/beam_PreCommit_PythonLint_Commit/buildTimeBlameReport/)
Imported from Jira BEAM-10255. Original Jira may contain additional context.
Reported by: tysonjh.

not observed for a while


ImportError: cannot import name 'utils' from 'matcha'

I am trying to train my own dataset. I keep getting this error message when I run python matcha/train.py experiment=ljspeech . Anyone know how to fix this?

Did you do 'pip install -e .'?

Sorry to bother, I am very new to coding. when I did that, it gave me this message.
Usage:
pip install [options]  [package-index-options] ...
pip install [options] -r  [package-index-options] ...
pip install [options] [-e]  ...
pip install [options] [-e]  ...
pip install [options] <archive url/path> ...
-e option requires 1 argument

Just put a dot/period/point at the end '.'

Ok! Thank you so much for your help! I put a period on the end this time, and I think it successfully installed '-e.' However, now when i run 'python matcha/train.py experiment=ljspeech' I am still getting the error 'ImportError: cannot import name 'utils' from 'matcha''
What am I doing wrong?

I am trying to resolve this issue, but I cannot seem to figure out how. I want to train the model on the libritts dataset and I think I am preparing the files directly. I am trying to follow the instructions on the main page, but I am still having this issue. Please let me know if you have any suggestions. Thanks!

Could you share the exact command and screenshot that you've used? It should have been working at this point. Can you make sure that you are in the correct environment?

issue is solved. The matcha.py file was causing issues because it had the same name as the folder


add tokenExpired event to gross payment chart

This adds the expiredToken event to the justifi-gross-payment-chart component.
It's emitted when gross-payment-details-core emits error-event with the error "Not Authenticated` which is also new.
This branch was branched off from business-details-token-expired-event
Previous PR:
https://github.com/justifi-tech/web-component-library/pull/427
Links
https://github.com/justifi-tech/web-component-library/issues/424
Developer considerations

On any task

[ ] Previous unit and e2e tests are passing
[ ] Perform dev QA

On new features

[ ] Add unit tests

Developer QA steps
Expired token: eyJraWQiOiJqdXN0aWZpLTQxNTczZmIyNjU0MDVmNDY0Y2UyIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2F1dGguanVzdGlmaS1zdGFnaW5nLmNvbS8iLCJhenAiOiJ3Y3RfNVNKckZPWTI0YXJ5bUJRc2xTY3hvRiIsInN1YiI6IndjdF81U0pyRk9ZMjRhcnltQlFzbFNjeG9GQHNlc3Npb25zIiwiYXVkIjoiaHR0cHM6Ly9hcGkuanVzdGlmaS5haS92MSIsImd0eSI6ImNsaWVudC1jcmVkZW50aWFscyIsInBlcm1pc3Npb25zIjpbIndyaXRlOmFjY291bnQ6YWNjXzMzTzlESWdJZVMzOTFMSUxIRVIxZmYiLCJ3cml0ZTpidXNpbmVzczpiaXpfNm02VDlESUFtaW1WRlFZd2FoT2xQQiJdLCJleHAiOjE3MTA3OTc1MjksImlhdCI6MTcxMDc5MzkyOSwicGxhdGZvcm1fYWNjb3VudF9pZCI6ImFjY18zRklibDNUSWhUVUJoWGt3YVRYNTlaIn0.XTIyf8YsbqRKeSOPGj-LS-W2HC8D1QoXVOo7TMeRM6fE-TA2n1xc5naF1v57ddTvbg8MKqTBG0ssPsBvgk0db7WVtMNgM_WPSMje-0vRokJAH9aCyhYgKDA9IBhEAZ4ibbJiXMw11gwiB8Xi89952r-j01Qt-4kTVK2_pyeWvjnDdANM5w-nkgFdKffeIdc-C1P7Yvze3auiRZSR7PvGBJVgrO7U9L7T9EeyLer0xj26hlgIX-45AucSN3NVr7WZkjrX95ikC2fKhw5XG6U6yCD8MUFJ5wT4WO-yh4Ma7qdJg-ZK7gie1RiWF57ve4W8M3_uFOb8xrCz1AKqXjcugA
[ ] - When trying to load a payment with an expired token, you should see in the actions tab on Storybook that an expiredToken event was logged.
[ ] - When loading a payment with a valid token, actions tab should be clear

Approved CR and Dev QA
🍔


chore: update commercetools-platform-sdk

This PR updates the commercetools-platform-sdk to support the latest types

Redundant as we are integrating the client in our own repository


Table of PowerShell cmdlets isn't

"This table lists the PowerShell cmdlets" doesn't list the cmdlets (there are only three).
The column marked PowerShell cmdlets seems to refer to property names.

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

ID: 43b0a2f2-0aa1-9a77-a87b-18df9c43e570
Version Independent ID: f3881175-87dd-7183-593d-acd57b7ff5aa
Content: Turn on exploit protection to help mitigate against attacks - Windows security
Content Source: windows/security/threat-protection/microsoft-defender-atp/enable-exploit-protection.md
Product: w10
GitHub Login: @denisebmsft
Microsoft Alias: deniseb

Current description text:

"This table lists the PowerShell cmdlets (and associated audit mode cmdlet) that can be used to configure each mitigation."

Suggested description:
This table lists the individual mitigations (and audits, when available) to be used with the -Enable or -Disable cmdlet parameters.

Current description text:

"This table lists the PowerShell cmdlets (and associated audit mode cmdlet) that can be used to configure each mitigation."

Suggested description:
This table lists the individual mitigations (and audits, when available) to be used with the -Enable or -Disable cmdlet parameters.

If I can get a verification that this is a useful improvement, I am happy to provide a PR to change the current sentence.

If I can get a verification that this is a useful improvement, I am happy to provide a PR to change the current sentence.

Yes, that seams to be a better description.
Thanks.

Yes, that seams to be a better description.
Thanks.

Derp. I did not notice that this ticket is about the very same document page as the previous ticket I created a PR for.
Oh well. I will make another commit in my existing PR #8930 to make sure one of them does not cause a file conflict with the other.

Derp. I did not notice that this ticket is about the very same document page as the previous ticket I created a PR for.
Oh well. I will make another commit in my existing PR #8930 to make sure one of them does not cause a file conflict with the other.

(also ref. #8927 )

(also ref. #8927 )

Yesterday night i seen this issuse on mobile, so i would create PR today , but  @illfated, you is the winner, Good luck

Yesterday night i seen this issuse on mobile, so i would create PR today , but  @illfated, you is the winner, Good luck


use bake method for NavigationMeshGenerator in Runtime

Use bake with NavigationMeshGenerator in the Runtime in Godot 3.x (Windows, Android)
Hello
The use of the Bake in NavigationMeshGenerator method did not work in runtime (because of EditorProgress which wants to display a message in runtime) but only in the editor (hint_editor). This fix allows you to generate navigationmesh directly in the runtime. This is very useful, in particular, when creating procedural or random level.
Now, NavigationMeshGenerator can be used in the editor and in the Runtime for Plateform Windows and Android
(with and without flag tool=no or tool=yes)
Thanks

Hello, can you tell me what action I still need to take for this code to be verified ?

It would be great to have this feature in Godot 3.x. Without the ability to bake navigation meshes during runtime, it's impossible to create certain kinds of games with Godot (RTS, City Builders, Simulation, etc). While we wait for Godot 4 and its new navigation system, allowing the bake function to be used during runtime would be a game changer. So could someone please take a look at this?

While this change is useful, remember that it will increase the export templates' binary size due to the Recast module now being compiled in export templates. Binary sizes are especially important on mobile/web platforms, so users will have to compile custom export templates if they wish to keep the reduced binary sizes.

Hello, Braces added in the code

Hello, the test has not passed yet, could someone help me figure out what is missing in the code to pass the static checks?
thank you

Copying from the CI log:
diff --git a/modules/recast/navigation_mesh_generator.cpp b/modules/recast/navigation_mesh_generator.cpp
index 10c9e2c..2d32ad1 100644
--- a/modules/recast/navigation_mesh_generator.cpp
+++ b/modules/recast/navigation_mesh_generator.cpp
@@ -297,7 +297,7 @@ void EditorNavigationMeshGenerator::_convert_detail_mesh_to_native_navigation_me
 }

 #ifdef TOOLS_ENABLED
-void EditorNavigationMeshGenerator::_build_recast_navigation_mesh(Ref<NavigationMesh> p_nav_mesh,
+void EditorNavigationMeshGenerator::_build_recast_navigation_mesh(Ref<NavigationMesh> p_nav_mesh,
 		rcHeightfield *hf, rcCompactHeightfield *chf, rcContourSet *cset, rcPolyMesh *poly_mesh, rcPolyMeshDetail *detail_mesh,
 		Vector<float> &vertices, Vector<int> &indices , EditorProgress *ep = nullptr) {
 #else
@@ -462,7 +462,7 @@ void EditorNavigationMeshGenerator::_build_recast_navigation_mesh(Ref<Navigation
 	if (ep) {
 		ep->step(TTR("Converting to native navigation mesh..."), 10);
 	}
-#endif
+#endif

 	_convert_detail_mesh_to_native_navigation_mesh(detail_mesh, p_nav_mesh);

@@ -492,11 +492,11 @@ void EditorNavigationMeshGenerator::bake(Ref<NavigationMesh> p_nav_mesh, Node *p
 		ep = memnew(EditorProgress("bake", TTR("Navigation Mesh Generator Setup:"), 11));
 		ep->step(TTR("Parsing Geometry..."), 0);
 	}
-#endif
+#endif

 	ERR_FAIL_COND(!p_nav_mesh.is_valid());
-
+
 	Vector<float> vertices;
 	Vector<int> indices;

diff --git a/modules/recast/navigation_mesh_generator.h b/modules/recast/navigation_mesh_generator.h
index afa919c..c3b9162 100644
--- a/modules/recast/navigation_mesh_generator.h
+++ b/modules/recast/navigation_mesh_generator.h
@@ -61,7 +61,7 @@ protected:
 	static void _build_recast_navigation_mesh(Ref<NavigationMesh> p_nav_mesh,
 			rcHeightfield *hf, rcCompactHeightfield *chf, rcContourSet *cset, rcPolyMesh *poly_mesh,
 			rcPolyMeshDetail *detail_mesh, Vector<float> &vertices, Vector<int> &indices);
-#endif
+#endif

 public:
 	static EditorNavigationMeshGenerator *get_singleton();

*** Aborting, please fix your commit(s) with 'git commit --amend' or 'git rebase -i <hash>'

You need to remove trailing whitespace at the end of some lines. I recommend configuring your editor to do so automatically.

Hi! I just wanted to thank thoced for all his work in this PR. Do you guys think it's still possible for this feature to be included in the next release? Sorry if I'm being annoying!

Hello everyone
What is left for me to do now?
Thank you

As Calinou mentioned, all commits must be squashed to a single one before the PR can be merged.
Here are the instructions on how to do it.

"Cannot rebase: You have unstaged changes.
Please commit or stash them. "

This means that you have local changes to files which have not been committed. You either need to commit them, or discard them, before you can do operations on the Git history. You can also "stash them" with git stash, which puts them away, and you can recall them with git stash pop later on.
You can see what changes you have pending with git status and git diff. See https://docs.godotengine.org/en/latest/community/contributing/pr_workflow.html#making-changes for some Git tips.

Superseded by https://github.com/godotengine/godot/pull/54634.


Revert "Remove dependency of dmd on .cloned"

Reverts D-Programming-Language/dlang.org#1050
Fixes issue 14915 - [REG2.068.0] can't build phobos-release
I don't know how to do properly what #1050 aimed for. In the short term, I think it's more important to get a working build again.

I think only reverting the second part would fix the build problem at hand while also not touching whatever @andralex was actually trying to fix.

I still don't see any issue with adding a touch invocation, I think it would fix everything.

An alternative would be to instead of depending on a .cloned file we made up, to depend on a source file we know is going to be in the tree and that is part of the dmd build process.

An alternative would be to instead of depending on a .cloned file we made up, to depend on a source file we know is going to be in the tree and that is part of the dmd build process.

I have a better solution already.

See #1077


Support disabling the sbt task linter

[x] I've read the CONTRIBUTING guidelines
This PR resolves #3266. It also does some minor clean up of the TaskLinterDSL to make it more maintainable in general.

cc @dwijnand @eed3si9n. I whipped this up fairly quickly and didn't give a ton of thought to the names and project layout.

I reviewed it really really quick and it looked good, but I also approve of fixing that issue in general.  Thanks, Ethan.

This is awesome. Thanks @eatkins!

Where did that fix come from?!  Very nice.
If you want a more common source of dynamic tasks out some projects in a seq and then map the seq, scope a key and .value that.  Users try to do that all the time.
Seq(foo, bar, baz).map(p =>
  (bark in p).value
)

Funnily enough, this is all related #3718. I'm working on trying to implement the taskSources idea in the comment at the bottom. This requires traversing the list of dependencies for each task that is being watched to extract all of the taskSources dependencies. While working on that, I realized that dynamic tasks are a huge problem because we lose the dependency information for dynamic tasks. I started working on modifying the Def.taskDyn macro to try and capture all of the dependencies for the Def.initialize instances that are referenced in the dynamic task definition. This forced me to get quite familiar with the TaskLinterDSL at which point I decided to go ahead and fix #3110 and #3266, both of which had been irritating me for a long time.


[Bug]: Not able to convert TDE table to be accessed as columnar

I'm seeking to implement transparent data encryption (TDE) to enhance the security of my Hydra database (PostgreSQL 16). I explored two potential solutions:

https://www.percona.com/blog/using-the-transparent-data-encryption-extension-pg_tde-with-postgresql/
https://www.cybertec-postgresql.com/en/products/postgresql-transparent-data-encryption/

I attempted to install and enable the Percona pg_tde extension, following the instructions provided at https://github.com/Percona-Lab/pg_tde?tab=readme-ov-file#install-from-package.
However, while I successfully added the extension to shared_preload_libraries, I am encountering an issue enabling it.
Error I am getting is

ERROR:  extension "pg_tde" is not available
DETAIL:  Could not open extension control file "/usr/share/postgresql/16/extension/pg_tde.control": No such file or directory.
HINT:  The extension must first be installed on the system where PostgreSQL is running.

While checking the filesystem I can see that control files are getting generated at different location and it /root/share/postgresql/16/extension/pg_tde.control
After copying files in setup directory I could enable TDE and create table that is TDE enabled but can not change the access method to columnar
Cannot convert table: table public.sbtest1 is not heap or colummnar

pg_tde and hydra columnar both use the same tableam functionality, and thus only one can be used per table (they cannot "stack").
the cybertec tde appears to be an abandoned fork of postgres (last updated for 12.3).
you might have better luck with full disk encryption in the kernel, but pg_tde will definitely not work in conjunction with columnar.

As Jerry mentioned, tde uses tableam so there's no prospect of using both simultaneously.
You can copy data from TDE to Hydra Columnar using:
INSERT INTO new_table SELECT * FROM source_table;```


Lab 8: Mismatch between instructions and template - different sku

Module: 2
Lab: 8
Task: 1
Step: 4
Lab instructions says that ">Note: Review the content of the template and note that it deploys an Azure VM hosting Windows Server 2019 Datacenter.", but template uses 2016 Datacenter.
Lines:
https://github.com/MicrosoftLearning/AZ500-AzureSecurityTechnologies/blob/fb56e8fec5f59b4f73fb1dd16e12d9aac200ee21/Instructions/Labs/LAB_08_AzureFirewall.md#L64
https://github.com/MicrosoftLearning/AZ500-AzureSecurityTechnologies/blob/71850cf792e7a59cf81dbc171fb88fb1d1a79bf4/Allfiles/Labs/08/template.json#L418

MOC-Labs-Review confirms this issue.