To the power of -operator (**) notation not accepted

> let Power (a:float) b = (**) a b;;

  let Power (a:float) b = (**) a b;;
  -----------------------------^

stdin(4,30): error FS0003: This value is not a function and cannot be applied

It is possible to write (**) as infix operator, but that makes it impossible to pass the function on as parameter, i.e.
let domath (a:float) (b:float) op = op a b
domath 2.0 -2.0 (+)
domath 2.0 -2.0 (-)
domath 2.0 -2.0 (**) // this one will fail

In Visual Studio 2015 writing let r = (**) 2.0 -2.0 highlights the (**) as comment
Also tested with Microsoft (R) F# Interactive version 14.0.23413.0
For now I am circumventing with
module Utils =  let Power (a:float) b = a ** b
and passing Utils.Power as the function onward.

You can get around the conflict with block comment by using spaces:
let Power (a:float) b = ( ** ) a b
 ...
domath 2.0 -2.0 ( ** )

Thanks, didn't try that, but that works.
I still would expect (**) to work based on the arithmetic operator documentation alone, but now reading doc on code commenting it makes sense.


error in webscraping

"str" object has no attributes "capabilities"

Getting Error : AttributeError: 'str' object has no attribute 'capabilities'


Text describing how Search work is not Clear

It is unclear in the description that Office 365 Documents are not able to be searched from within Dataverse or Model Driven apps. That the only Office documents are stored within the Attached notes section of Dataverse. this is an important distinction to make

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

ID: f8f4b53c-095c-4bf9-46dd-62299f2568e5
Version Independent ID: 92a06c7b-d9b6-1a85-fb46-8378273a5994
Content: Configure Dataverse search to improve search results and performance - Power Platform
Content Source: power-platform/admin/configure-relevance-search-organization.md
Service: power-platform
Sub-service: admin
GitHub Login: @jimholtz
Microsoft Alias: jimholtz

Thanks for your comment, @devman2k. This issue has been assigned to the doc author for review.


Implement disconnect() for TCP clients

First attempt to fix #33.
The TCP implementation for the disconnect() request that drops connections by inserting a poison pill was missing. We needed this to get rid of exclusive connections to the serial port that got stale sometimes.
Unfortunately, TCP connections are not closed immediately but remain in TIME_WAIT for some time, before they disappear.

Pull Request Test Coverage Report for Build 157

0 of 0   changed or added relevant lines in 0 files are covered.
54 unchanged lines in 5 files lost coverage.
Overall coverage decreased (-0.2%) to 75.532%

Files with Coverage Reduction
New Missed Lines
%

frame/tcp.rs
2
70.0%

client/mod.rs
6
36.0%

service/tcp.rs
12
0.0%

frame/mod.rs
14
77.78%

codec/tcp.rs
20
77.78%

Totals

Change from base Build 156:
-0.2%

Covered Lines:
1420

Relevant Lines:
1880

💛  - Coveralls


Build long prefix package using conda-build 2.x

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Sorry, the dependencies required to build a long prefix package for this feedstock are not yet available.  Specifically curl needs to be re-build so that cmake can use used in a long prefix environment.  I'm closing this issue for the time being.  Once the long prefix version of the needed dependencies are ready I will re-open this PR or create a new PR.

Replaced with PR ( https://github.com/conda-forge/simbody-feedstock/pull/11 ).


ocamlPackages.resource-pooling: init at 0.5.2

A library for pooling resources like connections, threads, or similar.
Homepage: https://github.com/ocsigen/resource-pooling
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build ocamlPackages.resource-pooling


Tracking processor causes high CPU usage when used in two (or more) JVMs

I have a tracking processor which is deployed in 2 JVMs. Tracking processor in first JVM claims all tokens (5 in my case) and works as expected. However, tracking processor in second JVM (which is started a minute after first JVM) is unable to claim tokens and keeps trying without any delay
which causes high CPU usage for second JVM.
This behavior can be tracked down to TrackingProcessor.WorkerLauncher.run() method, more specifically at line 688 (Axon 3.2), where internal flag attemptImmediateRetry is set to true. This causes outer while loop to execute as fast as it can. I believe, that some delay should be introduced
here, if possible. When I commented out line 688, high CPU usage is gone and application seems to work correctly.
Have to admit that I can't understand the point of attemptImmediateRetry flag. Only place where is seems to me that it might have some sense to set it is after catching Exception which is not AxonNonTransientException. For example, at line 697.
Is this a bug, or I'm missing something?
Regards,
Damir Murat

Hi Damir,
I am sure it made perfect sense at the time. The logs show that the logic setting the flag to true has been moved from "a transient exception occurred" to the "unable to claim token" situation.
Ultimately, I think your analysis is correct: the flag doesn't have a function (anymore) and can be removed. The inner loop doesn't pause (as it just needs to claim a token), while the outer loop should always pause, regardless of what happened.
Thanks for pointing this out.
Allard


Turtlebot Add-on - Raspberry pi Fish-eye camera

ISSUE TEMPLATE ver. 0.2.0

Which TurtleBot3 you have?
[ ] Burger

[ ] Waffle
[ ] Waffle Pi

Which SBC(Single Board Computer) is working on TurtleBot3?
[ ] Raspberry Pi 3

[ ] Intel Joule 570x
[ ] etc (PLEASE, WRITE DOWN YOUR SBC HERE)

Which OS you installed in SBC?
[ ] Ubuntu MATE 16.04 or later

[ ] Raspbian
[ ] etc (PLEASE, WRITE DOWN YOUR OS)

Which OS you installed in Remote PC?
[ ] Ubuntu 16.04 LTS (Xenial Xerus)

[ ] Ubuntu 18.04 LTS (Bionic Beaver)
[ ] Linux Mint 18.x
[ ] etc (PLEASE, WRITE DOWN YOUR OS)

Write down software version and firmware version
-Software version: [x.x.x]

Firmware version: [x.x.x]

Write down the commands you used in order

HERE

Copy and Paste your error message on terminal

HERE

Please, describe detailedly what difficulty you are in

The particular pi camera recommended on the turtlebot3 manual as an add-on is currently out of stock on amazon.com  . However I found an alternative (https://www.amazon.com/Miuzei-Raspberry-Megapixels-Wide-Angel-Compatible/dp/B07BTP8VXL/ref=cm_cr_arp_d_product_sims?ie=UTF8&th=1) and I wanted to know if it works with the Turtlebot3 SBC. Thanks a lot

I'm sorry but we can not guarantee the operation because we do not have it.
Regards,
Kayman

ok thanks


Add iterability to class FlexElement, add additional fields to multiple classes

Iterability
In case there is an easier way to do this let me know.
I was unable to create a pandas DataFrame with enum values.
In order to create a pandas DataFrame from OpenPositions iterability was useful:
 df = pd.DataFrame(     [         {attr: val.value if isinstance(val, enum.Enum) else val for attr, val in pos.items()}          for pos in stmt.OpenPositions     ] )
Additional Fields
My flex queries require additional fields in 'EquitySummaryByReportDateInBase', 'MTDYTDPerformanceSummaryUnderlying', 'CashReportCurrency', 'OpenPosition', 'Transfer', 'CashTransaction', 'OpenDividendAccrual', 'ChangeInNAV'.

A) I'm afraid I may be the last Python coder in the entire world who has not in fact used pandas, so pardon me if I'm missing something... but can't you just use the standard method for casting a dataclass to a dict ? e.g.
df = pd.DataFrame(
    [ {attr: val.value if isinstance(val, enum.Enum) else val
          for attr, val in dataclasses.asdict(pos).items()}
      for pos in stmt.OpenPositions ]
)

B) Has IBKR gone ahead and put commodity attributes on every single security, is that what's going on?
Thanks for submitting these, it's appreciated.

A) Yes, when using asdict() I don't need to iterate over dataclasses. I only need to iterate over the dictionary because i want to replace <AssetClass.STOCK: 'STK'> with just STK. Unfortunately my experience with DataClasses and enums is limited.
{'assetCategory': <AssetClass.STOCK: 'STK'>,}
B) At least for me it seems like it. Only after I add these fields ibflex works for me.

OK I've merged the updated class definitions without the iterator protocol in 4ea897f .
Thanks for the help.  Sorry about the contortions needed to get your data into a pandas.DataFrame.


ci: Github Codespaces configuration

Summary
Github Codespaces allows (new) devise-security contributors to easily boot a fully functional environment to make and test changes to devise-security on any ruby versions. In order for this repository to work will with Codespaces, we need some configuration, this is added in this PR.
The Dockerfile and boot.sh are inspired on the Development Dependencies Install manual and devise_auth0 devcontainer.

https://github.com/devise-security/devise-security/pull/440 wondering if the failure here is related / if there's a failure in main???

#440 wondering if the failure here is related / if there's a failure in main???

Hi @dillonwelch! Yes, looks like there's a change somewhere that affects database_cleaner setup on minitest lifecycle which start and clean the database isn't called.

coverage: 98.369%. remained the same
when pulling 111510a67a0ad6548c050edbed0a89cfaff71599 on itsmechlark:feat-devcontainer
into 468c3cc5295cf841e8ee89dbbe009bb3731c29dd on devise-security:main.


Feature to exclude/include consumable price in BOM price range - FR #7603

A checkbox is added in the BOM panel in parts section to decide if the consumables' price have to be added to the BOM pricing
A listener is attached to the checkbox to refresh the BOM table data when a change in the checkbox is detected.

@SchrodingersGat , Is there something else to be done from my side to get these changes merged? Thanks.

Hi @rocheparadox sorry I have not had a chance to review this yet.
This approach is only going to impact the front-end representation, not the actual calculation (and storing) of BOM pricing. I think that you should:
1. Add new global setting
https://github.com/inventree/InvenTree/blob/e0a878467bb0fe6766ea410a89c9cff8d052faec/src/backend/InvenTree/common/models.py#L1636
Add a new setting to determine if consumable items should be included in pricing
2. Update Calculation
Update the get_bom_price_range method, to optionally include or exclude consumable parts:
https://github.com/inventree/InvenTree/blob/e0a878467bb0fe6766ea410a89c9cff8d052faec/src/backend/InvenTree/part/models.py#L2021

@SchrodingersGat , I will look into it. Thanks for the detailed explanation.

maybe it would be also good to get this feature to PUI, because when CUI is dropped, this will be no longer available.

@SchrodingersGat, Would it not be a better, from a design standpoint, to provide this option as a part specific local decision? Doesn't adding this as a global setting restrict the users  throughout all BOM calculations? What if the users need to include the consumbale as part of their BOM pricing for one part and want to exclude in another?

@rocheparadox maybe - but at the moment our pricing management system does have provision for a "per part" option like this.
We could certainly extend the pricing system, but, it will quickly become complex and everyone will want a slightly different approach...
This is where I think handing such decisions off to a custom pricing plugin system would make more sense.
If you have any ideas or input on how this should go, I'd be interested to hear them!

@SchrodingersGat , I believe that you are mentioning Part.models.PartPricing as the existing pricing management system for the Part.
https://github.com/inventree/InvenTree/blob/70a52c938500f41c817bec8052e35e224b7eea16/src/backend/InvenTree/part/models.py#L2508
Nevertheless, I was thinking about adding a field called include_consumbales to that class and factoring that field in the BOM pricing calculations. However, as you mentioned, pricing itself would vary according to different users and it might be better left as a plugin development option. I am open to implementing either the global setting or this. I think, you know the user requirement better.


AMBARI-24692 - JDK 11 support for Log Search

What changes were proposed in this pull request?
same as #2843
and change version of
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jersey</artifactId>
      <version>2.1.1.RELEASE</version>

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/4967/
Test PASSed.


Feature Request: Menu option to hide start menu button

Can there please be an settings option to remove the startmenu button so you can just use the app for switching between opened apps. I never use the start menu and having one more app on screen so i dont have to scroll would be better for my use case.

I would very much appreciate this, too.


Runing LLM in a webworker fails due to loglevel dependency

As for reproducing, can use a simple example defined here.
When creating CreateWebWorkerMLCEngine instance, loglevel is being executed in webworker and fails due to having references to window object. Here is one example of failure.
In earlier versions web workers were working fine, I was running 0.2.36 with no problems.

Thanks for reporting this. I will fix this soon.

@jauniusmentimeter I'm running the get-started-web-worker example and it didn't seem to fail or complain. Could you provide a minimal simple sample code with error output screenshot to help me understand the issue?
From the code samples you referenced here, I see the package is checking whether window is defined properly so it shouldn't crash anything if I understand the code correctly.


Improved optimization and implementation of adaptive learning rate algorithms (Adagrad, RMSProp)

This adds the possibility to train with an adaptive learning rate algorithm. Currently only Adagrad is implemented, since it's the simplest of them, but RMSProp is very similar and can easily be added on top of this. In the current version, a switch is provided to train-ctc-parallel:
po.Register("opt-algorithm", &opt, "Optimization algorithm (SGD|Adagrad)");
so that "--opt-algorithm Adagrad" will run the training with Adagrad.
Even though Adagrad has a very simple formula, a lot of changes were necessary:
(+) I added some missing cudamatrix and cudavector functions to make this possible, but similar functions need to be added for the CPU-only version. With the exception of the sqrt function, these are from Kaldi.
(+) Since each layer has its own update function, all layer types needed to be updated with the Adagrad update code. To keep things manageable though, helper functions have been added to the base class trainable_layer so that all layer types share the update code. But for every variable this is called separately, as with SGD. One accumulator and one temporary variable is added for every gradient matrix and vector in every layer. These are only resized / initialized if Adagrad is chosen as optimization algorithm though and shouldn't take extra space on the GPU if run with SGD.
I am currently testing with the following parameters (note that Adagrad needs a higher initial learning rate and is run without momentum and I found it helpful to clip gradients more aggressively):
learn_rate 0.01
momentum 0.0
maxgrad 4.0
This seems to work for me, but needs more testing + a side by side WER comparison with SGD. Would also be interesting to see if the final result is somewhat more robust to the choice of the initial learning rate.
Limitations of the current state of the implementation:
(+) A short coming is that the accumulator is not saved between epochs, resulting in a temporary drop of the accuracy at the beginning of an epoch until the accumulator is re-estimated. Also this makes the learning rate annealing schedule still necessary.
(+) Adagrad is GPU-only at the moment, but since a switch is provided to choose between SGD+momentum and Adagrad, it can still be configured to run on CPU with SGD.
(+) The switch is currently only added to train-ctc-parallel and I've only tested it with the bilstm layers so far.
Would be really cool if someone could try this out! Hopefully all the necessary changes are in this PR. If not, let me know.

I've also noticed that affine-trans-layer didn't do gradient clipping yet, which resulted in very large accumulators and eventually nans in the affine-trans-layer. I suspect this can also be a problem with SGD.

I've added RMSProp, which addresses Adagrad's weakness of a too aggressive learning rate decay. A good default learning rate for RMSProp is 0.001.

Currently testing this on Haitian data (sort of our default small-ish test set from lorelei low resource language project) with the suggested
learn_rate 0.01
momentum 0.0
maxgrad 4.0
and though it builds and runs OK, looks a little bit unstable*. For comparison, we are trying the same thing but with our default settings - probably as close to an apples-apples comparison as we can get given the different optimization algorithms
learn-rate 4e-5
momentum 0.9
maxgrad 4.0
output so far*
EPOCH 7 RUNNING ... ENDS [2017-Jan-23 20:59:34]: lrate 0.01, TRAIN ACCURACY 17.2297%, VALID ACCURACY 40.6902%
EPOCH 8 RUNNING ... ENDS [2017-Jan-23 22:10:28]: lrate 0.01, TRAIN ACCURACY 29.5814%, VALID ACCURACY 45.2823%
EPOCH 9 RUNNING ... ENDS [2017-Jan-23 23:21:40]: lrate 0.01, TRAIN ACCURACY 18.8273%, VALID ACCURACY 39.6867%
EPOCH 10 RUNNING ... ENDS [2017-Jan-24 00:33:00]: lrate 0.01, TRAIN ACCURACY 28.4833%, VALID ACCURACY 45.0673%
EPOCH 11 RUNNING ... ENDS [2017-Jan-24 01:44:48]: lrate 0.01, TRAIN ACCURACY 2.0878%, VALID ACCURACY 24.4542%
EPOCH 12 RUNNING ... ENDS [2017-Jan-24 02:56:36]: lrate 0.01, TRAIN ACCURACY 33.4453%, VALID ACCURACY 46.5732%
EPOCH 13 RUNNING ... ENDS [2017-Jan-24 04:07:22]: lrate 0.01, TRAIN ACCURACY 39.8068%, VALID ACCURACY 46.8349%
EPOCH 14 RUNNING ... ENDS [2017-Jan-24 05:17:46]: lrate 0.01, TRAIN ACCURACY 25.8570%, VALID ACCURACY 43.3929%
EPOCH 15 RUNNING ... ENDS [2017-Jan-24 06:28:16]: lrate 0.01, TRAIN ACCURACY 38.1701%, VALID ACCURACY 46.0704%
EPOCH 16 RUNNING ... ENDS [2017-Jan-24 07:38:41]: lrate 0.01, TRAIN ACCURACY 42.3554%, VALID ACCURACY 48.6366%
EPOCH 17 RUNNING ... ENDS [2017-Jan-24 08:49:04]: lrate 0.01, TRAIN ACCURACY 42.5339%, VALID ACCURACY 49.3602%
EPOCH 18 RUNNING ... ENDS [2017-Jan-24 10:00:03]: lrate 0.01, TRAIN ACCURACY 16.2077%, VALID ACCURACY 34.0114%
EPOCH 19 RUNNING ... ENDS [2017-Jan-24 11:09:53]: lrate 0.01, TRAIN ACCURACY 34.8846%, VALID ACCURACY 43.9012%
EPOCH 20 RUNNING ...

Thanks for trying it out! And your output doesn't look quite as it should...
(1) What optimization are you using, Rmsprop or Adagrad? (I'd recommend Rmsprop)
(2) How large is the data? From the timings I assume its fairly small, I've been mainly testing with 120h+ corpora. I suspect, if its a small corpora, you would reset the accumulators much quicker than I would do. Note that resetting them between epochs is not how you would typically do Adagrad/Rmsprop and I'd say that saving the accumulators between epochs should be implemented to make the implementation complete. That should also help in instances where you don't have a lot of training data. Would saving the accumulator in the intermediate model files be ok, codewise?
(3) The gradient statistics from the end of the epoch log files could be helpful to troubleshoot this, could you post them? Thanks!

I've looked into the parameters I've used for RMSProp on our German corpus (recommended learning rate values are different for RMSProp and Adagrad) and this is what I have:
learn_rate=0.001
momentum=0.0
opt_algorithm=RMSProp
gradient_clipping=5.0
delta=false (System with spliced and subsampled features)
Let me know if that already helps to converge on your data.

(1) Was using Adagrad, having not caught up on the rest of this thread where Rmsprop is added later ('currently only Adagrad...')
(2) Not real big, you're right.  Saving the accumulator in the intermediate model files should be ok, codewise, unless the format of intermediate model files is incompatible with being used as a final.mdl
(3) Sure thing! Starting over, will be a while before gradient stats arrive

Just curious: what size is your German data? And among the different algorithms, which should perform better? (I guess in terms of WER) - the intuition is that RMSProp is better than Adagrad is better than Gradient Descent. And someone here just said "try Atom" which I guess is even newer and better. :)

But first, RMSProp looks great. In general, my testing of this pull request is complete; it builds, it runs, no regression errors as far as I can tell.
EPOCH 1 RUNNING ... ENDS [2017-Jan-26 08:44:51]: lrate 0.001, TRAIN ACCURACY 26.4900%, VALID ACCURACY 47.5029%
EPOCH 2 RUNNING ... ENDS [2017-Jan-26 10:42:37]: lrate 0.001, TRAIN ACCURACY 51.0916%, VALID ACCURACY 55.0380%
EPOCH 3 RUNNING ... ENDS [2017-Jan-26 12:39:51]: lrate 0.001, TRAIN ACCURACY 57.4052%, VALID ACCURACY 57.9443%
EPOCH 4 RUNNING ... ENDS [2017-Jan-26 14:39:07]: lrate 0.001, TRAIN ACCURACY 60.9593%, VALID ACCURACY 60.2501%
EPOCH 5 RUNNING ... ENDS [2017-Jan-26 16:44:22]: lrate 0.001, TRAIN ACCURACY 63.4124%, VALID ACCURACY 61.5300%
EPOCH 6 RUNNING ... ENDS [2017-Jan-26 18:42:27]: lrate 0.001, TRAIN ACCURACY 65.3334%, VALID ACCURACY 62.4766%
EPOCH 7 RUNNING ... ENDS [2017-Jan-26 20:40:34]: lrate 0.001, TRAIN ACCURACY 66.8668%, VALID ACCURACY 62.3881%
EPOCH 8 RUNNING ... ENDS [2017-Jan-26 22:41:57]: lrate 0.001, TRAIN ACCURACY 68.1538%, VALID ACCURACY 63.5897%
EPOCH 9 RUNNING ... ENDS [2017-Jan-27 00:39:05]: lrate 0.001, TRAIN ACCURACY 69.2705%, VALID ACCURACY 63.7629%
EPOCH 10 RUNNING ... ENDS [2017-Jan-27 02:36:17]: lrate 0.001, TRAIN ACCURACY 70.2435%, VALID ACCURACY 63.5366%
EPOCH 11 RUNNING ... ENDS [2017-Jan-27 04:34:16]: lrate 0.001, TRAIN ACCURACY 71.1068%, VALID ACCURACY 64.1498%
EPOCH 12 RUNNING ... ENDS [2017-Jan-27 06:31:22]: lrate 0.001, TRAIN ACCURACY 71.8265%, VALID ACCURACY 63.7616%

We'll wait a little longer to see relative WERs across the different algorithms/strategies, but I'm thinking this pull request merge-worthy.

Eric, what is the baseline for this, please?

Still computing, hence "We'll wait a little longer to see..."

Best WERs comparison for our Haitian test set
SGD:
                                  |  SPKR      |  # Snt # Wrd   |  Corr    Sub     Del     Ins    Err   S.Err  |   NCE     |
score_p-0.5_10/dev10h.ctm.filt.sys:251:| Sum/Avg  |21530   95893 | 61.0    30.5     8.5     8.5    47.5   32.5  | -0.999  |

RMSProp:
                                    |  SPKR     |  # Snt # Wrd  |  Corr    Sub    Del    Ins    Err  S.Err  |   NCE    |
score_p0.5_7/dev10h.ctm.filt.sys:251:  | Sum/Avg |21530  95893 | 58.2   28.6   13.2    5.3   47.0   32.5 | -0.908 |

Adagrad:
score_p1.0_9/dev10h.ctm.filt.sys:  | Sum/Avg |21530  95893 | 49.4   35.2   15.3    4.9   55.5   33.6 | -0.529 |

TrainingAlgorithms.xlsx

interesting - the best LM weights seem very different, as do the insertion/ deletions.
how are the training times? comparable?

On Jan 31, 2017, at 5:33 PM, riebling<EMAIL_ADDRESS>wrote:
Best WERs comparison for our Haitian test set
SGD:
                              |  SPKR      |  # Snt # Wrd   |  Corr    Sub     Del     Ins    Err   S.Err  |   NCE     |

score_p-0.5_10/dev10h.ctm.filt.sys:251:| Sum/Avg  |21530   95893 | 61.0    30.5     8.5     8.5    47.5   32.5  | -0.999  |
RMSProp:
                                |  SPKR     |  # Snt # Wrd  |  Corr    Sub    Del    Ins    Err  S.Err  |   NCE    |

score_p0.5_7/dev10h.ctm.filt.sys:251:  | Sum/Avg |21530  95893 | 58.2   28.6   13.2    5.3   47.0   32.5 | -0.908 |
Adagrad:
score_p1.0_9/dev10h.ctm.filt.sys:  | Sum/Avg |21530  95893 | 49.4   35.2   15.3    4.9   55.5   33.6 | -0.529 |
TrainingAlgorithms.xlsx https://github.com/srvk/eesen/files/743368/TrainingAlgorithms.xlsx
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/srvk/eesen/pull/106#issuecomment-276515020, or mute the thread https://github.com/notifications/unsubscribe-auth/AEnA8URLAd0k19a-AWx-YYanSYficCTvks5rX7aigaJpZM4KoyXG.

Florian Metze http://www.cs.cmu.edu/directory/florian-metze
Associate Research Professor
Carnegie Mellon University

how are the training times?
(what a great thing to have the training scripts print this out!)
Also interesting:
SGD: 27 hours
RMSProp: 48 hours (JUST fits in the compute window!)
Adagrad: 69 hours
(I don't have a feel for how these numbers compare with other compute clusters)

Interesting, thanks for the evaluation! My observations are, based on the spreadsheet:

Adagrads convergence doesn't look stable with your dataset. Initial learning rate might be too high, or the (atypical) resetting of the accumulators on every epoch gets in the way of convergence.

Looks like RMSProp is overfitting heavly after the first few epochs.  Did you use Dropout?

If you train the same number of epochs, SGD will always be faster. If you train with RMSProp, the hope is that you amortize the extra computations by finishing the training in fewer epochs. What was the stopping criterion? Did you lower the initial learning rate for RMSProp, too?

Since convergence is faster in the beginning with RMSProp, you can usually set "halving-after-epoch" and "min-iters / max-iters" to much lower values compared to SGD. I see 25 epochs for SGD and RMSProp, so I guess min-iters was set to 25?
Hopefully, I find some time soon to implement saving the accumulator state between epcohs. That should make  "halving-after-epoch" unnecessary.
For the differences in insertion / deletions, my guess would be that could also fluctuate somewhat with the same optimizer if you do multiple runs.

I've just added state saving for RMSProp. This is backwards compatible, i.e. you can still load older model files. Also, the accumulators are only saved if you train with RMSProp or Adagrad.
I can also send you some results on our data next week with the version I've just pushed. Seems that so far we have better results with RMSProp than with SGD+Momentum on our data, but I haven't compared it with learning rate annealing yet. I can also report that setting the RMSProp gradient clipping much smaller than for SGD isn't necessary anymore, it worked just fine with 40. That this parameter was problematic in the beginning was probably due to the exploding accumulators in the affine layers, because they didn't do the clipping at all. Also, I haven't tested Adagrad yet with the state saving.

Of course we can test this out, sorry for not replying sooner (hectic, bla bla). I have some time on an outside compute cluster (ours is currently down) to give this a try and will let you know.

Having a little trouble getting back to working experiments, I thought I'd run this by you just for possible explanation; trying adagrad on the same dataset I used last time, things quickly went sour. I'm wondering if there's any clues to be found in this log:

train-ctc-parallel --report-step=3000 --num-sequence=400 --frame-limit=40000 --learn-rate=0.01 --momentum=0.0 --opt-algorithm=Adagrad --verbose=1 'ark,s,cs:copy-feats scp:/tmp/tmp.I2SGTKFBsT/train_local.scp ark:- |' 'ark:cat /tmp/tmp.I2SGTKFBsT/labels.tr|' exp/train_adagrad/nnet/nnet.iter0 exp/train_adagrad/nnet/nnet.iter1
LOG (train-ctc-parallel:SelectGpuIdAuto():cuda-device.cc:262) Selecting from 1 GPUs
LOG (train-ctc-parallel:SelectGpuIdAuto():cuda-device.cc:277) cudaSetDevice(0): TITAN X (Pascal)	free:11988M, used:196M, total:12184M, free/total:0.983914
LOG (train-ctc-parallel:SelectGpuIdAuto():cuda-device.cc:310) Selected device: 0 (automatically)
LOG (train-ctc-parallel:FinalizeActiveGpu():cuda-device.cc:194) The active GPU is [0]: TITAN X (Pascal)	free:11954M, used:230M, total:12184M, free/total:0.981124 version 6.1
LOG (train-ctc-parallel:PrintMemoryUsage():cuda-device.cc:334) Memory used: 0 bytes.
LOG (train-ctc-parallel:DisableCaching():cuda-device.cc:731) Disabling caching of GPU memory.
LOG (train-ctc-parallel:SetUpdateAlgorithm():net.cc:446) Selecting Adagrad as optimization algorithm.
copy-feats scp:/tmp/tmp.I2SGTKFBsT/train_local.scp ark:-
LOG (train-ctc-parallel:main():train-ctc-parallel.cc:128) TRAINING STARTED
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 3200 sequences (0.251719Hr): Obj(log[Pzx]) = -66.7754   TokenAcc = 3.74033%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 6400 sequences (0.630483Hr): Obj(log[Pzx]) = -82.7843   TokenAcc = 6.22436%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 9600 sequences (1.11552Hr): Obj(log[Pzx]) = -98.4824   TokenAcc = 5.59837%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 12800 sequences (1.71478Hr): Obj(log[Pzx]) = -114.327   TokenAcc = 5.42889%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 16000 sequences (2.43558Hr): Obj(log[Pzx]) = -92.3207   TokenAcc = 2.02986%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 19168 sequences (3.28261Hr): Obj(log[Pzx]) = -82.467   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 22287 sequences (4.27066Hr): Obj(log[Pzx]) = -95.3445   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 25500 sequences (5.48108Hr): Obj(log[Pzx]) = -112.797   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 28655 sequences (6.91205Hr): Obj(log[Pzx]) = -131.904   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 31827 sequences (8.6749Hr): Obj(log[Pzx]) = -158.093   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 34832 sequences (10.7651Hr): Obj(log[Pzx]) = -194.264   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 37922 sequences (13.5186Hr): Obj(log[Pzx]) = -240.943   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 40971 sequences (16.7214Hr): Obj(log[Pzx]) = -274.431   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 44064 sequences (20.3517Hr): Obj(log[Pzx]) = -319.496   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 47100 sequences (23.6693Hr): Obj(log[Pzx]) = -287.663   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 50212 sequences (26.8676Hr): Obj(log[Pzx]) = -269.717   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 53356 sequences (29.5087Hr): Obj(log[Pzx]) = -229.793   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 56375 sequences (31.4891Hr): Obj(log[Pzx]) = -183.484   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 59501 sequences (33.1404Hr): Obj(log[Pzx]) = -150.533   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 62535 sequences (34.4608Hr): Obj(log[Pzx]) = -126.688   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 65542 sequences (35.5606Hr): Obj(log[Pzx]) = -109.923   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 68747 sequences (36.5498Hr): Obj(log[Pzx]) = -91.9374   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 71939 sequences (37.3787Hr): Obj(log[Pzx]) = -79.466   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 75139 sequences (38.0774Hr): Obj(log[Pzx]) = -68.8303   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 78339 sequences (38.6558Hr): Obj(log[Pzx]) = -57.3712   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 81539 sequences (39.1209Hr): Obj(log[Pzx]) = -49.2777   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 84739 sequences (39.4804Hr): Obj(log[Pzx]) = -38.3204   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 87939 sequences (39.704Hr): Obj(log[Pzx]) = -23.2294   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 91139 sequences (39.9774Hr): Obj(log[Pzx]) = -28.7785   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 94339 sequences (40.3661Hr): Obj(log[Pzx]) = -41.5505   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 97539 sequences (40.8623Hr): Obj(log[Pzx]) = -52.1878   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 100739 sequences (41.4735Hr): Obj(log[Pzx]) = -60.407   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 103939 sequences (42.2083Hr): Obj(log[Pzx]) = -71.7721   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 107088 sequences (43.0661Hr): Obj(log[Pzx]) = -82.6948   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 110151 sequences (44.0544Hr): Obj(log[Pzx]) = -96.855   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 113307 sequences (45.2639Hr): Obj(log[Pzx]) = -114.107   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 116413 sequences (46.6958Hr): Obj(log[Pzx]) = -133.077   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 119533 sequences (48.4577Hr): Obj(log[Pzx]) = -160.812   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 122631 sequences (50.6588Hr): Obj(log[Pzx]) = -196.984   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 125651 sequences (53.4111Hr): Obj(log[Pzx]) = -245.757   TokenAcc = 0%
VLOG[1] (train-ctc-parallel:EvalParallel():ctc-loss.cc:182) After 128684 sequences (56.6137Hr): Obj(log[Pzx]) = -275.902   TokenAcc = 0%
LOG (copy-feats:main():copy-feats.cc:100) Copied 131172 feature matrices.
LOG (train-ctc-parallel:main():train-ctc-parallel.cc:234) ### Gradient stats :
Layer 1 : <BiLstmParallel>,
  wei_gifo_x_fw_corr_   ( min -0.000562806, max 0.000598786, mean 3.09794e-06, variance 1.14359e-09, skewness 0.924626, kurtosis 28.8692 )
  wei_gifo_m_fw_corr_   ( min -0.000634093, max 0.000625101, mean -1.25983e-06, variance 1.73597e-09, skewness 0.0986886, kurtosis 23.8478 )
  bias_fw_corr_   ( min -0.000411897, max 0.000625226, mean -1.76455e-05, variance 6.9078e-09, skewness 1.05798, kurtosis 11.4952 )
  phole_i_c_fw_corr_   ( min -0.00365452, max 0.000644471, mean -2.01694e-05, variance 1.01247e-07, skewness -10.5664, kurtosis 118.716 )
  phole_f_c_fw_corr_   ( min -0.0101613, max 0.00296403, mean -3.85941e-05, variance 8.94908e-07, skewness -8.37473, kurtosis 91.731 )
  phole_o_c_fw_corr_   ( min -0.00596006, max 0.0290188, mean 0.000102886, variance 6.42462e-06, skewness 10.4996, kurtosis 118.223 )
  wei_gifo_x_bw_corr_   ( min -0.000610211, max 0.000488804, mean 2.89447e-06, variance 1.41208e-09, skewness 1.27376, kurtosis 31.6947 )
  wei_gifo_m_bw_corr_   ( min -0.000130268, max 0.00012836, mean -8.96157e-08, variance 5.20558e-11, skewness 0.208527, kurtosis 33.762 )
  bias_bw_corr_   ( min -0.000428231, max 0.000522415, mean -1.69554e-05, variance 7.05851e-09, skewness -0.601143, kurtosis 7.8525 )
  phole_i_c_bw_corr_   ( min -0.000144564, max 0.000521958, mean 2.95477e-06, variance 2.44782e-09, skewness 8.05479, kurtosis 84.781 )
  phole_f_c_bw_corr_   ( min -0.000630776, max 0.00109697, mean 1.52658e-06, variance 1.49953e-08, skewness 4.18029, kurtosis 48.6497 )
  phole_o_c_bw_corr_   ( min -0.000577784, max 0.000422886, mean -7.27352e-06, variance 1.23766e-08, skewness -1.08711, kurtosis 9.2989 )
  wei_gifo_x_fw_corr_accu   ( min 0.000190005, max 2504.96, mean 47.963, variance 48603.4, skewness 9.12191, kurtosis 92.1249 )
  wei_gifo_m_fw_corr_accu   ( min 3.18782e-05, max 2510.95, mean 28.2123, variance 24829.3, skewness 11.7371, kurtosis 161.975 )
  bias_fw_corr_accu   ( min 0.0101685, max 2672, mean 187.278, variance 224644, skewness 3.71815, kurtosis 14.0758 )
  phole_i_c_fw_corr_accu   ( min 0.0339518, max 71.1248, mean 7.29467, variance 181.836, skewness 2.62619, kurtosis 6.82252 )
  phole_f_c_fw_corr_accu   ( min 0.25444, max 2501.25, mean 153.391, variance 126344, skewness 3.96977, kurtosis 17.8775 )
  phole_o_c_fw_corr_accu   ( min 0.129807, max 2520.96, mean 394.728, variance 523720, skewness 2.24556, kurtosis 3.62661 )
  wei_gifo_x_bw_corr_accu   ( min 0.000304307, max 2509.67, mean 48.9159, variance 48600.2, skewness 8.90974, kurtosis 88.7766 )
  wei_gifo_m_bw_corr_accu   ( min 1.17055e-05, max 2509.09, mean 27.4865, variance 23730, skewness 11.5955, kurtosis 159.942 )
  bias_bw_corr_accu   ( min 0.0242875, max 2640.52, mean 209.734, variance 277256, skewness 3.28938, kurtosis 10.2646 )
  phole_i_c_bw_corr_accu   ( min 0.0286378, max 275.194, mean 12.5107, variance 834.017, skewness 5.91661, kurtosis 47.089 )
  phole_f_c_bw_corr_accu   ( min 0.162636, max 2011.15, mean 134.727, variance 115342, skewness 4.24913, kurtosis 18.5519 )
  phole_o_c_bw_corr_accu   ( min 1.43382, max 2526.61, mean 403.641, variance 564316, skewness 2.1583, kurtosis 3.17776 )
Layer 2 : <AffineTransform>,
  linearity_corr_ ( min -0.00162906, max 0.00162137, mean -6.3919e-06, variance 9.12997e-08, skewness -0.0662444, kurtosis 3.87522 )
  bias_corr_ ( min -0.00161372, max 0.00158073, mean -0.000115015, variance 6.01e-07, skewness 0.0646267, kurtosis -0.905421 )
  linearity_grad_accu ( min 0.0768576, max 108144, mean 4777.14, variance 1.3773e+08, skewness 3.9692, kurtosis 18.2744 )
  bias_grad_accu ( min 26.8589, max 202528, mean 38259.2, variance 1.99139e+09, skewness 1.58155, kurtosis 2.09428 )
Layer 3 : <BiLstmParallel>,
  wei_gifo_x_fw_corr_   ( min -0.00751489, max 0.00728052, mean -9.50546e-06, variance 1.15935e-07, skewness -0.435792, kurtosis 76.3275 )
  wei_gifo_m_fw_corr_   ( min -0.00295052, max 0.00293681, mean 1.29594e-06, variance 2.03774e-08, skewness 0.0547963, kurtosis 100.148 )
  bias_fw_corr_   ( min -0.00289026, max 0.001806, mean -4.94143e-05, variance 5.85943e-08, skewness -3.07216, kurtosis 43.4516 )
  phole_i_c_fw_corr_   ( min -0.00239876, max 0.0274074, mean 0.000366385, variance 7.23274e-06, skewness 8.49478, kurtosis 76.6067 )
  phole_f_c_fw_corr_   ( min -0.0067863, max 0.0373359, mean 0.000341236, variance 1.09775e-05, skewness 9.93116, kurtosis 108.333 )
  phole_o_c_fw_corr_   ( min -0.041662, max 0.0406325, mean -0.000299544, variance 3.81505e-05, skewness -1.56017, kurtosis 33.839 )
  wei_gifo_x_bw_corr_   ( min -0.0051454, max 0.0047433, mean -1.43912e-05, variance 9.63531e-08, skewness -0.899219, kurtosis 34.4734 )
  wei_gifo_m_bw_corr_   ( min -0.000736066, max 0.00079228, mean -4.6496e-07, variance 1.89264e-09, skewness -0.263023, kurtosis 56.6432 )
  bias_bw_corr_   ( min -0.00185763, max 0.00129217, mean -7.00399e-05, variance 5.00504e-08, skewness -1.62871, kurtosis 14.5209 )
  phole_i_c_bw_corr_   ( min -0.00844672, max 0.0118506, mean -2.79898e-05, variance 1.77446e-06, skewness 2.66484, kurtosis 56.1141 )
  phole_f_c_bw_corr_   ( min -0.00792047, max 0.0292242, mean 0.000117061, variance 6.95121e-06, skewness 9.28024, kurtosis 104.064 )
  phole_o_c_bw_corr_   ( min -0.0163534, max 0.00651072, mean -4.30816e-05, variance 2.81867e-06, skewness -5.74631, kurtosis 63.9342 )
  wei_gifo_x_fw_corr_accu   ( min 0.000546362, max 3357.78, mean 648.144, variance 854689, skewness 1.26665, kurtosis -0.0740044 )
  wei_gifo_m_fw_corr_accu   ( min 2.35778e-06, max 2581.09, mean 238.279, variance 341714, skewness 3.05551, kurtosis 8.3636 )
  bias_fw_corr_accu   ( min 0.110127, max 3355.81, mean 850.224, variance 999893, skewness 0.898853, kurtosis -0.878925 )
  phole_i_c_fw_corr_accu   ( min 0.302103, max 2502.27, mean 314.17, variance 356111, skewness 2.63547, kurtosis 6.23296 )
  phole_f_c_fw_corr_accu   ( min 0.850556, max 2505.12, mean 480.385, variance 531029, skewness 1.82542, kurtosis 2.21739 )
  phole_o_c_fw_corr_accu   ( min 1.19705, max 5744.23, mean 1262.46, variance 1.46511e+06, skewness 0.458315, kurtosis -0.673706 )
  wei_gifo_x_bw_corr_accu   ( min 0.00291221, max 4099.9, mean 604.264, variance 822243, skewness 1.39623, kurtosis 0.299448 )
  wei_gifo_m_bw_corr_accu   ( min 6.82898e-05, max 2607.98, mean 219.091, variance 319762, skewness 3.23603, kurtosis 9.54982 )
  bias_bw_corr_accu   ( min 0.0753523, max 3870.56, mean 826.339, variance 978545, skewness 1.04238, kurtosis -0.341283 )
  phole_i_c_bw_corr_accu   ( min 0.0906432, max 2502.12, mean 221.115, variance 226412, skewness 3.27566, kurtosis 11.0061 )
  phole_f_c_bw_corr_accu   ( min 0.250084, max 2537.05, mean 440.511, variance 594448, skewness 1.97712, kurtosis 2.43944 )
  phole_o_c_bw_corr_accu   ( min 0.00377725, max 2698.13, mean 1093.74, variance 1.24184e+06, skewness 0.394532, kurtosis -1.69056 )
Layer 4 : <AffineTransform>,
  linearity_corr_ ( min -0.00723963, max 0.00723715, mean -9.93047e-07, variance 2.69296e-06, skewness 3.73423e-05, kurtosis 2.81319 )
  bias_corr_ ( min -0.00710118, max 0.00726095, mean 0.000163888, variance 1.1364e-05, skewness -0.0357305, kurtosis -0.841456 )
  linearity_grad_accu ( min 0.0878068, max 2.71661e+06, mean 94478.4, variance 4.49853e+10, skewness 4.1627, kurtosis 23.0751 )
  bias_grad_accu ( min 1229.95, max 3.27626e+06, mean 567433, variance 5.18416e+11, skewness 1.80784, kurtosis 3.07105 )
Layer 5 : <BiLstmParallel>,
  wei_gifo_x_fw_corr_   ( min -0.0175592, max 0.0194859, mean 1.13335e-05, variance 2.26555e-06, skewness 0.202327, kurtosis 22.7221 )
  wei_gifo_m_fw_corr_   ( min -0.00605973, max 0.00608561, mean -5.11875e-06, variance 2.58365e-07, skewness -0.118018, kurtosis 29.9454 )
  bias_fw_corr_   ( min -0.00615482, max 0.00561218, mean -0.000113615, variance 8.09421e-07, skewness -0.804573, kurtosis 10.9141 )
  phole_i_c_fw_corr_   ( min -0.0121771, max 0.0172698, mean 5.06278e-06, variance 4.01474e-06, skewness 2.65377, kurtosis 47.6548 )
  phole_f_c_fw_corr_   ( min -0.0692549, max 0.024414, mean -0.000194975, variance 4.43681e-05, skewness -7.716, kurtosis 81.3496 )
  phole_o_c_fw_corr_   ( min -0.0242935, max 0.0525589, mean 0.000312418, variance 7.64015e-05, skewness 2.5622, kurtosis 14.4767 )
  wei_gifo_x_bw_corr_   ( min -0.0211373, max 0.0221873, mean 3.12004e-05, variance 3.91716e-06, skewness 0.367818, kurtosis 16.7362 )
  wei_gifo_m_bw_corr_   ( min -0.00242079, max 0.00253934, mean 1.31041e-06, variance 5.10194e-08, skewness -0.125861, kurtosis 26.9227 )
  bias_bw_corr_   ( min -0.00785135, max 0.004746, mean -0.000354096, variance 1.49418e-06, skewness -1.60094, kurtosis 7.80755 )
  phole_i_c_bw_corr_   ( min -0.0131221, max 0.00998195, mean -0.000177407, variance 3.28223e-06, skewness -3.82592, kurtosis 39.6892 )
  phole_f_c_bw_corr_   ( min -0.0485256, max 0.00326104, mean -0.00074349, variance 2.30002e-05, skewness -8.0378, kurtosis 71.4605 )
  phole_o_c_bw_corr_   ( min -0.0183843, max 0.0168037, mean -4.91131e-05, variance 1.03471e-05, skewness 0.211391, kurtosis 13.135 )
  wei_gifo_x_fw_corr_accu   ( min 0.0148409, max 6232.15, mean 1270.58, variance 1.42162e+06, skewness 0.397158, kurtosis -1.10724 )
  wei_gifo_m_fw_corr_accu   ( min 0.00019328, max 5097.92, mean 526.429, variance 752570, skewness 1.64292, kurtosis 1.20448 )
  bias_fw_corr_accu   ( min 0.621716, max 6055, mean 1762.73, variance 1.7451e+06, skewness 0.239299, kurtosis -0.510231 )
  phole_i_c_fw_corr_accu   ( min 0.20877, max 3321.12, mean 758.346, variance 993499, skewness 1.02195, kurtosis -0.683415 )
  phole_f_c_fw_corr_accu   ( min 0.271926, max 5224.77, mean 936.581, variance 1.24319e+06, skewness 1.09814, kurtosis 0.483305 )
  phole_o_c_fw_corr_accu   ( min 0.149286, max 7437.66, mean 1712.12, variance 3.15583e+06, skewness 1.01349, kurtosis 0.275304 )
  wei_gifo_x_bw_corr_accu   ( min 0.0236772, max 7082.4, mean 1302.73, variance 1.36274e+06, skewness 0.294282, kurtosis -1.28333 )
  wei_gifo_m_bw_corr_accu   ( min 0.000602645, max 5006.24, mean 577.664, variance 798430, skewness 1.46826, kurtosis 0.52394 )
  bias_bw_corr_accu   ( min 2.02771, max 5429.84, mean 1839.54, variance 1.67267e+06, skewness 0.203332, kurtosis -0.489193 )
  phole_i_c_bw_corr_accu   ( min 0.0921142, max 3479.06, mean 783.124, variance 932826, skewness 1.03044, kurtosis -0.497013 )
  phole_f_c_bw_corr_accu   ( min 0.0993112, max 3870.05, mean 982.221, variance 1.06411e+06, skewness 0.749564, kurtosis -0.940309 )
  phole_o_c_bw_corr_accu   ( min 0.128433, max 8556.79, mean 1998.02, variance 3.71485e+06, skewness 1.17882, kurtosis 1.29242 )
Layer 6 : <AffineTransform>,
  linearity_corr_ ( min -0.0702046, max 0.0706946, mean 4.41278e-05, variance 0.000116436, skewness -0.0237527, kurtosis 7.41579 )
  bias_corr_ ( min -0.0716621, max 0.0594698, mean 0.00233447, variance 0.000538363, skewness -0.404607, kurtosis 0.939134 )
  linearity_grad_accu ( min 1.42693, max 4.4196e+06, mean 116365, variance 6.06877e+10, skewness 4.97266, kurtosis 38.6489 )
  bias_grad_accu ( min 10303, max 8.9488e+06, mean 1.51066e+06, variance 2.9746e+12, skewness 1.87597, kurtosis 4.33878 )
Layer 7 : <BiLstmParallel>,
  wei_gifo_x_fw_corr_   ( min -0.0906397, max 0.100018, mean 0.000174886, variance 8.55881e-05, skewness 0.346989, kurtosis 16.1459 )
  wei_gifo_m_fw_corr_   ( min -0.0362524, max 0.0344312, mean -3.9674e-05, variance 7.56331e-06, skewness -0.427317, kurtosis 35.716 )
  bias_fw_corr_   ( min -0.0322598, max 0.0364652, mean 0.0016302, variance 3.8177e-05, skewness 0.602387, kurtosis 8.11559 )
  phole_i_c_fw_corr_   ( min -0.033641, max 0.0251096, mean -0.000713888, variance 5.21339e-05, skewness -1.2023, kurtosis 7.58291 )
  phole_f_c_fw_corr_   ( min -0.0836893, max 0.102937, mean -0.00079759, variance 0.000412055, skewness 0.771852, kurtosis 11.2704 )
  phole_o_c_fw_corr_   ( min -0.154553, max 0.267437, mean 0.00556863, variance 0.0025165, skewness 2.2422, kurtosis 9.30756 )
  wei_gifo_x_bw_corr_   ( min -0.125894, max 0.113373, mean 0.000123317, variance 6.5428e-05, skewness -0.334135, kurtosis 30.9746 )
  wei_gifo_m_bw_corr_   ( min -0.0167709, max 0.015866, mean 1.0636e-05, variance 4.96997e-07, skewness -0.0879924, kurtosis 99.1508 )
  bias_bw_corr_   ( min -0.0463966, max 0.025678, mean 0.00115992, variance 3.29023e-05, skewness -1.47576, kurtosis 17.175 )
  phole_i_c_bw_corr_   ( min -0.0493334, max 0.00617799, mean -0.000483407, variance 1.99463e-05, skewness -9.47322, kurtosis 99.6764 )
  phole_f_c_bw_corr_   ( min -0.0824665, max 0.0122456, mean -0.00147214, variance 0.000112482, skewness -6.04276, kurtosis 37.5621 )
  phole_o_c_bw_corr_   ( min -0.0271891, max 0.100059, mean 0.000333591, variance 0.000130829, skewness 4.86555, kurtosis 39.8435 )
  wei_gifo_x_fw_corr_accu   ( min 0.0802142, max 13551.8, mean 1097.28, variance 1.94155e+06, skewness 1.67929, kurtosis 3.44587 )
  wei_gifo_m_fw_corr_accu   ( min 0.00568175, max 7501.88, mean 502.395, variance 827679, skewness 2.18111, kurtosis 4.30966 )
  bias_fw_corr_accu   ( min 7.07932, max 8552.36, mean 2299.77, variance 3.21447e+06, skewness 0.648335, kurtosis -0.092653 )
  phole_i_c_fw_corr_accu   ( min 2.57432, max 6465.25, mean 635.575, variance 871408, skewness 2.674, kurtosis 10.1851 )
  phole_f_c_fw_corr_accu   ( min 1.80207, max 10659, mean 1009.58, variance 2.13581e+06, skewness 3.20912, kurtosis 14.6266 )
  phole_o_c_fw_corr_accu   ( min 16.0406, max 27132.3, mean 2959.25, variance 1.21217e+07, skewness 3.21006, kurtosis 16.2651 )
  wei_gifo_x_bw_corr_accu   ( min 0.0262414, max 11065, mean 1200.59, variance 2.31491e+06, skewness 1.61964, kurtosis 2.90245 )
  wei_gifo_m_bw_corr_accu   ( min 0.000582571, max 5863.05, mean 573.446, variance 959919, skewness 1.86421, kurtosis 2.55231 )
  bias_bw_corr_accu   ( min 2.19966, max 9782.38, mean 2425.67, variance 3.40992e+06, skewness 0.660316, kurtosis 0.15785 )
  phole_i_c_bw_corr_accu   ( min 0.180483, max 3215.24, mean 590.681, variance 678521, skewness 1.60365, kurtosis 1.35788 )
  phole_f_c_bw_corr_accu   ( min 0.113023, max 5201.71, mean 942.241, variance 1.1919e+06, skewness 1.17287, kurtosis 0.627513 )
  phole_o_c_bw_corr_accu   ( min 0.484332, max 16374.3, mean 2168.29, variance 7.58947e+06, skewness 2.86384, kurtosis 10.5001 )
Layer 8 : <AffineTransform>,
  linearity_corr_ ( min -0.274982, max 0.29507, mean -9.85301e-06, variance 0.00124294, skewness 0.0755584, kurtosis 11.0507 )
  bias_corr_ ( min -0.296333, max 0.210575, mean 0.00213798, variance 0.0103976, skewness -0.285099, kurtosis -0.0154972 )
  linearity_grad_accu ( min 7.20673, max 184087, mean 13546.2, variance 2.46278e+08, skewness 2.33603, kurtosis 8.17845 )
  bias_grad_accu ( min 18057.6, max 1.2236e+06, mean 290882, variance 5.84652e+10, skewness 1.02055, kurtosis 1.29514 )
Layer 9 : <BiLstmParallel>,
  wei_gifo_x_fw_corr_   ( min -0.223044, max 0.198123, mean -0.000869493, variance 0.000168277, skewness -1.0383, kurtosis 30.2326 )
  wei_gifo_m_fw_corr_   ( min -0.106869, max 0.10812, mean 4.26312e-05, variance 8.80104e-05, skewness 0.0257231, kurtosis 20.7352 )
  bias_fw_corr_   ( min -0.0725107, max 0.111985, mean 0.00627192, variance 0.00039773, skewness 1.24299, kurtosis 5.73644 )
  phole_i_c_fw_corr_   ( min -0.0632072, max 0.106648, mean -0.000178918, variance 0.000264637, skewness 1.15306, kurtosis 14.4458 )
  phole_f_c_fw_corr_   ( min -0.259014, max 2.05033, mean 0.0100792, variance 0.0315332, skewness 10.7841, kurtosis 121.537 )
  phole_o_c_fw_corr_   ( min -0.422334, max 0.287004, mean 4.69197e-05, variance 0.0120769, skewness -0.857031, kurtosis 3.12624 )
  wei_gifo_x_bw_corr_   ( min -0.26251, max 0.258987, mean -0.000859575, variance 0.000349718, skewness -0.222873, kurtosis 25.775 )
  wei_gifo_m_bw_corr_   ( min -0.104999, max 0.105355, mean -0.000150727, variance 7.58236e-05, skewness -0.128004, kurtosis 20.9461 )
  bias_bw_corr_   ( min -0.146956, max 0.163132, mean 0.00635118, variance 0.00111742, skewness 0.0542615, kurtosis 5.53628 )
  phole_i_c_bw_corr_   ( min -0.0381328, max 0.340311, mean 0.00247112, variance 0.000986172, skewness 9.06415, kurtosis 93.3424 )
  phole_f_c_bw_corr_   ( min -0.231232, max 0.492495, mean 0.0035528, variance 0.00291717, skewness 5.24912, kurtosis 50.1081 )
  phole_o_c_bw_corr_   ( min -0.767974, max 0.305956, mean -0.00581976, variance 0.0105755, skewness -2.61065, kurtosis 20.4803 )
  wei_gifo_x_fw_corr_accu   ( min 0.591061, max 21478.2, mean 1391.7, variance 3.90999e+06, skewness 2.40721, kurtosis 7.96521 )
  wei_gifo_m_fw_corr_accu   ( min 0.0486609, max 10731.2, mean 457.761, variance 747163, skewness 3.1336, kurtosis 11.9827 )
  bias_fw_corr_accu   ( min 15.6908, max 17906, mean 3055.89, variance 1.14643e+07, skewness 1.27573, kurtosis 0.894471 )
  phole_i_c_fw_corr_accu   ( min 5.91106, max 22662.9, mean 1020.43, variance 7.52326e+06, skewness 5.87689, kurtosis 37.2014 )
  phole_f_c_fw_corr_accu   ( min 6.24156, max 28958.5, mean 2664, variance 2.27475e+07, skewness 2.98049, kurtosis 9.5504 )
  phole_o_c_fw_corr_accu   ( min 43.9313, max 49566.6, mean 11998.7, variance 1.39127e+08, skewness 1.15669, kurtosis 0.626365 )
  wei_gifo_x_bw_corr_accu   ( min 0.293646, max 18735.8, mean 1457.67, variance 3.94489e+06, skewness 2.24421, kurtosis 6.87473 )
  wei_gifo_m_bw_corr_accu   ( min 0.00635577, max 12544.8, mean 584.775, variance 969704, skewness 2.8323, kurtosis 11.2559 )
  bias_bw_corr_accu   ( min 19.9412, max 15637.4, mean 3204.19, variance 1.11239e+07, skewness 1.14154, kurtosis 0.364541 )
  phole_i_c_bw_corr_accu   ( min 8.04991, max 32666.7, mean 994.382, variance 8.62219e+06, skewness 9.15844, kurtosis 94.0844 )
  phole_f_c_bw_corr_accu   ( min 10.2107, max 20092.4, mean 1933.77, variance 1.0398e+07, skewness 3.48505, kurtosis 13.3897 )
  phole_o_c_bw_corr_accu   ( min 23.2975, max 272345, mean 14944.6, variance 6.48838e+08, skewness 7.62951, kurtosis 72.1896 )
Layer 10 : <AffineTransform>,
  linearity_corr_ ( min -0.810931, max 0.777414, mean 0.000713656, variance 0.0332929, skewness 0.014914, kurtosis 1.84923 )
  bias_corr_ ( min -0.708423, max 0.647241, mean -0.0399948, variance 0.100489, skewness -0.0338983, kurtosis -0.640706 )
  linearity_grad_accu ( min 74.5627, max 614914, mean 95057.5, variance 8.75686e+09, skewness 1.38411, kurtosis 1.56896 )
  bias_grad_accu ( min 221857, max 894849, mean 507875, variance 2.31496e+10, skewness 0.204117, kurtosis -0.442657 )
Layer 11 : <BiLstmParallel>,
  wei_gifo_x_fw_corr_   ( min -10.5773, max 10.9399, mean -0.000110533, variance 0.132152, skewness 0.585107, kurtosis 216.761 )
  wei_gifo_m_fw_corr_   ( min -1.9895, max 1.98741, mean 5.43643e-05, variance 0.00533141, skewness 0.0458496, kurtosis 339.763 )
  bias_fw_corr_   ( min -1.97435, max 0.76739, mean 0.00435933, variance 0.0172525, skewness -6.02686, kurtosis 103.158 )
  phole_i_c_fw_corr_   ( min -11.6486, max 46.222, mean 0.340239, variance 19.7214, skewness 8.52392, kurtosis 82.6473 )
  phole_f_c_fw_corr_   ( min -7.59544, max 1.36744, mean -0.12092, variance 0.636828, skewness -7.01437, kurtosis 58.2608 )
  phole_o_c_fw_corr_   ( min -50, max 8.16288, mean -0.348541, variance 19.0437, skewness -10.4716, kurtosis 116.848 )
  wei_gifo_x_bw_corr_   ( min -9.3579, max 9.68049, mean -0.000154222, variance 0.168851, skewness 0.0280435, kurtosis 132.628 )
  wei_gifo_m_bw_corr_   ( min -1.74288, max 1.74359, mean -0.000683683, variance 0.00489553, skewness -0.0667064, kurtosis 270.708 )
  bias_bw_corr_   ( min -1.76717, max 1.56454, mean 0.00660166, variance 0.0228971, skewness -0.00251724, kurtosis 61.925 )
  phole_i_c_bw_corr_   ( min -0.636679, max 4.20711, mean 0.0278477, variance 0.136768, skewness 10.2474, kurtosis 113.646 )
  phole_f_c_bw_corr_   ( min -5.78673, max 0.836426, mean -0.0228688, variance 0.256565, skewness -10.4884, kurtosis 116.872 )
  phole_o_c_bw_corr_   ( min -5.26302, max 15.1543, mean -0.0532067, variance 2.41759, skewness 5.92694, kurtosis 64.8182 )
  wei_gifo_x_fw_corr_accu   ( min 0.515135, max 705533, mean 10077.8, variance 6.67795e+08, skewness 10.0349, kurtosis 171.942 )
  wei_gifo_m_fw_corr_accu   ( min 0.00507784, max 114951, mean 1569.15, variance 2.30434e+07, skewness 8.56586, kurtosis 116.708 )
  bias_fw_corr_accu   ( min 10.6426, max 116085, mean 6936.88, variance 1.11547e+08, skewness 4.14148, kurtosis 26.4128 )
  phole_i_c_fw_corr_accu   ( min 8.76862, max 708732, mean 19721.1, variance 6.59619e+09, skewness 6.04325, kurtosis 40.6537 )
  phole_f_c_fw_corr_accu   ( min 13.0844, max 601746, mean 25797.9, variance 6.3099e+09, skewness 4.98142, kurtosis 27.7022 )
  phole_o_c_fw_corr_accu   ( min 136.917, max 1.13095e+06, mean 87861.3, variance 3.77768e+10, skewness 3.21963, kurtosis 10.5672 )
  wei_gifo_x_bw_corr_accu   ( min 0.425662, max 622849, mean 10083.6, variance 6.44956e+08, skewness 9.17846, kurtosis 133.98 )
  wei_gifo_m_bw_corr_accu   ( min 0.0196615, max 63011.8, mean 1570.29, variance 1.71599e+07, skewness 6.28126, kurtosis 53.6638 )
  bias_bw_corr_accu   ( min 41.8282, max 67590.2, mean 7002.9, variance 9.0538e+07, skewness 2.85209, kurtosis 9.77737 )
  phole_i_c_bw_corr_accu   ( min 13.02, max 130975, mean 5466.65, variance 1.74978e+08, skewness 6.64838, kurtosis 56.3711 )
  phole_f_c_bw_corr_accu   ( min 11.536, max 215418, mean 11519.9, variance 6.97753e+08, skewness 4.72709, kurtosis 27.8033 )
  phole_o_c_bw_corr_accu   ( min 120.728, max 965861, mean 71224.4, variance 2.08755e+10, skewness 3.45671, kurtosis 13.7751 )
Layer 12 : <AffineTransform>,
  linearity_corr_ ( min -70.0381, max 70.0339, mean 1.11404e-08, variance 55.164, skewness -0.819038, kurtosis 46.672 )
  bias_corr_ ( min -25.7287, max 70.1389, mean 2.71401e-07, variance 207.424, skewness 2.55855, kurtosis 11.3768 )
  linearity_grad_accu ( min 109.936, max 3.23458e+08, mean 4.15973e+06, variance 7.94241e+14, skewness 8.40972, kurtosis 72.6776 )
  bias_grad_accu ( min 108621, max 3.28079e+08, mean 1.72514e+07, variance 4.51808e+15, skewness 4.16394, kurtosis 15.5132 )
Layer 13 : <Softmax>,

LOG (train-ctc-parallel:main():train-ctc-parallel.cc:241) Done 131172 files, 0 with no targets, 0 with other errors. [TRAINING, 13.678 min, fps26317.2]
LOG (train-ctc-parallel:main():train-ctc-parallel.cc:247)
TOKEN_ACCURACY >> 0.19871% <<
LOG (train-ctc-parallel:PrintProfile():cuda-device.cc:360) -----
[cudevice profile]
CuArray::Resize	9.28921s
CuVector::SetZero	10.7115s
AddDiagMatMat	10.95s
AddRowSumMat	12.7406s
CuMatrix::SetZero	16.4524s
CopyFromVec	18.2809s
AddMat	18.6055s
CuMatrix::Resize	29.6725s
DiffTanh	37.7164s
Tanh	46.65s
DiffSigmoid	57.0552s
Sigmoid	57.3642s
AddMatDotMat	83.9992s
AddMatDiagVec	126.615s
AddMatMat	170.199s
Total GPU time:	736.549s (may involve some double-counting)
-----
LOG (train-ctc-parallel:PrintMemoryUsage():cuda-device.cc:334) Memory used:<PHONE_NUMBER> bytes.

Here please find a chart with training Accuracy graphs for baseline, Adagrad, and Rmsprop, from the latest code in this branch. I'm not sure why Adagrad took so long to start moving.
AlgorithmComparisonHaitian.xlsx

Thanks and dito sorry for not replying sooner! I'll also send you an off-list reply later this week, with results on our German corpus, where we see gains in convergence speed and also WER with RMSProp. I've mostly used RMSProp for my experiments though now, with no decreasing (initial) learning rate. From the data you've send me I guess that the initial learning rate is too high for Adagrad, but if it proves to be too tricky to use, I'd suggest to disable it in this pull request.

Looks pretty good to me
AlgorithmComparisonTedlium.xlsx


php.packages.phive: init at 0.15.0

Add Phive to Nix.
TODO:

[x] Get clarification about the license. Currently it is set to MIT, but it seems that the license of the project is not MIT - See message to the author: https://twitter.com/drupol/status/1502956751632703495 ping @theseer (follow up: https://github.com/phar-io/phive/issues/362)

Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Thanks for the ping and thanks for considering to add Phive.
Phive, as all phar.io maintained packages, is using a BSD-3 license.  It seems to me that the (minor) differences in the head of the license file (naming the authors as well as having a copyright year) compared to the "official" BSD-3-License, Github is having issues detecting it. I'll add a ticket for that and see what needs changing so Github will understand it as BSD-3.

Thanks @theseer ! I just amended the commit and set the license to BSD3. Have a good weekend!

@ofborg build php.packages.box php.packages.deployer php.packages.phing php.packages.php-cs-fixer php.packages.php-parallel-lint php.packages.phpcbf php.packages.phpcs php.packages.phpmd php.packages.phpstan php.packages.psalm php.packages.psysh

@ofborg build php.packages.box php.packages.deployer php.packages.phing php.packages.php-cs-fixer php.packages.php-parallel-lint php.packages.phpcbf php.packages.phpcs php.packages.phpmd php.packages.phpstan php.packages.psalm php.packages.psysh

Thanks.


Also target netstandard2.0

Also target netstandard2.0 so we don't get the NETStandard.Library >=1.6.1 dependency.

Hello, @dlemstra!
Sorry for late answer.
As I see if we add netstandard2.0 target framework we still have 1.6.1 dependency in the Wiry.Base32.nuspec file (files inside Wiry.Base<IP_ADDRESS>.nupkg)
    <dependencies>
      <group targetFramework=".NETFramework4.5" />
      <group targetFramework=".NETStandard1.1">
        <dependency id="NETStandard.Library" version="1.6.1" exclude="Build,Analyzers" />
      </group>
      <group targetFramework=".NETStandard2.0" />
    </dependencies>>

But this not lead any problems to consume this library from other libraries and applications until netstandard2.1 libraries (oops) and core 3.0 applications (oops 2):

In other words, Wiry.Base<IP_ADDRESS> installed without any dependencies until netstandard2.1, not netstandard2.0.

I dig into the problem.
Best choice for today is dropping 1.* standards support:
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>

(myget feed used)
But this is breaking change, so it will be implemented in 2.0.0 version.


Docs: use American English in 'customizing admin template' section

We are in the process of transitioning from British English to American English spelling in the docs. See https://github.com/wagtail/wagtail/issues/10608 for context.
I've stumbled upon one area in the docs that hasn't been updated yet: customising admin templates (source here)
Specific issues I see from a quick glance so far:

Colour (british) should become color (american)
customising -> customizing
...there are probably more...

One way to go about this might be to run a spell checker set to American English on the page.
Fixing this does not require programming knowledge. Which means this issue might be a good fit for a non-technical contributor.

Contributing tips
If you are not familiar with git, you might find it easier to use GitHub's web editing interface. Here is are instructions on how do so
Note: at step 9 in the GitHub documentation, it says to enter a description. Please reference this issue number in the description so we can keep track of work that has been done to fix this issue. Thanks!

I will start working on this right away

Amazing, that was very quick @Buraah!
To all other contributors: if you discover instances of British spelling in other places in docs (docs.wagtail.org), feel free to make a pull request (please mention issue #10608 in the description)
Pro tip: click the 'edit on GitHub' button at the top-right of the page to quickly go to the right source document 🤠

Hello, I've noticed that nobody has made a pr yet. If I finish earlier. Can i send a pr making the changes. Thank you.

Hi @h-lakshman
You are right there was no PR yet at the time you posted your comment, but someone else recently commented that they were working or a PR.
Please give others a chance to work on the issue. This is not a competition, finishing earlier does not have any meaning here.
As a rule of thumb for next time:

If someone has posted a comment indicating they are working on the issue; AND this person hasn't opened a PR after a reasonable amount of time (say: one week, maybe two weeks for more complex issues)
Post a comment asking if they are still working on a PR.
You may get a reply. Or, in the case of no reply for a couple days, you may post a comment stating you will work on the issue given the amount of inactivity.


feat: catch CommandError exceptions

Related Issues

Closes #112

Proposed Changes:

Catches all CommandError exceptions when the integration fails in changing the main unit state.
Testing:

n/a
Extra Notes (optional):

n/a
Checklist

[x] Related issues and proposed changes are filled
[x] Tests are defining the correct and expected behavior
[x] Code is well-documented via docstrings

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

-12 of 13 (7.69%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-1.5%) to 93.617%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

custom_components/econnect_metronet/devices.py
1
13
7.69%

Totals

Change from base Build<PHONE_NUMBER>:
-1.5%

Covered Lines:
599

Relevant Lines:
643

💛  - Coveralls


Adding overflow-hidden for large breadcrumbs texts

Hi, man, I found this UI issue on the mobile version of your website.
I think adding an overflow hidden will fix it. I'm not sure bc I couldn't run your website locally, I might not have the .env variables or something.
Before:

Now:

Cheers.

cheers @Sergioamjr <3


Support listing repositories via a Github App

Hi! I want to expose the functionality introduced in https://github.com/scala-steward-org/scala-steward/pull/1766 by @xuwei-k (hat tip!). The idea is that one can create a Github App and install it in the repositories they want to update from this action.
Notice, this PR is only for using the app to list installations. It's also possible to use a GH app to authenticate, but that's another story and I will have separate PR for it.
This is a WIP, I'll think how to test it and add more details here.

It works! 🚀 Here's how I tested it.
I've set up a personal app and installed it in two test repositories: one public and one private.

Screenshot of the installation

Notice that the required permissions are minimal (as documented), just enough to list repositories

Then I've set up this public repo to test the action: https://github.com/laughedelic/scala-steward-runner with the reference to this branch of my fork:
        uses: laughedelic/scala-steward-action@gh-app-args
        with:
          # used to list repositories:
          github-app-id: 104507
          github-app-key: ${{ secrets.SCALA_STEWARD_APP_PRIVATE_KEY }}
          # used to author pull requests:
          github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}

Here

SCALA_STEWARD_APP_PRIVATE_KEY is the private key generated on the app creation
PERSONAL_ACCESS_TOKEN is just a PAT with repo access (so PRs will be created on my behalf)

In the first successful run logs you can see that it created two PRs:

https://github.com/laughedelic/scala-steward-test1/pull/2
https://github.com/laughedelic/scala-steward-test2/pull/2 (private 🔒)

@alejandrohdezma I think this is ready. Please, let me know if the docs are not clear enough or anything needs to be refactored.

Sorry for the delay, busy week.
This is great! Thank you very much for this @laughedelic, I'm definitely changing my own projects to using this approach.

Versions v2.13.0 and v2 have been published containing this change

Awesome! Thanks 😊


Not Working For Android 12 api 31

This Library won't run over android v12 api 31
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
you used older version of mapbox in-which pending intent is't implemented for service
please update the version of mab box lib (Core /navigation) for using the new feature

Is there a solution for this? API 31 is required by November for Play store release.


Error after installing via homebrew

Output of running php-cs-fixer command:
→ php-cs-fixer

PHP Warning:  require_once(phar:///usr/local/Cellar/php-cs-fixer/0.5.7/libexec/php-cs-fixer.phar/vendor/autoload.php): failed to open stream: phar error: "vendor/autoload.php" is not a file in phar "/usr/local/Cellar/php-cs-fixer/0.5.7/libexec/php-cs-fixer.phar" in phar:///usr/local/Cellar/php-cs-fixer/0.5.7/libexec/php-cs-fixer.phar/php-cs-fixer on line 25

Warning: require_once(phar:///usr/local/Cellar/php-cs-fixer/0.5.7/libexec/php-cs-fixer.phar/vendor/autoload.php): failed to open stream: phar error: "vendor/autoload.php" is not a file in phar "/usr/local/Cellar/php-cs-fixer/0.5.7/libexec/php-cs-fixer.phar" in phar:///usr/local/Cellar/php-cs-fixer/0.5.7/libexec/php-cs-fixer.phar/php-cs-fixer on line 25
PHP Fatal error:  require_once(): Failed opening required 'phar:///usr/local/Cellar/php-cs-fixer/0.5.7/libexec/php-cs-fixer.phar/vendor/autoload.php' (include_path='.:/usr/local/Cellar/php56/5.6.2/lib/php') in phar:///usr/local/Cellar/php-cs-fixer/0.5.7/libexec/php-cs-fixer.phar/php-cs-fixer on line 25

Fatal error: require_once(): Failed opening required 'phar:///usr/local/Cellar/php-cs-fixer/0.5.7/libexec/php-cs-fixer.phar/vendor/autoload.php' (include_path='.:/usr/local/Cellar/php56/5.6.2/lib/php') in phar:///usr/local/Cellar/php-cs-fixer/0.5.7/libexec/php-cs-fixer.phar/php-cs-fixer on line 25

installed manually and it works

Sorry, but no one can confirm that for whole month, closing.
Try to instal v1.4 instead of v0.5.7. Or try composer / phar file.

I'm getting this same error also

I don't use mac, can't use homebrew, don't know how it work.
Isn't it an issue for some kind of homebrew package, not tool itself ?

phpcs is installed via home-brew and it works fine

That did not answer my question.
phpcs is some other tool.


Webpack + es6 module loading problem

Hi there !
First of all, I want to say that this problem seems to be Webpack related so it is possible that there is nothing you can do :)
Depending on which file I import from the module I get the following error : "No createObjectURL function found to create blob url".
If I import ui-cropper simply by importing the module and injecting it, I get the error.
import uiCropper from 'ui-cropper';

angular.module('myModule', [uiCropper]);

But if I import directly the unminimified compiled file, everything seems to work fine :
import 'ui-cropper/compile/unminified/ui-cropper';

angular.module('myModule', ['uiCropper']);

I did not do a lot of tests about it so I am unsure where the problem is coming from but I figured I should bring it up to you.
My environment :

webpack: ^2.5.0
babel for compilation with

babel-core: ^6.24.1
babel-loader: ^7.0.0
babel-plugin-transform-object-rest-spread: ^6.23.0
babel-preset-env: ^1.5.0

Let me know if you can reproduce it.

personally I don't use webpack with that cropper, so I can't help you.

Ok ! I was wondering it may come from the ES6 module export from the module or if it was from my webpack config.

we don't have any ES6 code in the plugin, I haven't checked the submodules which we use.

Seems to be a duplicate of https://github.com/CrackerakiUA/ui-cropper/issues/84


WIP: Translation de

This is work in progress.
This pull request is only made to avoid duplication of effort.

For the record: an almost complete German translation is here on its way.


remove an item from navigation history without clearing the whole history

From @janossuta on September 20, 2018 9:1
Hi,
I would like to remove an item from navigation history.
I have a route like this
Homepage -> Comment list -> Add comment
After you add a comment it navigates back to Comment list
So the navigation history is this:
Homepage -> Comment list -> Add comment -> Comment list
What I want is to prevent navigation back from Comment list to Add comment when pressing the back button and jump to Homepage instead
Comment list  -> (back button) skip Add comment -> Homepage
Here is a simple example:
https://play.nativescript.org/?template=play-ng&id=zhyj9e
Which platform(s) does your issue occur on?
Both
Copied from original issue: NativeScript/NativeScript#6285

Hi @janossuta,
Currently, there is no way to remove a Page from the navigation history in NativeScript Angular. Regarding your case, I would suggest creating a modal page, where you can display the content for the Add comment component. When the new comment is added, you can close the modal and display the Comment list component.
For more info, you can review the Modal page article from the documentation and the sample in the issue here.

Hi @tsonevn,
Thank you! I'm going to use modal page then.

Hi @tsonevn,
Thank you it is solved my problem.
But I have an other question regarding modal views. If I have multiple modal views which are not related together but from the same page I have to create a modal-root component for each new modals?
Comment list page -> Add comment modal
Comment list page -> Show comment picture modal

Hi @janossuta,
Yes, in the described above scenario, when you have multiple modal pages, which are not related, you should define modal-root for each of them. Keep in mind that the first described approach is used in the scenarios, when you would like to setup ActionBar inside the modal page or when you will make navigations inside the modal.
In case you need to display only a specific component as a modal, you can use the approach described in the example here in the article.

Any solution without model based approach ?

Is there any solution to this now with all the updates since?

Any update on this without using the modal approach yet?

Any update here? I wish to clear only the previous item from the navigation history.


Support similarity search by vector as well as string

Not sure if this sort of API change (doing similarity search on vectorstores with a vector instead of a string as input) is desirable or not but it has been useful for some experimental vector memory I have been working on. I wanted to offer this PR first to see if the API change makes sense or not. (Note I have only implemented for FAISS - not all the other vectorstores.)

OK - can do that. Will close this and resubmit.


new inbox button position and game activity toggle plugin broken

not sure is this starting to rolling to more people but recently Discord tested out a new location for Inbox from the toolbar to the button on top of the home button

game activity toggle plugin (BD) is also broken at the moment

Discord Stable, downloaded the theme from GooseMod store

There's no way that's going to be the new location for the inbox. Discord must be out of their mind.
I'll take a look at the Activity button later today.


Add documentation support for opensearch-php client

Add documentation to help users to install/connect to OpenSearch clusters using opensearch-php by creating a file "php" at https://github.com/opensearch-project/documentation-website/tree/main/_clients, using following java client as template.
Java client  (Template)
The OpenSearch Java client allows you to interact with your OpenSearch clusters through Java methods and data structures rather than HTTP methods and raw JSON.
For example, you can submit requests to your cluster using objects to create indices, add data to documents, or complete some other operation using the client’s built-in methods.
Install the client
To start using the OpenSearch Java client, ensure that you have the following dependency in your project’s pom.xml file:
<dependency>
  <groupId>org.opensearch.client</groupId>
  <artifactId>opensearch-java</artifactId>
  <version>0.1.0</version>
</dependency>

If you’re using Gradle, add the following dependencies to your project.
dependencies {
    implementation 'org.opensearch.client:opensearch-rest-client: 1.1.0'
    implementation 'org.opensearch.client:opensearch-java:0.1.0'
}

You can now start your OpenSearch cluster.
Security
This code example uses basic credentials that come with the default OpenSearch configuration. If you’re using the OpenSearch Java client with your own OpenSearch cluster, be sure to change the code to use your own credentials.
The following sample demonstrates how to point your client to a keystore and set basic authentication credentials that can access a secure cluster.
System.setProperty("javax.net.ssl.trustStore", "/full/path/to/keystore");
System.setProperty("javax.net.ssl.trustStorePassword", "password-to-keystore");

//Only for demo purposes. Don't specify your credentials in code.
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
    new UsernamePasswordCredentials("admin", "admin"));

Store data
This section uses a class called IndexData, which is a simple Java class that stores basic data and methods. For your own OpenSearch cluster, you might find that you need a more robust class to store your data.
IndexData class
static class IndexData {
  private String firstName;
  private String lastName;

  public IndexData(String firstName, String lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  public String getFirstName() {
    return firstName;
  }

  public void setFirstName(String firstName) {
    this.firstName = firstName;
  }

  public String getLastName() {
    return lastName;
  }

  public void setLastName(String lastName) {
    this.lastName = lastName;
  }

  @Override
  public String toString() {
    return String.format("IndexData{first name='%s', last name='%s'}", firstName, lastName);
  }
}

Initialize the client with SSL and TLS enabled
The following sample code initializes a client with SSL and TLS enabled:
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
import org.opensearch.client.RestClient;
import org.opensearch.client.RestClientBuilder;
import org.opensearch.clients.base.RestClientTransport;
import org.opensearch.clients.base.Transport;
import org.opensearch.clients.json.jackson.JacksonJsonpMapper;
import org.opensearch.clients.opensearch.OpenSearchClient;
import org.opensearch.clients.opensearch._global.IndexRequest;
import org.opensearch.clients.opensearch._global.IndexResponse;
import org.opensearch.clients.opensearch._global.SearchResponse;
import org.opensearch.clients.opensearch.indices.*;
import org.opensearch.clients.opensearch.indices.put_settings.IndexSettingsBody;

import java.io.IOException;

public class OpenSearchClientExample {
  public static void main(String[] args) {
    try{
    System.setProperty("javax.net.ssl.trustStore", "/full/path/to/keystore");
    System.setProperty("javax.net.ssl.trustStorePassword", "password-to-keystore");

    //Only for demo purposes. Don't specify your credentials in code.
    final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
    credentialsProvider.setCredentials(AuthScope.ANY,
        new UsernamePasswordCredentials("admin", "admin"));

    //Initialize the client with SSL and TLS enabled
    RestClient restClient = RestClient.builder(new HttpHost("localhost", 9200, "https")).
      setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
        @Override
        public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
        return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
        }
      }).build();
    Transport transport = new RestClientTransport(restClient, new JacksonJsonpMapper());
    OpenSearchClient client = new OpenSearchClient(transport);

OpenSearch client example
This section has sample code that shows you how to create an index with non-default settings, add a document to the index, search for the document, delete the document, and finally delete the index.
Create an index with non-default settings
The following sample code creates an index with non-default settings.
String index = "sample-index";
CreateRequest createIndexRequest = new CreateRequest.Builder().index(index).build();
client.indices().create(createIndexRequest);

IndexSettings indexSettings = new IndexSettings.Builder().autoExpandReplicas("0-all").build();
IndexSettingsBody settingsBody = new IndexSettingsBody.Builder().settings(indexSettings).build();
PutSettingsRequest putSettingsRequest = new PutSettingsRequest.Builder().index(index).value(settingsBody).build();
client.indices().putSettings(putSettingsRequest);

Index some data
The following sample code adds a document to the index:
IndexData indexData = new IndexData("first_name", "Bruce");
IndexRequest<IndexData> indexRequest = new IndexRequest.Builder<IndexData>().index(index).id("1").value(indexData).build();
client.index(indexRequest);

Search for the document
The following sample code searches for the document:
SearchResponse<IndexData> searchResponse = client.search(s -> s.index(index), IndexData.class);
for (int i = 0; i< searchResponse.hits().hits().size(); i++) {
  System.out.println(searchResponse.hits().hits().get(i).source());
}

Delete the document
The following sample code deletes the document:
client.delete(b -> b.index(index).id("1"));

Delete the index
The following sample code deletes the index:
DeleteRequest deleteRequest = new DeleteRequest.Builder().index(index).build();
DeleteResponse deleteResponse = client.indices().delete(deleteRequest);

restClient.close();
} catch (IOException e){
    System.out.println(e.toString());
} finally {
    try {
      if (client != null) {
        client.close();
      }
    } catch (IOException e) {
        System.out.println(e.toString());
      }
    }
  }
}

Complete code sample
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
import org.opensearch.client.RestClient;
import org.opensearch.client.RestClientBuilder;
import org.opensearch.clients.base.RestClientTransport;
import org.opensearch.clients.base.Transport;
import org.opensearch.clients.json.jackson.JacksonJsonpMapper;
import org.opensearch.clients.opensearch.OpenSearchClient;
import org.opensearch.clients.opensearch._global.IndexRequest;
import org.opensearch.clients.opensearch._global.IndexResponse;
import org.opensearch.clients.opensearch._global.SearchResponse;
import org.opensearch.clients.opensearch.indices.*;
import org.opensearch.clients.opensearch.indices.put_settings.IndexSettingsBody;

import java.io.IOException;

public class OpenSearchClientExample {
  public static void main(String[] args) {
    try{
    System.setProperty("javax.net.ssl.trustStore", "/full/path/to/keystore");
    System.setProperty("javax.net.ssl.trustStorePassword", "password-to-keystore");

    //Only for demo purposes. Don't specify your credentials in code.
    final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
    credentialsProvider.setCredentials(AuthScope.ANY,
      new UsernamePasswordCredentials("admin", "admin"));

    //Initialize the client with SSL and TLS enabled
    RestClient restClient = RestClient.builder(new HttpHost("localhost", 9200, "https")).
      setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
        @Override
        public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
        return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
        }
      }).build();
    Transport transport = new RestClientTransport(restClient, new JacksonJsonpMapper());
    OpenSearchClient client = new OpenSearchClient(transport);

    //Create the index
    String index = "sample-index";
    CreateRequest createIndexRequest = new CreateRequest.Builder().index(index).build();
    client.indices().create(createIndexRequest);

    //Add some settings to the index
    IndexSettings indexSettings = new IndexSettings.Builder().autoExpandReplicas("0-all").build();
    IndexSettingsBody settingsBody = new IndexSettingsBody.Builder().settings(indexSettings).build();
    PutSettingsRequest putSettingsRequest = new PutSettingsRequest.Builder().index(index).value(settingsBody).build();
    client.indices().putSettings(putSettingsRequest);

    //Index some data
    IndexData indexData = new IndexData("first_name", "Bruce");
    IndexRequest<IndexData> indexRequest = new IndexRequest.Builder<IndexData>().index(index).id("1").value(indexData).build();
    client.index(indexRequest);

    //Search for the document
    SearchResponse<IndexData> searchResponse = client.search(s -> s.index(index), IndexData.class);
    for (int i = 0; i< searchResponse.hits().hits().size(); i++) {
      System.out.println(searchResponse.hits().hits().get(i).source());
    }

    //Delete the document
    client.delete(b -> b.index(index).id("1"));

    // Delete the index
    DeleteRequest deleteRequest = new DeleteRequest.Builder().index(index).build();
    DeleteResponse deleteResponse = client.indices().delete(deleteRequest);

    restClient.close();
    } catch (IOException e){
      System.out.println(e.toString());
    } finally {
      try {
        if (client != null) {
          client.close();
        }
      } catch (IOException e) {
        System.out.println(e.toString());
      }
    }
  }
}

Closed with #285


The mobile keypad does not close when tapping elsewhere on the screen.

It is essential for the mobile keypad to close when the user taps anywhere on the screen;(especially Login, Registration and OTP screen) .

Resolved.
@kashishmalik can you check and close the issue

resolved


Exclude mimeTypes from a gallery search

#2936
Checklist

[x] the [contributor license agreement][] is signed
[x] commit message follows [commit guidelines][]
[ ] tests are included
[x] screenshots are included showing significant UI changes
[ ] documentation is changed or added

Description of change
Exclude MIME types in gallery searches, but selected MIME type filters are still kept so that when we switch back to the standard search page, filters still get selected.
Please note that external MIME types are still included in gallery searches if they are provided.

listVideoGalleryClassifications

Ah yes! Thanks for reminding!

LGTM! Thanks Penghai.


add logo & dark/light theme in signup page[Feat]:

What feature?
i want to add gyanaguru logo in signup page onclick navigate to home page  & dark/light theme option -

We will see it in the login page just as it is -

No response
Agreement to Code of Conduct

[X] I agree to follow this project's Code of Conduct

please assign me this issue under gssoc


Error when applying tf from one column to different columns

What happens?
Credit to @afua-moj for finding this issue
When producing a comparison level for first name/surname name inversion, splink throws an error in the m training step when:

tf_adjustment_column is set to "full_name"
tf adjustments have not been used for "first_name" or "surname" in other comparison levels

For example, this fails:
full_name = {
    "output_column_name": "full_name",
    "comparison_levels": [
        {
            "sql_condition": "(first_name_l IS NULL OR first_name_r IS NULL) and (surname_l IS NULL OR surname_r IS NULL)",
            "label_for_charts": "Null",
            "is_null_level": True,
        },
        cll.exact_match_level("full_name", term_frequency_adjustments=True),
        cll.columns_reversed_level("first_name", "surname", tf_adjustment_column="full_name"),
        cll.else_level(),
    ],
}

but when you add exact matches with tf adjustments for first_name and surname it works:
full_name = {
    "output_column_name": "full_name",
    "comparison_levels": [
        {
            "sql_condition": "(first_name_l IS NULL OR first_name_r IS NULL) and (surname_l IS NULL OR surname_r IS NULL)",
            "label_for_charts": "Null",
            "is_null_level": True,
        },
        cll.exact_match_level("full_name", term_frequency_adjustments=True),
        cll.exact_match_level("first_name", term_frequency_adjustments=True),
        cll.exact_match_level("surname", term_frequency_adjustments=True),
        cll.columns_reversed_level("first_name", "surname", tf_adjustment_column="full_name"),
        cll.else_level(),
    ],
}

Giving error such as BinderException: Binder Error: Values list "l" does not have a column named "tf_first_name" , saying that tf_first_name doesn't exist. Which it shouldn't as it is not required. I think the key issue here is why splink expects to have an irrelevant tf column.
To Reproduce
To define the model:
import pandas as pd
from splink.duckdb.duckdb_linker import DuckDBLinker
import splink.duckdb.duckdb_comparison_level_library as cll
import splink.duckdb.duckdb_comparison_template_library as ctl

df = pd.read_csv("splink/tests/datasets/fake_1000_from_splink_demos.csv")
df["full_name"] = df["first_name"] +" "+ df["surname"]
df['dob'] = pd.to_datetime(df['dob'])

full_name = {
    "output_column_name": "full_name",
    "comparison_levels": [
        {
            "sql_condition": "(first_name_l IS NULL OR first_name_r IS NULL) and (surname_l IS NULL OR surname_r IS NULL)",
            "label_for_charts": "Null",
            "is_null_level": True,
        },
        cll.exact_match_level("full_name", term_frequency_adjustments=True),
        #cll.exact_match_level("first_name", term_frequency_adjustments=True),
        #cll.exact_match_level("surname", term_frequency_adjustments=True),
        cll.columns_reversed_level("first_name", "surname", tf_adjustment_column="full_name"),
        cll.else_level(),
    ],
}

settings = {
        "probability_two_random_records_match": 0.00001,
        "link_type": "dedupe_only",
        "comparisons": [
            full_name,
            ctl.date_comparison("dob")
        ],
        "retain_matching_columns": True,
        "retain_intermediate_calculation_columns": True,
    }

Prior and u training works fine:
linker = DuckDBLinker(df, settings)

deterministic_rules =     [
    "l.surname = r.surname",
    "l.first_name=r.first_name"
]
linker.estimate_probability_two_random_records_match(deterministic_rules, 0.5)

linker.estimate_u_using_random_sampling(max_pairs=1e5)

m training that breaks
# Training session 1
blocking_rule_1 = "l.email = r.email"
training_session_1 = linker.estimate_parameters_using_expectation_maximisation(blocking_rule_1)

with error
BinderException: Binder Error: Values list "l" does not have a column named "tf_first_name"
OS:
IOS
Splink version:
3.7.2
Have you tried this on the latest master branch?

[X] I agree

Have you tried the steps to reproduce? Do they include all relevant data and configuration? Does the issue you report still appear there?

[X] I agree

Issue narrowed down to [this function](https://github.com/moj-analytical-services/splink/blob/54536ba08fdf4cd8b5545990525dbb8e446f92e7/splink/blocking.py#L161] by @afua-moj

import splink.spark.spark_comparison_level_library as cll

rev = cll.columns_reversed_level(
            "first_name", "surname", tf_adjustment_column="full_name"
        )

rev.as_dict()

Result in:
{'sql_condition': '`first_name_l` = `surname_r` and `first_name_r` = `surname_l`',
 'label_for_charts': 'Exact match on reversed cols',
 'tf_adjustment_column': 'full_name',
 'tf_adjustment_weight': 1.0}

rev._columns_to_select_for_blocking

Results in:
['`l`.`surname` as `surname_l`',
 '`r`.`surname` as `surname_r`',
 '`l`.`tf_surname` as `tf_surname_l`',
 '`r`.`tf_surname` as `tf_surname_r`',
 '`l`.`first_name` as `first_name_l`',
 '`r`.`first_name` as `first_name_r`',
 '`l`.`tf_first_name` as `tf_first_name_l`',
 '`r`.`tf_first_name` as `tf_first_name_r`']

That's solved it - thanks very much @RobinL! PR will go in later today 😊


Add maintenance badge docs

Pending merging of this PR for crates.io. This should close off #704 on crates.io. I've also updated the badge metadata docs and reordered the fields into groups by build, code coverage, and maintenance.
So I've decided to put the list of possible badge options in the documentation, we'll have to find another place to put more detailed descriptions of the available maintenance badges.

@bors: r+
Thanks!

:pushpin: Commit 5cafa5a has been approved by alexcrichton

:hourglass: Testing commit 5cafa5a12497822059413243b81a28c2f4a1742f with merge 69fa59a07df99d963f0f3d54b4812ea6bec25562...

:sunny: Test successful - status-appveyor, status-travis
Approved by: alexcrichton
Pushing 69fa59a07df99d963f0f3d54b4812ea6bec25562 to master...


Update Image name and added fig.yml documentation

The public image name was not available. Also I added how to start it within fig.

@ChristianKniep hey, thanks for the PR :)
Could you do it against develop?

I created a develop one...


' ! +  enter  ' html boiler plate

My ' !   +  enter  ' shortcut  html boilerplate is not working ,please help me.

/duplicate

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


which api do you use to get the skin prices ?

I use this static json file that updates every day.

thank you so much , are the prices in usd ?

thanks


improve: login and signup page errors are not user-friendly and are displayed in the wrong place.

Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like

Changes in the Login page:
The login error should be displayed below the login button and not underneath the website navbar.
Displaying login errors below the login button ensures immediate visibility and contextual association with the login action.

Changes in the signup page:
The error message is displayed below the corresponding input field.

Changes in both login and signup pages:
The error messages should get enhanced for improved user comprehension, replacing Firebase API error codes with clear and concise explanations tailored to various scenarios.

Alternatives
No response
Additional Context
No response
Are you interested in contributing?

[X] I'd like to work on this issue

Code of Conduct

[X] I have used the search function to check if an issue already exists
[X] I agree to follow this project's Code of Conduct

Please add screenshot for current and expected results. (Just use any annotation tool to show where exactly do u expect the error to be shown)

I've made a pull request: #814

I would like to work on this issue please assign me this issue

@Knanianis, can you add screenshot of the final output with some error (to know the exact location).

Not priority


Automated branching for 1.23 missed https://github.com/istio/release-builder/tree/c4b2830c95b537e3a70b1b5c83b529ab3eb2d3ae

Please provide a description of this PR:
Need one more RB sha to publish one of the charts we have said we want to publish for 1.23

Actually needs to be a cherry now.

In response to a cherrypick label: new pull request created: #52117


Exclude option expanded feature

Currently we have databases in AGs.  We have a very large database that is no longer used but is there for historical purposes.  We run our Index Optimize to update stats at the AG level.  We tend to run our maintenance jobs at the AG level so if a database gets added to an AG we do not have to update our jobs.
What I would like is that at the AG level to be able to exclude a database so Index Optimize runs on all of the databases except the ones specified.  I see you can do this at the USER_DATABASE level but to at the AG level.
Something like this:
@AvailabilityGroups = 'TPA0AG_01,-CUSTOMERDB',     to run Index optimize on all databases in the AG except CUSTOMERDB

Hey redtrain65
I believe this feature exists already!
Assuming you're using @AvailabilityGroups because you have multiple AGs on the same server, for TPA0AG_01, I'm pretty sure you can do the following:
@Databases = 'AVAILABILITY_GROUP_DATABASES, -CUSTOMERDB',
@AvailabilityGroups = 'TPA0AG_01'

That does not work.  Tried it.
@AvailabilityGroups = N'AG01',
@Databases = 'AVAILABILITY_GROUP_DATABASES, -ABC_DEMO_PROD',
Msg 50000, Level 16, State 3, Procedure dbo.DatabaseBackup, Line 2267 [Batch Start Line 0]
You can only specify one of the parameters @Databases and @AvailabilityGroups.

Hm I never would've guess that they were mutually exclusive.
Definitely seems like an ola issue then.
One suggestion would be that if the database is truly only for historical purposes, why not remove it from the AG and set it to read-only and restore a copy to the other node(s)?

In the coming months we plan on doing that.  Many other projects going on and getting approval from all parties to do this is a very low priority.


Best practice for including images?

There's two ways to include images:

Include it in /static and reference it directly
Include it in the component and use require (which embeds it as a data:uri).

In the former, I'd get the benefit of caching, but on the other hand, if I replace a file, it seems like it would still be cached by the browser (can't see that webpack is doing the type of renaming with has that grunt does)
In the latter, I won't get stale files but the data:uri will bloat my response (especially if an image is repeated) and I won't get any benefit of caching.
Advice?

Hey, when it comes to caching, I thought the prod build will rename the files every time?

I think @mmahalwy is right


Set proxy target class on caching producer factory

Required when template accessed via web request

Looks good! Merging.


Implement APIs for code-suggester compatibility

Feature Description
I think would be great if the endpoint https://docs.github.com/en/rest/git/trees?apiVersion=2022-11-28#create-a-tree is added, It could help me integrate the https://github.com/googleapis/code-suggester plugin for gitea.
I would also need this endpoint :
https://docs.github.com/en/rest/git/commits?apiVersion=2022-11-28#create-a-commit
let me know if that should be another ticket.
Screenshots
No response

Aren't the /repos/{owner}/{repo}/contents/... endpoints good enough?

Aren't the /repos/{owner}/{repo}/contents/... endpoints good enough?

I'm not sure about that, the pr that release-please creates, needs to be aligned with the main branch, so those endpoints alone, are not enough to make it work properly.


Python server to parse python files into abstract syntax trees (AST)

I'm on it

@lborg019, The AST conforms to a certain schema, and will need to be converted to a scene with actors.
let ast = import_from_python("./mypythonfile.py");

for node in ast {
  match node {
     Node::Module(data) => {
        scene.add(Module::new(data));
     },
     // Match other types of modules
     // Repeat some stuff recursively
     _ => ()
  }
}