[WIP] Auto3DSeg CT Transforms and SwinUNETR fix

There are repeated issues reported on the CT-related transforms in the Auto3DSeg pipeline. This PR is trying to address them with fixes and new test to cover the CT cases.
To-do:

[x] Write parameterized test case to cover different Auto3DSeg configurations
[ ] Fix templates

Issue Ref:
https://github.com/Project-MONAI/tutorials/issues/965
https://github.com/Project-MONAI/MONAI/issues/5226

@tangy5 To fix the Spacingd for Task05_Prostate, whose image has the dimension of (320, 320, 15, 2), I implemented something in the algo.py as below to ensure spacing is adjustable for this and other special cases.
min_shape = data_stats["stats_summary#image_stats#shape#min"]
spacing = [min(s / 24, spacing[i]) for i, s in enumerate(min_shape)]
...
transforms_train.update({'transforms_train#transforms#3#pixdim': spacing})

Also, in CT cases, there is a CropForegroundd transform for all networks. But for SwinUNETR, the CropForegroundd may make the ROI smaller than the minimum required patch size (64, 64, 64) . How much impact would it be if I remove it?

@tangy5 To fix the Spacingd for Task05_Prostate（dimension is (320, 320, 15, 2) and modality is MRI), I implemented something in the algo.py as below to ensure spacing is adjustable for this and other special cases.
min_shape = data_stats["stats_summary#image_stats#shape#min"]
spacing = [min(s / 24, spacing[i]) for i, s in enumerate(min_shape)]
...
transforms_train.update({'transforms_train#transforms#3#pixdim': spacing})

Also, in CT cases, there is a CropForegroundd transform for all networks. But for SwinUNETR, the CropForegroundd may make the ROI smaller than the minimum required patch size (64, 64, 64) . How much impact would it be if I remove it?

HI @mingxin-zheng , thanks for handling this. I agree there should be a robust spacing when comes to small image dimension size, how is the s/24 is decided here?
About CT, there should be no issues with CropForegroundd as I tested. CT images are larger dimension, and cropping/padding can guarantee the dimension requirement.

@tangy5 To fix the Spacingd for Task05_Prostate（dimension is (320, 320, 15, 2) and modality is MRI), I implemented something in the algo.py as below to ensure spacing is adjustable for this and other special cases.
min_shape = data_stats["stats_summary#image_stats#shape#min"]
spacing = [min(s / 24, spacing[i]) for i, s in enumerate(min_shape)]
...
transforms_train.update({'transforms_train#transforms#3#pixdim': spacing})

Also, in CT cases, there is a CropForegroundd transform for all networks. But for SwinUNETR, the CropForegroundd may make the ROI smaller than the minimum required patch size (64, 64, 64) . How much impact would it be if I remove it?

HI @mingxin-zheng , thanks for handling this. I agree there should be a robust spacing when comes to small image dimension size with MRI, such as Task04 and Task05 in MSD, how is the s/24 is decided here?
About CT, there should be no issues with CropForegroundd as I tested. CT images are larger dimension, and cropping/padding can guarantee the dimension requirement.

Hi @tangy5 , the 24 was determined by experiments initially. After some debugging, the accurate number should be
int(patch_size[i]/3) + 1

for each dimension i
The SpatialPadd uses the reflection mode with this PyTorch backend. For a given patch size (64), the image needs to be at least 22, so the reflected paddings on both sides can fill up the patch (22+22+22 > 64).

Hi @tangy5 , the 24 was determined by experiments initially. After some debugging, the accurate number should be
int(patch_size[i]/3) + 1

for each dimension i
The SpatialPadd uses the reflection mode with this PyTorch backend. For a given patch size (64), the image needs to be at least 22, so the reflected paddings on both sides can fill up the patch (22+22+22 > 64).

Sounds good, thanks.

About CT, there should be no issues with CropForegroundd as I tested. CT images are larger dimension, and cropping/padding can guarantee the dimension requirement.

Hi @tangy5 , thanks for reviewing the change on the first item. On the second item as I quoted, here is a script that proves CropForegroundd may go wrong with small targets.
Here I simulate small circular objects (radius 1~2 pixel) in (32, 32, 32) image and apply SwinUNETR predefined transforms. At least on my machine, I ran it repeatedly and would be able to trigger the error in about 10 runs. My understanding is that there is no assurance inCropForegroundd to output an image with a given size. By any chance that the target is smaller than what's required by the reflection spatial padding, it will be an error.
CLICK ME to see the testing code

import os

import nibabel as nib
import numpy as np
import torch

from monai.auto3dseg import datafold_read
from monai.bundle.config_parser import ConfigParser
from monai.data import create_test_image_3d, CacheDataset

from monai.transforms import Compose, LoadImaged, EnsureChannelFirstd, Orientationd, EnsureTyped, Spacingd, ScaleIntensityRanged, CropForegroundd, CastToTyped, SpatialPadd,

sim_datalist = {
    "training": [
        {"fold": 0, "image": "01.nii.gz", "label": "01.nii.gz"},
        {"fold": 0, "image": "02.nii.gz", "label": "02.nii.gz"},
        {"fold": 0, "image": "03.nii.gz", "label": "03.nii.gz"},
        {"fold": 0, "image": "04.nii.gz", "label": "04.nii.gz"},
        {"fold": 1, "image": "05.nii.gz", "label": "05.nii.gz"},
        {"fold": 1, "image": "06.nii.gz", "label": "06.nii.gz"},
        {"fold": 1, "image": "07.nii.gz", "label": "07.nii.gz"},
        {"fold": 1, "image": "08.nii.gz", "label": "08.nii.gz"},
        {"fold": 2, "image": "09.nii.gz", "label": "09.nii.gz"},
        {"fold": 2, "image": "10.nii.gz", "label": "10.nii.gz"},
        {"fold": 2, "image": "11.nii.gz", "label": "11.nii.gz"},
        {"fold": 2, "image": "12.nii.gz", "label": "12.nii.gz"},
    ],
}

def create_sim_data(dataroot, sim_datalist, sim_dim, **kwargs):
    """Generate a fake dataset"""
    if not os.path.isdir(dataroot):
        os.makedirs(dataroot)

    for d in sim_datalist["testing"] + sim_datalist["training"]:
        im, seg = create_test_image_3d(sim_dim[0], sim_dim[1], sim_dim[2], **kwargs)
        image_fpath = os.path.join(dataroot, d["image"])
        label_fpath = os.path.join(dataroot, d["label"])
        nib_im = nib.Nifti1Image(im, affine=np.eye(4))
        nib_seg = nib.Nifti1Image(seg, affine=np.eye(4))
        nib.save(nib_im, image_fpath)
        nib.save(nib_seg, label_fpath)

dataroot_dir = os.path.join(".", "sim_dataroot")

# Testing conditions
sim_dim = (32, 32, 32)

create_sim_data(dataroot_dir, sim_datalist, sim_dim, rad_max=2, rad_min=1, num_seg_classes=1)

files, _ = datafold_read(datalist=sim_datalist, basedir=dataroot_dir, fold=-1)

transform_list = Compose([
    LoadImaged(keys =("image", "label")),
    EnsureChannelFirstd(keys =("image", "label")),  # this creates label to be (1,H,W,D)
    Orientationd(keys =("image", "label"), axcodes="RAS"),
    Spacingd(keys =("image", "label"), pixdim=(1.0, 1.0, 1.0), mode=("bilinear", "nearest"), align_corners=[True, True]),
    CastToTyped(keys="image", dtype=torch.float32),
    ScaleIntensityRanged(keys="image", a_min=0.0, a_max=1.0, b_min=0.0, b_max=1.0),
    CropForegroundd(keys="image", source_key="image"),
    EnsureTyped(keys =("image", "label")),
    SpatialPadd(keys =("image", "label"), mode=("reflect", "constant"), spatial_size=(64, 64, 64))
])

dataset = CacheDataset(data=files, transform=transform_list, cache_rate=1/4.0, num_workers=4, progress=False)

Error:
(base) root@adminn-MS-7D31:/workspace/monai/monai-in-dev# python test_spatial_padd.py
(base) root@adminn-MS-7D31:/workspace/monai/monai-in-dev# python test_spatial_padd.py
(base) root@adminn-MS-7D31:/workspace/monai/monai-in-dev# python test_spatial_padd.py
(base) root@adminn-MS-7D31:/workspace/monai/monai-in-dev# python test_spatial_padd.py
(base) root@adminn-MS-7D31:/workspace/monai/monai-in-dev# python test_spatial_padd.py
(base) root@adminn-MS-7D31:/workspace/monai/monai-in-dev# python test_spatial_padd.py
Traceback (most recent call last):
  File "/workspace/monai/monai-in-dev/monai/transforms/croppad/array.py", line 184, in __call__
    out = _pad(img_t, pad_width=to_pad_, mode=mode_, **kwargs_)
  File "/workspace/monai/monai-in-dev/monai/transforms/croppad/array.py", line 138, in _pt_pad
    return pad_pt(img.unsqueeze(0), pt_pad_width, mode=mode, **kwargs).squeeze(0)
  File "/workspace/monai/monai-in-dev/monai/data/meta_tensor.py", line 249, in __torch_function__
    ret = super().__torch_function__(func, types, args, kwargs)
  File "/opt/conda/lib/python3.8/site-packages/torch/_tensor.py", line 1089, in __torch_function__
    ret = func(*args, **kwargs)
RuntimeError: Argument #4: Padding size should be less than the corresponding input dimension, but got: padding (21, 22) at dimension 4 of input [1, 1, 29, 25, 21]

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/workspace/monai/monai-in-dev/monai/transforms/transform.py", line 91, in apply_transform
    return _apply_transform(transform, data, unpack_items)
  File "/workspace/monai/monai-in-dev/monai/transforms/transform.py", line 55, in _apply_transform
    return transform(parameters)
  File "/workspace/monai/monai-in-dev/monai/transforms/croppad/dictionary.py", line 147, in __call__
    d[key] = self.padder(d[key], mode=m)
  File "/workspace/monai/monai-in-dev/monai/transforms/croppad/array.py", line 189, in __call__
    raise ValueError(f"{mode_}, {kwargs_}, {img_t.dtype}, {img_t.device}") from err
ValueError: reflect, {}, torch.float32, cpu

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "test_spatial_padd.py", line 97, in <module>
    dataset = CacheDataset(
  File "/workspace/monai/monai-in-dev/monai/data/dataset.py", line 794, in __init__
    self.set_data(data)
  File "/workspace/monai/monai-in-dev/monai/data/dataset.py", line 819, in set_data
    self._cache = _compute_cache()
  File "/workspace/monai/monai-in-dev/monai/data/dataset.py", line 808, in _compute_cache
    return self._fill_cache()
  File "/workspace/monai/monai-in-dev/monai/data/dataset.py", line 835, in _fill_cache
    return list(p.imap(self._load_cache_item, range(self.cache_num)))
  File "/opt/conda/lib/python3.8/multiprocessing/pool.py", line 868, in next
    raise value
  File "/opt/conda/lib/python3.8/multiprocessing/pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "/workspace/monai/monai-in-dev/monai/data/dataset.py", line 848, in _load_cache_item
    item = apply_transform(_xform, item)
  File "/workspace/monai/monai-in-dev/monai/transforms/transform.py", line 118, in apply_transform
    raise RuntimeError(f"applying transform {transform}") from e
RuntimeError: applying transform <monai.transforms.croppad.dictionary.SpatialPadd object at 0x7f6acc31fc40>


error processing table with two fieldnames one of which is part of the other

table persons with two fields
passwd      VARCHAR(20),
passwd_klar VARCHAR(20),

This version works:
db << "INSERT INTO persons(passwd,passwd_klar) VALUES(:passwd, :passwd_klar)", soci::use(p);

This version does not work:
db << "INSERT INTO persons(passwd_klar,passwd) VALUES(:passwd_klar, :passwd)", soci::use(p);

Error is caused by:
file: statement.cpp
Method:
void statement_impl::bind(values & values)

       std::size_t const pos = query_.find(placeholder);
        --> when searching for placeholder ":passwd" finds position of ":passwd_klar"
                      with nextChar = '_'.

    Thus the following condition does not hold
     if (nextChar == ' ' || nextChar == ',' ||
         nextChar == '\0' || nextChar == ')')
     {
     -->     ":passwd" is added to  values.add_unused

and is consequently not bound to the prepared statement (which in my case results in an "persons.passwd may not be NULL" error).

This needs to be covered with a test and let's see if it is still an issue.

Syntax used above is invalid, number of use parameters does not match
and it neither uses binding by name of single buffer into multiple placeholders.
db << "INSERT INTO persons(passwd,passwd_klar) VALUES(:passwd, :passwd_klar)", soci::use(p);

Anyhow, test for some sort of similar case has been added in #601


XMPP: Post to PubSub

Greetings!
In XMPP, using PubSub(1) (XEP-0060), it is possible to store posts as Atom Syndication(2) entries into XMPP(3).
There are several XMPP extensions that apply it, namely XEP-0227 (4) and XEP-0472 (5) which make node urn:xmpp:microblog:0 as a common choice to manage news for client accounts (e.g. blog@getgrav.org), yet a component account (e.g. pubsub.getgrav.org) may use all of its nodes for this purpose.
pubsub.getgrav.org/
|
|-- updates/
    |-- Sombre
     `-- Varied
|-- releases/
 `-- events/

pubsub service/
|
|-- node/
    |-- item
     `-- item
|-- node/
 `-- node/

A PHP library that can be utilized would be Moxl of Movim.
I have made a script that realizes viewing PubSub node items as Atom XML feeds over HTTP.

XEP-0060: Publish-Subscribe
RFC 4287: The Atom Syndication Format
Atom Over XMPP
XEP-0277: Microblogging over XMPP
XEP-0472: Pubsub Social Feed
Moxl
PubSub Over HTTP

Can you be more specific about exactly what you are asking about? I'm not going to read all these pubsub URLs.

Alright, shortly.
In XMPP there is an ability - which is provided in almost 100% of servers -  to upload textual content to own account. This is calld "PubSub" protocol.
The current prominent platform that extensively utilizes the PubSub system is Movim.
In the example script I have made (clause 7), I realize a simple way to fetch content from PubSub to an XML file (it can be a decorated HTML file too).

There's nothing stopping you from putting your own files in any format you want into the Grav content structure.  However, you will probably want a custom plugin that intercepts the request and does the converstion of the pubsub formatted files and process them.
Only caveat is that the Admin plugin expects 'content' to be in stored in .md files and that means it's not going to understand anything non-standard.  As long as you don't need the admin to edit/create your content, there should be no issues.

Is there a dedicated repository for plugins?
Is there a procedure to publish plugins?

There’s docs on learn.getgrav.org.   Just search for “release plugin”

Thank you, Andy!


"JSDoc support in JavaScript" vandalized?

I was using this document for guidance when writing more complex JSDoc type hints in visual studio 2017. I use vanilla javascript.
Somebody just vandalized, deleting all the helpful text that was there for a year or so. It should probably be reverted.

A comprehensive introduction to type checking JavaScript files with TypeScript can be found in the official handbook.

Thanks for the issue, but Yep not vandalism. All of those docs are in the same place now, instead of being somewhat duplicated across many places.
https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html#supported-jsdoc
If you specifically want to get to the exact part of that wiki page.

It would be nice if the link to the news docs could be posted in https://github.com/Microsoft/TypeScript/wiki/JSDoc-support-in-JavaScript
That document is still a top result on google when searching "JSDoc Typescript" and many people have likely bookmarked the page. I only found the above mentioned docs after searching the issue tracker.

@pcolangelo73 I take that to mean the link to “official handbook" is not clear/noticeable enough?


Add Math 'value functions' doc sections

Add sections for round, ceiling, floor, and truncate to the blocks/math doc.
Fixes https://github.com/microsoft/pxt-microbit/issues/2117

Is there any functional difference between truncate and floor? I do professional development for teachers, and write instructional materials for both students and teachers, and every moment spent explaining something like "floor really means round down", or "truncate is the same as floor which really means round down" adds to their cognitive load, frustration, and takes away valuable time.  I very much would like to suggest considering consolidating floor and truncate if there is not really a difference, and renaming floor to round down, ceiling to round up.  Thank you for considering this.

trunc acts as C trunk, it rounds the argument towards zero.

Sorry to be dense on this.  How is that different than floor?
From the proposed help doc:

floor:  8.76 is 8 since that is the next lower whole number.

truncate: If a number has the value 54.234 its truncated value is 54.

floor of negative numbers rounds down (towards negative infinity), trunc of negative numbers rounds towards 0

Thank you. I had been overlooking negative numbers and what to do in those cases.  But now it would seem it's necessary to explain "floor" and "negative infinity" when really all was anted was to get the whole number portion of a value.  This still feels like a case where the simplicity of a programming language for children (and adults who wish to avoid stress, myself included) is being unnecessarily complicated.
What about having the blocks be "round", "whole", "least whole", and "greatest whole",
This would also be conceptually friendly with the words of the greater-than and less-than logic blocks.
whole (5.84) = 5.00
whole (-5.84) = -5.00
least whole (5.84) = 5.00
least whole (-5.84) = -6.00
greatest whole (5.84) = 6.00
greatest whole (-5.84) = -6.00


Add installation for helix

Helix will automatically pickup awk-language-server, you just need to have it in your PATH. Check with helix --health awk that Helix finds awk-language-server.


Implemented #10773 with potential fix on #2843

Add support for view parameter of pdf file provided in web url.
Attempt to solve "upside-down" issue.

Attempt to solve "upside-down" issue.

Again, that part would be a case of a patch breaking way more than it fixes.
The changes you've made in web/base_viewer.js are unfortunately wrong, since they're breaking all handling of destinations in PDF documents. Issue 2843 concerns only the hash parameters, and is somewhat difficult to address in a good/efficient way (since it seems that the "zoom" hash parameter may even need to be rotational invariant).
Please just remove that part from the PR, since it's not correct and again please make sure to carefully test your code before submitting a PR.

Add support for view parameter of pdf file provided in web url.

If that is done, assuming the rest of the patch is OK, that possibly means that the "Fit" handling ought to be removed from the "zoom"-parameter.

Hi @Snuffleupagus ,
Thanks for your review, I've reverted my changes in base_viewer.js and removed the Fit related part in zoom.
I'm still thinking what would be the best choice to fix 2843. I considered to make another wrapper outside scrollPageIntoView which only used by Fit and zoom, but seems that's not elegent. As you were previously working on this issue, I'd like to discuss and hear any advice from you.

@huang325 I really appreciate you taking a look at this! I'm not a maintainer so I can't give much implementation advice, but since I filed #10773 I thought I would help translate the response you've gotten, in case you're stuck:

It looks like the maintainer has suggested a fix -- sounds like they want you to update your branch to have a single commit with those changes only, with a good commit message.
You might take a look at https://chris.beams.io/posts/git-commit/ for guidance on how to write a good commit message. Try to write yours in a style that's consistent with the rest of the commits in this project.

Although, thinking about this a little more, I'm not so sure it's even a good idea to add this feature while #2843 is still open. It won't work properly until that issue is fixed, and it seems like not a good practice in general to add a feature that we already know will be buggy to the public API, especially to the PDF rendering engine of a web browser with (perhaps hundreds of) millions of users. @Snuffleupagus thoughts?

Hi,
Thanks for the updates. I will update my PR according to the feedback.

Closing since there has been no activity for a month. If you continue working on this, please open a new PR with all comments addressed. Thanks.


Extend relative date ranges beyond next and last

⚠ Please check that this feature request hasn't been suggested before.

[X] I searched previous Ideas in Discussions didn't find any similar feature requests.
[X] I searched previous Issues didn't find any similar feature requests.
[X] I am only requesting a single feature. Multiple changes should be split into individual requests, with links between them.
[X] I believe my requested feature will be generally applicable to other users, not just me: it is not uniquely tied to my personal workflow.

🔖 Feature description
The current relative date ranges offer only this|next|last choice. However it is impossible to choose the week after next week or in last 2 months.
Unfortunately in the current implementation in two weeks returns a filter with a  (eg the date in 2 weeks from now), not a .
✔ Solution
I suggest to add such functionality for date ranges, possible options:

next next <date range> (repeat next for each time eg in 3 weeks = next next next week)
next X <date range> (next 3 weeks)
something else? I think the 2nd option is better, but I would like a nicer way of doing this, so open for suggestions

❓ Alternatives
No response
📝 Additional Context
No response

Thanks for the suggestion.
Please could you sketch out what the draft documentation would look like, and what some example searches would look like?

The motivation is simple - I wish to have a "sliding" kanban board from week to week (for the current week & next 3 weeks - what shall I do this/next/next next/... week) and from month to month for a year (current month + 11 months) in an Obsidian Canvas.
Right now the only way to do this is to hardcode the values of the weeks & months with absolute ranges in the queries  inside the cards. But in this case after one week or month the board becomes obsolete. Also it would take a lot of manual effort to create a canvas for every month. The year is ok - just do it once every 12 months, I can live with that.
Hope this motivation is good enough, let me know =)

Awesome, that's really helpful to know, and it's a really nice idea.
I do that sort of thing with tables generated in dataviewjs, but the layout is not nearly as flexible, or readable, as it would be with canvas.
It sounds like it would be very doable with custom filters already, I think?

If you let me know the code you come up with, I can pop them in to the docs as examples...
Then, over time, I plan to review the custom filter (and group) functions and promote some of them in to built-in searches... That's just not a priority right now...

Ok. Just in case someone will have the same kind of request, here is what I came up with:
((task.start.moment?.isSameOrAfter(moment().add(2, 'w').startOf('week'), 'day') && task.start.moment?.isSameOrBefore(moment().add(2, 'w').endOf('week'), 'day')) || (task.due.moment?.isSameOrAfter(moment().add(2, 'w').startOf('week'), 'day') && task.due.moment?.isSameOrBefore(moment().add(2, 'w').endOf('week'), 'day'))) || false

This is great functionality, just hope every one else who needs similar stuff is able to write this kind of code and hope it works correctly (I don't see a way to test this).
PS a nice trick to write such code is to break it down in an editor:

I actually enriched the functionality and here is the new thing:
filter by function ((task.start.moment?.isSameOrAfter(moment().add(2, 'w').startOf('week'), 'day') && task.start.moment?.isSameOrBefore(moment().add(2, 'w').endOf('week'), 'day')) || (task.due.moment?.isSameOrAfter(moment().add(2, 'w').startOf('week'), 'day') && task.due.moment?.isSameOrBefore(moment().add(2, 'w').endOf('week'), 'day'))) || (task.start.moment?.isBefore(moment().add(2, 'w').startOf('week')) && (task.due.moment === null || task.due.moment?.isSameOrAfter(moment().add(2, 'w').endOf('week'), 'day'))) || false

const granularity = 'day';

function inInclusiveRange(date, startOfRange, endOfRange) {
    return date?.isSameOrAfter(startOfRange, granularity) && date?.isSameOrBefore(endOfRange, granularity);
}

function appleSauce1() {
    const amount = 2;
    const unit = 'w';
    const now = moment();
    const unitOfTime = 'week';
    const startDate = task.start.moment;
    const dueDate = task.due.moment;
    const startOfRange = now.add(amount, unit).startOf(unitOfTime);
    const endOfRange = now.add(amount, unit).endOf(unitOfTime);
    zzzz = (
            inInclusiveRange(startDate, startOfRange, endOfRange) ||
            inInclusiveRange(dueDate, startOfRange, endOfRange)) ||
        (startDate?.isBefore(startOfRange) && (dueDate === null || dueDate?.isSameOrAfter(endOfRange, granularity))) ||
        false
}

appleSauce1();

do you mean you end up with all of this in one line????

do you mean it works with all of this in one line????

Yes, like the last few examples at the bottom of this section:
https://publish.obsidian.md/tasks/Queries/Grouping#Due+Date

Thanks for closing it - much appreciated.


feat: improve secret key security

only reveal one word at a time and hide word length
add warning on copy secret key button

Note: needs translation. Are you happy with the flow? if so I will add the translation keys.
Maybe we can also add some extra copy regarding the recommended approach of writing down the keys on a piece of paper and storing somewhere safe.

maybe can we even remove the copy option?
this means less code and it's not good to copy them anyway.

Note: copy button (and confirmation dialog) has now been removed


status is staying down

i cant exactly run the scraper anymore, it used to work for me perfectly fine and i changed nothing but the status says its down and is staying down, ive checked the auth.json and all the info matches up, im not sure what the problem is at all

This is a duplicate of the last two open issues from the last week or so. It looks like OF changed something with their API or something.

There is a fix that worked for me, edit constants.py in the source code
based on one of the other comments. Basically change a word in the URL
where it gets some config from
On Tue, Jul 11, 2023 at 4:16 PM StPatty33 @.***> wrote:

This is a duplicate of the last two open issues from the last week or so.
It looks like OF changed something with their API or something.
—
Reply to this email directly, view it on GitHub
https://github.com/taux1c/onlyfans-scraper/issues/60#issuecomment-1631624862,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMQTGG6VV6JARFUCTQNN3MLXPXNGNANCNFSM6AAAAAA2GFSANI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

There is a fix that worked for me, edit constants.py in the source code based on one of the other comments. Basically change a word in the URL where it gets some config from
…
On Tue, Jul 11, 2023 at 4:16 PM StPatty33 @.> wrote: This is a duplicate of the last two open issues from the last week or so. It looks like OF changed something with their API or something. — Reply to this email directly, view it on GitHub <#60 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMQTGG6VV6JARFUCTQNN3MLXPXNGNANCNFSM6AAAAAA2GFSANI . You are receiving this because you are subscribed to this thread.Message ID: @.>

I'll have to give that a shot if the scraper I'm trying now instead doesn't work out. This other scraper scrapes now so that's good, and SUPPOSEDLY it bypasses the new DRM too, though I haven't finished testing that. I really don't want to have to download everything over again though and I'm not sure the data files are compatible.

There is a fix that worked for me, edit constants.py in the source code based on one of the other comments. Basically change a word in the URL where it gets some config from
…

https://github.com/taux1c/onlyfans-scraper/issues/57#issuecomment-1625648455

Here is a link to the fix mentioned above, with instructions. It's actually line 47 for the record, and it worked perfectly for me.
#57 (comment)

Awesome--worked perfectly. I can at least scrape again, though if the other scraper I'm tinkering with (ofscraper) does decrypt the DRM then I may have to stick with that one, or wait until the same method starts being used by others.
Thanks again!

I start feeling like the most stupiest Person on earth. Argh.. I used to run it with pydroid and it was amazing.. I changed the line as suggested and Status is still down..

i installed on mac using pip install. where is the location of this file which i need to modify ?

It still didn't work for me, is everyone working today?

stays down for me as well, even after applying the patch.

Works for me after applying the patch. Triple check all your values.

This repo is outdated (no longer works) and I am no longer maintaining it.


Emoji.Wpf ：emoji-test.txt not found

RT.

From : https://unicode.org/Public/emoji/12.0/

(for the record: the reporter probably did not initialise the Git submodules)


CARBON-15639: Refactoring and Fix Format Issues

There are conflicts, Please resolve and resend the PR


Cannot download MSYS2

The download url does not work, it also fails when downloading via a browser.
>vcpkg install icu

The following packages will be built and installed:
    icu[core]:x64-windows
Starting package 1/1: icu:x64-windows
Building package icu[core]:x64-windows...
-- Using cached C:/Users/roeland/lib/vcpkg/downloads/icu4c-61_1-src.tgz
-- Applying patch C:/Users/roeland/lib/vcpkg/ports/icu/disable-escapestr-tool.patch
-- Applying patch failed. This is expected if this patch was previously applied.
-- Applying patch C:/Users/roeland/lib/vcpkg/ports/icu/remove-MD-from-configure.patch
-- Applying patch failed. This is expected if this patch was previously applied.
-- Acquiring MSYS2...
-- Downloading http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20181211.tar.xz...
-- Downloading http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20181211.tar.xz... Failed. Status: 18;"Transferred a partial file"
CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:172 (message):

      Failed to download file.
      If you use a proxy, please set the HTTPS_PROXY and HTTP_PROXY environment
      variables to "https://user:password@your-proxy-ip-address:port/".
      Otherwise, please submit an issue at https://github.com/Microsoft/vcpkg/issues

Call Stack (most recent call first):
  scripts/cmake/vcpkg_acquire_msys.cmake:76 (vcpkg_download_distfile)
  ports/icu/portfile.cmake:75 (vcpkg_acquire_msys)
  scripts/ports.cmake:71 (include)

Error: Building package icu:x64-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `.\vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
  Package: icu:x64-windows
  Vcpkg version: 2018.11.23-nohash

Additionally, attach any relevant sections from the log files above.

no download problems
on your side of the problem
cd C:/Users/roeland/lib/vcpkg/downloads
wget http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20181211.tar.xz

The download consistently gets interrupted after a few minutes. You cannot reproduce this with wget because wget will automatically resume the download if this happens.

@roelandschoukens, thanks for posting this issue!
We can't reproduce this issue locally, here is a workaround may work for you:

Download the source code with a web browser from: http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20181211.tar.xz
Save it inside <path_to_vcpkg>/downloads/.
Run ./vcpkg install icu:x64-windows again

@roelandschoukens You can also use this link to download msys2.

Thanks for posting this issue. Please open a new issue if this is still a problem for you.

This is still a problem. repo.msys2.org is inaccesible from Hong Kong, Japan, Germany, San Francisco, etc...
Is it possible to use sourceforge as the default download source?

@MaverickTse That's msys official site... Just wait for fix would be okay.

The situation has been over a year but MSYS2 side seems ignoring the problem. See:
https://github.com/msys2/MSYS2-packages/issues/1098
While i can change vcpkg_acquire_msys.cmake to use China's mirror for my own use, others probably would run into the same issue.... and the version of msys2 is old

I have the same problem. repo.msys2.org has died.

Since this issue  lasts too long, please track #10322.
Thanks.


Fixing #301

Fixing the error that could crash program, when influence is -2
Saves will still have the -2 numbers, but it will  be ignored by the drawing of the true influence distance

Seams this was not yet the solution

Sorry, tested an other thing where this fix is not in yet... so this is oke

This fix is also in PR #303 therefor i close this one


CCA verifier: nonce comparison with CCA challenge to avoid the replay attack

CCA verifier should parse the challenge out from the CCA token (currently it's a cbor binary), this value should be compared with the nonce to avoid the replay attack.
This is not implemented in the early version, since the lack of rust tool to parse the cbor to a json file with the key as a string (plaintext) instead of a int.
So far, the solution might be,

use regex to replace all the int to string from the parsed text and then serialize it as a json, or
see is there any plan to use the string as the key instead of int when the token is converted to be a cbor.

this needs some investigation/discussion/POC to make it finally ready, so it might take a while.

cc @Xynnn007

This is very import that the CCA verifier currently does not check the bind relationship of the tee pubkey/RCAR's challenge and the evidence. Let's fix this later. Before this, CCA verifier is insecure.

/assign

@Xynnn007 pls assign it to me, seems like I cannot assign this to myself.

@Xynnn007 pls assign it to me, seems like I cannot assign this to myself.

Done : )


new pika update is broken

use pika version 0.10.0

They fixed the problem I believe. Dunno if it's still necessary to freeze the pika version


Escape broken links for contoso.com

https://dev.azure.com/msft-skilling/Content/_workitems/edit/173987

Hi - Please don't create PRs with multiple file owners, as it takes a lot of to-and-fro-ing to OK them, and sometimes everyone just assumes everyone else is going to look after it.


chore: update react nextjs

Description
This pull request updates the project's dependencies, focusing on updating React and Next.js to their latest versions and release candidate (RC) versions. These updates offer new features and improvements to the current version. Additionally, other dependencies were updated using the pnpm update command to automatically update the dependencies.
Key Updates

react 19: Includes support for server actions and native server-side rendering in React. Read more
next.js 15: Brings improvements in security and support for Turbopack. Read more
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
Challenges
During the update of the dependencies, an error was thrown by framer-motion due to compatibility issues with React 19. I followed the issue on the official framer-motion repository to resolve the error.
These enhancements will provide a more robust and efficient development experience.
Checklist

[ ] Added documentation.
[x] The changes do not generate any warnings.
[x] I have performed a self-review of my own code
[ ] All tests have been added and pass successfully

Notes

Great work! Keep up the excellent effort on this project and continue creating new plugins and packages for this ecosystem. 🥳

For an unknown reason, the preview by Vercel is not working correctly. I don't know the exact cause of this issue. In the previous pull request, the correct configuration was set up for the preview and deployment of projects on Vercel. You can refer to the previous configuration details here: see PR.

After trying to fix the issue with the preview in this pull request, I've noticed the error. The first time, the error was created by Vercel because it was confused about the configuration in the project, as mentioned in the previous PR:

Due to the use of Turborepo, the rootDirectory changes from ./ to ./app. Therefore, the buildCommand must change from pnpm build to cd .. && turbo run build. This change is necessary because the root of the project has shifted. The rootDirectory is the folder used to deploy the application, containing the files generated for publication. The Next.js app to be published is located in the app folder.

On the other hand, the Vercel CLI doesn't work well, as I tried to deploy multiple times and its behavior changes every time, from not finding the resource to not recognizing packages like react-dom@19 and react@19 at other times.
This is the content within project.json, which is the same configuration that the project has on Vercel. To verify it, I only executed the vercel pull command to retrieve all configurations from remote, and with this configuration, the deployment was successful. However, if I execute the vercel cli, it doesn't work well and throws an error:
"settings": {
    "createdAt":<PHONE_NUMBER>593,
    "framework": "nextjs",
    "devCommand": null,
    "installCommand": null,
    "buildCommand": "cd .. && turbo run build",
    "outputDirectory": null,
    "rootDirectory": "app",
    "directoryListing": false,
    "nodeVersion": "22.x"
  }


Update init.py

Reintroduce my modification as per:
Get calories for all activities #93
Use Get Activity (getActivityById) API method to get calories for all activities

Get calories for all activities
Use Get Activity (getActivityById) API method to get calories for all activities


fix(oauth implicit): removed encoding of space character between implicit response types when returning token from popup

Work was done by @Vidarls in aurelia-auth to add support for OpenID (https://github.com/paulvanbladel/aurelia-auth/issues/28#issuecomment-152566938). Basically, if the provider's response type is"id_token%20token" or "token%20id_token", then implicit flow is assumed and the token is returned directly from the popup - otherwise code flow occurred and a code/token exchange needs to take place via a POST request.
In order for this to work as written, the responseType property of the providers configuration also has to have the spaces encoded.
Unfortunately, when the URL for the popup is created, the responseType is encoded by aurelia-path, which results in the "%20" being encoded again, so the response type sent to Identity Server in the URL actually becomes "id_token%2520token" - which Identity Server correctly rejects as an invalid response type.  Example popup URL:
https://identity.local/connect/authorize?client_id=portal-web&display=popup&response_type=id_token%2520token&scope=openid profile email
This PR fixes the issue; response types should be separated by spaces and not require the encoding.

seems. logical.


Default, required, vector tweaks

vectors now are only floats
required default is now True
default values are validated but not coerced, instead the coerced value is saved to the backend on first get

also, some (maybe?) better handling of None vs undefined - undefined should be internal only, anything that is set to undefined should be None on get.

Current coverage is 95.29% (diff: 92.85%)

Merging #56 into dev will decrease coverage by 0.11%

@@                dev        #56   diff @@
==========================================
  Files             5          5
  Lines           719        723     +4
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            686        689     +3
- Misses           33         34     +1
  Partials          0          0

Powered by Codecov. Last update 0f2fd6b...03675e9

I realize that a lot of the changes were due to linting updates.

Yes, it all got crammed into one PR, rather than incrementally merged to dev. Smaller PRs in the future.


refactor: replace GSON-based Json reader with pure Kotlin version

Replace the platform-specific GSON based Json parser with a pure Kotlin version based on a forward-read only stream of characters - moving closer to being able to stream parsing rather than having to buffer full responses into memory.

closing in favor of #477


GBError visibility modifiers

At this moment there is no way to get info from GBError except reflection. It is needed at least because you have public fun setRefreshHandler that sets a lambda with error callback.
class GBError(error: Throwable?) {

    /**
     * Error Message for the caught error / exception
     */
    private lateinit var errorMessage: String

    /**
     * Error Stacktrace for the caught error / exception
     */
    private lateinit var stackTrace: String

    /**
     * Constructor for initializing
     */
    init {
        if (error != null) {
            errorMessage = error.message ?: ""
            stackTrace = error.stackTraceToString()
        }
    }
}

Any solution is applicable: make the error into a data class, override toString() method or make fields public; but any of the solutions require errorMessage/stackTrace not to be lateinit, so there is no need for null check around initialization, and init can look like this.
    init {
        errorMessage = error?.message ?: ""
        stackTrace = error?.stackTraceToString() ?: ""
    }

Hello @VeeronTen!
Thank you for reporting this issue.
The pull request was created according to this issue


[Error Report]:

Exception Report
SAMM Information:
	Manager Version: 1.2.6
	Current Game: Sonic Adventure DX
	Game Directory: G:\SteamLibrary\steamapps\common\Sonic Adventure DX
	Manager Location: E:\SteamLibrary\steamapps\common\Sonic Adventure DX\
	Running as Admin: False
	Mod Loader Version (Hash): d1ca53641859529ce005acb5d8a1b984ce02fe48

Exception Information:
	Type: IOException
	Exception: The device is not ready. : 'G:\SteamLibrary\steamapps\common\Sonic Adventure DX\mods'
	Source: System.Private.CoreLib
	In Function: IntPtr CreateDirectoryHandle(System.String, Boolean)
	StackTrace:    at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound)
	   at System.IO.Enumeration.FileSystemEnumerator`1.Init()
	   at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options, Boolean isNormalized)
	   at System.IO.Enumeration.FileSystemEnumerableFactory.DirectoryInfos(String directory, String expression, EnumerationOptions options, Boolean isNormalized)
	   at System.IO.DirectoryInfo.InternalEnumerateInfos(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options)
	   at System.IO.DirectoryInfo.GetDirectories(String searchPattern, EnumerationOptions enumerationOptions)
	   at SAModManager.SAModInfo.GetModFiles(DirectoryInfo directoryInfo)+MoveNext()
	   at SAModManager.MainWindow.LoadModList()
	   at SAModManager.MainWindow.Refresh()
	   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)
	   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
	   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
	   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
	   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
	   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
	--- End of stack trace from previous location ---
	   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
	   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
	   at System.Windows.Threading.DispatcherOperation.Invoke()
	   at System.Windows.Threading.Dispatcher.ProcessQueue()
	   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
	   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
	   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
	   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
	   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
	   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
	   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
	   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
	   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
	   at System.Windows.Application.RunDispatcher(Object ignore)
	   at System.Windows.Application.RunInternal(Window window)
	   at SAModManager.App.Main()

I haven't loaded up anything from SA1 in a while, and now the mod manager is crashing. IDK what to do other than report it.

Does your G drive actually exist when it happens? It seems like it can't access the game path because the device isn't available. Is your game on an external drive that has a different drive letter now? We should probably add some kind of workaround for cases like this, but at the moment you might have to restore the original drive letter (and also path if you've moved the game) to be able to run the Mod Manager.
You could also go to %localappdata%\SAManager\SADX and edit the file Default.json (or whichever profile name you had) and fix the GamePath variable at the bottom to use a different path, or delete the whole SAManager folder to reset all Manager settings.

I changed up the drive letter in the Json file and now it works again. Thanks for the note.

With the Last Update it should no longer crash when moving the game to a different folder.


Reward service: Recalculate growth when content is added

Description
The growth needs to be recalculated every time a piece of content is added, edited or removed.
Acceptance Criteria

[ ] growth gets recalculated

Low prio because it is recalculated the next day anyways


update signatures with mdoc-<IP_ADDRESS>

@TianqiZhang PR is not reporting this but build has finished already with errors: https://opbuildstorageprod.blob.core.windows.net/report/2017\9\26\a3bda507-3390-de91-8f7f-26f90f4e5fc8\PullRequest\201709262013265702-3227\workflow_report.html?sv=2015-02-21&sr=b&sig=Fgg14tcAayFVp3Hn5YxbmCaeaYR9eR19bdpWvpohx14%3D&st=2017-09-26T22%3A00%3A31Z&se=2017-10-27T22%3A05%3A31Z&sp=r

LGTM :shipit:


[Updated PR#1476] Add explanation for database migration resets

This PR was recreated from https://github.com/jenssegers/laravel-mongodb/pull/1476 with updated branch or resolved conflicting files.
--
Add Database Testing to index.
use DatabaseMigrations; instead of use RefreshDatabase; for laravel 5.6 compatibility issue (https://github.com/jenssegers/laravel-mongodb/issues/1475)
Co-Authored-By: theminer3746<EMAIL_ADDRESS>

I have added some tests on demo application here. @divine @Smolevich
I think it is better to write:

use DatabaseMigrations; -> working
use DatabaseTransactions; -> not working for now
use RefreshDatabase; -> not working for now

in order to avoid other issues to be opened.

@Smolevich @Giacomo92 @rennokki what you think guys?

@Smolevich @Giacomo92 @rennokki what you think guys?

i think that it's ok


OpenSSL 1.0.2r Win32/64 static debug build doesn't contain PDB

Tried to build latest stable OpenSSL 1.0.2 lib for Windows project using next steps:

Installed perl/nasm
Launched "Developer Command Prompt for VS 2017"
Entered this commands:

cd c:\lib\openssl-1.0.2r
perl Configure debug-VC-WIN32 --prefix=c:\lib\openssl-32-dbg
ms\do_nasm
nmake -f ms\nt.mak
nmake -f ms\nt.mak test
nmake -f ms\nt.mak install

Build process was successfull and then I changed my older OpenSSL files (libeay32.lib and ssleay32.lib) with this one (previous version was 1.0.2m) after I got a lot of warnings from Visual Studio (they all look similar) like this:

1>libeay32.lib(cryptlib.obj) : warning LNK4099: PDB 'lib.pdb' was not found with 'libeay32.lib(cryptlib.obj)' or at 'C:\PROJECTDIR\lib.pdb'; linking object as if no debug info

Also noticed that size of 1.0.2r static-debug version is smaller than previous version, that probably means, that PDB files, which VS2017 requires for debug, are not there.

Is it bug, or build process was changed?

I build with cygwin (my compile_flags = "-no-asm -shared") and found the pdb in eg. openssl-1.0.2r_vs90_32\out32dll\

We added support for PDB files, including getting them properly installed, in 1.1.0.  1.0.2 has an older build system where that support simply isn't there, nor is very easy to add.  Considering that 1.0.2 is reaching EOL in less than 2 months, it's not worth the effort.  Please consider upgrading to 1.1.1.


Add option ignoreCaret to config

Sometimes when testing input field tests fall due until the cursor appears. In the look-same library there is an option to ignoreCaret to solve this problem. I would like to be able to set this option by default via the configuration file

@xaircore
Thank you for this question. But as you can see here and here there no necessity to have this option in configuration because  ignoreCaret is set automatically depending on active page element.

@tormozz48 But my test fail report. There is my config

@xaircore Please show code of your test. Are you sure that you have latest version of gemini and looks-same plugin? Recently we have fixed some bug with caret for devices with pixeRatio > 1

@tormozz48 Sorry, I forgot to mention that I use an older version, to be exact it - 1.1.6. In the nearest days I plan to go to 4.4.1. If you have the same problem, I'll let you know

@tormozz48 Now I'm using version 4.10, but the problem remained with the caret. See my screenshot

//cc @sipayRT @j0tunn

As I can see there are no problems with caret.
gemini ignores caret if it is the only diff on page. But you have other diffs:

so gemini shows the whole diff (including the caret)

I suggest you to change the diff colour to make it more visible

@j0tunn Thanks for the explanation the situation


Added apt-get command too! 😺

Just tried to contribute a little bit

https://linuxhint.com/why_apt_get_clean/


Add internationalization package to prepare for localization

This provides a bare bones implementation using intl package and Flutter Intl plugin to make it easier to localize the app down the road.

use intl as suggested in the offical docs to enable internationalization
use this IDE plugin to generate boilerplate code for translations
add translations for Japanese and Traditional Chinese (to check things work as expected)
code formatting

Looks great ! Merging right now, thanks a lot


Windows DLL stays locked when linked against OpenSSL 1.1.1j

Hello there,
I have a plugin for mumble in the works, which faciliates an updater. Mumble can load and unload the plugins.  Mumble also has an updater, that calls a plugin function to get the latest download URL. It then fetches the new plugin, unloads the current one if loaded, and then :warning: deletes the old plugin dll to overwrite it with the downloaded version.
This is the point where I get problems:
As soon as I compile against OpenSSL (1.1.1j is in effect here) the DLL gets locked by mumble and could not be free'd entirely and thus cannot be deleted by mumble.

We already tracked this down to be specifically related to cpp-httplib and/or OpenSSL
We ruled out it'ts a mumble or generic plugin issue
I think the Problem is something in OpenSSL (or maybe the way cpp-httplib instanciates/uses it?)
Just linking OpenSSL does not trigger the issue, it is only there if #define CPPHTTPLIB_OPENSSL_SUPPORT 1 to let cpp-httplib uses it

Details:

Code is specifically here: https://github.com/hbeni/fgcom-mumble/blob/master/client/mumble-plugin/lib/updater.cpp
We track it here, for further information: https://github.com/hbeni/fgcom-mumble/issues/131
I opened a issue for cpp-httplib: https://github.com/yhirose/cpp-httplib/issues/986
(it looks like I don't understand whats going on in the code - but its working fine with older openssl versions)
I build OpenSSL on linux debian testing from git with mingw version x86_64-w64-mingw32-gcc (GCC) 10-posix 20210110:
./Configure mingw64 -static no-weak-ssl-ciphers no-ssl2 no-ssl3 no-idea no-dtls1 --cross-compile-prefix=x86_64-w64-mingw32- && make clean && make

Hi, I just got new insights.
I wondered if it might have to do with a specific OpenSSL version, and indeed it is the case.
Versions 1.1.1a and 1.1.1b are working fine, but from 1.1.1c onward the issue described above is present.
(I also suggest tagging this as bug again for that reason)
Now the question is - which of the 23250 commits does cause this...

The bisect is done:

fc4c034ee823c18de34d72dc46da6aabbb6f551e is the first bad commit
commit fc4c034ee823c18de34d72dc46da6aabbb6f551e
Author: Guido Vranken<EMAIL_ADDRESS>Date:   Mon Apr 22 14:11:12 2019 +0200
Enforce a strict output length check in CRYPTO_ccm128_tag

Return error if the output tag buffer size doesn't match
the tag size exactly. This prevents the caller from
using that portion of the tag buffer that remains
uninitialized after an otherwise succesfull call to
CRYPTO_ccm128_tag.

Bug found by OSS-Fuzz.

Fix suggested by Kurt Roeckx.

Signed-off-by: Guido Vranken<EMAIL_ADDRESS>
Reviewed-by: Matthias St. Pierre<EMAIL_ADDRESS>Reviewed-by: Paul Dale<EMAIL_ADDRESS>Reviewed-by: Matt Caswell<EMAIL_ADDRESS>(Merged from https://github.com/openssl/openssl/pull/8810)

(cherry picked from commit 514c9da48b860153079748b0d588cd42191f0b6a)

crypto/modes/ccm128.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

That doesn't make so much sense.
For reference, this is what I recorded log:
282360e  good
7a3c4b3  good
2341db5  bad
66790d76  bad
7216e9a  bad
fc4c034  bad
57aac8b  bad

Ok, I just tried to revert fc4c034 and it is still not good.
Will dig deeper and report back.

Today I recompiled and tested 1.1.1a up until commit 97ace46e11 (1.1.1c) and that worked.

OK, I think I found it, and this tme it does make sense (probably):
It's part of OpenSSL_1_1_1c
5fba3afad0      bad
0c45bd8dae	good

5fba3afad01707f4a8856a35500de007a8a256ec is the first bad commit
commit 5fba3afad01707f4a8856a35500de007a8a256ec
Author: Richard Levitte<EMAIL_ADDRESS>Date:   Mon Apr 1 06:40:33 2019 +0200
Rework DSO API conditions and configuration option

'no-dso' is meaningless, as it doesn't get any macro defined.
Therefore, we remove all checks of OPENSSL_NO_DSO.  However, there may
be some odd platforms with no DSO scheme.  For those, we generate the
internal macro DSO_NONE aand use it.

Reviewed-by: Paul Dale<EMAIL_ADDRESS>(Merged from https://github.com/openssl/openssl/pull/8622)

Configure                             | 23 ++++++++++-------------
INSTALL                               |  3 ---
crypto/dso/dso_openssl.c              |  2 +-
crypto/include/internal/dso_conf.h.in |  5 +++--
crypto/init.c                         | 10 ++++------
include/internal/dsoerr.h             |  7 ++-----
6 files changed, 20 insertions(+), 30 deletions(-)

I tried to revert 5fba3afad on tag OpenSSL_1_1_1c, but this yields conflicts I don't understand.
Hopefully this will give you enough information to figure out what's going on.

You can try configuring and building with no-pinshared.

You can try configuring and building with no-pinshared.

That fixed it! Now it works with 1.1.1k :D :partying_face:


CRS-18 launch date still with troubles

According to #226, launch times are updated every 10 minutes. As I can see on https://www.reddit.com/r/SpaceX/wiki/launches/manifest/, CRS-18 has been updated to the today date (Jul 25) but /launches/next still returns the old time (Jul 24). I'm not sure if it's still a previous bug you fixed a few days ago, but I want to let you know.

Just pushed a fix for this
2019 Jul 25 [22:01:56] was the date entered
Haven't seen a launch time with seconds before in the manifest, so I didn't think to add it.

Thanx!


Time is still reported incorreclty on Jenkins

Test execution times are still reported wrong in Jenkins in the latest version. I think that's because the single tests still have their time reported in milliseconds and Jenkins just sums up those times for the test suites.

Ouch... I will apply the patch to individual tests too. Thanks for reporting. Will release 1.0.1 soon.

Released 1.0.1 with the fix.

Wow, thanks for the quick fix!


__typename on Subscription's

Currently I'm have an issue with __typename field added to the root subscription generated by gql_build
Subscription example:
subscription Example(
    $Ids: [ID!]!
    $names: [String!]!
) {
    exampleLiveData(
        ids: $Ids
        names: $names
    ) {
        alias
        processedAt
        recordedAt
        value
    }
}

what is generated and sent to the server:
subscription Example(
    $Ids: [ID!]!
    $names: [String!]!
) {
  exampleLiveData(Ids: $Ids, names: $names) {
    alias
    processedAt
    recordedAt
    value
    __typename
  }
  __typename # <---- This shouldn't be here
}

Error thrown: GraphOLError Object: Subscription "Example must select onlv one top level field.
GraphQL specification: https://spec.graphql.org/June2018/#example-2353b

@mario-jerkovic what was the solution to this?


docker container auto restart when server power off/on

Output of docker version:
Docker version 1.12.1, build 23cf638
Output of docker info:
Docker version 1.12.1, build 23cf638
root@doctor:~# docker info
Containers: 3
Running: 3
Paused: 0
Stopped: 0
Images: 3
Server Version: 1.12.1
Storage Driver: devicemapper
Pool Name: docker-202:2-65283-pool
Pool Blocksize: 65.54 kB
Base Device Size: 10.74 GB
Backing Filesystem: ext4
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 3.231 GB
Data Space Total: 107.4 GB
Data Space Available: 19.75 GB
Metadata Space Used: 4.096 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.143 GB
Thin Pool Minimum Free Space: 10.74 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
WARNING: Usage of loopback devices is strongly discouraged for production use. Use --storage-opt dm.thinpooldev to specify a custom block storage device.
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.77 (2012-10-15)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: null bridge host overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor
Kernel Version: 3.13.0-61-generic
Operating System: Ubuntu 14.04.5 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.829 GiB
Name: doctor
ID: MBX4:LN2T:RZ3I:OZYJ:T57U:KR3A:CKCJ:IDXZ:NVAN:HQOE:MDXA:TAUJ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Additional environment details (AWS, VirtualBox, physical, etc.):
Steps to reproduce the issue:

ps -ef | grep docker
kill  -9 "the process docker-containerd-shimxxx"
restart this container

Describe the results you received:
We found the container can not start because docker show it has started " Container xxx is already active"
Describe the results you expected:
Our vm maybe powe-roff  and power-on by hypervisor because emergency reason. And we expect our container can auto-restart after power on. So if the process killed by os because of power-off. How can we ensure the container can auto-restart?
Additional information you deem important (e.g. issue happens only occasionally):

If you actually power-off/power-on the system, all state information about the container will be gone since it is in a tmpfs (in most cases).
ping @mlaventure
I'm not sure if there is anything more we can do in cases where the shim dies (or is is sigkilled as done here).

@zjxpsetp is the error you saying more akin to Error response from daemon: oci runtime error: container with id exists: e575172ed11dc01bfce087fb27bee502db149e1a0fad7c296ad300bbff178148 ?
If not, can you share the debug logs for your test?

I'm experiencing this same problem.  I'm using Docker Cloud.  I have some details here.  https://forums.docker.com/t/service-containers-not-automatically-starting-on-node-restart/21326/5

@chrisjones77 your issue seems to be different than this one.
Your failure seems to be related to a missing (network?) plugin.
Feel free to open a new issue here to have it looked at.

Waiting for containerd to be vendored in master before closing this

#22049 updated containerd, closing this


Fix for WFCORE-5112, Upgrade bootable jar maven plugin to 2.0.0.Beta4

Issue:https://issues.redhat.com/browse/WFCORE-5112
In addition to the upgrade, the plugin configuration has been simplified, inherit-configs has been removed. inherit-packages is false by default.

@jfdenise thanks


[Dev] bump reaction

Fixes: https://artsyproduct.atlassian.net/browse/GROW-887

Tests are passing-- not sure what's up with peril/danger.


Not working on papers latest builds

Probably not unknown to you, but figured I would mention it.
Trying to set light does nothing, and whenever i getLightLevel it returns -11

It also returns -11 even when im not setting and just getting the lightlevel
Not sure if im the one doing it wrong or if its just not fully working for Papers Tuinity merge just yet

I'm not sure, but there are some comments:

Do not call LightAPI.initialization(). It is intended for internal use.
The lighting level may not change if the current lighting level is brighter than the required one.
Use ResultCodes. The setLightLevel/getlightlevel methods can return the execution code from this list.
I'm not sure, but it seems broadcastVal shows the value of "location.blockZ".

For example:
        int blockLight = LightAPI.get().getLightLevel(worldName, blockX, blockY, blockZ, LightFlag.BLOCK_LIGHTING);
        broadcastMessage("LightLevel: " + blockLight);
        int resultCode = LightAPI.get().setLightLevel(worldName, blockX, blockY, blockZ, lightLevel);
        switch (resultCode) {
            case ResultCode.SUCCESS:
                // The request was executed.
                break;
            case ResultCode.MOVED_TO_DEFERRED:
                // The request has been moved to the queue and will be executed after a while.
                break;
            default:
                broadcastMessage("Something is wrong. Result code:" + resultCode);
                break;
        }

val blockLight = LightAPI.get().getLightLevel(location.world.toString(), location.blockX, location.blockY, location.blockZ.broadcastVal("light: "))         broadcast("Lightlevel: $blockLight")         val resultCode = LightAPI.get().setLightLevel(location.world.toString(), location.blockX, location.blockY, location.blockZ, 15)         when (resultCode) {             ResultCode.SUCCESS -> broadcast("success")             ResultCode.MOVED_TO_DEFERRED -> broadcast("moved")             else -> broadcast("oopsies: $resultCode")         }

light where im standing is 0 sky 0 block

Check the name of the world. Code -2 means that the world is unavailable.

Yeah seems location.world.tostring was CraftWorld(name=world) so makes sense why it didnt work.
Works after fixing this to be the actual worldname so

Please close this issue if your issue was fixed.


[Fix #5236] Fix false positives for Rails/InverseOf

Fixes #5236
When using Object#with_options, :inverse_of works even if doesn't declare it directly in associations.
class Blog < ApplicationRecord
  with_options inverse_of: :blog do # good
    has_many :posts, -> { order(published_at: :desc) }
  end
end

So if the association is in a block with with_options, this Cop check that options.

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[x] Run rake default or rake parallel. It executes all tests and RuboCop for itself, and generates the documentation.

👍


Doc Feedback:

Location : https://is.docs.wso2.com/en/latest/develop/writing-a-custom-local-authenticator/
Web page "Writing a Custom Local Authenticator"  contains the OSGi service component class to register the custom authenticator.SCR annotations are not updated according to the standard.
Affected Product Version: Identitiy Server  5.11.0

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


Use knitwork to simplify type generation code

What? https://www.npmjs.com/package/knitwork
Where? https://github.com/wxt-dev/wxt/blob/dd26b990277f3d934c650a2bcb8e64b572dcf6c8/src/core/build/generateTypesDir.ts

Looked over things, won't simplify things by much.


[Feature] True Black AMOLED Theme

Is your feature request related to a problem? Please describe.
Only simple dark theme is not suitable for most users and many prefers the True Black AMOLED theme which is only Black and white theme for the app. Here is a concept I made with Photoshop of what it would look like:
https://ibb.co/t2jLJxw
https://ibb.co/Zg8Yhtn
https://ibb.co/bPYJ61C

photo hosting
Describe the solution you'd like
The option to have a True Black AMOLED theme for Photok

This is a good idea 👍

This is a good idea 👍

This is a good idea 👍

Thanks, Glade you like it! as I myself love black themes :)

This is a good idea 👍

Thanks, Glade you like it! as I myself love black themes :)


Add installed extensions to nodejs module paths

Setup nodejs module paths so that extensions can import things from other extensions.

It seems this is not needed, await import("..") works well enough.


python310Packages.python-novaclient: 18.1.0 -> 18.2.0

Description of changes

Things done

Built on platform(s)

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

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

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

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

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

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 204704 run on x86_64-linux 1

4 packages built:

openstackclient (python310Packages.python-openstackclient)
python310Packages.python-novaclient
python39Packages.python-novaclient
python39Packages.python-openstackclient


Start Command no longer works on the D3

The start command on the D3 no longer works. I've updated to the latest version of the Neato firmware.
I noticed this initially in my Android application, and then confirmed the issue on the reference Javascript client.
The start command is ignored or no longer a function per the javascript console log:
neato-demo-app.js:76 Uncaught TypeError: this.user.getRobotBySerial(...).startHouseCleaning is not a function
    at Object.startHouseCleaning (neato-demo-app.js:76)
    at Object.startOrResume (neato-demo-app.js:69)
    at HTMLAnchorElement.<anonymous> (neato-demo-app.js:180)
    at HTMLDocument.dispatch (jquery.min.js:3)
    at HTMLDocument.r.handle (jquery.min.js:3)

I believe there needs to be an sdk update?

Hello,
The SDK does not contain the most recent services yet. You may use custom calls and define them according to the services as defined in:
https://developers.neatorobotics.com/api/robot-remote-protocol/housecleaning
Hope this helps.


Fixed :Jail bug not unjailing after set time

Fixed minor bug
Fixed bug where when looking for the player the argument it wasn't there (I didn't put args in a table)

@Dimenpsyonal mum


[question] Rediscovery of devices after HomeAssistant restart

I have switched from zwave2mqtt to zwavejs2mqtt and it is working quite well after some trial and error in the beginning due to my own ignorance but al seems to be running well. There are only some minor issues left, and one larger issue
In the past when i restarted HomeAssistant the Zwave devices where usable as soon as HomeAssistant was started, but now they are only available after saving a setting in zwavejs2mqtt, since it sends a rediscovery and sends all data to the MQTT broker for HomeAssistant to relearn the status of the devices.
I have worked around this issue by enabling Retained Discovery, but i never had this setting enabled in zwave2mqtt
Is it possible that zwave2mqtt was responding to the birth and will messages HomeAssistant was sending on restart?
MQTT settings in HomeAssistant
mqtt:
  broker: mqtt.domain.net
  port: 1883
  client_id: home-assistant-1
  username: homeassistant
  password: secret
  discovery: true
  discovery_prefix: homeassistant
  birth_message:
   topic: 'hass/status'
   payload: 'online'
  will_message:
   topic: 'hass/status'
   payload: 'offline'

Sorry duplicate to https://github.com/zwave-js/zwavejs2mqtt/issues/227 due to a 404 on github

Sorry duplicate to https://github.com/zwave-js/zwavejs2mqtt/issues/227 due to a 404 on github


raftstore: enhance local read and read index while splitting

Local read and read index may be unsafe if splitting is extremly slow on leader.

can you give a brief explanation how do we improve it?

Returns an error or waits if TiKV thinks it can not handle read index, and stops renew lease.

PTAL @Hoverbear

I suggest using another PR to introduce context at first.

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests


Container Linux upgrade not finishing

Issue Report Template
Tectonic Version
Tectonic 1.8.9-tectonic.1
Environment
What hardware/cloud provider/hypervisor is being used with Tectonic?
Bare metal
Expected Behavior
Container linux upgrade should finish.
Actual Behavior
It is stuck upgrading one node in our cluster.

Reproduction Steps

...
...

Other Information
Feature Request
Environment
What hardware/cloud provider/hypervisor is being used with Tectonic?
Desired Feature
Other Information

The worker that is waiting to upgrade has this in the logs:
I0411 05:39:56.226974 1 agent.go:120] Waiting for ok-to-reboot from controller... W0411 06:17:00.084748 1 agent.go:126] error waiting for an ok-to-reboot: waiting for annotation "container-linux-update.v1.coreos.com/reboot-ok" failed: watch closed before Until timeout ```

Any ideas on how to fix this?

Hi and thanks for the report. Sorry for the breakage, it looks like there may be a regression in latest kubernetes release related to the scheduling of some pods.
Can you please check in the journal of the stuck node if the kubelet is logging any error about failed to prepare subPath for volumeMount \"runtime-mappings-cm\" of container \"update-agent\"?

Ah I thought it was related to the issue I reported earlier.

Hi folks, apologies for the delay but Tectonic 1.9.6 has been released to the pre-production channel and should fix this issue. Please report back if you do or don't see a change in behavior.
1.9.6 will be pushed to the production channel after baking in pre-prod.

hi
i hit the same issue on 1.9.6 and my nodes reboots off and on ? this makes the cluster inaccessable some times ?  i am running 1.9.6-tectonic.1 and my channel is 1.9.6 ? can someone please let me know the fix.

hello @rendhalver : can you provide the steps how to do torcx daemonsets steps you were able to resolve using  torcx daemonsets.

We stopped using tectonic a while ago.
I will try and find the steps we used to resolve this and get back to you.

thank you. @rendhalver 👍

hi @rendhalver : any help . all our nodes getting frequent reboots due to this container linux updates and this cause some delay of our tests as cluster is not healthy for workloads.
can you help to send the steps.
@robszumski : Any updates from you how to fix this.

@rendhalver : I found this link relates to torcx demonsets ? does this procedure helps
https://github.com/coreos/tectonic-forum/issues/235

@robszumski: Did you get a chance to look on this . we still have issues and nodes rebooting due to container linux upgrade is in this stage when i see from tectonic console cluster settings  "Download and finalize updates" -->
Apply Container Linux updates --> Queued for Update (3 of 4) --> Reboot Success (1 of 4)
can you help.

+1 same issue happening here!


Download

For me  it would be necessary a link for the direct download of the files (in modal view or in grid/list view)
Thanks, Marco.

Feel free to open a PR

I opened a PR for this feature. Checkout #128

Yes. Merged on v2.8

thanks


Format of bounding boxes in different dataset.

I am going to transfer some two-stage methods in KITTI to Waymo. In the stage of RCNN, we are likely to deal with the problem of converting the format of boxes.
My main concern is that whether the ROIHead of some methods implemented in KITTI (e.g., PartA2) can be transferred to Waymo directly.
Since mmdet3d converts the Waymo dataset to KITTI format at first, I tend to believe we do not need to care about box format in such transfer. To be cautious, I hope I can got a confirmation from the developers.

Yes, I think you need not woory about the box format in a KITTI-Waymo conversion.


Usability Issue: Done Alignment

From @siuc-nate
On this screen:

The "edit" button only shows after the user has clicked "Done Alignment". When it's still in progress, there is an orange "continue" button with a different icon instead. Shouldn't this be consistent (edit) regardless?
Making any edits results in an immediate barrage of emails instead of a single email (with no option to just not send an email at all)

Actually, the emails might have been triggered by clicking the "Done Alignment" button(?).  It's not clear, but I got 3 more when I clicked it for the Competency mapping.

Making priority 2 as we have a bunch of usability /  icon use issues that will be easier to address when other issues around functionality are sorted out.

Some of this functionality has changed. Issue here is not clear.


Bump version to v0.10.0

Depends on #50

Any instructions on how to release this?

Any instructions on how to release this?

I'm not sure I'm afraid. I would guess you just cargo publish in each workspace member but I've never been involved in publishing a workspace project like this.

bors ping

@robyoung Okay, there're a couple of pitfalls publishing this.

microbit-common needs to be published first
microbit-common, microbit, microbit-v2 and the examples cannot be compiled (and thus not published with verifcation) using either v1 or v2 features on my Mac:

LLVM ERROR: Global variable 'Reset' has an invalid section specifier '.Reset': mach-o section specifier requires a segment and section separated by a comma.
error: could not compile `cortex-m-rt`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
LLVM ERROR: Global variable '__INTERRUPTS' has an invalid section specifier '.vector_table.interrupts': mach-o section specifier requires a segment whose length is between 1 and 16 characters.
error: failed to verify package tarball

Is it worth wrapping the steps up in another xtask so that it's easier in future? It already has code to ensure all the required targets are installed.


Optional To-Do

The itch.io page

[ ] I don't know about the green background color. It's a bit too much, reduces readability. Can I gradient to a lighter green color somehow?
[ ] Add alternative trailer that actually shows gameplay (and has original soundtrack)
[ ] Reduce number of screenshots, instead create a GIF of the gameplay
[ ] Do we need to start the page with story? Or should I just immediately start with what the game's about?
[ ] Perhaps add sparkles to the purple background (like in the actual game)

Visual Polishing

[ ] Make a better "exclamation mark" for when you lose the level
[ ] Make the intro/outro drawings much cleaner and more detailed (now they look like very rough sketches that still need to be turned into the final product)

[ ] Make color of outline match object (now it's all just this beige color)
[ ] There's a difference between a "sketchy style" and "bad drawing" - I should learn that difference someday. (I could neatly close all outlines and make sure I don't color outside the lines, but that would be boring. I'm looking for a style somewhere in between.)
[ ] I forgot there would be text underneath the image, which means it's now cut off in weird places. Either make images fullscreen, or change drawing to account for text.

[ ] Also resize sliders and checkbox in the interface
[ ] Add mask to tiles => color the X, Y and Z axis with a different gradient. This is very useful to see the location of a tile. (With the current isometric view, it's easy to think a tile is right next to you, when it's actually two levels lower or something)
[ ] Use different gradients on background of levels (and make them transition when camera moves) (instead of just the default blue one)

New/extra mechanics and systems

[ ] FENCES; create separate grid which only contains the connection between two points (fences are always on the edge)
[ ] Check performance for mobile. (Desktop is more than fine.)
[ ] Multiple interactive objects: allow different parameters per object, instead of only per color
[ ] Actually show proper reflections in the mirror (correct angle => angle info is transferred during light path seeking)
[ ] Trampolines (with fixed destinations?)
[ ] Ropes you need to cut
[ ] Try lights + light shader again (instead of "fake" lighting I implemented myself in the current version)
[ ] Water?

Small bugs

[x] If you press buttons really fast (both mobile and desktop), sometimes it glitches: position visually and position in code gets misplaced. Solution: temporarily deactivate button (once pressed) for 100ms or so?
[x] Blocking objects: moving objects don't update their transparency; sometimes really hard to see something

Level inaccuracies

Level 5 has an "easy" solution: fall from red platform (when it's still high in the air). Most people who tested the game didn't come near this solution at all, but hey, can't take any chances.
 I really want to use this new mechanic, to require players to think more out of the box.
Level 13 has a relatively easy solution: if the red platform is activated, and you just make sure you don't trigger any mirrors, you can make one player stand on the red platform and another falls from the floor above. (This is about halfway the usual steps required to solve this puzzle.)

I do notice an interesting trend in the puzzles: you often have to retrace your steps, but in a different way the second time. For example, you make player A move towards a certain switch. Once pressed, it must follow the same path again, but because something has changed, it suddenly leads to a solution!

Don't have time to solve these issues before game jam ends. Have copied them to a separate to-do list for a possible version 2.0 of the game.


Line Breaks in Content

How do you enter line breaks in the Content property?
I tried appending Char(13) and Shift+Enter, with no success.
Thanks!

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

ID: 05f2b953-e1fa-6068-4808-3ad30cb9fb14
Version Independent ID: 05f2b953-e1fa-6068-4808-3ad30cb9fb14
Content: Information button modern control in Power Apps - Power Apps
Content Source: powerapps-docs/maker/canvas-apps/controls/modern-controls/modern-control-info-button.md
Service: powerapps
Sub-service: canvas-maker
GitHub Login: @yogeshgupta698
Microsoft Alias: yogupt

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

Hi @stagich, we are still building line break support for info button which should be released in next quarter as part of upcoming updates to the control.


Add monitoring auto upgrade logic

I see this PR is still a draft, couldn't help but as to why we are making "auto" upgrade? (An experience from 1.6 times triggered this question.)

Like what we do for logging and pipeline, we will auto upgrade the workloads of them when upgrading Rancher. To ensure the users are using the latest version of Rancher tools. We already have the logic for them so I would like to keep the same way. But yes, we don't do auto-upgrade in 1.6 so this PR is still draft.

No need


Read remaining characters when threshold reached

Problem:

From the user:
I am blind and am using the NVDA screen reader.
I have noticed something that is rather commenn in todays websites.
When I type in the edit box to send an email to everyone at the gov.org site, the screen reader will read out something like this: 1199 characters remaining (limit is 1200 characters) this is every time i press a letter on the keyboard so 1199 becomes 1198 and so on.
Ideally we'd only want to enable screenreader character count announcements only when a certain threshold is reached.

Solution
This PR amend the character counter javascript so that it removes aria- attributes when users start typing (leaving the initial limit announcement intact) and attaches attributes only when 90% character count threshold is reached.
Ideal solution would be to remove this custom script and use the https://govuk-publishing-components.herokuapp.com/component-guide/character_count but that would bring BE work as well

@alex-ju with the threshold, remaining character count it still announced, which is something this change avoids until 90% is reached

thanks Alex


Support AS in RETURN clause

Users would like to specify alternative key names for return values that will take precedence over the original jsonPath.
Example:
MATCH (d:Deployment) RETURN d.metadata.name

Returns:
{
  "d": {
      "metadata": {
        "name": <<value>>
    }
  }
}

vs
MATCH (d:Deployment) RETURN d.metadata.name AS name

Returns:
{
  "d": {
    "name": <<value>>
  }
}

Trying this out. Now even the former query returns the result of the later. There is no 'metadata' path in the output anymore. Has this behaviour changed? Because documentation still shows as the previous.

@pjdurai missed your comment over this being merged.
Indeed the return objects now all get returned as top level properties without the hierarchical structure.
Im pretty sure this isn't ideal, will open an issue to restore the original behavior.


Potential issues when running in a multithreaded environment

The global variable and global redis connection would seem to cause problems in multithreaded servers, which is becoming a lot more common in Rails deployments (puma is now the recommended server by heroku for Rails). I would love to see rollout handle this seamlessly.

@gabrieljoelc did you ever figure this out? I'm encountering some redis timeouts using rollout in a Puma environment. I'm looking at using @mperham's  connection pool (https://github.com/mperham/connection_pool) to create a pool of redis connections for rollout to use, like so:
uri = URI.parse(ENV["REDIS_URL"] || "redis://localhost:6379/" )
$redis = ConnectionPool::Wrapper.new(size: 2, timeout: 5) { Redis.new(:host => uri.host, :port => uri.port, :password => uri.password) }
$rollout = Rollout.new($redis)

Any thoughts?

We never ended up using rollout. However, we use connection_pool for RabbitMQ connections in our Sidekiq processes and it works great. We use the with method instead of ConnectionPool::Wrapper in la_gear here and here
# /la_gear/lib/la_gear/bus.rb
def init_pool(size = ::Sidekiq.options[:concurrency],
                       timeout = 3)
      $publisher = ConnectionPool.new(
        size: size,
        timeout: timeout
      ) { ::LaGear::Publisher.new }

      $publisher.with do |bus|
        fail 'Bus is lost!' unless bus.is_a?(LaGear::Publisher)
      end
    end

and then in our sidekiq initializer in our Rails apps we do this:
# /config/initializers/sidekiq.rb
Sidekiq.configure_server do |config|
  config.redis = { namespace: 'best_app_ever' }
  # we require our sneakers initializer in our sidekiq threads
  require "#{Rails.root}/config/initializers/sneakers"

  LaGear::Bus.init_pool
end

I'm if this helps you with Puma, but can you do something similar like:
on_worker_boot do
  uri = URI.parse(ENV["REDIS_URL"] || "redis://localhost:6379/" )
  $redis = ConnectionPool::Wrapper.new(size: 2, timeout: 5) { Redis.new(:host => uri.host, :port => uri.port, :password => uri.password) }
  $rollout = Rollout.new($redis)
end

@gabrieljoelc Thanks for the response so quickly on a year-old thread!
Will take a look

Looks like this is very similar to https://github.com/FetLife/rollout/issues/30 ... closing this one as well.
Feel free to reopen it if you feel it's still an issue.

Sorry for bumping this thread closed more than 4 years ago, but we use ConnectionPool in your app and we'd like to know how to setup rollout so it can use it's connection.
Is defining the global $redis variable in the on_worker_boot as suggested by @gabrieljoelc the recommended way of doing it? Is there a way of not using a global at all?
Specially because it's using ConnectionPool::Wrapper, which the docs state that uses method_missing, so it comes with the following caveat:
The wrapper uses method_missing to checkout a connection, run the requested method and then immediately check the connection back into the pool. It's not high-performance so you'll want to port your performance sensitive code to use with as soon as possible.

@feliperaul We are currently using ConnectionPool::Wrapper and it has been performing well. I think you generally don't have to worry about wrapper's overhead as it's almost unelectable. The good thing is always to measure your use-case and see for yourself.

@reneklacan Could you share the code for setting up rollout with ConnectionPool that you're using?

@feliperaul it's pretty much this (simplified it a bit):
master_group_name = '...'
sentinels = ['...']
logger = Logger.new # etc

pool_options = {
  size: ENV.fetch("CONFIG_MAX_CONCURRENCY").to_i,
  timeout: 5,
}
redis_options = {
  url: "redis://#{master_group_name}",
  role: :master,
  driver: :hiredis,
  sentinels: sentinels,
  logger: logger,
}
$redis_rollout =
  ConnectionPool::Wrapper.new(pool_options) do
    Redis.new(redis_options)
  end

$rollout = Rollout.new($redis_rollout)

in case you don't use sentinels, just leave it out and just use your redis url


[ArPow Tarball] Add step to package source-build artifacts to arpow tarball

[x] Re-enable packaging of source-built assets.
[x] Upload source-built assets to Azure storage.
[ ] Re-enable using previously source-built NuGet.Packaging in the tarball's arcade.proj

The last step in this issue is waiting for #2279

Logged a separate issue to track the remaining work - Re-enable using previously source-built NuGet.Packaging in the tarball's arcade.proj.


Unable to create CephFS subvolume dynamically (no available topology found)

Describe the bug
After having cephfs setup through the ceph-csi-cephfs helm chart, I'm unable to create a CephFS volume dynamically. Using static allocation works perfectly but dynamic throw the following error: no available topology found.
Environment details

Image/version of Ceph CSI driver : quay.io/cephcsi/cephcsi:v3.11-canary
Helm chart version : 3.11
Kernel version : 6.6.32-talos
Mounter used for mounting PVC: kernel
Kubernetes cluster version : v1.29.5
Ceph cluster version : 17.2.7

Steps to reproduce
Steps to reproduce the behavior:

Deploy ceph-csi-cephfs helm chart using the values provided in additional context
Deployment a StatefulSet using the volumeClaimTemplate provided in additional context
See error

Actual results
The PersistentVolumeClaim is stucked in Pending. The provisioner is raising issue about topology while domainlabels and enable-read-affinity are not set.
Expected behavior
It is expected to have a PersistentVolumeClaim in Bound status.
Logs
The issue is about PVC creation, deletion, cloning please attach complete logs of below containers.
Please find attached csi-provisioner log.
Provisioner keeps throwing the following issues.
I0616 07:39:33.698890       1 event.go:389] "Event occurred" object="syncthing/storage-syncthing-0" fieldPath="" kind="PersistentVolumeClaim" apiVersion="v1" type="Normal" reason="Provisioning" message="External provisioner is provisioning volume for claim \"syncthing/storage-syncthing-0\""
E0616 07:39:33.698959       1 controller.go:974] error syncing claim "b4ddac14-2411-4665-83b4-d93c182e80aa": failed to provision volume with StorageClass "cephfs": error generating accessibility requirements: no available topology found
I0616 07:39:33.699039       1 event.go:389] "Event occurred" object="syncthing/storage-syncthing-0" fieldPath="" kind="PersistentVolumeClaim" apiVersion="v1" type="Warning" reason="ProvisioningFailed" message="failed to provision volume with StorageClass \"cephfs\": error generating accessibility requirements: no available topology found"
W0616 07:44:33.699578       1 topology.go:319] No topology keys found on any node

Additional context

Helm chart value file
---
rbac:
  create: true

serviceAccounts:
  nodeplugin:
    create: true
    name:
  provisioner:
    create: true
    name:

csiConfig:
  - clusterID: "XXX"
    monitors:
      - "XXX"

commonLabels: {}
logLevel: 5
sidecarLogLevel: 1

CSIDriver:
  fsGroupPolicy: "File"
  seLinuxMount: false

nodeplugin:
  name: nodeplugin
  updateStrategy: RollingUpdate
  priorityClassName: system-node-critical
  httpMetrics:
    enabled: true
    containerPort: 8081
    service:
      enabled: true
      servicePort: 8080
      type: ClusterIP
      annotations: {}
      clusterIP: ""
      externalIPs: []
      loadBalancerIP: ""
      loadBalancerSourceRanges: []

  imagePullSecrets: []

  profiling:
    enabled: false

  registrar:
    image:
      repository: registry.k8s.io/sig-storage/csi-node-driver-registrar
      tag: v2.10.1
      pullPolicy: IfNotPresent
    resources: {}

  plugin:
    image:
      repository: quay.io/cephcsi/cephcsi
      tag: v3.11-canary
      pullPolicy: IfNotPresent
    resources: {}

  nodeSelector: {}

  tolerations: []

  affinity: {}

  kernelmountoptions: ""
  fusemountoptions: ""

provisioner:
  name: provisioner
  replicaCount: 2
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 50%
  timeout: 60s

  priorityClassName: system-cluster-critical

  enableHostNetwork: false

  httpMetrics:
    enabled: true
    containerPort: 8081

    service:
      enabled: true
      servicePort: 8080
      type: ClusterIP

      annotations: {}

      clusterIP: ""

      externalIPs: []

      loadBalancerIP: ""
      loadBalancerSourceRanges: []

  imagePullSecrets: []

  profiling:
    enabled: false

  provisioner:
    image:
      repository: registry.k8s.io/sig-storage/csi-provisioner
      tag: v5.0.1
      pullPolicy: IfNotPresent
    resources: {}
    extraArgs: []

  setmetadata: true

  resizer:
    name: resizer
    enabled: true
    image:
      repository: registry.k8s.io/sig-storage/csi-resizer
      tag: v1.11.1
      pullPolicy: IfNotPresent
    resources: {}
    extraArgs: []

  snapshotter:
    image:
      repository: registry.k8s.io/sig-storage/csi-snapshotter
      tag: v8.0.1
      pullPolicy: IfNotPresent
    resources: {}
    extraArgs: []

    args:
      enableVolumeGroupSnapshots: false

  nodeSelector: {}

  tolerations: []

  affinity: {}

selinuxMount: false

storageClass:
  create: true
  name: cephfs
  annotations: {}

  clusterID: "XXX"
  fsName: cephfs
  pool: ""
  fuseMountOptions: ""
  kernelMountOptions: ""
  mounter: ""
  volumeNamePrefix: ""
  provisionerSecret: csi-cephfs-secret
  provisionerSecretNamespace: ""
  controllerExpandSecret: csi-cephfs-secret
  controllerExpandSecretNamespace: ""
  nodeStageSecret: csi-cephfs-secret
  nodeStageSecretNamespace: ""
  reclaimPolicy: Delete
  allowVolumeExpansion: true
  mountOptions: []

secret:
  create: false
  name: csi-cephfs-secret
  annotations: {}

cephconf: |
  [global]
    auth_cluster_required = cephx
    auth_service_required = cephx
    auth_client_required = cephx

    fuse_big_writes = true

extraDeploy: []

provisionerSocketFile: csi-provisioner.sock
pluginSocketFile: csi.sock
kubeletDir: /var/lib/kubelet
driverName: cephfs.csi.ceph.com
configMapName: ceph-csi-config
externallyManagedConfigmap: false
cephConfConfigMapName: ceph-config

volumeClaimTemplate
    - metadata:
      name: storage
    spec:
      accessModes:
        - ReadWriteOnce
      volumeMode: Filesystem
      resources:
        requests:
          storage: 500Gi
      storageClassName: cephfs

Hi @iPraveenParihar !
Indeed, I totally missed this breaking change in the changelog.
Adding the feature flag option to disable topology indeed resolved the issue.
Thank you


[CWS] Use the wrapped program exit code to exit the ptracer

What does this PR do?
Now when a wrapped program exit with an exit code, the wrapper use it to exit too
Motivation
A customer noticed its wrapped container always exited with 0 even if the container cmd failed. This will allow to let the user retrieve the correct exit code of its workload
Describe how to test/QA your changes
sudo ./bin/cws-instrumentation/cws-instrumentation trace --probe-addr="" --verbose --debug -- cat /tmp/foo ; echo $?
should print 0 if /tmp/foo exists
Possible Drawbacks / Trade-offs
Additional Notes

/merge


Option to use Encodec instead of SoundStream

This tweet suggests that it might be possible to replace SoundStream with the openly available EnCodec:
https://twitter.com/keunwoochoi/status/1620101029399515138
I'm not sure how plausible this is, but EnCodec is even mentioned in the MusicLM paper, and it would save a lot of training effort to be able to use it!

@Lunariz hey Lukas
i learned that EnCodec has a very restrictive license, non-commercial use
it is probably better to just have the community train a bunch of soundstreams for different domains and share them

Fair enough, thanks!


Improve instructions on Python installation

Additional notes:
pip isn't always installed by default. For example, after apt-get install python3.6, I still had to run apt-get install python3-pip on Ubuntu.
Also, our instructions assume you've installed virtualenv. I don't think that's ever installed by default. You will need to run pip3 install virtualenv (we should list in instructions).
Originally posted by @joeduffy in https://github.com/pulumi/docs/issues/1178#issuecomment-502397282

pip3 install virtualenv
virtualenv -p python3 venv

Please do not do this. Correct way to create virtualenv in python3 is:
python3 -m venv venv
(last argument is directory name to be created)

No longer relevant


possible to detect raw geo coordinates

Is it possible to detect raw geocoordinate like https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#Change_of_units_and_format
So these matched directly to lat & long values?

You mean to recognize something like hour/minute/second coordinates in text, and then convert them to decimal coordinates? I think that would be a doable task as long as you were willing to annotate some data and train an NER model and it would be especially doable if you think regex could capture it. It seems a little outside of the core functionality of the  library but I'd be willing to add it in if someone opened a PR for it.

You mean to recognize something like hour/minute/second coordinates in text, and then convert them to decimal coordinates? I think that would be a doable task as long as you were willing to annotate some data and train an NER model and it would be especially doable if you think regex could capture it. It seems a little outside of the core functionality of the  library but I'd be willing to add it in if someone opened a PR for it.

Regex might be possible but in this case a small grammar e.g. with AntLR of different formats can solve it very easy


distributedgen create-cert fails if --out-dir doesn't exist

$ rm -rf /var/lib/fedimint
$ distributedgen create-cert --out-dir /var/lib/fedimint/ --base-port 5000 --name alpha --password password  --announce-address <address>

thread 'main' panicked at 'write error: Os { code: 2, kind: NotFound, message: "No such file or directory" }', fedimintd/src/bin/distributedgen.rs:146:72
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

In this case I would expect it to create /var/lib/fedimint if it doesn't already exist

Would need to check permissions etc ... questinos from dev call about whether this is what we want.

Possibly we just want a better error message.

Possibly we just want a better error message.

Yea that would help a lot. It should tell me what folder is missing.


Padding causes x-axis max to render incorrectly on line chart

On this chart I'm going to be exporting them. When exporting them I am going to be changing the padding in config.layout.padding since a different padding representation looks better in the form then the display on the web. The issue I came across is if I adjust the padding.right to 10 it stops respecting my 'max' value set in the ticks and does not draw the right border. This appears to be true for any padding less than 20. I have scatter charts with time and linear scales, only the linear scale charts do this (multiple linear scale charts with different data sets).

Notice the extension of the y-axis grid lines past the last tick.
Above 20 it respects the value as expected. Here is an example set to 33. Any value greater than 20 appears to work fine from basic testing.

Current solution is just to increase the padding, but that is a non-optimal solution.

Which version are you using?

Version: 2.4.0

Can you try 2.5.0? we changed some parts of the padding for that version

Closing due to lack of response