BepInEx / AokanaPatch.DLL

We were unable to make BepInEx and AokanaPatch.dll work.
Is there a specific version of BepInEx and a specific version of the game we should use ?
We tried on game v1.0 and game patched v1.21 [Perfect Edition+R18], but nothing worked.
I read we should be able to config BepInEx, but no config file was created, even after launching the game.
Here is the font file we generated after following your tutorial : font.zip
This is the last step for us, the last problem we need to solve to start our translation in the best conditions.
Thank you for taking the time to help us !

I remember BepInEx's installation page having a lot more detail about what versions to install depending on the unity build version and so on. I'm not really sure where that information went. Try using BepInEx_x86_<IP_ADDRESS> maybe? That's the version I am using. If that doesn't work try the BepInEx_x64_<IP_ADDRESS> version but I think BepInEx will want x86 because Aokana is a 32 bit applications.

Thank you Adebasquer, using BepInEx_x86_<IP_ADDRESS> worked peferctly ! It also worked with AOKANA EXTRA 1.
It means that we are now able to properly translate the games in French ! Yeah !
However, we are now facing another problem. Please take a look on the screenshot.
After installing Bepinex, you can clearly see that the "dialogs font" has changed but the "SpeakerName font" is still the original one.
I translated "Boy" into "Garçon" but the ç disappeared. Bepinex DID NOT change the SpeakerName font and the diatric letters are still missing. Apparently, AokanaPatch.dll applied the new font only to dialogs in the BS5 files but did not apply the new font to the SpeakerNames.
Do you know a way to change the font for the SpeakerName too ?

I pushed through a small change that should fix this. Let me know if there are any errors. Good luck!

Thank you very much ! It worked perfectly !

The new font we are using displays properly the french characters. All is fine.

However, the log journal still contains the original font and doesn't display properly the texts. Do you have an idea how we can fix this please ?

However, the log journal still contains the original font and doesn't display properly the texts. Do you have an idea how we can fix this please ?

same here.

@MeguMario Can you tell what is the name of the font you used in the screenshots you posted please ?

@MeguMario Can you tell what is the name of the font you used in the screenshots you posted please ?

I use Open Sans as the main font and Open Sans CJK as the fallback font.

Hello, sorry for the inactivity. I pushed a fix for backlog font loading, let me know of everything works.

@Adebasquer the backlog remains on with no way to disable it, so i can't test if it works or not


Make opt_skipImports a project setting

Hello @nicks, @dpup,
Please review the following commits I made in branch 'jean-skipImports'.
5e2e1b3aaeadd773a7bd0acfbd7bf2de589da98d (2015-06-17 14:20:12 -0700)
Make opt_skipImports a project setting
R=@nicks
R=@dpup

maybe it should be a setter instead of a ctor arg?
otherwise lgtm!

This makes the API not backward compatible. Suggest leaving both options in or incrementing the mibir version.

Oops I removed the option on addJob (probably should have kept it there). I
did increment the version to 0.2.2 though, is that what you mean?
On Wed, Jun 17, 2015 at 2:43 PM, Daniel Pupius<EMAIL_ADDRESS>wrote:

This makes the API not backward compatible. Suggest leaving both options
in or incrementing the mibir version.
—
Reply to this email directly or view it on GitHub
https://github.com/dpup/pbnj/pull/12#issuecomment-112960029.

For API incompatible change it should go to 0.3.0


dev.device is not a function

I still see this error:
Apr 28 15:05:02 raspberrypi homebridge[14826]: /usr/lib/node_modules/homebridge-broadlink-rm/node_modules/broadlinkjs/index.js:98
Apr 28 15:05:02 raspberrypi homebridge[14826]: dev.device();
Apr 28 15:05:02 raspberrypi homebridge[14826]: ^
Apr 28 15:05:02 raspberrypi homebridge[14826]: TypeError: dev.device is not a function
Apr 28 15:05:02 raspberrypi homebridge[14826]: at module.exports.Broadlink.genDevice (/usr/lib/node_modules/homebridge-broadlink-rm/node_modules/broadlinkjs/index.js:98:13)
Apr 28 15:05:02 raspberrypi homebridge[14826]: at Socket.cs.on (/usr/lib/node_modules/homebridge-broadlink-rm/node_modules/broadlinkjs/index.js:187:29)
Apr 28 15:05:02 raspberrypi homebridge[14826]: at emitTwo (events.js:106:13)
Apr 28 15:05:02 raspberrypi homebridge[14826]: at Socket.emit (events.js:194:7)
Apr 28 15:05:02 raspberrypi homebridge[14826]: at UDP.onMessage [as onmessage] (dgram.js:545:8)
Apr 28 15:05:02 raspberrypi flicd[16184]: Client EOF
Apr 28 15:05:02 raspberrypi flicd[16184]: A client was disconnected
Apr 28 15:05:02 raspberrypi systemd[1]: homebridge.service: main process exited, code=exited, status=1/FAILURE
Apr 28 15:05:02 raspberrypi systemd[1]: Unit homebridge.service entered failed state.

Even after I did the commands:
npm r broadlinkjs -g
npm i broadlinkjs@"git+https://github.com/lprhodes/broadlinkjs.git" -g

I'm using a lot of broadlink devices, I have S1C, MP1 SP2, along with the RMPRO & RMmini (that I'm trying to use with your plugin).
I want to keep using those not supported devices separately from your plugin., what should I do in order to fix that issue?

Try the following:
npm r homebridge-broadlink-rm -g
npm i homebridge-broadlink-rm -g
``

[2017-4-29 14:57:14] [XiaomiMiio] miIO Plug 55197478 fetch status
[2017-4-29 14:57:14] [Broadlink RM] light getSwitchState: 0
[2017-4-29 14:57:14] [Broadlink RM] Music getSwitchState: 0
[2017-4-29 14:57:14] [Broadlink RM] Epson getSwitchState: 0
[2017-4-29 14:57:15] [My Broadlink SP2] power is on - false
[2017-4-29 14:57:15] [My Broadlink SP1] power is on - true
[2017-4-29 14:57:20] [Broadlink RM] light setSwitchState: 1
[2017-4-29 14:57:20] [Broadlink RM] [ERROR] The device at <IP_ADDRESS> (**********) doesn't support the sending of IR or RF codes.
[2017-4-29 14:57:22] [Broadlink RM] light setSwitchState: 0
[2017-4-29 14:57:22] [Broadlink RM] [ERROR] The device at <IP_ADDRESS> (***********) doesn't support the sending of IR or RF codes.
IR and RF don't work,others(wifi) ok!
Win10+Hyper-V+Ubuntn+RM pro

@eviewb please raise this as a separate issue

@nitaybz
Updating to 2.3.0 will also fix the issue.


IndexError in fGWAS.py when the number of SNPs in observed bim files not equal to the number in imputed data

Hello,
So the error message is:
Traceback (most recent call last):
  File "/SNIPar/fGWAS.py", line 213, in <module>
    imp_gts = imp_gts[:,filter_pass]
IndexError: boolean index did not match indexed array along dimension 1; dimension is 131137 but corresponding boolean dimension is 131138

This is because the number of SNPs in the "observed" bim file does not equal to that in the imputed data. I think you could re-create this error if you intentionally remove 1 or more SNPs from the observed bim file. fGWAS.py does not consider this situation.
Curiously, the reason for unequal number of SNPs is somehow due to the np.loadtxt() function on line 149. In my bim file, one SNP has a very very long ID, and somehow loadtxt() function only read part of this string while imputation correctly keeps the ID, and as a result, this SNP's IDs are not matched.
Thank you!
Josh

Hi Josh, do you still have a problem with this?

Yes, even after removing the SNPs with very long IDs, I still get this error.
I'm not familiar with python, but I think the problem could be on line 193 obs_sid_index = np.zeros((imp_sid.shape[0]),dtype=int) and the following the for loop. Seems the goal of the loop is to keep only the intersecting SNPs, however, line 193 initiate the array with all 0's, therefore, even if a SNP is not in obs_sid_dict, the index will still be 0, as a result, sid will have the same length with imp_sid (therefore, line 198 should be sid = imp_sid[obs_sid_index]?) and contain duplicates of the 1st SNP.
After comparing the contents of obs_sid and imp_sid, I found that imp_sid correctly keeps all the SNP IDs in the bim file, however, some IDs are not correctly read in obs_sid. These SNP IDs have one common feature: their IDs have the format of chr:bp:A1_A2 such as "17:44293205_A_G", however, in obs_sid it becomes 17:44293205_A_. (Not all IDs with this format have this problem, e.g., "17:834_G_A" works just fine.) As a result, these SNPs cannot satisfy the if imp_sid[i] in obs_sid_dict condition. Together with the above reason, it leads to the "index error". Therefore, the reason for this "index error" is that the code sometimes does not read the .bim file correctly and the codes could not exclude those mismatched SNPs.
Another potential issue is that python dictionary does not support duplicate keys, however, it's not uncommon to have duplicate SNP IDs in genotype data. I think it might be safer to first check and remove the SNPs with duplicate IDs.
Thanks!

Hi Josh, thanks for the detailed info. Could you possibly share your .bim file with me so that I can investigate? My email is<EMAIL_ADDRESS>

Jul. 30, 2020's update fixed the issue.
Thanks!


update resource in test before polling for state change

Signed-off-by: Leela Venkaiah G<EMAIL_ADDRESS>

@nb-ohad the test reconciler is running too fast, not sure you'll like it or not, we may need to increase the duration https://github.com/red-hat-storage/ocs-osd-deployer/blob/3fda30/controllers/suite_test.go#L194
I'm thinking of 100ms (ideally should be greater than 250ms used in the test interval)

This shouldn't matter! if the reconciler does not introduce a change to a CR, the result is a no-op and there is no contention.
If you see different behavior then the underlying assumption is wrong.

Not being able to reproduce failure locally is creating a challenge to fix CI failure
Lastly, I tried the matcher as BeNil rather than BeTrue

@leelavg please rebase

no, I wanted a consistent atleast 5 pass runs in CI, untill then I'll mark it as draft


creating missing virtual network link

This PR creates the missing vnet link to the print.internal.xcp private dns zone.

Environment: dev. Pipeline Stage: dev
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
  ~ update in-place

Terraform will perform the following actions:

  # azurerm_private_dns_resolver.pdnsresolver will be updated in-place
  ~ resource "azurerm_private_dns_resolver" "pdnsresolver" {
        id                  = "/subscriptions/779c236c-a27b-405d-b0b8-0bbb5f7b5c67/resourceGroups/rg-xwc-dnsresolve-001/providers/Microsoft.Network/dnsResolvers/pdnsresolver"
        name                = "pdnsresolver"
      ~ tags                = {
          - "businessunit" = "MOJ" -> null
        }
        # (3 unchanged attributes hidden)
    }

  # azurerm_private_dns_zone_virtual_network_link.private_dns_vnet_link will be created
  + resource "azurerm_private_dns_zone_virtual_network_link" "private_dns_vnet_link" {
      + id                    = (known after apply)
      + name                  = "vnet-xwc-core-001"
      + private_dns_zone_name = "print.internal.xcp"
      + registration_enabled  = false
      + resource_group_name   = "rg-xwc-dnsresolve-001"
      + tags                  = {
          + "ApplicationName"  = "VelocityLandingZone"
          + "BusinessUnit"     = "MOJ"
          + "CostCentre"       = "MOJ"
          + "OwnerName"        =<EMAIL_ADDRESS>          + "ProjectStartDate" = "05102020"
          + "RequesterName"    =<EMAIL_ADDRESS>          + "ServiceLevel"     = "Gold"
        }
      + virtual_network_id    = "/subscriptions/779c236c-a27b-405d-b0b8-0bbb5f7b5c67/resourceGroups/rg-xwc-core-001/providers/Microsoft.Network/virtualNetworks/vnet-xwc-core-001"
    }

Plan: 1 to add, 1 to change, 0 to destroy.

Environment: dev. Security Scan of Stage: dev has failed a IaC security scan, Please look at https://dev.azure.com/MoJ-OFFICIAL/Velocity-Landing-Zone/_build/results?buildId=48445&view=ms.vss-test-web.build-test-results-tab

Environment: prod. Pipeline Stage: prod
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
  ~ update in-place

Terraform will perform the following actions:

  # azurerm_private_dns_resolver.pdnsresolver will be updated in-place
  ~ resource "azurerm_private_dns_resolver" "pdnsresolver" {
        id                  = "/subscriptions/876eef88-ec3d-47db-b101-ec6f9daefb65/resourceGroups/rg-xwc-dnsresolve-001/providers/Microsoft.Network/dnsResolvers/pdnsresolver"
        name                = "pdnsresolver"
      ~ tags                = {
          - "businessunit" = "MOJ" -> null
        }
        # (3 unchanged attributes hidden)
    }

  # azurerm_private_dns_zone_virtual_network_link.private_dns_vnet_link will be created
  + resource "azurerm_private_dns_zone_virtual_network_link" "private_dns_vnet_link" {
      + id                    = (known after apply)
      + name                  = "vnet-xwc-core-001"
      + private_dns_zone_name = "print.internal.xcp"
      + registration_enabled  = false
      + resource_group_name   = "rg-xwc-dnsresolve-001"
      + tags                  = {
          + "ApplicationName"  = "VelocityLandingZone"
          + "BusinessUnit"     = "MOJ"
          + "CostCentre"       = "MOJ"
          + "OwnerName"        =<EMAIL_ADDRESS>          + "ProjectStartDate" = "05102020"
          + "RequesterName"    =<EMAIL_ADDRESS>          + "ServiceLevel"     = "Gold"
        }
      + virtual_network_id    = "/subscriptions/876eef88-ec3d-47db-b101-ec6f9daefb65/resourceGroups/rg-xwc-core-001/providers/Microsoft.Network/virtualNetworks/vnet-xwc-core-001"
    }

Plan: 1 to add, 1 to change, 0 to destroy.

Environment: prod. Security Scan of Stage: prod has failed a IaC security scan, Please look at https://dev.azure.com/MoJ-OFFICIAL/Velocity-Landing-Zone/_build/results?buildId=48445&view=ms.vss-test-web.build-test-results-tab


301 all Akamai CDN paths to www

Problem set: https://www.google.com/#q=dosomething-a.akamaihd.net
Create a 301 redirect to substitute all incoming requests for dosomething-a.akamaihd.net to www.dosomething.org.

Added 301-redirect for all dosomething-a.akamaihd.net URI's to 301-redirect to www.dosomething.org. The CDN module is already disabled in prod.

@mshmsh5000 Tested this as working this morning:
mocha:roles sheydari$ curl -Iv dosomething-a.akamaihd.net/blah
*   Trying <IP_ADDRESS>...
* Connected to dosomething-a.akamaihd.net (<IP_ADDRESS>) port 80 (#0)
> HEAD /blah HTTP/1.1
> Host: dosomething-a.akamaihd.net
> User-Agent: curl/7.43.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
HTTP/1.1 301 Moved Permanently
< Server: AkamaiGHost
Server: AkamaiGHost
< Content-Length: 0
Content-Length: 0
< Location: http://www.dosomething.org/blah
Location: http://www.dosomething.org/blah
< Date: Wed, 14 Oct 2015 13:45:52 GMT
Date: Wed, 14 Oct 2015 13:45:52 GMT
< Connection: keep-alive
Connection: keep-alive
<
* Connection #0 to host dosomething-a.akamaihd.net left intact


Added binding support on double/float/decimal

Added binding support on double/float/decimal, by adding corresponding delegates for theses use case.
NOTE: Binding parsed and showed value for decimal is correspond to current thread culture format (System.Threading.Thread.CurrentThread.CurrentCulture or System.Threading.Thread.CurrentThread.CurrentUICulture , doesn't have made deep test), so the ouput may be influenced and corresponding to culture requirement.
Suggestion: What about  System.OverflowException ? Actually mocking the previous implementation (btw doing nothing specially).
Fix #623

I think this is a good unblocker for now. We might want to consider a pattern that scales in the future.

Thanks Ryan!
@Daddoon OK, this looks like the right approach to us. Would you be able to add test cases (e.g., in BindCasesComponent.cshtml)? After that we'd be very pleased to merge this.

Done !

Sorry for not being clear - we'd be looking for test cases for all three types you've added support for (float, double, decimal), not just decimal. As well as adding the additional UI to BindCasesComponent.cshtml, we also need actual test cases added in BindTests.cs in the E2E test project.

Haha ok sorry Steve, pretty new to the test projects !
I will add the test case later, or tomorrow in the morning.
Thanks for your guideline.

I was on other things today, and i was now looking for adding the test case.
I already know that it will fail if take the same route as the string Textbox. Also, i see that the int test is not even here, and it was already available as a binding.
Why ? The user can freely empty the text / numeric input and lost focus. It will throw an exception in the Browser as int.Parse / decimal.Parse (whatever) because of the null value.
As an evolution and suggestion, we should change the Binding in order to fallback to the default value if the string is empty. We can also imagine that we can set a "default" value if we are unable to parse a valid value, but this is out of context.
So can we assume this in the code ? I will speak for int but it will be the same for the other numeric primitive types:
int Amount
If Input is Null or Empty or Invalid should return:
Amount = default;
Also:
int? Amount
If Input is Null or Empty or Invalid should return:
Amount = null;
With this implementation, we should also change the int.Parse by int.TryParse (same for other numeric types).
Also, considering Min or Max values for numeric, should we assume that an overflow error should reset the value to default, Max (or Min) value, or to the nearest precision (for decimal numbers). Or do you have another idea about that ?
I think that managing theses scenario on the Binded inputs should allow a pretty good and safe using.

Actually there is some edge case where i need some advice:
I'm actually trying to constraint the data to fallback to a default or previous value if it fail. Or actually even if i wouldn't want to do any change, the problem that if we change the received value in the handler or even just give the old existing value, or if it fail (throwing), the data binded value seem correct on other component, but the original input component does not update his value, so it may be incorrect.
Imagine that my first value is 500, then i write 504fabc, i would try to fallback to the previous value or even trim numerical caracters (assuming there is no custom input/output formatter available at the moment). I can notify the setter that i will set instead 504 or another valid value for this primitive type. Everything work on the binding side, except the input text / input numeric field, that keep the user interaction value.
That mean that if we don't have any other source of data binded, the end user don't know that the seen value in the input is actually not the same in memory.

Do you have any methods or helper from BindMethod to notify the input from the internal change ? Or is it a missing check ?
Do you plan to have some kind of formatter bindable on the input, from string to type (input) and type to string (output) ?

Thanks

Thanks @Daddoon for considering designs for edge cases like unparseable values and overflows.
However for now I think it would be fine just to let the framework throw in these cases. That's because we don't really know what the developer wants to do to handle it. Depending on how their UI is presented, it might be very misleading to reinterpret some large input as zero, or to convert a nonnumeric value back to a previous value without explicitly notifying the user.
Developers will need to use suitable input restrictions to avoid errors. For example, they can use input type=numeric. Alternatively they can continue binding to a string and put their own error handling logic inside the setter of whatever they are binding to. The framework can't be sure not to mislead users otherwise.
So hopefully your existing implementation is fine, and just needs more tests.

I'm actually doing some cool stuff with Blazor hosted in Xamarin and strongly typed interop support between Blazor and Xamarin.
I will come back on this pull request in few days.

@Daddoon I don't mean to hassle you on this, but just FYI, if you wanted this to be included in the 0.4.0 release then we'd need the completed PR some time in the next 24 hours (roughly), as we'll be making the final builds soon. I'm happy to review and merge the PR if we do have it in time.
No problem if you prefer to leave it for 0.5.0 instead.

Sorry @SteveSandersonMS  , but i was pretty busy theses last days, as i was finishing my Xamarin (with Interop) support for Blazor.
I'm at the end, but i will not be available this week exceptionaly, so i think we should report this for the 0.5.0 (or if someone else finish it before me haha).
If everything go right on my side, i will take a look at it to finish it next week.
Sorry for the delay.

Completed in #926. Hope that's OK, @Daddoon!

Nice ! Better that someone taken my original PR, as i was pretty busy. Thanks @Suchiman @SteveSandersonMS !


Visualizer: XState.spawn is not a function

Bug
Description:
When I copy a statechart with some spawn call the console logs the following error:
XState.spawn is not a function

Expected result:
XState.spawn is available and the Visualizer renders the chart properly.
Or does spawning actually does not (yet) work in Visualizer?
Actual result:
XState.spawn is not a function

BTW: super awesome tool. But: why can't you expose all available functions directly? In my code my import statement looks like this:
import { Machine, assign, sendParent, spawn } from 'xstate'

To be able to execute it in the visualizer I always need to prepend certain function calls with XState.. Imho that's unnecessary.

Can you post a link to the visualization?

Oh … I was on the wrong URL: https://statecharts.github.io/xstate-viz/ (don't ask me how I got on this page). On the official page (https://xstate.js.org/viz/) it works 🥳
I already wondered where the "Login to save" button went …

Let me know if there are further links to the old visualizer and I'll update them. Thanks!


Forward maximum_iterations from MBAR constructor

Possibly related to https://github.com/choderalab/pymbar/issues/320 , https://github.com/choderalab/pymbar/issues/419 . In these issue reports, the logs suggest that the default maximum_iterations = 250 was reached.
However, the default maximum_iterations in the MBAR constructor https://github.com/choderalab/pymbar/blob/3c4262c490261110a7595eec37df3e2b8caeab37/pymbar/mbar.py#L73 is much larger than 250.
The maximum_iterations argument in the MBAR constructor is currently unused. When maximum_iterations is absent from the options dictionary that is forwarded from the MBAR constructor to the adaptive solver, maximum_iterations defaults to 250 here https://github.com/choderalab/pymbar/blob/3c4262c490261110a7595eec37df3e2b8caeab37/pymbar/mbar_solvers.py#L271
This patch solves the minimal example provided in this comment https://github.com/choderalab/pymbar/issues/419#issuecomment-796230485 (which worked in 3.0.3 but failed in 3.0.5), although other examples in the thread may not be addressed by this patch.

Thanks for the fix, @maxentile!
I'm not familiar with the pymbar 3.* codebase, so tagging @mrshirts and @Lnaden for review.

As @mrshirts pointed out in #419, the max iterations in the default is too low in general, can we increase that up to some higher value as well, maybe even the default from the MBAR constructor of 10000? Would that cause issues?

Not sure if there's a reason to have the default maximum_iterations in the MBAR constructor differ from the default maximum_iterations in the adaptive solver. Assuming not, the requested change is applied in https://github.com/choderalab/pymbar/pull/425/commits/bbadb5b4608de3f139a1070e33270d63e697d1fa .


UPT: add LTS version for node engine

Hi,
I think we should add the min version (e.g. LTS ) of the node engine for this package.
Best,
Alpha

:tada: This PR is included in version 2.3.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Rename InternalPoint3D to Point3D, Point3D to Point3DLike and other point-related type aliases

Closes #4016

In my attempts to add typehints to subclasses of Mobjects, I've been repeatedly facing the following problem:
There are common methods like Mobject.get_center() which are typed to return a Point3D, where Point3D is a type alias defined as a union between a NumPy array and a tuple of 3 floats. However, the actual return type is always a NumPy array, which is more precisely described by the InternalPoint3D type alias which only represents that: a NumPy array.
The values returned from those methods are normally used as NumPy arrays: we add them with other arrays, multiply them, etc. However, MyPy complains about that, because Point3D is a union with a tuple, which does not support those operations, at least not in the way NumPy arrays do.
The most straightforward solution would be to simply typehint the returns as InternalPoint3D instead. However, InternalPoint3D is described as only for Manim internal use. It does not make much sense to use something "internal" as a return value for multiple functions and methods which we encourage Manim users to call in their code.
Since there are a lot of methods and functions returning NumPy arrays like that, I would say that the best approach would be to stop treating InternalPoint3D as only internal. IMO, this requires a name change. Therefore, I propose the following:

InternalPoint3D is renamed to Point3D: a NumPy array, which is returned by many functions and methods.
Point3D is renamed to Point3DLike: anything resembling a 3D point, either a NumPy array or a tuple[float, float, float]. Users should, in general, be able to pass Point3DLike arguments (anything resembling a 3D point) to their functions and expect Point3D (always a NumPy array) return values from them.

Reviewer Checklist

[ ] The PR title is descriptive enough for the changelog, and the PR is labeled correctly
[ ] If applicable: newly added non-private functions and classes have a docstring including a short summary and a PARAMETERS section
[ ] If applicable: newly added functions and classes are tested

could you also update our docs on choosing typehints?
Done! Please, take a look and tell me what you think about it, @JasonGrace2282

.. warning::
This is not always true. For example, as of Manim 0.18.0, the direction
parameter of the :class:.Vector Mobject should be Point2D | Point3D,
as it can also accept tuple[float, float] and tuple[float, float, float].

To me, this indicates that we also need Vector2DLike, Vector3DLike and similar type aliases.
There are also methods like Mobject.rotate() which can actually accept hypothetical Vector3DLike arguments in their current state, methods like Mobject.shift() which could do that with a small rewriting (np.sum(vectors, axis=0) instead of reduce(op.add, vectors)) and functions like cross from space_ops.
Also, it's a bit weird that find_intersection from space_ops accepts Point3DLike_Array for p0s and p1s, but not Vector3DLike_Array for v0s and v1s.
I would like to discuss this more. If we agree on this, I could add those Vector...Like... type aliases, either in this PR or in a different one.


Create MergekSortedListsByKrishna.java

Problem Statement:
Given an array of k sorted linked lists, merge them into one sorted linked list. If the input list is empty or contains only empty lists, return null.
Example:
Input:
lists = [[1->4->5], [1->3->4], [2->6]]
Output:
[1->1->2->3->4->4->5->6]
Approach:
Divide and Conquer: Recursively divide the array of linked lists into two halves and merge them.
Merge Two Lists: Use a helper function to merge two sorted linked lists by comparing node values.
Time Complexity: O(n log k), where n is the total number of nodes and k is the number of linked lists.
Space Complexity: O(log k) due to recursion depth.
Steps:
If lists is empty, return null.
Recursively merge linked lists using the helper mergeKListsHelper.
Use the merge function to merge two lists by comparing nodes one by one.
This approach efficiently merges k lists with minimal time complexity.

Added a DSA Question and solution for the same in JAVA

@krishna1584 please add problem statement and approach for this file also rename file as protocol.

Added a DSA Question and solution for the same in JAVA

@krishna1584 please add problem statement and approach for this file also rename file as protocol.

@krishna1584 problem statement and approach is still missing.

Added problem statement and approach

I hope this message finds you well. I wanted to inform you that I have created a program to merge K sorted lists in Java and added it to the repository as part of my initial contributions for Hacktoberfest. I have included the problem statement and approach for the solution as told by you.
I would like to request you to add the Hacktoberfest label and merge it. Please let me know if you have any feedback or require any further modifications.

@indrakishore please merge my PR


Using resolutions higher than 64x64 gives error "X and G size differ" with all DCGAN configurations

Is there any way to use higher resolutions than 64x64 with DCGAN confugations? I tried to alter many parameters but it always gives me that error: X and G size differ

This should either work or the error should be more explicit. Should be fixed in 1.0.


Xp temporarily dissappears when using teleporter

When using the teleporter to transfer between dimensions, my xp bar temporarily dissapears. The xp isn't lost but as far as enchanting tables and other items that use xp, I might as well be a fresh lvl 0. Relogging or killing something causes the xp to come back to where it was. At first i thought it was something to do with RFtools dimensions, but it even happened when teleporting to the nether. Pics below show what happens.
--Before using the portal to the nether--

-- After arriving at the nether, xp is gone--

-- after using a bottle of enchanting my xp is back --

Not just a Mekanism issue.  I've seen it with at least two other teleport-type mods.  Now I'm trying to remember if the vanilla nether portal does it too...going to have to satisfy my curiosity tonight.

i watched lately some modsauce2 videos from xBCrafted (hermitcrafter) on youtube and he has the same problem using some other portals mod

This bug used to happen in Galacticraft, but between dimensions: https://github.com/micdoodle8/Galacticraft/issues/1336

This is simply a client desync problem, doing anything that causes the server to force the client to update (e.g. using a Bottle 'O Enchanting) causes the GUI to update.


Brew update fail's on Mac OSX High Sierra

Please always follow these steps:

[ X] Confirmed this is a problem with running a brew command and not brew installing or the post-install behaviour of one or more formulae? If it's a formulae-specific problem please file this issue at the relevant tap e.g. for Homebrew/homebrew-core https://github.com/Homebrew/homebrew-core/issues/new
[ X] Ran brew update and retried your prior step?
[- ] Ran brew doctor, fixed all issues and retried your prior step?
[ X] Ran brew config and brew doctor and included their output with your issue?

To help us debug your issue please explain:

What you were trying to do (and why)
Updating brew
What happened (include command output)
brew update Error: /usr/local is not writable. You should change the ownership and permissions of /usr/local back to your user account: sudo chown -R $(whoami) /usr/local
Running:
sudo chown -R $(whoami) /usr/local

Gives me:
chown: /usr/local: Operation not permitted
Running
udo chown -R $(whoami) $(brew --prefix)
gives me the same error
The brew doctor output is the following:

Warning: /usr/local is not writable.
You should change the ownership and permissions of /usr/local
back to your user account.
sudo chown -R $(whoami) /usr/local
Warning: /usr/local is not writable.
Even if this directory was writable when you installed Homebrew, other
software may change permissions on this directory. For example, upgrading
to OS X El Capitan has been known to do this. Some versions of the
"InstantOn" component of Airfoil or running Cocktail cleanup/optimizations
are known to do this as well.
You should change the ownership and permissions of /usr/local back to
your user account.
sudo chown -R $(whoami) /usr/local
Warning: You are using OS X 10.13.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Warning: Ruby version 2.3.3 is unsupported on 10.13. Homebrew
is developed and tested on Ruby 2.0, and may not work correctly
on other Rubies. Patches are accepted as long as they don't cause breakage
on supported Rubies.
Warning: Homebrew's sbin was not found in your PATH but you have installed
formulae that put executables in /usr/local/sbin.
Consider setting the PATH for example like so
echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile
Warning: Your Homebrew is outdated.
You haven't updated for at least 24 hours. This is a long time in brewland!
To update Homebrew, run brew update.

The brew config output is the following:

HOMEBREW_VERSION: 0.9.9
ORIGIN: https://github.com/Homebrew/brew.git
HEAD: 092d4712a1d00bc08eb0515d8e61f7859c7a2de0
Last commit: 1 year, 4 months ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: b9aa599879e235ec202a06ef3d466b02f3b8470e
Core tap last commit: 1 year, 4 months ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_REPOSITORY: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
HOMEBREW_BOTTLE_DOMAIN: https://homebrew.bintray.com
CPU: octa-core 64-bit haswell
Homebrew Ruby: 2.3.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
Clang: 8.1 build 802
Git: 2.11.0 => /Applications/Xcode.app/Contents/Developer/usr/bin/git
Perl: /usr/bin/perl
Python: /usr/bin/python
Ruby: /usr/bin/ruby => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
Java: 1.8.0_92, 1.7.0_79
OS X: 10.13.1-x86_64
Xcode: 8.3.3
CLT: N/A
X11: 2.7.9 => /opt/X11

sudo chown -R $(whoami) /usr/local/*

duplicate of #3285?


Aq update

Hi @c0c0n3
this pull request updates AQ to its latest version (new KITT4SME color branding and homepage with details about AQ) and also enables Keycloak. However, having Keycloak working first require to create a new client (ID: "aq") in our Keycloak.
You may think of merging until commit 99d39279332723fa169007cd5ae4bf16704a832e and then postpone enabling Keycloak.

@vcutrona I commented out the Keycloak stuff as it won't work, even with a proper client. In fact I set up our Keycloak as Panos told me to do, including the OIDC client. But then I bumped into #291 when testing. So we can't demo SSO at tomorrow's GA. Bummer!

@vcutrona oh forgot to mention, the rest actually works. I tested the new UI and it worked flawlessly, so that's one thing we can show tomorrow. the new-born is live on stage now

https://kitt4sme.collab-cloud.eu/aq

Super! Let's demo the new AQ with no authentication then.
As a next step, we should update the "try the adaptive questionnaire" link on kitt4sme.eu webpage, making it pointing to https://kitt4sme.collab-cloud.eu/aq (currently, https://kitt4sme.collab-cloud.eu/aq/demo/start/k4s-adaptive-questionnaire). I'm gonna notify the website maintainers.


Resolved: GO Portal is back up in 1d60035.


Implement stampit/convertConstructor utility function

There is one last bit left to implement in order to fulfill the Stampit v3 RFC - the convertConstructor function.
I'm seeking for a volunteer to implement that. It should convert ES6 classes to stamps. The initializer, properties, methods, and staticProperties should be segregated from a ES6 class and added to a stamp.
Here is how the stampit v2 had convertConstructor implemented: https://github.com/stampit-org/stampit/blob/v2.1.2/src/stampit.js#L275

So... We have a problem.
I examined the ES6.
Here is what we should implement in order to convert ES6 classes in fully compatible way.
This code should produce the picture below:
    class Point {
        constructor(x, y) {
            this.x = x;
            this.y = y;
        }
    }

    class ColorPoint extends Point {
        constructor(x, y, color) {
            super(x, y);
            this.color = color;
        }
    }

    let cp = new ColorPoint(25, 8, 'green');

Stamps do not allow prototype chaining. By design. Deliberately.
This means there is no way we can write a fully fledged convertConstructor.
=====
Ok. but we can try supporting single level (no inheritance) classes. Right?
No. We can't do that either.  Can we? Yes we can. The same way as before.
But we must make sure people are not using convertConstructor for ES6 classes. I would better rename the convertContructor to convertClassLikeFunction to make sure there is no confusion.
=====
See that branch and that file if you wanna play around with it:
https://github.com/stampit-org/stampit/blob/convert-constructor/test/convert-constructor.js
Just run npm test

I am probably missing something in my brains, but I don't see a problem here.
const convertConstructor = ctor => stampit({
    init: function (_, {args}) {
        return Reflect.construct(ctor, args, this);
    },
    methods: ctor.prototype,
    statics: ctor
});

const ColorPointStamp = convertConstructor(ColorPoint);
const cp = ColorPointStamp(25, 8, 'green');

What's the catch here? The init gets called, constructor gets all necessary arguments and prototype chain will work from there. We don't need to do anything about that really.
Maybe you are missing the piece with Reflect.construct? It's exactly made to create instances of ES6 classes dynamically.

Well this is totally strange. I tried to create the codepen, but I don't get it ...

It's obvious there and it's a function, yet it's not a function :D
http://codepen.io/FredyC/pen/yJyYaR?editors=0011

Here is a codepen with this simple use case working like magic ✨ ;)

Awesome use of Reflect. I always wondered how to get around the new problem with arguments. Here's the pertinent line of code from a reflect shim.
return new (Function.prototype.bind.apply(newTarget, [null].concat(args)));

@FredyC Tried it, can't get it to break. Are there edge-cases where this won't work?

I haven't actually tried to run it against those test cases from above: https://github.com/stampit-org/stampit/blob/convert-constructor/test/convert-constructor.js
Can someone else try that please?

After a long chat we decided to go this way:

The convertConstructor will be used for the ES5 class-like functions.
The new convertClass will be used for ES6 classes:
2.1) In the API docs we'll warn that only the non-inherited classes are fully supported
2.2) and the classes inherited at least once are loosely supported (list the limitations).

=====
Here is a rough WIP implementation (run it here):
const convertClass = ctor => stampit.default({
    init: function (_, {args, instance}) {
        return Reflect.construct(() => instance, args, ctor);
    },
    methods: ctor.prototype,
    statics: Reflect.ownKeys(ctor)
        .reduce((statics, k) => {
            if (k !== 'length' && k !== 'name' && k !== 'prototype')
                statics[k] = ctor[k];
            return statics;
        }, {})
});

Can you tell me where this stands? I just ran across stampit a couple hours ago. It looks like it solves some problems I'm having very nicely. Unfortunately I have a tight deadline and need to mush together a number of classes. Do I have to rewrite them all as stamps?

Hi @Sigfried
Thanks for the question. The work has stuck at some point of time: https://github.com/stampit-org/stampit/compare/convert-constructor?expand=1
This requires more unit tests. And probably implementation improvements...
I'm planning to implement it as the @stamp/convert-constructor module later. If you really need stamps - your only option atm is to convert classes to stamps manually. Sorry about that.

@Sigfried I would be so negative about it as @koresar said. Yes, there is no official support for it, but if you go through comments here, you can just as easily make an implementation that suits your needs. With stamps there is no need to wait for maintainers to finish something as long as specification stays same.

Thanks for the quick replies!
I'm seeing there's not much work to manually converting my classes to stamps (though I'd rather not since some old code will still use the class versions), so I'm able to move ahead, and stampit is saving me from making a much bigger mess than I would have otherwise.
Another dumb question: there's no way to write stampit methods as arrow functions, right? My ES6 classes use arrow functions for methods (which nicely binds them to their instances), so the main work in converting them to stamps is changing arrow functions to the regular kind.  ...So now I'm wondering, are stamp methods bound to instances? (I.e., detached=instance.foo; detached() only works with this===instance for arrow methods.)

@Sigfried could you please show us some code regarding

My ES6 classes use arrow functions for methods

I am not sure there is such syntax in ES6.

@koresar You can actually use fat arrow in classes with class properties, just like...
class MyClass {
  myBoundMethod = () => {
  }
}

It's ugly as hell, but it works.
@Sigfried Unfortunately, you cannot really do this with stamps because of there no such support from the language. There is a more extensive discussion in this issue.

@FredyC Class properties is still in the early proposal stage for a future version of JavaScript. It is not part of the current standard.

And why does that matter? It's more of the question if person/company is comfortable using Babel. As long as they keep a version that supports that feature, it will just work no matter the standard. I don't want to flame about it, but it's kinda ridiculous to stop at things that are standardized only.

@FredyC I can clearly see that @Sigfried is using ES6 classes, not ES-Next or something:

My ES6 classes use arrow functions

Eh, what? :) He said that he is using arrow functions in classes, that kinda means that he is using these non-standardized class properties or am I missing something here? :)

Sorry for the delay. Yeah, I was doing stuff like:
cids = () => this.prop('cids')
concepts = (cids=this.cids()) =>concepts(this.conceptState.loaded).filter(c=>_.includes(cids,c.concept_id))
concept_ids = (cids) => this.concepts(cids).map(d=>d.concept_id)
cidCnt = () => this.cids().length
conCnt = () => this.concepts().length`

I like the arrow methods, but it's not a big deal. I've already converted everything.

So, Daniel was right - you are actually using Babel! I must mention, that this keyword in the following code is VERY misleading.
cids = () => this.prop('cids')

According to ECMAScript standard in this case this should not point to the object instance, but to the upper scope - likely the window or global scope in your case.
I assume that Babel compiles it wrong. :) Not sure.
P.S.
This is more readable to me, my colleagues, and non JS developers. Also, it is part of ES2015:
cids() { return this.prop('cids') }

Compare to yours:
cids = () => this.prop('cids')

P.P.S.
I am starting to hate transpiling more❗

Sorry, I wasn't clear. All that stuff I quoted was in the context of a class definition:
export class ConceptSet {
  constructor() {
    ...
  }
  cids = () => this.prop('cids')
  concepts = (cids=this.cids()) => concepts(this.conceptState.loaded).filter(c=>_.includes(cids,c.concept_id))
  concept_ids = (cids) => this.concepts(cids).map(d=>d.concept_id)
  cidCnt = () => this.cids().length
  conCnt = () => this.concepts().length
  ...
}

I'm not going to defend transpilers, but I like this experimental feature: https://babeljs.io/repl/#?babili=false&evaluate=true&lineWrap=false&presets=es2015%2Creact%2Cstage-2&targets=&browsers=&builtIns=false&debug=false&code_lz=MYGwhgzhAEAKD2EAuBJAdgM3tApgDyRzQBMYAlHMYJAOgGF4BbAB3jSKWgG8AoASAAWYEiBwB5ZkgCWbCACEArkiRs6IKcADW0ALzQAFDgCUugHzce0K9CQCpEGhBxIAykjCF9XCAPgB3CWlZAFl4YjAQAC4bACcFHABfIwBuS2gEngSgA&experimental=true&loose=false&spec=false
The this is not misleading. It does refer to the instance. And, the great thing (besides saving me a few keystrokes) is, whereas in your version,
cids() { return this.prop('cids') }
let foo = instance.cids
foo()

will fail unless you attach foo to an object, like:
let foo = instance.cids.bind(instance)

But
cids = () => this.prop('cids')
let foo = instance.cids
foo()

works as one would hope, with this referring to instance.

cids = () => this.prop('cids')
let foo = instance.cids
foo()

works as one would hope, with this referring to instance.

I have not read the class property spec, but if it works like object props, the transpiler is probably making a mistake. this can't be bound in real ES6 arrow functions because they don't have a slot for this -- in other words, they always delegate this to lexical scope.

Oops. didn't mean to close.

But it's defined inside the class definition, so can that make the lexical scope be the instance?

It's really strange. I wasn't able to actually find the specs of this experimental features. Babel has it implemented and people are using it. There is short mention in a Babel blog which reasons about it like...

The body of ES6 arrow functions share the same lexical this as the code that surrounds them, which gets us the desired result because of the way that ES7 property initializers are scoped.

It almost looks like that it's just a feature that Babel came up with and it's not standardized actually. 😖
Btw to make things even more confusing, there is a proposal for private fields ... 📢

Thanks for the info @Sigfried
Just a quick note. The proposal is memory heavy. This attaches methods not to the prototype, but to the instance itself.
export class ConceptSet {
  cids = () => this.prop('cids')
}

If you are creating a lot of these objects - you are wasting CPU and memory and GC etc.

@koresar And isn't that what we are doing in stamps whenever we need to bind method, make it private or access stamp configuration? In those cases, we also have to attach to the instance.  I don't see why you should warn about it for classes.

@FredyC you are right. But Sigfried do not need method binding and private props.

I don't have time to mess with it right now, but I was thinking I could do
the same with stamps by using props instead of methods.... Can't recall if
I had an idea of where 'this' would come from.....
sending from phone. please pardon terseness, typos, incoherence, etc.
On Jun 18, 2017 5:52 AM, "Vasyl Boroviak"<EMAIL_ADDRESS>wrote:
@FredyC https://github.com/fredyc you are right. But Sigfried do not need
method binding and private props.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/stampit-org/stampit/issues/257#issuecomment-309267428,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABg2850Y8h4g2HB2OHGOCkzu5F5Atrz0ks5sFPNWgaJpZM4KTjy9
.

Sigfried, you can surely do the same using stamps.
import {init} from `stampit`;
export const ConceptSet = init(function () {
  // ... constructor code here ... //

  this.cids = () => this.prop('cids')
  this.concepts = (cids=this.cids()) => concepts(this.conceptState.loaded).filter(c=>_.includes(cids,c.concept_id))
  this.concept_ids = (cids) => this.concepts(cids).map(d=>d.concept_id)
  this.cidCnt = () => this.cids().length
  this.conCnt = () => this.concepts().length
});

It is exactly the same implementation as the Babel transpiled code you referenced above.

Totally extra cool!!!
I was just being dumb wondering out how to shoehorn those into methods or properties.
I may not need to use methods or properties at all, right? The important work (at least for me) that stampit is doing is composing without inheritance insanity.
So, if I put everything in init like your example, it'll all get merged correctly, right? (Assuming I don't put crazy nested stuff in there...)
Thanks!

Correct.
But I still would recommend using methods() if you are creating a lot of these objects.
Always glad to help!

@gajewsk2 I have implemented and published the official convert-class module: https://www.npmjs.com/package/@stamp/convert-class
npm i @stamp/convert-class
It fixes one bug in the code example above. So, you might want to use that npm package. :)

Since none is creating ES5-style "classes" any more, I propose to not implement the convertConstructor at all. The ES6 convertClass is enough nowadays I reckon.
WDYT?
If no objections I'd close this issue in few days.

Thanks @koresar that seems a very useful addition to stampit adoption. I'll be sure to try it out soon.
As to your other point, do we need convertConstructor if we have convertClass:
I've gathered that stampit is trying to be friendly to the ES5 ecosystem, since it's written in ES5. But if you don't support convertConstructor, then who is stampit targeting?
People with build-systems that already convert their es6+ classes to ES5? But then people's build system would be able to transpile stampit if it was written in ES6+ syntax.
People who use native ES6+ without any transpiling? But then why code stampit in ES5?
Personally, I would still benefit from a convertConstructor as I'm using stampit as a way to bridge both the old and new code in my code base, which has both ES6 and old "class", but I can write something to hold myself over indefinitely. I'm curious what breaks if I pass a plain old constructor w/ prototype chain (old school classes) to the new convertClass. Time to dig in and find out :)

@FredyC have just told the reasoning why stampit is ES5. Also, few other reasons are listed here: https://github.com/stampit-org/stampit/releases/tag/v4.0.0
If someone would rewrite stampit in ES6 it'd be awesome. There are few requirements though:

Same <1.5kB gzipped size.
The min.js bundle is ES5 compatible (including Object.assign polyfil).
All tests still pass (this is the hardest part).
And have the similar build dist(s) as Preact has:

  "main": "dist/preact.js",
  "jsnext:main": "dist/preact.esm.js",
  "module": "dist/preact.esm.js",
  "dev:main": "dist/preact.dev.js",
  "minified:main": "dist/preact.min.js",
  "types": "dist/preact.d.ts",

Frankly, that's a lot of work! And the benefits are rather small. Tiny modules like stampit do not need all that project infrastructure complexity. Ask Sindre Sorhus :) He was able to develop that myriad or modules because he does not transpile any of them. No transpilation saves time!
PS: I'd focus efforts on better documentation :) Because the hardest part about stampit is the mind shift from classes.
Look what I have just started!
https://stampit-org.gitbooks.io/docs/content/ (auto synced to https://github.com/stampit-org/docs)
I invite anyone to contribute to that gitbook. It's empty atm. Ask me for write access. :)

To be honest (and its way OT), I am not using stampit for the last year or so. It's not needed for a React functional components and for logic I am using mobx-state-tree which is somewhat similar to stamps, but also reactive.
That being said, I don't really feel motivated to help with anything on this project right now. Sorry.

@gajewsk2 probably I need to note that convertContructor is not cancelled. :) Going to make it soon.


v0.9.3: Vision: Add one hot encoding for labels to split

Since CV module is meant to be used in (C)NN, the output will be a vector from a softmax activation function. In this case, labels need to be converted to a one hot encoding.

Added in v0.9.3


Add tests for reserved fields of sections

See also https://github.com/fluent/fluentd/wiki/Developer-notes-for-fixes-on-v0.14#configuration

LGTM. Thanks!


Feature/cli.auth.token.support

Looks like with GKE, we have to run a kubectl first, then get the token. A newly created cluster doesn't have the token. Not sure if this is something we can do in code or just document.
$ go run main.go auth token

$ kubectl get nodes
NAME                                         STATUS   ROLES    AGE     VERSION
<node-1-name>    Ready    <none>   3m51s   v1.15.8-gke.3
<node-2-name>    Ready    <none>   5m13s   v1.15.8-gke.3
<node-e-name>    Ready    <none>   5m13s   v1.15.8-gke.3
$ go run main.go auth token
<token-was-returned>


Use max (instead of sum) for calculating warnsize

[x] Closes #9146
[x] Tests added / passed
[x] Passes pre-commit run --all-files

It looks like we're currently warning when we shouldn't. Could we add a small regression test to make sure we don't emit a warning in that case with the changes here?

Yes! Added. :)


Integrate with libpq

Codecov Report

Merging #24 (b28272b) into master (582451d) will decrease coverage by 8.10%.
The diff coverage is 75.11%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##           master      #24      +/-   ##
==========================================
- Coverage   85.21%   77.12%   -8.10%
==========================================
  Files           6       12       +6
  Lines         433     1740    +1307
==========================================
+ Hits          369     1342     +973
- Misses         64      398     +334

Flag
Coverage Δ

unittests
77.12% <75.11%> (-8.10%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

postgres.lua
100.00% <ø> (ø)

lib/connection.lua
71.92% <61.53%> (-1.47%)
:arrow_down:

src/pgconn.c
69.87% <69.87%> (ø)

src/misc.c
74.46% <74.46%> (ø)

src/lua_postgres.h
74.73% <74.73%> (ø)

src/pgresult.c
86.62% <86.62%> (ø)

src/util.c
94.11% <94.11%> (ø)

lib/result.lua
97.91% <100.00%> (-0.17%)
:arrow_down:

lib/rows/single.lua
95.45% <100.00%> (-0.38%)
:arrow_down:

src/pgcancel.c
100.00% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


prolog hello world

Prolog lang

yeah....... its done

Don't remove the existing file from the Go folder, keep that. Also update your fork with the latest changes.

Also why are there 2 files in prolog?

Now i think everything is fixed.........
Pls review it

/approve

/label hacktoberfest-accepted

@Mergifyio update


Please add windows OS support

Dexcalibur not supporting windows, so please consider this request.
Because more of users are friendly with windows :)

It's planned, but it is not the actual priority because these version is the "legacy" version.
The future version is coming, it will be packaged as a portable Electron application and will support Windows (thanks to @duckness and his workarounds (#35)). Some screenshots are available on my twitter.

But, i am tries today, few hours before

Thanks for on time reply, i am closing this issue now.


support for ldapi://

LDAP server may serve over a unixsocket. To connect to such servers, a LDAP-client uses an 'normal' LDAPURI ldapi://%2Fpath%2Fto%ldap-socket/dc=base,...

the hostpart doesn't contain any ":port"
any '/' is encoded as '%2F'
see man 5 ldap.conf (OPTIONS, URI)

currently I see ony an error message:
http_auth_ldap: invalid host in LDAP hostname "/path/to/ldap-socket" in /path/to/nginx.conf

@kvspb
Hello! Is there anything I could do to assist?

I ran into the same issue. NGINX and OpenLDAP running on the same host, the latter only providing a Unix domain socket for access, so "ldap:" and "ldaps:" are currently unavailable. Support for the "ldapi:" scheme would be very useful for cases like this.

Is this project still maintained?
we switched over to authelia
https://github.com/authelia/authelia
It’s great!

@davama Thanks a lot for pointing out authelia. It looks very interesting, and given that it is actively maintained, it might be the better choice.


Not working on arm64 mac without rosetta2

$ arch
arm64

$ brew install edxu96/cmdict/cmdict
fatal: ambiguous argument 'refs/remotes/origin/master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
fatal: invalid upstream 'origin/master'
warning: refname 'origin/master' is ambiguous.
warning: refname 'origin/master' is ambiguous.
warning: refname 'origin/master' is ambiguous.
<EMAIL_ADDRESS>The x86_64 architecture is required for this software.
Error: cmdict: An unsatisfied requirement failed this build.

Works now:
$ brew install edxu96/cmdict/cmdict
fatal: ambiguous argument 'refs/remotes/origin/master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
fatal: invalid upstream 'origin/master'
warning: refname 'origin/master' is ambiguous.
warning: refname 'origin/master' is ambiguous.
warning: refname 'origin/master' is ambiguous.
==> Auto-updated Homebrew!
Updated 1 tap (edxu96/cmdict).
==> Updated Formulae
Updated 1 formula.

==> Downloading https://files.pythonhosted.org/packages/6c/ae/d26450834f0acc9e3d
Already downloaded: /Users/edxu96/Library/Caches/Homebrew/downloads/86e8e1766c3528acc8bf98587c92ef116261087678a6158e4719100a9a30f3ac--certifi-2021.10.8.tar.gz
==> Downloading https://files.pythonhosted.org/packages/56/31/7bcaf657fafb3c6db8
Already downloaded: /Users/edxu96/Library/Caches/Homebrew/downloads/095e7d293e8eb9fdc9383160638a9b31fd5f67314aa126180130add7456f5802--charset-normalizer-2.0.12.tar.gz
==> Downloading https://files.pythonhosted.org/packages/27/6f/be940c8b1f1d69dace
Already downloaded: /Users/edxu96/Library/Caches/Homebrew/downloads/729f15182b3d73a61df6c5b70fb07736c3a57abd09b7fde46af074f5787e42dd--click-7.1.2.tar.gz
==> Downloading https://files.pythonhosted.org/packages/1f/bb/5d3246097ab77fa083
Already downloaded: /Users/edxu96/Library/Caches/Homebrew/downloads/e7330193254dd730e7650c6e56161b9c00ccada445384cda90e60194c734a7a4--colorama-0.4.4.tar.gz
==> Downloading https://files.pythonhosted.org/packages/62/08/e3fc7c8161090f742f
Already downloaded: /Users/edxu96/Library/Caches/Homebrew/downloads/b61bd327cd7a0ba298cc7cdb6f314f028e8547bef2f814156ce50702a6faf562--idna-3.3.tar.gz
==> Downloading https://files.pythonhosted.org/packages/6d/25/0d65383fc7b4f4ce95
Already downloaded: /Users/edxu96/Library/Caches/Homebrew/downloads/eea97fa349c3d4c4b83e8e8538ccaf51917c9590a54e1db8c4246504fe97e18f--loguru-0.5.3.tar.gz
==> Downloading https://files.pythonhosted.org/packages/9f/1d/032d24e0c774e67742
Already downloaded: /Users/edxu96/Library/Caches/Homebrew/downloads/903651f75cee710f0ac822819ab2f7839f2ffc0cf54e475e064492f90a055703--PyMuPDF-1.19.6.tar.gz
==> Downloading https://files.pythonhosted.org/packages/a0/a4/d63f2d7597e1a4b55a
Already downloaded: /Users/edxu96/Library/Caches/Homebrew/downloads/22ccede1c6673431cec4016da36c594bf2b6a202919d431a5e81b63ec5bb75a3--PyYAML-5.4.1.tar.gz
==> Downloading https://files.pythonhosted.org/packages/60/f3/26ff3767f099b73e0e
Already downloaded: /Users/edxu96/Library/Caches/Homebrew/downloads/90c145252a2965e7f1248b97f07c92f2ef64d0908ff175de0a85c9b644725c4c--requests-2.27.1.tar.gz
==> Downloading https://files.pythonhosted.org/packages/3c/77/e75fb048907ccc0650
Already downloaded: /Users/edxu96/Library/Caches/Homebrew/downloads/04c1b52ccf5df1ea124ae2297cd8e7983e076ffcd4220d745a9f96b2bdc74428--tqdm-4.63.1.tar.gz
==> Downloading https://files.pythonhosted.org/packages/1b/a5/4eab74853625505725
Already downloaded: /Users/edxu96/Library/Caches/Homebrew/downloads/46070dbeb340b88a19ed03844bb26f61f9925802ff4d837ebb966a22e12b5cbf--urllib3-1.26.9.tar.gz
==> Downloading https://files.pythonhosted.org/packages/6b/bd/7cc4e0f1087bc6e6fa
Already downloaded: /Users/edxu96/Library/Caches/Homebrew/downloads/dcac953b33da5d02977b3fa9c54a1152646408fc844c1e2b01bd21eb33d8638f--cmdict-0.1.2.tar.gz
==> Installing cmdict from edxu96/cmdict
==> python3.8 -m venv --system-site-packages /opt/homebrew/Cellar/cmdict/0.1.2/l
==> /opt/homebrew/Cellar/cmdict/0.1.2/libexec/bin/pip install -v --no-deps --no-
==> /opt/homebrew/Cellar/cmdict/0.1.2/libexec/bin/pip install -v --no-deps --no-
==> /opt/homebrew/Cellar/cmdict/0.1.2/libexec/bin/pip install -v --no-deps --no-
==> /opt/homebrew/Cellar/cmdict/0.1.2/libexec/bin/pip install -v --no-deps --no-
==> /opt/homebrew/Cellar/cmdict/0.1.2/libexec/bin/pip install -v --no-deps --no-
==> /opt/homebrew/Cellar/cmdict/0.1.2/libexec/bin/pip install -v --no-deps --no-
==> /opt/homebrew/Cellar/cmdict/0.1.2/libexec/bin/pip install -v --no-deps --no-
==> /opt/homebrew/Cellar/cmdict/0.1.2/libexec/bin/pip install -v --no-deps --no-
==> /opt/homebrew/Cellar/cmdict/0.1.2/libexec/bin/pip install -v --no-deps --no-
==> /opt/homebrew/Cellar/cmdict/0.1.2/libexec/bin/pip install -v --no-deps --no-
==> /opt/homebrew/Cellar/cmdict/0.1.2/libexec/bin/pip install -v --no-deps --no-
==> /opt/homebrew/Cellar/cmdict/0.1.2/libexec/bin/pip install -v --no-deps --no-
🍺  /opt/homebrew/Cellar/cmdict/0.1.2: 1,808 files, 57.5MB, built in 6 minutes 42 seconds
==> Running `brew cleanup cmdict`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

$ cmdict download
--------
Downloading the dictionary...
100%|███████████████████████████████████████| 217M/217M [00:17<00:00, 12.7MiB/s]


Add style.css

[ ] I have thoroughly read and understand The Odin Project Contributing Guide
[ ] The title of this PR follows the where the change occurs: brief description of change format, e.g. Intro to HTML and CSS lesson: Fix link text

[ ] If updates were made to any solution code, I have ensured that the Desired Outcome image is accurate
[ ] If one exists, I have linked a related open issue to this PR in Step 2 below
[ ] If changes were requested, I have made them and re-requested a review from the maintainer (top of the right sidebar)

1. Description of the Changes

2. Related Issue

Closes #XXXXX

@LansinYang Please refrain from submitting PRs with your own solutions. We do not accept user solutions for any of our repos in this way. I would suggest reading our contributing guide mentioned in the PR template in your original post.


No Position.php found in v1.3.0

No position.php found in release v.1.3.0

The master contains the code for the version 2.0 which is under development. Checkout the 1.x branch for the current stable version.


fix(sequential-calls): Use push instead of concat when returning releases

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[x] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[x] Ensure the tests and linter pass
[x] Code coverage does not decrease (if any source code was changed)
[x] Appropriate docs were updated (if necessary)

Fixes #1864 🦕
Also fixes https://github.com/cloudquery/cloudquery/issues/7787

Could also fix https://github.com/google-github-actions/release-please-action/issues/546

Hi lovely release please team 👋 Is there anything missing on my end I should add to this PR?

Thanks for the review, merge and quick release 🚀


chore: add required null checks to pass linting and run melos Format

Description
While working a smaller issue I noticed the linter couldn't complete due to missing null checks at least in the versions of dart/flutter I have. I also ran the formatter, which changed more than I thought it would. There was also an imported package in the test project that needed to be listed as a dependency.
Related Issues
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (melos run analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change.
[x] No, this is not a breaking change.

Hey @Fieora, I don't think this PR is necessary, I've just ran formatter and analyze via melos and did not see any issues that needed addressing. Closing this out.

Upgrading to flutter 3.0 resolved linting errors!


[Design] Unirep Protocol website

To have simple & attractive website to show how the protocol work.

Home page

Doc (using docsuraus)

Blog (use for small anoncement and other public com. materials)

need to design a logo for protocol

need

Close this issue since we have basic landing page for now: https://developer.unirep.io/


Create a standard mixin for admin HTML components that render themselves

A pattern we frequently see in Wagtail's extensibility / hook mechanisms is to have third-party code return an object with a render method (or render_html or similar), and then have the Wagtail view assemble a list of those objects and loop over them during template rendering. This pattern appears in:

construct_homepage_panels
construct_homepage_summary_items
register_admin_menu_item / register_settings_menu_item / construct_main_menu
register_admin_search_area
register_page_action_menu_item
construct_wagtail_userbar
the proposed view restriction classes in RFC 32

There are also looser similarities with EditHanders, StreamField blocks, and Django form widgets.
Because this pattern has been re-implemented from scratch each time, each implementation differs in various details:

the name of the 'render' method
the parameters passed to the 'render' method: request, user, parent_context...
whether we provide a base class with a default render method, so that subclasses can just 'fill in the blanks' rather than constructing an HTML string from scratch
whether the default render method uses Django templates (and thus allows subclasses to override the template by setting a template attribute)
if so, do they support a get_template to allow the template to be chosen dynamically
whether they provide a get_context method to add extra variables to the template context
if so, whether get_context receives a parent_context to access variables from the parent template
whether the object can have JS/CSS assets attached
whether the object has an order property to determine its position in the list
whether there's an is_shown method, allowing the calling template to omit the container block entirely if none of its child objects are shown

If Wagtail were to provide a standard implementation of this pattern, it would reduce code duplication, make APIs more consistent, and make it possible to easily add extension mechanisms to parts of the Wagtail admin that don't currently have one (e.g. the 'switches' area in the top right corner of the page edit view) or have a different, more limited mechanism (register_account_menu_item, register_page_listing_buttons).
I would imagine such an implementation to consist of a mixin class (named HTMLComponent or similar) to serve as the basis for a single renderable object, along with some helper functions / classes / template tags for the common tasks around assembling and rendering a list of those objects: providing register_foo / construct_foo hooks, reordering / checking is_shown, combining media declarations into one, and so on.

This looks a lot like template components (#7425) introduced in Wagtail 2.15, so will close now.


Compatibility with Security Dashboards Plugin <IP_ADDRESS>

We need to ensure the UI compatibility with the next version of Security Dashboards Plugin vX.X.
This update is still being discussed, but we need to be aware of potential issues.
For that, we need to:

[x] Review Security Dashboards Plugin latest stable changelog.
[x] Identify improvements and potential impact on the UI.
[x] Create new tracking and development branches.
[x] Develop a testing environment to verify our components would work under this new build.

Supersued by #31


Add op tf.contrib.ffmpeg.decode_video

This fix tries to address the request raised in #6265 where it was not possible to decode video like the existing op of decode_audio.
This fix adds the support of tf.contrib.ffmpeg.decode_video by invoking ffmpeg the same fashion as tf.contrib.ffmpeg.decode_audo so that video could be stored in the tensor [frames, height, width, channel]. At the moment, the output format is RGB24.
This fix fixes #6265.
Signed-off-by: Yong Tang<EMAIL_ADDRESS>

Can one of the admins verify this patch?

Thanks for the review. The PR has been updated. Please take a look.

Jenkins, test this please.

Thanks @drpngx for the review. The PR has been rebased and GetTempFilename has been moved to tensorflow/core/lib/io. Please take a look.

Jenkins, test this please.
On Thu, Oct 5, 2017, 10:52 PM Yong Tang<EMAIL_ADDRESS>wrote:

@yongtang commented on this pull request.
In tensorflow/contrib/ffmpeg/default/ffmpeg_lib.cc
https://github.com/tensorflow/tensorflow/pull/13242#discussion_r143113330
:

@@ -208,22 +311,23 @@ string GetTempFilename(const string& extension) {
}
struct stat statbuf;
if (!stat(dir, &statbuf) && S_ISDIR(statbuf.st_mode)) {

 return io::JoinPath(dir, StrCat("tmp_file_", getpid(), ".", extension));

 if (extension.length()) {

   return io::JoinPath(dir, StrCat("tmp_file_", getpid(), ".", extension));

Thanks. Done.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/pull/13242#discussion_r143113330,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AT_SbWGUzN4odxVQnbcDW65cnGAf84iUks5spcAFgaJpZM4PhHLN
.

Would it be possible to also support usage of the '-vf' argument to ffmpeg to allow setting desired fps and scale for the decoded video?
When I use ffmpeg to decode video for learning I'm using it with:
-vf "scale=w:h, fps=f"
where w, h, f stands for width height and fps respectively.
You guys are doing awesome work, thanks a lot!

@Itaydal I think it might help if you could create a separate issue for feature request. I would assume setting desired fps and scale require more discussion about the API/etc.
You can assign the issue to me and I can work on it once you create the issue for this feature request.

@drpngx The Android and Windows Jenkins failure is caused by mkstemps which is not available on those two platforms.
On Windows we could use native WIN32 APIs to emulate. On Android I am not so sure. I don't have prior experience with NDK and I am not sure Android has the same tmpfs as normal Linux.
On the other hand, since ffmpeg is only to be used on Linux at the moment, I think we could just disable GetTempFilename() on Windows and Android for now to move this PR forward.
If there is a need in the future to have GetTempFilename() on Windows and Android I can spend time working on it.

Updated the PR and disabled mkstemps on Windows and Android for now. Let me know if implementation is preferred/desired.

@yongtang could you resolve the conflicts? Sorry we let this fester.

Thanks @martinwicke. The PR has been rebased with conflict resolved. Please take a look and let me know if there are any issues.

Jenkins, test this please.

The error was caused by missing the header include #include "tensorflow/core/lib/io/path.h" in ffmpeg_lib_utility_test.cc. The PR has been updated and pushed.
I think restart the Jenkins will work.

Jenkins, test this please.

There's still a problem in the Windows build: sys/wait.h not found.

FAILURE

FAILURE

SUCCESS

FAILURE

I think all tests passed now.
The error related to MacOS CPU Tests is the timeout of
//tensorflow/python/kernel_tests:slice_op_test

, which I assume it is unrelated.
For Ubuntu contrib failure, it is:
ERROR: command succeeded, but there were errors parsing the target pattern
...
All tests passed but there were other errors during the build.

Maybe it is unrelated as well?

Yeah, that's also unrelated, we're having issues with all the tests with the friendly G.

hi yongtang, I use tensorflow 1.5 and decodevideo.
with tf.Session() as sess:     summary_writer = tf.summary.FileWriter('/home/xucl/app/tensorboard_log/keras_training')     movie_bin = tf.read_file('/home/xucl/app/data/bilibili/video/DongFangLieChe.mp4')     movie = tf.contrib.ffmpeg.decode_video(movie_bin)     movie_ev = movie.eval()
but get an error
F tensorflow/contrib/ffmpeg/default/ffmpeg_lib.cc:401] Non-OK-status: ReadInfoFile(stderr_filename, width, height, frames) status: Unknown: Not enough video info returned by FFmpeg [0, 0, 0, 3]Could not read FFmpeg stderr file: /tmp/tmp_file_tensorflow_3_Bi0OjG.err 已放弃 (核心已转储)

more information about ffmpeg:
$ ffmpeg
ffmpeg version 2.4.3-1ubuntu1~trusty6 Copyright (c) 2000-2014 the FFmpeg developers
built on Nov 22 2014 17:07:19 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --prefix=/usr --extra-version='1ubuntu1~trusty6' --build-suffix=-ffmpeg --toolchain=hardened --extra-cflags= --extra-cxxflags= --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-fontconfig --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-opengl --enable-x11grab --enable-libxvid --enable-libx265 --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libx264 --enable-libsoxr --enable-openal --enable-libopencv
libavutil      54.  7.100 / 54.  7.100
libavcodec     56.  1.100 / 56.  1.100
libavformat    56.  4.101 / 56.  4.101
libavdevice    56.  0.100 / 56.  0.100
libavfilter     5.  1.100 /  5.  1.100
libavresample   2.  1.  0 /  2.  1.  0
libswscale      3.  0.100 /  3.  0.100
libswresample   1.  1.100 /  1.  1.100
libpostproc    53.  0.100 / 53.  0.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

@XuChunling There was a crash in some earlier versions of tensorflow, which has been fixed in #16105. Can you take a look at the latest version and see if the issue is still there? You can open a new issue tracking the bug if the issue persists.

@yongtang tensorflow1.5 is the latest release version, and here is the API
https://tensorflow.google.cn/api_docs/python/tf/contrib/ffmpeg
I have open a new issue #17143  about it

@XuChunling PR #16105 is after 1.5 release so it was not in. It is available for v1.6.0-rc1 and v1.6.0-rc0. I assume v1.6.0 will be released fairly soon.


Type AbstractControl is not assignable to type FormGroup

I am using PyCharm and "tslint": "^5.11.0".  tslint complains about the following.
Building a form using FormBuilder:
this.menuForm = this._formBuilder.group({
      form: this._formBuilder.group(this.menu.form)
    });

and later assigning this to
const form: FormGroup = this.menuForm.get('form');

will give

Type AbstractControl is not assignable to type FormGroup

despite
export declare class FormGroup extends AbstractControl

Is that my fault or is tslint doing something wrong?

Ok nvm - You have to upcast: const form = <FormGroup> this.menuForm.get('form');


Vertical align of grids content

Hello! Thanks a lot for the skin!
I am having problems with the grid when the cells are of different sizes. For example:

As you can see, the content in the first two cells is stuck to the top, and I would like to place it in the center, like this:

I fixed this with apply the following code to the .row
display: flex; align-items: center;
But it breaks responsive design - column classes stop working.
I fixed it again with
display: block;
for .row, but it looks like kludge

You want to do something like this.

Content....

Content....

Content....

Content....

Then add this CSS
.valign-middle {
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-align:center;
  -ms-flex-align:center;
  align-items:center;
}

A row row CSS chain tends to have a wider width issue. So you might want to wrap the whole thing in a

then all the columns

 /* end row */

 /* end large-12 columns */

Try them both and post back.


White color validation tests

Shouldn't all of the buttons be white?
https://i.imgur.com/LPBlk71.png

Made https://github.com/paypal/paypal-checkout/pull/821 to fix tests -- please let me know if you see anything missing from that PR.


MM-36876: useProfilesInChannel should try once

Summary
Change useProfilesInChannel to only try getting the profiles in the channel once (or, at least as long as the given channelId never changes). Previously, the profilesInChannel selector would /always/ result in a new value, triggering the effect hook indefinitely.
Relates-to: https://mattermost.atlassian.net/browse/MM-36876
Ticket Link
https://mattermost.atlassian.net/browse/MM-36876
Checklist

[ ] Telemetry updated
[ ] Gated by experimental feature flag
[ ] Unit tests updated

Failing test seems to be upstream -- I've seen it on other PRs. Will investigate, but not blocking.


DS-4021: Updated patch operations for Item repository and added patch endpoints for EPerson.

This PR includes new patch operation support classes and new patch endpoints for EPerson operations.  The approach is modeled on existing submit patch operations and should be reusable for other DSpaceObject types.

Uses factory method to return autowired patch operations.
Currently assumes separate factory for each DSpaceObject (Collections, EPerson, etc.)
Implements Item withdrawn and discoverable patch operations using the new patch classes.
Implements new EPerson operations.
Includes support for LateObjectEvaluator methods via the PatchOperation (these are not used for withdrawn and discoverable operations but were tested with a dummy class and MetadataValueRest[]).
Includes modifications to the rest contract (Rest7Contract will need to be updated if this PR is accepted).
Includes integration tests.

Hi @mspalti, thanks for the contribution!
Could you please add integration tests in class ItemRestRepositoryIT class for the new patch operations on the discoverable and withdrawn fields? Maybe I missed them because there are a lot of identation changes in that class. You should find similar tests for other patch operations in that class.
Thanks!

Hi @tomdesair
Sorry about the indentation changes in ItemRestRepositoryIT. I removed indentation changes so the diff is cleaner now. The tests that you requested are there from previous work that I did on ItemRestRepository.

@mspalti : Could you link this new PR up to the JIRA ticket it refers to?  That helps reviewers to better understand the context (without having to go searching around).

Thanks for the heads up, @tdonohue. This PR relates to work done originally for DS-3909.  DS-3908 is also related.

The community sprint 3 includes an issue DS-4021 that requires the work done for this PR.  I have  renamed this PR to reference the new Jira issue and have included work on new EPerson patch operations.

This should probably be labelled "work in progress" (can I do that?)
I just added a commit, reintroducing AbstractResourcePatch and concrete implementations for Item and EPerson replace operations. The code in this PR was previously ignoring the operation name and using only the path and value.

@mspalti : I've labeled it "work in progress" on your behalf.  I think GitHub only lets project "owners" add labels at this time...so, since you have developer access, I don't know that you can add your own labels yet.
Once you want this label removed, just let us know or tell us this is "ready for a final review" (and we'll remove the label)

To limit access to the patch operation to the administrator you can use spring security see
https://github.com/DSpace/DSpace/blob/master/dspace-spring-rest/src/main/java/org/dspace/app/rest/repository/EPersonRestRepository.java#L113
it could be useful to check how to allow to specific patch operation to apply different security constraints, but this could be not trivial see
https://github.com/DSpace/DSpace/pull/1976#issuecomment-415054136
and I suggest to leave it for a subsequent task

I think we can remove the work-in-progress label. This code is ready for review.
The latest changes changes:

Added @PreAuthorize annotation to restrict access to Admin
Converted patch classes to work with the RestModel
ItemRestRepository and EPsersonRestRepository methods now updating the business object and context after patch operations successfully complete.
Added the tests requested by @abollini (tests for authorization and multiple operations)

I apologize for the latest commit (I really thought this was done!).  All patch operations (except password for reasons explained in a TODO) now check to be sure they operate on an existing value, per requirements in the Rest7Contract.  Previously some tests were updating null values, and should have failed.
I added a method to the EPersonBuilder class so that the netid can be set during tests. Otherwise, none of the changes here will be surprising.

I believe all change requests are complete.  Happy to fine tune more tests if needed!
In the final commit I inverted things between the abstract replace operation class and the implementations; i.e. moved the process method into the parent class to assure that checks are applied consistently.  The change in flow control doesn't affect anything else.

I think the integration tests now have the requested changes.  I changed to boolean values for existing tests, and added a tests to check for string to boolean conversion.

@mspalti thanks for all the hard work here!


about training

Hi, how long does it take you to train once？Under the condition that the effect will not be greatly reduced, how much can the training epoch be reduced？

A full training run took about 48 hours on a 4 V100 GPU machine. I think you could train for about 1-1.5 days to get good results, but not quite best..

A full training run took about 48 hours on a 4 V100 GPU machine. I think you could train for about 1-1.5 days to get good results, but not quite best..

@vb000 I use 4 3090 GPU machine.But one epoch training run took about 2 hours.  A full training run took about 200 hours on a 4 3090 GPU machine.It runs much more slowly than yours. Do you know the reason? In addition, the training set contains 83876 videos. Are there so many videos in your training set？

@vb000  In your params.json, the batchsize is 8. I use 4 3090 GPU machine, should I change the batchsize to 32?

The training set had somewhere close to 64k videos. The exact link to the dataset is this.
No, we used batch size 8 with 4 GPUs. You could try 32 batch size for faster training at probably a small cost to the accuracy..

The training set had somewhere close to 64k videos. The exact link to the dataset is this.
No, we used batch size 8 with 4 GPUs. You could try 32 batch size for faster training at probably a small cost of accuracy..

@vb000 Hi, is your code mixed precision or single precision?

It's single precision.. float32

Do you use the vimeo-90k test set as the validation set during training?

The septuplet dataset consists of 91701 7-frame sequences with fixed resolution 448 x 256, extracted from 39k selected video clips from Vimeo-90k. The test set of it consists of 7823 7-frame sequences. Why your training set had somewhere close to 64k videos

Vimeo-90k train list has 64612 sequences, please use this link get the dataset we used.

Do you use the vimeo-90k test set as the validation set during training?

No, because it only has 7 frame sequences. We used validation set from REDS dataset.

The epoch in your paper is set to 80,but in your code is set to 100. Should I set to 100 or 80?

100 in the script is the max number of epochs. 80th epoch was the best performing epoch based on validation metrics.

The septuplet dataset consists of 91701 7-frame sequences with fixed resolution 448 x 256, extracted from 39k selected video clips from Vimeo-90k. The test set of it consists of 7823 7-frame sequences. Why your training set had somewhere close to 64k videos

Vimeo-90k train list has 64612 sequences, please use this link get the dataset we used.

Do you use the vimeo-90k test set as the validation set during training?

No, because it only has 7 frame sequences. We used validation set from REDS dataset.

The epoch in your paper is set to 80,but in your code is set to 100. Should I set to 100 or 80?

100 in the script is the max number of epochs. 80th epoch was the best performing epoch based on validation metrics.

@vb000 REDS dataset means REDS4? REDS4 is set of 4 1280x720videos each containing 100 frames.

Hi,
Refer to the footnote in page 6, in the following paper for REDS train and val sets: https://openaccess.thecvf.com/content/CVPR2021/papers/Chan_BasicVSR_The_Search_for_Essential_Components_in_Video_Super-Resolution_and_CVPR_2021_paper.pdf

Hi,
Refer to the footnote in page 6, in the following paper for REDS train and val sets: https://openaccess.thecvf.com/content/CVPR2021/papers/Chan_BasicVSR_The_Search_for_Essential_Components_in_Video_Super-Resolution_and_CVPR_2021_paper.pdf

@vb000 Thank you very much for your reply. I want to confirm again that the validation set is REDSval4？
Is it convenient for you to provide a training log?  I want to confirm whether my training process is normal.

Hi,
Sorry for the late reply. Responses inline..

I want to confirm again that the validation set is REDSval4？

Yes.

I want to know whether the low resolution video you input will be processed into grayscale video in advance or the color low resolution video will be input and read in the grayscale mode in dataset.py?

Both modes work, we trained it using the later approach: we convert color LR frame to Lab color space and provide only L-channel to the model.

In addtion, is it convenient for you to provide a training log?  I want to confirm whether my training process is normal.
Last,  is it convenient for you to view your  PCIe？Use the instruction lspci -vv to check LnkSta
according this linkhttps://unix.stackexchange.com/questions/393/how-to-check-how-many-lanes-are-used-by-the-pcie-card

We trained it on cluster, where various machines are used based on availability. So, we currently do not have access to this data.

I also used 4 v100GPUs for training, and the number of videos in the training set is 64k. But training an epoch takes 2 hours, which is much slower than yours. What is the reason? Do you have any suggestions?

I think that might be normal. I might have misquoted the runtimes, as I might have remembered them wrong. One suggestion I have is, you might want to make sure data loading is not the bottleneck.