tensorflow:Layer will not use cuDNN kernel since it doesn't meet the cuDNN kernel criteria (using with GRU layer and dropout)

When trying to follow along F. Chollet's "Deep Learning with Python" listing 6.40 I encounter this warning:
WARNING:tensorflow:Layer gru_4 will not use cuDNN kernel since it doesn't meet the cuDNN kernel criteria. It will use generic GPU kernel as fallback when running on GPU
after executing the following code:
input_tensor = layers.Input((None, float_data.shape[-1]))
kmodel = layers.GRU(32, dropout=0.2, recurrent_dropout=0.2)(input_tensor)
output_tensor = layers.Dense(1)(kmodel)
model = models.Model(input_tensor, output_tensor)

My imports are:
import os

import numpy as np
import matplotlib.pyplot as plt

from typing import Tuple

from tensorflow.keras import models, layers
from tensorflow.keras.optimizers import RMSprop

Note that if I don't use dropout and recurrent_dropout in the GRU layer everything works fine and fast. In the case I do use dropout like in the code above, it still works but with very slow performance.
System information:
Python 3.7.7
tensorflow-gpu 2.2.0
GPU: Cuda compilation tools, release 10.1, V10.1.243 on GeForce RTX 2080 Ti 11016MiB
OS: Ubuntu 18.04.4 LTS

@oren0e,
On running the code I am facing an error stating NameError: name 'float_data' is not defined.
In order to expedite the trouble-shooting process, could you please provide the complete code to reproduce the issue reported here and the dataset you are using. Thanks!

Sure. This is taken from F. Chollet's book:
First download the data:
wget https://s3.amazonaws.com/keras-datasets/jena_climate_2009_2016.csv.zip
Then unzip it to a folder and specify the full path to this folder in data_dir.
The code:
import os

import numpy as np
import matplotlib.pyplot as plt

from typing import Tuple

from tensorflow.keras import models, layers
from tensorflow.keras.optimizers import RMSprop
from tensorflow.keras.datasets import imdb
from tensorflow.keras.preprocessing import sequence

data_dir = '**path_to_your_folder**'
fname = os.path.join(data_dir, 'jena_climate_2009_2016.csv')

f = open(fname)
data = f.read()
f.close()

lines = data.split('\n')
header = lines[0].split(',')
lines = lines[1:]
print(header)
print(len(lines))

# convert the data into numpy array
float_data = np.zeros((len(lines), len(header) - 1))
for i, line in enumerate(lines):
    values = [float(x) for x in line.split(',')[1:]]    # drop the timestamp
    float_data[i, :] = values

temp = float_data[:, 1]  # temperature (in degrees celsius)
plt.plot(range(len(temp)), temp)
plt.show()

# first 10 days (temp is recorded every 10 minutes))
plt.plot(range(1440), temp[:1440])
plt.show()

mean = float_data[:200000].mean(axis=0)
float_data -= mean
std = float_data[:200000].std(axis=0)
float_data /= std

def generator(data: np.ndarray, lookback: int, delay: int, min_index: int, max_index: int,
              shuffle: bool = False, batch_size: int = 128, step: int = 6) -> Tuple[np.ndarray, np.ndarray]:
    if max_index is None:
        max_index = len(data) - delay - 1
    i = min_index + lookback
    while 1:
        if shuffle:
            rows = np.random.randint(min_index + lookback, max_index, size=batch_size)
        else:
            if i + batch_size >= max_index:
                i = min_index + lookback
            rows = np.arange(i, min(i + batch_size, max_index))
            i += len(rows)

        samples = np.zeros((len(rows), lookback // step, data.shape[-1]))
        targets = np.zeros((len(rows),))
        for j, row in enumerate(rows):
            indices = range(rows[j] - lookback, rows[j], step)
            samples[j] = data[indices]
            targets[j] = data[rows[j] + delay][1]
        yield samples, targets

lookback = 1440
step = 6
delay = 144
batch_size = 128

train_gen = generator(float_data, lookback=lookback, delay=delay, min_index=0, max_index=200000,
                      shuffle=True, step=step, batch_size=batch_size)
val_gen = generator(float_data, lookback=lookback, delay=delay, min_index=200001, max_index=300000,
                      shuffle=True, step=step, batch_size=batch_size)
test_gen = generator(float_data, lookback=lookback, delay=delay, min_index=300001, max_index=None,
                      shuffle=True, step=step, batch_size=batch_size)

# these are the forecasted parts that we will want to look at
val_steps = (300000 - 200001 - lookback) // batch_size   # how many steps to draw from val_gen in order to see
                                            # the entire validation set
test_steps = (len(float_data) - 300001 - lookback) // batch_size     # " " for test

input_tensor = layers.Input((None, float_data.shape[-1]))
kmodel = layers.GRU(32, recurrent_dropout=0.2, dropout=0.2)(input_tensor)
output_tensor = layers.Dense(1)(kmodel)
model = models.Model(input_tensor, output_tensor)

model.compile(optimizer=RMSprop(), loss='mae')
history = model.fit_generator(train_gen, steps_per_epoch=500,
                              epochs=40,
                              validation_data=val_gen,
                              validation_steps=val_steps)

In my understanding, the problem is with the recurrent_dropout argument.

Was able to reproduce the issue with TF v2.2 and TF-nightly. Please find the gist of it here. Thanks!

@oren0e,
Please take a look at the requirements to use cuDNN implementation for the GRU layer and let us know if it helps. Thanks!

@amahendrakar,
The link you have provided just reconfirms that the problem is with the recurrent_dropout argument. The requirement is to set it to  0, i.e., not using it. I think this should be implemented in the TF backend since it is an important option that highly affects performance (training time).

@oren0e, this issue is expected since the recurrent dropout is not implemented in the Nvidia's cudnn kernel. We have to fallback to use the generic kernel when user specify the recurrent dropout. See the docstring of GRU and LSTM for the criteria of using cudnn kernel. https://www.tensorflow.org/api_docs/python/tf/keras/layers/GRU#used-in-the-notebooks_1.


Closes #502 admh script

Close #502
Thank you for your Pull Request! We have developed this task checklist from the Development Process Guide to help with the final steps of the process. Completing the below tasks helps to ensure our reviewers can maximize their time on your code as well as making sure the admiral codebase remains robust and consistent.
Please check off each taskbox as an acknowledgment that you completed the task or check off that it is not relevant to your Pull Request. This checklist is part of the Github Action workflows and the Pull Request will not be merged into the devel branch until you have checked off each task.

[x] Place Closes #<insert_issue_number> into the beginning of your Pull Request Title (Use Edit button in top-right if you need to update)
[x] Code is formatted according to the tidyverse style guide
[ ] Updated relevant unit tests or have written new unit tests - See Unit Test Guide
[ ] If you removed/replaced any function and/or function parameters, did you fully follow the deprecation guidance?
[ ] Update to all relevant roxygen headers and examples
[x] Run devtools::document() so all .Rd files in the man folder and the NAMESPACE file in the project root are updated appropriately
[ ] Address any updates needed for vignettes and/or templates
[ ] Update NEWS.md if the changes pertain to a user-facing function (i.e. it has an @export tag) or documentation aimed at users (rather than developers)
[ ] Build admiral site pkgdown::build_site() and check that all affected examples are displayed correctly and that all new functions occur on the "Reference" page.
[ ] Address or fix all lintr warnings and errors - lintr::lint_package()
[x] Run R CMD check locally and address all errors and warnings - devtools::check()
[x] Link the issue in the Development Section on the right hand side.
[ ] Address all merge conflicts and resolve appropriately
[ ] Pat yourself on the back for a job well done! Much love to your accomplishment!

@gg106046 can you fix these actions that are failing please

@gg106046 can you please fix these merge conflicts.  Is this PR ready to review after the conflicts are fixed?

@gg106046 can you please fix these merge conflicts. Is this PR ready to review after the conflicts are fixed?

Hi @bms63 ! The merge conflicts are fixed, and the PR is ready for review. But some of the checks are failing. The R-CMD check and the lintr check did not give any error in R studio cloud, but they are failing here. Any idea what might be the reason for this?

This looks like a merge conflict issue.  Can you take a look at this specifc file and see if there is any >>>>>>>>>>>> or <<<<<<<<<<< in it?

This looks like a merge conflict issue. Can you take a look at this specifc file and see if there is any >>>>>>>>>>>> or <<<<<<<<<<< in it?

Checked the file "derive_var_disposition_status.Rd" and it doesn't have conflict markers.

Hi @gg106046 I fixed all the errors that were occurring.  Is this ready for review now?
@yangc71 I remember you mentioning adding the queries data into the example.  Shall we still include?  Can you advise or add in what you envisioned with the queries_mh.  We can also add in for next release.

Hi @bms63, thanks for checking, I recall adding something like derive_vars_query(queries_mh) in the template, but it seems this was removed. I'm not sure if there was a reason behind removing it?

I actually say that in the example_query file.  Is it worthwhile to include?

I thought it's useful to show an example of deriving query vars so added the line in ad_admh.R too, but it seems @gg106046 removed it possibly due to some reason/discussion I'm not aware of (maybe because not all studies derive these variables)?

I thought it's useful to show an example of deriving query vars so added the line in ad_admh.R too, but it seems @gg106046 removed it possibly due to some reason/discussion I'm not aware of (maybe because not all studies derive these variables)?

Okay.  We can add this into the next release unless you or @gg106046 have time to update by Monday.

I thought it's useful to show an example of deriving query vars so added the line in ad_admh.R too, but it seems @gg106046 removed it possibly due to some reason/discussion I'm not aware of (maybe because not all studies derive these variables)?

Okay. We can add this into the next release unless you or @gg106046 have time to update by Monday.

Hi @bms63 and @yangc71! I think I misunderstood from our previous discussions that we did not require query variables for ADMH, which is why I had removed it. But I've included the piece of code for deriving the query variables now which was added by @yangc71 earlier. @yangc71 Feel free to edit this if you were planning on updating it further.

@cicdguy @thomas-neitmann Any ideas on why Check Templates action can't find the renv package?

@cicdguy The idea was for renv to pick up development dependencies such as devtools from that file rather than "Depends" in DESCRIPTION. I didn't end up deletign anything from "Depends" so the presence of this file really shouldn't do anything.

@cicdguy Actually confused.  I don't see the Check Templates action anymore

@bms63 Look at the rules here for the check templates workflow: https://github.com/pharmaverse/admiral/blob/devel/.github/workflows/templates.yml#L6-L16
A PR review initiates the workflow but an approval triggers the job.

True!

I thought I had done this

So we get the same error message I have been getting for the last two days after removing admiral.test and admiraldev from lock file.  Removing these cause the man action to fail now.

True!  I thought I had done this

Yeah, but you pushed a bunch of commits after that (aka push events), so the checks API witnessed a new trigger event and overwrote what you saw before.

TIL


Add modified DSIR scripts for general use cases

I was using a machine with many CPU cores and large size of memory to run DSIR.
I split the data pool into many files with similar sizes, also split the target data. The parallelism is on file-level.
I didn't chunk the data here. If the data pool has many different mixed sources, like the Pile, we need to first split the data into different subsets (CommonCrawl, Wikipedia, books, etc) or chunk the data.

I was using a machine with many CPU cores and large size of memory to run DSIR.
I split the data pool into many files with similar sizes, also split the target data. The parallelism is on file-level.
I didn't chunk the data here. If the data pool has many different mixed sources, like the Pile, we need to first split the data into different subsets (CommonCrawl, Wikipedia, books, etc) or chunk the data.

I tested it without chunking the data or splitting the data into different subsets and it turned out to be fine. The reason seems to be that, if we have long documents that are not relevant, the irrelevant tokens will actually contribute negative log importance weight. (instead of accumulating a lot of small, positive weights). For relevant documents, longer documents with more relevant tokens will be preferred over short but relevant documents. The bad case is actually that some short irrelevant documents can end up in the selected documents since there aren't enough tokens that contribute negative weight and some tokens can get lucky and have positive weight due to hash collisions.

I was using a machine with many CPU cores and large size of memory to run DSIR.
I split the data pool into many files with similar sizes, also split the target data. The parallelism is on file-level.
I didn't chunk the data here. If the data pool has many different mixed sources, like the Pile, we need to first split the data into different subsets (CommonCrawl, Wikipedia, books, etc) or chunk the data.

I tested it without chunking the data or splitting the data into different subsets and it turned out to be fine. The reason seems to be that, if we have long documents that are not relevant, the irrelevant tokens will actually contribute negative log importance weight. (instead of accumulating a lot of small, positive weights). For relevant documents, longer documents with more relevant tokens will be preferred over short but relevant documents. The bad case is actually that some short irrelevant documents can end up in the selected documents since there aren't enough tokens that contribute negative weight and some tokens can get lucky and have positive weight due to hash collisions.

Thank you @sangmichaelxie ! I also noticed similar results. The worst retrieved documents are the short irrelevant documents.

I was using a machine with many CPU cores and large size of memory to run DSIR.
I split the data pool into many files with similar sizes, also split the target data. The parallelism is on file-level.
I didn't chunk the data here. If the data pool has many different mixed sources, like the Pile, we need to first split the data into different subsets (CommonCrawl, Wikipedia, books, etc) or chunk the data.

I tested it without chunking the data or splitting the data into different subsets and it turned out to be fine. The reason seems to be that, if we have long documents that are not relevant, the irrelevant tokens will actually contribute negative log importance weight. (instead of accumulating a lot of small, positive weights). For relevant documents, longer documents with more relevant tokens will be preferred over short but relevant documents. The bad case is actually that some short irrelevant documents can end up in the selected documents since there aren't enough tokens that contribute negative weight and some tokens can get lucky and have positive weight due to hash collisions.

Thank you @sangmichaelxie ! I also noticed similar results. The worst retrieved documents are the short irrelevant documents.

I ended up incorporating a default filter on length, excluding all documents with less than 100 tokens. Hopefully that is enough to get good statistics on most documents.


fix: skip processing applied checkouts

Added additional metrics to track sync latency between frontier and billing engine.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

0 of 31 (0.0%)  changed or added relevant lines in 6 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.003%) to 9.467%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

internal/store/postgres/billing_checkout_repository.go
0
1
0.0%

billing/customer/service.go
0
4
0.0%

billing/invoice/service.go
0
4
0.0%

billing/subscription/service.go
0
4
0.0%

internal/metrics/stripe.go
0
8
0.0%

billing/checkout/service.go
0
10
0.0%

Files with Coverage Reduction
New Missed Lines
%

internal/metrics/stripe.go
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>6:
-0.003%

Covered Lines:
10263

Relevant Lines:
108403

💛  - Coveralls


Bad Request on get_mute

With TX-55AS650E the command get_mute return a bad request
File "/usr/local/lib/python3.8/site-packages/panasonic_viera/__init__.py", line 533, in get_mute res = self.soap_request(URL_CONTROL_DMR, URN_RENDERING_CONTROL, File "/usr/local/lib/python3.8/site-packages/panasonic_viera/__init__.py", line 245, in soap_request raise e # Pass to the next handler File "/usr/local/lib/python3.8/site-packages/panasonic_viera/__init__.py", line 241, in soap_request res = urlopen(req, timeout=5).read() File "/usr/local/lib/python3.8/urllib/request.py", line 222, in urlopen return opener.open(url, data, timeout) File "/usr/local/lib/python3.8/urllib/request.py", line 531, in open response = meth(req, response) File "/usr/local/lib/python3.8/urllib/request.py", line 640, in http_response response = self.parent.error( File "/usr/local/lib/python3.8/urllib/request.py", line 569, in error return self._call_chain(*args) File "/usr/local/lib/python3.8/urllib/request.py", line 502, in _call_chain result = func(*args) File "/usr/local/lib/python3.8/urllib/request.py", line 649, in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 400: Bad Request

Ill'add - version 0.3.6, i'll check soon with 0.4.0


unused & deprecated dependency? Please remove if so.

Expected behavior
No warnings when installing the package.
Actual behavior
warning @kikinteractive/kik ><EMAIL_ADDRESS>Use uuid module instead
Enviromen`t Details
> yarn list @kikinteractive/kik
yarn list v0.22.0
└─<EMAIL_ADDRESS>Steps to reproduce the behaviour

yarn add @kikinteractive/kik

I wanted to upgrade it and create a pull request, but it's probably an old dependency which isn't used anywhere. Am I right or it's something I didn't see? If you don't need it, please remove it. Thank you.

Good catch, here is a fix https://github.com/kikinteractive/kik-node/pull/47
Will probably wait for other additions before pushing that to npm.


fixes #3

Has this PR been merged to the master branch? I still got the same error.

Hi @HandyKurniawan I don't think this repo is maintained anymore - and I didn't do a good job with this pull request either :)
I think the change you need to make to fix your bug is found [here] (https://github.com/prakashmurali/TriQ/pull/4/commits/744c41de70facc996a39dea44737560fc5647b15).


Update mysql-connector-java to 8.0.25

Updates mysql:mysql-connector-java from 8.0.21 to 8.0.25.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "mysql", artifactId = "mysql-connector-java" } ]

labels: test-library-update, semver-patch

Superseded by #190.


Documentation should mention jar availability

Original report on BitBucket by Carsten Thiel (GitHub: schildwaechter).

The current documentation does not mention the possibility to use the jar, this should be added including the reference to the use.

Documentation now mentions how to import the JAR into a new Java application


clean up stuff not used

Gah, tripped up by the new-qmedia thing.  Once again, can we please just delete this repo!?


does anyone use Infinix ?

hello guys,
I have a Redmi 9c, and i want to buy a new phone. Now I'm confused about 2 phones the infinix hot 30 and the Vivo Y22.
And I'm not comparing the hardware. I'm now comparing the software.
Witch one has a better system? the Xos from Infinix or the Funtouch from Vivo ?

Hello, personally I would not choose any of them as you can experience very similar non-standard app killing on both of them.. We have more killing reports from Xiaomi, but this due to their high market share, we also have a lot reports from Vivo and Infinix and for Infinix there aren't any known steps to prevent the system to kill apps so far..
Currently phones which behave in a standard way are Pixel phones, Nokia, HTC, probbaly also Motorola phones but soem of them are suffering from memory leaks... Samsung has announces that they will approach background process management in a standard way starting with Android 14, so there is hope the new wave of Samsung devices will behave properly, but we don't know yet...
But from DKMA perspective I cannot recommend either Xiaomi, Vivo or Infinix..


Make paml:Primitive disjointWith uml:Activity.

According to the paper, Activity is intended to capture only complex
behaviors, so should be a class that is disjoint with activity.

Note that you'll want to check to make certain that sbol_factory isn't confused by this. I don't think it should be a problem, as sbol_factory ought to ignore this and make things disjoint in Python by default. We haven't ever had a test case like this before, however.

Looks like SBOL factory does not like this, but ...  Here's the error message, from the check, which I don't really understand.
E   ImportError: cannot import name 'parser' from 'rdflib_jsonld' (/opt/hostedtoolcache/Python/3.9.8/x64/lib/python3.9/site-packages/rdflib_jsonld/__init__.py)

@bbartley -- any idea?  See https://github.com/Bioprotocols/paml/runs/4291173573?check_suite_focus=true

OK: there's a confound.  The main branch of PAML is broken, as far as I can tell. See https://github.com/Bioprotocols/paml/runs/4291378318?check_suite_focus=true
I suspect that this is because of RDFLIB updates, but I can't say for sure.
But I believe all merging for this repo should go on hold until our test suite is fixed.

This branch has gone stale and bringing it up to date was causing beaucoup CI issues. Since the change was simple, I created a fresh PR here: #105


support arm docker

@iam4x any chance for an arm (raspberrypi) build for armhf?
https://hub.docker.com/u/arm32v7 -  we can base it off of this?

What about arm32v6 (marvel)? WD Mycloud users would be happy :)

Docker images are published for arm, theses are supported archs => linux/amd64, linux/arm/v6, linux/arm/v7, linux/arm64


HPC documentation issue

In the process of trying to adapt the tacc scripts to the Indiana research cluster I ran across a few obvious deficiencies in our documentation.

The user manual section titled "Deploy MsPASS on HPC" needs some work.   It has a bunch of stuff specific to TACC that need to be made more generic.   I have to say I also found it confusing when I was trying to use it to adapt scripts we have to the IU system.   I can and will commit to fix these pages when I've finished adapting the scripts to the IU cluster but I wanted to put that out there for the record as something we need to fix.
There is an ambiguity I think may just be a documentation problem, but one I can't address because I do not know the answer.  It is a fundamental one for all modern HPC systems and that is the issue of requesting nodes versus cores.  The pages on slurm at IU note there is an option in the slurm --ntask_per_node.  The system I'm trying to configure has dual 12-core cpus (24 total).   What I have no idea is what a "task" as defined by slurm relates to dask/spark threads allowed per worker node?   I would guess that bcause we use singularity there is only one real "task" per node as far as slurm is concerned but that is a pure guess.   I think it would be helpful to put an answer to this question for the record here on github.
I am a bit befuddled by why the ssh tunnel setup in the tacc distributed script.  I cannot make it work on our system although that section of that shell script is a perfect example of one my favorite sayings about much of the modern IT world:  it is a true incantation.  What I need here for the record is statement of why that is necessary, how to tell if my local cluster needs it, and what exactly is needed to set it up.   Pretty much anyone but a local hpc guru would almost certainly be equally confused by our current example that has only a minimal comment explaining what it is aiming to do.

So, this issue needs a box or two of explanation.  The followup is all in the documentation and probably improved comments in the example scripts.

Yeah, I can see it will be difficult to run on different hpc systems because the job script is highly dependent on how the hpc system is configured. It is difficult to make a universal script.
With that said, I could answer your questions 2 and 3 here, and we definitely should improve the documentation accordingly.

The word "task" in the context of Slurm really means the MPI task. Therefore, this is almost completely irrelevant to MsPASS as it is not an MPI program. However, on some HPC systems, Slurm is configured to allocate resources based on the number of tasks requested in the sbatch command, which is the case for Big Red 3 (I am not sure about Big Red 200 but would guess so). This Slurm configuration is called node sharing, and if you don't request for all 24 cores (by setting the task number to 24), Slurm will run your job on a node sharing the cores left with other jobs. Since we do want the full node for Dask/Spark to run in parallel, you probably want to set --ntask_per_node to 24 here. Note that this option is meaningless to TACC's systems because there is no node-sharing there.

The SSH tunnel is used to access the port opened by Jupyter on the compute node from the login node. This is because user accesses the Jupyter from an external IP address to the HPC cluster. Usually, the firewall policy is setup to block such external access for security reasons. That's why it is always a good idea to use the SSH tunnel from the login node as a hop to access the Jupyter Notebook on the compute node.

Very helpful.
First on the "task" issue.  That is clearly something important we need to add to our documentation.   What you say there is a huge inference from any documentation I've gone through.  How slurm treats dask and spark is not at all clear.  Good to preserve this.
On the ssh tunnel point,  given what you said I think IU’s “RED” that uses Thinlinc to run a window manager on the head note makes the ssh tunnel unnecessary.   I used that functionality already to get the single mode version running.   The confusion I had about ssh running we need to make sure we clarify.  Specifically that the tunnel is needed only for remote connections to the container running the jupyter notebook.  A corollary, I think, is if you are running a notebook in batch mode the tunnel is not needed either.  Is that true?
When I get this working on the IU system I'll update this wrt the need for the tunnel in that context.  I think, however, that the IU RED system is kind of novel and not something one is likely to find on other HPC clusters.

A corollary, I think, is if you are running a notebook in batch mode the tunnel is not needed either. Is that true?
Yes!

I think this issue is solved by pull request 385 which should be merged in the next week. I'm closing this issue.

See previous comment


Typo + small wording fix

Obvious fix

I'm wondering if the "not maintained by Chef" is accurate anymore. Stuart Preston looks like a primary contributor to that driver, and he is on the community engineering team here at Chef.


Adding html objects into Jodit editor

Hey,
I would like to ask if there is any example of adding html (tables) by using shortcuts into Jodit editor.
For example, one shortcut for control is generated and into dom is loaded hidden html for the table which needs to be added to the editor.
It looks like this :
this is shortcut for the table:
[Details] and into hidden object :  this needs to be loaded when [Details] is dropped into jodit
Thank you in advance for your help!

I feel like I want some answers on this subject too although I'm not sure i fully understand the original request.
Jodit version 3.1
linux mint18
firefox version 65 64-bit
I'm trying to add pre-written html to the edit area defined by class .jodit_wysiwyg
I'm using jquery, response.post is a variable containing html from a database.
I can confirm the html is present because I am also adding it to a preview area and that shows the html correctly.
My jquery code:
var wysiwyg = $(document).find('.jodit_wysiwyg');
wysiwyg.html(response.post);

I do not get any new content in the mentioned div. Is this possible to do, or am I not doing it right?
Any help would be appreciated.

I'm wondering the same thing.

Hi
<textarea id="herewillbeeditor"></textarea>

window.joditEditor = new Jodit('#herewillbeeditor');

Somewhere in your code
var wysiwyg = Jodit.instances['herewillbeeditor'];
wysiwyg.value = response.post;
// or
window.joditEditor =  response.post;

@xdan personally when I try to add HTML (that came encoded through an HTML database) and try to parse it into Jodit :
editor.value(content);

While content having HTML encoded values, it doesn't get decoded when I add it to Jodit. Any idea why?
var editor = new Jodit('#jodit');
editor.value = '%0D%0A%3Ctable+style%3D%22width%3A+100%25%3B%22%3E%3Ctbody //...etc';

Jodit does not decode your data. Decode data and paste in Jodit
var editor = new Jodit('#jodit');
const html = someDecoder(''%0D%0A%3Ctable+style%3D%22width%3A+100%25%3B%22%3E%3Ctbody ');
editor.value = html;

decodeURIComponent('%0D%0A%3Ctable+style%3D%22width%3A+100%25%3B%22%3E%3Ctbody')
I think it will be work for your data

@xdan thanks a lot, it worked! :D


Train on custom dataset

Hi,
Can you please guide on how do I train a model on my own custom dataset ?
Thanks for your help!

We recommend you to reformat your dataset as the ETT dataset. Thus, you can directly use the ETT dataloader with only a little tweaks. Also, please make sure you set the data channel as your dataset before initializing the SCINet.
Thanks for your attention.

If there is no further query. We will close this issue.
Thanks for your attention.

If there is no further query. We will close this issue.
Thanks for your attention.

Thanks @VEWOXIC! That worked for me


Update gpgtools-beta.rb

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Removed unneeded postflight.
Postflight would cause the install to hang. Only occurs with new installs.
PR for caskroom/cask gpgtools is #31765 but also applies to gpgtools-beta.
Fix was for #29297, see this comment.

Thank you @commitay.


Implement the assignment of tuple. If there are no controlled types then one copy operation otherwise element-by-element assignment in the loop.

fixed

fixed


Update auth, dynamodb, s3, sqs to 2.17.130

Updates

software.amazon.awssdk:auth
software.amazon.awssdk:dynamodb
software.amazon.awssdk:s3
software.amazon.awssdk:sqs

from 2.17.66 to 2.17.130.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "software.amazon.awssdk" } ]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #834.


Automatically create the tables for the SqlCatalog

Feature Request / Improvement
The table creation process is still manual:
from pyiceberg.catalog import load_catalog

catalog = load_catalog(
    type='sql',
    uri='sqlite:////tmp/database.db'
)

catalog.create_tables()

However, it would be better to check if the table exists by running SELECT 1 FROM iceberg_tables when initializing the catalog. If it raises a NoSuchTableError then we automatically create the tables.

Hi @Fokko
I was interested in contributing to this, but I'm a little bit confused.
I see that Catalog class has this included in the docstring for load_table()
You can also use this method to check for table existence using 'try catalog.table() except NoSuchTableError'.

However, the Catalog.table() method does not exist. I tried calling Catalog.load_table() but I don't think that's exactly getting us what we want (it's not checking if the table
If I were to take this on, I would have to create an abstract method to check if a table exists and then implement it for each class that extends Catalog, right?

Hey @cosmastech Thanks for chiming in here!
The confusion here is between the Iceberg tables in general and the tables used by the SqlCatalog (which uses Alembic). We don't want to auto-create any Iceberg tables.
When you create a new SqlCatalog, there will be no tables in which to store the catalog information. This means that it is specific to the SqlCatalog, and we don't need to create any abstract methods. When initializing a SqlCatalog, we want to fire a query just to check if the two tables (iceberg_namespace_properties and iceberg_tables). Does this help?


Adding a LICENSE file

No comment necessary...

Should probably also add a comment about the license to the README.


subsamplers: move audio rate subsampling to it's own subsampler AudioRateSubsampler

This will need more testing i.e. test if it actually subsamples etc.

also README examples will need to be updated

also test_subsamplers will need to be updated

This PR:

separates audio rate subsampling out from data reader
splits test_audio.py into test_data_reader.py and adds an audio subsampling test to test_subsamplers.py
removes sample_rate from encode_formats

almost 2x speedup from not encoding everything to mp3 and staying at m4a


PLNSRVCE-1090 Run AppStudio e2e tests subset on Pipeline Service PR

This PR is to run subset of AppStudio e2e tests on Pipeline Service PR, which depends on PR #1378

Added CI job named .tekton/stonesoupe-e2e-test.yaml
Extend AWS EC2 instance to m5.2xlarge because Infra-deployment deploying to OCP cluster consume more resources
Build a Docker image named e2e-test-runner for deploying StoneSoup and triggering e2e tests

Signed-off-by: Xin Jiang @xinredhat

CI job named .tekton/stonesoupe-e2e-test.yaml

Shouldn't pipeline name Pipelines as Code CI / stonesoup-e2e-test

As discussed:

Make sure that stonesoup-e2e-test is :heavy_check_mark: .
Then change the pipeline definition so it's run only on merges.

/retest

/test  stonesoup-e2e-test

/test  pipeline-service-upgrade-test

/retest


Does this work on mobile?

Thanks for this plugin TfTHacker. I have this triggering on my daily note along with a few other templater operations. Does your plugin work on mobile? If so, I have not figured out what I'm not doing right.

Hi. Thank you for your kind words. Yes, I use this on my mobile daily. Perhaps create a very simple template for Templater that performs an AI command to see if it works? Perhaps it has something to do with: (1) are your settings syncing? (2) is Templater triggering properly? I am not saying any of these things are a problem but might help with troubleshooting.


Cut release v0.25.1

What's Changed

Double-click to open KCL files can now open multiple windows (#3777)
Extrusion commands are now batched, improving performance (#3764)
Mark Loft as "KCL only" in toolbar, add a link to docs (#3798)
Bug fix: toolbar buttons are clickable again (#3800)
Bug fix: app window is now draggable on sign-in page (#3795)
Bug fix: remove flash of white background in dark mode startup (#3794)
KCL: small refactors to Extrude (#3768)
A bunch of bug fixes and new tests

Gotta get that test un-flaked another time. Smoke test

Smoke tested updater, macOS arm64 and x64, windows arm64 and x64


Fix text.

Docs Build status updates of commit 331c395:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/converters/mathexpressionconverter.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Use purrr::pluck() instead of $

See https://github.com/inbo/camtraptor/pull/322#discussion_r1666779378

Fixed by #331


Updated broken link with reference to RFC-2606

I completed the 3 steps below:

[x] I've read the Contribution Guide.
[x] I've updated the documentation. (refer to this for how to do so).
[x] I enjoyed my time contributing and making developer's life easier :)

@rickkuilman No more DOCUMENTATION/content/guides folder, can you please update it in other place or close PR?


[New feature] Improve import error handling in sonataImport

This modules imports several Python packages I didn't have installed.  The error message I got wasn't useful.  The message should state exactly why the multiple imports failed.
https://github.com/Neurosim-lab/netpyne/blob/development/netpyne/conversion/sonataImport.py

Fix: https://github.com/Neurosim-lab/netpyne/pull/602


core[patch]: Fix injected args in tool signature

Fix injected args in tool signature
Fix another unit test that was using the wrong namespace import in pydantic

Force merging as it's failing due to compatibilty tests using pydantic


[enhancement] search

sometimes I can't find the app i am lookign for, a search icon would be helpful.
It could be part of the grid of app icons, a search icon that looks like an app icon ...
but it lets you search through you installed apps

Good idea, thanks @kyle-ilantzis. Will consider this for a future release

Would be good if it was swipe down to search

Yes, swipe down to search would IMO be a very valuable feature. Right now I use a pie control with search as the only option in an attempt to simulate this.

As a first step, I would like to add a search filter to the apps tab in settings. If this was around, would the having search on the lens view still be desired? All opinions welcome

Absolutely, for me. Although it would be convenient to add a button to
launch a Google search with the typed search phrase.
On Tue, Jan 24, 2017, 1:49 PM Nick Rout<EMAIL_ADDRESS>wrote:

As a first step, I would like to add a search filter to the apps tab in
settings. If this was around, would the having search on the lens view
still be desired? All opinions welcome
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/nicholasrout/lens-launcher/issues/9#issuecomment-274917718,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFmlS3cb298AFLG6LpLeX_9I461nZUcJks5rVlXUgaJpZM4JIhEV
.


Ability to get mouse position while dragging files onto Tauri window

Is your feature request related to a problem? Please describe.
The problem is inherited from winit. In short:
Winit doesn't send any CursorMoved events (nor CursorEntered) before DroppedFile, only immediately after. That's too late, if you want to know the mouse position before DroppedFile is received, e.g. if your app has different drop areas, and you need to know onto which one the files are dropped!
Describe the solution you'd like
Tao should send CursorEntered event as soon as the file-dragging cursor moves over the Tao window, and continuously send CursorMoved events as the cursor moves.
Describe alternatives you've considered
In my imgui-rs based frontend I worked around this by delaying all DroppedFile events until the first CursorMoved event is received, so that at the time of processing DroppedFile, imgui has already received the latest mouse pos. (On Win 8.1, CursorMoved always seems to come 2 frames after DroppedFile.)
// This event processor delays DroppedFile events until the first CursorMoved event is received,
// so that at the time of processing DroppedFile, imgui has the correct mouse pos.
// (On Win 8.1, CursorMoved always seems to come 2 frames after DroppedFile.)
/*
unfixed:
frame 446, DroppedFile: foo.txt
frame 448, CursorMoved: (377.0, 79.0)
desired:
frame 448, CursorMoved: (377.0, 79.0)
frame 448, DroppedFile: foo.txt
*/
#[derive(Default)]
pub struct CursorMovedB4DroppedFile<'a> {
	event_queue: Vec<Event<'a, ()>>,
	waiting_for_cursor_moved_event: bool,
}

impl<'a> CursorMovedB4DroppedFile<'a> {
	// each frame, call push before poll
	fn push(&mut self, ev: Event<'a, ()>) {
		// TODO: respect event's window_id ?
		let move_dropped_file_events_to_end_of_queue = match &ev {
			Event::WindowEvent { event: WindowEvent::DroppedFile(_path), .. } => {
				self.waiting_for_cursor_moved_event = true;
				false
			}
			Event::WindowEvent { event: WindowEvent::CursorMoved { .. }, .. } => {
				self.waiting_for_cursor_moved_event = false;
				true
			}
			_ => false,
		};
		self.event_queue.push(ev);
		if move_dropped_file_events_to_end_of_queue {
			self.event_queue.sort_by_key(|ev| {
				matches!(ev, Event::WindowEvent { event: WindowEvent::DroppedFile(_), .. })
			});
		}
	}

	fn poll(&mut self) -> impl Iterator<Item = Event<'a, ()>> + '_ {
		let waiting_for_cursor_moved_event = self.waiting_for_cursor_moved_event;
		self.event_queue.drain_filter(move |ev| match ev {
			Event::WindowEvent { event: WindowEvent::DroppedFile(_path), .. } => {
				!waiting_for_cursor_moved_event
			}
			_ => true,
		})
	}

	pub fn push_and_poll(&mut self, ev: Event<'a, ()>) -> impl Iterator<Item = Event<'a, ()>> + '_ {
		self.push(ev);
		self.poll()
	}
}

Note that I cannot use this workaround with Tauri because it doesn't let me process the events coming from Tao.
Additional context
Note: My workaround is not a satisfying solution, because in my frontend, while the user is dragging files and hovering the mouse, I would like to highlight the currently hovered drop area, which is not possible with this workaround because I only receive the CursorMoved event in the same frame as the DroppedFile event(s). But I'd still advocate for including this workaround in Tao if the full fix is infeasible for now, because it's better than having the wrong mouse pos at the time of drop, so that the user is left wondering why the drop area hasn't received the file.
(Currently Tao/winit thinks the mouse pos at the time of receiving DroppedFile is still where it was before the cursor last left the window, which is a totally confusing behavior for the user.)

I will close this since tauri v2 will include the cursor position in the file drop event. tao won't have it for the foreseeable future to keep compatibility with winit but will add it once https://github.com/rust-windowing/winit/pull/2615 lands


Icon size

Is it possible to change the size or shape of the icon to fully display distances greater than 100?
Thank you

@jmbigot It should have been possible by setting width/height via CSS.  But it turned out that L.divIcon in Leaflet 0.7 ignores sizing from CSS unless iconSize is explicitly set to null.
I've added iconSize to the properties passed through to L.divIcon (71764029c5ba2d63bd54bc1a216d70d7716d25d3).  There is an example with CSS on the icon-size branch (15b3d4d9da61b8610ef1f76aed23a73e7395c9c8), and a simpler one with JS in the README (cbc908ec59faf6195e1eb1a56c56c1677c92a62d).

Hello,
Thank you for your prompt response .
I have a new query, In my page is LeafletGpx which builds the polyline,
how do I enter the options?
Here is my example:
trace_gpx = new L.GPX("../parcours_gpx_uscc/"+nom_gpx+".gpx",
{async: true,
polyline_options: {color: "#fe00e3" , weight:5 , opacity: 1.0},
marker_options: {
startIconUrl: 'pin-icon-start.png',
endIconUrl: 'pin-icon-end.png',
shadowUrl: 'pin-icon-transparent.png'
},
}
);
trace_gpx.on('loaded', function(e) { LC.addOverlay(layerGroup
,recup_distance(e.target.get_distance(),e.target.get_name()));});
Thank you for spending some time. I am a new user of Leaflet.
Friendly
Jean-Marie Bigot
Ps: As I do not write very well English I get helped by Google translation.
Le 03/03/2017 à 08:39, Doroszlai, Attila a écrit :

@jmbigot https://github.com/jmbigot It should have been possible by
setting width/height via CSS. But it turned out that |L.divIcon| in
Leaflet 0.7 ignores sizing from CSS unless |iconSize| is explicitly
set to |null|.
I've added |iconSize| to the properties passed through to |L.divIcon|
(7176402
https://github.com/adoroszlai/leaflet-distance-markers/commit/71764029c5ba2d63bd54bc1a216d70d7716d25d3).
There is an example with CSS on the |icon-size| branch (15b3d4d
https://github.com/adoroszlai/leaflet-distance-markers/commit/15b3d4d9da61b8610ef1f76aed23a73e7395c9c8),
and a simpler one with JS in the README (cbc908e
https://github.com/adoroszlai/leaflet-distance-markers/commit/cbc908ec59faf6195e1eb1a56c56c1677c92a62d).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/adoroszlai/leaflet-distance-markers/issues/8#issuecomment-283887146,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AY1enmwpK9zD2O3rImKruq6umEJpSc48ks5rh8PHgaJpZM4MQqwM.

L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus

You can add the options as a member in the polyline_options map:
trace_gpx = new L.GPX("../parcours_gpx_uscc/"+nom_gpx+".gpx", {
	async: true,
	polyline_options: {
		color: "#fe00e3" , weight: 5, opacity: 1.0,
		distanceMarkers: { iconSize: [16, 16] }
	},
        marker_options: ...
});


Trouble with using pretrained checkpoints

I'm getting this error while using any pre-trained checkpoints. I'm new to this. I have searched everywhere but have found no suitable solution. Can someone tell me where's the problem, kindly?
tensorflow.python.framework.errors_impl.NotFoundError: Key Tacotron_model/inference/CBHG_postnet/CBHG_postnet_highwaynet_1/H/bias not found in checkpoint
[[{{node save/RestoreV2}}]]

the neural network is different, the network of the pretrained model is different from the program


Make field name in BenchmarkSetting less confusing

Currently:

The configuration field is used to describe the ML framework (the software).
The accelerator field is sometime used to describe the framework (the software) and sometime the hardware.
The accelerator_desc field has mostly the same value as in accelerator.

This caused confusing in many places, so I propose the following changes:

Rename  configuration field to framework to describe the software used.
Update the accelerator field to describe only the hardware used.
Remove the accelerator_desc field since it mostly has the same value as in accelerator field.

https://github.com/mlcommons/mobile_app_open/blob/775ab8b240b0cecbec575c332372395975ce27c8/flutter/cpp/proto/backend_setting.proto#L36-L55

Let's all try to make the accelerator_desc fields of backend configurations more descriptive.
@freedomtan, @AhmedTElthakeb, @ptt2panda, @mohitmundhragithub

Please just comment the new text for accelerator_desc here in this issue first.
We can discuss later where should we put those texts (in the BenchmarkSetting or in the localized strings of the app)

Since we are all agreed in the meeting that configuration should be changed to framework, I created PRs for it first, other fields will be updated after discussion.


french spell check

Describe the bug
french spell check marks legal and compulsory "contractions" as mistakes.
eg: "pardonnez-moi" is labelled as wrong, first suggestion is "pardonnez moi" which is grammatically wrong.
To Reproduce

write a a text in french language
:set spell spellang=fr
observe the non-sense of the spellchecker

Expected behavior
consistent with french grammar ; this particular behaviour is linked with word inversions in interrogative or invective sentences
"vous pardonnez cette erreur" (you do forgive this error)
interrogative -> " pardonnez-vous cette erreur?" (do you forgive this error?)
invective -> "pardonnez-vous cette erreur!" (forgive yourself this error you have made!)
I don't believe it should be too complicated to fix this. if not, then simply ignore the dash between two valid words and spell-check the words individually
Screenshots
not needed
Environment (please complete the following information):
VIM - Vi IMproved 8.1 (2018 May 18, compilé Jun 16 2019 10:36:31)
Rustines incluses : 1-1486
Modifié par Gentoo-8.1.1486
Compilé par meta@metasph
Énorme version sans interface graphique.
Fonctionnalités incluses (+) ou non (-) :
+acl               +extra_search      +mouse_netterm     -tag_old_static
+arabic            -farsi             +mouse_sgr         -tag_any_white
+autocmd           +file_in_path      -mouse_sysmouse    -tcl
+autochdir         +find_in_path      +mouse_urxvt       +termguicolors
-autoservername    +float             +mouse_xterm       -terminal
-balloon_eval      +folding           +multi_byte        +terminfo
+balloon_eval_term -footer            +multi_lang        +termresponse
-browse            +fork()            -mzscheme          +textobjects
++builtin_terms    +gettext           +netbeans_intg     +textprop
+byte_offset       -hangul_input      +num64             +timers
+channel           +iconv             +packages          +title
+cindent           +insert_expand     +path_extra        -toolbar
-clientserver      +job               -perl              +user_commands
-clipboard         +jumplist          +persistent_undo   +vartabs
+cmdline_compl     +keymap            +postscript        +vertsplit
+cmdline_hist      +lambda            +printer           +virtualedit
+cmdline_info      +langmap           +profile           +visual
+comments          +libcall           -python            +visualextra
+conceal           +linebreak         -python3           +viminfo
+cryptv            +lispindent        +quickfix          +vreplace
-cscope            +listcmds          +reltime           +wildignore
+cursorbind        +localmap          +rightleft         +wildmenu
+cursorshape       -lua               -ruby              +windows
+dialog_con        +menu              +scrollbind        +writebackup
+diff              +mksession         +signs             -X11
+digraphs          +modify_fname      +smartindent       -xfontset
-dnd               +mouse             +startuptime       -xim
-ebcdic            -mouseshape        +statusline        -xpm
+emacs_tags        +mouse_dec         -sun_workshop      -xsmp
+eval              -mouse_gpm         +syntax            -xterm_clipboard
+ex_extra          -mouse_jsbterm     +tag_binary        -xterm_save
fichier vimrc système : "/etc/vim/vimrc"
fichier vimrc utilisateur : "$HOME/.vimrc"
2me fichier vimrc utilisateur : "~/.vim/vimrc"
fichier exrc utilisateur : "$HOME/.exrc"
fichier de valeurs par défaut : "$VIMRUNTIME/defaults.vim"
$VIM par défaut : "/usr/share/vim"
Compilation : x86_64-pc-linux-gnu-gcc -c -I. -Iproto -DHAVE_CONFIG_H     -march=broadwell -O2 -pipe -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Édition de liens : x86_64-pc-linux-gnu-gcc   -Wl,-O1 -L/usr/local/lib -Wl,--as-needed -o vim        -lm -lncurses -lelf -lnsl  -lacl -lattr -ldl
Additional context
fr_CH -utf8 locale is default on the system

Oh yes, this is bad :-( Unfortunately, the French dictionary in Vim is very old and I don't know how to update it since Vim does not support several Hunspell features in more recent versions of the French Hunspell dictionary (https://grammalecte.net/download.php?prj=fr )
This has been discussed already a long time ago, but in my opinion, it would be good if Vim supported the Hunspell format directly, possibly via libenchant (https://github.com/AbiWord/enchant ) so that not only Hunspell is fully supported, but also other dictionary formats.

Hi!
this is more annoying than it is bad ; however, I will look into what
hunspell anjd libenchant are to see how it can be fixed.
I'll give you an update once I know a little bit more on what you're
talking about ;-)
have a nice day!
-D
Dominique Pellé<EMAIL_ADDRESS>a écrit :

Oh yes, this is bad :-( Unfortunately, the French dictionary in Vim
is very old and I don't know how to update it since Vim does not
support several Hunspell features in more recent versions of the
French Hunspell dictionary
(https://grammalecte.net/download.php?prj=fr )
This has been discussed already a long time ago, but in my opinion,
it would be good if Vim supported the Hunspell format directly,
possibly via libenchant (https://github.com/AbiWord/enchant ) so
that not only Hunspell is fully supported, but also other dictionary
formats.
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/vim/vim/issues/4916#issuecomment-529517171

--
The e-mail address used as "sender" is a temporary e-mail address. If
you feel you need to keep contact with me for more than a few weeks or
months, please request a permanent, personal e-mail address to which
to send your messages.

I believe this is more or less a duplicate of #3747 and #846, so closing.

Let's keep this open, the other issues don't mention the problem with dash'ed words in French, that should be checked if a fix is done.

The dictionary used contains many words with embedded "-", but none starting with "pardonnez".  Seems like it was just missing.
If the hunspell dictionary is currently the best, were can it be found?
The current files are from http://dico.savant.free.fr/_download/ which appears to be unmaintained.

sorry if I seem rude, but you seem to know no french at all
therefore your comment must (or should?) be ignored
Quoting Bram Moolenaar<EMAIL_ADDRESS>
The dictionary used contains many words with embedded "-", but none
starting with "pardonnez".  Seems like it was just missing.
If the hunspell dictionary is currently the best, were can it be found?
The current files are from http://dico.savant.free.fr/_download/
which appears to be unmaintained.
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/vim/vim/issues/4916#issuecomment-529580490

--
The e-mail address used as "sender" is a temporary e-mail address. If
you feel you need to keep contact with me for more than a few weeks or
months, please request a permanent, personal e-mail address to which
to send your messages.

sorry if I seem rude, but you seem to know no french at all
therefore your comment must (or should?) be ignored

Huh?  I just mentioned that the dictionary contains many words with an
embedded dash, but not these.  So it looks like they are just missing.
In case it's not clear, I'm referring to the mkspell/hunspell
dictionary, the .dic file.
If you think you know a solution, please let us know.
--
hundred-and-one symptoms of being an internet addict:
231. You sprinkle Carpet Fresh on the rugs and put your vacuum cleaner
in the front doorway permanently so it always looks like you are
actually attempting to do something about that mess that has amassed
since you discovered the Internet.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

sorry if I seem rude, but you seem to know no french at all
therefore your comment must (or should?) be ignored

Huh?  I just mentioned that the dictionary contains many words with an
embedded dash, but not these.  So it looks like they are just missing.

nah ; there are words with a dash, but this is a grammatical
"feature". in this case you would need to add every verb in every
tense at each person (in french that is 6 (je, tu, il/elle, nous,
vous, ils/elles) combined with every possible word that can follow
that is totally ridiculous.. the dictionnary's size would explode
(maybe not tenfold but close).

In case it's not clear, I'm referring to the mkspell/hunspell
dictionary, the .dic file.
If you think you know a solution, please let us know.

does the spell thing "know" of what type a word is (noun, verb, adjective...?)
the solution I see is to check the words separately, and based on
their type figure out whether it makes sense to have a dash in between.
The e-mail address used as "sender" is a temporary e-mail address. If
you feel you need to keep contact with me for more than a few weeks or
months, please request a permanent, personal e-mail address to which
to send your messages.

@brammool asked:

If the hunspell dictionary is currently the best, were can it be found?
he current files are from http://dico.savant.free.fr/_download/ which appears to be unmaintained.

The latest French Hunspell dictionary is available at:
https://grammalecte.net/download.php?prj=fr
It has a link to this version from Apr 2019:
http://grammalecte.net/download/fr/hunspell-french-dictionaries-v6.4.1.zip
It is well maintained, but as I wrote earlier, Vim does not
cope with enough Hunspell features to import it last time
I checked. Of course if you or someone else figure out
how to change vim so that it can be imported, it would be
great.
The zip file contains a few Hunspell dictionaries. This one in
the zip file includes all variants, which would be the ideal one
for Vim in my opinion:
  fr-toutesvariantes.aff
  fr-toutesvariantes.dic

@brammool asked:

If the hunspell dictionary is currently the best, were can it be found?
he current files are from http://dico.savant.free.fr/_download/
which appears to be unmaintained.

The latest French Hunspell dictionary is available at:
https://grammalecte.net/download.php?prj=fr
It has a link to this version from Apr 2019:
http://grammalecte.net/download/fr/hunspell-french-dictionaries-v6.4.1.zip

Thanks.

It is well maintained, but as I wrote earlier, Vim does not
cope with enough Hunspell features to import it last time
I checked. Of course if you or someone else figure out
how to change vim so that it can be imported, it would be
great.
The zip file contains a few Hunspell dictionaries. This one in
the zip file includes all variants, which would be the ideal one
for Vim in my opinion:
  fr-toutesvariantes.aff
  fr-toutesvariantes.dic

So what affix items are missing in Vim?  Everything can be supported in
Vim, but with an unknown amount of work.  Looks like it is using ICONV,
which I still don't fully understand how it's supposed to be used.
Perhaps just filter the text before checking spelling?
I suppose we should ignore those is: and po: additions, they look like
they are for grammar stuff.
--
hundred-and-one symptoms of being an internet addict:
237. You tattoo your email address on your forehead.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

sorry if I seem rude, but you seem to know no french at all
therefore your comment must (or should?) be ignored

Huh?  I just mentioned that the dictionary contains many words with an
embedded dash, but not these.  So it looks like they are just missing.

nah ; there are words with a dash, but this is a grammatical
"feature". in this case you would need to add every verb in every
tense at each person (in french that is 6 (je, tu, il/elle, nous,
vous, ils/elles) combined with every possible word that can follow
that is totally ridiculous.. the dictionnary's size would explode
(maybe not tenfold but close).

So the words that are listed in the dictionary are different?
And you could (sometimes) add another word with a dash perhaps?

In case it's not clear, I'm referring to the mkspell/hunspell
dictionary, the .dic file.
If you think you know a solution, please let us know.

does the spell thing "know" of what type a word is (noun, verb,
adjective...?)
the solution I see is to check the words separately, and based on
their type figure out whether it makes sense to have a dash in between.

With the mkspell/hunspell affix file you can define rules how words are
made with prefixes, affixes and compounding. In the end they are one
word.  Not considering the dash to be part of the word and checking the
word before and after it separately would most likely tolerate too many
combinations.
Still looking for a more up-to-date French spell file, in hunspell
format.
--
hundred-and-one symptoms of being an internet addict:
236. You start saving URL's in your digital watch.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Quoting Bram Moolenaar<EMAIL_ADDRESS>

sorry if I seem rude, but you seem to know no french at all
therefore your comment must (or should?) be ignored

Huh?  I just mentioned that the dictionary contains many words with an
embedded dash, but not these.  So it looks like they are just missing.

nah ; there are words with a dash, but this is a grammatical
"feature". in this case you would need to add every verb in every
tense at each person (in french that is 6 (je, tu, il/elle, nous,
vous, ils/elles) combined with every possible word that can follow
that is totally ridiculous.. the dictionnary's size would explode
(maybe not tenfold but close).

So the words that are listed in the dictionary are different?
And you could (sometimes) add another word with a dash perhaps?

let me give you an example, with the verb "manger" ("to eat" an apple)
; this is only for the present tense
je mange (une pomme)
tu manges (une pomme)
il mange (une pomme)
nous mangeons (une pomme)
vous mangez (une pomme)
ils mangent (une pomme)
now all of the these can be inverted, this is usually for questions:
mange-je une pomme? (quite uncommon.. but still valid)
manges-tu une pomme? (from now on this is common)
mange-t-il une pomme? (there is a trick on this one!!)
mangeons-nous une pomme?
mangez-vous une pomme?
mangent-ils une pomme?
now I could say stuff like
mange-moi ça! (eat this [apple] for me!)
mange-toi ça! (eat this for yourself) or (get this in your face!) (the
latter being slang)
mange-lui sa pomme. (eat his apple)
mange-leur leurs pommes (eat their apples)
mange-nous notre pomme (eat our apple)
this was only for the second person of the present tense, so nous you
need to add the same (and possibly quite a number of other valid cases
I forgot) for each person, ie.:
mangez-moi ça!
mangez-vous ça!
mangez-lui sa pomme
mangez-leur leurs pommes
mangez-nous notre pomme
and then
mangeons-moi ça!
mangeons-toi ça!
mangeons-lui sa pomme
mangeons-leur leurs pommes
mangeons-nous notre pomme
etc..
can you see how the size of the dictionary would totally explode? some
of the previous forms are quite rare ; it depends on what verb is
being used, for some there are forms which are very common which are
almost non-existent with others. nonetheless, all are valid.
this makes me wonder... how does spellcheck deal with numbers?
close to 20 years ago I wrote a little PHP code that, given a numeral
input, translates it in full words ; that script works for english,
french (swiss), french (france) and german ; grammatical rules are
defined in an array, an other array being used for exceptions. as far
as I am concerned, it should work with every known language,
possibly requiring a little bit of attention for RTL scripts.
I have never since seen something capable of this, even in
administrations where printed contracts requires the use of full
wording for security purposes. in these cases, numbers are either
spelled digit-by-digit (eg. "one thousand" is spelled "one zero zero
zero") or this is done by hand (I could figure this out based on the
number of mistakes that slip in).

In case it's not clear, I'm referring to the mkspell/hunspell
dictionary, the .dic file.
If you think you know a solution, please let us know.

does the spell thing "know" of what type a word is (noun, verb,
adjective...?)
the solution I see is to check the words separately, and based on
their type figure out whether it makes sense to have a dash in between.

With the mkspell/hunspell affix file you can define rules how words are
made with prefixes, affixes and compounding. In the end they are one
word.  Not considering the dash to be part of the word and checking the
word before and after it separately would most likely tolerate too many
combinations.

this is why the "type" of the word needs to be known ; for some
special cases it may be useful to be able to specify explicitly
invalid letter-words combinations.

Still looking for a more up-to-date French spell file, in hunspell
format.

I will try to check the hunspell format soon, and see if I can find
that php code code numbers again..
The e-mail address used as "sender" is a temporary e-mail address. If
you feel you need to keep contact with me for more than a few weeks or
months, please request a permanent, personal e-mail address to which
to send your messages.

Quoting Bram Moolenaar<EMAIL_ADDRESS>

sorry if I seem rude, but you seem to know no french at all
therefore your comment must (or should?) be ignored

Huh?  I just mentioned that the dictionary contains many words with an
embedded dash, but not these.  So it looks like they are just missing.

nah ; there are words with a dash, but this is a grammatical
"feature". in this case you would need to add every verb in every
tense at each person (in french that is 6 (je, tu, il/elle, nous,
vous, ils/elles) combined with every possible word that can follow
that is totally ridiculous.. the dictionnary's size would explode
(maybe not tenfold but close).

So the words that are listed in the dictionary are different?
And you could (sometimes) add another word with a dash perhaps?

let me give you an example, with the verb "manger" ("to eat" an apple)
; this is only for the present tense
je mange (une pomme)
tu manges (une pomme)
il mange (une pomme)
nous mangeons (une pomme)
vous mangez (une pomme)
ils mangent (une pomme)
now all of the these can be inverted, this is usually for questions:
mange-je une pomme? (quite uncommon.. but still valid)
manges-tu une pomme? (from now on this is common)
mange-t-il une pomme? (there is a trick on this one!!)
mangeons-nous une pomme?
mangez-vous une pomme?
mangent-ils une pomme?
now I could say stuff like
mange-moi ça! (eat this [apple] for me!)
mange-toi ça! (eat this for yourself) or (get this in your face!) (the
latter being slang)
mange-lui sa pomme. (eat his apple)
mange-leur leurs pommes (eat their apples)
mange-nous notre pomme (eat our apple)
this was only for the second person of the present tense, so nous you
need to add the same (and possibly quite a number of other valid cases
I forgot) for each person, ie.:
mangez-moi ça!
mangez-vous ça!
mangez-lui sa pomme
mangez-leur leurs pommes
mangez-nous notre pomme
and then
mangeons-moi ça!
mangeons-toi ça!
mangeons-lui sa pomme
mangeons-leur leurs pommes
mangeons-nous notre pomme
etc..
can you see how the size of the dictionary would totally explode? some
of the previous forms are quite rare ; it depends on what verb is
being used, for some there are forms which are very common which are
almost non-existent with others. nonetheless, all are valid.

I first thought this would be done with suffixes, but it looks like the
BREAK item does something for this:
BREAK 7
BREAK -
BREAK .
BREAK ·
BREAK ^'
BREAK ^‘
BREAK '$
BREAK ’$

When I looked into what hunspell does with BREAK I could not figure out
what it's supposed to do.  The dash is included in WORDCHARS, the
combination of both probably means something.

this makes me wonder... how does spellcheck deal with numbers?

A words starting with digits is ignored, unless there is a matching word
in the dictionary.

close to 20 years ago I wrote a little PHP code that, given a numeral
input, translates it in full words ; that script works for english,
french (swiss), french (france) and german ; grammatical rules are
defined in an array, an other array being used for exceptions. as far
as I am concerned, it should work with every known language,
possibly requiring a little bit of attention for RTL scripts.
I have never since seen something capable of this, even in
administrations where printed contracts requires the use of full
wording for security purposes. in these cases, numbers are either
spelled digit-by-digit (eg. "one thousand" is spelled "one zero zero
zero") or this is done by hand (I could figure this out based on the
number of mistakes that slip in).

--
hundred-and-one symptoms of being an internet addict:
242. You turn down a better-paying job because it doesn't come with
a free e-mail account.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Hi and sorry to revive this issue.
I am trying to use the gramalecte dictionnary file with vim (actually in neovim, but it does not matter here), and I have been encountering some issues.
It seems that the file is not correctly loaded, leading to most (if not all) of the french dictionnary not being imported.
Reproduction:

Download this and unzip it
:mkspell ~/.vim/spell/fr-gramalecte /path/to/fr-toutevariantes
Open a french file like this one
:set spell spelllang=fr
Observe there are no errors
:set spelllang=fr-gramalecte
Observe that there are errors

You can find here the output of :mkspell.
On a side note (that really doesn't wish to start a flamewar) I wonder how open you would be to integrate into hunspell rather than maintaining a custom spellchecking engine.
From what I see it should be possible to continue detecting SpellRare at least (maybe not SpellLocal but I am not sure), but that would require to contribute (or rewrite) the hunspell C wrapper.
Hopefully we can at least enhance the support for hunspell dictionnaries, which would be of great help for French user (including me !).
Thanks for the time you already invested in this issue, and I would be really interested to help.

Thomas Vigouroux wrote:

Hi and sorry to revive this issue.
I am trying to use the
gramalecte dictionnary
file with vim (actually in neovim, but it does not matter here), and I
have been encountering some issues.
It seems that the file is not correctly loaded, leading to most (if
not all) of the french dictionnary not being imported.
Reproduction:

Download this and unzip it
:mkspell ~/.vim/spell/fr-gramalecte /path/to/fr-toutevariantes
Open a french file like this one
:set spell spelllang=fr
Observe there are no errors
:set spelllang=fr-gramalecte
Observe that there are errors

You can find
here the
output of :mkspell.

I had a quick look, the files appear to use a newer version of the .aff
and .dic files.  You can try to make some changes, or dive into the
spelling code and find out what to ignore.  Acutally supporting more
might be complicated.

On a side note (that really doesn't wish to start a flamewar) I wonder
how open you would be to integrate into hunspell rather than
maintaining a custom spellchecking engine.

Last time I looked (which admittedly is quite a while ago) hunspell was
slow and did not give good suggestions.  Vim uses a trie with is much
faster and the scoring system gives much better suggestions.

From what I see it should be possible to continue detecting
SpellRare at least (maybe not SpellLocal but I am not sure), but
that would require to contribute (or rewrite) the hunspell C wrapper.
Hopefully we can at least enhance the support for hunspell
dictionnaries, which would be of great help for French user (including
me !).

Certainly, I hope we can make this work better.  The core of the
spelling engine is complicated, but changing how the .aff and .dic files
are used should be doable.
--
In many of the more relaxed civilizations on the Outer Eastern Rim of the
Galaxy, "The Hitchhiker's Guide to the Galaxy" has already supplanted the
great "Encyclopedia Galactica" as the standard repository of all knowledge
and wisdom, for though it has many omissions and contains much that is
apocryphal, or at least wildly inaccurate, it scores over the older, more
pedestrian work in two important respects.
First, it is slightly cheaper; and second, it has the words "DON'T PANIC"
inscribed in large friendly letters on its cover.
-- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Okay, I am thus looking into integrating hunspell into vim (using neovim's codebase first, but I'll backport the changes here). I'll try the hunspell patch that was mentionned in this thread, but leverage the 'spelloptions' to integrate that in the codebase in a less breaking way first, and maybe try to move towards a better integration in a second step.
Do you have a precise benchmark you'd like me to try to see if I can make something out of ?

I looked at hunspell docs, and the current C wrapper seems to allow to get the "rarity" of a given, which is nice.
I think that we'd be able to use the 'spellfile' too in some way or another.

Okay, I am thus looking into integrating hunspell into vim (using
neovim's codebase first, but I'll backport the changes here). I'll try
the hunspell patch that was mentionned in this thread, but leverage
the 'spelloptions' to integrate that in the codebase in a less
breaking way first, and maybe try to move towards a better integration
in a second step.

Feel free to have a look, but I'm not making any promises.  AFAIK
hunspell is GPL/LGPL thus distributing it together with Vim is unlikely.
And relying on an installed library is problematic on anything but
popular systems.

Do you have a precise benchmark you'd like me to try to see if I can
make something out of ?

I used to have a list of English misspelled words and the correct word,
so you could check at what position the correctly spelled word was.
After tuning the score for Vim was better than anything else I tried.
However, that's only English.  I haven't been able to find such a list
for other languages.  It also depends a lot on whether a language has a
"soundalike" setup configured.  Does hunspell even support that?
For display speed you can take a long file with plain text and scroll
through it, making sure it's actually drawn, and see how long it takes
to get to the end.  Enable spell checking and disable any other
highlighting.  There probably is a better way, I haven't done this for
years.
--
Apparently, 1 in 5 people in the world are Chinese.  And there are 5
people in my family, so it must be one of them.  It's either my mum
or my dad.  Or my older brother Colin.  Or my younger brother
Ho-Cha-Chu.  But I think it's Colin.
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Feel free to have a look, but I'm not making any promises. AFAIK hunspell is GPL/LGPL thus distributing it together with Vim is unlikely. And relying on an installed library is problematic on anything but popular systems.

So I kind of read that as "You can look into it, but we are not really that interested", so I guess I'll focus my work on neovim instead, sorry.

Do you have a precise benchmark you'd like me to try to see if I can make something out of ?

I ended up finding such a list, and I performed a little benchmark (my complete opinion is reported here, and sorry in advance if I sound harsh on vim). The general summary is that hunspell is faster than 'spell':

For spellchecking the performance are somewhat similar with a slight advantage for hunspell
For suggestions, the advantage is clearly towards hunspell (10x factor)

On a side note, for the specific problem of french: a program can be fast, but if it does not return a useful result, it may be problematic.
Hopefully we can make that change somehow anyway, but I don't think I can be of much help anymore, given the fact that hunspell support will probably never get merged.

So I kind of read that as "You can look into it, but we are not really that interested", so I guess I'll focus my work on neovim instead, sorry.

I don't think this was meant like this, it just makes distributing it together with vim problematic, but I am not even sure this makes sense, if we distribute it with vim, that would mean we would have to make sure to keep it updated and synced with upstream.
I would rather think it should be okay if we are only linking it and the library is available.

Feel free to have a look, but I'm not making any promises. AFAIK hunspell is GPL/LGPL thus distributing it together with Vim is unlikely. And relying on an installed library is problematic on anything but popular systems.

So I kind of read that as "You can look into it, but we are not really that interested", so I guess I'll focus my work on neovim instead, sorry.

That was my feeling from https://github.com/vim/vim/pull/2500 as well. Not that I am bitter or anything.

So, to answer both comments, I'd like to first say I don't want to engage in any big debate around this feature.
I implemented a rough implementation (not all features of spell are supported yet) in https://github.com/neovim/neovim/pull/20131 and performed some benchmarking.
From here it seems that built-in spell is a little faster at spellchecking (but less correct) while being slower at suggestions.
My overall point is that I understand the different constraints that vim has (relying on an external library, and also integrating some c++ to the code base, which is a whole another problem). I can I need help integrating this kind of feature in vim, but I don't think, given the overral reception of this, that I'll try to open that PR myself.
As I said, at no moment I think that not integrating this is a bad thing, or that I feel bitter, it's just that in the end, I don't use vim, so I'll not put too much effort, and painful discussions, into something that I don' t even use.
I'll drop out of this conversation, but as I said earlier, I'll be glad to answer any question about integrating hunspell if you guys want.
Cheers.

@brammool asked:

If the hunspell dictionary is currently the best, were can it be found?
he current files are from http://dico.savant.free.fr/_download/ which appears to be unmaintained.

The latest French Hunspell dictionary is available at:
https://grammalecte.net/download.php?prj=fr
It has a link to this version from Apr 2019:
http://grammalecte.net/download/fr/hunspell-french-dictionaries-v6.4.1.zip
It is well maintained, but as I wrote earlier, Vim does not cope with enough Hunspell features to import it last time I checked. Of course if you or someone else figure out how to change vim so that it can be imported, it would be great.
The zip file contains a few Hunspell dictionaries. This one in the zip file includes all variants, which would be the ideal one for Vim in my opinion:
  fr-toutesvariantes.aff
  fr-toutesvariantes.dic

Yes and I recently imported the version 7.0 fr-toutesvariantes, fr-classique, fr-reforme1999 from grammalecte, to vim spl format, and the result was not annoying, but was regrettably unacceptable and unworkable to spellcheck in French.   The current version apparently dates 14 years ago does work acceptably. (I can't see how that sug file comes in and where/how it was produced). But it would be awesome for the French speaking vim world to be able to choose between the different spelling standards where needed and actually have it work...   (Thanks for vim! its still awesome, just needs some French attention!)

@boydkelly wrote:

The latest French Hunspell dictionary is available at:
https://grammalecte.net/download.php?prj=fr
It has a link to this version from Apr 2019:
http://grammalecte.net/download/fr/hunspell-french-dictionaries-v6.4.1.zip

I actually see version 7.0 at https://grammalecte.net/download.php?prj=fr
http://grammalecte.net/download/fr/hunspell-french-dictionaries-v7.0.zip
This French dictionary is of excellent quality.  There is a community which
maintains it. Myself, I had edited thousands of entries:
https://grammalecte.net/member.php?prj=fr&tab=T&id_user=373
... and others have edited even more entries which are reviewed, discussed
and eventually approved or rejected at https://grammalecte.net/dictionary.php?prj=fr
This Hunspell dictionary from dicollecte/grammalecte is the one used by
LibreOffice, Firefox, Chrome, LanguageTool (a multilingual grammar checker),
Grammalecte (a French grammar checker), etc.
Unfortunately, Vim chokes with it.
Instead Vim uses a very old Hunspell (or mysell?) dictionary.

The zip file contains a few Hunspell dictionaries. This one in the zip file includes all variants,
which would be the ideal one for Vim in my opinion:
fr-toutesvariantes.aff
fr-toutesvariantes.dic

Yes, this one from http://grammalecte.net/download/fr/hunspell-french-dictionaries-v7.0.zip
fr-toutesvariantes.{aff,dic} would ideal. It is also the variant chosen to be imported in
the LanguageTool grammar checker.
I don't know for sure why Vim can not import it.
I have not had the time to try it with Vim in a long time.

@brammool asked:

If the hunspell dictionary is currently the best, were can it be found?
he current files are from http://dico.savant.free.fr/_download/ which appears to be unmaintained.

The latest French Hunspell dictionary is available at:
https://grammalecte.net/download.php?prj=fr
It has a link to this version from Apr 2019:
http://grammalecte.net/download/fr/hunspell-french-dictionaries-v6.4.1.zip
It is well maintained, but as I wrote earlier, Vim does not cope with enough Hunspell features to import it last time I checked. Of course if you or someone else figure out how to change vim so that it can be imported, it would be great.
The zip file contains a few Hunspell dictionaries. This one in the zip file includes all variants, which would be the ideal one for Vim in my opinion:
  fr-toutesvariantes.aff
  fr-toutesvariantes.dic

Yes and I recently imported the version 7.0 fr-toutesvariantes,
fr-classique, fr-reforme1999 from grammalecte, to vim spl format, and
the result was not annoying, but was regrettably unacceptable and
unworkable to spellcheck in French.   The current version apparently
dates 14 years ago does work acceptably. (I can't see how that sug
file comes in and where/how it was produced). But it would be awesome
for the French speaking vim world to be able to choose between the
different spelling standards where needed and actually have it work...
(Thanks for vim! its still awesome, just needs some French attention!)

Can you give examples of what does not work with those spell files?
Did you get any errors while building the .spl file?
--
hundred-and-one symptoms of being an internet addict:
164. You got out to buy software, instead of going out for a beer.
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

I am bilingual but native English, so I do rely on a spell checker when writing French.  That said probably someone like@dpelle will have more comments, but this is a sample of what I found.
spelllang=fr  (This is all correct with the 'old' current vim fr-utf-8.spl files)
Traditional, Reformed
trente et un, trente-et-un
des après-midi,des après-midis
événement,évènement
week-end,weekend
aiguë,aigüe
A bunch of singular nouns don't even work:
des fichiers
un fichier
des stylos
un stylo
spelllang=fr-toutesvariantes  (The modern all variants from hunspell-fr 7.0 grammalecte)  What is in *Bold is reported as misspelled
Traditional, Reformed
trente et un, trente-et-un
des après-midi,des après-midis
événement,évènement
week-end,weekend
aiguë,aigüe
A *bunch of singular nouns don't even work:
des fichiers
un fichier
des stylos
un stylo
And its very strange if you want only reformed spelling
spelllang=fr-reforme1990   (Again Bold is reported as misspelled)
Traditional, Reformed
trente et un, trente-et-un
des après-midi,des après-midis
événement,évènement
week-end,weekend
aiguë,aigüe
A bunch of singular nouns don't even work: (same as toutes variantes)
des fichiers
un fichier
des stylos
un stylo
Thats only just 7 examples, but It is so weird as to be totally ineffective.
I suppose we have to wait till there is proper hunspell support as in the thread above...

@brammool hello :) as i couldn't find a spellchecker for french in neovim that correctly manages hyphen and apostrophes, i've made some changes to spell files from Hunspell to make it work in Vim. Im now pretty happy with it. I've seen many people on the web searching for a better french spell checker, maybe i could put my files somewhere so they could be download from within Vim?

@brammool  Hello :) I have written some spell files for french because I found the default .spl file for french to be unusable (mainly because it considers - and ' as word characters, which should not be the case and leads to many correct words being marked as misspelled). I believe these files (that i of course successfully compiled with mkspell) could be useful for other people, as I have noticed many people searching for a better french spell in Vim. Perhaps I could make my files available for download within Vim? Is there any place i could put them?

Can I get a hold of them personally?   Bizzare that the worderful and major French language has such poor support in vim/nvim....

@brammool Hello :) I have written some spell files for french because I found the default .spl file for french to be unusable (mainly because it considers - and ' as word characters, which should not be the case and leads to many correct words being marked as misspelled). I believe these files (that i of course successfully compiled with mkspell) could be useful for other people, as I have noticed many people searching for a better french spell in Vim. Perhaps I could make my files available for download within Vim? Is there any place i could put them? PS: sorry for my terrible english

@thjbdvlt https://github.com/vim/vim/issues/12730

We don't have access to the ftp server. I suppose we could commit the files either here at github or I need to provide a way to have them download from the vim.org homepage instead.

I would recommend opening a separate repo under the vim org where you commit them; then people can download them with curl or wget. (We do something similar for caching build dependencies from flaky hosts.)

I suppose we could commit the files either here at github or I need to provide a way to have them download from the vim.org homepage instead.

if that didnot req modification under git, or a changelog was  good enough, then download from vim.org should be a standard/preferred way.

Can I get a hold of them personally? Bizzare that the worderful and major French language has such poor support in vim/nvim....

of course! i've just put them in a repo i've just create. don't hesitate to tell me if they're not satisfying for you! or if some choices i've made seems bad to you.

@brammool Hello :) I have written some spell files for french because I found the default .spl file for french to be unusable (mainly because it considers - and ' as word characters, which should not be the case and leads to many correct words being marked as misspelled). I believe these files (that i of course successfully compiled with mkspell) could be useful for other people, as I have noticed many people searching for a better french spell in Vim. Perhaps I could make my files available for download within Vim? Is there any place i could put them? PS: sorry for my terrible english

@thjbdvlt #12730

I didn't know. it is so sad. he did wonderful things. thank you for the information.

thank you all for your answers and suggestions! i'll try to put them at vim.org :)

A separate download section on vim.org may be part of the new homepage effort . For now I could place it here manually: https://www.vim.org/downloads/
but of course this doesn't scale. Importing the existing spell file dictionary into a new git repo is probably the better approach (as suggested). I'll try to get to that (and then you could create a PR over there)


remove Gemfile.lock from omnibus

CI/CD - let it float, fix it when it breaks

:rocket: :guitar: :+1:


RaisedButton in a Column hides all following Widgets

RaisedButton seems to be hiding all following widgets in a Column (sample repo)

Column(
    mainAxisSize: MainAxisSize.min, // this will show that space up by widgets after RaiseButton
    children: <Widget>[
        Text("1"),
        Text("2"),
        Text("3"),
        RaisedButton(
        child: Text("Button"),
        onPressed: null,
        ),
        Text("4"),
        Text("5"),
        Text("6"),
        Icon(Icons.ac_unit),
        Container(
        color: Colors.greenAccent, // this container and it's background are invisible...
        child: Text("where am i?"),
        ),
    ],
),

Steps to Reproduce
Sample repo replicating the issue

Create a Column
Add elements such as Text
Insert a RaisedButton* in the middle
All** widgets after the RaiseButton seem to be hidden but space is taken up for them

*Not sure if it is limited to RaiseButton but it's all I've seen so far
**I tried Text, Container, Icon, etc.
Logs
Flutter Run Verbose
Output can be seen here
Analyze
Analyzing inspect_column_button_issue...
No issues found! (ran in 1.2s)

Doctor
[✓] Flutter (Channel master, v0.5.6-pre.43, on Mac OS X 10.13.5 17F77, locale en-US)
    • Flutter version 0.5.6-pre.43 at /Users/ashton/development/flutter/flutter
    • Framework revision 65069ed4de (3 days ago), 2018-06-21 13:01:55 -0700
    • Engine revision 549c855e89
    • Dart version 2.0.0-dev.63.0.flutter-4c9689c1d2

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /Users/ashton/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.4.1, Build version 9F2000
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.0

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 25.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] VS Code (version 1.24.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 2.14.0

[✓] Connected devices (1 available)
    • iPhone SE • A2F5F4F5-A516-4A69-A3A2-088D43E61B78 • ios • iOS 11.4 (simulator)

• No issues found!

Running flutter upgrade resolved this problem!
Ugh, sorry for the needless issue

@ashtonthomas no worries.  Thanks for reporting 👍


PCM audio cannot be recognized.

Describe the bug
PCM audio cannot be recognized by sdk 1.3.1.
To Reproduce
Steps to reproduce the behavior:
In C++ sample, when i feed mono 16bit/16KHz pcm file via AudioConfig::FromWavFileInput() in SpeechContinuousRecognitionWithFile (), exceptions are thrown as invalid header.  Same issue in Python samples and speech device SDK.
Expected behavior
PCM audio shall be recognized per AudioConfig::FromWavFileInput() declaration
Version of the Cognitive Services Speech SDK
1.3.1
Platform, Operating System, and Programming Language

OS: Windows 10 Enterprise
Hardware - x64
Programming language: C++, Python
Browser: N/A

Additional context

callstack, output and audio(contained in zip file) attached.

Callstack and Output.txt
Sample PCM audio: signed 16bit, little-endian, mono, 16K Hz

The Speech SDK only understands PCM-encoded wave files, i.e. a WAV header needs to be present in the file. This doesn't seem to be the case for your sample audio file. Can you try adding a header to your data, or using a different file like our sample? Thanks!

Got it, thanks.
Suggest 1 is more clarification in doc AudioConfig::FromWavFileInput() declaration. And suggest 2 is to support raw pcm directly :)

We'll clarify in the docs. If you are working with raw PCM audio, maybe the PullAudioInputStream and PushAudioInputStream are handy as well.


Project Requirements: quality README

AS A developer
I WANT to have a quality README (with unique name, description, technologies used, screenshot, and link to deployed application).
SO THAT we can follow the project requirements.

README satisfies project MVP


Add new URL path helpers

Having a function that can return both a string and a psuedo-boolean (false) can lead to unpredictable states. This PR deprecates the Hyde::uriPath() helper and adds two new ones instead, Hyde::qualifiedUrl() and Hyde::hasSiteUrl(), effectively splitting the former into the latter.

Since the refactor to fully use the new helper will involve the article views I first want to add tests for those.


Add: WYDN-DT2

Channel Name
WYDN-DT2
Alternative Names (optional)
No response
Network (optional)
Ion Mystery
Owners (optional)
Word of God Fellowship Inc
Country
US
Subdivision (optional)
US-MA
City (optional)
Lowell
Broadcast Area
s/US-MA
Languages
eng
Categories (optional)
entertainment
NSFW
FALSE
Launched (optional)
No response
Closed (optional)
No response
Replaced By (optional)
No response
Website (optional)
https://daystar.com/
Logo
https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQjYpxzUVryBYUpJKt2cGw-xXkltOtiqS5qiVYSzQi23_sK3U4fQIexnHaGfW7NTpWQeaE&usqp=CAU
Notes
No response

Delete this - misinterpreted info