Textual Inversion M1

This is a PR to get Textual Inversion to work on M1 (use https://github.com/invoke-ai/InvokeAI/issues/517 as a guide)
Please test to make sure it still works on CUDA devices. M1 testers are also welcome!
Steps to get it to work on your machine:

Create a folder (your_folder) with 5 images.

Start training:
python3 ./main.py --base ./configs/stable-diffusion/v1-m1-finetune.yaml -t --actual_resume ./models/ldm/stable-diffusion-v1/model.ckpt --data_root your_folder  -n a_m --gpus 0, --no_test

In my (limited) tests, 0.06 to 0.07 val/loss_simple_ema looks good. You could stop training after that (once the .pt file has been saved, though - there is a 500 step delay between training and saving files). By default, it stops at 6200 steps.

Usage after training:
python3 ./scripts/dream.py --embedding_path "logs/your_folder.../checkpoints/embeddings_gs-4000.pt" (e.g. to use your result from step 4000)
Make sure to use your own (auto-generated) file name (in logs folder)

dream> "a painting of * :3.6 in the style of van gogh" -s 50 -S 166153623 -W 512 -H 512 -C 7.5 -A k_lms

Thanks to @tmm1 @Birch-san @lkewis

@krummrey @netsvetaev @i3oc9i @Vargol @magnusviri feel free to test if you want!

@Any-Winter-4079, got an errors:
Restored from ./models/ldm/stable-diffusion-v1/model.ckpt with 0 missing and 2 unexpected keys
Unexpected Keys: ['model_ema.decay', 'model_ema.num_updates']
Monitoring val/loss_simple_ema as checkpoint metric.
Merged modelckpt-cfg:
{'target': 'pytorch_lightning.callbacks.ModelCheckpoint', 'params': {'dirpath': 'logs/africanmale2022-09-26T20-14-56_a_m/checkpoints', 'filename': '{epoch:06}', 'verbose': True, 'save_last': True, 'monitor': 'val/loss_simple_ema', 'save_top_k': 1, 'every_n_train_steps': 500}}
Traceback (most recent call last):
  File "/Users/artur/stable-diffusion/./main.py", line 896, in <module>
    trainer = Trainer.from_argparse_args(trainer_opt, **trainer_kwargs)
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/pytorch_lightning/trainer/trainer.py", line 2489, in from_argparse_args
    return from_argparse_args(cls, args, **kwargs)
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/pytorch_lightning/utilities/argparse.py", line 72, in from_argparse_args
    return cls(**trainer_kwargs)
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/pytorch_lightning/utilities/argparse.py", line 339, in insert_env_defaults
    return fn(self, **kwargs)
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/pytorch_lightning/trainer/trainer.py", line 485, in __init__
    self._accelerator_connector = AcceleratorConnector(
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/pytorch_lightning/trainer/connectors/accelerator_connector.py", line 201, in __init__
    self._set_parallel_devices_and_init_accelerator()
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/pytorch_lightning/trainer/connectors/accelerator_connector.py", line 519, in _set_parallel_devices_and_init_accelerator
    raise MisconfigurationException(
pytorch_lightning.utilities.exceptions.MisconfigurationException: GPUAccelerator can not run on your system since the accelerator is not available. The following accelerator(s) is available and can be passed into `accelerator` argument of `Trainer`: ['cpu’].

am I doing this right?

@netsvetaev Are you using pytorch-lightning 1.7.5?
pip install pytorch-lightning==1.7.5

@Any-Winter-4079 ok, now this:
Traceback (most recent call last):
  File "/Users/artur/stable-diffusion/./main.py", line 7, in <module>
    import pytorch_lightning as pl
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/pytorch_lightning/__init__.py", line 34, in <module>
    from pytorch_lightning.callbacks import Callback  # noqa: E402
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/pytorch_lightning/callbacks/__init__.py", line 26, in <module>
    from pytorch_lightning.callbacks.pruning import ModelPruning
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/pytorch_lightning/callbacks/pruning.py", line 30, in <module>
    from pytorch_lightning.core.module import LightningModule
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/pytorch_lightning/core/__init__.py", line 16, in <module>
    from pytorch_lightning.core.module import LightningModule
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/pytorch_lightning/core/module.py", line 41, in <module>
    from pytorch_lightning.loggers import Logger, LoggerCollection
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/pytorch_lightning/loggers/__init__.py", line 23, in <module>
    from pytorch_lightning.loggers.tensorboard import TensorBoardLogger
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/pytorch_lightning/loggers/tensorboard.py", line 26, in <module>
    from torch.utils.tensorboard import SummaryWriter
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/torch/utils/tensorboard/__init__.py", line 12, in <module>
    from .writer import FileWriter, SummaryWriter  # noqa: F401
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/torch/utils/tensorboard/writer.py", line 9, in <module>
    from tensorboard.compat.proto.event_pb2 import SessionLog
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/tensorboard/compat/proto/event_pb2.py", line 8, in <module>
    from google.protobuf import descriptor as _descriptor
  File "/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/google/protobuf/descriptor.py", line 47, in <module>
    from google.protobuf.pyext import _message
ImportError: dlopen(/Users/artur/miniconda3/envs/ldm10/lib/python3.10/site-packages/google/protobuf/pyext/_message.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace '__ZN6google8protobuf15FieldDescriptor12TypeOnceInitEPKS1_'

I recall that's a famous protobuf issue. I googled it. The solution was to downgrade protobuf.

Yes, protobuf                  3.19.5

I added a step.
Change self.max_vectors_per_token = num_vectors_per_token to
self.max_vectors_per_token = 6 in embedding_manager.py for a quick fix. Or, the right fix, which is to update v1-inference.yaml
I haven't added it to the PR yet because if I change v1-inference.yaml that may affect CUDA devices too (?).

I have updated v1-inference.yaml to use num_vectors_per_token: 6 which I forgot to add. Thanks @tmm1 !
It shouldn't affect regular inference, whether it is for CUDA or MPS.

@Any-Winter-4079;

In my (limited) tests, 0.06 to 0.07 val/loss_simple_ema looks good.

I know (sort of) what the words mean, but I don't know how to check it 😁

@Any-Winter-4079;
Administrivia note - too many commits. Please do an interactive rebase to flatten related commits into one.

@Any-Winter-4079;

In my (limited) tests, 0.06 to 0.07 val/loss_simple_ema looks good.

I know (sort of) what the words mean, but I don't know how to check it 😁

You can check in logs/africanmale.../csv/version_0/metrics.csvwhere africanmale... is the name of the project (auto-generated).
It's also printed during training, e.g.
Epoch 0, global step 500: 'val/loss_simple_ema' was not in top 1 or
Epoch 1, global step 1000: 'val/loss_simple_ema' reached 0.08417 (best 0.08417), saving model to...

@Any-Winter-4079;
Administrivia note - too many commits. Please do an interactive rebase to flatten related commits into one.

Yeah, the (bad) way I do it is, in my computer I have all sorts of changes/tests, so to do a PR and make sure I don't introduce anything undesired, I use the Github website, where I keep a clean copy of this repo (forked).
So on the website, instead of git add . or git add file file... I just edit the file. That means committing one by one :)
Can I do an interactive rebase from here, without the CLI? Just to avoid keeping 2 copies of the same repo on my computer.

Maybe git add -p will help you in the future. It would be nice to have real commits that are grouped by subject across files, instead of these generic Update <filename> messages.

@Any-Winter-4079;

Can I do an interactive rebase from here, without the CLI

Not that I'm aware of...
@tmm1;

It would be nice to have real commits

A kindred spirit!

@tildebyte @tmm1 done! Hope I didn't mess anything up :)

I have pytorch-lightning==1.7.5 and protobuf==3.19.15 and still get this error:
(ldm) ~/D/C/stable-diffusion ❯❯❯ python3 ./main.py --base ./configs/stable-diffusion/v1-m1-finetune.yaml -t --actual_resume ./models/ldm/stable-diffusion-v1/model.ckpt --data_root africanmale -n a_m --gpus 0, --no_test
Traceback (most recent call last):
  File "/Users/spencer/Documents/Code/stable-diffusion/./main.py", line 7, in <module>
    import pytorch_lightning as pl
  File "/opt/homebrew/Caskroom/mambaforge/base/envs/ldm/lib/python3.10/site-packages/pytorch_lightning/__init__.py", line 34, in <module>
    from pytorch_lightning.callbacks import Callback  # noqa: E402
  File "/opt/homebrew/Caskroom/mambaforge/base/envs/ldm/lib/python3.10/site-packages/pytorch_lightning/callbacks/__init__.py", line 26, in <module>
    from pytorch_lightning.callbacks.pruning import ModelPruning
  File "/opt/homebrew/Caskroom/mambaforge/base/envs/ldm/lib/python3.10/site-packages/pytorch_lightning/callbacks/pruning.py", line 30, in <module>
    from pytorch_lightning.core.module import LightningModule
  File "/opt/homebrew/Caskroom/mambaforge/base/envs/ldm/lib/python3.10/site-packages/pytorch_lightning/core/__init__.py", line 16, in <module>
    from pytorch_lightning.core.module import LightningModule
  File "/opt/homebrew/Caskroom/mambaforge/base/envs/ldm/lib/python3.10/site-packages/pytorch_lightning/core/module.py", line 41, in <module>
    from pytorch_lightning.loggers import Logger, LoggerCollection
  File "/opt/homebrew/Caskroom/mambaforge/base/envs/ldm/lib/python3.10/site-packages/pytorch_lightning/loggers/__init__.py", line 23, in <module>
    from pytorch_lightning.loggers.tensorboard import TensorBoardLogger
  File "/opt/homebrew/Caskroom/mambaforge/base/envs/ldm/lib/python3.10/site-packages/pytorch_lightning/loggers/tensorboard.py", line 26, in <module>
    from torch.utils.tensorboard import SummaryWriter
  File "/opt/homebrew/Caskroom/mambaforge/base/envs/ldm/lib/python3.10/site-packages/torch/utils/tensorboard/__init__.py", line 12, in <module>
    from .writer import FileWriter, SummaryWriter  # noqa: F401
  File "/opt/homebrew/Caskroom/mambaforge/base/envs/ldm/lib/python3.10/site-packages/torch/utils/tensorboard/writer.py", line 9, in <module>
    from tensorboard.compat.proto.event_pb2 import SessionLog
  File "/opt/homebrew/Caskroom/mambaforge/base/envs/ldm/lib/python3.10/site-packages/tensorboard/compat/proto/event_pb2.py", line 8, in <module>
    from google.protobuf import descriptor as _descriptor
  File "/opt/homebrew/Caskroom/mambaforge/base/envs/ldm/lib/python3.10/site-packages/google/protobuf/descriptor.py", line 47, in <module>
    from google.protobuf.pyext import _message
ImportError: dlopen(/opt/homebrew/Caskroom/mambaforge/base/envs/ldm/lib/python3.10/site-packages/google/protobuf/pyext/_message.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace (__ZN6google8protobuf15FieldDescriptor12TypeOnceInitEPKS1_)

Is there another version of protobuf I should have installed for this PR?

I have pytorch-lightning==1.7.5 and protobuf==3.19.15 and still get this error:

Mine is working with this versions:
protobuf==3.20.1
pytorch-lightning==1.6.5

The mac requirement text file has
protobuf==3.19.4
I know that works here.

I have pytorch-lightning==1.7.5 and protobuf==3.19.15 and still get this error:

Mine is working with this versions:
protobuf==3.20.1 pytorch-lightning==1.6.5

Make sure your're not using CPU though. I couldn't get it to run on GPU with 1.6.5. But 1.7.5:
GPU available: True (mps), used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
HPU available: False, using: 0 HPUs

@psychedelicious yeah, try 3.19.4. Requirement is:
Requirement already satisfied: protobuf<3.20,>=3.9.2
@tmm1 what protobuf version are you using?
I can use 3.19.5 fine, but if 3.19.4 works for everyone then I'll update environment-mac.yaml to use that one

I have pytorch-lightning==1.7.5 and protobuf==3.19.15 and still get this error:

Mine is working with this versions:
protobuf==3.20.1 pytorch-lightning==1.6.5

Make sure your're not using CPU though. I couldn't get it to run on GPU with 1.6.5. But 1.7.5:
GPU available: True (mps), used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
HPU available: False, using: 0 HPUs

1.6.5:
GPU available: True (mps), used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
HPU available: False, using: 0 HPUs

@skurovec does it train fine? I couldn't get it to run with 1.6.5 and neither could @tmm1 I think (his WIP has 1.7.5).
I'm pretty sure I got something like
Placeholder storage has not been allocated on MPS device!
That's interesting that you can get it to run.

@skurovec does it train fine? I couldn't get it to run with 1.6.5 and neither could @tmm1 I think (his WIP has 1.7.5). I'm pretty sure I got something like Placeholder storage has not been allocated on MPS device! That's interesting that you can get it to run.

Looks like it. I had this error Placeholder storage has not been allocated on MPS device!
But when added --gpus 0, option, it worked.
Also it seems slow. About 1.5 hour per epoch.
I am training it on photos of myself, and after 2800 steps SD generates images looking kinda like me.

@Any-Winter-4079
First try was 4 images
Now I am trying with 8

1.5h is 5400s. So, with 8 images you are getting 808 steps per epoch (5400s), or 6.68s/it?

My bad, only 7 images.
707 steps, 14.09s/it
Currently 2 hours/ 72% of first epoch.

M1 model? If 64GB, that doesn't sound right. I'm running 5-7x as quick.

707 steps, 14.09s/it

When you finish training, just to test, try with pytorch-lightning==1.7.5
I'm not sure if you're using CPU somehow or there really is that much performance difference from 32 to 64GB.

@skurovec  Just retrieved the info per epoch. When I trained with 5 512x512 images (closest to your 7 images), I was getting
Epoch 0: 100%|| 505/505 [19:48<00:00,  2.35s/it
Epoch 1: 100%|| 505/505 [19:03<00:00,  2.26s/it
Epoch 2: 100%|| 505/505 [19:20<00:00,  2.30s/it
Epoch 3: 100%|| 505/505 [19:29<00:00,  2.32s/it
Epoch 4: 100%|| 505/505 [19:28<00:00,  2.31s/it
Epoch 5: 100%|| 505/505 [19:50<00:00,  2.36s/it
Epoch 6: 100%|| 505/505 [19:59<00:00,  2.38s/it
Epoch 7: 100%|| 505/505 [19:44<00:00,  2.35s/it
Epoch 8: 100%|| 505/505 [19:30<00:00,  2.32s/i
Epoch 9: 100%|| 505/505 [19:45<00:00,  2.35s/it
Epoch 10: 100%|| 505/505 [20:10<00:00,  2.40s/it
Epoch 11: 100%|| 505/505 [20:14<00:00,  2.41s/it

Overheating is a real thing too. Make sure it doesn't get too hot or times will start getting even worse as epochs advance.

@Any-Winter-4079 That is so fast.
I have stopped it, recreated env with protobuf==3.19.4 and pytorch-lightning==1.7.5
It is almost the same. Maybe 1/2 s per iteration faster. Activity monitor show that python is using GPU around 60% and sometimes jumps to 91%. Temperature is around 54-57C, max was 70C.

Looking at Activity Monitor, I see

What RAM usage do you get? If you get a similar value, that may be the reason (going to swap).
I wonder if it can be optimized to use less RAM. Something like Doggettx optimisations but applied here.

Memory usage is about 25GB on first epoch. But is is going up and down 25-10-25-17-25... and so on.
I have tried 256 images and it is about 7 times faster - 2s/it.

Yeah, you're probably better off with 256x256. There is a small issue I get with 2 characters in my train/val samples, but learning  is decent.

Yes, most of them are two characters. More than 30%.

I've tried:
From https://github.com/Any-Winter-4079/InvokeAI
 * branch            Any-Winter-4079-Textual_Inversion -> FETCH_HEAD
Already up to date.

python3 ./main.py --base ./configs/stable-diffusion/v1-finetune.yaml \
                   --actual_resume ./models/ldm/stable-diffusion-v1/model.ckpt \
                   -t \
                   -n RobertHabeck \
                   --data_root /Users/jan/Downloads/Bundesregierung/RobertHabeck_TI/RobertHabeck  \
                   --init_word 'man'

But I still get:
RuntimeError: Placeholder storage has not been allocated on MPS device!

@krummrey try adding --gpus 0,, it worked for me

@krummrey make sure to have pytorch-lightning==1.7.5 and protobuf==3.19.4

Left it over night and it's still chugging away. 13 hours later I'm at Epoch 4. 11 - 12 s/it average. GPU history is consistently high so assuming GPU is being used. Should it be taking this long? (didn't change any default settings on m1-finetune.yaml except

It is almost the same as on my M1 Max 32GB.
But 256x2560 images are ~7 times faster, so there may be memory bottleneck. 256 images show almost constant use of 9GB of memory and constant use of GPU.
But 512 images both memory and CPU use fluctuates. So maybe swap slowing it down.

Wondering whether to leave this one to run through - How many epochs will it need to run through?

You can try out the checkpoints it makes every 600 iterations. They can be found in the logs folder.
I did 6000 iterations with 256x256 images and was not impressed with the result so I'm redoing it with 512. Also getting about 10-14s/it on my M1 Max 32GB so that seems to me consistent. Kind of wish I had gotten a 64GB machine now ;-)

You can try out the checkpoints it makes every 600 iterations. They can be found in the logs folder.
I did 6000 iterations with 256x256 images and was not impressed with the result so I'm redoing it with 512.

So it's a checkpoint per epoch? So would be 10 epochs with 6000 it? At my rate will be ~31 hours for completion... yikes! (hope it's worth it!)

Seems to be every 600 iterations, so not exactly one per epoch. But there's also a file "embeddings.pt", which is always the latest so you can use that between the 600 snapshots.

Full disclosure. Textual inversion has never worked for me. It gets to the end of the first epoch, and then core dumps so badly that it kills the shell, logs me out of the system, and forces me to reauthenticate. So I was excited to try out the new code.
Unfortunately I got the same behavior. This was with pytorch_lightning 1.4.2.  After seeing the comment about pytorch_lightning 1.7.5, I upgraded. Now I don't get a core dump, but instead get a python error:
Restored from ./models/ldm/stable-diffusion-v1/model.ckpt with 0 missing and 2 unexpected keys
Unexpected Keys: ['model_ema.decay', 'model_ema.num_updates']
Traceback (most recent call last):
  File "/u/lstein/projects/SD/InvokeAI/./main.py", line 784, in <module>
    trainer_kwargs['logger'] = instantiate_from_config(logger_cfg)
  File "/u/lstein/projects/SD/InvokeAI/ldm/util.py", line 89, in instantiate_from_config
    return get_obj_from_str(config['target'])(
  File "/u/lstein/projects/SD/InvokeAI/ldm/util.py", line 99, in get_obj_from_str
    return getattr(importlib.import_module(module, package=None), cls)
AttributeError: module 'pytorch_lightning.loggers' has no attribute 'TestTubeLogger'

TestTubeLogger is gone in pytorch 1.7.5. I think it makes sense to update that for everyone and use the new csv logging codepaths in this PR regardless of backend.

TestTubeLogger is gone in pytorch 1.7.5. I think it makes sense to update that for everyone and use the new csv logging codepaths in this PR regardless of backend.

Exactly what I've done. But now I'm seeing the following error:
Unexpected Keys: ['model_ema.decay', 'model_ema.num_updates']
Monitoring val/loss_simple_ema as checkpoint metric.
Merged modelckpt-cfg:
{'target': 'pytorch_lightning.callbacks.ModelCheckpoint', 'params': {'dirpath': 'logs/shraddha2022-09-28T17-21-17_a_m/checkpoints', 'filename': '{epoch:06}', 'verbose': True, 'save_last': True, 'monitor': 'val/loss_simple_ema', 'save_top_k': 1, 'every_n_train_steps': 500}}
Traceback (most recent call last):
  File "/u/lstein/projects/SD/InvokeAI/./main.py", line 881, in <module>
    trainer = Trainer.from_argparse_args(trainer_opt, **trainer_kwargs)
  File "/u/lstein/.conda/envs/ldm/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 2449, in from_argparse_args
    return from_argparse_args(cls, args, **kwargs)
  File "/u/lstein/.conda/envs/ldm/lib/python3.9/site-packages/pytorch_lightning/utilities/argparse.py", line 72, in from_argparse_args
    return cls(**trainer_kwargs)
  File "/u/lstein/.conda/envs/ldm/lib/python3.9/site-packages/pytorch_lightning/utilities/argparse.py", line 345, in insert_env_defaults
    return fn(self, **kwargs)
  File "/u/lstein/.conda/envs/ldm/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 433, in __init__
    self._accelerator_connector = AcceleratorConnector(
  File "/u/lstein/.conda/envs/ldm/lib/python3.9/site-packages/pytorch_lightning/trainer/connectors/accelerator_connector.py", line 193, in __init__
    self._check_config_and_set_final_flags(
  File "/u/lstein/.conda/envs/ldm/lib/python3.9/site-packages/pytorch_lightning/trainer/connectors/accelerator_connector.py", line 292, in _check_config_and_set_final_flags
    raise ValueError(
ValueError: You selected an invalid accelerator name: `accelerator='ddp'`. Available names are: cpu, cuda, hpu, ipu, mps, tpu.

for comparison, here's how I integrated textual inversion, for my repo (which is closer to original CompVis):
https://github.com/Birch-san/stable-diffusion/pull/1

You can change that to strategy=ddp but I'm not sure if it will help your coredumps

Same behavior on a different CUDA HPC system running single-GPU Tesla P100s (was using V100s before), except that it crashes right after loading the clip text model. How would I go about debugging this?

Run under gdb or lldb to see where the crash is. We saw similar crashes on M1 on the placeholder_text.to(device) line. Right now in this PR its only changing behavior on mps, but perhaps it should on cuda as well?

I've been waiting for someone to dig into main.py for the purposes of training, so I'm taking this opportunity to tap your expertise. Unfortunately gdb is not being particularly helpful.
...
- This IS NOT expected if you are initializing CLIPTextModel from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).
[Thread 0x2aad0fa56700 (LWP 30387) exited]

Program terminated with signal SIGKILL, Killed.
The program no longer exists.
(gdb) backtrace
No stack.

Frustratingly, there is no core dump produced on the system that has gdb installed, but there is a core dump on the system that doesn't have gdb.

Try ulimit -c unlimited to enable core dumps
And cat /proc/sys/kernel/core_pattern to see where cores end up

Try ulimit -c unlimited to enable core dumps. And cat /proc/sys/kernel/core_pattern to see where cores end up

Already tried that. (I've been a Unix programmer since the 1980s.) The oddity is that python crashes at the same place on two different systems, but on the first system it is segfaulting and coredumping, and on the other it is receiving a mysterious SIGKILL, which inhibits core dumping. All very mysterious. Due to the managed nature of the HPCs, I'm not allowed to install binaries myself, but I got a friendly system administrator to install a version of python with debugging symbols, so I can now gdb the core.

Have you tried commenting it out?

I'm changing this line to "cuda" in main.py
trainer_config['accelerator'] = 'ddp'

It doesn't give me an error, but if it's really invalid, it may not have any effect anyway, whether it is set or not.

Results from my (limited) testing on photos of my face:
TI works, but slow on 32GB M1.
Resolution:
256x256 - fast but unusable, details too low, tested with num_vectors_per_token 1, 5 and 6, 6200 and 12400 step, results bad in all cases, to many double faces
512x512 - 19 images - num_vectors_per_token 1 - very slow, but good results and can be styled
512x512 - 6 images - num_vectors_per_token 6 - slow, somewhat good results, but problems with styling
For me, it look that more images yields better results, and lower num_vectors_per_token for better styling.

On Mon, Sep 26, 2022 at 4:42 PM Aman Gupta Karmani @.***>
wrote:

@.**** commented on this pull request.
In main.py
https://github.com/invoke-ai/InvokeAI/pull/814#discussion_r980482735:

@@ -422,9 +439,7 @@ def init(

     self.rescale = rescale

     self.batch_freq = batch_frequency

     self.max_images = max_images

   self.logger_log_images = {

       pl.loggers.TestTubeLogger: self._testtube,

   }

   self.logger_log_images = { pl.loggers.TestTubeLogger: self._testtube, } if torch.cuda.is_available() else { }

Okay if they're using a different environment and version then this makes
sense 👍
—
Reply to this email directly, view it on GitHub
https://github.com/invoke-ai/InvokeAI/pull/814#discussion_r980482735,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAA3EVOS4NJRGUINIAK7AG3WAIDD5ANCNFSM6AAAAAAQWATGOE
.
You are receiving this because your review was requested.Message ID:
@.***>

As a future-proofing step, I'd recommend removing TestTubeLogger for CUDA
as well. At some point we're going to want to upgrade pytorch_lightning for
the Linux and Windows platforms.

So, I had it working sigh. However to get another SD fork working I had to uninstall multiple instances of python and start again. Both that fork (automatic1111) and Invoke are both now working, however I can't get textual inversion to work anymore. I have pytorch-lightning==1.7.5, tensorboard==2.10.0, protobuf==3.19.4 and am getting the following...

May I ask what guide, if any, you were able to get to work to get Automatic1111 to work on an M1?

@Homemaderobot when you say 6x slower.. are you running PyTorch nightly by any chance? A few days ago a perf regression was introduced, which makes it 6x slower.
https://github.com/pytorch/pytorch/issues/85224#issuecomment-1261529333

After a bit of testing, I am getting very similar results regarding val/loss_simple_ema for different num_vectors_per_token and the same 5 training images

Step
ema (6 vectors)
ema (12 vectors)
ema (40 vectors)

499
0.12891504168510437
0.12888695299625397
0.12875811755657196

999
0.11925579607486725
0.11860495060682297
0.11820457130670547

1499
0.08565674722194672
0.08521699905395508
0.08465201407670975

1999
0.20427484810352325
0.20290355384349823
0.20181548595428467

2499
0.07604654133319855
0.07503741979598999
0.07354363054037094

However, the resulting images using the 3 embeddings are not the same.
I generated 10 images with each embedding.
For num_vectors_per_token: 6 I am seeing resemblance on all pictures, but no picture is really me. There's variety in poses.
For num_vectors_per_token: 12 I am seeing more resemblance (very close to me), and 4 pictures could really be me. I probably could not tell the difference. There's still variety in poses.
For num_vectors_per_token: 40 all images look very similar (in pose) and 3-4 pictures could pass as me.

And about styling, I'm having the same problem I described earlier. It works great in the sense that a person is styled perfectly. The only problem is that the person is not me (*). Because as I commented before, when the weight on * is increased, small variations occur, and you end up styling another person (not *).
As we can see here, a person is styled in Van Gogh style (left). As the weight increases, the style is lost and the person is shown. The only problem is the person (right image) is not * and thus the styled person (left image) is also not based on *

It all has to do with the extra words added to the prompt I guess, e.g.
a painting of ... in the style of van gogh
that somehow affects the * representation.

this might help with our problem

@Homemaderobot @skurovec You may want to give this a try. It's a bit buggy but may be worth exploring.
To edit, instead of using txt2img e.g.
a painting of * in the style of van gogh and then trying to make it look more like * by adjusting weights, e.g.
a painting of * :3 in the style of van gogh,
use img2img instead:
So, you first create an image in the style you want, e.g.
a painting of a man in the style of van gogh

Take note of the seed. In my case, this is the full command
"a painting of a man in the style of van gogh" -s 50 -S 93187064 -W 512 -H 512 -C 7.5 -A k_lms
Now, replace a man with * using img2img and use our image in the style of Van Gogh as the starting image. I also threw in the same seed. The command looks like:
a painting of * in the style of van gogh -I outputs/img-samples/002023.93187064.png -S93187064 -f0.85
You can see the results for different strength (f) values.

This successfully outputs the face it was trained on (*) and also preserves most of our style. I think there may be a script for this called txt2img2img, where you first describe the style (e.g. a painting of a man in the style of van gogh) and then that output from txt2img serves as starting image in img2img using * instead of a man. I haven't tried the script, but that's what I'd do.
Now, one thing you may notice is the style changes a bit. So that got me thinking. Why not replace just the face using inpainting?
Doing that, this is the result. The only problem I see is the style of Van Gogh seems a bit lost in the in-painted face.

In any case, more testing is needed. Here, for example, using my own face, it's doesn't yet work nearly as well preserving * / inpainting it, but the style does seem more present.

All in all, I am happier with this technique vs txt2img though. It may be worth exploring.

I am quite happy with 512 images, 1 num_vectors_per_token, 19 images and 6200 steps. I took almost 26 hours. But i can produce styled images of myself. I can get a lot with prompt editing or playing with strength.

@skurovec I tried that but failed to learn. I think the training images are super important. Close-up or not, lighting... Everything matters a lot.

In any case, we are talking about number of images in training, num_vectors_per_token, etc. which is a bit out of the scope of the code in this PR.
Should this get merged and move the discussion to fine-tune T.I. to https://github.com/invoke-ai/InvokeAI/issues/517?

Any issue with my merging into development? It looks like the M1 functionality is there and that the issues under discussion are not relevant to the basic functionality.


Views/Working With Forms has a confusing (potentially wrong) statement about using for vs foreach

A statement on the Working With Forms has been brought up to me, and it got me a bit confused.
It states (it's the only reference to foreach on the whole page):

Always use for (and not foreach) to iterate over a list. Evaluating an indexer in a LINQ expression can be expensive and should be minimized.

Now this is interesting for two reasons.
First of all - wouldn't it be the other way around? If you want to iterate through the whole list, wouldn't foreach use an IEnumerator, which should be more efficient, when going through all the elements in a collection in order?
Secondly.. If evaluating indexers are expensive, shouldn't we avoid using a for loop?
It seems like this is either badly worded, and just adds confusion.. Or it's just plain wrong, in which case it needs amending :)
Thoughts?

@NTaylorMullen please review

So technically both arguments are correct, it matters where you utilize the indexed item. So, in general for is better than foreach (if the scenario allows it) because it doesn't need to allocate an enumerator. However, in the articles case it's bringing up how a foreach is better to use due to how its indexed item value is consumed in an asp-for scenario (it's simpler to evaluate).
tl;dr; The article could be fixed to say that foreach should be used if possible when the value is going to be used in an asp-for or Html.DisplayFor equivalent context.

@NTaylorMullen well, that's not right either, is it?
Consider the extract from there:
@for (int i = 0; i < Model.Count; i++)
{
    <tr>
        @Html.EditorFor(model => model[i])
    </tr>
}

You would have to use the for indexer in this case to make sure that each editor uses a different prefix. Otherwise all values would be posted under the same name.
One could argue that a foreach could be used for display fields, but we have have to use a for loop to render editors.
Even if the recommendation is to use the for loop for everything, the note in the docs could definitely be improved, since the current description is at best confusing or misleading, and at worst just seems incorrect.


Cipher suites support in Helidon

Environment Details

Helidon Version: 1.4.7
Helidon SE
JDK version: 1.8
OS: OL6 and OL7
Docker version (if applicable):

Problem Description
Cipher suites are common agreement between client and server in SSL/TLS communication.
Configuring supported cipher suites is not available in Helidon, so default cipher suites of Java are considered at the server side.
Configuring cipher suites is required to restrict the list of allowed cipher suites for TLS/SSL. So please provide a way to configure supported cipher suites at Helidon.

Hi Helidon Team,
When can we expect the availability of this feature in 1.4.x release?

Hi @rallampalli ,
it will be backported to the 1.x as soon as current PR is merged. After that it will be available in the new 1.x release.


full discord integration

link discord account in user settings
satisfied by #19
add discord bot to server from org page
just need to generate the link and add it to a button
this ties org and their discord server together
how do I accomplish this
/link [orgname] command
works only when run with a linked account, in a server you are an admin in, with an org you are an admin in
game status/log display in discord
similar to old implementation
toggleable in org settings
user commands:
/joingame
joins the game when:
this discord server is linked to an org
else "tell the org owner to link org"
there is an active game
else "no active game"
by a discord user who has a web account linked
else link website
org page if its linked
home page otherwise
handle OZ logic somehow
don't do this in joingame logic, have seprate oz thing
/tag gameid
should be fairly simple
/tags
show game, total?
admin/mod commands at a later time

moved to standalone app


Update Production

Please read the Pull Request Checklist to ensure you have everything that is needed to get your contribution merged.

Pull Request Test Coverage Report for Build 409

128 of 149 (85.91%)  changed or added relevant lines in 14 files are covered.
39 unchanged lines in 11 files lost coverage.
Overall coverage increased (+0.1%) to 45.66%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

frappe/email/doctype/notification/notification.py
0
1
0.0%

frappe/model/create_new.py
12
13
92.31%

frappe/model/document.py
1
2
50.0%

frappe/oauth.py
0
1
0.0%

frappe/init.py
0
2
0.0%

frappe/desk/notifications.py
0
2
0.0%

frappe/email/doctype/email_group_member/email_group_member.py
4
6
66.67%

frappe/utils/print_format.py
0
2
0.0%

frappe/core/doctype/user_permission/user_permission.py
48
51
94.12%

frappe/utils/response.py
0
6
0.0%

Files with Coverage Reduction
New Missed Lines
%

frappe/desk/notifications.py
1
41.48%

frappe/utils/csvutils.py
1
24.59%

frappe/core/doctype/doctype/doctype.py
1
62.33%

frappe/chat/util/util.py
1
55.7%

frappe/patches/v6_15/remove_property_setter_for_previous_field.py
2
10.2%

frappe/contacts/doctype/address/address.py
3
39.29%

frappe/tests/test_geo_ip.py
3
55.56%

frappe/init.py
4
52.25%

frappe/database.py
5
49.41%

frappe/utils/file_manager.py
6
35.88%

Totals

Change from base Build 406:
0.1%

Covered Lines:
17738

Relevant Lines:
38848

💛  - Coveralls


Empty Repo

I attempted to clone this repo for use with the config-server but all of these files seem to be empty.

Hi @seanlewis413 ,
These files are placeholders for your customized configuration. The file name maps to the microservice name. If you configure the config-server with this repo/folder, it would serve the configuration accordingly. For instance, if you want to override the configuration for dss, you can add them to dss.yml, so this external configuration can have a higher priority. You can find more information about Spring Cloud Config Server here.


Ideas

0.2.0

[x] (breaking) Use Result instead of assert!

Ideas

[ ] Use generics to support f64 and f32 slices

In case anyone from the future is reading this, https://github.com/ankane/stl-rust/pull/2 comes from a fork which supports f64 and f32 slices at the cost of a dependency on num-traits and some readability.


Choosing "system" DNS does not work when using a local (pihole) dns resolver [bug]

Describe the bug
I use a pihole on my home network as my primary DNS server. My normal setup is for each computer to manually set the dns server as the local ip address of the pihole.
When using the Mysterium client, however, if I choose to use the "system" dns, the dns requests fail, presumably because the Mysterium client is preventing my computer from connecting to the local pihole.

System still does not work when my computer manually specifies a local pihole. In my opinion, the Mysterium client should

allow the user to specify the ip address of a local dns server.
allow the user to specify the ip address of any dns server (such as quad9, for example, for those who don't like cloudflare).
allow the use of DoH or DoT.


Exception: Error when checking : data should be a Numpy array, or list/dict of Numpy arrays. Found: None...

@debarko please post here the whole error stack

Using TensorFlow backend.
Found 6149 images belonging to 102 classes.
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 404, in data_generator_task
generator_output = next(generator)
File "/home/ubuntu/cnn/2/learn/util.py", line 160, in custom_next
batch_x, batch_y = original_next(self)
File "/usr/local/lib/python2.7/dist-packages/keras/preprocessing/image.py", line 603, in next
img = load_img(os.path.join(self.directory, fname), grayscale=grayscale, target_size=self.target_size)
File "/usr/local/lib/python2.7/dist-packages/keras/preprocessing/image.py", line 172, in load_img
from PIL import Image
ImportError: No module named PIL
Traceback (most recent call last):
File "train.py", line 37, in
bottlenecks.save_bottleneck_features()
File "/home/ubuntu/cnn/2/learn/bottlenecks.py", line 23, in save_bottleneck_features
bottleneck_features_train = model.predict_generator(generator, config.nb_train_samples)
File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 1652, in predict_generator
outs = self.predict_on_batch(x)
File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 1273, in predict_on_batch
self.internal_input_shapes)
File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 73, in standardize_input_data
'Found: ' + str(data)[:200] + '...')
Exception: Error when checking : data should be a Numpy array, or list/dict of Numpy arrays. Found: None...

For the import error "ImportError: No module named PIL"
Ideally no need to import PIL. You can just do import Image. It will still work.

@Arsey ^

@debarko PIL is required by Keras, not by my code. Please install PIL (pip install Pillow) and try to run train.py again

sorted.


API Server Down ?

Hi Team,
Where can i get the status page for your API ? As right now your server is not responding and we have used it inside our app to generate email templates.
Thanks

The API is back online, sorry for the inconvenience!

Thanks for the info @ngarnier but i wanna know is it possible to create a failsafe on my own server ? I mean like first my app will hit MJML API but if any in case its down or not responding then another call will hit my own server to render the MJML into HTML ? If this is possible then please tell me how ?
Thanks in advance.
Jatin Sahani

The API is down right now: https://mjml.io/api 😞


deps: update to<EMAIL_ADDRESS>

Developer Checklist (Definition of Done)
Issue

[x] All acceptance criteria from the issue are met
[ ] Tested in latest Chrome/Firefox

UI/UX/Vis

[ ] Requires UI/UX/Vis review

[ ] Reviewer(s) are notified (tag assignees)
[ ] Review has occurred (link to notes)
[ ] Feedback is included in this PR
[ ] Reviewer(s) approve of concept and design

Code

[x] Branch is up-to-date with the branch to be merged with, i.e., develop
[x] Code is cleaned up and formatted
[ ] Unit tests are written (frontend/backend if applicable)
[ ] Integration tests are written (if applicable)

PR

[x] Descriptive title for this pull request is provided (will be used for release notes later)
[x] Reviewer and assignees are defined
[x] Add type label (e.g., bug, feature) to this pull request
[x] Add release label (e.g., release: minor) to this PR following semver
[x] The PR is connected to the corresponding issue (via Closes #...)
[x] Summary of changes is written

Summary of changes

Change log of https://github.com/lineupjs/lineupjs/releases/tag/v4.8.0

🚀 Features

https://github.com/lineupjs/lineupjs/pull/614 feat: filter missing values improvements
https://github.com/lineupjs/lineupjs/pull/612 feat: advanced boolean parsing
https://github.com/lineupjs/lineupjs/pull/613 feat: allow for custom HTML label generation
https://github.com/lineupjs/lineupjs/pull/611 feat: add support for 1px min bar

🐛 Bugs Fixes

https://github.com/lineupjs/lineupjs/pull/626 fix: remove tooltip for missing values of BoxPlotColumn

Change log of https://github.com/lineupjs/lineupjs/releases/tag/v4.9.0

🚀 Features

https://github.com/lineupjs/lineupjs/pull/631 feat: search next with pressing enter

🐛 Bugs Fixes

https://github.com/lineupjs/lineupjs/pull/632 feat: change key for detecting duplicates

Screenshots
Additional notes for the reviewer(s)

Thanks for creating this pull request 🤗

@puehringer @dvmartinweigl LineUp v4.9.0 has been released. This branch is ready to review.

I tested LineUp v4.9.0 with Ordino Enterprise and could find any problems.


Value is not formatted on Windows 10 and Chrome Android

For some reason the formatted value like "$23,000" is just displaying correctly on mac os, i tried on my macbook safari, chrome, firefox and is working propertly, but for some reason on windows im just getting "23000" on the input
Windows Google Chrome:

Mac os Google Chome

Hi, thanks for raising this issue.
I mainly work on Mac OS, so haven't noticed this bug personally. But, I will investigate on my windows machine soon.

Hi, thanks for raising this issue.
I mainly work on Mac OS, so haven't noticed this bug personally. But, I will investigate on my windows machine soon.

i think is related with the Intl Config

it works when i test it on the example page with the us intl option
my current intl configuration on my pc is:


[DS-2406] Fixes default sort option was always selected in XMLUI if set...

... in discovery.xml
If sort option is set in discovery.xml lines 117 and 222 <property name="defaultSort" ref="sortDateIssued"/>
and you change sort options in the XMLUI the result looks like this:

This fix resolves that issue

+1, fix tested


API client can see memory used for builds

Context
** This should be done alongside https://www.pivotaltracker.com/story/show/177103073**
Follow up to https://www.pivotaltracker.com/story/show/174473957.
Builds currently support staging_memory_in_mb and staging_disk_in_mb fields which override the memory and disk used to stage the application. These are useful in some cases where an app requires more resources to stage than it needs to run. However, these fields are currently write-only, so API clients can't tell how much memory/disk was used and it is difficult to discover these fields in the first place (especially since we didn't have documentation for them).
Our objective is to always display how much memory/disk a build will use/has used on the build object.

Acceptance Criteria
Default Memory
Given an app with a web process
And the web process is scaled to 1024 memory_in_mb
When I create a build for the app
Then that build's staging_memory_in_mb should display 1024

Override Memory
Given an app with a web process
And the web process is scaled to 1024 memory_in_mb
When I create a build for the app
And I specify staging_memory_in_mb is 2048 on the build
Then that build's staging_memory_in_mb should display 2048

Minimum Memory
Given an app with a web process
And the web process is scaled to 1024 memory_in_mb
And the system minimum staging memory is 2048
When I create a build for the app
And I specify staging_memory_in_mb is 1024 on the build
Then that build's staging_memory_in_mb should display 2048

✍Document Staging Memory  📝
Given browsing the v3 API docs
When I view the builds resource
Then there is documentation for the staging_memory_in_mb field
And it appears in the examples

Notes:

No need to backfill data for old builds. Happy to chat about any other migration concerns.

migrated from https://www.pivotaltracker.com/story/show/175148968

Docs addressed in https://github.com/cloudfoundry/cloud_controller_ng/commit/83913d297f2aca8941070133441c2b23fb705f03


String functions error when passed data argument

I believe this is either a bug or undocumented behaviour affecting all Firebase rules, but am re-posting the issue here as I haven't received any confirmation of that in the google group (https://groups.google.com/forum/#!topic/firebase-talk/f7VI2HGv17Q) and others may run into the same thing while using bolt.
From the String page (https://www.firebase.com/docs/security/api/string/) I’m led to believe that we can use string operations on anything that would resolve to a string at runtime. But when I try to use “some-string”.contains(this.someProperty) I get the error:  contains() expects a string argument when I attempt to deploy from the command line.
Full example:
type Entity {
    entityType: String
}

path /entity/{entity} is Entity {
    validate(){
        "project|user".contains(this.entityType)
    }
}
// Error:  Rules Syntax Error: 1:xx: contains() expects a string argument.

This is a bug in that Bolt does not realize the argument to contains needs to be a string.  As a work-around, appending '' forces the coercion (let me know if this works for you):
type Entity {
    entityType: String
}

path /entity/{entity} is Entity {
    validate(){
        "project|user".contains(this.entityType + '')
    }
}

If you check the Language Doc, you'll see that the proper Bolt function is 'includes', not 'contains' - in which case the correct JSON is generated.
Bolt should be generating warnings for un-recognized functions (I'll add an issue to track that as a feature request).


[webview] window.open throw errors even when new-window events are handled

When calling window.open in a webview that handles new-window events, I still get the following error, even if the new window is successfully handled.
It is not allowed to open new window from this WebContents

webview.addEventListener('new-window', function(e) {
 // something here that open the new window
});

I was getting this as well but this is fixed in master by #1850 if my
memory serves me correctly.
On Thu, Jun 4, 2015, 07:41 Félicien FRANCOIS<EMAIL_ADDRESS>wrote:

When calling window.open in a webview that handles new-window events, I
still get the following error, even if the new window is successfully
handled.
It is not allowed to open new window from this WebContents
webview.addEventListener('new-window', function(e) {
// something here that open the new window
});
—
Reply to this email directly or view it on GitHub
https://github.com/atom/electron/issues/1864.

@zcbenz what is the expected behaviour here ? should we emit the event, even if there is no window creation

@deepak1556 It should emit the new-window event, but there were some implementation problems since you can not send synchronous messages from webview to host.

@frankhale this is not fixed yet. Still happening in 0.28.3

Looks like I was wrong. I just went back to check my own app. This issue has not been closed so it's all good.

Would it be possible to tag webviews to have the capability to open new windows with window.open in the same way that the BrowserWindow can? Maybe a new tag on webview like "allow-popups" or something? If it's not specified then you'd fall back onto the new-window event (or possible do both if that attribute is provided).
This would be useful for us, since we have quite a few places in our code that do window.open () with various settings and right now we're getting the same message @felicienfrancois was getting:
It is not allowed to open new window from this WebContents

@kjlaw89 this tag could also be automatically toggled when adding an event listener to window-open.


Bad values in boolean columns being converted to boolean values, rather than being caught by validators

As discovered when dealing with issue #61 , Boolean typed columns are being converted before they reach the validators. It looks like this was a workaround from before the validators were implemented, and should probably be deprecated now in favor of allowing the validators to catch any bad values and requiring the user to explicitly change them to an allowed value.

This is the code snippet Ken found that's controlling this, I'm not sure exactly where it's located in DURC:
`public static function formatForStorage( $field_name, $field_type, $value, $model = null)
{
    $formattedValue = $value;
    if ( self::mapColumnDataTypeToInputType( $field_type, $field_name ) == 'boolean' ) {
		//support obvious notions of truth
        if ( $value === 'on' || $value === 'true' || $value === true || $value > 0 ) {
	//this allows us to support the use of 'on'/'true' etc  for trueness
            $formattedValue = 1;
        } else {
	//if it is a boolean and it is not obviously true.. then it is false..
            $formattedValue = 0;
        }`


update contributing info

I will try adding this via gitlab now

@davidgcameron the file has changed a lot since the submission, when i tried to do the merges offline the diff shows much more stuff, could you try to merge in your branch before merging here?

Let me close this old one and make a new one to test the workflow.


unmaintained?

is this project unmaintained now?  it's been over 18 months since the last commit.

Due to shifts in our internal tech stack, the project is not under active development anymore. But we're still open to contributions and able to make new releases. But archiving the project is also a possibility we're considering.

Due to shifts in our internal tech stack, the project is not under active development anymore. But we're still open to contributions and able to make new releases. But archiving the project is also a possibility we're considering.

ok thanks.  i will fork internally for now :).

ok thanks.  i will fork internally for now :).


Update stable version in repo from 0.1.3 to 0.2.0

Think about update stable version to 0.2.0
Version: stable=0.1.3 (116 days old) => latest=0.2.0 (15 days old)
Installs: stable=151 (74.75%), latest=18 (8.91%), total=202
Click to use developer portal
Click to edit
Do not close this issue manually as a new issue will be created if condition for update still exists.
Please drop a comment if any reason exists which blocks updating to version 0.2.0 at this time.
Note: This is an automatically generated message and not personally authored by bluefox!
@mcm1957 for evidence

This issue seems to be outdated.
This issue suggests to update the stable version of this adapter to 0.2.0 but the current stable version is already 0.2.0.
So this issue should be closed.
@mcm1957 for evidence


[release-1.8] When installing istio-cni remove existing istio-cni plugin before inserting a new one

This is an automated cherry-pick of #28258

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio_release-1.8
362896af87f758b016305be58663e05b65adaf19
link
/test integ-telemetry-k8s-tests_istio_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-telemetry-k8s-tests_istio_release-1.8

@anyname2 can you respond to the google-cla bot (comment)

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio_release-1.8
362896af87f758b016305be58663e05b65adaf19
link
/test integ-telemetry-k8s-tests_istio_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@googlebot I consent.


[release-4.14]HOSTEDCP-1957: bump go-jose version

What this PR does / why we need it: update cloud-credential-operator to newer version that doesn't use a deprecated import with a CVE.
Which issue(s) this PR fixes (optional, use fixes #<issue_number>(, fixes #<issue_number>, ...) format, where issue_number might be a GitHub issue, or a Jira story:
Fixes # HOSTEDCP-1957
Checklist

[x] Subject and description added to both, commit and PR.
[x] Relevant issues have been referenced.
[ ] This change includes docs.
[ ] This change includes unit tests.

/lgtm

/approve

/test e2e-kubevirt-aws-ovn-reduced


See chemphil.html in inputs

Attempting to process shows no useful outputs after analyzing and seeing samples. It's useful to have an anti-example, perhaps. Or maybe there's some logic that can look for longer text, find that heading, and include it in the samples option?

Yeah, this one's got some really odd nested stuff.  (chap gets used as a class whenever a chapter is mentioned, and not when a chapter is begun.)  h3 is a promising choice, but it is also inconsistent.  I'll see what I can find.

This is the crux of my problem:

[Pg xi]

INTRODUCTION.

A chapter is announced inside a div that closes before the content begins.  You might think, in looking at this, that we can use the drop-cap... but, of course, that's only at the head of a large division.  The smaller sections have a  with a "smcap" class, but these aren't consistent either.
Of course, if the ToC were marked, I might be able to make some inferences from the anchor tags, (each subsection is linked, and the anchors are sequentially numbered) but these are also peppered through the document.  So, I'm not really sure what to do with this, if we're being perfectly honest.
At the moment, using
 does divide my text into helpful sections.  These correspond to the large divisions of the text.  There might be a way to post-process, but I don't see any likely targets that are consistent in those divisions apart from, perhaps, the
 which begin with sequential ids.  Will have to look at this as a longer term issue.


Setup a proper production environment

https://www.digitalocean.com/community/tutorials/how-to-deploy-a-meteor-js-application-on-ubuntu-14-04-with-nginx

Change the mongo db cron job to back up to amazon s3.  /etc/cron.d/mongodb-backup

Change /etc/init/discoverwhatrocks.conf to use a rotating log

exec node /home/todos/bundle/main.js >> /home/todos/todos.log

Get mup working.

I'll make a seperate issue for these three things.


Why on earth is libsqlite3-sys compiling its own sqlite3.c instead of using the given libsqlite3.a?

Hi
I am trying to get rusqlite to use the libsqlite3.a I compiled.
I provided a custom sqlite3.pc in /home/nobodyxu/Dev/fast-sqlite3-inserts/sqlite3/pkgconfig:
# Package Information for pkg-config

prefix="/home/nobodyxu/Dev/fast-sqlite3-inserts/sqlite3"
exec_prefix=${prefix}
libdir=${exec_prefix}
includedir=${prefix}

Name: SQLite
Description: SQL database engine
Version: 3.36.0
Libs: -L${libdir} -lsqlite3 -lm -ldl -lz -lpthread
Cflags: -I${includedir}

where libsqlite3.a is in the prefix above.
I also set the environment variables:
export SQLITE3_LIB_DIR=/home/nobodyxu/Dev/fast-sqlite3-inserts/sqlite3
export PKG_CONFIG_PATH="$SQLITE3_LIB_DIR/pkgconfig"
export SQLITE3_STATIC=1

to make sure rusqlite uses it and linked statically with it.
However, it seems that libsqlite3-sys just like to compile its own sqlite3/sqlite3.c as if the bundled feature is set, so I tried to disable all default feature for rusqlite:
rusqlite = { version = "0.25.3", default-features = false, features = ["buildtime_bindgen"] )

Turns out that this doesn't work at all and it seems that rusqlite has no default feature and libsqlite3-sys does not enable bundled feature by default.
I have no idea now on how to fix the building process.
Can anybody please help me with this?
Thanks in advance.

Hmm, do you need to have buildtime_bindgen on? This sounds like a bug either way.

Hmm, do you need to have buildtime_bindgen on? This sounds like a bug either way.

TBH, I am not sure about that and I was just changing configurations here and there to try to get it to work.
buildtime_bindgen sounds like related, so I tried that xD

I got it!
It is sqlx, who is the culpuit for pulling in bundled libsqlite3-sys.

sqlx is used for testing its async performance against rusqlite (which is actually way slower), maybe I can make that an optional dependency with a feature.

Glad you managed to track it down. I'm going to close this, then.


Do I need to close the connection when using inside an AWS Lambda?

What version of Go are you using (go version)?
go version go1.11.2 darwin/amd64
Which database and its version are you using?
MYSQL  Ver 8.0.12 for osx10.13 on x86_64 (Homebrew)
Question
Do I need to close the connection before responding to a request when using within an AWS Lambda?

up

db driver manages pool of connections in the background, so no - there is no need to close db every request
you can setup your db config for example:
db.DB().SetConnMaxLifetime(time.Second * 100)
db.DB().SetMaxIdleConns(50)
db.DB().SetMaxOpenConns(200)

that will keep max 200 connections, and keep 50 that are idle, along with that it wont allow connection to be alive more than 100 seconds


PointPrimitive size is growing too much and too fast when using NearFarScalar for scaleByDistance

Hi all,
I am having some issues using a NearFarScalar for the scaleByDistance property of a PointPtimitive.
If I correctly understand the documentation and also the "Points" sandcastle example (https://sandcastle.cesium.com/?src=Points.html), it should work like the following:

The point should have its pixelSize multiplied by NearFarScalar.nearValue when the camera is at a distance of NearFarScalar.near or nearer to the primitive.
The point should have its pixelSize multiplied by NearFarScalar.farValue when the camera is at a distance of NearFarScalar.far or further away from the primitive.
The point's size should be an interpolated value between the values of 1. and 2. if the camera is in a distance between NearFarScalar.near and NearFarScalar.far.

In the sandcastle example below, I'd therefore expect the point to be 1 pixel in diameter when the camera is at a distance of 2e5 meters or greater and to be 200 pixel in diameter when it is at a distance of 1 meter or nearer, because the point's pixelSize is set to 1 and the NearFarScalar is set to near: 1, nearValue: 200, far: 2e5, farValue: 1.
What is actually happening (when you zoom onto the point) is that the point is getting way bigger than 200 pixels when the camera is still much further away than 1 meter. I think, it stops growing when the camera is still some kilometers above the point.
I measured the on screen size with the screen ruler of the Microsoft PowerToys (and measuring in the screenshot in an editing program yields the same result):

Note: Browser zoom is at 100% and OS zoom is also at 100% for the screen the picture was taken on.
Sandcastle example:
https://sandcastle.cesium.com/#c=bVDRTsIwFP2Vmz1tyew2kQxhECPEJ6MPJD715dJdsLFrSduBaPh3yyYJUR5603PuOSc9FUY7DztJe7IwBU17mJOTbcPeOi7mkejw3GiPUpPlUTLhmuvew0h76SU5hnUdf3MNsDUuMEaPz0lztD7cUA/Y2ppmQRtL5OKbcsiG92VZpnCXs3wwGg2StA+Q2o+hCwtIfpJayi8aQ5H2lBOo6PGwkM6jFmFx8ewXQvuEdhkkaOMihds8D4OGKRR9/DHM46lDlEY8mpyo8wGonD8omvUA4EE2W2M9tFbFjGWemq3CUCZbteKDPBPOJZNfZ3ZprWq5A1lPr3wfCIXOhc26VV0xHs2qLOj/WZXBWurN646swsNJ9l7MnnuSMVZlAV53emPUCu2f5B8
Browser:
Google Chrome 107.0.5304.107
Operating System:
Windows 11 10.0.22621 Build 22621

I think, I found the problem and will open a PR for this :)


Document segment report failure (#123)

I have submitted a new commit. PTAL.

Codecov Report

Merging #124 (3b9a712) into master (9de9f1c) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 3b9a712 differs from pull request most recent head 136b1f0. Consider uploading reports for the commit 136b1f0 to get more accurate results

@@           Coverage Diff           @@
##           master     #124   +/-   ##
=======================================
  Coverage   69.33%   69.33%
=======================================
  Files          17       17
  Lines         887      887
=======================================
  Hits          615      615
  Misses        224      224
  Partials       48       48

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9de9f1c...136b1f0. Read the comment docs.


Different colors in the same line

Can I use different text font colors in the same line of text inside TextBlock ?

I don't see how this is possible.
By construction, a TextBlock is a tag in the HTML.
A text with several colors is necessarily composed of several tags.
Or maybe I've misunderstood the request. Can you provide an HTML example of what you'd like the output to look like?


Question about payment process

Hi,
Please briefly explain the payment process as business aspect. I don't understand how it works.
So we have an service provider that sell something at an given amount, a buyer and you in the middle.
The buyer pay the amount, that is processed by stripe and the money goes to you, or directly to the service provider?
I am not quite understanding how it works because is different from the typical e-commerce where only the shop owner must be registered with payment provider..
In any cases, I may suppose that every service provider must somehow be registered with Stripe?
Also in what concerns the taxes due to the income, how is the deal?
Ok, here are many variables depending of national fiscal regulations, but at least here in E.U. I suppose that we have similar principles; e.g. here in Romania we have two kinds of taxation level, there are microenterprises that due 3% of income or regular enterprises that due 16% of profit. The first case is convenient if you don't have big spending, so is not appropriate if you have an income of let say 100 euros and you have to pay at your turn 90 euros to service provider registered in application. The second case is convenient in this scenario when you can have big spending. Also is the aspect of VAT: for example here we have two kind of enterprises: VAT registered that must settle the VAT with state, and the exempt enterprises that pay VAT for the goods and services that they buy, but don't settle nothing with the state. This aspects are important on my advice in terms of fiscalization and invoicing.

Yes, it's a good point. Indeed, we are working on a plugin architecture, where you could write you own payment method. it shall be released some time in July. We will provide documentation when it's get released.

plan to release in July/August this year.

Here I think also at an "offline" payment (can mean pay by card at the siege, by cash, by courier, or other not-online means)

@net4u can you make cash on delivery plugin payment? If you can, could you please share it?


[DOCS] Add 8.5.2 release notes

Preview
https://elasticsearch-hadoop_2042.docs-preview.app.elstc.co/guide/en/elasticsearch/hadoop/main/eshadoop-8.5.2.html

💚 All backports created successfully

Status
Branch
Result

✅
8.6

Questions ?
Please refer to the Backport tool documentation


add destructuring best practices and examples

I feel like this should live in https://github.com/eventbrite/javascript/blob/master/es6/README.md instead of in general. General was supposed to be ES5. I think eventually we'll merge everything and ES6+ will be "normal." But until then...


⚠ DesiTorrents has degraded performance

In afb3ffc, DesiTorrents ($DST) experienced degraded performance:

HTTP code: 200
Response time: 5312 ms

Resolved: DesiTorrents performance has improved in 28e2a0b.


[BugFix]fix broker load ut error

What type of PR is this：

[x] bug
[ ] feature
[ ] enhancement
[ ] refactor
[ ] others

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

[FE PR Coverage check]
:heart_eyes: pass : 2 / 2 (100.00%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/common/util/MasterDaemon.java
1
1
100.00%

:large_blue_circle:
com/starrocks/common/FeConstants.java
1
1
100.00%

run starrocks_be_unittest

run starrocks_be_unittest

[FE PR Coverage check]
:heart_eyes: pass : 2 / 2 (100.00%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/common/util/MasterDaemon.java
1
1
100.00%

:large_blue_circle:
com/starrocks/common/FeConstants.java
1
1
100.00%

I don't get this PR logic.

If the testbrokerload is not completed within 10s, the sleep in masterdaemon is completed (currently 10s), and many tasks continue to be executed downward, jmockit will report the error "missing 1 invocation"

If the testbrokerload is not completed within 10s, the sleep in masterdaemon is completed (currently 10s), and many tasks continue to be executed downward, jmockit will report the error "missing 1 invocation" @kangkaisen

I see. But I don't think this is the best way to fix this issue.

If the testbrokerload is not completed within 10s, the sleep in masterdaemon is completed (currently 10s), and many tasks continue to be executed downward, jmockit will report the error "missing 1 invocation" @kangkaisen

I see. But I don't think this is the best way to fix this issue.  @zddr

If the testbrokerload is not completed within 10s, the sleep in masterdaemon is completed (currently 10s), and many tasks continue to be executed downward, jmockit will report the error "missing 1 invocation" @kangkaisen

I see. But I don't think this is the best way to fix this issue.  @zddr

I know,but I do not find the better way

@zddr I fix this issue in https://github.com/StarRocks/starrocks/pull/8758, you could review it.

@zddr I fix this issue in #8758, you could review it.

3q


documentation

[ ] explain how the plugin works
[ ] document what can be configured
[ ] any limitations?

@sneben ok to close this?

Will close this now as the README seems up-to-date.


Fix reaction count when there are duplicate reaction events from a user

Closes https://github.com/ulyssa/iamb/issues/228

Thank you for tracking #228 down and fixing it! :tada:  I hadn't realized that homeservers allow this, so handling this and #240 client side is definitely the right approach.


PANDARIA: Delete create ack params zone_id

https://github.com/cnrancher/pandaria/issues/3051

LGTM


Revert "Allow Ruby 3"

This reverts commit c975572cc35553ca5d049d08f982ddeef391e4b1.
Temporary solution for issue:
https://github.com/solidusio-contrib/solidus_paypal_commerce_platform/issues/145

@kennyadsl


Set sleep between card reads

My RFDI reader (Neuftech USB RFID Reader "usb-HXGCoLtd_27db-event-kbd" seems to be very sensitive and thus it happens that the card is read multiple times just by lowering down the card to the reader.
Would it be possible to add an option for a sleeptime after a cardread (like 0,5 or 1s) so that even an repeated hardware detect of the same card is not resulting in a new command.
Or is it already there or could I easly add it in the code (utilizing last.played timestamp??), perhaps you could just point me to.

Hi @gizmo21
I have never had that experience, so I never really thought about it. @ottk3 is working on this for a Pi module RFID card: https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/197
And he already states there that "Could be implemented in the other Reader() classes, but it breaks the possibility to use commands like lower/raise volume multiple times..."
So it seems to be requiring certain planning where to implement it. Another thought could be: implement the delay in the script scripts/rfid_trigger_play.sh which is the place where all IDs are sent - but what that implies, I am not sure.
The easiest suggestion from my side: like @ottk3 create a parallel set of scripts that work for you. Then we can look into merging the solution into one.

This question still bothers me. It would be possible add an additional check in the Reader() class to allow a re-triggering of the same UUID after a certain interval, but I don't like the idea to do this for all UUIDs.
I would prefer an additional check if that UUID should/could be triggered multiple times because the only use-case I can think of atm are the volume change or start/stop toggles. But that doesn't justify to trigger all UUIDs multiple times imho...

On the other hand it should be possible for all UUIDs since the state can also be changed within the web interface, e.g. if you start a song via card and stop it inside the interface it wouldn't be possible to start it again with the card.
I will tinker around with this interval inside the Reader() class for the RDM6300 module - if it's fine I would make a suggestion for default reader. This seems to be only an issue for "fast" readers that trigger multiple times per second.

Another way of approaching this problem might be through the service daemon that enables the process:
https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/master/misc/sampleconfigs/rfid-reader.service.stretch-default.sample
And the script that uses Reader.py - which is the daemon:
https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/master/scripts/daemon_rfid_reader.py
?

I like the idea to implement some sanity checks for valid UUIDs in the daemon_rfid_reader.py and allow a re-triggering of the same UUID only every 1 second. That may already do the trick.

Thanks for looking into this. To make it clear I really don't want an UUID only once for my case "re-triggering of the same UUID only every x seconds" would be way enough.
I understand this could break (or very slow down) e.g. volume adjustment in other settings, so if that could be made "UUID depende"

Well, everytime rfid_trigger_play.sh is the playback stops or starts stuttering. That means even an 1sec delay is annoying if the card is placed for to long above the reader.
Probably a good option would be to replace the shell-script with python-mpd2 and make a list which UUIDs are registered for "multi-trigger". Latter could be achieved by creating files like the shortcuts in another directory for control-commands. Only these would be allowed for "multi-trigger". The files could be easily gathered (e.g. glob) and it wouldn't break the web-interface and samba access to those files/settings.

Hi,
i have the same RFID Reader which reads the card or chip multiple times in a very short time, too. I had the idea to use the chips under a character like the tonies from Toniebox. Is it possible to allow it to stand on?
Thanks for input.

yes it is possible, as the kid also lays the cards on the box while hearing, but as you know sometimes it reads twice so it stops or three times then it is OK.
Another guy with the neuftech even suggested to use the LED signal "green" to implement the tonie-like behaviour: https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/62
Which figures would you suggest, I thought it would be easier to find some appropriate.
I only found 125Mhz rfid 3M-stickers with 25mm diameter in german webstores/amaz so the figures need quite a platform.
Open for any figure suggestions (think that is something the tonie-guys did really well).

Hi gizmo21,
thanks for the link to issue #62. I will try it.
I don‘t wanna use the original tonies. Some figures like playmobil Lego etc are good enough.
I have a lot of chips an want to use them to put under a platform as a wooden circle. The same size of the circle i have to mill out in the box.
So the box will be wooden :)

HI @ottk3 @gizmo21
there is a new thought about how to avoid the stuttering with multiple swipes could be avoided:
https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/228
any comments and thourhgts please in that thread

Hi @ottk3 @gizmo21
I merged @keinkurt 's pull request into the develop branch. now the rfid daemon reader loads dynamically an USB, MFRC522 or RDM6300 reader class. If you could test it with your setup, please checkout that branch. I will only find time to test on the weekend, and only on a USB device.
https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/235

It'll take some time to update to a new pull from 1.0 as I have to merge my own changes and test if smb/symlink is still working.
Seems I need a changemanagement implemented, a testing device or at least a testing SD, so that the kid has a working unit ;)


Bot seems to stop working when running on Linux

I made a build of the bot and implemented it into my own private bot. It works fine when hosted on any windows devices but as soon as I put it on Linux it doesn't seem to work anymore. I haven't modified anything, some people are saying that it might be something involving codecs. Always gives me a failed to connect even though all the other functions work fine.

Which linux distro are you running?

Debian GNU/Linux 8

As for the exact warnings in the console:
[20:24:35] [Warning] [JDAAudioSocket]: Failed to establish websocket connection: SOCKET_CONNECT_ERROR - Failed to connect to 'eu-central447.discord.gg:443': Connection timed out
Closing connection and attempting to reconnect.

That seems to me like Discord is for some reason blocking the connection to your VPS.
Can you try changing the voice region for the server? Otherwise, I guess you could try contacting them directly at<EMAIL_ADDRESS>

The weird thing is that it only blocks out the voice, not the normal messages. Or is that just normal behaviour when it's blocked? It's a rented box so it could possibly be blocked, who knows.

Oh hey, changing the server region seems to fix it, how weird. I'll contact discord about it. Thanks so much!

Yeah, it's quite possible that they've blocked connection to the voice channels due to previous abuse from someone using that service in the past. Always worth sending them an email.


Please need some guidance and overview on Running the model without CUDA or alternate Backends

Hi Please help me understand how to run the model without cuda or using alternate backend system . Where in the code I can see and modularly try to disable or change cuda acceleration with some other backend system.
Thanks!

Hi, thanks for your interest!
You can use Google Colab to run our Retinexformer.
https://colab.research.google.com/
If your find our repo useful, please help us star it. Thanks :)


change Eth Port handback string

ReadMe and driver.cpp

change Eth port send back string

accept this change


update the docs of Subreddit's attributes

Fixes # 0
Feature Summary and Justification
Added The Missing Attribute in Subreddit classm
References

Please fill out the pull request description.

Please fill out the pull request description.

🤦♂ done

Minor change.
Would you add this to asyncpraw/models/reddit/user_subreddit.py as well.

done

Thank you!


Features Request

Hi, this is a tiny list of features that will make your extension even better:

Use an icon for Tsvn item in contextual menu (a turtle shell can do the job)
Show Tsvn item in contextual menus for projects and solution
Show svn status icons for all items/files in solution explorer

By the way i am using community version of visual studio, and i could help you coding to add this features

Very good suggestion!
Should be easy, the current context menu can be reused
Never looked into adding status icons, but the feature has been requested a couple of times before

Pull requests are always welcome!

As far as I can see this is not possible
Added in the new 3.5 release!
On the todo list ;)


pre-populate vessel name

As a fisherman I would like the app to automatically pre-populate vessel name (in the FISH-1 form) https://github.com/StAResComp/sifids/issues/6

Must - although some vessel owners may have more than one vessel, so perhaps a drop-down menue is needed in that case


parsing numeric bug

Code
// A *self-contained* demonstration of the problem follows...

cherow.parseScript('1e234');

Expected behavior:
1e+234
Actual behavior:
1e234

Closing this as fixed. It will land in my next PR.

@Aladdin-ADD Solved this just now


local network - no passcode prompt for transaction

What happened:

When switching to local network through settings, performing any transaction does not prompt for passcode input

What you expected to happen:

Able to trigger passcode prompt on transactions in local network

How to reproduce it (as minimally and precisely as possible):

Replace URL for LocalPlayground environment in WalletContext and PlaygroundContext with machine's local IP
expo start
npm run playground:start
Run expo go on iOS device, change network to Local
Perform any transaction, e.g.: convert DFI
Notice the transaction went through successfully without passcode prompt

Anything else we need to know?:

Only happen in iPhone 12 iOS 15.1, does not happen in android or web

https://user-images.githubusercontent.com/40191153/141289081-1fe0369d-bc59-4b71-8b76-180e8475e003.MP4

Internally you can setup your wallet without encryption, that might explain why


Support region without WAF

We are deploying a k8s cluster in eu-west-3 and the alb-ingress-controller is crashing with the following error.
I saw this related issue #439 but no resolution is available (a PR https://github.com/kubernetes-sigs/aws-alb-ingress-controller/pull/622 was opened but never merged).
Is there any plan to support region without WAF?

If anyone want it I created this image where the WAF part is commented (because I don't know enough go to correctly fix it): https://hub.docker.com/r/rowern/alb-ingress-controller-helm/
The code is here (to build it yourself): https://github.com/Rowern/aws-alb-ingress-controller/tree/remove-waf

@Rowern will you be able to test https://github.com/kubernetes-sigs/aws-alb-ingress-controller/pull/728 in eu-west-3? I don't have a cluster at hand at test it out 😄
The image i built is docker.io/m00nf1sh/alb-ingress-controller:pull-728, you can built it by checkout #728, and update the makefile to
TAG?=pull-728
PREFIX?=dockerHubUsername/alb-ingress-controller

and executing make clean && make container && make push

@M00nF1sh Sorry for the delay, I just pulled the latest version (v1.0.0) and added the feature gate waf to false and it seems to work (at least no more errors nor crashes)!
Thank you very much for your work! Looking forward to new releases :)
helm registry upgrade quay.io/coreos/alb-ingress-controller-helm -- \
  --set clusterName=redacted \
  --set awsRegion=eu-west-3 \
  --set 'image.pullPolicy=Always' \
  --set podAnnotations."iam\.amazonaws\.com/role"='redacted' \
  --set extraArgs."feature-gates"='waf=false' \
  alb-ingress

@M00nF1sh Sorry for the delay, I just pulled the latest version (v1.0.0) and added the feature gate waf to false and it seems to work (at least no more errors nor crashes)!
Thank you very much for your work! Looking forward to new releases :)
helm registry upgrade quay.io/coreos/alb-ingress-controller-helm -- \
  --set clusterName=redacted \
  --set awsRegion=eu-west-3 \
  --set 'image.pullPolicy=Always' \
  --set podAnnotations."iam\.amazonaws\.com/role"='redacted' \
  --set extraArgs."feature-gates"='waf=false' \
  alb-ingress

You should be able to achieve same effect without specify feature-gates==false, it will be automatically detected 😄


Add multiple servers

It would be kind of good (at least for me, maybe this is niche) if you could specify a list of servers in the settings, such that you try to connect to each of the servers in turn, until one is found that works. I have one GPU server, but it is only available on a specific wifi, and not from my home. I have another GPU server that is accessible from everywhere. It would be great if that server could be accessed automatically when the other is not available.

+1


Single sign-on

Many apps use the OK api, and you currently have to remember to use the right Google email for all of them. This is very easy and to mess up. Instead, they should only have to log in through OK.
Apps that could use this:

ok web interface
ok-client
office hours queue
collaborative editor
lab assistant manager

Update - almost done with it - I'm just making small tweaks now. I'll file a PR soon.


zsh: no matches found: tablib[all]

Dear,
I'm try to use tablib and import the export options. But the line:
pip install tablib[all]
and
pip install tablib[xlsx]
give me the follow error: zsh: no matches found: tablib[xlsx]  orzsh: no matches found: tablib[all]
My setup is macOS + VsCode + Python (venv) 3.8.1
Regards,

Does it work with quotes?
pip install "tablib[all]"
pip install "tablib[xlsx]"

Yeap!
Perhaps this kind of example could be write in documentation (readthedocs).
Thanks @hugovk

Perhaps this kind of example could be write in documentation (readthedocs).

Good idea, I've created PR 474.


[Box] Accept responsive values and variables in Box props

Changes
Box prop types previously didn't allow for responsive values (e.g. arrays/objects) and also did not account for variables in fontWeight.
fontWeight is now a string | number value to accept variable names without compiler errors, as opposed to the union type defined in React.CSSProperties.
Necessity
Without these changes, the following uses in typescript would have compile errors:
{/* "fontWeightBold" is not a valid value of React.CSSProperties["fontWeight"] */}
<Box fontWeight="fontWeightBold">
  ...
</Box>

{/* Type { ... } is not assignable to type string | number */}
<Box m={{ xs: 1, sm: 2, md: 3 }}>
...
</Box>

There are probably other props that need updating, but fontWeight was the only one that I found that seems to have variables that would actually be used. The others are:
flexDirection
flexGrow
flexShrink
flexWrap
overflowX
overflowY
position
textAlign
zIndex

All of these have union types, e.g. "column" | "column-reverse" | "row" | "row-reverse" | ..., and I can't think of any variables that would be used, so it's probably better to keep the union types than lose them for the sake of variables that aren't likely to be used.
Alternative Options
I would have just created a new union type for fontWeight, something like:
fontWeight?:
  | React.CSSProperties['fontWeight']
  | 'fontWeightLight'
  | 'fontWeightRegular'
  | ...

Except that would prevent users from using custom variables, e.g. in our codebase we have a fontWeightExtraBold. The solution to that would be to create and export a named type, e.g. FontWeightValue and set it to the above. I think that's the most complete solution, but starts to get tedious to maintain, so I opted for simple here.

[x] I have followed (at least) the PR section of the contributing guide.

Okay, a few more changes here, that was quite the rabbit hole to go down. I started converting docs demos to typescript (for testing) and found that there were some more type changes that needed to be made and that weren't being tested.
Some notes about the recent changes:

My eslint plugin was throwing errors about jsx in typescript, so I added .tsx files to the acceptable files list. This doesn't affect anything practically, but silences IDE warnings for anybody who's using an IDE with eslint integration. I can revert this if you'd prefer, I just figured it's useful for anybody else in my situation.
The breakpoints function in material-ui-system was typed to accept a style function whose props already has the breakpoints, and then return the same type of style function. It should be that it takes a non-breakpoint-related style function (e.g. typography) and returns a style function with the breakpoints added in. I had to fix this to get the collocation doc demo working without tslint errors.
I added a link in the ResponsiveValue type's jsdoc annotation to the responsive page that shows demos of these responsive props in action. If you don't want jsdoc annotations, I can revert this commit.

Concerning #15548: I don't think that PR addresses the same issues as this one, but if @merceyz doesn't have time to continue working on it I can take a look later today or tomorrow as it's also something my team would find useful. Just let me know.

I'm sorry I forgot this was here. Could you rebase this with master without changing types implementation and see if the demos work? #15884 might've fixed this already.

@eps1lon I have rebased the pull request maintaining the failing case:
import React from 'react';
import { typography, breakpoints } from '@material-ui/system';
import styled from 'styled-components';

const Box = styled.div`
  ${breakpoints(typography)}
`;

/**
 * Outputs:
 *
 * font-size: 12px;
 * @media (min-width: 600px) {
 *   font-size: 18px;
 * }
 * @media (min-width: 960px) {
 *   font-size: 24px;
 * }
 */
export default function CollocationApi() {
  return (
    <Box xs={{ fontSize: 12 }} sm={{ fontSize: 18 }} md={{ fontSize: 24 }}>
      Collocation API
    </Box>
  );
}


Auto complete subcommands using

Had there been an idea of sub-command autocompletion feature? If thats not on the roadmap, I could probably take a stab at that.

Hey, good suggestion I love it. Do you have any ideas how to make it?

Based on a cursory search, it seems like there might not be a good way to do this. :/
https://stackoverflow.com/questions/11625229/can-a-gem-binary-bring-its-own-tab-completion

Yes, looks like there isn't a very ruby way of doing it, so probably the effort for introducing and supporting different flavors of shell to accomplish this task, outweighs the benefits.

Hi folks, I think this should be done with bash, in my company we have a bash binary for our commands (we aren't using hanami cli, just our custom CLI) but I don't know if we should provide that.

Closing this one as outdated and @davydovanton unassigned himself from implementing this.

FYI I build a little gem to bring this feature to dry-cli: https://rubygems.org/gems/dry-cli-completion
More infos see:
https://www.rngtng.com/2022/12/08/enable-tab-completion-dry-cli.html


Runtime Tasks queue up and run on re-adding a job

I'm not sure if this is the expected behaviour... But, after deleting a runtime job, tasks seem to be queued up then executed on re-adding a job with the same name. I'm using Quantum 2.3.4.
Here is an example of what I'm seeing:
# Add job to run every minute
iex> QuantumScheduler.new_job()
|> Quantum.Job.set_name(:ticker)
|> Quantum.Job.set_schedule(~e[* * * * *])
|> Quantum.Job.set_task(fn -> IO.inspect("TICK") end)
|> QuantumScheduler.add_job()

# 1 minute past
"TICK"
# 2 minutes past
"TICK"

iex> QuantumScheduler.delete_job(:ticker)

# 3 minutes past
# 4 minutes past
# 5 minutes past

iex> QuantumScheduler.new_job()
|> Quantum.Job.set_name(:ticker)
|> Quantum.Job.set_schedule(~e[* * * * *])
|> Quantum.Job.set_task(fn -> IO.inspect("TICK") end)
|> QuantumScheduler.add_job()

# Tasks immediately run for minutes 3, 4 and 5 (when the job was deleted above)
# ** This is where I think the issue is **
"TICK"
"TICK"
"TICK"

# 6 minutes past and things continue as normal
"TICK"

Is this the expected behaviour? Once a job is deleted I wouldn't expect it to be queuing up tasks then executing them on re-adding?

Even im experiencing same issue, is i expected behaviour?Is there a way i can avoid reexecution,if job with same is added again?

@TestFirebaseLogin Honestly, I had to move away from quantum-core in the end because of this. Not sure if I was doing something wrong or not - but the recurring stuff I was working on was too mission critical to risk using it.

Sorry about this behavior. I currently lack the time to properly resolve those issues. I'll get back to it some soon I hope.

Fixed on master, will be released with #427


Update README.md

Update directory and command.

The folder should indeed change but the command works. It is defined in the CSS package.json here so is available after installing the dependencies. Which issues are you having with it?

I see.  Well, let's say I'm in the Recipes directory.  And I run community-solid-server (after installing the dependencies, of course).  I get "command not found".  The problem even happened back when I tried to run CSS from the CommunitySolidServer directory.  I've just never gotten the community-solid-server command to run successfully.  npx @solid/community-server was always my hero in getting it to run.

OK I think I'm starting to see the big picture here.  CommunitySolidServer has
"bin": {
   "community-solid-server": "bin/server.js"
 }

Recipes/mashlib does not.  When I run npx @solid/community-server from the mashlib directory, the CSS server runs, along with mashlib.
Was I supposed to drop Recipies into the CommunitySolidServer directory and run it?
Either way, it only runs if I do npx @solid/community-server.  community-solid-server doesn't work for me.
Thanks in advance.

I apologize.  You are correct.  npx community-solid-server does work.  I have to redo this pull request.


Add Support for Custom Language Grammars in processMarkdown (Fixes #11)

Introduced langConfig option to allow custom language grammars and aliases.
Updated test cases to validate custom language support.

Let me know what you think of this. I refactored it into a class. One thing I ran into was that every time processMarkdown was called, it would call mdIt.use again. This way the user creates the processor with their options once, and then they can call processor.process to process markdown with their options.
I also excluded any default languages and made highlight.langs required in the constructor to minimize bundle size.

Bumping to 1.0 since I know someone else is using it, will follow semantic versioning.

I actually preferred the function as opposed to a class. It made it easier to compose. Now it has to be instantiated before usage

Yeah agreed, it is a bit more verbose with the class. So in that case, where would the markdownIt and the highlighter be created? I was having a hard time not calling mdIt.use multiple times on the same MardownIt instance if I put that into the process function and process multiple strings.
I mainly use this during SSR, so I usually need to call it multiple times in different routes after I instantiate it. I'd like to avoid having to create the markdownIt and the highlighter on every call if that makes sense.

Well if you'd like to preserve the way it worked before, then you can call mdIt.use outside the processMarkdown just as it was before. The higher order createProcessMarkdown will call it again but this way the functionality is encapsulated within the higher order, and we'd not have to repeatedly call on mdIt.use on every invocation. I'll update the PR to illustrate. Give me a few minutes :)

I added a new file fp.ts and fp.test.ts to illustrate. I liked the MarkdownProcessorOptions in that it is cleaner. However, it exposes much more for the user to do because now they'd have to understand the inner workings of shiki/core. I'm not sold on my version completely in that I think there can be better organisation of the code and arguments.
However, I pushed it up to illustrate the higher order function. This version preserves the functionality of processMarkdown, meaning you wouldn't have to update code elsewhere like in typo but exposes another function that allows customisation.
The current implementation is far from complete. For example, it would take the defaults no matter what, even if someone doesn't need bash or html but I'm hoping it gives you a better idea about what I am talking about.
Let me know how you'd like to proceed.
Cheers

Hey I really appreciate you showing me this, learned something new about functional programming.
Since it's likely not many people use this package outside of me and you, I think I am going to error on the side of having it be a bit harder to configure but a smaller bundle size by not having the defaults for languages. The size of each language is quite substantial so I think it's better to only include the ones you need. Thanks for making this PR, I think it will be a lot better to have this be configurable now.
I still think even with the class and no defaults, it's not too bad to configure.
import { MarkdownProcessor } from "@robino/md";
import langHtml from "shiki/langs/html.mjs";
import langLua from "shiki/langs/lua.mjs";
import langMd from "shiki/langs/md.mjs";
import langTsx from "shiki/langs/tsx.mjs";

const md = // ...

const processor = new MarkdownProcessor({
	highlighter: {
		langs: [langHtml, langMd, langTsx, langLua],
		langAlias: {
			ts: "tsx",
		},
	},
});

const data = processor.process(md);

Also it speeds up the import since we are not running any code at the top level by using the constructor instead. Then the user can decide when they want to instantiate the code.
Thanks again, I hope this suits your needs.


TypeError: Cannot read property 'include' of undefined

Hello! I'm trying to compile my project with tsc-hooks, but it crashes, with an error message in the console.
I have tsc-hooks and typescript installed locally in the project.
ts-hooks version: ^1.0.9-dev.20210715.1
typescript version: ^4.3.2
tsconfig.json:
{
	"compilerOptions": {
		"module": "commonjs",
		"target": "es2019",
		"outDir": "out",
		"lib": [
			"es2019"
		],
		"sourceMap": true,
		"rootDir": "src",
		"strict": true
	},
	"include": [ "src/**/*" ],
	"exclude": [
		"node_modules",
		".vscode-test",
	],
	"hooks": [ "copy-files" ]
}

Command i run: tsc -p ./
The error message I receive:

Error message
C:\Users\ivank\Documents\VSCodeProjects\VSCodeExtentions\deox-boilerplate\node_modules\tsc-hooks\hooks\copy-files.js:12
    const include = this.tsconfig.include?.map(file => path.resolve(this.tsconfigDir, file));
                                  ^

TypeError: Cannot read property 'include' of undefined
    at Object.onPostCompilation (C:\Users\ivank\Documents\VSCodeProjects\VSCodeExtentions\deox-boilerplate\node_modules\tsc-hooks\hooks\copy-files.js:12:35)
    at process.emit (events.js:412:35)
    at process.exit (internal/process/per_thread.js:169:15)
    at C:\Users\ivank\Documents\VSCodeProjects\VSCodeExtentions\deox-boilerplate\node_modules\typescript\lib\tsc.js:4574:69
    at disableCPUProfiler (C:\Users\ivank\Documents\VSCodeProjects\VSCodeExtentions\deox-boilerplate\node_modules\typescript\lib\tsc.js:4685:21)
    at Object.exit (C:\Users\ivank\Documents\VSCodeProjects\VSCodeExtentions\deox-boilerplate\node_modules\typescript\lib\tsc.js:4574:21)
    at performCompilation (C:\Users\ivank\Documents\VSCodeProjects\VSCodeExtentions\deox-boilerplate\node_modules\typescript\lib\tsc.js:97604:20)
    at executeCommandLineWorker (C:\Users\ivank\Documents\VSCodeProjects\VSCodeExtentions\deox-boilerplate\node_modules\typescript\lib\tsc.js:97485:17)
    at Object.executeCommandLine (C:\Users\ivank\Documents\VSCodeProjects\VSCodeExtentions\deox-boilerplate\node_modules\typescript\lib\tsc.js:97530:20)
    at Object.<anonymous> (C:\Users\ivank\Documents\VSCodeProjects\VSCodeExtentions\deox-boilerplate\node_modules\typescript\lib\tsc.js:97818:4)

I tried to debug it and added console.log(this) before the place of the error, here is the output:
{
  glob: <ref *1> [Function: glob] {
    sync: [Function: globSync] { GlobSync: [Function: GlobSync] },
    GlobSync: [Function: GlobSync],
    glob: [Circular *1],
    hasMagic: [Function (anonymous)],
    Glob: [Function: Glob]
  },
  config: {
    compilerOptions: {
      module: 'commonjs',
      target: 'es2019',
      outDir: 'out',
      lib: [Array],
      sourceMap: true,
      rootDir: 'src',
      strict: true
    },
    include: [
      'src/**/*',
    ],
    exclude: [ 'node_modules', '.vscode-test' ],
    hooks: [ 'copy-files' ]
  },
  tsconfigDir: 'C:\\Users\\ivank\\Documents\\VSCodeProjects\\VSCodeExtentions\\deox-boilerplate',
  tsconfigPath: 'C:\\Users\\ivank\\Documents\\VSCodeProjects\\VSCodeExtentions\\deox-boilerplate\\tsconfig.json',
  args: {}
}

So it seems I have some version error, because this has a bit different API, then your project expecting.
What you can recommend to do, to fix this?

For now, probably best to use the most stable release version 1.0.9.
So run:
yarn remove tsc-hooks && yarn add<EMAIL_ADDRESS>Right now, I've been working on ways to create local hooks, online hooks, pass arguments, and just a lot of destructive things lol, but best to use a stable release. I'll update the docs to reflect that.

Gonna try it, thank you!

Got the same error on 1.0.9-dev.20210715.1, with typescript 4.3.5

@aleksclark
I will hopefully rollout a new version here soon for v1.1.0, but until then probably best to use version 1.0.8.
So again run:
yarn remove tsc-hooks && yarn add<EMAIL_ADDRESS>--dev
Just as an FYI @ivankhm, not sure if you already figured this out, but there is no version 1.0.9 sorry about that.
In the future I'm going to tag the dev versions as dev, so that when you install without a tag, i.e.
npm i tsc-hooks --save-dev or yarn add tsc-hooks --dev, it will install the latest stable release.
I will keep this issue open until the new version releases