Not working with api gpt 3.5?

Hi,
I had to type in my API Key from gpt 3.5 and it seems not to work properly.
Is any chance to change the config?
C:\Users\Alex>rawdog How much space do I have on the c:?
API Key (None) not found.
Enter API Key (e.g. OpenAI): sk******
Give Feedback / Get Help: https://github.com/BerriAI/litellm/issues/new
LiteLLM.Info: If you need to debug this error, use `litellm.set_verbose=True'.
Error:
{'model': 'gpt-4', 'prompt': 'PROMPT: How much space do I have on the c:?', 'response': None, 'cost': None, 'error': "OpenAIException - Error code: 404 - {'error': {'message': 'The model gpt-4 does not exist or you do not have access to it. Learn more: https://help.openai.com/en/articles/7102672-how-can-i-access-gpt-4.', 'type': 'invalid_request_error', 'param': None, 'code': 'model_not_found'}}"}
Error: Execution error: OpenAIException - Error code: 404 - {'error': {'message': 'The model gpt-4 does not exist or you do not have access to it. Learn more: https://help.openai.com/en/articles/7102672-how-can-i-access-gpt-4.', 'type': 'invalid_request_error', 'param': None, 'code': 'model_not_found'}}
Best regards

After reading the source code, there should be a ~/.rawdog/config.yaml that contains your configs, and this file would be loaded and applied while running the rawdog.
You can simply append llm_model: gpt-3.5-turbo to it for enabling GPT 3.5.

You can simply append llm_model: gpt-3.5-turbo to file ~/.rawdog/config.yaml for enabling GPT 3.5.

Hi, thanks, I have just edited my config, now I have this:
llm_api_key: mykey
llm_base_url: https://api.openai.com/v1
llm_custom_provider: openai
llm_model: gpt-3.5-turbo
But I am facing some issues:
What can I do for you? (Ctrl-C to exit)

cd C:

Give Feedback / Get Help: https://github.com/BerriAI/litellm/issues/new
LiteLLM.Info: If you need to debug this error, use `litellm.set_verbose=True'.
Error:
{'model': 'gpt-3.5-turbo', 'prompt': 'PROMPT: cd C:', 'response': None, 'cost': None, 'error': "OpenAIException - Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}"}
Error: Execution error: OpenAIException - Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}
If I access my chatgpt account I can't confirm any restrictions. I can easily chat with my account and it does not provide any information about an exceeded quota.
What is the problem with api?
Thank you
Best regards

I updated the readme.


[Custom Components]  Button Custom Events

Hi team,
I had followed suceffuly the  tutorial https://github.com/formio/angular/wiki/Custom-Components-with-Angular-Elements
and created an Angular custom component for formio. But I came with some adversity.
I'd like to know if it is possible to listen to a formio  button custom event within this Custom Component I've created
For an exaple, if I create this button with this event custom test:

Can I listen this "test" inside  my new component?
I've tried use angular's @Hostlistener, but it didn't work.

any update?

Closing this thread as it is outdated. Please re-open if it is still relevant. Thank you for your contribution!


Externalize Fetching

I'm interested in this project but have a lot invested in RestTemplate and proprietary infra below that.  I would need to be able to provide my own Fetch implementation for this to be usable.

Hello, that would be definitely a nice enhancement


feat: add analytics example

Context and user need:
Documentation example on how to create a simple Analytics using the ComputePlanBuilder class.
See https://www.notion.so/owkin-fdn/Federated-Analytics-in-SubstraFL-5685c4f2549748a89a3ad2e314cde886?pvs=4 for more info, especially the Mean Analytics example.
Functional spec:
Write the example in the SubstraFL "get started" section.
Mirror of the diabetes substra example
closes FL-631

Thanks for the PR, this is great for better understanding SubstraFL. I will come back have another read later on.
Also I think I am not sure if we should keep it in the get started section as it's still quite complex.

I changed the example to the go_further section. Should I remove some of the explanation then ?
On an other subject, do we keep the exact same image as the diabetes example ?

/e2e -h

I changed the example to the go_further section. Should I remove some of the explanation then ?

Maybe a few small things, but most of it is not too cumbersome and I think it's important that tutorials remain relatively self-contained and can be followed in any order.

@RomainGoussault should we keep the same image as the Substra example ?

@RomainGoussault should we keep the same image as the Substra example ?

yes

Thanks for your work 🙏 However, some of the conversations have been marked as resolved although the point didn't seem to be actually resolved.

Wouah thanks a lot for catching this... I must have completely messed up the reset to sign up the automated commit from suggestions... And thanks a lot for your comments !


Frends.FixedWidthFlatFile.ConvertToJSON

Based on https://github.com/CommunityHiQ/Frends.Community.FixedWidthFlatFile, initial Parse task should be done already, so it is the same, but instead of an object - convert to JSON

Task implemented with latest instructions.


set_index on categorical fails with empty partitions

Reproducible example
import numpy as np
import pandas as pd
import dask.dataframe as dd

pdf = pd.DataFrame({
    "cat": pd.Categorical(np.repeat(list("ABC"), 20), ordered=True),
    "value": np.random.rand(60)
})
ddf = dd.from_pandas(pdf, npartitions=3)

# Filter on category A, partitions 2 and 3 will be empty.
ddf = ddf.loc[ddf["cat"] == "A"]

ddf.set_index("cat")

ValueError: zero-size array to reduction operation maximum which has no identity

Sounds similar to https://github.com/dask/dask/issues/2820
For now, the cull_empty_parititions workaround from SO can be used.

Thank you for the excellent reproducible example @OliverHofkens .  I'm able to reproduce.  For other reviewers I've attached the traceback here:

ValueError                                Traceback (most recent call last)
<ipython-input-8-66b65091a9f4> in <module>
----> 1 ddf.set_index("cat")

~/workspace/dask/dask/dataframe/core.py in set_index(***failed resolving arguments***)
   3527                 npartitions=npartitions,
   3528                 divisions=divisions,
-> 3529                 **kwargs
   3530             )
   3531

~/workspace/dask/dask/dataframe/shuffle.py in set_index(df, index, npartitions, shuffle, compute, drop, upsample, divisions, partition_size, **kwargs)
     69         sizes, mins, maxes = base.optimize(sizes, mins, maxes)
     70         divisions, sizes, mins, maxes = base.compute(
---> 71             divisions, sizes, mins, maxes, optimize_graph=False
     72         )
     73         divisions = divisions.tolist()

~/workspace/dask/dask/base.py in compute(*args, **kwargs)
    434     keys = [x.__dask_keys__() for x in collections]
    435     postcomputes = [x.__dask_postcompute__() for x in collections]
--> 436     results = schedule(dsk, keys, **kwargs)
    437     return repack([f(r, *a) for r, (f, a) in zip(results, postcomputes)])
    438

~/workspace/dask/dask/threaded.py in get(dsk, result, cache, num_workers, pool, **kwargs)
     79         get_id=_thread_get_id,
     80         pack_exception=pack_exception,
---> 81         **kwargs
     82     )
     83

~/workspace/dask/dask/local.py in get_async(apply_async, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, **kwargs)
    484                         _execute_task(task, data)  # Re-execute locally
    485                     else:
--> 486                         raise_exception(exc, tb)
    487                 res, worker_id = loads(res_info)
    488                 state["cache"][key] = res

~/workspace/dask/dask/local.py in reraise(exc, tb)
    314     if exc.__traceback__ is not tb:
    315         raise exc.with_traceback(tb)
--> 316     raise exc
    317
    318

~/workspace/dask/dask/local.py in execute_task(key, task_info, dumps, loads, get_id, pack_exception)
    220     try:
    221         task, data = loads(task_info)
--> 222         result = _execute_task(task, data)
    223         id = get_id()
    224         result = dumps((result, id))

~/workspace/dask/dask/core.py in _execute_task(arg, cache, dsk)
    117         func, args = arg[0], arg[1:]
    118         args2 = [_execute_task(a, cache) for a in args]
--> 119         return func(*args2)
    120     elif not ishashable(arg):
    121         return arg

~/workspace/dask/dask/utils.py in __call__(self, obj, *args, **kwargs)
    879
    880     def __call__(self, obj, *args, **kwargs):
--> 881         return getattr(obj, self.method)(*args, **kwargs)
    882
    883     def __reduce__(self):

~/miniconda/envs/dev/lib/python3.7/site-packages/pandas/core/generic.py in stat_func(self, axis, skipna, level, numeric_only, **kwargs)
  11616             return self._agg_by_level(name, axis=axis, level=level, skipna=skipna)
  11617         return self._reduce(
> 11618             f, name, axis=axis, skipna=skipna, numeric_only=numeric_only
  11619         )
  11620

~/miniconda/envs/dev/lib/python3.7/site-packages/pandas/core/series.py in _reduce(self, op, name, axis, skipna, numeric_only, filter_type, **kwds)
   4066             # TODO deprecate numeric_only argument for Categorical and use
   4067             # skipna as well, see GH25303
-> 4068             return delegate._reduce(name, numeric_only=numeric_only, **kwds)
   4069         elif isinstance(delegate, ExtensionArray):
   4070             # dispatch to ExtensionArray interface

~/miniconda/envs/dev/lib/python3.7/site-packages/pandas/core/arrays/categorical.py in _reduce(self, name, axis, **kwargs)
   2259             msg = "Categorical cannot perform the operation {op}"
   2260             raise TypeError(msg.format(op=name))
-> 2261         return func(**kwargs)
   2262
   2263     def min(self, numeric_only=None, **kwargs):

~/miniconda/envs/dev/lib/python3.7/site-packages/pandas/core/arrays/categorical.py in max(self, numeric_only, **kwargs)
   2307             pointer = self._codes[good].max(**kwargs)
   2308         else:
-> 2309             pointer = self._codes.max(**kwargs)
   2310         if pointer == -1:
   2311             return np.nan

~/miniconda/envs/dev/lib/python3.7/site-packages/numpy/core/_methods.py in _amax(a, axis, out, keepdims, initial, where)
     28 def _amax(a, axis=None, out=None, keepdims=False,
     29           initial=_NoValue, where=True):
---> 30     return umr_maximum(a, axis, None, out, keepdims, initial, where)
     31
     32 def _amin(a, axis=None, out=None, keepdims=False,

ValueError: zero-size array to reduction operation maximum which has no identity

@OliverHofkens if you have any interest in investigating this further and seeing if you can find a fixt that would be very welcome.  Otherwise hopefully someone will have time to take a look at this in the next few months.

As your stack trace suggested, this comes from Pandas not implementing min() and max()  on empty frames the same for categoricals vs other types. See the following example:
import pandas as pd

# Empty Dataframe
df = pd.DataFrame({
    "cat": pd.Categorical([], categories=list("ABC"), ordered=True),
    "val": pd.Series([], dtype="int64")
})
df["val"].min()  # -> returns NaN, Dask handles NaN divisions correctly in set_index
df["cat"].min()  # -> same ValueError as above

@OliverHofkens that pandas PR has been merged. Anything left to do here?

Don't think so @TomAugspurger, thanks for the reviews and for getting it merged!


DataGridComboBoxColumn looks wrong in dark mode

Describe the bug
DataGridComboBoxColumn appears with white background in dark mode. Since the foreground color is white, the texts cannot be read. The problem doesn't occur in light mode.
To Reproduce
Add a DataGridComboBoxColumn in a ui:DataGrid and view the application in light mode.
Expected behavior
The background of the ComboBox displayed with DataGridComboBoxColumn should appear with a dark background color in dark mode.
Screenshots

OS version
Windows 11 Pro 22H2 22621.3085
.NET version
.NET 8.0
WPF-UI NuGet version
3.0.0
Additional context
No response

I don't find any DataGridComboBoxColumn control.

I fixed the issue in my own project as shown below. However, when I don’t provide EditingElementStyle, ComboBox items appear with both white foreground color and background color in dark mode.
<ui:DataGrid>
    <DataGrid.Columns>
        <DataGridComboBoxColumn Header="Gender">
            <DataGridComboBoxColumn.EditingElementStyle>
                <Style TargetType="ComboBox" BasedOn="{StaticResource DefaultComboBoxStyle}">
                    <Setter Property="IsDropDownOpen" Value="True" />
                </Style>
            </DataGridComboBoxColumn.EditingElementStyle>
        </DataGridComboBoxColumn>
    </DataGrid.Columns>
</ui:DataGrid>

May I ask if you've solved it? How was it resolved?

May I ask if you've solved it? How was it resolved?

If you provide an EditingElementStyle to the DataGridComboBoxColumn, you can solve the issue.


Please consider changing configuration merging semantics

I am trying to integrate with Ruff by having a default config that extends the user's config:
extend = "/path/to/user_repo/ruff.toml"

[lint]
select = [
    # snip
]

[lint.per-file-ignores]
"**/tests/**/*" = [
    # snip
]
# snip

I want to provide the base selection and per-file ignored rules which the user can then modify by ignoring with ignore, selecting more rules with extend-select, and adding additional per-file ignored rules with extend-per-file-ignores.
Currently, the ignore that they define in their file has absolutely no effect. I think this is extremely unexpected and I would argue wrong behavior. It would make more sense from a UX perspective to treat merging as simply a data structure-level operation that only acts upon keys, nothing else, no other logic.
I don't know how I would integrate with this limitation.

Hi. Would you mind expanding your example a bit more to elucidate your point? I'm having a hard time following your problem.

I'm using ruff check --config my_ruff.toml ... which extends the user's file. If I select a rule the user cannot ignore it, which is unexpected as I would assume exclusions take priority but what's actually happening is there is some extra logic that is preventing this based on the source.

Configuration extension is not merely a merge of the select lists, and that's an intentional behavior. (IIRC, this was changed long ago in https://github.com/astral-sh/ruff/pull/2312.)
Instead, the semantics are such that we treat each configuration source as a layer (starting with the root configuration file, then the file that extends it, and so on, and finally, the settings passed in on the CLI). To resolve the set of enabled rules, we resolve the select and ignore for that first layer; then we resolve the select and ignore for the second layer, and apply those changes to the set of selected rules; and so on.
As a concrete example, if your configuration file contains select = ["E", "F"] and ignore = ["E501"], and then the user passes --select E501 on the command-line, we'd register two sets of selectors: the select and ignore in the configuration file, and then the --select from the command line. To resolve the enabled rules, we'd resolve that first set, which would give us everything from E and F except E501. We'd then resolve the second set, which would enable E501, giving us all of E and F as the final set.
If you "just" merge the keys, you introduce some confusing problems. For example, if the configuration file that you extend has ignore = ["E501"] in it, then it becomes impossible to enable E501. You can't enable it from the file with the extends in it, you can't enable it from the command-line, and so on -- since, in the end, all Ruff would see is a list that includes E501 in its ignore, which will always beat out any method selecting E501. (And, in fact, we received issues in the past about those confusing problems, which led to this change, but I can't recall receiving any issues about the current behavior before.)
The problem here IMO is that in the issue as written, extends is being viewed as an unordered operation. Above, you want the configuration file with the extends in it to be the default, but those aren't the semantics of extends. Instead, I think you should be extending the default configuration file, rather than the other way around: you want your file to be defaults, with user configuration layered on top.

I'm okay with closing this in favor of https://github.com/astral-sh/ruff/issues/8737

I'm sorry but I have to reopen this because I would like to get others' feedback. I ran into another case of really unexpected behavior as follows.
User config:
extend = "C:\\Users\\ofek\\AppData\\Local\\hatch\\env\\.internal\\fmt\\eof-W-rA\\ruff_defaults.toml"

[lint]
preview = true

[format]
preview = true

My config:
[lint]
select = [
  ...
]

Running Ruff without arguments does not enable preview mode even though that is enabled in the target config.
I here you when you say that this was partially a deliberate choice but please understand that I simply cannot comprehend how config is merged and I'm not exactly a new engineer.

I just tested this locally and it does work for me.
I have base.toml:
[lint]
select = ["PIE"]

And then ruff.toml:

I just tested this locally and it does work for me.
I have base.toml:
[lint]
select = ["PIE"]

And then ruff.toml:
extend = "base.toml"

[lint]
preview = true

[format]
preview = true

Given foo.py:
def func():
    x = 1
    pass

def func():
    x = 1
    ...

Running:
❯ ruff check foo.py -n
foo.py:6:5: PIE790 [*] Unnecessary `pass` statement
foo.py:11:5: PIE790 [*] Unnecessary `...` literal

The latter violation is preview-only. And if I remove preview = true from ruff.toml, I get:
❯ ruff check foo.py -n
foo.py:6:5: PIE790 [*] Unnecessary `pass` statement
Found 1 error.
[*] 1 fixable with the `--fix` option.

I then did the same thing with select = ["PL"], and:
def func():
    import os

Which triggers PLC0415, also a preview rule. In that case, I get:
❯ ruff check foo.py -n
foo.py:2:5: PLC0415 `import` should be at the top-level of a file
Found 1 error.

And again, if I remove preview = true from ruff.toml, the violation goes away.
Can you provide more information on how you've determined that "Running Ruff without arguments does not enable preview mode even though that is enabled in the target config"?

This was user error from passing the wrong config file path on the command line, sorry for the noise!


Authservice pods are using high memory resources even when utilizing Redis caching

In one of our more trafficked environments, we're noticing our authservice pods using all 4Gi of memory we're assigning to in our K8s resource limits, which is causing the pods to restart.
We're implementing HA and utilizing Redis for caching, so I wouldn't think the authservice pods themselves should be utilizing that high of memory. Perhaps it is a leak?

I indeed have reproduced the issue, https://github.com/incfly/authservice/tree/oom/test/perf contains some instructions of how to set this up. Once we obtained a session cookie for repeatable requests, i noticed the authservice itself memory does not shrink even after requests going down.

@Shikugawa BTW, I also spent a bit time to obtain the memprofile for the authservice when under load test. This is a memory allocation for 15s execution profile.
profile001.pdf
It has some setup steps needed to obtain the pprof memory profile rendering.  https://gperftools.github.io/gperftools/heapprofile.html We will need to add LD_PRELOAD env var to point to the authservice docker image's lib.so. And then have the process dump into some folder /tmp/xxx. And copy the profiler dump to local machine and render into pdf via pprof.
I don't have exact steps/manifest to get that for now. But let me know if you need to get this setup for investigation.
Thanks!

resolved by #167


Question - File on web hosting site

Silly question time again.
As I seem to have a couple of versions of all-sky on my website hosting server.
From the new website master which through to the complete pi installation
I assume it should just  be the files and directory under the new website master
but the config file says it should be reading the current file from /current/tmp/image.jpg but I cant see that directory on the web host
Also what should I delete
Thanks
Ian

@Skippyinspace Ian,
Change the imageName variable to image.jpg since the image is in the same directory as the rest of the files.  /current/tmp/image.jpg is used on the Pi.
Do you WANT a couple versions of Allsky on your website?  Normally a new version would replace a prior one so I am curious how you got multiple copies?
What you want are all the files and directories under allsky.  If you upload a screenshot showing what you have I can suggest something.
How did you get the files from GitHub?

Thanks for the response.
I think what has happened over time my it skills wearnt great so uploaded
everything!
Though annoyingly the Jan upload I deleted the original website files.
I downloaded from git hub unzipped and uploaded via filezilla
To be honest I just want the files that will get the website to work
Being a bit thick at the moment as back from the dentist and cant feel my
face but where should I be changing the imagename to image.jpg
This is what was uploaded yesterday which is the website directory and
files, I moved previous keograms, startrails, videos into the
relevant directories
[image: image.png]
Below is what was uploaded recently and is the pi files and modified
directory
[image: image.png]
Below this is the directories from Jan
[image: image.png]
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
Virus-free.
www.avg.com
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
On Mon, Feb 14, 2022 at 12:55 AM EricClaeys @.***>
wrote:

@Skippyinspace https://github.com/Skippyinspace Ian,
Change the imageName variable to image.jpg since the image is in the same
directory as the rest of the files. /current/tmp/image.jpg is used on the
Pi.
Do you WANT a couple versions of Allsky on your website? Normally a new
version would replace a prior one so I am curious how you got multiple
copies?
What you want are all the files and directories under allsky. If you
upload a screenshot showing what you have I can suggest something.
How did you get the files from GitHub?
—
Reply to this email directly, view it on GitHub
https://github.com/thomasjacquin/allsky/issues/1022#issuecomment-1038507852,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOAZSOCQIHB32VYPK3YYDWLU3BHHHANCNFSM5OJLL4IQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

@Skippyinspace Unfortunately GitHub doesn't handle ail attachments so I cant see your images.  You will need to login and drag/drop the files in your response.
You want to edit the config.js file in the allsky directory. It also contains the latituse and longitude and other settings.
There is a Wiki page that describes the website settings; I suggest taking a look at it.
You need all the files from GitHub.  They go in an allsky directory on the server that you create.  There will be a few subdirectories including videos, keograms, and startrails.  For the config/ftp-settings.sh file on your Pi, set the IMAGE_DIR to the full name of the allsky directory on the server.  The name depends on your server.  When you FTP to it with something like FileZilla, if you have to go down a couple directions to get to allsky then IMAGE_DIR would contain those directories. In my case, when I FTP the files are at the root so I use "".

Yep Ive read the wiki and printed pretty much all the stuff for settings
have been printed.
as for the config.JS file I've changed it soo many times and nothing has
happened on the index page so have just gone into the Index page and
edited that.
So now its a case of uploading the current image to the web.
I use Ionos and got this from their website
[image: image.png]
What should I be using for the FTP settings file info below, to ensure that
the files are uploaded correctly to get the website working as it should
The remote directory where the current "image.jpg" file be copied to.
IMAGE_DIR="/kunden/homepages/44/d769271275/htdocs/allsky"
The remote directory where the timelapse video should be uploaded to.
Some people prefer to put timelapse, keogram, and startrails in separate
directories.
If you have the "allsky-website" package installed, use
VIDEOS_DIR="/var/www/html/allsky/videos".
VIDEOS_DIR="/kunden/homepages/44/d769271275/htdocs/allsky/videos"
VIDEOS_DESTINATION_NAME=""
WEB_VIDEOS_DIR=""
The remote directory where the keogram image should be copied to.
If you have the "allsky-website" package installed, use
KEOGRAM_DIR="/var/www/html/allsky/keograms".
KEOGRAM_DIR="/kunden/homepages/44/d769271275/htdocs/allsky/keograms"
KEOGRAM_DESTINATION_NAME=""
WEB_KEOGRAM_DIR=""
The remote directory where the startrails image should be copied to.
If you have the "allsky-website" package installed, use
STARTRAILS_DIR="/var/www/html/allsky/startrails".
STARTRAILS_DIR="/kunden/homepages/44/d769271275/htdocs/allsky/startrails"
STARTRAILS_DESTINATION_NAME=""
WEB_STARTRAILS_DIR=""
Thanks again
Ian
On Tue, Feb 15, 2022 at 4:50 AM EricClaeys @.***> wrote:

@Skippyinspace https://github.com/Skippyinspace Unfortunately GitHub
doesn't handle ail attachments so I cant see your images. You will need to
login and drag/drop the files in your response.
You want to edit the config.js file in the allsky directory. It also
contains the latituse and longitude and other settings.
There is a Wiki page that describes the website settings; I suggest taking
a look at it.
You need all the files from GitHub. They go in an allsky directory on the
server that you create. There will be a few subdirectories including
videos, keograms, and startrails. For the config/ftp-settings.sh file on
your Pi, set the IMAGE_DIR to the full name of the allsky directory on the
server. The name depends on your server. When you FTP to it with something
like FileZilla, if you have to go down a couple directions to get to
allsky then IMAGE_DIR would contain those directories. In my case, when I
FTP the files are at the root so I use "".
—
Reply to this email directly, view it on GitHub
https://github.com/thomasjacquin/allsky/issues/1022#issuecomment-1039855519,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOAZSOCB4ZBQDALYCCYVXN3U3HLRBANCNFSM5OJLL4IQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

@Skippyinspace attachments don't work when replying via email.  You need to login to GitHub and attach the file to your reply.
On my IONOS server I set `IMAGE_DIR="/allsky" and something similar for the others.
You shouldn't need to edit the index.html page.  If changes to allsky/config.js aren't appearing on the web page that means your browser needs to clear its cache.  Refresh the page by doing a shift-F5.

was just having a look at the upload log file on the pi and have got this
put: /home/pi/allsky/tmp/image-20220217223506.jpg: Fatal error: Host key verification failed.
put of /home/pi/allsky/tmp/image-20220217223506.jpg failed!
Fixing this I think will fix my problem but the new question is how

@Skippyinspace. Hint:  the Wiki is your friend.

Well the wiki might be my friend but Ionos doest seem to be as it doesn't
seem to want to give me the correct information for the SSH, does the fact
that Im vnc into the pi cause an issue.
anyway since its nearly 1am here I will contact Ionos support and see
what they say.
Ian
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
Virus-free.
www.avg.com
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
On Thu, Feb 17, 2022 at 11:40 PM EricClaeys @.***>
wrote:

@Skippyinspace https://github.com/Skippyinspace. Hint: the Wiki is your
friend.
—
Reply to this email directly, view it on GitHub
https://github.com/thomasjacquin/allsky/issues/1022#issuecomment-1043629778,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOAZSOAIWKFQ7GCOZYIHTNDU3WBO7ANCNFSM5OJLL4IQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

@Skippyinspace I just installed the Allsky website on my IONOS server, and it worked with no problem.  However, I don't remember how I handled the ssh step.  But there's hope since it works for me.

Thanks, I missed a digit of the webhost, so think that part id now sorted,
just need to check if  images are uploading when I get home tonight
Ian
On Fri, Feb 18, 2022 at 11:39 AM EricClaeys @.***>
wrote:

@Skippyinspace https://github.com/Skippyinspace I VNC into my Pi as
well, and I don't think it should make any difference.
—
Reply to this email directly, view it on GitHub
https://github.com/thomasjacquin/allsky/issues/1022#issuecomment-1044382171,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOAZSOGHDDPLLLQCSGEK5VTU3YVVHANCNFSM5OJLL4IQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

Will close this off, as it looks like the config.js file changes were not being pushed through to the web host. Looks like Ive got that fixed now, along with finding the image file and where it was on the webhost and have mapped that now.
Thanks for the help

I edited the file directly on the web host using FileZilla / notepad, which
downloads the file to your PC to modify, the save then should upload the
modified file with your changes but the modified files isn't uploaded, So I
found that I had to manually upload the file through FileZilla.(Checking
the timestamp of the file)
Thats what I believed happened or it could just be a coincidence.
On Fri, Feb 18, 2022 at 11:49 PM EricClaeys @.***>
wrote:

@Skippyinspace https://github.com/Skippyinspace. What did you do to get
the config.js changes working? Other people have had the same problem and
I'd like to know how to fix it.
—
Reply to this email directly, view it on GitHub
https://github.com/thomasjacquin/allsky/issues/1022#issuecomment-1045370284,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOAZSOBSGMCFOC4S3EWAMN3U33LH7ANCNFSM5OJLL4IQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

@Skippyinspace    When I right-click and edit a file using Filezilla, it downloads a copy to my PC, opens my editor, then when I save the file a few seconds later Filezilla pops up a dialog box asking if I want to update the remote file.  It works great.  Strange that yours wasn't working, but good that you found the problem.


Unable to style  default SubtitleView of the Media3 ExoPlayer

I am trying to style captions that come into my DASH segment as .vtt files. Scouted the internet for how to do that, and found a suggestion from the docs here
Moving further with the suggestion of styling Cue objects, I couldn't get it to work.
Here's a sample code for reference
The params zoomInFactor, subtitleTopSpacing , subtitleFontSize are all part of business logic, and can vary.Also the flag isVideoZoomed, is also business logic, and the spacing can vary
Here, I am concerned about the fact, that these styled Cues are not being applied to the subtitleView using subtitleView?.setCues(cues)
What can be going wrong?
I have also opened a StackOverflow Question here
fun setCues(
        cues: ImmutableList<Cue>,
        zoomInFactor: Float,
        subtitleTopSpacing: Float,
        subtitleFontSize: Float,
){

 if (cues.isEmpty()) return
        // First clear the existing cues
        subtitleView?.setCues(null)
        try {
            // Modify the existing cues as per the available parameters
            val modifiedCues = cues.map { cue ->
                val cueBuilder = cue.buildUpon()
                if (isVideoZoomed) {
                    cueBuilder.setLine(
                        (subtitleTopSpacing + ((zoomInFactor - 1) * 0.5F)) / zoomInFactor,
                        Cue.LINE_TYPE_FRACTION,
                    )
                    cueBuilder.setTextSize(
                        subtitleFontSize / zoomInFactor,
                        Cue.TEXT_SIZE_TYPE_FRACTIONAL,
                    )
                } else {
                    cueBuilder.setLine(subtitleTopSpacing, Cue.LINE_TYPE_FRACTION)
                    cueBuilder.setTextSize(
                        subtitleFontSize, Cue.TEXT_SIZE_TYPE_FRACTIONAL,
                    )
                }
                cueBuilder.lineAnchor = Cue.ANCHOR_TYPE_END
                cueBuilder.build()
            }
            subtitleView?.setCues(modifiedCues)
        } catch (ex: Exception) {
            ex.printStackTrace()
        }
}

The provided code looks like it should roughly work (though I don't think you want to immediately return if the list is empty, because doesn't that mean you never clear subtitles from the screen?).

I couldn't get it to work.

What do you observe happening that constitutes "not working"?
How are you wiring this setCues method into the rest of your app's UI components? Where do you get an instance of SubtitleView from? Is SubtitleView.setCues also being called with the unstyled cues from elsewhere, or have you prevented that from happening?

though I don't think you want to immediately return if the list is empty, because doesn't that mean you never clear subtitles from the screen?
I can remove the empty check. I did it before hand to just prevent the nullability and empty check

When I say, I couldn't get it to work, I meant that, the styling doesn't reflect, as I want it to
As a workaround, what I did is, get access to the SubtitleView and style the main FrameLayout that it has, and not the cues inside. I know this is a hack, but this works, and styling the cues doesn't

Is SubtitleView.setCues also being called with the unstyled cues from elsewhere

I tried to print the Cue object and it contains the new styles
Interesting, I will try to take a look, if it's called from somewhere else and being reset for some reason

@icbaker I checked my code, the setCues function is called from the onCues function in the ExoPlayerListener interface

Closing because these questions were not clearly answered, so it's not possible to offer further assistance:

How are you wiring this setCues method into the rest of your app's UI components? Where do you get an instance of SubtitleView from?


Updated cli-doc for Travis build: 0.4.71137

This releases updates are contained in this file.

@tnixa I think there may be some formatting issues here to fix.

Updated  standard ->  structure for appsody stack lint command


Adding ashm variants and slsm-3 variants for published samples

This PR resolves issues:

#52
#51
The corresponding functions were also adjusted to support same argument as the parent version in GAMBLR.results and return the correct variants.

Is it right that all pipelines are SLMS-3?
> table(sample_data$grch37$ashm$Pipeline)

SLMS-3
 51191

Is it right that all pipelines are SLMS-3?
> table(sample_data$grch37$ashm$Pipeline)

SLMS-3
 51191

Yes

Why are there so many duplicated rows?
my_reg <- gene_to_region("MYC")
myc_mut <- get_ssm_by_regions(regions_list = my_reg)
dim(myc_mut)
# [1] 9275    3
dim( unique(myc_mut) )
# [1] 3835    3

myc_mut_noStream <- get_ssm_by_regions(regions_list = my_reg, streamlined = FALSE)
dim(myc_mut_noStream)
# [1] 9275   46
dim( unique(myc_mut_noStream) )
# [1] 5536   46

Why are there so many duplicated rows?
my_reg <- gene_to_region("MYC")
myc_mut <- get_ssm_by_regions(regions_list = my_reg)
dim(myc_mut)
# [1] 9275    3
dim( unique(myc_mut) )
# [1] 3835    3

myc_mut_noStream <- get_ssm_by_regions(regions_list = my_reg, streamlined = FALSE)
dim(myc_mut_noStream)
# [1] 9275   46
dim( unique(myc_mut_noStream) )
# [1] 5536   46

Thanks for picking this up, this is now handled


Sponsored Mortgage Calculator Block

On each Property Detail page, there is a block that consists of a mortgage lender sponsor and a calculator.
The calculator is in an accordion and contains a dynamic chart that is controlled by the form inputs.
The default value of the Purchase Price form input is the listing price of the property being viewed.
Mobile

Tablet

Desktop

The mortgage calculator and the sponsor image are two separate blocks.


[Question] How to use triggerAction with regex?

Bot Info

SDK Platform: Node.js
Active Channels: Emulator
Deployment Environment: Emulator

Issue Description
TriggerAction uses whatever the user types and stops using what the recognizer tells is recognized if matched is a regex.
Code Example
I have a library with a triggerAction attached to it.
lib.dialog('/', function(session) {
    <code>
}).triggerAction({matches: RegEx})

In my case I have that dialog handle listings of things, so my regex was /^Get.*List$/. Should trigger on every recognized intent which starts with Get and ends with List. The recognizer find it but doesn't route to the dialog.
If I switch out the RegEx to a single string (for instance "GetUserList") it works, and the user list dialog starts. But, I have several more lists all which are on the format of Get<topic>List which is why that RegEx was so neat.
My recognizer is my own creation and classifies whatever the user types into things my triggerAction can handle. "get user" gets recognized as "GetUserList", "get group" gets recognized as "GetGroupList" etc.
However, if the user types "Get 'random string' List", the triggerAction wakes up. So I think if you use a triggerAction with "matches: RegEx" it starts listening to the message rather than the recognizers.
Expected Behavior
Is this the intended behavior of the framework? If that is the case, is there a way around it, so I don't need to type out the name of every single type of list the matches bracket.

@FlamingDrake What are you trying to accomplish here exactly? Can you provide more context?

My recognizer generates multiple intents where all have names like GetUserList, GetGroupList etc. Always starts with Get, a topic in the middle and ends with List.
I have a single dialog that can handle all lists, but I don't know how to make it trigger on a multiple intents without having to make an array and fill it with all different lists.
Or in other words, I would like the RegEx /^Get.*List$/ to listen on intents rather than the message.


open_instruct used in evaluation/eval/utils.py is out-of-date

The latest version of open_instruct does not contain function encode_with_prompt_completion_format, which is used in utils.py.
I found the code in:
https://github.com/allenai/open-instruct/blob/58f92c8739d4c4219f8b192e04e595b9d97cd90c/open_instruct/finetune.py
might be the right version used in LESS, not quite sure

If you go to less/data_selection/get_training_dataset.py, in line 98, you will find the reference of this functionto open_instruct.
    '''
    Original implementation of the function: https://github.com/allenai/open-instruct/blob/9ebcb582cfc243a6dab75b4302fa432784db26c2/open_instruct/finetune.py#L238

    Here we assume each example has 'prompt' and 'completion' fields.
    We concatenate prompt and completion and tokenize them together because otherwise prompt will be padded/trancated
    and it doesn't make sense to follow directly with the completion.
    '''

Thanks, I will close the issue


When returning an empty JSON, '{}' turns into a Chinese character

When receiving an empty response from a server the string '{}' is somewhere translated to Unicode so:
"{" = U+007B
"}" = U+007D
Those are somewhere concatenated to return:
"筽" = U+7B7D
To reproduce just send a query that returns an empty response from a TAXII server, curl and postman returns '{}' but taxii-client returns: '筽'.
For example:
2022-08-15T11:21:48.17891632Z info: (TAXII 2 Feed test_instance_1_TAXII 2 Feed test_taxii2-get-indicators) python logging: DEBUG [urllib3.connectionpool] - [https://ais2.cisa.dhs.gov:443](https://ais2.cisa.dhs.gov/) "GET /public/collections/---/objects/?limit=25&match%5Btype%5D=campaign HTTP/1.1" 200 2 2022-08-15T11:21:48.180585842Z debug: (TAXII 2 Feed test_instance_1_TAXII 2 Feed test_taxii2-get-indicators) GOT RESPONSE resp.content=b'{}' resp.text='筽' resp.status_code=200 resp.headers={'x-transaction-id': '124a663c-e7c5-48c0-a4ba-6fff95cab122', 'Strict-Transport-Security': 'max-age=31536000 ; includeSubDomains', 'Date': 'Mon, 15 Aug 2022 11:21:47 GMT', 'Keep-Alive': 'timeout=60', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'Cache-Control': 'no-cache, no-store, max-age=0, must-revalidate', 'Pragma': 'no-cache', 'Expires': '0', 'X-Frame-Options': 'DENY', 'Content-Type': 'application/taxii+json;version=2.1', 'Content-Length': '2', 'Connection': 'keep-alive'}

I am not familiar with 'pack', but if the problem seems specific to that tool, perhaps that tool is misunderstanding the textual encoding of the response?  If that were the case though, it seems like it ought to misunderstand the encoding regardless of response content.  It wouldn't be specific to "empty" responses.

@chisholm by pack I meant this package, i.e - taxiiclient.

Thank you for the reply, I'll try to recreate it again and update (I cant use the same server where we first saw it as we don't have creds to use it). Maybe its something with CISA server that causes the weird character.

Hi @chisholm, I am working with @Ni-Knight and wanted to share what we did.

It's not clear where the line you quoted came from (looks like a line of logging?). Can you provide a small code sample to reproduce the error?

When using a code that works the same as the code you added, we are getting an InvalidJSONError.
So in order to see the content of the response, I changed our code to use the following method, instead of get_objects method of the collection. You can see that it works similar to get_objects, using the library's methods.
def v21_get_objects(self, accept="application/taxii+json;version=2.1", **filter_kwargs):
        collection = self.collection_to_fetch
        collection._verify_can_read()
        query_params = _filter_kwargs_to_query_params(filter_kwargs)
        merged_headers = collection._conn._merge_headers({"Accept": accept, "Content-Type": "application/taxii+json"})

        resp = collection._conn.session.get(collection.objects_url, headers=merged_headers, params=query_params)
        print(f'GOT RESPONSE {resp.content=} {resp.text=} {resp.status_code=} {resp.headers=}')
        if len(resp.text) <= len('{}'):  # in case it is not a json that has to have {}
            return {}

        return _to_json(resp)

We tried to reproduce it on another server, but it returns {}\n and not just {}. Maybe this is the case you also checked, and without the \n at the end of the response it will reproduce for you?

We added the encoding, and it also shows None.
2022-12-15T07:39:23.616361458Z info: (DHS Feed v2_instance_1_DHS Feed v2_dhs-get-indicators) python logging: DEBUG [urllib3.connectionpool] - https://ais2.cisa.dhs.gov:443 "GET /public/collections/a6313101-fa6c-4276-bb96-7e826f0b248a/objects/?limit=10&added_after=2022-12-14T07%3A39%3A23.038316Z HTTP/1.1" 200 2
2022-12-15T07:39:23.618157698Z debug: (DHS Feed v2_instance_1_DHS Feed v2_dhs-get-indicators) resp.content=b'{}' resp.text='筽' resp.status_code=200 resp.headers={'x-transaction-id': '05608c51-ddf4-4f9c-851f-38f5d3c9b546', 'Strict-Transport-Security': 'max-age=31536000 ; includeSubDomains', 'Date': 'Thu, 15 Dec 2022 07:39:23 GMT', 'Keep-Alive': 'timeout=60', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'Cache-Control': 'no-cache, no-store, max-age=0, must-revalidate', 'Pragma': 'no-cache', 'Expires': '0', 'X-Frame-Options': 'DENY', 'Content-Type': 'application/taxii+json;version=2.1', 'Content-Length': '2', 'Connection': 'keep-alive'} resp.encoding=None

Weird that in your case it guesses right, and in ours it guesses Chinese.

Checking the requests implementation, looks like if resp.encoding is None, it falls back to resp.apparent_encoding.  I think the latter is what triggers the encoding "guess".  If I add a print out of that, I get:
GOT RESPONSE resp.content=b'{}' resp.text='{}' resp.status_code=200 resp.headers={'Content-Type': 'application/taxii+json;version=2.1', 'Content-Length': '2', 'Server': 'Werkzeug/2.0.2 Python/3.9.13', 'Date': 'Sat, 17 Dec 2022 02:57:08 GMT'} resp.encoding=None resp.apparent_encoding='ascii'

And that shows "ascii" for me.  Maybe that will show a Chinese encoding for you.

When we add printing of resp.apparent_encoding, we get utf_16_be.
Is there something else you can think of?
We encountered the Chinese character returning in another case when using the library.

The bug is in the TAXII server, if it is not setting the response encoding to UTF-8.

Well, utf_16_be might be incorrect.  This has gone beyond being a cti-taxii-client issue.  This library relies on the requests library as mentioned above, to handle the lower-level HTTP request/response details.  If the server does not tell the client what encoding it uses (JasonKeirstead's point above), the client must guess, and it is possible to guess wrong.  If you don't have control over the server, I guess there's not much you can do about that.
Looks like by default, requests uses charset_normalizer to detect encodings.  It calls a detect() method, but that is a legacy wrapper around from_bytes().  The latter has an interesting explain argument, which may or may not be useful.  It is easy to run a test just from the python REPL:
>>> import charset_normalizer
>>> charset_normalizer.from_bytes(b'{}', explain=True)
2023-01-18 03:55:22,198 | WARNING | override steps (5) and chunk_size (512) as content does not fit (2 byte(s) given) parameters.
2023-01-18 03:55:22,202 | WARNING | Trying to detect encoding from a tiny portion of (2) byte(s).
2023-01-18 03:55:22,204 | INFO | ascii passed initial chaos probing. Mean measured chaos is 0.000000 %
2023-01-18 03:55:22,205 | INFO | ascii should target any language(s) of ['Latin Based']
2023-01-18 03:55:22,205 | INFO | ascii is most likely the one. Stopping the process.
<charset_normalizer.models.CharsetMatches object at 0x000001ECF224B4F0>

What an odd bug :) I think we can try and ask them which server did they spin up. However you are right this is definitely not an issue with the client itself, It also seems like chardet does guess the encoding correctly as @chisholm stated (and I've also tested it).


HttpOnly cookies not being persisted on Android

Bug description:
Hello everyone, that's the first issue I'm writing and first of all just want to say thank you for this amazing library.
The issue I've found is that I'm using the webview to open a website and in this website we can sign-in, which is working properly on iOS, but for Android we can see that after a successfully authentication and refresh the page/go to another page, the user doesn't seems to be logged in at all. The only thing I know for now is that the cookie which contains the token to authenticate the user is a HttpOnly one, and researching a lot in the internet seems that could be an issue only for Android. I've already tried to get the token and set the cookie manually, but as it is an HttpOnly, doesn't matter because needs to be persisted in the response from the server right?
I've ran out of ideas and don't know how to proceed.
To Reproduce:
Try to sign in in a web application that authenticates using a HttpOnly cookie through the webview using an Android simulator/device.
Expected behavior:
The user should be logged in successfully.
Environment:

OS: Android
OS version: all
react-native version: 0.70.5
react-native-webview version: 11.23.1

Guys, I've found the issue. For anyone that may also have the same problem, the issue was in the cacheMode property, we were setting as LOAD_CACHE_ELSE_NETWORK, and for some reason (no idea why), it was not persisting the HttpOnly cookie in the webview. We just set the default cache mode (LOAD_DEFAULT) and it's working. It's a temporary solution, but we will keep checking how to make this work with the LOAD_CACHE_ELSE_NETWORK mode.
For now I'm closing this issue.


NIFI-7172: Trim whitespace from NiFi properties

Description of PR
Fixes NIFI-7172. Trims whitespace from NiFi properties. Multi-line properties are truncated at the first line break. The underlying java.util.Properties actually takes care of leading whitespace, but it's included in the test case as well.
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically main)?

[x] Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not squash or use --force when pushing to allow for clean monitoring of changes.

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[x] Have you written or updated unit tests to verify your changes?
[x] Have you verified that the full build is successful on JDK 8?
[ ] Have you verified that the full build is successful on JDK 11?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

Thanks for making the adjustments @eaolson.  Do you have any additional comments @ChrisSamo632?

Thanks for making the adjustments @eaolson. Do you have any additional comments @ChrisSamo632?

@exceptionfactory nothing more from me (I can't see how to resolve conversations, maybe I don't have access, nevermind)

Thanks for making the adjustments @eaolson. Do you have any additional comments @ChrisSamo632?

@exceptionfactory nothing more from me (I can't see how to resolve conversations, maybe I don't have access, nevermind)

Thanks for the confirmation @ChrisSamo632!


Add "--format identifiers" option for tests export

Having tests fmf_id's information easily available would help to use TMT's tool filtering and discoverability features in pipeline with other tools (like wow) if necessary
Proposed syntax:
tmt tests export --format identifiers

Example of identifiers to return:
name: /distribution/ltp/lite
path: /distribution/ltp/lite
url: https://gitlab.someaddress.com/kernel
ref: kernel-sandbox

Just to clarify, the path key is only used when the fmf metadata tree root is not identical with the git repository root. See the fmf id specification for more details. Regarding the format: I think we should always provide it as a list to allow exporting mutltiple tests:
  - url: https://gitlab.someaddress.com/kernel
    ref: kernel-sandbox
    name: /distribution/ltp/lite
  - url: https://gitlab.someaddress.com/kernel
    ref: kernel-sandbox
    name: /distribution/ltp/full

Should yaml be the output format? Or shall we default to json? @lukaszachy, what do you think?

Thinking about it a bit more: Perhaps the command line should look like this?
tmt test export --identifiers

And keep the --format for selecting the actual format:
tmt test export --identifiers --format yaml
tmt test export --identifiers --format json

lgtm, thank you!

Good, then it seems we have an agreement. I'll confirm the syntax on the next hacking session but I don't expect any substantial changes. @juk, are you interested in implementing this new feature?

@lukaszachy, the integration with wow should look like this?
tmt tests export --identifiers | wow --fmf-id=-

Or there should be a new dedicated option for reading fmf identifiers from a file?
wow --fmf-id-file=tests.json
tmt tests export --identifiers | wow --fmf-id-file=-

Good, then it seems we have an agreement. I'll confirm the syntax on the next hacking session but I don't expect any substantial changes. @juk, are you interested in implementing this new feature?
Sure, I can take this one

Great, thank you!

Regarding the format: I think we should always provide it as a list to allow exporting mutltiple tests:
  - url: https://gitlab.someaddress.com/kernel
    ref: kernel-sandbox
    name: /distribution/ltp/lite
  - url: https://gitlab.someaddress.com/kernel
    ref: kernel-sandbox
    name: /distribution/ltp/full

Should yaml be the output format? Or shall we default to json? @lukaszachy, what do you think?

I'd prefer yaml's Multi document
url: https://gitlab.someaddress.com/kernel
ref: kernel-sandbox
name: /distribution/ltp/lite
---
url: https://gitlab.someaddress.com/kernel
ref: kernel-sandbox
name: /distribution/ltp/full

As for the format: yaml. If someone needs different format it can be added with --format option.

@lukaszachy, the integration with wow should look like this?

Currently we have wow --fmf-id YAML_STRING and wow --fmf-id @file both accepting single fmf identifier dictionary (directly or as a file content)
IMHO it makes more sense to extend fmf-id to accept - as STDIN and detect if multiple identifiers are present.

I'd prefer yaml's Multi document

What are the advantages when compared to a list? Just quickly experimented:
>>> tmt.utils.yaml_to_dict(open('/tmp/ha.yaml'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/psss/.local/lib/python3.9/site-packages/tmt/utils.py", line 744, in yaml_to_dict
    return yaml.safe_load(data)
  File "/usr/lib64/python3.9/site-packages/yaml/__init__.py", line 162, in safe_load
    return load(stream, SafeLoader)
  File "/usr/lib64/python3.9/site-packages/yaml/__init__.py", line 114, in load
    return loader.get_single_data()
  File "/usr/lib64/python3.9/site-packages/yaml/constructor.py", line 49, in get_single_data
    node = self.get_single_node()
  File "/usr/lib64/python3.9/site-packages/yaml/composer.py", line 41, in get_single_node
    raise ComposerError("expected a single document in the stream",
yaml.composer.ComposerError: expected a single document in the stream
  in "/tmp/ha.yaml", line 1, column 1
but found another document
  in "/tmp/ha.yaml", line 2, column 1

Is there a special way to parse such yaml files?

yaml.load_all()

I like that  you are making it explicit about accepting multiple objects. Not just by detection if the returned object is list or dict.

So I've started with wow part and both list and multi document are supported:
list (of dicts):
- url: https://gitlab.someaddress.com/kernel
  ref: kernel-sandbox
  name: /distribution/ltp/lite
- url: https://gitlab.someaddress.com/kernel
  ref: kernel-sandbox
  name: /distribution/ltp/full

and multidocument (dicts):
url: https://gitlab.someaddress.com/kernel
ref: kernel-sandbox
name: /distribution/ltp/lite
---
url: https://gitlab.someaddress.com/kernel
ref: kernel-sandbox
name: /distribution/ltp/full

What to use in tmt... I'd still prefer multidocument as it  says from the beginning it can contain multiple values, but if others prefer list I wouldn't block it on that.

So I've started with wow part and both list and multi document are supported:

Nice! Thanks.

I'd still prefer multidocument as it says from the beginning it can contain multiple values

Let's try it this way. And while we are looking into this, @juk could you please also fix plain tmt test export to separate individual tests using the --- delimiter? I guess the implementation will be very close to the export --identifiers feature. Thanks.

This should be very easy to implement, let's try to finish this until the end of July to make it for tmt-1.7.

@psss Plan to work on it week of Jul 19-23

@psss, @lukaszachy would you mind a "---" delimiter after the last multidocument entry?
I can work around it if necessary

@juk Please do not write trailing "---" as it produces None object:
For
---
x: x
---

You end up with [{'x': 'x'}, None]
Ideal would be putting ... at the end to mark end of the document instead

@lukaszachy does the leading one produces the same effect?
Would something like below work?
x: x
y: y

Leading one is required, then --- between objects. Optional ... marks end of document.


fix compilation with -Werror=unused-result

After upgrading to ubuntu artful (17.10) the new gcc seems to have -Werror=unused-result on by default which breaks compilation.
from man 2 getcwd:
On failure, these functions return NULL, and errno is set to indicate the error.  The contents of the array pointed to by buf are undefined on error.
Now, the interesting bit is that if I compare the result with NULL, it actually fails with NULL used in arithmetic [-Werror=pointer-arith] so checking for 0... Not sure if this is pretty enough, but at least gets around the issue and shouldn't do any wrong.

Hi @mzanetti,
Thank you for providing this pull request! We currently haven't tested the SDK in Ubuntu 17.10 hence we weren't able to catch this compile failure.
This pull request has no conflicts so we will include this in a future release.
Please let us know if you have any more questions or suggestions.
Thanks!
Varun

Hi @mzanetti,
I believe the error with using NULL is due to a typo in your pull request.
The brackets are closed incorrectly, hence the compiler thinks that you are checking the size of the buffer with NULL i.e. :
if (getcwd(CurrentWD, sizeof(CurrentWD) == 0))
should actually be
if (getcwd(CurrentWD, sizeof(CurrentWD)) == NULL)
The above line compiles correctly and throws no errors.
Thanks!
Varun

facepalm
Thanks for spotting that :) Updated.

Included in v1.2.0.


Duplicate crons created by django-celery-beat

How do you use Sentry?
Sentry Saas (sentry.io)
Version
1.20.0
Steps to Reproduce

Set up project using celery and django-celery-beat
Initialize sentry SDK using CeleryIntegration(monitor_beat_tasks=True)
Create a periodic task using the admin interface to execute once every 15 minutes
Check cron tab after the periodic task has executed

Expected Result
A single check-in for the task every 15 minutes
Actual Result
One successful cron and missed cron for each task execution.
I have tried editing the time until missed in the cron settings, but it seems to be reset each time it updates.

Hey @joshuata !
Thanks for reporting this. We will have a look!

Disregard the last comment. The problem regressed shortly after I commented that.
At this point my best bets for the bug cause are:

Interaction with django-celery-results causing the registration method to be called multiple times
Interaction with django-celery-beat causing the registration method to be called multiple times
Our CI setup deploys several times a day - the missed checkins may be from a version that are no longer running

This problem seems to have resolved itself with recent updates to the sdk


Blog Post: What is sICX and how does it work?

Cover the following topics:

The number of sICX you hold will not increase, but the number of ICX in the staking pool will increase, that's how staking rewards are recognized
You can trade ICX for sICX for free on the DEX
When you deposit into Balanced collateral, your ICX is converted to sICX automatically
When you withdraw, you will receive sICX
Explain the sICX / ICX pool and how to instantly convert your sICX back to ICX

Draft is here: https://docs.google.com/document/d/1Ccr2ahTPOhjucwzkGd8T4W85hvt-QfEMlFWITVh7VGA/edit#heading=h.88wj2dfo1ijh

Final post: https://balanceddao.medium.com/what-is-sicx-and-how-does-it-work-238e09f59c06


Bug: Can't create new toasts after dismiss

Enviroment
System:
OS: Linux 6.5 Ubuntu 22.04.4 LTS 22.04.4 LTS (Jammy Jellyfish)
CPU: (8) x64 Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz
Memory: 6.59 GB / 15.45 GB
Container: Yes
Shell: 5.8.1 - /usr/bin/zsh
Binaries:
Node: 21.7.1 - /usr/bin/node
Yarn: 1.22.21 - /usr/bin/yarn
npm: 10.4.0 - /usr/local/bin/npm
pnpm: 8.15.4 - /usr/bin/pnpm
bun: 1.0.25 - ~/.bun/bin/bun
Browsers:
Chrome: 122.0.6261.111
Dependencies:
{
  "dependencies": {
    "vue": "^3.4.15",
    "vue-router": "^4.2.5",
    "vue-sonner": "^1.1.2"
  },
  "devDependencies": {
    "@rushstack/eslint-patch": "^1.3.3",
    "@tsconfig/node20": "^20.1.2",
    "@types/node": "^20.11.10",
    "@vitejs/plugin-vue": "^5.0.3",
    "@vue/eslint-config-prettier": "^8.0.0",
    "@vue/eslint-config-typescript": "^12.0.0",
    "@vue/tsconfig": "^0.5.1",
    "eslint": "^8.49.0",
    "eslint-plugin-vue": "^9.17.0",
    "npm-run-all2": "^6.1.1",
    "prettier": "^3.0.3",
    "typescript": "~5.3.0",
    "vite": "^5.0.11",
    "vue-tsc": "^1.8.27"
  }
}

Issue
Cannot create a new toasts after dismissing a toasts.
Expected Behavior:
Calling a new toasts should appear even after dismissing a toasts.  Atleast it works this way in emilkowalski's sonner library.
Example:
<script setup lang="ts">
import { Toaster, toast } from 'vue-sonner'
const handleClick = async () => {
  // Show a toast
  const loadingToast = toast.loading('Loading...')

  // Simulate an API call
  await new Promise((resolve) => setTimeout(resolve, 4000))

  // Dismiss the toasts
  toast.dismiss(loadingToast)

  // Show a success toast
  // ERROR: NOT SHOWING
  toast.success('Success!')
}
</script>

<template>
  <button @click="handleClick">Tes</button>
  <Toaster />
</template>

Demo
vue-sonner-demo.webm
Logs

Same @xiaoluoboding please see this

@dewodt did you find an answer?

@dewodt did you find an answer?

Not yet, I haven't got time to find the bug in the source code.

Same issue


Modern Master 2015 set uses wrong set code

is: MMB
should be MM2
source:

http://mtgsalvation.gamepedia.com/Modern_Masters_2015
http://en.wikipedia.org/wiki/Modern_Masters

Edit: still seems to be unclear:
http://en.wikipedia.org/wiki/List_of_Magic:_The_Gathering_sets
let's wait and see

That source was different when I looked. :+1:


Quantizing Gradients - Meaning of max0() operator in DoReFa v2 paper?

Thank you for your help so far.
(1) In section 2.5 on quantizing gradients you use an operator called max0 but do not define it. I did not find a definition in the XNOR or BNN papers either. What does this operator do? How is it different from the regular max() operator?
(2) Second, you say that dr / 2max0(|dr|) + 1/2 is an affine transform to map the gradient into [0,1], but it seems like in your code you apply an additional step to manually clip the values. Why do you need this additional step?
Code: https://github.com/ppwwyyxx/tensorpack/blob/master/examples/DoReFa-Net/dorefa.py
 def grad_fg(op, x):
            rank = x.get_shape().ndims
            assert rank is not None
            maxx = tf.reduce_max(tf.abs(x), list(range(1,rank)), keep_dims=True)
            x = x / maxx
            n = float(2**bitG-1)
            x = x * 0.5 + 0.5 + tf.random_uniform(
                    tf.shape(x), minval=-0.5/n, maxval=0.5/n)
            x = tf.clip_by_value(x, 0.0, 1.0) # this is the extra step not in the paper
            x = quantize(x, bitG) - 0.5
            return x * maxx * 2

(3) I am also having trouble understanding this line, could you please explain? - maxx = tf.reduce_max(tf.abs(x), list(range(1,rank)), keep_dims=True).
It seems like list(range(1,rank)) is somehow related to your statement that "Here dr = ∂c/∂r is the back-propagated gradient of the output r of some layer, and the maximum is taken over all axis of the gradient tensor dr except for the mini-batch axis (therefore each instance in a mini-batch will have its own scaling factor)", but I do not understand this sentence either. Thank you for your help!

Hi,

the maximum is taken over all axis of the gradient tensor dr except for the mini-batch axis. This is  the definition of max_0, and it is the line:
 maxx = tf.reduce_max(tf.abs(x), list(range(1,rank)), keep_dims=True)
which takes the maximum on all axes except the first (batch) axis.

In the formulation of the paper we need the stochastic noise parameter in the open interval (-0.5/(2^k-1), 0.5/(2^k-1)), but in tensorflow, tf.random_uniform return a random number in the left-close-right-open interval.
When the left endpoint of the interval is reached, we'll need to quantize -0.5/(2^k-1), and this may lead to a negative output, depending on whether round(-0.5) is implemented to be 0 or -1. Although this scenario is unlikely to happen, I clipped the value here only for safety.

Thanks - I've been experimenting with maxx = tf.reduce_max(tf.abs(x), list(range(1,rank)), keep_dims=True) to understand what it does. What do you mean by the "batch" axis?

Don't know which line are you talking about, but in general the code should work for any n-dimensional tensor, where the first dimension is the mini-batch dimension.

Thanks - I do not know what you mean when you say "the first dimension is the mini-batch dimension." I'm familiar with mini-batch but not with TensorFlow.

Usually when a mini-batch of B images of shape [H,W,C] is fed into the network for training, they are stacked to form one big tensor of shape [B,H,W,C] and get processed together. This is the case for most frameworks.
It's the same case for all the intermediate layer inputs/outputs. The first dimension is usually the batch dimension.

Oh I see, if I understand correctly B is just the size of the mini-batch, so "the mini-batch dimension" just means the number of training samples in the mini-batch. Thank you.
I'm not very familiar with convolutional nets. I'm currently trying to reproduce your team's results on a simple feedforward network. Is the C in [B,H,W,C] a vector with values for the channels red, green, blue?  (With H and W being height and width?)

Yes C is for channels.

Thanks for your help. I'd like to confirm that I understand your gradient quantization method.
Let's say I was implementing DoReFa algorithm on a simple feedforward network. The output layer just outputs a single vector: a list of scalar values: O = [o1, o2, o3, o4, ..., on].
I compute the gradients at the output layer: G = [g1, g2, g3, g4, ..., gn]
To produce the quantized gradients gbj I then do the following (as in Equation (12)):
∀gj ∈ G, gbj = 2*max(|G|) * ( quantizek [gj / 2 * max(|G|) + ½ + N(k)] – ½ ).
Where max(|G|) is the element in G with the maximum absolute value.  So if G := [0, 4, -2, 1, -5], max(|G|) returns 5.

Yes that's right. Because it looks like there is no mini-batch (or in other words, a batch-size of 1).

Thanks, if I did use a mini-batch with size > 1, say m = 4, then it seems like all that is necessary is to sum and average the quantized gradients. So in other words, if m= 4 then we have 4 training inputs, x1, x2, x3, x4 per mini-batch, and the gradient is: 1/4 * Σt=1 to m [ Gtb ], where Gt is the output gradient vector from training input xt, and Gtb is the quantized gradient vector from training input xt.

Apart from the quantization it's just standard back-propagation. For example if your cost function is the average cost of all samples then the gradient w.r.t some weight would also be averaged across all samples.

Sorry - I should have specified, where mini-batch size m > 1 I was implying that stochastic gradient descent would be used, where an estimate of the true gradient ∇C = 1/n * Σx Cx ∀x ∈ X is given instead by ∇C ≈ 1/m * Σt=1 to m( ∇CXt )
where X is the set of all training samples and C is the cost function, and m is the size of a single mini-batch.

For example if your cost function is the average cost of all samples then the gradient w.r.t some weight would also be averaged across all samples.

I was under the impression that all cost functions must be able to be written as an average over cost functions Cx for individual training samples x ∈ X. Is this incorrect?

Yeah I had that impression as well but I'm not sure it has to be the case..
Anyway, if cost function is an average then averaging the gradient is necessary by chain-rule.

I don't remember you mentioning biases in the paper - do you have any method for quantizing biases? Or do you simply imagine a single bias unit connected to all neurons in all layers, and train the weight for those connections?

Bias are not of a specific interest because they don't involve expensive computation, and presumably similar quantization methods would work for them as well. In our work we use batch normalization so the model doesn't contain bias term for those quantized layers.

Confirming one more detail. On step 13 of Algorithm 1 in DoReFa v2 paper, you say:

13: gak-1←backward_input(gbak, Wbk)

Does this mean that we have to re-quantize the gradients gak-1 using fGγ() before backpropagating back another layer?

Another question - when we implement backward_input(), we end up doing the following:
dC/daL ⊙ σ’(z⃗L) = δ⃗L.
(where dC/daL = gaL from step 9 of DoReFa v2 Algorithm 1, and σ’(z⃗L) is the derivative of the activation function σ() evaluated over the weighted inputs z⃗L)
This gives us the error vector δ⃗L from which we can use backward_weight() to get the gradients with respect to the weight matrix.
The questions:

What bit-width do you use for the components of the vector σ’(z⃗L)?
What bit-width do you use for the vector z⃗L (this may already be answered here as a bitwidth of (M+K) where M and K are the bit-widths of the multiplicands used to generate the components of z⃗L)

Quantization is done in step 12 already. Not step 13.
backward_input doesn't involve anything with the activation function because it is handled in step 11.
You can use whatever bitwidth large enough to store these intermediate values because they only get involved in cheap operations.

Thanks my mistake - steps 12 and 13 are part of a loop...

I think I misunderstood backward_input and backward_weight. Can you please explain what steps 13 and 14 do? It is unclear how they operate within the loop started in step 10 (Algorithm 1, DoReFa v2 paper).
When backpropagating the following things need to happen:

Compute the output layer's gradient: this is dC/daL, the derivative of the cost function with respect to the final layer (layer L)'s output activations.

This looks like step 9 in Algorithm 1: "Compute gaL = ∂C/∂aL knowing aL and a*."

Feed this gradient through the derivative of the activation function, to get the error δL of the output layer: δL = gaL⊙σ’(zL), where σ’() is the derivative of the activation function, zL are the weighted inputs to the last layer L, and ⊙ is the Hadamard product (elementwise product).

This looks like step 11 in Algorithm 1: "Back-propagate gak through activation function h."

Backpropagate the error δL ∀ ℓ < L. δℓ = ((wℓ+1)T · δℓ+1) ⊙σ’(zℓ).

This might be step 13? Except the output of step 13 is non-quantized (note there is no b, the output is simply gak-1).

Apply the update to the weights: wℓ → wℓ - (η/m) * (aℓ-1 · δℓ), where aℓ-1 is the activation vector from layer ℓ-1 and wℓ is the weight matrix at layer ℓ.

Questions:
Q1) In the four steps outlined above for backprop, when do we apply the quantization routine in Step 12 from Algorithm 1?
Q2) What is the meaning of backward_input() - is it one of the four steps above or something else?
Q3) What is the meaning of backward_weight() - is it one of the four steps above or something else?
Q4) Why is the output of step 13's backward_input() non-quantized?

backwad_input computes the gradient of C w.r.t.  a_{L-1} (or L-2, L-3,...), i.e. the output of previous layer. So the next loop iteration can use it.
backward_weight computes the gradient w.r.t. W_l (or L-1, L-2,...).
Yes in step 11 we just assume this is a trivial element-wise operation so we didn't introduce new notations to distinguish what's before the activation and what's after. (or "gradients" and "errors" in your words). So g_{a_k} is a variable that holds the gradient w.r.t. the output of layer k either before or after activation.

I have some questions in getting gradient quantization. In the paper, it said that
"The above function first applies an affine transform on the gradient, to map it into [0, 1], and then inverts the transform after quantization."
In this sentence, what is "inverts" mean?
I can't get the points.. Can I get some advice?

It means applying the inverse function of the transform.

Oh, I get it.. However why do we have to invert the transform? Is there any special reason? Also I can't get the intention of multiplying max_0(|dr|) in the front. Can you explain little bit in detail?

Is there any special reason?

To keep things in the same range.

Also I can't get the intention of multiplying max_0(|dr|) in the front. Can you explain little bit in detail?

That's part of the inverse function.

Thanks a lot...!!! I got the all equation.
Sorry but I had little questions about N(k),
Noise function N(k).. In the paper,

Is there any guarantee that dr/(2 * max_0(|dr|)) + 1/2 + N(k) < 1? (Becuase quantization should be in [0,1])

Can you give me some explanation about specific affect of noise function(N(k)) in gradient quantization? (For example, the performance becomes better because of some aspects... of noise function..)

Oh I didn't see the code yet. Thanks a lot.
For 2., I should see the paper more in detail.

While reading the paper, I have something curious.
In the contribution, paper said
"DoReFa-Net can use bit convolution kernels to accelerate both the forward pass and the backward pass of the training process."
In this sentence, what is bit convolution kernel? Is it implemented by authors or just using exist thing?
I thought that it is implemented by authors, but I want to make sure and if it was implemented then is it open source?

They are implemented and not open source.
btw recently caffe2 open source some relevant low-precision kernels: https://github.com/caffe2/caffe2/tree/master/caffe2/mobile/contrib/ulp2.

Oh Thanks for reference.
I had some minor questions in the experiment.
In the ImageNet experiment, there are case which is initialized. In the paper, it said that "training has been initiailized with a 32-bit model."
As I understand, the case "initialized" means that even though they are using 1-bit weight, activation and 32-bit gradients, they initialized all the 3 values(weight, activation, gradients) in 32-bit, different from other case which is initialized in lower than 32 bit. Am I in right track?
If not, can I get some advice?

You can only initialize the weights when training a neural network.

Ah.. you mean that the case "initialized" is that they initialized weights with a 32bit and the other case is just randomly chosen by W bits. Is it right?

Initialized means initializing with weights from pretrained 32bit model. Otherwise they're randomly initialized.

Ah.. now I understand what the table means, The cases "initialized" are start from initialized weight with pretrained 32bit model and the others are initialized with randomized values!!!


question about Peptides-struct

Hello,
Thank you for the nice code and timely dataset. I wonder as the label is of dimension 11, do you jointly predict all 11 features simultaneously, or do you predict each feature individually and then average MAE? Thank you!

Hi @Chen-Cai-OSU,
We predict the 11 regression targets with a final MLP "prediction head" over the graph representation. During evaluation, these are then accumulated for the entire dataset and the overall MAE is computed. As every datapoint (a molecular graph) always has all 11 targets the order in which the average is computed doesn't matter (i.e. wether you average over dataset dimension first or over the 11 target dimension first).
I hope that answers your question!
Best, Ladislav


Fix reported frontend security issues

Summary
Dependabot highlights some security issues in some dependencies. Let's get this sorted before next release.
This issue is only to address client side security issues. Address server side security issues separately.

Security investigation of npm packages
Uncontrolled resource consumption in braces
Dependency chain of the vulnerable package<EMAIL_ADDRESS>looks like:
<EMAIL_ADDRESS>└─┬<EMAIL_ADDRESS>  ├─┬<EMAIL_ADDRESS>  │ └──<EMAIL_ADDRESS>  └─┬<EMAIL_ADDRESS>    └──<EMAIL_ADDRESS>deduped

The latest stable version of<EMAIL_ADDRESS>is also vulnerable because they are still depending on<EMAIL_ADDRESS>which is still depending on<EMAIL_ADDRESS>Tailwind is working on v4.x and is currently in alpha. In that version they have dropped dependency on chokidar entirely. So, tailwindcss@4 will not have this security issue.
There is no clear workaround for this issue.
d3-color vulnerable to ReDoS
Dependency chain of the vulnerable package<EMAIL_ADDRESS>looks like:
<EMAIL_ADDRESS>├─┬<EMAIL_ADDRESS>│ └─┬<EMAIL_ADDRESS>│   └─┬<EMAIL_ADDRESS>│     └──<EMAIL_ADDRESS>
The latest stable version of<EMAIL_ADDRESS>is vulnerable because d3-interpolate is using<EMAIL_ADDRESS>d3-interpolate should use<EMAIL_ADDRESS>and @nivo/core should upgrade its dependency for this issue to be resolved.
There is no clear workaround for this issue.
Regular Expression Denial of Service (ReDoS) in micromatch
Dependency chain of the vulnerable package<EMAIL_ADDRESS>looks like:
<EMAIL_ADDRESS>├─┬<EMAIL_ADDRESS>│ └─┬<EMAIL_ADDRESS>│   └─┬<EMAIL_ADDRESS>│     └──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ └─┬<EMAIL_ADDRESS>│   ├─┬<EMAIL_ADDRESS>│   │ └──<EMAIL_ADDRESS>deduped
│   ├─┬<EMAIL_ADDRESS>│   │ └──<EMAIL_ADDRESS>deduped
│   ├─┬<EMAIL_ADDRESS>│   │ └──<EMAIL_ADDRESS>deduped
│   └──<EMAIL_ADDRESS>deduped
└─┬<EMAIL_ADDRESS>  ├─┬<EMAIL_ADDRESS>  │ └──<EMAIL_ADDRESS>deduped
  └──<EMAIL_ADDRESS>
We already use the latest stable<EMAIL_ADDRESS>Even the latest stable<EMAIL_ADDRESS>is using the vulnerable<EMAIL_ADDRESS>Unless, the dependencies of jest and tailwindcss upgrades and then jest and tailwindcss publishes patched packages, there is no straightforward workaround around this issue.
ws affected by a DoS when handling a request with many HTTP headers
Dependency chain of the vulnerable package<EMAIL_ADDRESS>looks like:
<EMAIL_ADDRESS>└─┬<EMAIL_ADDRESS>  └─┬<EMAIL_ADDRESS>    └──<EMAIL_ADDRESS>
We already use the latest of<EMAIL_ADDRESS>Unless, jest-environment-jsdom upgrades to jsdom@24 or jsdom@25, there is no straightforward workaround for this issue.


Custom radio type: [attr.disabled] not working

Description
Have created a custom theme for Formly. Developed custom radio type based on Formly's implementation
@Component({
  selector: "dds2-radio",
  template: `
    <fieldset [ngClass]="props.className" [class.dds__d-flex]="props.horizontal">
      <legend *ngIf="props.legend" class="dds__mb-3">
        <strong>{{ props.legend }}</strong>
      </legend>
      <div
        *ngFor="
          let option of props.options | formlySelectOptions: field | async;
          index as i;
          first as isFirst
        "
        class="dds__radio-button dds__radio-button--sm"
        [class.dds__ml-4]="props.horizontal && !isFirst"
      >
        <input
          type="radio"
          [id]="id + '-' + option.value"
          class="dds__radio-button__input"
          [name]="field.name || id"
          [class.is-invalid]="showError"
          [value]="option.value"
          [formControl]="formControl"
          [formlyAttributes]="field"
          [attr.disabled]="
            option.disabled || formControl.disabled ? true : null
          "
        />
        <label class="dds__radio-button__label" [for]="id + '-' + option.value">
          {{ option.label }}
        </label>
      </div>
    </fieldset>
  `,
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class Dds2RadioComponent extends FieldType<FieldTypeConfig> {}

And in the form component, consume it like so:
{
        type: "radio",
        defaultValue: "ABC",
        key: "alphabets",
        id: "customRadio",
        props: {
          options: [
            { label: "ABC", value: "ABC" },
            {
              label: "XYZ",
              value: "XYZ",
              disabled: true,
            },
          ],
        },
}

Post upgrade to Angular 15, the control with the label XYZ does not disable. The disabled attribute is also not found in the DOM.
<input type="radio" class="dds__radio-button__input ng-untouched ng-pristine ng-valid" ng-reflect-id="customRadio-XYZ" ng-reflect-name="customRadio" ng-reflect-value="XYZ" ng-reflect-form="[object Object]" ng-reflect-field="[object Object]" id="customRadio-XYZ">

Your Environment

Angular version: 15.0.0
Formly version: 6.0.2

Additional context
The disabled attribute used to work in Angular v13 and v14 with Formly v6.

This issue has been fixed and released as part of v6.0.3 release.
Please let us know, in case you are still encountering a similar issue/problem.
Thank you!


Don't dispatch events until activity/fragment is started

As is currently done with LiveData.

Added in 0.2.


BatchGenerator move back to name space

BatchGenerator was removed from the central data namespace. This should not be like this.

This is probably something I did. can you elaborate on the issue?


Reading lists of numpy arrays

A hack to address #603

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Yevgeni Litvin seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


About Visualization

Nice work!
I'm not very familiar with RLBench, so I have a visualization question to consult with you: how can I visualize the execution process based on eval.py in RLBench or save a top-view video like the one presented in your paper? Thank you very much.

Thanks for your interest! You can just turn on the 'cinematic_recorder.enabled' option in eval.yaml when evaluating to record a video. Ref: https://github.com/GuanxingLu/ManiGaussian/blob/d880105b6ad7edaa4d1c09264533c3fd5a898cac/conf/eval.yaml#L42 . For fixed viewpoint, please set the 'rotate_speed' to 0.


⚠ SolarOscp has degraded performance

In d851dac, SolarOscp ($SOLAROSCP_URL) experienced degraded performance:

HTTP code: 200
Response time: 162 ms

Resolved: SolarOscp performance has improved in d5ceec1 after 17 minutes.


Simplify wait thread locks

Use only one lock for all of the wait thread code.

@jkoritzinsky,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot


log: Updates needed since Suri stops if logs fail to open at startup

This PR adjusts existing test cases that now fail due to the fix for 5836. Those changes cause log initialization issues to stop Suricata if they occur at startup.

Was merged through #1132/#1137


Project.config

Separation of internal application's config.

@sergey-moiseyenko https://github.com/lorenwest/node-config is used to deal with config


refactor connections, resolve auto connect

This simplifies the connection api and always enables auto-accept, so should touch some topics in https://github.com/didx-xyz/aries-cloudapi-python/issues/154 and https://github.com/didx-xyz/aries-cloudapi-python/issues/129
Also renames all instances of invite to invitations as part of https://github.com/didx-xyz/aries-cloudapi-python/issues/140

Will look at codacy, forgot that!


Fix compiling Xamarin projects on VS2017

same as ppy/osu#5394

there's new version vs 2017 so maybe fix is included in it, if not than moving to vs 2019 seems as a best option; won't delete branch for while if someone would still use vs 2017


Remove unused generated SAS credentials from URL browser dialog

The URL browser dialog currently requires the user to generate a SAS token to access the selected blob file, but this generated token is never used afterwards. The only places the value gets read are https://github.com/microsoft/azuredatastudio/blob/main/src/sql/workbench/services/backupRestoreUrlBrowser/browser/urlBrowserDialog.ts#L366 and https://github.com/microsoft/azuredatastudio/blob/main/src/sql/workbench/services/backupRestoreUrlBrowser/browser/urlBrowserDialog.ts#L374 which are only for checking if the OK button should be enabled. Since we don't use this token anywhere, I've opted to remove it entirely.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
30818

Relevant Lines:
69389

💛  - Coveralls


Elements do not work!!!

Hello, first of all I would like to commend the great work on the design template.
I'm using the elements (input's, form's and etc) that are shown in the template adminlte template, but some of the elements do not have the same behavior pattern. That is, I put an input calendar that when clicked opens a calendar, however in the project it does not open the calendar. I put an input with mask and it does not generate the mask. It's like missing JS and CSS files. Can you tell me what I should do ???

Cleanup issue
If the issue is omnipresent in the coming version 1.26.x, please create a new issue.


Make prom-migrator unit test independent of current time

Testing that depends on current time is usually flaky. This change wraps
time.Now().Unix() calls into an independent function which can be
manipulated to always return the same value thus making test more reliable.

bors r+


removed firebase credential file

removed sensitive credentials file
Also it might be a good idea to erase this file from history https://help.github.com/articles/removing-sensitive-data-from-a-repository/

Thanks for picking this up. Woops on my part.


v1.11 Backports 2023-03-15

[ ] #24085 (@tommyp1ckles)

Once this PR is merged, you can update the PR labels via:
for pr in 24085; do contrib/backporting/set-labels.py $pr done 1.11; done

or with
make add-labels BRANCH=v1.11 ISSUES=24085

/test-backport-1.11


GUI

We need to add some UI to our app.
See:
Deliverable 3a (Sciencemesh-Nextcloud).pdf

Note the html is already in the app! (see Slack)

I don't see here, HTML files if you are saying about sciencemesh project.

Correct, sorry! The HTML files were missing. They're being added now, see https://github.com/pondersource/nc-sciencemesh/pull/120


remove @-webkit-keyframes

Hello,
Could you remove old  value with -webkit, when I try to validate my css I have this warnong : "Désolé mais la règle-arobase @-webkit-keyframes n'est pas implementée"
Thanks

Why would you validate a generated third party asset? @-webkit-keyframes are generated by autoprefixer as -webkit prefix is required for iOS Safari 8.4 and last two version of standard browsers are supported by animate.css.


Bug: Can't register at the fresh installation

Describe the bug
After the successful installation of the app, I can't log in or register due to mixed http&https requests
Also, I need to mention that I've Nginx proxy manager ahead of the k8s cluster so it handles the SSL termination
Route looks like https://up.brukkil.tech -> NGINX proxy manager -> K8s node
To Reproduce
Steps to reproduce the behavior:

helm pull oneuptime/oneuptime && unarchive it
1.1. helm upgrade -i oneuptime oneuptime -f oneuptime/values.yaml
Go to the https://up.brukkil.tech/accounts/register page
See error
BasicForm.tsx:418 Mixed Content: The page at 'https://up.brukkil.tech/accounts/register' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://up.brukkil.tech/identity/signup'. This request has been blocked; the content must be served over HTTPS.

Screenshots

Desktop (please complete the following information):

OS: MacOS
Browser chrome
Version

Deployment Type
Is this issue on self-hosted version 7.0.2487?
My values file
global:
  storageClass: nfs
  clusterDomain: &global-cluster-domain cluster.local

# Please change this to the domain name / IP where OneUptime server is hosted on.
host: up.brukkil.tech
httpProtocol: https

# (Optional): You usually do not need to set this if you're self hosting. If you do set it, set it to a long random value.
oneuptimeSecret:
encryptionSecret:

# (Optional): You usually do not need to set this if you're self hosting.
openTelemetryCollectorHost:
fluentdHost:

deployment:
  replicaCount: 1

metalLb:
  enabled: false
  ipAdddressPool:
    enabled: false
    addresses:
      # - <IP_ADDRESS>/32 # List of IP addresses of all the servers in the cluster.

nginx:
  service:
    loadBalancerIP:
    type: LoadBalancer
    externalIPs:
      # - <IP_ADDRESS> # Please make sure this is the same as the one in metalLb.ipAdddressPool.addresses

postgresql:
  enabled: true # Set this to false if you're using an external postgresql database.
  clusterDomain: *global-cluster-domain
  auth:
    username: oneuptime
    database: oneuptimedb
  architecture: standalone
  primary:
    service:
      ports:
        postgresql: "5432"
    terminationGracePeriodSeconds: 0 # We do this because we do not want to wait for the pod to terminate in case of node failure. https://medium.com/tailwinds-navigator/kubernetes-tip-how-statefulsets-behave-differently-than-deployments-when-node-fails-d29e36bca7d5
    persistence:
      size: 25Gi
  readReplicas:
    terminationGracePeriodSeconds: 0 # We do this because we do not want to wait for the pod to terminate in case of node failure. https://medium.com/tailwinds-navigator/kubernetes-tip-how-statefulsets-behave-differently-than-deployments-when-node-fails-d29e36bca7d5
    persistence:
      size: 25Gi

clickhouse:
  enabled: true
  clusterDomain: *global-cluster-domain
  service:
    ports:
      http: "8123"
  shards: 1
  replicaCount: 1
  terminationGracePeriodSeconds: 0 # We do this because we do not want to wait for the pod to terminate in case of node failure. https://medium.com/tailwinds-navigator/kubernetes-tip-how-statefulsets-behave-differently-than-deployments-when-node-fails-d29e36bca7d5
  zookeeper:
    enabled: true
  persistence:
    size: 25Gi
  auth:
    username: oneuptime
  initdbScripts:
    db-init.sql: |
      CREATE DATABASE oneuptime;

redis:
  enabled: true
  clusterDomain: *global-cluster-domain
  architecture: standalone
  auth:
    enabled: true
  master:
    service:
      ports:
        redis: "6379"
    persistence:
      enabled: false # We dont need redis persistence, because we dont do anything with it.
  replica:
    persistence:
      enabled: false # We dont need redis persistence, because we dont do anything with it.
  commonConfiguration: |-
    appendonly no
    save ""

image:
  registry: docker.io
  repository: oneuptime
  pullPolicy: Always
  tag: release
  restartPolicy: Always

autoscaling:
  enabled: true
  minReplicas: 1
  maxReplicas: 3
  targetCPUUtilizationPercentage: 80
  targetMemoryUtilizationPercentage: 80

nodeEnvironment: production

billing:
  enabled: false
  publicKey:
  privateKey:
  smsDefaultValueInCents:
  callDefaultValueInCentsPerMinute:
  smsHighRiskValueInCents:
  callHighRiskValueInCentsPerMinute:

subscriptionPlan:
  basic:
  growth:
  scale:
  enterprise:

analytics:
  host:
  key:

internalSmtp:
  enabled: true
  incomingEmailDomain:
  sendingDomain:
  dkimPrivateKey:
  dkimPublicKey:
  email:
  name:
  service:
    loadBalancerIP:
    # Change this to LoadBalancer if you want to receive emails from the internet. This could be useful for Incoming Email monitors.
    type: ClusterIP
    externalIPs:
      # - <IP_ADDRESS> # Please make sure this is the same as the one in metalLb.ipAdddressPool.addresses

incidents:
  disableAutomaticCreation: false

statusPage:
  cnameRecord:

probes:
  one:
    name: "Probe"
    description: "Probe"
    monitoringWorkers: 3
    monitorFetchLimit: 10
    key:
    replicaCount: 1
    syntheticMonitorScriptTimeoutInMs: 60000
    customCodeMonitorScriptTimeoutInMs: 60000
    # Feel free to leave this blank if you're not integrating this with OpenTelemetry Backend.
    openTelemetryExporter:
      headers:
  # two:
  #   name: "Probe 2"
  #   description: "Probe 2"
  #   monitoringWorkers: 3
  #   monitorFetchLimit: 10
  #   key:
  #   replicaCount: 1
  #   syntheticMonitorScriptTimeoutInMs: 60000
  #   customCodeMonitorScriptTimeoutInMs: 60000
  #   openTelemetryExporter:
  #     headers:

port:
  app: 3002
  ingestor: 3400
  testServer: 3800
  accounts: 3003
  statusPage: 3105
  dashboard: 3009
  adminDashboard: 3158
  nginxHttp: 80
  nginxHttps: 443
  haraka: 2525
  probe: 3500
  otelCollectorGrpc: 4317
  otelCollectorHttp: 4318
  isolatedVM: 4572

testServer:
  enabled: false

openTelemetryExporter:
  endpoint:
    server:
    client:
  headers:
    app:
    dashboard:
    accounts:
    statusPage:
    adminDashboard:
    ingestor:
    nginx:

containerSecurityContext:
podSecurityContext:
affinity:
tolerations:
nodeSelector:

# This can be one of the following: DEBUG, INFO, WARN, ERROR
logLevel: INFO

# Enable cleanup cron jobs
cronJobs:
  cleanup:
    enabled: true
  e2e:
    enabled: true
    isUserRegistered: false
    registeredUserEmail:
    registeredUserPassword:
    # This is the URL of the status page you want to test. This is used to check if the status page is up and running.
    statusPageUrl:
    failedWebhookUrl:

letsEncrypt:
  # Generate a private key via openssl, encode it to base64
  accountKey:
  # Email address to register with letsencrypt for notifications
  email:

oneuptimeIngress:
  enabled: true
  annotations:
    # cert-manager.io/cluster-issuer: "letsencrypt-prod" # or "letsencrypt-staging" for testing
    # cert-manager.io/acme-challenge-type: "http01"
  # Please change this to the ingress class name for your cluster. If you use a cloud provider, this is usually the default ingress class name.
  # If you dont have nginx ingress controller installed, please install it by going to https://kubernetes.github.io/ingress-nginx/deploy/
  className: nginx # Required. Please change this to the ingress class name for your cluster. If you use a cloud provider, this is usually the default ingress class name.
  hosts: # List of hosts for the ingress. Please change this to your hosts
    # - "oneuptime.com" # Host 1
    # - "www.oneuptime.com" # Host 2
    - up.brukkil.tech
  tls:
    enabled: false
    hosts:
      - host: "up.brukkil.tech"
        secretName: "up.brukkil.tech-tls"

script:
  workflowScriptTimeoutInMs: 5000

# extraTemplates -- Array of extra objects to deploy with the release. Strings
# are evaluated as a template and can use template expansions and functions. All
# other objects are used as yaml.
extraTemplates:
  #- |
  #    apiVersion: v1
  #    kind: ConfigMap
  #    metadata:
  #      name: my-configmap
  #    data:
  #      key: {{ .Values.myCustomValue | quote }}

# External Postgres Configuration
# You need to set postgresql.enabled to false if you're using an external postgres database.
externalPostgres:
  host:
  port:
  username:
  password:
  # If you're using existing secret for the password, please use this instaead of password.
  existingSecret:
    name:
    # This is the key in the secret where the password is stored.
    passwordKey:
  database:
  ssl:
    enabled: false
    # If this is enabled, please set either "ca"
    ca:
    # (optional)
    cert:
    key:

## External Redis Configuration
# You need to set redis.enabled to false if you're using an external redis database.

externalRedis:
  host:
  port:
  username:
  password:
  # If you're using existing secret for the password, please use this instaead of password.
  existingSecret:
    name:
    # This is the key in the secret where the password is stored.
    passwordKey:
  database:
  tls:
    enabled: false
    # If this is enabled, please set "ca" certificate.
    ca:
    # (optional)
    cert:
    key:

## External Clickhouse Configuration
# You need to set clickhouse.enabled to false if you're using an external clickhouse database.
externalClickhouse:
  host:
  ## If the host is https, set this to true. Otherwise, set it to false.
  isHostHttps: false
  port:
  username:
  password:
  # If you're using existing secret for the password, please use this instaead of password.
  existingSecret:
    name:
    # This is the key in the secret where the password is stored.
    passwordKey:
  database:
  tls:
    enabled: false
    # If this is enabled, please set either "ca"
    ca:
    # (optional)
    cert:
    key:

When I open the app from the incognito window - it works perfectly
It's pretty strange behavior.
It seems like my local issues with the cache