Add SSL_writev and SSL_writev_ex

I would like to implement SSL_writev() and SSL_writev_ex() to support writing vectored data in a single record.
As discussed here, the current solution would be having the user consolidates the data manually then call SSL_write() on the consolidated data.
Therefore, I propose adding two new APIs to combine this process:
int SSL_writev(SSL *s, const struct iovec *iov, int iovcnt);
int SSL_writev_ex(SSL *s, const struct iovec *iov, size_t iovcnt, size_t *written);

The goal here is to implement them in such a way that there is a single copy.
It will require adding ssl_writev() and ssl_writev_bytes in struct ssl_method_st. SSL_writev then can make a call to ssl_writev_internal where it calls ssl3_writev.
Depending on the negotiated protocols, ssl3_writev then may call ssl3_writev_bytes or dtls1_writev_app_data_bytes.
We can add tls_writev_records_default to concatenate the data here. To support compression, we may also need to implement separate compress function that supports compressing vectored data without having to incur additional copy through streaming (except oneshot compression?).

I'm wondering why this is required?  writev exists to avoid copying data, however the encryption step in TLS is a copy step.
I.e. why not call SSL_write multiple times?
Do you have any performance figures indicating that this is a significant gain?

The goal here is to reduce the overhead of sending multiple records when the payloads are small enough to be combined into a single record. Also, from the API perspective, many TCP libraries supports scatter/gather I/O so I think it is reasonable to implement such APIs here as well.

I thought we coalesced records already.  @mattcaswell ?
I'm pretty sure there is an option to force it.

I thought we coalesced records already. @mattcaswell ? I'm pretty sure there is an option to force it.
I'm not against having this API, it's just that it means an ongoing maintenance burden supporting it which means justifying it. The QUIC work is adding something similar.

Should I include the implementation of QUIC as well? I think we can implement something similar to ossl_quic_sstream_append that pushes the vectors in to the ring buffer.

We do not have single copy public API for QUIC yet. The internals are mostly written with single copy in mind but there are things missing.
And this API SSL_writev is not the right api because you would need the SSL object to take over the buffers until it stops needing them.

So in the case of QUIC protocol, what should be the expected behavior for SSL_writev()?

Neither of these would be acceptable. IMO converting it to individiual ossl_sstream() calls would be acceptable, except it still does not avoid copying the data into the ring buffer.
It is unclear if this API is something we want, adding OTC hold.

https://github.com/peppapighs/ssl-writev-benchmark/blob/implementation/README.md
Here is the benchmark result showing the performance of this SSL_writev() implementation. Hopefully, this will contribute to your decision.

Great work.  That's a larger improvement than I expected.

There is a bug in my benchmark result where the statistics of SSL_writev() is higher than usual (the previous result of SSL_writev() was calculated from data points of SSL_writev() combined with SSL_write()). This has been fixed.
I also included the execution time of combining vectors into a single buffer and calling SSL_write() to serve as the baseline performance. The updated result can be viewed in the same README file.

Thank you for the benchmark results.
Not surprisingly the results for SSL_writev() and SSL_write() with coalescing the buffer before the call do not differ significantly. IMO that makes the SSL_writev() call rather a convenience function. This does not preclude adding it but perhaps some API that has single-copy semantics in mind (i.e. scatter/gather) would be a better idea.

The implementation right now saves a single copy when compared to coalescing method. If you have any other ideas on how we can implement this API, I am willing to help implement them.

It is not a problem with the implementation. It is a problem with how QUIC does resending frames when packets are lost. Basically this API won't fit its model.

May I know what is the plan for this issue? Are we going to wait for QUIC implementation to be complete before we revisit it?

Yes, please add one. It is quite a common thing to assemble data from multiple places before sending it via TLS. Now assembling all data in one buffer is required to avoid excessive TLS records, and often that implies extra memory copying. SSL_weitev() would have solved this one nicely.

Can I ask what's the status of this?
Looking at the comment under the pull request, the 2 blocking points are

There could be other ways to implement this without a new API, for example by allowing libssl to maintain an in-progress unfinished record across multiple SSL_write calls. We would need a suitable API to force flushing; possibly one already exists(?).

Wouldn't this break backwards compatibility (the new SSL_write function does not always flush, so code that relies on this behavior will become incorrect)?
But otherwise sounds reasonable?

This API creates a dependency on struct iovec, which is not available on all platforms and thus cannot be merged as is. It would need revision with portability in mind. We have already created our own internal iovec-like structures for internal use with our QUIC code.

You mean OSSL_QTX_IOVEC? Maybe we can expose the structure and consolidate the implementation?
Although strictly speaking the linked pull request does not create a dependency on struct iovec (it defines struct iovec independently if it's not available on a given platform). We could remove the guarantee in the API that struct iovec is identical to that of the operating system, or make an alias under a different name.

To answer your immediate question, this issue is unfortunately stalled for lack of time to address it.  Its marked for consideration in a future release, but that is not a time guarantee.  If you have interest in writing a PR for it, I'm happy to assign it to you as a community issue.

Yes, I'm interested in writing a PR.
But what design of the API do you prefer (considering that the previous pull request are not merged)?
Apart from writev, another possibility of implementing something like SSL_cork() … SL_uncork() which buffers every SSL_write() calls inside.

we should have some better guidance once OTC discusses this

More thoughts on this, I wasn't particularly concerned with this change but one remark seems to have stuck in my mind, the disqualifying idea that SSL_writev() would be a mere convenience on top of SSL_write().
I hope that my poll-once-write-once remark is in itself an argument against the idea of the function being just a convenience.
The question of portability is near and dear to me so I can only sympathize with this counter-argument.
I'd like to postulate the idea of SSL_write() becoming the convenience and SSL_writev() actually becoming the norm:
#ifdef OPENSSL_NO_IOVEC
typedef struct {
	void   *iov_base;
	size_t  iov_len;
} SSL_iovec;
#else
typedef struct iovec SSL_iovec;
#endif

int
SSL_writev(SSL *ssl, const SSL_iovec *iov, int num)
{

	/* current write logic, feeding from multiple buffers at once */
}

int
SSL_write(SSL *ssl, const void *buf, int num)
{
	SSL_iovec iov;

	iov.iov_base = (void *)buf;
	iov.iov_len = num;
	return (SSL_writev(ssl, &iov, 1));
}

On targets that provide a struct iovec definition you get a proper integration, and otherwise a really thin compatibility layer. It's up to the SSL_writev() caller to deal with partial writes just like a regular writev() so it shouldn't complicate the current logic beyond iterating over buffers.


Add all Float methods

http://ruby-doc.org/core-2.2.0/Float.html

Important methods are implement. Additional ones are less important and can be added later (along with a dedicated integer type).


[5.2] Allow Validator Interaction on ValidatesRequests

I tried to squash my commits in #11979 but messed up so I just created a new PR.
Allow interaction with the Validator instance on ValidatesRequests by calling passing a callback as last parameter in validate or validateWithBag.
Example:
/**
 * Store a new game collector.
 *
 * @param  Request  $request
 * @return Response
 */
public function store(Request $request)
{
    $this->validate($request, [
        'email' => 'required|email',
        'games' => 'required|numeric',
    ], [], [], function($validator) {
        $validator->sometimes('reason', 'required|max:500', function($input) {
            return $input->games >= 100;
        });
    });

    // The game collector is valid, store in database...
}

:+1:

I don't think having to add so many arguments is elegant or intuitive.
I think it's make more sense to split the functionality in validate into multiple methods, so that it can be called separately.
Something like this:
public function store(Request $request)
{
    $validator = $this->validator($request, [
        'email' => 'required|email',
        'games' => 'required|numeric',
    ]);

    $validator->sometimes('reason', 'required|max:500', function($input) {
        return $input->games >= 100;
    });

    $this->runValidation($validator);

    // The game collector is valid, store in database...
}

The method names there could probably be a little better. It's only for illustrative purposes.

$this->runValidation($validator, $request);

Why would you need to pass thru the $request object again? I think it's a pretty nice idea, I don't like too many parameters either.

The $request object is used in the validation error.

Would it be nicer to have some form of 'RequestValidatorDecorator' that way you wouldn't have to pass thru the request object twice, or even the validator instance? It simplifies and makes the api much nicer to work with. Something like:
public function store(Request $request)
{
    $validator = $this->validator($request, [
        'email' => 'required|email',
        'games' => 'required|numeric',
    ]);

    $validator->sometimes('reason', 'required|max:500', function($input) {
        return $input->games >= 100;
    });

    $validator->run();

    // The game collector is valid, store in database...
}

$this->validator(

You can still do that using the facade?

Can we just do this?
https://github.com/laravel/framework/commit/e7fc654d3073562b163e1a97a0f6115895400892


Request: Skip the Parsedown Rendering

Hellow,
Is it possible to add a filter (or something) to skip the Parsedown Rendering within the Page class and to pass the plain content to an own rendering library?
I'm asking because my tail.writer script also supports Textile and BBCodes, which isn't supported by Bludit directly. My current solution returns the already rendered HTML Code, when the page gets saved. This solution doesn't allow to show the content back in the respective Markup code, of course. (I'm currently try another solution, which stores the Markup version of the content separately of the HTML Content and to "just" bypass it on the admin interface. But a core solution to just use another Rendering library would be way better.)
Thanks.
Sincerely,
Sam

Hi,
Is good idea to enable or disable the parser, I will check how I can do it.
Meanwhile Bludit keep both content, and contentRaw variable has the content without parsed.
$page->contentRaw()

@SamBrishes so at the end you can use the method I mention which has the content in raw format, without the markdown parse, it's what you need ?

Hellow,
no, not really. The problem isn't to get the raw content, because I'm not able to store the raw content. I need to pre-render the BBCodes / the textile Markup and store it as HTML. Otherwise no frontend template would be able to show it as HTML, because the content() method, which is used by each Bludit template, uses Parsedown to render the raw content. If this would be skippable / changeable, I would be able to store the plain / raw BBCodes (or Textile Markup).
Sincerely,
Sam.

It is not bad to have option to skip markdown parsing or better enable markdown parsing by option. Most of users in new versions use html editor to input content.

Done.
https://github.com/bludit/bludit/commit/3ab8c4c0a630b86eedd79020c34d1758f0d2726d


test: move a few tests from unit to integration

This blocks #3762, because we are snapshoting a struct that has different fields on Windows.
So I've made these tests into regular SQL tests.

LGTM


Can't log into dashboard

Hi, I was planning to create a new user, so I can login with that new one. but admin user login to dashboard is not working, common user can't log into it either. I get the error like the attached screenshot:

From the log trace, I see following error.  Thanks for any help.
App 112 stdout: ActionView::Template::Error (undefined method `display_username' for nil:NilClass):

App 112 stdout:     10:           - if activity.owner == activity.recipient

App 112 stdout:     11:             = "#{activity_owner(activity)} removed itself "

App 112 stdout:     12:           - else

App 112 stdout:     13:             = "#{activity_owner(activity)} removed user #{activity.recipient.display_username} "

App 112 stdout:     14:         = "from the "

App 112 stdout:     15:         = link_to activity.trackable.name, activity.trackable

App 112 stdout:     16:         |  team

App 112 stdout:   app/views/public_activity/team/_remove_member.html.slim:13:in `_app_views_public_activity_team__remove_member_html_slim___2332806370776785371_50301540'

App 112 stdout:   app/views/dashboard/index.html.slim:9:in `block in _app_views_dashboard_index_html_slim__2415825051262847868_43426440'

App 112 stdout:   app/views/dashboard/index.html.slim:8:in `_app_views_dashboard_index_html_slim__2415825051262847868_43426440'

App 112 stdout:

I cannot reproduce this problem:

Do you have a clear step-by-step guide on how to reproduce it ?
Which version (or commit) of Portus are you running on ?

@lobeck I cannot reproduce this on master (see screenshot), and 2.3 shouldn't be affected either. Which version are you using ?

This was tested with 2.2. Can you repeat your test with the following steps:

create user
add user to group
remove user from group
delete user

The user actually needs to be deleted from the database. This might be fixed with 2.3 but currently i can't test this.

Yeah, this is not reproducible in 2.3 or in master. Closing. Thanks for the feedback!

I got same issue when use docker portus latest version (Version: 2.3.3)

Started GET "/admin/dashboard" for  at 2018-09-17 07:30:03 +0000
Processing by Admin::DashboardController#index as HTML
Rendered public_activity/repository/_push.html.slim (119.8ms)
Rendered public_activity/repository/_push.html.slim (39.4ms)
Rendered public_activity/repository/_push.html.slim (2.6ms)
Rendered public_activity/repository/_push.html.slim (19.3ms)
Rendered public_activity/repository/_push.html.slim (19.1ms)
Rendered public_activity/repository/_push.html.slim (40.5ms)
Rendered public_activity/repository/_push.html.slim (20.4ms)
Rendered public_activity/repository/_push.html.slim (2.3ms)
Rendered public_activity/repository/_push.html.slim (20.0ms)
Rendered public_activity/repository/_push.html.slim (39.9ms)
Rendered public_activity/namespace/_create.html.slim (60.2ms)
Rendered public_activity/repository/_push.html.slim (18.8ms)
Rendered public_activity/repository/_push.html.slim (20.2ms)
Rendered public_activity/user/_delete.html.slim (45.3ms)
Rendered public_activity/namespace/_create.html.slim (40.4ms)
Rendered public_activity/team/_create.html.slim (42.7ms)
Rendered public_activity/repository/_push.html.slim (39.0ms)
Rendered public_activity/team/_remove_member.html.slim (100.6ms)
Rendered admin/dashboard/index.html.slim within layouts/application (917.0ms)
Completed 401 Unauthorized in 998ms (ActiveRecord: 214.4ms)

ActionView::Template::Error (undefined method display_username' for nil:NilClass):     10:           - if activity.owner == activity.recipient     11:             = "#{activity_owner(activity)} removed itself "     12:           - else     13:             = "#{activity_owner(activity)} removed user #{activity.recipient.display_username} "     14:         = "from the "     15:         = link_to activity_team(activity), activity.trackable     16:         |  team   app/views/public_activity/team/_remove_member.html.slim:13:in _app_views_public_activity_team__remove_member_html_slim___4308758539957256266_69869459651980'
app/views/admin/dashboard/index.html.slim:75:in block in _app_views_admin_dashboard_index_html_slim___2417512697876559968_69869454737800'   app/views/admin/dashboard/index.html.slim:74:in _app_views_admin_dashboard_index_html_slim___2417512697876559968_69869454737800'
app/middleware/catch_json_parse_errors.rb:11:in `call'


Redirect healing pavilion guides

What does this change?
#11181
Redirects Healing Pavilion exhibition guide to the new formats.
Once we redirect id -> uid, it will probably be ok to remove it as they have the same UIDs? To see then.
Once this gets merged, I'll do the required changes in Prismic.
How to test
Run Prismic staging and check out the new guides (I've made them the official ones in staging). Compare the content with prod and see if it checks out.
How can we measure success?
One less unsupported document!
Have we considered potential risks?
Pretty low risk as the exhibition isn't on anymore.

Outside of the scope of this PR and may have already been discussed- but just read this as 42 minutes twice before realising. Again, may have been discussed/dismissed elsewhere but is there potential for logic to change this to seconds should the time be <01:00

@georgiaewhitney I can't recall this specific suggestion having been discussed! Could be one for the experience channel 👍


pvsrange vec2 + eyezoom

requires https://github.com/space-wizards/RobustToolbox/pull/2676

tests work locally, nfi what githubs problem is


[5.2] Add filtered() method on Request for casting empty strings as null.

If your migration schema has nullable() string fields, Eloquent mutators need to be set on every nullable field if you want Model::create($request->all()) to actually store null values from incoming text inputs.
This proposition would give the user the to run Model::create($request->filtered()).  A strict check is made against the array so that all empty strings are mapped to null, and thus null values would be sent to database.
Note: User would have to understand that using create($request->filtered()) would require nullable fields on their schema to allow for these null values.  In cases where this might be a problem, the user can still use create($request->all()) and mutate to null values on a field-by-field basis.
Also, maybe a better method name could be suggested for clarity on what this method is doing?  Maybe something like allNullable()?  Idk

I suggest calling it filled().

Yeah, they need to be converted to null, not removed.  The reason is for edits/updates.  Imagine you have a field that contains text, but you want to update that field to null... if you don't explicitly pass in null, then the field will not be updated at all.

Going to hold off on this one for now. You can use Request::macro to define your own request extension methods though. :heart:

Fair enough, thanks @taylorotwell.  Just thought this might be common enough of a thing for people, since nullable is a valid thing in migrations out of the box.  Loving the macros though!

To define a macro, I just put this in the app service provider boot method?
        Request::macro('filter', function ()
        {
            return array_map(function ($value) {
                return $value === '' ? null : $value;
            }, $this->all());
        });

@ryanmortier Yep!  Or artisan make:provider RequestProvider and map that in /config/app.php... if you want to keep your AppServiceProvider from getting bloated.

@JesseLeite Thanks!


arm support and updated haproxy

For arm linux server added Dockerfiles and new version of haproxy need small change in config file

Thanks a lot for your PR, @berkayyildi! The demand for ARM images is rapidly growing. Instead of replicating the Dockerfile with minor adjustments, I implemented the multi-platform using QEMU and docker BuildKit. Could you please check the result docker pull zhaowde/rotating-tor-http-proxy:0.3.3 and let me know if it works for your scenario? Thanks again!

Closing this PR in accordance with https://github.com/zhaow-de/rotating-tor-http-proxy/commit/ccef95edb4b7347aa1e6eb61eb61bcca8f3be2d0


Separators of operations are parsed inconsistently

The following program is currently syntactically valid:
interface Foo { def foo(): Int def bar(): Int }
def main() =
  try { do foo() + do bar() }
  with Foo { def foo() = resume(42) def bar() = resume(100) }

 Proof

Inserting semicolons in order to separate the two operations is not allowed: neither in their definition, nor in their implementation.

In contrast, if you write:
type Quux { Bar() Baz() }

then you actually must insert a semicolon or a newline to get a successful parse.

Related to https://github.com/effekt-lang/effekt/issues/287.


Support pkg installer for macOS

Codecov Report

Merging #782 (0125f74) into master (4c5c81b) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 0125f74 differs from pull request most recent head d77a2c7. Consider uploading reports for the commit d77a2c7 to get more accurate results

@@           Coverage Diff           @@
##           master     #782   +/-   ##
=======================================
  Coverage   83.81%   83.81%
=======================================
  Files          47       47
  Lines        3262     3262
=======================================
  Hits         2734     2734
  Misses        400      400
  Partials      128      128


End-to-end test binary can set up test clusters

This change gives the end-to-end test binary the ability, gated by
build tags, to provision, deprovision, and perform test operation
installation on test clusters.
Without any tags, the default "provisioner" points to an existing
cluster specified by either $KUBECONFIG, $HOME/.kube/config, or
in-cluster service discovery. An alternate Kubernetes-in-Docker (kind)
provisioner is available. The default installer is a no-op, but this
commit also introduces an optional Helm installer, which installs the
OLM chart (now built into the test binary).
Provisioning, installation, and deprovisioning are run as part of the
Ginkgo BeforeSuite/AfterSuite closures.

/hold

/hold cancel

/lgtm

/hold
This may seem like a nit, but can we amend the commit name before we merge this?

/hold cancel
... missed the joke

/lgtm

/retest

/lgtm

/lgtm


Project Layout Advice

We currently have a situation we don't know how to solve using cargo and we could use some advice. I'm posting here because I suspect there isn't a good answer and we'd like to patch cargo to make things work once we have an agreed upon solution.
We have two binaries: foo and bar. They are built for specific hardware and are not portable. The foo binary is built for the platform default (i.e. x86_64-unknown-linux-gnu) but the bar binary is built for x86_64-unknown-linux-musl and is no_std. Then the bar binary is embedded into the foo binary via include_bytes!().
The interface between these two binaries is private. So we don't want to package them as separate published crates. They should always live in the same repo and be published together.
Currently, bar is a subdirectory in the foo crate and we build it by manually shelling out to cargo during build.rs. With a little hackery, this seems to work fine. Our major problem is that we can't seem to publish this configuration. If we attempt to include = ["bar"] in the foo crate, it is ignored because it contains a Cargo.toml.
So we're basically looking for a solution:

foo depends on the bar binary, which is compiled for a different target.
foo and bar have their own, separate dependency trees.
foo and bar should always be distributed in the same package.
How can we publish this to crates.io?

cc @haraldh

We seem to be hitting this check:
https://github.com/rust-lang/cargo/blob/master/src/cargo/sources/path.rs#L403-L406
Just to note what this implies. It is trivial to embed a library from another language. But the above check makes it impossible to embed a Rust library. It is not clear to me why this check exits.
It was first added in https://github.com/rust-lang/cargo/commit/8d5acdfc67530b0ee18cb07dced72a177372a999 by @alexcrichton. Is it still relevant for some reason? Can we remove it?

It looks to me like the original walk() function was internal to the fingerprint() function but over time morphed into something more general. It is not at all clear to me that this shortcut to exclude all subcrates is still relevant.

Looks like @seth wrote a test for similar behavior: d33da5492daae0d5d0c6b48f7d35712f7022b2ed

@npmccallum We talked about this in today's @rust-lang/cargo meeting. There are two separate issues here:

There should be a way to declare a build-dependency on a binary crate, and then have access to all of the resulting binaries. Such a build-dependency should include an optional list of targets to build the binary for (which could be any of "host", "target", or specific target names). The build should unify dependencies with the rest of the crate graph, like any other dependency (so that you can know the binary and your crate share the same version of some library). You should get environment variables similar to the DEP_ environment variables that point to each of the individual binaries built by the binary crate. We'd be very happy to have an implementation of this.

You would like to match the versions of foo and bar. We've talked in the past about potential solutions for that (e.g. private dependencies that aren't separately published), but we don't currently have a path to a solution. In the meantime, you could declare an exact-version dependency from foo to bar, requiring the exact semver you want.

@joshtriplett We'd also need:

dev-dependency for generating test dependencies
a way to not coalesce dependencies across targets
a way to get different .cargo/config files for the different targets

I'm wondering if a different approach might be more helpful.
What if we had separate categories:

[build-artifacts]
[dev-artifacts]

These would only build bin and maybe cdynlib. They would invoke a separate instance of cargo which would respect .cargo/config for the dependency. Each artifact build would be executed in a separate invocation of cargo with a dependency-specific output directory in target/.
@haraldh Has been doing some work on rebasing the old attempt at an "internal crates" patch. This probably needs an RFC to go with it. But we are very hesitant to publish our internal interfaces on crates.io.

@haraldh Has been doing some work on rebasing the old attempt at an "internal crates" patch. This probably needs an RFC to go with it. But we are very hesitant to publish our internal interfaces on crates.io.

Which currently is: https://github.com/rust-lang/cargo/compare/master...haraldh:cargo_internal


Allegro Pediatrics rows are evergreen in Form Responses 1 (Google Sheet)

The Allegro Pediatrics entries (timestamped March 20) at the bottom of the Form Responses sheet are perpetually at the bottom. Newly-submitted entries from the form appear above them.
It doesn't block functionality at all, but the behavior is unexpected.

My guess is that these entries were added directly onto form response 1 instead of through the form. If so, we could probably fix by removing these rows and plugging them through the form... but i'm always hesitant to do stuff like that on google forms.
@skimekerr is that what happened?

@4kbt valiantly re-entered every Allegro Pedatrics location into the form so that there are entries for Allegro that no longer keep going down. I think we can probably safely delete the buggy rows but am holding off on that.

Agreed -- now may be a good time to remove those rows, especially if there is any attempt to copy-paste/munge the PPELink rows directly into the findthemasks Sheet.

removed now.


lisa.analysis: Add hints for autocompletion

Since jedi autocompletion is mostly oriented toward static code
analysis, it does not pick up dynamic attributes. Add a function to give
hints to jedi, so it knows what attributes are available and their type
as well.
That's an ugly PR, but it should be relatively robust against more breakages in jedi, and we care specifically about good autocompletion on that part of LISA, so let's bite the bullet. Should not be a big maintenance hassle anyway, and can go away at anytime if jedi becomes more stable.

Seeing as we have dynamic attributes all over the place (worst offender probably is our Target class), can we not just disable jedi? AFAIR, like @derkling said, we didn't use to have these issues.

can we not just disable jedi ?

That can be done, but that will probably not buy us a long life of working autocompletion. Builtin autocompletion is being deprecated, although IPython maintainers seem to still keep it alive until other jedi issues have been fixed. That builtin autocompletion apparently had a number of issues on its own, and it seems that maintainers would be happy to delegate that to another lib. Unfortunately, jedi is mostly oriented on static analysis to avoid running code partly for security reasons.
https://ipython.readthedocs.io/en/stable/whatsnew/version6.html

worst offender probably is our Target class

That's right, forgot about this one. It could be solved by just inheriting from devlib's Target generic class, which should not create issues (unless they rely on special methods called through builtins, since they are not resolved using __getattr__, but that is quite unlikely as it does not define any)

Doesn't this patch kind of invalidate the dynamic loading?
Every time we add a new "named" analysis method we have to remember to add it to this list too, isn't it?

Every time we add a new "named" analysis method we have to remember to add it to this list too, isn't it?

If we want completion to work with jedi yes. It seems to require that (at least in its current state), I've tried many combination of __dir__ and setattr() that gave no results. That makes sense since it is based on parsing the code, not dealing with built objects, even in its Interpreter mode which seems to only replace type inference by the actual type apparently (haven't checked the code, only based on my experiments).

Doesn't this patch kind of invalidate the dynamic loading?
Every time we add a new "named" analysis method we have to remember to add it to this list too, isn't it?

That's a shame, really. I'd be tempted to say I'd rather have no autocompletion than to have to maintain this dynamic members list...

I'd rather have no autocompletion than to have to maintain this dynamic members list

That's your call, I don't mind either. Since that list is relatively stable and short, it's not a big deal to maintain. IMHO it's better to end up with such list than fighting IPython's default, which will prevent from using what good things jedi can bring and is bound to being deprecated one day. We can track how that issue evolves, as it is likely to be the same that we have:
https://github.com/ipython/ipython/issues/11609

Cannot we make that list dynamically created whenever the module is first used?
That's what we used to do in lisa master before re-organizing all the analysis code...

IOW, cannot we build those bindings as part of the loop we have in:
https://github.com/ARM-software/lisa/blob/next/lisa/analysis/__init__.py#L25
so fare it seems we have a pretty straightforward translation from module name to the Analys class it provides, e.g.
   self.MODULE = lisa.analysis.MODULE.MODULEAnalysis()

there MODULE is just all small case and _ separated apart from the last usage which is camel case.

Cannot we make that list dynamically created whenever the module is first used?

That is what we currently do as well. jedi find the files and parses them, without executing anything. As I said before, tricks based on setattr() (lisa legacy) give the same results as implementing __getattr__() (I tried it): jedi does not care, since it won't execute anything anyway. The link to Ipython issue tracker (https://github.com/ipython/ipython/issues/11609) is most_ likely caused by the same issue: they want jedi to look at what a function returns (a property), but jedi won't execute it so it does not know what that is (and does not try to be smart in that case apparently).

That's what we used to do in lisa master before re-organizing all the analysis code...
ipython and jedi changed in the meantime, I've seen no evidence so far that this reorganization is the source of the issue. On the other hand, I've seen evidences that jupyter nowadays do not complete on things set with setattr() anymore by default, which is what LISA-legacy used to do. Completion would be as broken using LISA-legacy style as LISA-next using a march 2019 installation of jupyter.

IOW, cannot we build those bindings as part of the loop we have in

The only loop that can buy us anything would be a loop creating new files, or worse, patching existing files. jedi is basically blind on anything that involves meta-programming, since it won't execute that loop (or anything else). It's also a very bad idea, as python modules may not even be files at all (executed from a zip file, bundled using pyfreeze etc). The location where the package is installed is also typically not writeable as a regular user  (/usr/lib/python3.7/site-packages/), and it would introduce race conditions when multiple processes importing lisa are started.


pdfminer fails to extract text and co-ordinates from fields in a non-editable (i.e. flattened) PDF form

Hi,
I am trying to extract all words/text as well as the co-ordinates of each word using pdfminer from filled in PDF forms that are no longer editable (i.e. they are flattened and NOT acroforms). I am only able to extract text and co-ordinates outside the fields. E.g. on the attached image, "... CAPITAL LETTERS or tick ✓ as necessary." can be extracted. But "Disneyland", "Mickey" etc can't.
As a result, with the code I am using, the words & co-ordinates extracted from a blank form, filled in Acroform, and non-editable pdf form are exactly the same due to this issue.
Is there any way to resolve this using pdfminer or any alternative packages (in the case that it cannot be resolved by pdfminer)?
The sample PDF can be found here: https://drive.google.com/file/d/1HroGrPqADRQ0_ccsIP6wHmqof0ghTdVZ/view
Here is the code:
from pdfminer.layout import LAParams, LTTextBox, LTText, LTChar, LTAnno
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfinterp import PDFPageInterpreter, PDFResourceManager
from pdfminer.converter import PDFPageAggregator

fp = open('sample.pdf', 'rb')
manager = PDFResourceManager()
laparams = LAParams()
dev = PDFPageAggregator(manager, laparams=laparams)
interpreter = PDFPageInterpreter(manager, dev)
pages = PDFPage.get_pages(fp)

count = 0
x_list, y_list, x1_list, y1_list,text_list = [],[],[],[],[]
for page in pages:
    print('--- Processing Page ---')

    interpreter.process_page(page)
    layout = dev.get_result()
    x, y, x1, y1, text = -1, -1, -1, -1,''
    for textbox in layout:
        if isinstance(textbox, LTText):
          for line in textbox:
            for char in line:
              if isinstance(char, LTAnno) or char.get_text() == ' ':
                if x != -1:
                  print('At %r is text: %s' % ((x, y, x1, y1), text))
                  x_list.append(x)
                  y_list.append(y)
                  x1_list.append(x1)
                  y1_list.append(y1)
                  text_list.append(text)

                x, y, x1, y1, text = -1, -1, -1, -1, ''
              elif isinstance(char, LTChar):
                text += char.get_text()
                if x == -1:
                  x, y, x1, y1 = char.bbox[0], char.bbox[3], char.bbox[2], char.bbox[1]

    if x != -1:
      print('At %r is text: %s' % ((x, y, x1, y1), text))
      x_list.append(x)
      y_list.append(y)
      x1_list.append(x1)
      y1_list.append(y1)
      text_list.append(text)

Hi, this can be solved through Konfuzio SDK
Here is a snapshot of the result from our webinterface. You can sign up for free.

@AIMLAPP did you find any solution to this flattened PDF problem?


Image is not getting captured correctly

Describe the bug
image not getting capture correctly
Full Image

Horizontal cut

vertical cut

I have the same problem when I try to take a screenshot of the mobile version of the site.
driver.get_screenshot_as_file(file_name)  - this method saves a screenshot in one format, and this   method stitched_image = Image.new('RGB', (total_width, total_height))  creates a template for a future image in another format (smaller sizes). When this method stitched_image.paste(screenshot) works, then the original screenshot that the driver made is stupidly cut off.
@sam4u3 any ideas?

same problem with element capturing


HLS with wmsauth

Hello, I customized the CastVideos project to parse my m3u playlist and playing my m3u8 files.. When I play locally one of my stream the stream works fine... When i cast my stream it starts to play on chromecast but after 1 mins (but it could varying) it stops to work.. In debug mode i saw a java expection about "malformed URL".. (the stream contains a wms authentication in the form as "https://beta.skystreaming.co/tv/eJx3sUEgLQ/playlist.m3u8?wmsAuthSign=aWQ9NzI5Njg5LWVKeDNzVUVnTFEtMTQ5NTY0NDIxMzExMTAtODguODYuMTg3LjM4JnNlcnZlcl90aW1lPTUvMjQvMjAxNyA0OjQzOjMzIFBNJmhhc2hfdmFsdWU9SElSSVljeWVqT0VVNzFDSjNGaVBHZz09JnZhbGlkbWludXRlcz0yNDA="
It is a hls stream using .ts segment.. if you want i can post you a network packet sniffer to show you the http contents... Btw, i build media info setting mime-type "application/vnd.apple.mpegurl" as showed by http headers.. I was thinking that the problem could be the default receiver app don't using MediaPLayerLibrary to stream hls format,as described in chromecast documentation, but i verified that casting of a Google hls video works fine so my understanding is that receiver app id "4F8B3483" is using MediaPlayerLibrary.. Could you help me what is wrong? thanks
Paolo

This issue is outside the scope of this sample app. You can file an issue in the public tracker: https://issuetracker.google.com/issues?q=componentid:190205 status:open&s=modified_time:desc


Perplexity nan: bpe with pre_word_vecs_enc and pre_word_vecs_dec

my corpus has been toked with bpe, train config file:
start_epoch = 1
max_batch_size = 64
optim = sgd
learning_rate = 1
end_epoch = 13
start_decay_at = 9

min_learning_rate = 0.0001
start_decay_ppl_delta = 0.001
decay =  default

pre_word_vecs_enc = data_it/train_share/vec_src-embeddings-200.t7
pre_word_vecs_dec = data_it/train_share/vec_tgt-embeddings-200.t7

layers = 2
brnn = false
rnn_size = 500

gpuid = 1
fp16 = true
curriculum = 1
save_every = 5000

if set pre_word_vecs_enc and pre_word_vecs_dec, ppl keep nan.
training log:

[05/30/17 19:06:10 WARNING] The caching CUDA memory allocator is enabled. This allocator improves performance at the cost of a higher GPU memory usage. To optimize for memory, consider disabling it by setting the environment variable: THC_CACHING_ALLOCATOR=0
[05/30/17 19:06:10 INFO] Training Sequence to Sequence with Attention model...
[05/30/17 19:06:10 INFO] Loading data from './data_it/share-train.t7'...
[05/30/17 19:06:39 INFO]  * vocabulary size: source = 23841; target = 35209
[05/30/17 19:06:39 INFO]  * additional features: source = 0; target = 0
[05/30/17 19:06:39 INFO]  * maximum sequence length: source = 35; target = 36
[05/30/17 19:06:39 INFO]  * number of training sentences: 274845
[05/30/17 19:06:39 INFO]  * number of batches: 1096
[05/30/17 19:06:39 INFO]    - source sequence lengths: equal
[05/30/17 19:06:39 INFO]    - maximum size: 256
[05/30/17 19:06:39 INFO]    - average size: 250.77
[05/30/17 19:06:39 INFO]    - capacity: 100.00%
[05/30/17 19:06:39 INFO] Building model...
[05/30/17 19:06:39 INFO]  * Encoder:
[05/30/17 19:06:40 INFO]    - word embeddings size: 500
[05/30/17 19:06:40 INFO]    - type: simple
[05/30/17 19:06:40 INFO]    - structure: cell = LSTM; layers = 2; rnn_size = 500; dropout = 0.3
[05/30/17 19:06:40 INFO]  * Decoder:
[05/30/17 19:06:42 INFO]    - word embeddings size: 500
[05/30/17 19:06:42 INFO]    - attention: global (general)
[05/30/17 19:06:42 INFO]    - structure: cell = LSTM; layers = 2; rnn_size = 500; dropout = 0.3
[05/30/17 19:06:42 INFO]  * Bridge: copy
[05/30/17 19:06:46 INFO] Initializing parameters...
[05/30/17 19:06:50 INFO]  * number of parameters: 56930709
[05/30/17 19:06:50 INFO] Preparing memory optimization...
[05/30/17 19:06:50 INFO]  * sharing 69% of output/gradInput tensors memory between clones
[05/30/17 19:06:50 INFO] Start training from epoch 1 to 13...
[05/30/17 19:06:50 INFO]
[05/30/17 19:07:13 INFO] Epoch 1 ; Iteration 50/1096 ; Optim SGD LR 1.0000 ; Source tokens/s 1647 ; Perplexity nan

How did you generate the pretrained words embeddings?

my training script:
word2vec -train ../train.src.share -output vectors.src.bin -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 2 -binary 1
convert to t7 model:
th tools/embeddings.lua -embed_type word2vec -embed_file data_it/train_share/w2v_en/vectors.src.bin -dict_file ./data_it/dict/17_dict.src.dict  -save_data data_it/train_share/vec_src

Could you try with a previous version of this script?
cd OpenNMT
luarocks remove opennmt
git checkout fc6f231b905b2a2383f38dc563d35fc3d3b86e3f
th tools/embeddings.lua -embed_type word2vec -embed_file data_it/train_share/w2v_en/vectors.src.bin -dict_file ./data_it/dict/17_dict.src.dict -save_data data_it/train_share/vec_src
git checkout master

Then restart the training.

@netxiao - which version are you using, on version 0.7+, the embed_type value should be word2vec-bin.
I just reproduced your set-up using toy data and it works end to end:
th preprocess.lua -train_src data/src-train.txt -train_tgt data/tgt-train.txt -valid_src data/src-val.txt -valid_tgt data/tgt-val.txt -save_data data/demo -src_vocab_size 20000 -tgt_vocab_size 20000
word2vec -train data/src-train.txt -output data/src-vec.bin -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 2 -binary 1
word2vec -train data/tgt-train.txt -output data/tgt-vec.bin -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 2 -binary 1
th tools/embeddings.lua -embed_type word2vec-bin -embed_file data/src-vec.bin -dict_file data/demo.src.dict  -save_data data/src-vec_demo
th tools/embeddings.lua -embed_type word2vec-bin -embed_file data/tgt-vec.bin -dict_file data/demo.tgt.dict  -save_data data/tgt-vec_demo
th train.lua -data data/demo-train.t7 -save_model model -rnn_size 200 -word_vec_size 200 -pre_word_vecs_enc data/src-vec_demo-embeddings-200.t7 -pre_word_vecs_dec data/tgt-vec_demo-embeddings-200.t7
[...]
[05/31/17 16:11:20 INFO] Epoch 1 ; Iteration 50/184 ; Optim SGD LR 1.0000 ; Source tokens/s 653 ; Perplexity 21212.43

thanks! it works for me.


Initial support for Italian publishers, starting with La Repubblica

Add La Repubblica (Italian News)
Hey! I've added support for La Repubblica, one of Italy's leading newspapers. I would like this project to cover Italian newspapers too and I figured I should start from this one
Additions

Created a new parser for La Repubblica (www.repubblica.it)
Added Italy (IT) as a new publisher group
Set up RSS feed and sitemap crawling

What can it parse?
The parser can extract:

Article titles
Full article body
Author information
Publishing dates
Paywall status

Missing

Topics

Testing
Created and passed unit tests; run script to add La Repubblica to the Supported Sources docs. Run linting and mypy checking as required

Thank you for your feedback. I have implemented your advice in my latest commit


Use of fit_generator and evaluate_generator result in "builtins.TypeError: 'NoneType' object is not subscriptable"

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
https://colab.research.google.com/gist/isaacgerg/03717f55f020f36aa7b5138fc04cfc43/tf-keras-generator-issue.ipynb

OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
Windows 7, Python 3.7, tensorflow 1.13.1

TensorFlow installed from (source or binary):
via pip

TensorFlow version (use command below): 1.13,1

Python version: 3.7

CUDA/cuDNN version: 10

GPU model and memory: RTX

Describe the current behavior
The code in the colab, when run on a GPU, results in teh following error:
File "c:\python37\Lib\threading.py", line 885, in _bootstrap
  self._bootstrap_inner()
File "c:\python37\Lib\threading.py", line 917, in _bootstrap_inner
  self.run()
File "c:\python37\Lib\threading.py", line 865, in run
  self._target(*self._args, **self._kwargs)
File "c:\python37\Lib\multiprocessing\pool.py", line 121, in worker
  result = (True, func(*args, **kwds))
File "c:\python37\Lib\site-packages\tensorflow\python\keras\utils\data_utils.py", line 445, in get_index
  return _SHARED_SEQUENCES[uid][i]

builtins.TypeError: 'NoneType' object is not subscriptable

Describe the expected behavior
No error
Code to reproduce the issue
See colab link in description.  This is the offending code.  It only appears to happen on windows.  I am unsure in colab how to select a windows based environment.
EDIT 1: Added windows caveat.

I tried on colab it kept running for long time. Please see the colab gist. Thanks!

@gadagashwini Same happened for me.  Please run it in windows, the error occurs after the first loop.

@isaacgerg This is a big model with almost ~2 million parameters to optimize, 62 steps per training epoch and 9999 total epochs. I reduced number of epochs and the code is running without any error but loss was nan.
I would suggested run for couple of 1 or 2 iterations on GPU, then save weights and make the model as trainable = False , then work on the code. There might be some coding issue which is why it is showing loss as nan.
Another things to consider here is installing TF1.15 which was running faster than 1.13. There were lots of performance improvements over the time so I would suggest to use `TF1.15.
I am closing the issue here. Please feel free to open a new issue if you notice any issue with TF. Thanks!

@jvishnuvardhan Can you reopen this?  The code producing the error is on colab but it happens in the windows enviroment.  You have to change your colab environment to run under winows (is that even possible?)
The Nan's arent the issue and are expected as I trimmed down my code to the minimal form to reporduce the error.  The problem is when you run in windows, i get the following error:
File "c:\python37\Lib\threading.py", line 885, in _bootstrap
  self._bootstrap_inner()
File "c:\python37\Lib\threading.py", line 917, in _bootstrap_inner
  self.run()
File "c:\python37\Lib\threading.py", line 865, in run
  self._target(*self._args, **self._kwargs)
File "c:\python37\Lib\multiprocessing\pool.py", line 121, in worker
  result = (True, func(*args, **kwds))
File "c:\python37\Lib\site-packages\tensorflow\python\keras\utils\data_utils.py", line 445, in get_index
  return _SHARED_SEQUENCES[uid][i]

builtins.TypeError: 'NoneType' object is not subscriptable

@isaacgerg As mentioned in another issue of your's, this code also running in Windows10 without any issue.
https://github.com/tensorflow/tensorflow/issues/32697#issuecomment-655193838
Please close the issue if this was resolved for you. Thanks!

Adding the argument workers=0 to model.eval() and model.fit() fixed this issue.


git cloneing this to garrysmod/addons does nothing

works for me, are you doing git clone https://github.com/Mee12345/GMod-Seamless-Portals.git on your addons folder?

Did it not make a folder for the lua folder to reside in or something? I am confused.

works for me, are you doing git clone https://github.com/Mee12345/GMod-Seamless-Portals.git on your addons folder?

yep

ok so it was the small letters


Enforce unique user emails when creating/editing users in Wagtail

We want to avoid having users share the same email address. This PR prevents Wagtail editors from creating users with an email that's already in use. It also prevents them from modifying a user's email to one that's already in use by somebody else.
This PR does not prevent use of the Django shell to set duplicate emails, nor does it create a DB constraint that would prevent this (there might be reasonable dev use cases to support something like this, for example easy local testing). It also doesn't do anything to modify any pre-existing users that may already share the same email.
Additions

New custom v1.auth_forms.UserEditForm that has custom email validation to prevent duplicates.

Changes

Our custom v1.auth_forms.UserCreationForm now has custom email validation to prevent duplicates.

Testing

Run tox or tox -e fast to run all unit tests. New tests for this are in v1.tests.test_auth_forms.
Testing with a local database:
Go to the Wagtail User editor and select "Add a user".
Fill out all of the information, including a unique email address. Select "Roles" and then "Add user" to save.
Try repeating the process with a second user using the same email address but other unique information. Validation should fail and prevent you from saving the second user.
Try repeating the process with a second unique email (this should work), and then go back and edit this new second user by clicking on its username in the user list.
Try changing the second user email to the first unique email address you used. Validation should fail and prevent you from updating the second user.

Review

@grapesmoker

Screenshots
Can't add a user with a duplicate email address:

Can't edit a user to set a duplicate email address:

Checklist

[X] Changes are limited to a single goal (no scope creep)
[X] Code can be automatically merged (no conflicts)
[ ] Code follows the standards laid out in the front end playbook
[X] Passes all existing automated tests
[X] New functions include new tests
[ ] New functions are documented (with a description, list of inputs, and expected output)
[ ] Placeholder code is flagged
[ ] Visually tested in supported browsers and devices
[X] Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)

👍

Oops, actually, I just tested this locally and it let me create a user with the same e-mail address as one that exists already.

So this also doesn't prevent a duplicate e-mail address being entered in from the django admin panel - is that an oversight or intentional?  I think that's still where we primarily add new users, @rosskarchner do you know which one we use?

Users get created in both places (for instance, some users will only ever be "Django" users, and never have a need for wagtail)

Maybe a signal could be registered, that throws an exception if the email address is a duplicate?

@rosskarchner I considered that but thought there might be some valid use cases for using the same email address, for example when developers are testing locally. It seemed a bit overkill to me to absolutely prevent someone from e.g. creating multiple superusers with the same email address using manage.py createsuperuser, or even using the Python shell to create users manually. If we want to enforce that, I can create another PR that does that.
As the title of this PR says: "Enforce unique user emails when creating/editing users in Wagtail", so this was purposefully only preventing this activity in Wagtail.

@chosak
In response to " It seemed a bit overkill to me to absolutely prevent someone from e.g. creating multiple superusers with the same email address using manage.py createsuperuser, or even using the Python shell to create users manually. If we want to enforce that, I can create another PR that does that." -  I agree we don't necessarily need to enforce it locally, but the django admin panel is actually separate from that (sorry if this was confusing!).  This is what I was referring to: http://localhost:8000/django-admin/
I'm fine with this being merged in if we want to separate that work, but I thought it might be related in terms of how this code is architected.

sounds good!

Great. I'll merge this and add a subsequent task.


Improve README - Installation script

This simplifies installation of the package having automatic definitions discovery

I don't really want to to add npm-specific instructions since I don't use npm.  In any case, the explicit import is the option I recommend, especially since that is required for use with deno (where you would e.g. import "https://esm.sh/@ophidian/electron-types@24.3.1";).


Quirky behavior of scrolling in MyResources page.

When I go to the My Resources page I get two vertical scroll bars.  One just for the resource listing box and one for the whole page.  However if I resize my browser window to be wider or narrower (it works both ways) the internal scroll bar disappears and all resources are shown.
I would actually prefer to always get the display without the internal scroll bar.

Closing this because we will address it in #908


Active Datasource Dropdown Not Reflecting Currently Connected Database

Description
The Active Datasource dropdown box that shows which databases the active script is connected to, reflects (based on checkmark placement) whichever connected database is selected in either Navigator or Projects pane.
DBeaver Version
<IP_ADDRESS>409011551
Operating System
MacOS Sonoma 14.6.1 (23G93)
Database and driver
MySQL 8
Redshift
SQL Server
Steps to reproduce

In Projects or Navigator pane, actively connect to two or more datasource connections.

Create/Open script to any one of the connected datasources.

Click the down arrow on the Active Datasource dropdown box and note the checkmark is beside the correct datasource for the script.

In the Projects or Navigator pane, click once on any other active datasource.

Click the down arrow agian on the Active Datasource dropdown box and note that the checkmark is now beside the datasource that's selected in the Projects or Navigator pane; not the datasource that the script is still connected to.

Additional context
The script is still connected to the proper datasource, but this has been know to confuse some people around my office as to which connection DBeaver is really using. I know better because I've been using DBeaver for about 10 years now. It is a minor bug, but one that should be fixed to eliminate those that are cofused.
The expected behavior is for the checkmark to show beside the active connection the referenced script is connected to, not what is/isn't selected in the Projects/Navigator pane.

hi @micheal-icp ,
could you check if the option in the picture is disabled?

@uslss Sorry for delayed response. I've been away. I checked my setting and it is NOT checked. As another test, I checked it and applied the change. Opening a script and clicking on a different connection in my project window did in fact sync the editor's connection, as it should. Went back into settings and unchecked and applied. Close my current editor and opened a new script. The behavior is the same as my OP. Even though the editor's connection is not following what is selected in the project's pane, the checkmark in the connection dropdown box is still following as if that setting was checked.

@ivgag
I believe you are setting focus back on the script prior to clicking the drop-down. Here's a vid showing the problem.
https://github.com/user-attachments/assets/f1705248-1781-48f5-ad47-d6893abd08e1


daoURI for Beethoven X

@Rashmi-278, Beethoven X DAO is willing to adopt EIP-4824. Could you create a daoURI for them?
Name: Beethoven X
Description: Beethoven X is a next generation decentralized investment platform. It provides innovative, capital-efficient, and sustainable solutions for all DeFi users. The BEETS token is the gateway into governance rights and it grants fBEETS owners the ability to influence the evolution of the protocol through decentralized governance. Liquidity providers earn BEETS as liquidity mining rewards for providing liquidity on the platform. The DAO functions based on four pillars comprising of Music Director Committee, Guide Tone Committee, Delegates and Ludwigs. Ludwigs are Beethoven X community members while Guide Tones are elected members who improve and streamline governance, increase community involvement and help the DAO focus on its operations. Music Director committee members oversee liquidity pool maintenance, emissions, voter incentives, treasury management and removal of guide tone members. fBEETs holders can entrust their voting power via Snapshot to one or more chosen delegates. BeethovenX DAO LLC, a non-profit limited liability company  incorporated as per the laws of Republic of the Marshall Islands, function as the legal entity behind Beethoven X DAO.
Proposals: from Snapshot
Members: from Boardroom
Contract registry: All contracts under "Fantom" here: https://docs.beets.fi/technicals/deployments + 3 treasuries listed here: https://docs.beets.fi/ecosystem/treasury. Do not add the ones under Optimism in https://docs.beets.fi/technicals/deployments as they are under Balancer DAO.
Docs: https://docs.beets.fi/ecosystem/home
Lmk how contract registry will be hosted. If it'll be on Github, I'll ask them to add it to their repo and we can link that.

This is high priority, @Rashmi-278

Hey, posting the above information with some suggested changes:
Name: Beethoven X
Description: Beethoven X is a next generation decentralized investment platform. It provides innovative, capital-efficient, and sustainable solutions for all DeFi users. The BEETS token is the gateway into governance rights and it grants maBEETS owners the ability to influence the evolution of the protocol through decentralized governance. Liquidity providers earn BEETS as liquidity mining rewards for providing liquidity on the platform. The DAO functions based on four pillars comprising of Music Director committee, Guide Tones, Delegates and Ludwigs. Ludwigs are Beethoven X community members while Guide Tones are elected members who improve and streamline governance, increase community involvement and help the DAO focus on its operations. Music Director committee members oversee liquidity pool maintenance, emissions, voter incentives, treasury management and removal of guide tone members. maBEETS holders can entrust their voting power via Snapshot to one or more chosen delegates. BeethovenX DAO LLC, a non-profit limited liability company incorporated as per the laws of Republic of the Marshall Islands, function as the legal entity behind Beethoven X DAO.
Proposals: from Snapshot
Members: from Boardroom
Contract registry: All contracts under "Fantom" here: https://docs.beets.fi/technicals/deployments + 3 treasuries listed here: https://docs.beets.fi/ecosystem/treasury. Do not add the ones under Optimism in https://docs.beets.fi/technicals/deployments as they are under Balancer DAO.
Docs: https://docs.beets.fi/

Here's the contract registry URI: https://github.com/metagov/daostar/blob/main/contractRegistryURI/beethovenx.json
@Ardordocc Could you please verify and host it on your end?

Here's Draft DAO URI: https://api.daostar.org/immutable/QmQdgfzufzJ3YL3bTrRB2M4mVXP3wngEPyriupdzpA1SgL

DAO URI: https://api.daostar.org/immutable/QmWxzcPD7MqyreY9Uh3nPso4Qb2YSQvs99DBUTnbWXrjRL

Just waiting on Beethoven to publish before closing this issue.
No comments yet from Beethoven on the daoURI.


[Task: (SC-Platform)]: Display Objects for system types

Description
Dynamic, SVG based image generation through Display objects for some system types.
Motivation
Help display objects representing staked/timelocked coins better in the explorer and the wallet.
Requirements
The following object types shall be considered for now:

StakedIota
TimelockedStakedIota
Timelock<T>

Additional requirements:

[ ] It should be possible to create Display objects for framework types without a Publisher, even in some future epochs, without changing the genesis.
[ ] The image field of the display object shall be an svg image, parameterized based on the values coming from the actual object to be shown.

What to display
StakedIota

[ ] Staked value in IOTA denomination
[ ] Stake activation epoch

TimelockedStakedIota

[ ] Staked value in IOTA denomination
[ ] Stake activation epoch
[ ] date until timelocked: timestamp? -> how to?
[ ] label

Timelock<Balance<IOTA>>

[ ] Until when it is timelocked
[ ] How much is timelocked

Open questions (optional)
Use this section to ask any questions that are related to the feature.
Are you planning to do it yourself in a pull request?
Yes/No.

Closing due to @iotaledger/tooling team taking over the feature implementation entirely on client side.


Added mayhem integration

Added dockerfile, mayhemfile and github action files for mayhem integration

There is already an existing PR, unfortunately.


Not Able to Generate PPT in ie11

Hi,
Please help as I am not able to use the plugin in ie11. When I try with chrome its working fine. But I the system I am targeting is on ie11, where it showing error. Please find the screenshots below for reference.

Try loading the promise.min.js library before pptxgen.bindle.js - IE11 requires that polyfill.

Anything in the IE11 console?
If the library is undefined then it's not being loaded, or it's being clobbered by another library...

Hi @gitbrent , I have the same issue. And I tried loading promise.min.js before pptxgen.bundle.js.
Still the same error.
SCRIPT5022: SecurityError
polyfills.6a2904254165b0ccd0cb.js (7416,25)

"SecurityError" sounds like a setting needs to be tweaked in IE, scripts set allowed to run, etc.


Search- Inconsistent Room Notification Display in Search Preview

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.76-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: N/A
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause - Internal Team
Component: Search
Action Performed:

Navigate to FAB > Start Chat and switch to Room
Add a room name and create the room. Change the room name to trigger a notification
Click the search icon in the top-right corner. Notice the notification appears with the room name in the search preview
Go to Settings, return, and click the search icon again. Notice the notification no longer appears in the search preview
Compare with admin notifications:
Go to Settings > Workspace > Categories and delete a category to trigger a notification
Click the search icon and observe the admin notification in the search preview
Return to Settings, come back, and click the search icon again. Notice the admin notification remains visible

Expected Result:
Notifications triggered in a room should consistently appear in the search preview, even after navigating to Settings and returning
Actual Result:
Notifications appear in the search preview initially but disappear after navigating to Settings and returning, causing inconsistency compared to other entities (e.g., admin)
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Standalone
[ ] Android: HybridApp
[ ] Android: mWeb Chrome
[ ] iOS: Standalone
[ ] iOS: HybridApp
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

Add any screenshot/video evidence

https://github.com/user-attachments/assets/79a1400d-21fa-40a4-9e17-5b917892323f
View all open jobs on GitHub

BE bug it sets report.lastMessageText to the room name changed message and then changes it to the login.

@luacmartins thoughts on this one? Maybe someone for us to add to a low priority list.

I think the issue is with OpenReport, so this is not Search specific.

I'm surprised the LHN doesn't update to the wrong message as well. Maybe there's an additional layer of code that uses the reportAction instead of the report


Fade in/out Animations look jittery in FF

Expected behavior and actual behavior:
This is hard to describe and since I can't attach a clip to the issue will try to describe it. Compared to Chrome and Safari, the fadein/out animations in Firefox are jittery as if they are happening in slower speed.  Mostly noticeable in transitions when the text fading in is overlaying the existing item causing the animation to not appear smooth.
Attaching a few frames out of a clip, showing the text being overlaid during the animation. Not sure if this will help with debugging or if this is a limitation of the browser itself and can't be addressed.
Environment:
CB: Redesign branch/dist version
Browser: FF 54.0.1
Screenshots:

/cc @davidrleonard

I can reproduce this. I'll leave it open for the future, pushing it down the road for now to focus on other issues.

Fixed as of 63d123746b924559b9c54703fdf06c4b5dc61cb5, when we switched from WebAnimations API to using good old fashioned CSS animations.


.htaccess | rewriteRule - Everything worked before on godaddy.com web hosting!

Laravel Version: #.#.# Unable to locate
PHP Version: 7
Database Driver & Version:

Description:
Server/Request Data
REDIRECT_STATUS	200
HTTP_HOST	www.anizeo.com
HTTP_USER_AGENT	Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
HTTP_ACCEPT	text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
HTTP_ACCEPT_LANGUAGE	en-US,en;q=0.5
HTTP_ACCEPT_ENCODING	gzip, deflate
HTTP_REFERER	http://www.anizeo.com/account/design
HTTP_COOKIE	laravel_session=eyJpdiI6IjR1Y0gwUFNcL1M2Y0hnaEY2MThpTjJldFdyU1lYclpoeVQwM1JrTjg2RWJFPSIsInZhbHVlIjoiVDBKZFEwS0xReVRwQ0pUeTN2OHNJa1dnWTQ2d0kySE1Bb3BrRlY0bmJqMEdcL3pTSnV1QVJscXVaMHUyYkM1Q0ErUTIxeW5GMTlmOW9VcnhPS3NpQnhRPT0iLCJtYWMiOiJkNzk4YTE2MDg4ZWY0YzZhY2MyOTFmMjE0MDM4MWJlMmM1YWE4YTMzNjg4Njc5ZjVmYzcxNGU0YzRlMzRlOTE3In0%3D; PHPSESSID=4gm17gm5vadtckplk81h7bc1r5
HTTP_CONNECTION	keep-alive
CONTENT_TYPE	multipart/form-data; boundary=---------------------------2091151999705
CONTENT_LENGTH	120972
PATH	/sbin:/usr/sbin:/bin:/usr/bin
SERVER_SIGNATURE	Apache/2.2.15 (CentOS) DAV/2 Server at www.anizeo.com Port 80
SERVER_SOFTWARE	Apache/2.2.15 (CentOS) DAV/2
SERVER_NAME	www.anizeo.com
SERVER_ADDR	<IP_ADDRESS>
SERVER_PORT	80
REMOTE_ADDR	<IP_ADDRESS>
DOCUMENT_ROOT	/var/zpanel/hostdata/zadmin/public_html/anizeo_com
SERVER_ADMIN	zadmin@localhost
SCRIPT_FILENAME	/var/zpanel/hostdata/zadmin/public_html/anizeo_com/index.php
REMOTE_PORT	2991
REDIRECT_URL	/account/design/bg
GATEWAY_INTERFACE	CGI/1.1
SERVER_PROTOCOL	HTTP/1.1
REQUEST_METHOD	POST
QUERY_STRING
REQUEST_URI	/account/design/bg
SCRIPT_NAME	/index.php
PHP_SELF	/index.php
REQUEST_TIME_FLOAT<PHONE_NUMBER>.868
REQUEST_TIME<PHONE_NUMBER>
GET Data
empty
POST Data
val	Array ( [theme] => [type] => profile [bg_image] => [bg_color] => [bg_position] => [bg_attachment] => scroll [bg_repeat] => no-repeat [link_color] => [content_bg_color] => )
current
Files
image	Array ( [name] => 181137_507005165992850_2047426737_n.jpg [type] => image/jpeg [tmp_name] => /var/zpanel/temp/phpVVmTAT [error] => 0 [size] => 119706 )
Cookies
laravel_session	eyJpdiI6IjR1Y0gwUFNcL1M2Y0hnaEY2MThpTjJldFdyU1lYclpoeVQwM1JrTjg2RWJFPSIsInZhbHVlIjoiVDBKZFEwS0xReVRwQ0pUeTN2OHNJa1dnWTQ2d0kySE1Bb3BrRlY0bmJqMEdcL3pTSnV1QVJscXVaMHUyYkM1Q0ErUTIxeW5GMTlmOW9VcnhPS3NpQnhRPT0iLCJtYWMiOiJkNzk4YTE2MDg4ZWY0YzZhY2MyOTFmMjE0MDM4MWJlMmM1YWE4YTMzNjg4Njc5ZjVmYzcxNGU0YzRlMzRlOTE3In0=
PHPSESSID	4gm17gm5vadtckplk81h7bc1r5
Session
empty
Environment Variables
empty
Registered Handlers
0. Whoops\Handler\PrettyPageHandler
Steps To Reproduce: ( .htaccess ) on 1&1 Hosting server
#AddType application/x-httpd-php54 .php .htm .html
#IndexIgnore *

    Options +FollowSymLinks
RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

# ORIGINAL CAUSING 500 ERROR
# RewriteRule ^index\.php$ - [L]

# MODIFIED BY (1&1 TECHSUPPORT) 11/10/2016
# RewriteRule ^ index.php [L]
# | Fix worked half way / noticed error uploading images

# ANOTHER ALTERNATIVE
# http://stackoverflow.com/questions/5061880/this-is-the-htaccess-code-in-wordpress-can-someone-explain-how-it-works
# MODIFIED 11/12/2016
RewriteRule . /index.php [L]
# | Fix worked half way / noticed error uoloading images

# REDIRECT SITE TO HTTPS
# MODIFIED 11/11/2016
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.mysite.com/$1 [R,L]

#AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript

You can find your Laravel version in the composer.lock file. Search for "laravel/framework" and it should be the version-information just next to it.
Regarding this issue; it's a mess. You will have a higher success of getting help if you clear up the formatting. We would also need how to reproduce the exact error ourselves, we will not buy a webhosting package at 1&1 just to see what you are talking about.


deps: regenerating with new Protobuf (2.2.x)

'To merge into 2.2.x branch. This PR was generated using Protobuf 3.19.6. Source-Link: https://github.com/googleapis/googleapis/commit/d2977af9e9f1fc0c9dc8368352daa032471f3c63'

The Native Image tests are expected to fail since this is an old branch that doesn't contain the necessary native-image compilation related fixes.

Approval required from
# for handwritten libraries, keep codeowner_team in .repo-metadata.json as owner
**/*.java               @googleapis/cloud-native-db-dpes @googleapis/api-firestore


Is there a way to provide custom / additional filters?

The documentation suggests that there is a way to generate any type of filter "using the Core Image Filter.", but https://github.com/pauljeannot/SnapSliderFilters/blob/master/SnapSliderFilters/Classes/SNFilter.swift#L59 seems to filter out any filters that do not already appear in the list.
Perhaps I'm just needing some hints or example implementation of a custom filter in order to see what I'm doing incorrectly.
Thanks for the awesome cocopod 👍 !

Hi @jguffey !
You can use built in filters provided by Apple, or you can also create yours (but I have never tried it).
There is an interesting WWDC session about that : https://developer.apple.com/videos/play/wwdc2014/515/.


JAVA-833: Improve message when a nested type can't be serialized.

Throw an exception instead of propagating null back. I also changed the base message to avoid repeating the same thing twice when the wrong type is the root type.
This does not need to be merged in 3.0.

:+1: Very elegant solution to get a proper error message for collections of unknown elements.


[Mention The Feature]:  improve Translation Tool

Is your feature request related to a problem? Please describe.
The current Translation Tool  has a very basic layout and outdated design. Additionally, the Translation Tool lacks modern styling  , resulting in bad impression toward website . Enhancing the Translation Tool with from scratch with modern design  would significantly enhance the user experience and overall website presentation.
Describe the solution you'd like.
Redesign the Translation Tool with modern styling to enhance the website presentation and user experience.

Redesign the Translation Tool  for better visual appeal.
Improving the styling of Translation Tool .

Describe alternatives you've considered.
No response
Additional context.
@v can you assign this issue to me with labels "gssoc-ext" with levels ,"hacktoberfest-accepted";
Show us the magic with screenshots
https://github.com/user-attachments/assets/8ca8ab9d-7222-4ba6-8ee9-f444bb0cd61b
Checklist

[X] I have checked the Existing Issues
[X] I have read the Contributing Guidelines
[X] I want to work on this issue. (optional)

@VidhanThakur09 for now we are not looking improvements in translation one's.
So i am closing this issue.
Please Understand.

ok, sir

And @VidhanThakur09 please don't tag me on discord for every issue which you have created, I will look into all issues.

ok sir ,  i will not tag .

And @VidhanThakur09
The Project Admin (me) of the ML Fusion Lab Won't be Available from Oct 28th and also this Project won't be active from Oct 28.

Thank you for bringing this to my attention. I will ensure that I refrain from raising any issues from given time period.

@VidhanThakur09 Wishing you all the best and keep contributing to open source.

I am grateful for your kind and thoughtful wishes.


Generate multipart ISerializationData

Motivation
We need to provide ISerializationData to the multipart serializer.
Modifications
Drop the MultipartEncodingAttribute, instead adding the
MultipartFormDataSerializationData by mutating the SerializationData
static property to have an initializer. This will be more trimming
friendly and involve less reflection.
Make MultipartFormDataSerializationData and MultipartEncoding immutable.

/merge


[Passive] Candle Kit

Summons two candles that orbit Isaac, hurting and burning enemies they touch.
"Don't burn it at both ends"
Assets:

Sprite: Complete

Pause Art: Complete
Animation: Orbitals, currently code being worked on.
Code: Haulted
Test Notes: No familiar.Orbit() function exists so all movement has to be done manually frame by frame.
Animation is named Idle

Before all this animation work goes in, has anyone tried extending the parent entities of other orbitals like Cube of Meat and Sacrificial Dagger?
I haven't looked into this at all (I'm at work) but I'd hate to see a bunch of work go into animation if this behavior is extendable already.

TODO:

Figure out how to code an orbital behavior for the candles.
Upon enemy contact the orbitals deal damage to enemies.
Orbitals will orbit at a larger radius than normal and not block shots.

Finished!


[stable/airflow] Flower deployment not getting extraPipPackages

Describe the bug:
Adding items to extraPipPackages will not force pip to install them into pods related Flower but only web, scheduler and worker ones.
Version of Helm and Kubernetes:
Not related a specific version
Which chart:
stable/airflow
What happened:
Tried to install flask_bcrypt just to have authentication on but airflow-flower pods are not getting it installed so they go in crashloopback.
What you expected to happen:
Have flask_bcrypt or any other pip package installed in Flower pods too.
How to reproduce it (as minimally and precisely as possible):
Setting this in values.yaml:
airflow:
      extraPipPackages:
        - "flask-bcrypt~=0.7.1"

then check aiflow-flower pods that will not contain this installation completed.
Anything else we need to know:
Will try to issue a PR soon.

I'm still waiting for review/approval of related PR

Hi, I ran into a similar problem:
Tried to install flask_bcrypt just to have authentication on but airflow-flower pods are not getting it installed so they go in crashloopback.
Did you have any workaround?


Export as 'statistics' instead of 'stats'

Exporting as stats causes an inconsistency between usage in Node.js (stdlib.math.stats) and browser bundles (stdlib.math.statistics). See https://github.com/stencila/mini-core/pull/1/files#r141970198

Checklist

Please ensure the following tasks are completed before submitting this pull request.

[x] Read, understood, and followed the contributing guidelines, including the relevant style guides.
[x] Read and understand the Code of Conduct.
[x] Read and understood the licensing terms.
[x] Searched for existing issues and pull requests before submitting this pull request.
[ ] Filed an issue (or an issue already existed) prior to submitting this pull request.
[x] Rebased onto latest develop.
[x] Submitted against develop branch.

Description

What is the purpose of this pull request?

Fixes a possible bug with export of stdlib.math.statistics.
Exporting as stats causes and inconsistency between usage in Node.js (stdlib.math.stats) and browser bundles (stdlib.math.statistics).
Related Issues

Does this pull request have any related issues?

Couldn't find any.
Questions

Any questions for reviewers of this pull request?

No.
Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

See https://github.com/stencila/mini-core/pull/1/files#r141970198

@stdlib-js/reviewers

@nokome Thanks for pointing this out. I think our preferred solution will be to rename the statistics folder to stats. Doing so will mean that the bundle export will be stdlib.math.stats, matching the Node.js namespace path.
This will require some internal updates, which are best handled on our end. Will ping once completed and we have published updated bundles.

@nokome We have updated namespaces: math.stats and math.base.dists. The former should now be consistent for both Node.js and browser bundle. Closing this PR.

Thanks for the quick turnaround!


add passing varargs Supplier to ObjectUtils.getIfNull instead of Supplier single param

checks failed because of incompatibility, that is actually no true, after changing single param to varargs it is compatible
[ERROR] Failed to execute goal com.github.siom79.japicmp:japicmp-maven-plugin:0.14.3:cmp (default-cli) on project commons-lang3: There is at least one incompatibility: org.apache.commons.lang3.ObjectUtils.getIfNull(java.lang.Object,java.util.function.Supplier):METHOD_REMOVED -> [Help 1]

checks failed because of incompatibility, that is actually no true
No it is.
you can reproduce by:

compile original commons-lang to original-commons-lang.jar
create another repo who use original-commons-lang.jar as a lib, named A.
compile A into a jar.
make sure the A.jar can run correctly with original-commons-lang.jar
apply your changes to the codes in commons-lang.
compile commons-lang to modified-commons-lang.jar
run A.jar with modified-commons-lang.jar
I strongly guess it will fail.
Varargs is not that convienent, my friend.
If you really want a varargs version of that function you can create one, but don't delete the original function.

Coverage increased (+0.001%) to 94.68% when pulling 4ae8838205f6eff171c639857f4c2881d65cb33a on ytanikin:LANG-1571 into da0f6a8051cc60d1bebe703b4e390ce3035497db on apache:master.

What is your use-case for this? It seems rather obtuse to me. Perhaps a real example would help.

ObjectUtils.getIfNull(                 number,                 () -> Support.getMasterNumber(file),                 () -> Support.getPredefinedNumber(file),                 this::takeFreeNumber,                 Support::getUndefinedNumber         );
it is a lazy calculation, don't need to calculate all possible values and use ObjectUtils.firstNonNull


Error in the RequestFormBuilder Class

I was trying to upload files to slack using a slack bot that I created, but was facing an error:
Exception in thread "main" java.lang.NoSuchMethodError: 'okhttp3.RequestBody okhttp3.RequestBody.create(java.io.File, okhttp3.MediaType)'

When I checked the source code, I found a mistake or an older version of the method being used in the RequestFormBuilder
class (more specifically the toMultipartBody function).
The method being used is RequestBody.create(req.getFile(), MultipartBody.FORM);
while it should be RequestBody.create(MultipartBody.FORM, req.getFile()); Line 1596 and 1599

Reproducible in:
Just run the code here: https://api.slack.com/methods/files.upload/code
bash
mvn dependency:tree | grep com.slack.api
gradle dependencies | grep com.slack.api
java -version
sw_vers && uname -v # or ver
The Slack SDK version
(Paste the output of mvn dependency:tree | grep com.slack.api or gradle dependencies | grep com.slack.api)
[INFO] +- com.slack.api:bolt:jar:1.8.1:compile
[INFO] |  +- com.slack.api:slack-api-model:jar:1.8.1:compile
[INFO] |  +- com.slack.api:slack-api-client:jar:1.8.1:compile
[INFO] |  \- com.slack.api:slack-app-backend:jar:1.8.1:compile
[INFO] +- com.slack.api:bolt-servlet:jar:1.8.1:compile
[INFO] +- com.slack.api:bolt-jetty:jar:1.8.1:compile

Java Runtime version
(Paste the output of java -version)
java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)
OS info
(Paste the output of sw_vers && uname -v on macOS/Linux or ver on Windows OS)
Microsoft Windows [Version 10.0.19042.1052]
Steps to reproduce:
(Share the commands to run, source code, and project settings (e.g., pom.xml/build.gradle))
Sorry I cannot share my project files as they are confidential, but you can run the sample code of java given here: https://api.slack.com/methods/files.upload/code
Expected result:
(Tell what you expected to happen)
A file should be sent to the slack channel
Actual result:
(Tell what actually happened with logs, screenshots)
This was returned:
Exception in thread "main" java.lang.NoSuchMethodError: 'okhttp3.RequestBody okhttp3.RequestBody.create(java.io.File, okhttp3.MediaType)'
	at com.slack.api.methods.RequestFormBuilder.toMultipartBody(RequestFormBuilder.java:1431)
	at com.slack.api.methods.impl.MethodsClientImpl.filesUpload(MethodsClientImpl.java:1731)
	at com.slack.api.methods.impl.MethodsClientImpl.filesUpload(MethodsClientImpl.java:1739)
	at com.example.apihealthbot.ApiHealthBotApplication.sendFile(ApiHealthBotApplication.java:67)
	at com.example.apihealthbot.ApiHealthBotApplication.main(ApiHealthBotApplication.java:253)

Requirements
Please make sure if this topic is specific to this SDK. For general questions/issues about Slack API platform or its server-side, could you submit questions at https://my.slack.com/help/requests/new instead. :bow:
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to the those rules.

Hi @abhikarkamkar, this is a binary-compatibility issue betwwen okhttp 3.x and okhttp 4.x. This project relies on only 4.x. Refer to these issues for more details: https://github.com/slackapi/java-slack-sdk/issues?q=is%3Aissue+NoSuchMethodError+is%3Aclosed
If you use Spring Boot, you can explicitly set the okhttp version in build settings: https://slack.dev/java-slack-sdk/guides/supported-web-frameworks
I hope this was helpful to you. If there is nothing else to ask/clarify regarding this, would you mind closing this issue?


Add a new API endpoint to retrieve transaction count for a specific validator

curl -H "Authorization: vouch-restapi-secret-key" http://localhost:8080/v1/validationtx/count/provider_id/5f17a02afbe8980577674011


[Question] Discord Isn't Giving /view/ Links

When I run /tenor query:pony and select the second option, I get the following text:
https://tenor.com/cq0cLbWzGv2.gif

This text does not contain the /view/ portion required for some of these tricks to work. Am I somehow doing something wrong here or did Discord change the tenor command? Every image I bring up with Tenor does this.
https://github.com/rebane2001/txnor-server/assets/10189526/0d892600-8cdd-42d2-b76c-096d9be4b394

This is a fix I need to add. That being said, it is something that only happens with the /tenor command, it doesn't happen with the GIF picker.


Asset task options impelementation

Intooduce Asset Task Option
This feature aims to allow each asset to have different config in different task at different period of production time, which could be useful in publish process or other part of pipeline.
Setup
Register task options by adding "options" into each "config.tasks" field in Avalon database's project document.
The peroject document would be like this:
{
    "type": "project",
    "config": {
        "tasks": [
            {
                "name": "rigging",
                "options": {
                    "autoModelUpdate": {
                        "label": "Auto update model",
                        "default": false,
                        "help": "Auto update model to latest version after model publish."
                    }
                }
            },
            {
                "name": "otherTaskThatHasNoOption"
            }
        ]
    }
}

And in .config.toml file:
[[tasks]]
name = "rigging"

[tasks.options.autoModelUpdate]
label = "Auto update model"
default = false
help = "Auto update model to latest version after model publish."

[[tasks]]
name = "otherTaskThatHasNoOption"

And the asset document will be added one extra field data.taskOptions when it's been applied:
{
    "type": "asset",
    "name": "Foo",
    "data": {
        "label": "Foo",
        "taskOptions": {
            "rigging": {
                "autoModelUpdate": {
                    "value": false
                }
            }
        },
        "tasks": [
            "rigging",
            "otherTaskThatHasNoOption"
        ]
    }
}

Usage
To apply/change task options to each asset, we implement a new widget into Avalon's project manager tool.

With this, you can:

View and update task option on each asset.
Able to update multiple tasks' options on multiple assets in one action when enabled "Batch Edit".

Notes

This widget is hidden by default, you need to drag it out from the right side of the window.
Option setup change will be written to database only when you pressed the "Save" button.
Current edit will lost if you changed the selection of asset or task.
Task widget's view has been enabled multi-selection for editing multiple task option on each asset. (This only applys to Project Manager, does not affect other tools)

Not sure I entirely get the end goal of this?
Is it like a per task metadata, so the config can disable/enable plugins?

Is it like a per task metadata, so the config can disable/enable plugins?

Yes, per task metadata that can be applied to each asset, and for example, like in publish plugins, can change the behavior based on those metadata in each asset.

Our use case is, a rigger can set for one or more assets' rigs that is currently working on, which can be safely auto updated when model is being published.

Side question about "auto update". How are you tracking this and when does it get triggered?

I like the fact of having specific rules/settings for an Asset but I do have some doubts about how this works. To get a clear picture I have a question first:
Could this also just be an "Asset" specific setting? As in, does it really need to be on the Task?
I imagine this could also just be on the asset's data
rigFaceJointLimit: 10
rigBodyJointLimit: 20
rigAutoUpdate: True

Seems like that was how it was originally intended (to be specific data to that asset).
In that sense it's more of User Interface front-end for asset data, which I think is a great step forward. E.g. also allowing to set an FPS override or resolution setting for a Shot in the Project Manager.
I guess the specification could allow for assetOptions that apply only to specific tasks (allowedTasks: ["rigging"])?

Side question about "auto update". How are you tracking this and when does it get triggered?

We have a simple dependency tracking mechanism, but only in Maya. When publishing, the instance that is being published will lookup the history and see if any node that is part of loaded subset. If so, the version document's _id of that loaded subset will written into the instance's version document for future lookup.

Could this also just be an "Asset" specific setting? As in, does it really need to be on the Task?

(Hmm, maybe I shouldn't use the phrase "to each asset", since it does sounds like applying same settings to every asset ?)
Yes, it's asset specific settings when you apply options from those has been registered in project's tasks.
Before those option being applied to any assets, we need a way to define and present those options, and binding them with tasks seems a good fit.

E.g. also allowing to set an FPS override or resolution setting for a Shot in the Project Manager.
I guess the specification could allow for assetOptions that apply only to specific tasks (allowedTasks: ["rigging"])?

Ah, need to think about this, organizing those option into project document's "config.assetOptions" with allowedTasks entry seems to be more flexible !

If we move the option's defenition it into a higher scope like "assetOptions", then the project document would be like:
{
    "type": "project",
    "config": {
        "assetOptions": [
            {
                "name": "rigAutoModelUpdate",
                "label": "Auto update model",
                "default": false,
                "help": "Auto update model to latest version after model publish.",
                "onTasks": [
                    "rigging"
                ]
            },
            {
                "name": "shotFps",
                "label": "Frame rate",
                "default": 24,
                "help": "Override frame rate for shot.",
                "onTasks": [
                    "layout",
                    "animating",
                    "lighting"
                ]
            }
        ]
    }
}

.config.toml:
[[assetOptions]]
name = "rigAutoModelUpdate"
label = "Auto update model"
default = false
help = "Auto update model to latest version after model publish."
onTasks = [
    "rigging"
]

Which is a bit better to write 👍
And the asset document that has been applied would be like:
{
    "type": "asset",
    "name": "Foo",
    "data": {
        "label": "Foo",
        "assetOptions": {
            "rigAutoModelUpdate": {
                "value": false
            }
        },
        "tasks": [
            "rigging"
        ]
    }
}

A note to self:
Need to pay attention on existing entries in assets like "startFrame" or "endFrame" (or "frameStart", "frameEnd"), since those may have been written into the asset document in existing production, so the landing opint of those assetOptions may not be able to like the example asset document above. 🤔

new assetOptions may have to live directly under "data" field in asset document

Exactly what I was expecting yes. I imagined these new "rig specific settings" similar to an Asset/Shot specific setting like Resolution/FPS (if overridden from a project's default) or things like that.
Would love to know whether that would work for your use cases?

Yeah, that would work in our case even better 🚀

I have refactored to adopt "assetOptions", but noted that the config-1.0 schema also need to be updated as well since "assetOptions" is a new property in project config.
Or should we make a config-1.1 schema ? Or  config-2.0 ?

Coming late to the party, but good to see what you guys agreed on at the end. It is a lot more flexible and easily expandable to many other types of parameters than the original concept.

Or should we make a config-1.1 schema ? Or config-2.0 ?

I will add config-1.1, since it's a minor change.

What's the status on this? Anyone using this in production?

Or should we make a config-1.1 schema ? Or config-2.0 ?

I will add config-1.1, since it's a minor change.

I think the last comment I wrote was the last piece but some how I never finish it. 😮
But I did put this into our production branch.


Bug: Names for ribbon panels, pages, and toolbars aren't being checked for duplicates

Description:

Title says it all...

Tested again on 11/28 and duplicate names are being checked now. This would have been fixed several months ago when the way duplicate names got checked for all nodes could overhauled.


BA Captcha timeout

So presumably at 45 queries or so, BA is now prompting with a captcha. Not sure yet if it appears again, will update. I haven't tried to see if multiple sub-45 day searches trigger this as well.
Is the cool-down period adjustable? Is that time or number of queries based? If so I can play with it and see what works.
As it is, the immediate problem is I don't always get a chance to answer the captcha as the search refreshes with the next query just before I'm about to hit submit. If the cool-down isn't the answer, then the parser needs to detect the captcha and wait much longer.

Yes, throttling settings are set on config.throttling in src/ba/index.js. You can either choose a different profile (such as profiles.slow), or create a new profile in index/consts.js. The settings are:
delayBetweenRequests: Interval to enforce between successive requests (the interval is chosen randomly in the range provided after each request)
requestsPerHour: Like it says, limits how many requests per hour can be run (but by inserting one big sleep, instead of small sleeps between each request).
restPeriod: How often to enforce requestsPerHour. Smaller values will mean more frequent small sleeps, whereas bigger values will mean fewer bigger sleeps.
Cookies get cleared each time you run the search command, so my guess is that if you were to change your IP address and account and re-run the search command, the captcha would go away. I have no idea if they flag your IP or account (or both), if you figure out let us know :)

Thank you. New info so far: default cooldown didn't help, after 20 more requests I got the cooldown, and upon resuming got the captcha immediately.  I'll play with the throttling settings and also account change and update.

Btw, I've added some logic to the BA searcher, so that if it detects the captcha was presented, it will stop and wait for the user to solve it (as opposed to before, it would get confused and error out). You'll see a message on the console, prompting you to solve the captcha. Once the captcha is solved, searching will continue (the searcher checks every 5-10 seconds or so, to see if the captcha has been solved successfully).
Of course, this means you cannot run BA in headless mode (otherwise you wouldn't be able to interact with the browser to solve the captcha), but seems a reasonable trade off for now.

Beautiful! Haven't had time recently but I'm planning to really dig into it
next weekend.
On Sat, Nov 10, 2018 at 2:54 AM Jason<EMAIL_ADDRESS>wrote:

Btw, I've added some logic to the BA searcher, so that if it detects the
captcha was presented, it will stop and wait for the user to solve it (as
opposed to before, it would get confused and error out). You'll see a
message on the console, prompting you to solve the captcha. Once the
captcha is solved, searching will continue (the searcher checks every 5-10
seconds or so, to see if the captcha has been solved successfully).
Of course, this means you cannot run BA in headless mode (otherwise you
wouldn't be able to interact with the browser to solve the captcha), but
seems a reasonable trade off for now.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/flightplan-tool/flightplan/issues/11#issuecomment-437569071,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ARDXzpLuxPt56KHPFS5XUAcNsSINX1crks5utpQngaJpZM4XWj7G
.


3D models and resources

Hi, there! I was trying to add to the thread on reddit, but it seems both are now locked for comments. I would like to request a section for 3d models and resources. Since KAT lost all of those a couple of years ago, those of us who work with these resources regularly have found it incredibly difficult to find what we lost. It would be amazing if you could include some locations in your list. Thank you, in advance.

CGPeers is a good choice AFAIK. Keep an eye on /r/OpenSignups to register :)


v0.6.0 refactoring issue with 'use_fp16'

On line 481 of accelerator.py, self.state.use_fp16 is being used whereas use_fp16 has been renamed to mixed_precision. This is causing the code to break. This check should probably be replaced with a call to the property method at line 234.

Very good point, will fix and issue a patch!

Should be fixed by this commit.


Guide to parsing XML in Node.js

I'll like to write a comprehensive guide on how to parse XML data in Node.js. An outline for this topic is provided below:

What is XML ?
Parsing XML with Node.js
How to use xml2js
xml2js in more detail
Get XML content as a string
Convert strings to Objects
Write response to a File
Alternatives to xml2js
Conclusion

Thank you for the acknowledgement. I await your feedback.
On Thu, Mar 24, 2022, 4:03 PM github-actions[bot] @.***>
wrote:

👋 @Humjerry https://github.com/Humjerry
Good afternoon and thank you for submitting your topic suggestion.
Your topic form has been entered into our queue and should be reviewed
(for approval) as soon as a content moderator is finished reviewing the
ones in the queue before it.
—
Reply to this email directly, view it on GitHub
https://github.com/section-engineering-education/engineering-education/issues/7292#issuecomment-1077728748,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXVY5QSELAPR4LICCKE7IS3VBR75PANCNFSM5RROEIAA
.
You are receiving this because you were mentioned.Message ID:
<section-engineering-education/engineering-education/issues/7292/1077728748
@github.com>

Welcome - Hector here.
This seems like a very cool topic - but regarding Node.js we are currently not publishing as many Node.js articles because we have more than enough currently in our EngEd library.
As we did a big push the last few months and we are currently not accepting any more Node.js articles to publish for the time being.
Please feel free to suggest an alternate topic to explore. 🚀