[Bug]: Using ResponseMode.NO_TEXT triggers an OpenAI error even when an LLM passed.

Bug Description
I have the next piece of code
query_engine = RetrieverQueryEngine.from_args(
        recursive_retriever,
        llm=llm,
        response_mode=ResponseMode.NO_TEXT,
    )

Even when sending an LLM, it throws the next exception:
******
Could not load OpenAI model. If you intended to use OpenAI, please check your OPENAI_API_KEY.
Original error:
No API key found for OpenAI.
Please set either the OPENAI_API_KEY environment variable or openai.api_key prior to initialization.
API keys can be found or created at https://platform.openai.com/account/api-keys

To disable the LLM entirely, set llm=None.
******

After further inspection on the file llama_index.core.response_synthesizers.factory.get_response_synthetsizer I found the next piece of code on line 157
elif response_mode == ResponseMode.NO_TEXT:
        return NoText(
            streaming=streaming,
            callback_manager=callback_manager,
            prompt_helper=prompt_helper,
            # deprecated
            service_context=service_context,
        )

This is the only response mode that has no llm attribute in its initialization.
Version
0.10.6
Steps to Reproduce
Call a RetrieverQueryEngine, add an LLM and specify the response_mode to NO_TEXT.
Relevant Logs/Tracbacks
******
Could not load OpenAI model. If you intended to use OpenAI, please check your OPENAI_API_KEY.
Original error:
No API key found for OpenAI.
Please set either the OPENAI_API_KEY environment variable or openai.api_key prior to initialization.
API keys can be found or created at https://platform.openai.com/account/api-keys

To disable the LLM entirely, set llm=None.
******
  File "/Users/complyance-ricardo.santos/Library/Caches/pypoetry/virtualenvs/temporal-python-worker-gs97060--py3.11/lib/python3.11/site-packages/llama_index/core/llms/utils.py", line 41, in resolve_llm
    validate_openai_api_key(llm.api_key)
  File "/Users/complyance-ricardo.santos/Library/Caches/pypoetry/virtualenvs/temporal-python-worker-gs97060--py3.11/lib/python3.11/site-packages/llama_index/llms/openai/utils.py", line 343, in validate_openai_api_key
    raise ValueError(MISSING_API_KEY_ERROR_MESSAGE)
ValueError: No API key found for OpenAI.
Please set either the OPENAI_API_KEY environment variable or openai.api_key prior to initialization.
API keys can be found or created at https://platform.openai.com/account/api-keys

During handling of the above exception, another exception occurred:

  File "/Users/complyance-ricardo.santos/Library/Caches/pypoetry/virtualenvs/temporal-python-worker-gs97060--py3.11/lib/python3.11/site-packages/llama_index/core/llms/utils.py", line 48, in resolve_llm
    raise ValueError(
  File "/Users/complyance-ricardo.santos/Library/Caches/pypoetry/virtualenvs/temporal-python-worker-gs97060--py3.11/lib/python3.11/site-packages/llama_index/core/settings.py", line 39, in llm
    self._llm = resolve_llm("default")
                ^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/complyance-ricardo.santos/Library/Caches/pypoetry/virtualenvs/temporal-python-worker-gs97060--py3.11/lib/python3.11/site-packages/llama_index/core/settings.py", line 266, in llm_from_settings_or_context
    return settings.llm
           ^^^^^^^^^^^^
  File "/Users/complyance-ricardo.santos/Library/Caches/pypoetry/virtualenvs/temporal-python-worker-gs97060--py3.11/lib/python3.11/site-packages/llama_index/core/response_synthesizers/base.py", line 67, in __init__
    self._llm = llm or llm_from_settings_or_context(Settings, service_context)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/complyance-ricardo.santos/Library/Caches/pypoetry/virtualenvs/temporal-python-worker-gs97060--py3.11/lib/python3.11/site-packages/llama_index/core/response_synthesizers/factory.py", line 158, in get_response_synthesizer
    return NoText(
           ^^^^^^^
  File "/Users/complyance-ricardo.santos/Library/Caches/pypoetry/virtualenvs/temporal-python-worker-gs97060--py3.11/lib/python3.11/site-packages/llama_index/core/query_engine/retriever_query_engine.py", line 108, in from_args
    response_synthesizer = response_synthesizer or get_response_synthesizer(
                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/complyance-ricardo.santos/Documents/projects/main/apps/temporal-python-worker/src/test.py", line 224, in load
    query_engine = RetrieverQueryEngine.from_args(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/complyance-ricardo.santos/Documents/projects/main/apps/temporal-python-worker/src/test.py", line 236, in <module> (Current frame)
    response = load()
               ^^^^^^
  File "/Users/complyance-ricardo.santos/.pyenv/versions/3.11.8/lib/python3.11/runpy.py", line 88, in _run_code
    exec(code, run_globals)
  File "/Users/complyance-ricardo.santos/.pyenv/versions/3.11.8/lib/python3.11/runpy.py", line 198, in _run_module_as_main
    return _run_code(code, main_globals, None,
ValueError:
******
Could not load OpenAI model. If you intended to use OpenAI, please check your OPENAI_API_KEY.
Original error:
No API key found for OpenAI.
Please set either the OPENAI_API_KEY environment variable or openai.api_key prior to initialization.
API keys can be found or created at https://platform.openai.com/account/api-keys

To disable the LLM entirely, set llm=None.
******

will fix passing this in though sure


Shebangs using different Python binary with latest Docker image in 3.10

Hi there,
We use Python 3.10 for our application Docker images. Our build process utilizes the python:3.10 Docker image to do a pip3 install, and then we copy all the dependencies over into our main Docker image in a multi-stage build. The main Docker image in question is Ubuntu Jammy based and also has Python 3.10.
We install various Python packages in our Docker image. One for example is pylint. Before today, the shebang for /usr/local/bin/pylint was #!/usr/local/bin/python. Today, this is now #!/usr/local/bin/python3.10. Said file does not exist.
I believe this is related to the latest Docker image release: https://hub.docker.com/layers/library/python/3.10/images/sha256-88cf7f1097c7a1afcf157272fd5b82709a97a68bbc4ad97a5a3119af7f2fe58b?context=explore
I'm not sure what has caused this change, likely a pip update or something? But I wanted to report it in the event it's a bug.
Thanks

The shebang is set/determined by the runtime pip3 is run within. For the linked above 3.10.15 image the shebang for /usr/local/bin/pip3 is #!/usr/local/bin/python3.10, and for tag 3.10.14 the shebang is #!/usr/local/bin/python. So this is changed in the actual Docker image by something.
Interestingly both Docker images are running pip version 23.0.1. So I'm not sure what has set this.

@edmorley I wonder if this change in behavior could be coming from the switch to ensurepip

This will presumably be a side-effect of #955.
The prior get-pip.py script was run using python get-pip.py (so I would imagine inherited the versionless python command from that), whereas I imagine the ensurepip run during the build will be run via the exact Python binary that was just built (so eg python3.10):
https://github.com/python/cpython/blob/b1d6f8a2ee04215c64aa8752cc515b7e98a08d28/Makefile.pre.in#L2198
Both shebang lines are technically valid, though I personally feel the new more precise shebang line is generally safer and more appropriate, since it will avoid problems in environments where there are multiple Python versions installed.

The main Docker image in question is Ubuntu Jammy based and also has Python 3.10.

So I just installed python3 on Ubuntu 22.04, and it's not installed into /usr/local/bin/ - so this must be a symlink you are setting up manually?
$ docker run --rm -it ubuntu:22.04 bash
...
root@27ab5e2a497e:/# apt-get update -qq
root@27ab5e2a497e:/# apt-get install -qq python3
...
root@27ab5e2a497e:/# which python3
/usr/bin/python3
root@27ab5e2a497e:/# ls -al /usr/local/bin/
total 12
drwxr-xr-x 2 root root 4096 Aug  8 15:17 .
drwxr-xr-x 1 root root 4096 Aug  8 15:17 ..
root@27ab5e2a497e:/#

If so, I would add additional symlinks for the other python command name variants too (eg python3.10, python3, python etc).
(Though in general, I suspect that trying to copy files from a Debian image to an Ubuntu image is always going to be a bit fragile, and require lots of fixups.)

Both shebang lines are technically valid, though I personally feel the new more precise shebang line is generally safer and more appropriate, since it will avoid problems in environments where there are multiple Python versions installed.

Oh for sure, I don't disagree there. Just felt like an unintended change that, for us at least, has had some knock on consequences. One was python3.10 missing, but that's our fault due to our strange setup.
The other was our Helm chart. We had a couple of probes that were doing pidof python and now don't work as the processes are running under python3.10.
Either way, if you feel this is fine/valid that's ok, I just wanted to surface it.

Ah that makes sense - thank you for raising it. It wasn't a side-effect I'd spotted before (and even if I had, I probably wouldn't have imagined those impacts), so it's good to know about.
If we wanted to switch the shebangs back in the image, we could disable ensurepip during the build again, but instead of switching back to get-pip.py, we could run python -m ensurepip after the Python compile - which I'm presuming would result in python shebangs.
Though as mentioned above, I tend to think the more precise shebangs are probably best longer term.
For anyone affected, a quick way to switch back to the old shebangs as a short-term workaround, is by invoking pip via python -m pip, eg:
$ docker run --rm python:3.10.15-slim bash -c 'python -m pip install pylint &> /dev/null && head -n1 /usr/local/bin/pylint'
#!/usr/local/bin/python


Support configuring the className of the  element

Thank you for this great component!
For those using a CSS library (eg. Bootstrap) there is usually a specific class that we need to add to all <input> elements, such as form-control, for them to follow the library style.
Right now we can replace datepicker__input with form-control in the datepicker JS file (what I'm doing) or copy all the Bootstrap CSS with the datepicker class name.
It would be cool to have className on the Datepicker passed to the input element.

Interesting suggestion. I always imagined that at some point we needed some sort of varaible classNames. If I understand you correctly you're suggesting to only add the option to change the input className?

I used your datepicker on a Bootstrap-based website, and yes, the input was the only className I had to tweak.
I made the following change to my copy of the JS file:
-	      className: "datepicker__input",
+	      className: "form-control ignore-react-onclickoutside",

form-control is Bootstrap's class that has to be applied to form inputs to give them the library's look.
I also added ignore-react-onclickoutside to allow users to choose a date with the picker and then tweak it in the text input, or vice versa. Without it, the picker would close whenever the user clicked on the input, which I thought was sub-optimal.

#109 fixes it


Fill in a bit more ENG translates

Coverage remained the same at 72.327% when pulling f543758a54f1e45879fe14a2e91c27caaed6e9a8 on ChennyBaBy:patch-1 into a3af9c7f2b6b1a64af750aa29c672934503eff71 on dvajs:master.


Add comment support

This adds comment (aka note) support. I only implemented plain text comments, because that's what I needed. Other js parser support rich text too, but that should be relatively easy to add, since we already have the rich text struct in shared strings.

Thanks for the contribution @grin! Can you please run swiftformat . in the root directory of the project, which will fix the lint job on CI?

@grin LGTM, thanks again!


MatplotlibDeprecationWarning from ax.spines[label].set_smart_bounds()

Getting the following MatplotlibDeprecationWarning from here:
/Users/user/miniconda3/envs/env/lib/python3.8/site-packages/splot/_viz_esda_mpl.py:47: MatplotlibDeprecationWarning:
The set_smart_bounds function was deprecated in Matplotlib 3.2 and will be removed two minor releases later.
  ax.spines['left'].set_smart_bounds(True)
/Users/user/miniconda3/envs/env/lib/python3.8/site-packages/splot/_viz_esda_mpl.py:48: MatplotlibDeprecationWarning:
The set_smart_bounds function was deprecated in Matplotlib 3.2 and will be removed two minor releases later.
  ax.spines['bottom'].set_smart_bounds(True)

System Info:
CPython 3.8.5
IPython 7.18.1

compiler   : Clang 10.0.1
system     : Darwin
release    : 19.6.0
machine    : x86_64
processor  : i386
CPU cores  : 8
interpreter: 64bit

Package Info:
esda                2.3.1
libpysal            4.3.0
matplotlib          3.3.2
numpy               1.19.1
scipy               1.5.2
splot               1.1.3

Just ran into this. It seems that this will be removed in Matplotlib 3.4, which is the next minor release, so would be good to look into this before the next release of splot. Some relevant discussion here https://github.com/matplotlib/matplotlib/issues/15417/

It might be worth discussing whether this feature should be replaced or dropped. What do you think @martinfleis @ljwolf @darribas @sjsrey @weikang9009 @jGaboardi?

Currently set_smart_bounds() is not used as a default, as aspect_equal=True is the default and does not rely on smart bounds.
I think set_smart_bounds() is only of value when zstandard = False, aspect_equal=False, and the data range is far away from 0. I wonder though how often is the case that users would need that?

It might be worth discussing whether this feature should be replaced or dropped. What do you think @martinfleis @ljwolf @darribas @sjsrey @weikang9009 @jGaboardi?

Currently set_smart_bounds() is not used as a default, as aspect_equal=True is the default and does not rely on smart bounds.
I think set_smart_bounds() is only of value when zstandard = False, aspect_equal=False, and the data range is far away from 0. I wonder though how often is the case that users would need that?

My recommendation would be to remove and not replace it

I am fine with that.

My recommendation would be to remove and not replace it

I am fine with that.

@slumnitz @martinfleis @sjsrey
ax.spines[<>].set_smart_bounds(<>) is now deprecated in matplotlib (v3.4.2), so we'll need to cut a release of splot ASAP that that incorporates #125.
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-17-f759e0244905> in <module>
      1 fig, ax = matplotlib.pyplot.subplots(figsize=figsize)
----> 2 moran_scatterplot(moran_ntwwn, aspect_equal=False, ax=ax, **pltkwds);

~/miniconda3/envs/py39_spgh_dev/lib/python3.9/site-packages/splot/_viz_esda_mpl.py in moran_scatterplot(moran, zstandard, p, aspect_equal, ax, scatter_kwds, fitline_kwds)
    132             warnings.warn('`p` is only used for plotting `esda.moran.Moran_Local`\n'
    133                           'or `Moran_Local_BV` objects')
--> 134         fig, ax = _moran_global_scatterplot(moran=moran, zstandard=zstandard,
    135                                             ax=ax, aspect_equal=aspect_equal,
    136                                             scatter_kwds=scatter_kwds,

~/miniconda3/envs/py39_spgh_dev/lib/python3.9/site-packages/splot/_viz_esda_mpl.py in _moran_global_scatterplot(moran, zstandard, aspect_equal, ax, scatter_kwds, fitline_kwds)
    242
    243     # get fig and ax
--> 244     fig, ax = _create_moran_fig_ax(ax, figsize=(7, 7),
    245                                    aspect_equal=aspect_equal)
    246

~/miniconda3/envs/py39_spgh_dev/lib/python3.9/site-packages/splot/_viz_esda_mpl.py in _create_moran_fig_ax(ax, figsize, aspect_equal)
     45         ax.set_aspect('equal')
     46     else:
---> 47         ax.spines['left'].set_smart_bounds(True)
     48         ax.spines['bottom'].set_smart_bounds(True)
     49     return fig, ax

AttributeError: 'Spine' object has no attribute 'set_smart_bounds'

It is just a matter of a release, right? I'll make a quick PR for #130 at some point today and we can release.

Yes, I believe so. The only place where set_smart_bounds was used was in _viz_esda_mpl.py._create_moran_fig_ax(), and that was removed.
@slumnitz would you be good for a release after Martin's PR?


single gpu retina training problem

I am trying to run CUDA_VISIBLE_DEVICES=0 python tools/train.py configs/wider/retinanet_r50_fpn_1x_wider.py

imgs_per_gpu=2
11Gb total gpu memory
working inside docker container
using proxy

and got error at some iteration:
2019-06-26 13:28:45,743 - INFO - Epoch [1][2104/12880]  lr: 0.01000, eta: 1 day, 6:05:06, time: 0.335, data_time: 0.008, memory: 9847, loss_cls: 0.8375, loss_bbox: 0.5142, loss: 1.3517                                            [12/1944]
2019-06-26 13:28:46,084 - INFO - Epoch [1][2105/12880]  lr: 0.01000, eta: 1 day, 6:05:04, time: 0.341, data_time: 0.008, memory: 9847, loss_cls: 0.8220, loss_bbox: 0.8251, loss: 1.6471
2019-06-26 13:28:46,424 - INFO - Epoch [1][2106/12880]  lr: 0.01000, eta: 1 day, 6:05:02, time: 0.340, data_time: 0.008, memory: 9847, loss_cls: 0.7455, loss_bbox: 0.4926, loss: 1.2380
Traceback (most recent call last):
  File "tools/train.py", line 95, in <module>
    main()
  File "tools/train.py", line 91, in main
    logger=logger)
  File "/home/other/study/mmdetection-wider/mmdet/apis/train.py", line 61, in train_detector
    _non_dist_train(model, dataset, cfg, validate=validate)
  File "/home/other/study/mmdetection-wider/mmdet/apis/train.py", line 197, in _non_dist_train
    runner.run(data_loaders, cfg.workflow, cfg.total_epochs)
  File "/root/miniconda3/lib/python3.7/site-packages/mmcv-0.2.8-py3.7.egg/mmcv/runner/runner.py", line 356, in run
    epoch_runner(data_loaders[i], **kwargs)
  File "/root/miniconda3/lib/python3.7/site-packages/mmcv-0.2.8-py3.7.egg/mmcv/runner/runner.py", line 262, in train
    self.model, data_batch, train_mode=True, **kwargs)
  File "/home/other/study/mmdetection-wider/mmdet/apis/train.py", line 39, in batch_processor
    losses = model(**data)
  File "/root/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in __call__
    result = self.forward(*input, **kwargs)
  File "/root/miniconda3/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 150, in forward
    return self.module(*inputs[0], **kwargs[0])
  File "/root/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/other/study/mmdetection-wider/mmdet/models/detectors/base.py", line 84, in forward
    return self.forward_train(img, img_meta, **kwargs)
  File "/home/other/study/mmdetection-wider/mmdet/models/detectors/single_stage.py", line 55, in forward_train
    *loss_inputs, gt_bboxes_ignore=gt_bboxes_ignore)
  File "/home/other/study/mmdetection-wider/mmdet/models/anchor_heads/anchor_head.py", line 177, in loss
    sampling=self.sampling)
  File "/home/other/study/mmdetection-wider/mmdet/core/anchor/anchor_target.py", line 63, in anchor_target
    unmap_outputs=unmap_outputs)
  File "/home/other/study/mmdetection-wider/mmdet/core/utils/misc.py", line 24, in multi_apply
    return tuple(map(list, zip(*map_results)))
  File "/home/other/study/mmdetection-wider/mmdet/core/anchor/anchor_target.py", line 120, in anchor_target_single
    gt_bboxes_ignore, gt_labels)
  File "/home/other/study/mmdetection-wider/mmdet/core/bbox/assigners/max_iou_assigner.py", line 76, in assign
    overlaps = bbox_overlaps(gt_bboxes, bboxes)
  File "/home/other/study/mmdetection-wider/mmdet/core/bbox/geometry.py", line 59, in bbox_overlaps
    ious = overlap / (area1[:, None] + area2 - overlap)
RuntimeError: CUDA out of memory. Tried to allocate 882.00 MiB (GPU 0; 10.92 GiB total capacity; 9.67 GiB already allocated; 447.50 MiB free; 200.14 MiB cached)

why is it so? This gpu was free all the time from any other procesess.

What is your configs/wider/retinanet_r50_fpn_1x_wider.py?

# model settings
model = dict(
    type='RetinaNet',
    pretrained='modelzoo://resnet50',
    backbone=dict(
        type='ResNet',
        depth=50,
        num_stages=4,
        out_indices=(0, 1, 2, 3),
        frozen_stages=1,
        style='pytorch'),
    neck=dict(
        type='FPN',
        in_channels=[256, 512, 1024, 2048],
        out_channels=256,
        start_level=1,
        add_extra_convs=True,
        num_outs=5),
    bbox_head=dict(
        type='RetinaHead',
        num_classes=2,
        in_channels=256,
        stacked_convs=4,
        feat_channels=256,
        octave_base_scale=4,
        scales_per_octave=3,
        anchor_ratios=[0.5, 1.0, 2.0],
        anchor_strides=[8, 16, 32, 64, 128],
        target_means=[.0, .0, .0, .0],
        target_stds=[1.0, 1.0, 1.0, 1.0],
        loss_cls=dict(
            type='FocalLoss',
            use_sigmoid=True,
            gamma=2.0,
            alpha=0.25,
            loss_weight=1.0),
        loss_bbox=dict(type='SmoothL1Loss', beta=0.11, loss_weight=1.0)))
cudnn_benchmark = True
train_cfg = dict(
    assigner=dict(
        type='MaxIoUAssigner',
        pos_iou_thr=0.5,
        neg_iou_thr=0.4,
        min_pos_iou=0,
        ignore_iof_thr=-1),
    allowed_border=-1,
    pos_weight=-1,
    debug=False)
test_cfg = dict(
    nms_pre=1000,
    min_bbox_size=0,
    score_thr=0.05,
    nms=dict(type='nms', iou_thr=0.5),
    max_per_img=100)
# model training and testing settings
# dataset settings
dataset_type = 'WIDERDataset'
data_root = 'data/WIDER/'
img_norm_cfg = dict(
    mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
# img_norm_cfg = dict(
#     mean=[123.675, 116.28, 103.53], std=[1., 1., 1.], to_rgb=True)
data = dict(
    imgs_per_gpu=2,
    workers_per_gpu=2,
    train=dict(
        type='RepeatDataset',
        times=2,
        dataset=dict(
            type=dataset_type,
            ann_file=[
                data_root + 'train.txt',
            ],
            img_prefix=[data_root + 'WIDER_train/'],
            img_scale=(1333, 800),
            img_norm_cfg=img_norm_cfg,
            size_divisor=32,
            flip_ratio=0.5,
            with_mask=False,
            with_crowd=False,
            with_label=True,
            test_mode=False,
            extra_aug=dict(
                photo_metric_distortion=dict(
                    brightness_delta=32,
                    contrast_range=(0.5, 1.5),
                    saturation_range=(0.5, 1.5),
                    hue_delta=18),
                expand=dict(
                    mean=img_norm_cfg['mean'],
                    to_rgb=img_norm_cfg['to_rgb'],
                    ratio_range=(1, 4)),
                random_crop=dict(
                    min_ious=(0.1, 0.3, 0.5, 0.7, 0.9), min_crop_size=0.3)),
            resize_keep_ratio=False)
        ),
    val=dict(
        type=dataset_type,
        ann_file=data_root + '/val.txt',
        img_prefix=data_root + 'WIDER_val/',
        img_scale=(1333, 800),
        img_norm_cfg=img_norm_cfg,
        size_divisor=32,
        flip_ratio=0,
        with_mask=False,
        with_label=True,
        resize_keep_ratio=False),
    test=dict(
        type=dataset_type,
        ann_file=data_root + '/val.txt',
        img_prefix=data_root + 'WIDER_val/',
        img_scale=(1333, 800),
        img_norm_cfg=img_norm_cfg,
        size_divisor=32,
        flip_ratio=0,
        with_mask=False,
        with_label=False,
        test_mode=True,
        resize_keep_ratio=False))
# optimizer
optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=1e-4)
optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2))
# learning policy
lr_config = dict(
    policy='step',
    warmup='linear',
    warmup_iters=1000,
    warmup_ratio=1.0 / 3,
    step=[16, 20])
checkpoint_config = dict(interval=1)
# yapf:disable
log_config = dict(
    interval=1,
    hooks=[
        dict(type='TextLoggerHook'),
        dict(type='TensorboardLoggerHook')
    ])
# yapf:enable
# runtime settings
total_epochs = 24
# device_ids = range(8)
dist_params = dict(backend='nccl')
log_level = 'INFO'
work_dir = './work_dirs/retinanet_r50_fpn_1x_wider'
load_from = None
resume_from = None
workflow = [('train', 1)]

There may be too many gt bboxes in an image in WIDER FACE, so that you can encounter the OOM issue. Refer to #188 and #583 for solutions.

I wonder to know the map of the model(retinanet_r50_fpn_1x.py) with the voc dataset, and the machine is 1080tiGPU


How to change access log time

Hello
I have been looking for a long time where I can change the time parameter of the traefik access log.
Is there any way to do this?
I was able to change the traefik log, but not its access log, is there any parameter I can use?
Example:

The Traefik log is ok, but access log is wrong.

Hi! I'm Træfiker :robot: the bot in charge of communication regulation.
Thanks for your interest in Træfik!
We dedicate the issue tracker to bug reports and feature requests only.
If you have questions and need community support, you can join our Slack workspace and reach out to us on the #support channel.
Another option is to use Stack Overflow and tag your question traefik.
Of course, double checking Træfik's documentation is always a good idea :sweat_smile:


bug: can't create a llamalend bot on arbitrum

Couldn't start bot, Fetching Prices takes forever. Deposit price doesn't show

This is an API error https://one.palomachain.com/swap?fromTokenAddress=0xf939e0a03fb07f59a73314e73794be0e57ac1b4e&toTokenAddress=0x9D39A5DE30e57443BfF2A8307A4256c8797A3497&amount=200260119350986940638&fromAddress=&slippage=1&disableEstimate=true&chain=42161
@jamie088 will you confirm if that is the only issue with arbitrum?

Fixed.


Azure Monitor Query - Support getting a list of T for all rows in the table.

public <T> T getRowAsObject(Class<T> type)

What if customers want to get all of rows as the T? Should we give them a simplified way to convert entire table/result?

This is already supported in LogsQueryClient through query() method that returns List<T>.


popover positioning near bottom only works once

Bug Report
Ionic Info
Ionic:

   ionic (Ionic CLI)          : 4.1.1 (/usr/local/lib/node_modules/ionic)
   Ionic Framework            : @ionic/angular 4.0.0-beta.3
   @angular-devkit/core       : 0.7.0-rc.3
   @angular-devkit/schematics : 0.7.0-rc.3
   @angular/cli               : 6.0.8
   @ionic/ng-toolkit          : 1.0.0
   @ionic/schematics-angular  : 1.0.0

Capacitor:

   capacitor (Capacitor CLI) : 1.0.0-beta.7
   @capacitor/core           : 1.0.0-beta.7

Cordova:

   cordova (Cordova CLI) : 8.0.0
   Cordova Platforms     : none
   Cordova Plugins       : no whitelisted plugins (0 plugins total)

System:

   NodeJS : v8.10.0<EMAIL_ADDRESS>   npm    : 6.4.0
   OS     : macOS High Sierra
   Xcode  : Xcode 9.3 Build version 9E145

Describe the Bug
The popover appears at the correct position the first time (although without arrow), all following clicks result in popover being shown mostly below the viewport. See gif for unexpected behaviour:

Expected Behavior
I would expect the popover to appear at the same position every time.
Additional Context
I suspect the containing HTML element has become longer after showing the popover once, therefore allowing the popover to show under the icon the next time.

The bottom popover in the documentation has the same problem, so easily reproducible: https://beta.ionicframework.com/docs/api/popover

related: https://github.com/ionic-team/ionic/issues/15237


App window does not reappear on Mac if closed via top-left "red cross" button

Great app! Finally, something that can play Spotify on a Mac without eating up CPU.
Describe the bug
App window does not reappear on Mac if closed via top-left "red cross" button.
To Reproduce

Run on Mac
Start playback (I assume this is optional step)
Click the close button (red cross) in the top-left corner of the window
Click app icon in the dock

Expected behavior
Expected: App window to be shown again on screen.
Actual: Nothing happens.
Environment

OS: MacOS Monterrey
Version: 12.01

Hi, thanks for the report! We already have #139 open for this.


Updated devise config

Devise automatically sets it's secret_key from secret_key_base by default: https://github.com/plataformatec/devise/blob/v3.2.3/CHANGELOG.md#323

Coverage decreased (-0.0003%) to 99.351% when pulling 21c7b5e97ef56fdb117bea767c0bc45ff797acac on broder:devise_config into b7ad87cc8abc57a72e9f8b41979e39df50be3b5c on openfarmcc:master.

Awesome! Thanks for all of these small fixes @broder. Definitely overdue for some clean up. It's very much appreciated :)


Fix Leaderboard error 500

Added user in_app_id
Added new get request for leaderboard users
Changed build versions
Fixed leaderboard error 500 (fixed #19 )
Epic Games know how to break something 😅

This is great; thank you! How exactly did you find out what they changed? Last I checked, the mobile apps didn't have leaderboards and the Windows builds have certificate pinning built into the anti-cheat.

@Tustin I saw that leaderboard request is json and there were some json data, data was ids of players. I take 1 id from the leaderboard request and i found that this id was taken from the cohort request and after some checks, i try with postman to check is everting okay i apply a patch to this problem.  I'm waiting for my friend to give me access to an account which has Save The World and i will check is any available api. :)

@Krokit
"Class 'Fortnite\LeaderboardNotFoundException' not found"
copied the changes but still same error

@Krokit
how to get data for example
All Platforms?
or All Time not for the current season ?
All Modes?

@Krokit any idea?

@NeVeR2TrY  I will check it. 😄


feat: search filters

search should be able to filter things by cs, ranked status, etc whats supported by mirrors

filters:

[ ] gamemode
[ ] ranked status
[ ] cs
[ ] ar
[ ] star rating

sorting:

[ ] star rating
[ ] length
[ ] date (submitted/ranked)
[ ] playcount


Export packages locks .config file

After exporting the list of installed packages to a .config file, the exported file stays locked and is not movable/renamable/deletable until ChocolateyGUI (v0.16.0, Win10/64) is terminated.

@elpatron68 thank you for raising this.  This has been corrected, and it will be released in the next release of Chocolatey GUI, 0.17.0.


chore(master): release 3.1.0

:robot: I have created a release beep boop
3.1.0 (2024-07-26)
Features

annotation: fix topic parse, using positive_const_int/cosnt_expr but not literal (81cdda6)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v3.1.0
:sunflower:


Support for accent-folding

Hello! I was wondering if there were any plans to add support for accent-folding. If not, it might be something I'd be interested in tackling.

This should already be possible using the Sanitizer interface.
For example, borrowing from the page you linked to, if you index the following set of names with js-search:

Fulanito López
Erik Lørgensen
Lorena Smith
James Lö

Using the default Sanitizer (LowerCaseSanitizer) searching for "o" would only return "Lorena Smith". But if your sanitizer converted "ó", "ø", and "ö" to "o" during the indexing process then searching for "o" would match all 4 records.
If you'd be interested in contributing a sanitizer that handles accent folding, I'd be happy to add it to the library. This should get you started:
const ACCENT_MAP = {
  'ó': 'o',
  'ø': 'o',
  'ö': 'u'
  // Other characters here....
};

class AccentFoldingSanitizer {
  sanitize(text) {
    if (!text) {
      return '';
    } else {
      let sanitized = '';

      for (let i = 0; i < text.length; i++) {
        const char = text[i];

        sanitized += ACCENT_MAP.hasOwnProperty(char) ? ACCENT_MAP[char] : char;
      }

      return sanitized;
    }
  }
};

I think this issue can be closed without further action- but let's talk more (or feel free to submit a PR) if you'd like 👍


Add helm app repository support

With our charts moving to the quay app repository, add config support for utilizing them via the helm repository plugin.

why is this in TCME?

Originally I was looking at this in the context of kube-lego. It's far less appropriate now.

This has been taken care of, right? https://github.com/samsung-cnct/k2/pull/613


Switch out the devicescale implementation by one that relies on glfw/xrandr.

This should fix fullscreen mode on Linux/X11 systems in general,
while not affecting other systems.

This change is not expected to cause regressions, however,
the current behavior is still wrong and leads to wrong/unintended window sizes.
To be fixed in further PRs.
This is part of fixing #1774.

Done. A mistake when splitting the patch into many. Sorry about that.
On Tue, Sep 7, 2021 at 7:34 PM Hajime Hoshi @.***>
wrote:

Thanks!
Could you fix the test failure on the Windows bot?
internal\devicescale\impl_desktop_nonunix.go:21:26: monitorAt(x, y).GetContentScale undefined (type *glfw.Monitor has no field or method GetContentScale)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/hajimehoshi/ebiten/pull/1800#issuecomment-914852723,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAB5NMA3QVOLLQGZ3I5LQS3UA3DUNANCNFSM5DTGGWJQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Also fixed some build tags I had screwed up, compiling the unix code on js too.

Thank you for your work!
Let me test your PR on my machines for a while.

I'm sorry for keeping you wait... As I'm busy today, I'll take a look tomorrow (Friday).

Sure, no problem.
On Thu, Sep 9, 2021 at 8:20 AM Hajime Hoshi @.***>
wrote:

I'm sorry for keeping you wait... As I'm busy today, I'll take a look
tomorrow (Friday).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/hajimehoshi/ebiten/pull/1800#issuecomment-916198084,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAB5NMEIMK3M5MSJ62LJW63UBDGFDANCNFSM5DTGGWJQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

I'll merge this tomorrow if you don't have additional commits.


GEOMESA-2841 ILIKE queries with invalid regexp throw tserver errors

Signed-off-by: Jim Hughes<EMAIL_ADDRESS>

merged as 68cedbf402f902d9086178d831baa604ab2d7648


feat: Implement Drop for StfpSession

Currently, we need to manually call close() on a SftpSession, because it has an async signature, that won't allow us to call it in a Drop  implementation.
This change aims to automatically call close() during Drop, like what is done on RawSftpSession.

I think this should be optional and defined in the builder implementation that #35 requires because this can lead to unexpected behavior like this:

Example:
let file = async move {
        info!("one-time use");
        let sftp = SftpSession::new(channel.into_stream()).await.unwrap();
        sftp.create("test.txt").await.unwrap()
}.await;
info!("before receiving metadata");
info!("metadata {:?}", file.metadata().await);


refactor: mitigate FOUC when applying Prism theme

Pre-flight checklist

[x] I have read the Contributing Guidelines on pull requests.
[ ] If this is a code change: I have written unit tests and/or added dogfooding pages to fully verify the new behavior.
[ ] If this is a new API or substantial change: the PR has an accompanying issue (closes #0000) and the maintainers have approved on my working plan.

Motivation

This is an attempt to eliminate the flickering background of code blocks when dark mode is on, as well as the duplication of the Prism-related CSS vars. As you can see below, this does not completely fix FOUC, but the result is better than earlier.
Before

After

Test Plan
Preview

Related issues/PRs

cc @jpdriver since we had been talking about the state of prism-react-renderer in https://github.com/facebook/docusaurus/issues/6246 — Do you think if it's possible that PRR exposed these CSS variables, or even change its theming approach from inline styles to using CSS?

this is actually really good news, and I'm glad that you guys are taking steps to address this,
if I understand this correctly, i should be able to replace my custom implementation for editor colors that i did for https://github.com/typescript-eslint/typescript-eslint/pull/4324

@armano2 I think your approach is what we should do ultimately (i.e. what I'm talking about in my comment above). Here we are simply extracting the background color, but all token colors will be lost on SSR.


Check for "Shanlax International Journals"

http://www.shanlaxjournals.in/
The journal website has no detailed information. In post section, only posted for article submission without any information about open access

Shanlax International Journals are print journals.  So, previously, we maintained our website only for information purpose. Anyhow, now at present, we make our website as complete one and furnish all the necessary policies and details requested.  Thank you for your constructive feedback.


Mesh expansion/VM updates for missing .sh typos/dups, clarifications,...

fixes from trying and user reports

Jenkins job istio.github.io/presubmit passed

Jenkins job istio.github.io/presubmit passed

Jenkins job istio.github.io/presubmit passed

/lgtm

I am not merging this yet on purpose; making more tweaks as I test/go through the steps
Also https://github.com/istio/istio/pull/1114

Jenkins job istio.github.io/presubmit passed

Jenkins job istio.github.io/presubmit passed

Jenkins job istio.github.io/presubmit passed

Jenkins job istio.github.io/presubmit passed

Jenkins job istio.github.io/presubmit passed


Adds support for result passing between screens

Closes #110
Adds support to pass results between screen for Navigator and BottomSheetNavigator.
using Navigator.
Passing the result
    //you can also pass your own key or key of the screen will be the default result key
     navigator.popWithResult("This is result")

     navigator.popUntilWithResult(
     { screen -> screen is ProductDetailsScreen },
     data)

Getting the result
 destinationsNavigator
        .getResult<Boolean>(LocalNavigator.currentOrThrow.lastItem.key)
        .value
        ?.let { result -> onAddedToCart(result) }

using BottomSheetNavigator:
Passing the result

 bsNavigator.hideWithResult(Pair(item.id, item.data), "my-key")

Getting the result:
   bottomSheetNavigator.getResult<Pair>(screenKey = "my-key").value?.let {result->
        //do something with the result here
    }

@adrielcafe @DevSrSouza

@Kashif-E HI, we will have a look on this soon (testing and trying on our samples), don't know if it will be for 1.0 that will be soon released.
I will let your know soon!

@DevSrSouza @adrielcafe

Hey guys, any updates on this?

@DevSrSouza any update ?

@DevSrSouza @adrielcafe this is something we really need can you please help here?

@Kashif-E Have you given up on this? :(

@jakoss i hate to admit this but yes, but, i am thinking about making my fork a separate library.

@jakoss i hate to admit this but yes, but, i am thinking about making my fork a separate library.

More fragmentation for navigation libraries for compose, but i understand the reason. This thread is too ignored at this point

@Kashif-E Can we get back here? Forgive us for inactivity, this feature is very important and we want it on Voyager
Please let me know if you can continue here, I will take care of reviewing it and ensuring it is merged, if not possible I will continue it myself. Thank you in advance for your time and contribution!! 🙏🏽

I don't feel like this implementation is ideal for Voyager, I would prefer something like the one displayed here would be better.
https://www.droidcon.com/2022/08/02/painless-typesafe-jetpack-compose-navigation-with-voyager/
I feel it clutters the navigator when it could just be a module added on-top of it

1 issue I find with this is that it uses String keys, I find that with Kotlin I would prefer to have a TypeSafe key to Value object that allows managing types inherently. Something like this
interface TypedKey<T>

object DataId : TypedKey<Long>

private val typedKeyMap: Map<TypedKey<*>, Any>

fun <T> putInTypedKeyMap(typedKey: TypedKey<T>, value): T {
    typedKeyMap[typedKey] = value
}

fun <T> getFromTypedKeyMap(typedKey: TypedKey<T>): T {
    return typedKeyMap[typedKey] as T
}

@Syer10 Great! What we want here is the "possibility of passing results between screens" the way, api, imp in which this will be done has not yet been defined. Also agree that such a feature should be something "more" and not tied to the navigator. What you said will be considered, thanks!

@Syer10  what you said is perfectly right. However, there are a few things that should be considered here

Strings are chosen over type-safe keys because screen keys are inherently strings, eliminating the need for custom keys for each result.
Binding results to navigators enhances developer ergonomics, simplifying result access and aligning with screen-based mental models.

Both are valid and reasonable, do you guys @Kashif-E @Syer10 have any example code (in Voyager) so that we can reach a consensus on what will be best for everyone? I'm also considering how this will work for Web platform and Multi-module feature (ScreenProvider)

@DevNatan I have been using this code for our main app for more than 6 months now and it's been working great.

I have baked your API without requiring to change any internal voyager APIs, could you try it out? If it works for you, we could provide this a result API examples.
public val navigationResult: VoyagerResultExtension
    @Composable get() = rememberResultExtension()

@Composable
public fun rememberResultExtension(): VoyagerResultExtension {
    val navigator = LocalNavigator.currentOrThrow

    return remember {
        NavigatorLifecycleStore.register(navigator) {
            VoyagerResultExtension(navigator)
        }
    }
}

class VoyagerResultExtension(
    private val navigator: Navigator
) : NavigatorDisposable {
    private val results = mutableStateMapOf<String, Any?>()

    override fun onDispose(navigator: Navigator) {
        // not used
    }

    public fun setResult(screenKey: String, result: Any?) {
        results[screenKey] = result
    }

    public fun popWithResult(result: Any? = null) {
        val currentScreen = navigator.lastItem
        results[currentScreen.key] = result
        navigator.pop()
    }

    public fun clearResults() {
        results.clear()
    }

    public fun popUntilWithResult(predicate: (Screen) -> Boolean, result: Any? = null) {
        val currentScreen = navigator.lastItem
        results[currentScreen.key] = result
        navigator.popUntil(predicate)
    }

    @Composable
    public fun <T> getResult(screenKey: String): State<T?> {
        val result = results[screenKey] as? T
        val resultState = remember(screenKey, result) {
            derivedStateOf {
                results.remove(screenKey)
                result
            }
        }
        return resultState
    }
}

+1 for @DevSrSouza's implementation

this looks great @DevSrSouza

This could get into the documentation IMHO @DevSrSouza

Did it work for you @Kashif-E ?
@osrl we are planning to create a documentation page with "community extension and third party libraries"

Is it possible to use this snippet with a BottomSheetNavigator? @DevSrSouza

@DevSrSouza  it works, 🎆🎆 @osrl  both mine and what @DevSrSouza  proposed can be used with bottomsheet navigator

NavigatorLifecycleStore.register takes only Navigator so I couldn't find a way to use @DevSrSouza's code.

@osrl  you can use these extensions, remove the actual keyword

/**
 * Navigator
 */
private val results = mutableStateMapOf<String, Any?>()

/**
 * Navigator
 */
private val results = mutableStateMapOf<String, Any?>()

actual fun Navigator.pushX(screen: Screen) {
    val existingScreen = items.firstOrNull { it.key == screen.key }
    if (existingScreen == null) {
        push(screen)
    }
}

actual fun Navigator.replaceAllX(screen: Screen) {
    if (items.last().key != screen.key && items.last().uniqueScreenKey != screen.uniqueScreenKey) {
        replaceAll(screen)
    }
}

actual fun Navigator.popUntilWithResult(predicate: (Screen) -> Boolean, result: Any?) {
    val currentScreen = lastItem
    results[currentScreen.key] = result
    popUntil(predicate)
}

actual fun Navigator.clearResults() {
    results.clear()
}

@Composable
actual fun <T> Navigator.getResult(screenKey: String): State<T?> {
    val result = results[screenKey] as? T
    val resultState = remember(screenKey, result) {
        derivedStateOf {
            results.remove(screenKey)
            result
        }
    }
    return resultState
}

/**
 * bottom sheet navigator
 */

@OptIn(ExperimentalMaterialApi::class)
actual fun BottomSheetNavigator.hideWithResult(result: Any?, key: String) {
    results[key] = result
    this.hide()

}

@Composable
actual fun <T> BottomSheetNavigator.getResult(screenKey: String): State<T?> {
    val result = results[screenKey] as? T
    val resultState = remember(screenKey, result) {
        derivedStateOf {
            results -= screenKey
            result
        }
    }
    return resultState
}actual fun Navigator.pushX(screen: Screen) {
    val existingScreen = items.firstOrNull { it.key == screen.key }
    if (existingScreen == null) {
        push(screen)
    }
}

actual fun Navigator.replaceAllX(screen: Screen) {
    if (items.last().key != screen.key && items.last().uniqueScreenKey != screen.uniqueScreenKey) {
        replaceAll(screen)
    }
}

actual fun Navigator.popUntilWithResult(predicate: (Screen) -> Boolean, result: Any?) {
    val currentScreen = lastItem
    results[currentScreen.key] = result
    popUntil(predicate)
}

actual fun Navigator.clearResults() {
    results.clear()
}

@Composable
actual fun <T> Navigator.getResult(screenKey: String): State<T?> {
    val result = results[screenKey] as? T
    val resultState = remember(screenKey, result) {
        derivedStateOf {
            results.remove(screenKey)
            result
        }
    }
    return resultState
}

/**
 * bottom sheet navigator
 */

@OptIn(ExperimentalMaterialApi::class)
actual fun BottomSheetNavigator.hideWithResult(result: Any?, key: String) {
    results[key] = result
    this.hide()

}

@Composable
actual fun <T> BottomSheetNavigator.getResult(screenKey: String): State<T?> {
    val result = results[screenKey] as? T
    val resultState = remember(screenKey, result) {
        derivedStateOf {
            results -= screenKey
            result
        }
    }
    return resultState
}

@DevSrSouza  This works, it's great, but it seems a little cumbersome to use, maybe I'm using it the wrong way?
If you want to get the result of the second page on the first page, you need to get the Key of the second page.
However, due to life cycle issues, the first page can only get the current value by directly using Navigator.lastItem.key. The Key of the page, not the Key of the second page,so you need to use the following method to obtain the result on the first page:
var lastItemKey: String? by rememberSaveable {
    mutableStateOf(null)
}
Box(modifier = Modifier.clickable {
    navigator.push(SecondPageScreen())
    lastItemKey = navigator.lastItem.key
})
if (lastItemKey != null) {
    val result by navigator.navigationResult
        .getResult<String>(lastItemKey!!)
}

@0xZhangKe  it does not matter what you use as key for example you use "papi chulo" as key when passing back result and use it on first screen

@0xZhangKe  it does not matter what you use as key for example you use "papi chulo" as key when passing back result and use it on first screen

@Kashif-E This means that the first page must clearly know the Key of the second page. If the two Screens are in different modules and cannot reference each other, then this will become a bit troublesome.
Generally speaking, this situation is It doesn't exist, but I'm currently encountering this problem.
My two pages belong to two modules. The first page discovers the second page through routing, so I can only do this.

@0xZhangKe  try this
navigator.popWithResult( key="gender", result=true  ) //you can use any key here

use the result like this
 navigator.getResult<Boolean>("gender").value?.let {booli->
       navigator.popWithResult("phone", booli)
   }

I think that there is a confusion here. Voyager is Screen based navigation and if you needs the result it should be handled by the previous screen and not returned to the navigation stack action call.
So, doing something like behaviors below should be accepted:
interface PopResult<in T> {
    fun onResult(result: T)
}

class MyScreen : Screen, PopResult<T> {
    fun onResult(result: T) {
        // handle the popped result
    }
}

// Inside screen Content() that will be popped
val navigator = LocalNavigator.currentOrThrow
navigator.pop() // It is a sync call and will not trigger recomposition immediatelly
val nextScreen = navigator.lastItemOrNull as? PopResult<T>
nextScreen?.onResult(...)

meanwhile there is no official support, I'm currently using this if anyone needs, it enforces some type safety by sending "request" to the next screen.  It's almost the same as DevSrSouza proposal, but nav library agnostic.
// Root
ProvideNavResultStateHolder() {
   Navigator(Screen1())
}

// Screen1
val contract = rememberNavResultContract<Int>(key)
val response = contract.response.value
val isCurrentScreen = navigator.isCurrentScreen(key)

LaunchedEffect(response, isCurrentScreen) {
  if(!isCurrentScreen) return@LaunchedEffect
  if(response !is NavResult.Value<>) return@LaunchedEffect
  // Do something
  contract.consume()
}

Button(
  onClick = {
      navigator.push(Screen2(contract.request))
  }
) {
   Text("Push")
}

// Screen2
val contract = rememberNavResultContract<Int>(request)

Button(
  onClick = {
      contract.send(0)
      navigator.pop()
  }
) {
      Text("Pop")
}

We all are still waiting for this PR.
@DevNatan

Any updates?

We all are still waiting

@Composable
public fun rememberNavigationResultExtension(): VoyagerResultExtension {
    val navigator = LocalNavigator.currentOrThrow

    return remember {
        NavigatorLifecycleStore.register(navigator) {
            VoyagerResultExtension(navigator)
        }
    }
}

Where is this register function located?

Where is this register function located?

It was renamed to get in one of the recent releases. It is basically a getOrCreate

Where is this register function located?

It was renamed to get in one of the recent releases. It is basically a getOrCreate

thanks, did look into it but not quite sure

Hey guys,
I'd like to share with you how I modified @DevSrSouza extension to be able to use delegation instead of passing back the results.
VoyagerScreenDelegate.kt
val Navigator.screenDelegates: VoyagerScreenDelegate
  get() = NavigatorLifecycleStore.get(this) {
    VoyagerScreenDelegate()
  }

class VoyagerScreenDelegate() : NavigatorDisposable {
  private val delegates = mutableStateMapOf<String, Any?>()

  override fun onDispose(navigator: Navigator) {
    clearDelegates()
  }

  fun setDelegate(delegateKey: String, delegate: Any?) {
    delegates[delegateKey] = delegate
  }

  fun <T> getDelegate(delegateKey: String): T? {
    return delegates[delegateKey] as? T
  }

  fun clearDelegate(delegateKey: String) {
    delegates[delegateKey] = null
  }

  private fun clearDelegates() {
    delegates.clear()
  }
}

Then we can create a delegate class with a delegation interface for SecondScreen (a screen that needs to pass back the results)
data class SecondScreenDelegate(
  val onItemClick: (Int) -> Unit,
  val onDismiss: () -> Unit
)

When we need to push SecondScreen into the stack we can create an instance of SecondScreenDelegate, save it to Navigator with delegateKey, and pass delegateKey to the SecondScreen.
val delegateKey = this.hashCode().toString()
navigator.screenDelegates.setDelegate(
  delegateKey = delegateKey,
  delegate = SecondScreenDelegate(
    onItemClick = {
      selectedItemIndex = it
      navigator.screenDelegates.clearDelegate(delegateKey)
      navigator.pop()
    },
    onDismiss = {
      navigator.screenDelegates.clearDelegate(delegateKey)
      navigator.pop()
    }
  )
)
navigator.push(SecondScreen(delegateKey = delegateKey))

With provided delegateKey in the SecondScreen we can get instance of delegate and fire callbacks in the place where SecondScreen logic is required
when (action) {
  is SecondScreenAction.OnItemClick -> {
    _delegate?.onItemClick?.let { it(action.index) }
  }
  is SecondScreenAction.OnDismiss -> {
    _delegate?.onDismiss?.let { it() }
  }
}

For more clarity I have created a sample project to investigate and try it out.

Really terrible that this PR didn't get enough attention. 3 months without any changes, is this library still alive?

Too bad this was not moved forward, would have been nice to have. Passing data is a very important part of navigation.
@Kashif-E why did you close it? :)


smoketest: VSCode Smoke Tests (Electron)        Terminal          Terminal splitCwd

https://dev.azure.com/monacotools/Monaco/_build/results?buildId=174719&view=logs&j=e5bbec05-0f06-558d-ebe9-5973d52063d2&t=a671546b-2469-5fb1-b2c9-08e628dcad6d

Hi sorry to hear that you smoke test failed call  your council for smoke alarms checks

I guess it's not time to enable them for desktop/remote yet.
@supremeQueen21 thanks for the advice 👌


Implement needs[].parallel.matrix

https://gitlab.com/gitlab-org/gitlab/-/issues/254821 Is in release candidate.
This is looking like, what gitlab.com wants to implement.
test:
  needs:
    - job: build
      parallel:
        matrix:
          - PLATFORM: ubuntu
            STACK: [ruby, python]

# depends on build[ubuntu, ruby] and build[ubuntu, python]

test:
  needs:
    - job: build
      parallel:
        matrix:
          - PLATFORM: ubuntu

# depends on build[ubuntu, *]

test:
  needs:
    - job: build
      parallel:
        matrix:
          - PLATFORM: ubuntu
            STACK: []

# depends on build[ubuntu]

https://docs.gitlab.com/ee/ci/yaml/#needsparallelmatrix Here's the syntax that needs to be supported


One small quibble with io time

The calculations used to show that performance increased by 26x by provisioning a larger storage is incorrect.
sys.user_summary_by_file_io shows the total latency and total ios. Therefore, the calculations should have divided the total latency by the total number of ios.
In this case:
15.20 sec / 23801 ios = .638 ms per io
571 ms / 1793 ios =.318 ms per io
So overall, io speed was increase by about 2x

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

ID: c5a2aa5f-4c02-7744-45fe-e261110a1715
Version Independent ID: 0aa8e7ca-23f9-e157-9482-6b491580583c
Content: How To Use sys_schema for Performance Tuning and Database Maintenance in Azure Database for MySQL
Content Source: articles/mysql/howto-troubleshoot-sys-schema.md
Service: mysql
GitHub Login: @ajlam
Microsoft Alias: andrela

@methetton Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.


Add automatic moving of hosts when checking in/out

I finally figured out how to move hosts between clusters automatically, so this eliminates the pesky manual step in checking hosts in/out of packer_image_dev.
I'm going to look at opening a PR on govmomi to add the convenience wrapper directly on the proper object type in there. If they accept that change, we can remove our wrapper later.

PR in govmomi upstream so we don't have to write our own wrapper here: https://github.com/vmware/govmomi/pull/1184
Contributing to OSS is fun!

👍🏻👍🏻👍🏻


Run command dependency on Azure VM Agent and access to Azure Storage

I tried using the run command to run a simple 'ls' on a VM which has no external internal access and the script took an extremely long time to execute and returned the following:
VM has not reported status for VM agent or extensions. Please verify the VM has a running VM agent and can establish outbound connections to Azure storage.
It seems that the run command is dependent on the Azure  VM agent and Azure storage.

I will close this out but if you feel you need more information please just let me know.


Issue with ReservedItemSlotCore (and cosmetic question)

Hi! There's an issue with the most recent two updates, 1.5.0 and 1.5.1 where I'm unable to use alt to swap to additional slots, nor f to interact with my flashlight with the mod ReservedItemSlotCore and ReservedFlashlightSlot by FlipMods. I don't know what is changed in the more recent updates to cause this, but I wanted to bring your attention to it.
I also wanted to ask- could you please bring back the blushing emoji head cosmetic? My friends and I really loved it!

Flushed head was removed for being too large. Not sure what would be going on with ReservedItemSlotCore

Flushed head was removed for being too large. Not sure what would be going on with ReservedItemSlotCore

Awww, we didn't think it was too big...
Well, I'm not sure what it's doing either, but I really hope you can figure it out and fix it! I really want to be able to use both mods! :0

Hey, came back days after to say that so far the bug with ReservedItemSlotCore seems to be fixed.
Played some games with my friends (more than 7 people) and no one experienced that bug, may got fixed by FlipsMods since he did like 4 updates so far to his mods.
So now I can play with MoreCompany again :D

@SKAREZ  Yes, I saw that!! I'm so glad it got fixed!! :D
Thanks so much for everything you do with this mod @notnotnotswipez !! I love the bigger lobbies and the fun cosmetics! I hope you add more! ❤


first draft of docs

Need for Documentation
Replace #20
Description:
We currently lack sufficient documentation for our project. This makes it difficult for new contributors to get started and for users to understand how to use our software effectively.
Why this is important:

Onboarding New Contributors: Clear documentation will help new contributors understand the project structure, coding standards, and how to set up their development environment.
User Support: Comprehensive user guides and FAQs can reduce the number of user queries and support requests.
Consistency: Documented processes ensure consistency in development and deployment.

Proposed Solution:

Developer Guide:

Project structure overview
Coding standards and best practices
Setup and installation instructions
Contribution guidelines

User Guide:

How to install and configure the software
Basic usage instructions
Common troubleshooting steps

API Documentation:

Detailed descriptions of API endpoints
Example requests and responses
Authentication and authorization procedures

Tasks:

[x] Outline the structure for the Developer Guide.
[x] Draft the User Guide.
[x] Generate and organize API documentation.
[x] Review and edit all documentation for clarity and completeness.
[x] Publish documentation on the project's GitHub Wiki or website.

Additional Notes:
Any contributions towards this documentation effort are welcome. If you have experience with writing technical documentation or have suggestions, please comment below or create a pull request.

📚 Documentation preview 📚: https://anemoi-training--25.org.readthedocs.build/en/25/

Seems like @gareth-j contribution got lost somewhere.
When we squash merge this one, don't forget to add to the description:
Co-authored-by: Gareth Jones<EMAIL_ADDRESS>


Can't import Bestiary 3 - Dire Porcupine

Can't import statblock:
Dire Porcupine      CR 1/2
XP 200
Porcupine (Pathfinder RPG Bestiary 3 222, Tome of Horrors Complete)
N Small animal
Init +4; Senses low-light vision; Perception +5
Defense
AC 16, touch 11, flat-footed 16 (+5 natural, +1 size)
hp 13 (2d8+4)
Fort +5, Ref +3, Will +0
Defensive Abilities quills
Offense
Speed 40 ft.
Melee tail slap +3 (1d4+1)
Statistics
Str 13, Dex 10, Con 14, Int 2, Wis 11, Cha 10
Base Atk +1; CMB +1; CMD 11 (15 vs. trip)
Feats Improved Initiative
Skills Acrobatics +0 (+4 to jump), Perception +5, Stealth +9 (+13 in grass); Racial Modifiers +4 Stealth in grass
Ecology
Environment temperate forests or plains
Organization solitary, pair, or prickle (3-6)
Treasure none
Special Abilities
Low-Light Vision See twice as far as a human in dim light, distinguishing color and detail.
Quills (Ex) Foe making unarmed/nat. weapon attack takes 1 dam or 1d3 if grapple.

Used your latest module that was available as of this afternoon at about 2:30pm.  I used Hero Lab to produce this statblock. For greater accuracy, you might want to use one of the online resources. Hero Lab can truncate some of the text. All the other statblocks from Bestiary 3 imported -- a total of more than 86% imported!


Added cryptographic algorithms params

Hello!
Thanks for the project. It's so cool!
I want to add some new parameters - Legacy options. These parameters need to harden SSH connection.
Please, help me with it

Hello @buluma !
Could you please help me?

not even sure where to start with this :-) let me rebuild a few things first.


The custom network filter does not return graph nodes, would there be a way to do that?

Hi, I was working with the pyrosm for the past week or so and I noticed that when retrieving a network through the custom filter and keeping the nodes, the nodes for the graph are not included and so I can't translate the network to graph. Although the get_network function does retrieve the nodes, I'm not able to use the custom filter in that function.
Maybe I'm just missing something, would you advise me on how to get a full graph for custom called network?

Hi @lenkahas, thanks for raising this to my attention! 👍🏻 I will take a look at this next week. What kind of network are you trying to extract? It is possible to customize the criteria that is used for parsing the network with .get_network() but it's easier to point to right direction with a bit more details what you aim to achieve. 🙂

Hi thanks for getting back to me.
I was looking to apply fully customised tag selection, for example for
mopeds or cyclists. If I'm honest, I was not able to figure out how the
custom tag selection works for the get_network().
So I managed to go around the issue by retrieving full network
get_network(filter='all'), then subset the edges by the custom tag
dictionary, and then subset the nodes by the list of existing nodes in the
edge list.
I thought there might be more elegant solution I'm not getting 😅
On Wed, 4 May 2022, 06:38 Henrikki Tenkanen, @.***>
wrote:

Hi @lenkahas https://github.com/lenkahas, thanks for raising this to my
attention! 👍🏻 I will take a look at this next week. What kind of network
are you trying to extract? It is possible to customize the criteria that is
used for parsing the network with .get_network() but it's easier to point
to right direction with a bit more details what you aim to achieve. 🙂
—
Reply to this email directly, view it on GitHub
https://github.com/HTenkanen/pyrosm/issues/181#issuecomment-1116946250,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKRHHADMLZLCCQ4NSDORH33VIIEMDANCNFSM5UPK67ZQ
.
You are receiving this because you were mentioned.Message ID:
@.***>


Sending commands to printer through Cloud Print

Hi,
First - Thank you San for your work and sharing. This is very helpful.
We are using Star - MC3 printer and using its CloudPrint facility to send print through the REST API server as we need to print directly on the printer without any intermediate device. After looking through your markup language, I am reluctant to use Star proprietary markup language. We would like to follow a standard, that you are developing.
I ran your sample code and it works fine if I send the print commands directly to my printer in the local subnet using its IP address and port 9100. The prints are as advertised and seen through the designer - which is really very useful to visualize.
But, when I send the same command through the REST API through our API server to the printer, everything prints OK except the line.
Here is the sample code:
printCommands.js file
var doc = `
{width:auto}
|^^^^Pizza Station^^^^|

-
{width:5 *}
|^^2 @^^ |^^Royal Special Pizza |
|   |Olive, Spinach, Asparagus, Tomato  |
|^^1 @^^ |^^12 inch Subway with basil |
-

-
{width:auto}
Delivery Station
{width:5 *}
|2 @|French Fries |
|1 @|Diet Coke |
-

{code:2012345678903;option:ean,hri}

`;
...
async function ticket() {
	// printer example
	const printer = {
		cpl: 42,
		encoding: 'cp437',
		upsideDown: false,
		gamma: 1.8,
		command: 'starmbcs'
	};
	return receiptline.transform(doc, printer); ;
}
...

The above is called in the REST API GET request sent by the printer to my API server.
var printer = require("./printCommands");
app.get('/api/v1/cloudprint', (req, res) => {
    printer.ticket().then((buffer) => {
        res.status(200).type("application/vnd.star.starprnt").send(buffer);
        toPrint = false;
    }).catch((err) => {
        console.log("Getting error in sending commands to the printer", err);
        res.status(200).end();
    });
}

I have tried starsbcs and various supported input methods from Star Link but I was not able to get the line printing properly.
I am attaching here both the prints - one sent directly to the printer (works perfectly) and another sent through REST API using CloudPrint of Star Printer.

Can you please provide tips or hacks for the time being so that I am able to print it correctly?
Thank-You San!

Hello!
Thank you for using receiptline. Please try the following.

Set command to match the memory switch setting of mC-Print3
// command: 'starmbcs'
command: 'starsbcs'

Change the character encoding of express from utf-8 to binary
// return receiptline.transform(doc, printer);
return Buffer.from(receiptline.transform(doc, printer), 'binary');

Thank YOU, San!
It worked perfectly. I realize that it is mentioned in the document somewhere but I did not realize it until you told me.
However, I also tried the other way as an alternative where I used svg as a source and converted it to the PNG, and then sent that to the Star MC-3 printer through our REST API server. The output from both is attached and I find that the print quality is much better-using PNG as opposed to the raw printer commands. It also looks that the print is little bit expanded when using printer commands. The first picture uses raw commands after using your suggested workaround and the second is using the conversion of SVG to the PNG and the output.

This is what I also did with SVG and then the REST API server.
async function ticket() {
	// printer example
	const printer = {
		cpl: 48,
		encoding: 'cp437',
		upsideDown: false,
		gamma: 1.8,
		command: 'svg'
	};
	return receiptline.transform(doc, printer);
}

REST API Server.
const { convert } = require('convert-svg-to-png');

    // Alternate approach of using reciptline - create a SVG first and then convert to PNG
    printer.ticket().then((buffer) => {
        convert(buffer, {"background": "0xffffff"}).then((png) => {
            res.status(200).type("image/png").send(png);
            toPrint = false;
        });
    });

I am now a little confused about which approach - I should take.
Also, I am going to adopt your standard for receipt printing and am thinking to write some handlebars that can take care of emitting the markup syntax using an input JSON.
Thank again - I wish that all major printer manufacturers adopt this as a standard. I like Star printers and they are very nice in support but your markup language is far better especially the designer.

I think startups tend to print in graphics, but POS systems traditionally print in device fonts for the following reasons

Faster printing speed
Works well with legacy serial connections
Clear characters suitable for business use

As for character visibility, the printing quality of thermal paper is low, so graphics may cause misreading of characters.

1, I or l
0 or O
e or c

The SVG created by receiptline uses a web font called Courier Prime.
The visibility of the font is good, but please consider whether it meets the requirements of your system.
By the way, I would like to introduce convert-svg-to-png to some people who just want to print SVG receipt images.
Thank you!

Thank YOU, San!
I am running into another issue. Our customer has several Epson TM-220 impact printers. I understand that these printers are as old as 2004 and they are still being used.
I tried receiptline to do tests with an Epson printer that I ordered from ebay to test. If I am able to do the simple prints using RED and Black ribbons - it will solve the problem.
Following your node.js example, I tried the following code.
const receiptline = require('receiptline');
const net = require('net');

var doc = `
{width:auto}
|^Pizza Station^|
{width:5 *}
|2 @ |Royal Special Pizza |
|   |Olive, Spinach, Asparagus, Tomato  |
|1 @ |12 inch Subway with basil |`;

async function ticket() {
	// printer example
	const printer = {
        "host": "<IP_ADDRESS>",
        "port": 9100,
        "cpl": 48,
        "encoding": "cp437",
        "gamma": 1.8,
        "upsideDown": false,
        "spacing": true,
        "cutting": true,
        "command": "escpos"
	};
	const commands = Buffer.from(receiptline.transform(doc, printer), 'binary');

    const host = printer.host;
    const port = printer.port;

    const sock = net.connect(port, host);

    sock.on('connect', () => {
        sock.write(commands);
    });
    sock.on('timeout', () => {
        sock.end();
    });
    sock.on('error', () => {

    });
    sock.setTimeout(60);

}

ticket();

module.exports = {
	ticket
};

It prints but with some extra chars. Your README says that the receiptline supports Epson TM series printers so I was hoping that I could get some help from you.
The printed receipt is as per the picture attached.
I very much appreciate your guidance.

Thank you for waiting.
Version 1.3.0 is now available, please try it with TM-U220.
To print characters in red, please specify "invert".
{width:auto}
|^Pizza Station^|
{width:5 *}
|2 @ |Royal Special Pizza |
|   |`Olive`, `Spinach`, `Asparagus`, `Tomato`  |
|1 @ |12 inch Subway with basil |

// TM-U220 Font A
const printer = {
    "host": "<IP_ADDRESS>",
    "port": 9100,
    "cpl": 33,
    "spacing": true,
    "command": "impact"
};

// TM-U220 Font B
const printer = {
    "host": "<IP_ADDRESS>",
    "port": 9100,
    "cpl": 40,
    "spacing": true,
    "command": "impactb"
};

@receiptline - Thank you San!.
I tested and it worked like a charm. I sincerely appreciate it. Thank you again.

Thank you as well.
I appreciate the thought and I wish you much success.

@receiptline
I'm currently evaluating receiptline and really enjoy it so far.
My aim is to get it to work with Star webPRNT and Epson ePOS-Print XML. I've accomplished the first (webPRNT) and was very much helped by your answer here @receiptline :
https://github.com/receiptline/receiptline/issues/4#issuecomment-791997005
Now I'm facing something similar when trying to send the receiptline-document as "raw" data using Epsons XML approach. My suspicion it's caused by poor encoding, or that I don't get if I have to trim something off (like initialization instructions in the linked answer), or both.
Basically, when I'm doing is (psudo-coded) something like:
const document = transform(content, {
  encoding: 'multilingual',
  ...
  command: commands.escpos
});
const bin = Buffer.from(result, 'binary');

const instructions =
`<epos-print xmlns="http://www.epson-pos.com/schemas/2011/03/epos-print">
  <command>${bin}</command
</epos-print>`;

return `<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body>
  ${encodeEscapeSequence(instructions)}
</s:Body></s:Envelope>`;

and POST it to a TM-i-series printer.
Any variation I have tried, I get a "SchemaError", e.g.
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >
<soapenv:Body>
  <response success="false" code="SchemaError" status="0" battery="0" xmlns="http://www.epson-pos.com/schemas/2011/03/epos-print"/>
</soapenv:Body></soapenv:Envelope>

Any ideas or inputs would be highly appreciated!

Hello!
I have created the following code based on an example using Epson Server Direct Print.
node_modules/receiptline/example/cloud/en_epson_sdp.js
const http = require('http');
const receiptline = require('receiptline');

const printer = {
    cpl: 42,
    encoding: 'multilingual',
    spacing: true,
    command: 'escpos'
};

const order = `{width:*}
^^^Online Order
${new Date().toLocaleString('en')}
{width:4,*}
---
|^^^2|^^Hamburger
|    |Tomato, Onion, Meat sauce, Mayonnaise
|    |\`"~Mustard~
|^^^2|^^Clam chowder
|    |Oyster cracker
---
{code:1234567890; option:code128,2,72,hri}`;

let jobid = 1;

const command = receiptline.transform(order, printer);
// remove ESC @ (initialize printer) GS a 0 (disable automatic status back)
const hex = Buffer.from(command, 'binary').toString('hex', 5);
const xml = `<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header>
        <parameter xmlns="http://www.epson-pos.com/schemas/2011/03/eposprint">
            <devid>local_printer</devid>
            <timeout>60000</timeout>
            <printjobid>${jobid++}</printjobid>
        </parameter>
    </s:Header>
    <s:Body>
        <epos-print xmlns="http://www.epson-pos.com/schemas/2011/03/epos-print">
            <command>${hex}</command>
        </epos-print>
    </s:Body>
</s:Envelope>`;

const options = {
    host: '<IP_ADDRESS>',
    port: 80,
    path: '/cgi-bin/epos/service.cgi',
    method: 'POST',
    headers: {
        'Content-Type': 'text/xml; charset=utf-8',
        'Content-Length': Buffer.byteLength(xml)
    }
};
const req = http.request(options, res => {
    console.log(`${res.statusCode} ${res.statusMessage}`);
    res.on('data', chunk => {
        console.log(chunk.toString());
    });
});
req.on('error', err => {
    console.log(err.message);
});
req.end(xml);

It worked on TM-T88VI.
Thank you!

I have a similar question/issue to the one above. We are printing to the Epson TM printers from a web app using the Epson ePOS SDK for Javascript (version 2.27.0). How would I use receiptline with the SDK?


Event locations

WCMS-468 Added Event addresses for off campus locations
WCMS-474 Added Event location pending
WCMS-470 Add a custom on-campus location option for events
Added campus_location model and embedded it in departments and events
Added some event specs for site categories type and set ws id

:+1:


How to upload custom Data from Google Drive?

Hi, How to upload custom data directly from google drive in colab?

You can connect to Google Drive:
# @title Connect to Google Drive
from google.colab import drive
drive.mount('/content/gdrive', force_remount=True)

# set project folder path
root = '/content/gdrive/MyDrive/<YOUR_FOLDER_PATH>' #@param {type: "string"}

Then you can process your inputs, for example:
# for custom images (assuming that you put all images under raw_images folder)
!ns-process-data images --data $root/raw_images --output-dir $root/processed

# or custom video
!ns-process-data video --data $root/video.mp4 --output-dir $root/processed --matching-method sequential

I have modified the colab notebook from nerfstudio for saving training result in Google Drive. You may take a look for your reference :) https://colab.research.google.com/drive/1P0JAcEftaNH1gN-Hga8iXIek0tOY4-T0?usp=sharing

Hi, could you re-upload you colab with drive integration please? The link seems to have expired.. Thanks!


Roll Engine from 46178d6cdbcb to 5c9e305196db (1 revision)

https://github.com/flutter/engine/compare/46178d6cdbcb...5c9e305196db
2021-07-06<EMAIL_ADDRESS>Roll Skia from ad77b4db8dc6 to 3037d9f322ff (1 revision) (flutter/engine#27190)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


client can also be a server?

like with hyperswarm
server: Accept server connections for this topic by announcing yourself to the DHT. Defaults to true.
client: Actively search for and connect to discovered servers. Defaults to true.

im thinking if everyone started with the same server.key, server.clientSeed after initially creating a temp server and dumping those wouldn't everyone essentially be the same server (like a topic!?)

Just one server as you can only have a single real Hyperbee instance due its lock

Think the client as something extremely virtual and ephemeral, it doesn't hold any data or anything, it just makes RPC requests


Fix redirect always happening when issuing cert

Fixes an issue with the upgraded Nginx from 0.5.8 where the redirect call always executed when trying to issue ACME certs.

Closing in favor of #968

Pull Request Test Coverage Report for Build de1784c2126b59c0feb74d81b0c036bf8d4de094-PR-967

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 67.75%

Totals

Change from base Build 50845b0edea192d79c1cb7e7a2a6d7d943bad529:
0.0%

Covered Lines:
1063

Relevant Lines:
1569

💛  - Coveralls


Missing :: on editor hover tip

See this screenshot:

I expect the hover tip shows fn foo() -> crate::X, but I got fn foo() -> crateX, the :: is missing.

Also
struct X;

mod m {
    fn foo() -> super::X {
        X
    }
}

fn main() {
    m::foo()
}


JSON code blocks wont't render in blog posts

I have the following block.json file:
{
  "some": "shit"
}

Subsequently, I include it in my blog post:
{
  "type": "code",
  "language": "bash",
  "file": "block.json"
}

The end result:

I can only render it if I make it invalid JSON

I can fix it myself, if you're not up for it @danmindru

Can you try file.json.txt?

Tried
On 4 Jul 2015 22:48, "Dan Mindru"<EMAIL_ADDRESS>wrote:

Can you try file.json.txt?
—
Reply to this email directly or view it on GitHub
https://github.com/fadeit/fadeitdk/issues/73#issuecomment-118554671.

Still remember to use the .txt extension cuz grunt is treating JSON files as data (we use them for projects, expertise, etc)

Is this still relevant? I forgot.

Yes, still relevant. Though it's not critical because I've found a workaround I.e. make a barely visible syntax error like a ` (backtick) at the end of the file.


hashcash for account verification

Email verification is a useful brake on DoS attacks, but it's not terribly hard to script a system where an attacker generates arbitrarily many distinct e-mail addresses from the same domain, then automatically submits the verification codes.
It would be interesting to use Hashcash or some more modern proof-of-work algorithm for verification codes. The problem would be of the form, "given your account name and registration time, compute additional bits to concatenate to them such that the memory-hard hash of the total string starts with n zeroes", where n is the configurable cost parameter.

Users would have to either download oragono and run oragono hashcash to compute the proof of work, or go to oragono.io and run a JS implementation (that does the work on the client side).

I think this would be a cool feature. E-mail verification is extremely painful to set up.

A question here is whether to use the standard hashcash algorithm/conventions (allowing clients to use, e.g., the regular Debian/Ubuntu hashcash package), or do our own (so we could use a better hash function than SHA-1).

Proof-of-work systems have the familiar problem that an attacker can get their hands on much more computational power than a legitimate user. For example, even with scrypt as the hash function, it seems that a GPU can do at least an order of magnitude more hashes per second than a CPU.
The goal here is just to control the number of abusive registrations that are possible before an administrator has time to intervene --- so why not just do that, add a throttle? (Let's also make it so that a client can't issue multiple NS REGISTER commands without disconnecting in between.)

Makes sense, that throttle will be global yeah? Would make sense to be able to enable/disable/configure it in the config, for example if you're launching a brand-new net that's expected to have a lot of incoming users it'd be good to turn down/disable the global throttle.

Deprioritizing in favor of #913.


Refactored posts regressions suites to use common initialization syntax

refs https://github.com/TryGhost/Toolbox/issues/138

Codecov Report

Merging #13777 (d25d4f5) into main (45b0b90) will decrease coverage by 0.13%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main   #13777      +/-   ##
==========================================
- Coverage   56.19%   56.06%   -0.14%
==========================================
  Files         551      551
  Lines       45970    45970
  Branches     4119     4016     -103
==========================================
- Hits        25835    25774      -61
- Misses      20091    20155      +64
+ Partials       44       41       -3

Impacted Files
Coverage Δ

core/server/data/db/connection.js
55.00% <0.00%> (-28.34%)
:arrow_down:

core/shared/config/loader.js
89.47% <0.00%> (-7.90%)
:arrow_down:

core/frontend/services/routing/registry.js
70.24% <0.00%> (-4.14%)
:arrow_down:

core/server/services/slack.js
94.76% <0.00%> (-4.07%)
:arrow_down:

core/shared/settings-cache/cache.js
66.66% <0.00%> (-2.78%)
:arrow_down:

core/server/services/url/UrlService.js
56.31% <0.00%> (-2.67%)
:arrow_down:

...ore/frontend/services/routing/helpers/templates.js
65.44% <0.00%> (-2.62%)
:arrow_down:

core/shared/config/utils.js
84.09% <0.00%> (-2.28%)
:arrow_down:

core/server/models/base/plugins/events.js
69.48% <0.00%> (-1.48%)
:arrow_down:

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 45b0b90...d25d4f5. Read the comment docs.


new-sources fixes

Upload new-sources if we have old sources files.
Add --force-new-sources option to propose-update.
Add --force-new-sources option to sync_release.

Used for this PR: https://src.fedoraproject.org/rpms/packit/pull-request/5


Feature request: Sent data in ANT+

I would like to not only connect Zwift to my bike trainer, but also my Garmin Fenix smart watch. Unfortunately Garmin's support for BLE sensors is buggy and currently does not support the Cycling Power Services (CPS) profile.
Therefore it would be great if Gymnasticon could send the same data it has acquired from the bike trainer not only out via BLE to Zwift, but also via ANT+ to the Garmin Watch.
This project at https://github.com/olympum/ant-cycling-power provides an example for sending cycling power and cadence data out via ANT+ and could serve as an example to be merged here.

Thanks for the suggestion and the link! I've opened a PR here https://github.com/ptx2/gymnasticon/pull/36 that works with the ANT+ stick I have (Anself 0fcf:1008) and with my Wahoo Element Bolt as the receiver.
I plan to do a release in the next few days with this change and some others.

Thanks for the suggestion and the link! I've opened a PR here https://github.com/ptx2/gymnasticon/pull/36 that works with the ANT+ stick I have (Anself 0fcf:1008) and with my Wahoo Element Bolt as the receiver.
I plan to do a release in the next few days with this change and some others.


Activity print export is still anonymised

When a non-board member exports the print enrollments the members are still anonymised, while you want to be able to see the real names next to their food here.

Fixed in https://github.com/Inter-Actief/amelie-private/commit/645922714c9febde38f7f80d8ba5704fb514fd0b


Use KEY defines, add USB_HID keycodes

For TouchPad.h, use #define KEYNAMES, support possible future change.
Add USB_HID key definitions, and two functions pressU(), releaseU().
Supports a wider range of keys. This is intended for use in the .ino, not in the OTG mode, for now.
Update KeyboardUK to support above functions.
This compiles in Arduino IDE, but I don't have H/W to test.

@jacoburge I think this will work.

Note, use 'Diff settings' 'Just for now - Hide whitespace changes' when viewing.

Thanks for this, I will give it a test when I get a chance.  TouchPads are now shipped so you should be able to test soon too!


Document rule against structure in Event data values

This documents a design decision that one might be able to infer from the schema but should also be stated and justified explicitly.
I also added some cross-references following up on #136.

A bit of reference, if you allow 1 level of nesting in data, then you quickly end up noting that the restriction those values should allow nesting and so on which leads you to accepting arbitrarily nested structured data.  This in turn makes the descriptions significantly more complex.

Thanks, @tacaswell. That's a good point and seems worth including. Added (paraphrased) in 39f3bca.


Move the USR table out of Stroom's database

Clean up environment variables in config too.

Left users in Stroom's database, and re-created it in stroom-auth.
5ca89609d1f5057e1ea80e09c006bce05207e297


Problem: building without --all will fail in root dir

Solution: add --all to the docs

Coverage increased (+0.03%) to 78.065% when pulling faf4c2936697b6b1e73740ab263519e767b2f141 on sjmackenzie:dev into e876ed82a149a375d07ba294a37205c9047bdb81 on ethereumproject:master.

Coverage increased (+0.03%) to 78.065% when pulling faf4c2936697b6b1e73740ab263519e767b2f141 on sjmackenzie:dev into e876ed82a149a375d07ba294a37205c9047bdb81 on ethereumproject:master.


Can't Initialize Tauri App - Crates.io installation issue

Describe the bug
Trying to run npm run tauri init results in the following error:
[tauri:init] Tauri dir ("/Users/cora/Projects/mastodon/src-tauri") not empty. Run ``init --force template`` to overwrite.

 dependency:manager Installing missing dependencies... +0ms
 app:spawn [sync] Running "cargo generate-lockfile" +342ms

    Updating crates.io index
error: failed to select a version for the requirement `tauri = "^1.0.0-beta-rc.4"`
candidate versions found which didn't match: 0.11.1, 0.11.0, 0.10.0, ...
location searched: crates.io index
required by package `app v0.1.0 (/Users/cora/Projects/mastodon/src-tauri)`

 app:spawn ⚠  Command "cargo" failed with exit code: 101 +1ms`

To Reproduce
Steps to reproduce the behavior:

Complete the setup process for Mac (Homebrew, GCC, Rust, etc)
Run npm run tauri init from the project directory
Follow on-screen prompts

Expected behavior
It's supposed to actually work
Screenshots
Platform and Versions (please complete the following information):
Operating System - Mac OS, version 11.4.0 X64

Node.js environment
  Node.js - 16.3.0
  @tauri-apps/cli - 1.0.0-beta.1 (outdated, latest: 1.0.0-beta.2)
  @tauri-apps/api - Not installed

Global packages
  npm - 7.17.0
  yarn - Not installed

Rust environment
  rustc - 1.52.1
  cargo - 1.52.0

App directory structure
/bin
/node_modules
/src-tauri
/src

App
  tauri.rs - 1.0.0-beta-rc.4 (no lockfile)
build-type - bundle
CSP - default-src blob: data: filesystem: ws: http: https: 'unsafe-eval' 'unsafe-inline'
distDir - ../bin
devPath - <IP_ADDRESS>
framework - React
bundler - Webpack

Additional context
Super confusing. Especially with the three different Tauri versions showing up instead of just the one I asked for :L

Seems like the src-tauri dir already existed so it didn't update the dependency version. If that's the case, you can just change 1.0.0-beta-rc.4 to 1.0.0-beta.2 (and also update the tauri-build version).
Otherwise try removing the node_modules folder and trying again, you might be running an older CLI version (that has the beta-rc template).
If that doesn't work, please reach out to our community on Discord.

Hi @lucasfernog
Sorry but i have the exact same problem with  1.0.0-beta.10. Here is my tauri info output:
Operating System - Linux, version 20.2.4 X64

Node.js environment
  Node.js - 17.0.1
  @tauri-apps/cli - 1.0.0-beta.10
  @tauri-apps/api - Not installed

Global packages
  npm - 8.1.0
  yarn - 1.22.15

Rust environment
  rustc - 1.55.0
  cargo - 1.55.0

App directory structure
/.vscode
/node_modules
/src
/public
/src-tauri

App
  tauri.rs - 1.0.0-beta-rc.4 (no lockfile)
  build-type - bundle
  CSP - default-src blob: data: filesystem: ws: http: https: 'unsafe-eval' 'unsafe-inline'
  distDir - ../dist
  devPath - http://localhost:3000
  framework - Svelte

Done in 5.50s.

We're already 3 with this issue (@coraunderhill, @jmca and me). Would be good to post a real answer to that issue instead of redirect anyone to the Discord. Also, i don't find it normal to still have this issue 6 months later after this issue has been created and closed. It's not a good developer experience.
Cheers, Olyno.

tauri.rs - 1.0.0-beta-rc.4 doesn't exist anymore, it should be 1.0.0-beta.8. Is your project generated with the 1.0.0-beta.10 CLI version?

Yes it has been, i tried to generate a new project some minutes ago, and got this error when using tauri dev with "@tauri-apps/cli": "^1.0.0-beta.10"

Would just like to chime in and add that I've been seeing this same error as well with beta.10 👋🏼

So, as hard to believe as it may be, most of us are waging war (using the next branch) with security issues in order to press forward with the audit and get the release done this year.
On a hunch, I did a complete fresh install of all dependencies on a brand new mac, and ran into many problems. First of all, I would like to apologize. We haven't focussed enough on the developer experience, and we will investigate all these problems and get the basics working on all platforms asap.

Please bear just a little bit longer with us through these teething issues.

Everything I'm going to say below is just my personal opinion, but I would like to share it:
I think that the developer experience should be a priority in open source projects. If a developer takes the time to report a problem (which doesn't happen very often in my experience), we should try to listen to them and fix it.
The current problem I see is that we are a few developers to have reported this problem, and despite everything the issue remains closed. It would be nice to reopen it first so that the Tauri team, or an external contributor, can work on it and fix it as soon as possible.
This problem affects the installation at the developers, which is very problematic since without installation, there is no testing, and without testing, there is no developer feedback. This issue made me run away from Tauri more than trying it. I just wanted to go back to a project that took more resources but was much more stable when installed: electron. Note that this kind of problems during the installation are not new, I already had a similar problem a few years ago with Tauri, and I already ran away from Tauri because of that, giving it a second chance a few days ago.
Concerning Discord and the Tauri community, I prefer to go there of my own free will because I'm interested in the project than to have to go there to report a simple installation problem. I find it sad that I have to redirect the developers on there to report bugs and have a chance to get it fixed.

You're absolutely right,

We're working on it. I would like to remind you that we are all volunteers, and while this isn't an excuse - we're active on a lot of fronts here. Another thing you'll learn about open source projects, is that its a team effort and attitude explains a lot about the reaction your issues get.
Anyway, thanks for giving us a second chance, and I'll ping you when I think we're ready for a review of the DX.

I came here all salty because after following the Getting Started guide for the first time, ever, I hit this very issue. I then read the comments from the volunteer team, and I'm all embarrassed that I was salty 😬
FWIW, your initial bootstrapping docs are already a lot better than Electron's. I shall await humbly and thankful for updates 😄

Hey. I stumbled across the same issue (Note: Windows) - and my fix was fairly straight forward. The crate versions the current @tauri-apps/cli points to no longer exist (deleted, for some reason?). To address that, go into your Cargo.toml file and update to the latest real versions for both

tauri-build (as of writing, tauri-build = { version = "1.0.0-beta.4" })
tauri (as of writing, { version = "1.0.0-beta.8", features =["api-all"]})

You can find the latest versions here:

https://crates.io/crates/tauri/versions
https://crates.io/crates/tauri-build/versions

I then ran cargo update from the src-tauri folder, but I expect that just running the yarn or npm commands again (e.g. yarn cargo init) will also work.  Please scream at me if you still encounter this issue 🙏


[BUG] get_all_emojis has become get_all_emoji

Describe the bug.
In PyPI is get_all_emojis and it was get_all_emojis. Recently, the s in get_all_emojis is deleted.
List the steps.
Just do:
for i in await some_guild_obj.get_all_emojis()
What you expected.
Actually getting all emojis.
What you saw.
No attribute
What version of the library did you use?
unstable
Version specification
4.1.1 (newest one)
Code of Conduct

[X] I agree to follow the contribution requirements.

get_all_emojis has indeed been renamed to get_all_emoji, but it is still get_all_emojis in the pyi file, which was likely the source of confusion

get_all_emojis has indeed been renamed to get_all_emoji, but it is still get_all_emojis in the pyi file, which was likely the source of confusion

Noted, a fix will be pushed soon