[BUG] Incorrect hx-post Value Breaks File Upload in Example

In the example code 'Single File Uploads' and 'Multiple File Uploads' is not working for me.
The hx-post attribute in the file upload form is incorrectly populated with the Python function object representation instead of the function name string "upload", causing htmx to fail processing the form submission.
Minimal Reproducible Example
# This is a copy of the non-working code from here https://docs.fastht.ml/tutorials/quickstart_for_web_devs.html
from fasthtml.common import *
from pathlib import Path

app, rt = fast_app()

upload_dir = Path("filez")
upload_dir.mkdir(exist_ok=True)

@rt('/')
def get():
    return Titled("File Upload Demo",
        Article(
# The following line should contain hx_post="upload"
            Form(hx_post=upload, hx_target="#result-one")(
                Input(type="file", name="file"),
                Button("Upload", type="submit", cls='secondary'),
            ),
            Div(id="result-one")
        )
    )

def FileMetaDataCard(file):
    return Article(
        Header(H3(file.filename)),
        Ul(
            Li('Size: ', file.size),
            Li('Content Type: ', file.content_type),
            Li('Headers: ', file.headers),
        )
    )

@rt
async def upload(file: UploadFile):
    card = FileMetaDataCard(file)
    filebuffer = await file.read()
    (upload_dir / file.filename).write_bytes(filebuffer)
    return card

serve()

Expected behavior
The generated HTML should contain hx-post="upload", allowing htmx to correctly submit the form to the /upload route.
Actual Behavior: hx-post="<function upload at 0x...>"
Environment Information
Please provide the following version information:

fastlite version: 23993b133c843ae5ada63e5a72bfd22bd822301d
fastcore version: 00de908bb27c589dd1723efcb80512ebee00c4d3
fasthtml version: 61ecb093b4e4b4ef46d180e38e6258073651ef31

Confirmation
Please confirm the following:

[X] I have read the FAQ (https://docs.fastht.ml/explains/faq.html)
[X] I have provided a minimal reproducible example
[X] I have included the versions of fastlite, fastcore, and fasthtml
[X] I understand that this is a volunteer open source project with no commercial support.

Additional context
Affected File: nbs/tutorials/quickstart_for_web_devs.ipynb (likely the only file needing changes, though nbs/llms-ctx-full.txt and nbs/llms-ctx.txt contain the related function).
I think two code examples 'Single File Uploads' and 'Multiple File Uploads' have this issue.

Hi plops,
I can reproduce the issue with FastHTML version '0.9.1'.
Odd enough, it works in a Jupyter notebook.
So, I found that specifying the host in the python script works again:
serve(host='localhost')
It might be that '<IP_ADDRESS>' is not converted to 'localhost' ?
On Thu, Nov 21, 2024 at 2:16 PM plops @.***> wrote:

In the example code 'Single File Uploads' and 'Multiple File Uploads' is
not working for me.
The hx-post attribute in the file upload form is incorrectly populated
with the Python function object representation instead of the function name
string "upload", causing htmx to fail processing the form submission.
Minimal Reproducible Example
Provide a minimal code snippet that reproduces the issue. This is crucial
for us to understand and fix the bug quickly.
This is a copy of the non-working code from here https://docs.fastht.ml/tutorials/quickstart_for_web_devs.htmlfrom fasthtml.common import *from pathlib import Path
app, rt = fast_app()
upload_dir = Path("filez")upload_dir.mkdir(exist_ok=True)
@rt('/')def get():
return Titled("File Upload Demo",
Article(# The following line should contain hx_post="upload" 1            Form(hx_post=upload, hx_target="#result-one")(2                Input(type="file", name="file"),
Button("Upload", type="submit", cls='secondary'),
),
Div(id="result-one")
)
)
def FileMetaDataCard(file):
return Article(
Header(H3(file.filename)),
Ul(
Li('Size: ', file.size),
Li('Content Type: ', file.content_type),
Li('Headers: ', file.headers),
)
)
@rt3async def upload(file: UploadFile):4    card = FileMetaDataCard(file)5    filebuffer = await file.read()6    (upload_dir / file.filename).write_bytes(filebuffer)
return card
serve()
Expected behavior
The generated HTML should contain hx-post="upload", allowing htmx to
correctly submit the form to the /upload route.
Actual Behavior: hx-post="<function upload at 0x...>"
Environment Information
Please provide the following version information:

fastlite version: 23993b133c843ae5ada63e5a72bfd22bd822301d
fastcore version: 00de908bb27c589dd1723efcb80512ebee00c4d3
fasthtml version: 61ecb09
https://github.com/AnswerDotAI/fasthtml/commit/61ecb093b4e4b4ef46d180e38e6258073651ef31

Confirmation
Please confirm the following:

I have read the FAQ (https://docs.fastht.ml/explains/faq.html)
I have provided a minimal reproducible example
I have included the versions of fastlite, fastcore, and fasthtml
I understand that this is a volunteer open source project with no
commercial support.

Additional context
Affected File: nbs/tutorials/quickstart_for_web_devs.ipynb (likely the
only file needing changes, though nbs/llms-ctx-full.txt and
nbs/llms-ctx.txt contain the related function).
I think two code examples 'Single File Uploads' and 'Multiple File
Uploads' have this issue.
—
Reply to this email directly, view it on GitHub
https://github.com/AnswerDotAI/fasthtml/issues/584, or unsubscribe
https://github.com/notifications/unsubscribe-auth/BMRMPJTDSYW4UIKLTHVZACT2BXMLTAVCNFSM6AAAAABSG7H5ZOVHI2DSMVQWIX3LMV43ASLTON2WKOZSGY3TSNBQGY3TMOI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

@TransparentIA  this observation intrigued me, so I tried myself.
For me adding the option host='localhost' to the serve() call doesn't fix the issue.
serve()
# => INFO:     <IP_ADDRESS>:58928 - "POST /%3Cfunction%20upload%20at%200x7f24d96ccea0%3E HTTP/1.1" 404 Not Found

serve(host='localhost')
# => INFO:     <IP_ADDRESS>:53432 - "POST /%3Cfunction%20upload%20at%200x7fe87a4c8f40%3E HTTP/1.1" 404 Not Found

# The proper fix:
Form(hx_post="upload", hx_target="#result-one") ...
serve()
# => INFO:     <IP_ADDRESS>:49164 - "POST /upload HTTP/1.1" 200 OK

Note that I added the relevant lines from the log output after # =>

I believe this should be fixed now in the latest - please reopen if you can still repro it.


The interface of phonopy to lammps does't work

I try to run the example of lammps in ~/phonopy/example/Ti-lammps, but it failed. This problem seems to be caused by incorrect format of structure.

I am not very familiar with LAMMPS, but probably you need the latest versions of LAMMPS.

Thank you for your suggestion !
I have updated  the version of lammps, but it still doesn't work. And I am unable to open the structure by visualization program,such as ovito.

Thank you for your suggestion !
I have updated  the version of lammps, but it still doesn't work. And I am unable to open the structure by visualization program,such as ovito.

Atom Type Labels is New in version 15Sep2022 of LAMMPS. https://docs.lammps.org/Howto_type_labels.html

thank you！

I will update the LAMMPS interface page to clarify the supported LAMMPS version. Thanks for your raising issue.


[Bug] FluentSlider two-way binding issue

https://github.com/microsoft/fluentui-blazor/pull/2591#issuecomment-2324344948
While the mouse wheel is just one example, there are other ways to interact with the slider. For instance, how can I reset the slider value? Fluent UI React Web Component supports this functionality.
https://react.fluentui.dev/?path=/docs/components-slider--docs#controlled
import * as React from "react";
import { useId, Button, Label, Slider } from "@fluentui/react-components";
import type { SliderProps } from "@fluentui/react-components";

export const Controlled = () => {
  const id = useId();
  const [sliderValue, setSliderValue] = React.useState(160);
  const onSliderChange: SliderProps["onChange"] = (_, data) =>
    setSliderValue(data.value);
  const resetSlider = () => setSliderValue(0);
  return (
    <>

        Control Slider [ Current Value: {sliderValue} ]

      <Slider
        aria-valuetext={`Value is ${sliderValue}`}
        value={sliderValue}
        min={20}
        max={200}
        onChange={onSliderChange}
        id={id}
      />

      <Button onClick={resetSlider}>Reset</Button>
    </>
  );
};

React can do this, so how blazor do this?

    rtl support

        <FluentSlider id="rtl-slider" Min="0" Max="100" Step="10" @bind-Value=value2>
            <FluentSliderLabel Position="10">10</FluentSliderLabel>
            <FluentSliderLabel Position="20">20</FluentSliderLabel>
            <FluentSliderLabel Position="40">40</FluentSliderLabel>
            <FluentSliderLabel Position="60">60</FluentSliderLabel>
            <FluentSliderLabel Position="80">80</FluentSliderLabel>
        </FluentSlider>

        <FluentButton OnClick="() => value2 = 0 ">Reset</FluentButton>  @* THIS LINE IMPORTANT *@

🤔 Expected Behavior
I change the value by clicking/dragging, and after I want to reset, then I click Reset and the FluentSlider Value should be 0. That's what true two-way data binding means
😯 Current Behavior
Currently, the value does not reset.

The fact that the React component does that, says absolutely nothing about what the we component can do. I think we have an example somewhere. I'll get back on that

The fact that the React component does that, says absolutely nothing about what the web component can do.

Yes sure!
The example with the React component isn't quite relevant since it doesn't appear to be a Web Component. However, the FAST Element can change the Slider's position by modifying the value property. Wouldn't this example be more convincing?
<!DOCTYPE html>

    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

@vnbaaij
This issue looks familiar - I submitted #1873 that fixed a redraw issue #1873. It looks like #2287 removed some of that code and may be the reason why this issue is now occurring.
It's been a while but I recall something about how the underlying webcomponent initializes. I can take a look in the morning if you wish.

Yes, it is familiar but it also isn't :)
What I've found so far:

Addding below to FluentSlider.razor

current-value="@FormatValueAsString(Value)"  @* ADD THIS LINE *@
aria-valuenow="@FormatValueAsString(Value)" @* ADD THIS LINE *@

Works when using the Blazor code from @LuohuaRain's opening post. What does not work is using the Slider inside another component that can influence the slider's value. I'm using the DataGrid Typical Usage filter example for this. moving the thumb a couple of times in quick succession throws it into a loop:

Not adding the current-value to the slider tag and using the script for earlier PR that Gary (@oneolddev) mentioned has the same result (reset works, grid goes into loop) if we invoke the js function on every render (ie in OnAfterRenderAsync but outside of `firstRender' block):
protected override async Task OnAfterRenderAsync(bool firstRender)
{
    if (firstRender)
    {
        _jsModule ??= await JSRuntime.InvokeAsync<IJSObjectReference>("import", JAVASCRIPT_FILE);
    }
    if (_jsModule is not null)
    {
        await _jsModule!.InvokeVoidAsync("updateSlider", Element);
    }
}

If we move the script call to inside the firstRender block, the data grip filter example works flawlessly. @LuohuaRain's code works for some part not not completely. If you move a slider and then press reset, the value gets set to 0 but the thumb is not updated. If you press reset without moving a slider, it will set the value and the thumb correctly:

Now we just need a working combination of these two. I've tried everything I could think of but was not able to find a definitive solution.  So Gary, if your offer still stands, please take a look.

I'm looking into this now. I was not aware of the datagrid and slider interaction. ⛏ ⛏

Closed with PR #2665


[CI Test] Update oracle-workflow-test.yml

I suppose this is no longer needed as Oracle CI seems to be working proeprly now.

This test PR was for Chris, since he was unable to run the build after adding the secrets to his repository. I hope you are able to run the action now @Naros!


HTML & CSS (FAQ Page) - Write Pseudo Code

Write pseudo code for HTML & CSS so we know roughly how the page will be laid out.
Research how to use Bulma API

Completed


Fix Component RunService methods

Fix HeartbeatUpdate, SteppedUpdate, and RenderUpdate methods still running on components that have been destroyed.

Closed as the component module is being refactored.


Deprecate Twitter connector in add dataset modal.

Context
Twitter data connector was deprecated in https://github.com/CartoDB/product/issues/49
It was modified both in Builder and Editor code, pre-migration.
According to https://github.com/CartoDB/support/issues/1589 and https://github.com/CartoDB/product/issues/49#issuecomment-397702058 it seems that the deprecation has been wiped out with the migration, in the dashboard add dataset page.
Please, add the deprecation again to the page indicated in the issue above.

Deployed! 🚀

:boom:


Fixes and improvements

This patch fixes some bugs in the wmain function.
The command line parsing has been improved, allowing more flexibility, for instance multiple spaces between the c option and its parameter, and grouped options.
The makefile has been modified to support MinGW under the MSYS2 and Cygwin environments.
The version has changed to 5.1. You can make changes if you like.

I have added a separate folder /msvc for the Visual Studio project files and other specific files for building with this compiler.
This works exactly like the your <IP_ADDRESS> release of superUser, but with the fixes and improvements of the 5.1 version.
On this subject, I would like to point out that your MSVCRT fix of version <IP_ADDRESS> does not work in a 64-bit version (the error messages sent to stderr do not display), the size of the FILE structure being wrong (see the msvcrt.h file for details).
The big advantage is the size of the executable, 13 KB instead of 50 KB for the GCC compiler!
The C sources files (superUser.c and token.c) are common for the two compilers,
The msvcrt32.lib and msvcrt64.lib are not included. The msvc/README.txt file explains how to download them directly from Microsoft.

This also fixes issues #6 and #8.


Out-of-bound memory access in be_byteslib

Due to a cast from size_t to int32 in buf_set and buf_get functions it is possible to supply a large number to access memory out-of-bounds from a bytes object.
Here is an example problematic function:
static void buf_set4_le(buf_impl* attr, size_t offset, uint32_t data)
{
    // Cast here is causeing the problem
    if ((int32_t)offset + 3 < attr->len) {
        attr->bufptr[offset] = data & 0xFF;
        attr->bufptr[offset+1] = (data >> 8) & 0xFF;
        attr->bufptr[offset+2] = (data >> 16) & 0xFF;
        attr->bufptr[offset+3] = data >> 24;
    }
}

Reproducing
Here is a berry code snippet that will cause a segmentation fault:
b=bytes()
b.set(32314545516,0,4) #This is being treated as a negative number bypassing the bounds check

Fixing
The issue can be rectified by checking that the provided offset is not negative.

Nice finding. Maybe we should handle negative offset as starting from end, like in arrays. Thoughts?

Fixed, awaiting approval before merging


[Hops-170] fixed slow deletion of large directories

[Hops-170] fixed slow deletion of large directories

Can one of the admins verify this patch?

Jenkins test this please.

Could your do your pull request on the master?

Moved to pull request to the master branch:  hopshadoop/hops#433


bump tap-spot to 1.1.2

tap-spot 1.1.2 fixed warning from package.json (main field not pointing to index.js).
Having the last version here would remove warning when using netlify-plugin-checklinks

Thank you!


RFE: make SSL_get_servername work early in ClientHello callback

SNI is the most common reason for the use of ClientHello callback and requires manually parsing as SSL_get_servername cannot be used.
BoringSSL has refactored this portion so that SSL_get_servername can be used at this early stage: gotta love this description from @davidben — “SNI is the most common reason to use the ClientHello callback and the extension is a little goofy to parse”
See discussion here: https://github.com/openssl/openssl/discussions/23303

Adding "help wanted" label. Any implementation would need to include a test - most likely in test/sslapitest.c.

Is manually parsing the extension acceptable? (taken from #10630)
https://github.com/openssl/openssl/blob/12a765a5235f181c2f4992b615eb5f892c368e88/test/handshake_helper.c#L158-L187

Well, there is obviously already a function within libssl to parse the servername out of the extension:
https://github.com/openssl/openssl/blob/5ed9a32a2aee89e10eb2891f5fb7a283e1b5199b/ssl/statem/extensions_srvr.c#L81-L174
I suppose we just need to arrange for that parsing to be done earlier. Probably we need to call tls_parse_extension just prior to where the client hello cb gets called:
https://github.com/openssl/openssl/blob/5ed9a32a2aee89e10eb2891f5fb7a283e1b5199b/ssl/statem/statem_srvr.c#L1698-L1713
Here's an example of another extension that we parse "early":
https://github.com/openssl/openssl/blob/5ed9a32a2aee89e10eb2891f5fb7a283e1b5199b/ssl/statem/statem_srvr.c#L1837-L1843

After looking at the source code of Nginx, a service known to be using OpenSSL, I found that it does use SSL_get_servername [1], but inside a SSL_CTX_set_tlsext_servername_callback callback [2]. Could this be a potential replacement for the SSL_CTX_set_client_hello_cb callback that @space88man originally planned to use? @mattcaswell

After looking at the source code of Nginx, a service known to be using OpenSSL, I found that it does use SSL_get_servername [1], but inside a SSL_CTX_set_tlsext_servername_callback callback [2]. Could this be a potential replacement for the SSL_CTX_set_client_hello_cb callback that @space88man originally planned to use? @mattcaswell

This is an alternative way to run things. In fact this used to be the only way do this (prior to the introduction of the client hello cb). However the servername cb runs relatively late in the process - which may be too late for many applications. The client hello cb was introduced as a solution to this.

which may be too late for many applications

Would you mind sharing any examples of such applications or scenarios please? I do not think I have the full picture..
And should early parsing of the SNI extension end up with a removal of the server_name_cb callback - since keeping it would be rather pointless apart from.. backwards compatibility I suppose...?


[Question]: Payload size limit?

First of all, great project and great work!
Now the question, of curiosity, if the payload (e.g., bundled script) size is greater than 0xFFFFFFFF bytes, would bytenode still work? I'm asking because kPayloadLengthOffset is just uint32.
Thank you.

This question crossed my mind before. I don't believe this limitation applies exclusively with bytenode, because the same logic and limitation still will be used with any script that v8 deals with (i.e. all javascript files). I think I tried before to generate a huge javascript file and run it with and without bytenode, but I don't remember the results though :) . I might try the same experiment again and get back to this issue.
Thanks for your interest and your kind words.

I vaguely remember that I had to use repetitions in order to reach that huge limit (~4.2 Gb), however, v8 was smart enough to remove that repeated parts in the code before compiling it. So the compiled version was much smaller.
Will try again definitely. That's an interesting question.

Yea, repetitions will be removed due to the optimizations

Well, it was a painful experiment :), but at least we found a definite answer:
$ time node HUGE.js
node:fs:419
      throw new ERR_FS_FILE_TOO_LARGE(size);
      ^

RangeError [ERR_FS_FILE_TOO_LARGE]: File size<PHONE_NUMBER>) is greater than 2 GB

The HUGE.js file was 4.5 GB.
So the conclusion is that neither the Node.js limit (2 Gb) nor the v8 limit (0xFFFFFFFF) will pose a problem for bytenode.

I reduced the file to 1.9 Gb, but it still throws an error:
$ time node HUGE.js
node:buffer:594
    slice: (buf, start, end) => buf.utf8Slice(start, end),
                                    ^

Error: Cannot create a string longer than 0x1fffffe8 characters

So, as you can see, Node itself has its limits before hitting any limits in the v8 C++ code. Anyways, for all practical purposes, you will not reach these limits, and even if you managed to reach them, bytenode will not be your issue.
An interesting fact is that .jsc files outperform plain .js files by a large margin when the files are huge (several hundreds megabytes). For example (huge-1.js was 325 Mb):
$  time node huge-1.js
output: c4ca4238a0b923820dcc509a...

real	1m11.527s
user	0m33.258s
sys	0m38.229s

$ time bytenode -c huge-1.js

real	1m13.891s
user	0m32.210s
sys	0m41.429s

$ time bytenode huge-1.jsc
output: c4ca4238a0b923820dcc509a...

real	0m1.106s
user	0m0.564s
sys	0m0.548s

1:11.527 vs 0:1.106. That's a huge performance gain.

Thank you for the research! Yeah, the performance is just too much haha, guess it does not need to produce bytecodes (including optimizations, etc) anymore and that could be the thing ;p


Changed how 'Blocked channels' are displayed on settings

Problems solved:

In other languages the message 'blocked channels' need to be displayed as 'channels blocked'.
Now translators can choose the order according to their language needs. The word 'blocked' should not be hard coded for that.
In the case there are no blocked channel there is no need to show the 0 value also the link to manage de channels, because there is no channel to manage.
Messages:
Case 0 blocked channels: You don't have blocked channels.  (No Manage button displayed)
Case 1 blocked channel:  You have 1 blocked channel. Manage (manage link)
Case 2 blocked channels: You have 2 blocked channels. Manage (manage link)

PR Checklist

Please check all that apply to this PR using "x":

[x] I have checked that this PR is not a duplicate of an existing PR (open, closed or merged)
[x] I have checked that this PR does not introduce a breaking change
[ ] This PR introduces breaking changes and I have provided a detailed explanation below

PR Type
What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting)
[ ] Refactoring (no functional changes)
[ ] Documentation changes
[ ] Other - Please describe:

Fixes
Issue Number:
What is the current behavior?
What is the new behavior?
Other information

Translators can already choose to change the order of words in a string. Your change would make it harder for other languages to change this sentence.


crypto/core_namemap.c locking excessively

A team developing an application that uses SSL_CTXs excessively discovered that performance was significantly degraded. They tracked it down to the locking and unlocking in crypto/core_namemap.c: threads spent a considerable amount of time in acquiring the read lock. It isn't clear yet if there was much contention for a writer, as we're still looking into the details, and the reason these locks were expensive is also unclear.
However this table has (as far as I can tell) the property that entries are only ever written once: once a name has a number it doesn't need another one. This should be amenable to some dirty tricks to get very good multithreaded performance.

Sounds like a possible candidate for #22729

See also openssl/project#428

https://github.com/openssl/openssl/pull/24504 should make namemap lockless on read. However our performance testing did not reveal much improvement.
@wbl Could they possibly test that pull request above?

Possibly but as I said they were using SSL CTX excessively which they now fixed (by reusing them) so they may need to do some archeology. I'll ask and see what they say.


Add package dependency tracking (like in apt)

Could Homebrew track package dependencies so unused packages dependencies could be easily removed (like in apt autoremove)?

Please always fill out the issue template.
brew bundle dump and brew bundle cleanup can do this for you.

It just gave me a list of formulae. When I try to uninstall one, it tells me that other formulae is depending on it.

You need to edit the Brewfile to only contain the formulae you want to be installed.

This external command might help you:
https://github.com/dawidd6/homebrew-autoremove

Thank you, this is exactly what I needed.
Question, why didn't it become an internal command?

I'd consider a PR to make it an official command if you're interested @dawidd6.

While we're at it... we can also modify/extend brew leaves to output "leaves" (or "branches" of formulae) that aren't "installed on request". And this can be part of cleanup --unused.

This was fixed by @tie624 in https://github.com/Homebrew/brew/pull/9047; thanks!!


Using custom separator in groupConcat when creating View

I'm trying to define a view by extending an abstract class from View following the example given in documentation. There are two expression getters declared using groupConcat with custom separator $; during debug running, an exception was reported Unhandled Exception: SqliteException(1): parameters are not allowed in views and after checking the sql statements following the exception line, I found the GROUP_CONCAT function was issued using one parameter as shown in the capture. This is conflicting as custom separator is supported by drift while the implementation is not allowed by sqlite.

Thanks for the report! This is fixed in 4ddbed5ccad989386647e82b04a1254f68df3a53.


Missing implementation of templated constructor of Mat_ aka. undifined reference to cv::Mat_::Mat_(int, int const*, T*, size_t const*)

There is a declaration of the following Mat_ constructor in core/mat.hpp:
  Mat_<_Tp>::Mat_(int _ndims, const int* _sizes, _Tp* _data, const size_t* _steps=0);

But there is no implementation for it in mat.imp.hpp which causes linking errors if the user tries to use it.
Looks like the problem exists since the "atomic commit" in 2010.

Created two pull request:
master: #5947
2.4: #5946


TypeError: Cannot read property 'toString' of undefined

How to solve this problem in react-native?

This isn't actually an issue of this repo. It's an issue related to you using "" instead of '' where you're using it.

I am receiving the exact same error and I'm not using double quotes.
return translate('Test', {from: 'en', to: 'fr'}).then(res => {
      return res.text;
    }).catch(err => {
      console.error(err);
    });

I am receiving the exact same error and I'm not using double quote @coltongit.
return translate('Test', {from: 'en', to: 'fr'}).then(res => {
      return res.text;
    }).catch(err => {
      console.error(err);
    });

I am receiving the exact same error and I'm not using double quotes @coltongit.
return translate('Test', {from: 'en', to: 'fr'}).then(res => {
      return res.text;
    }).catch(err => {
      console.error(err);
    });

I am receiving the exact error while using one quote

This library does not work in web page context.
See: https://github.com/vitalets/google-translate-api#does-it-work-from-web-page-context


New tolsoft details

PR checklist

[ ] This comment contains a description of changes (with reason).
[ ] If you've fixed a bug or added code that should be tested, add tests!
[ ] If you've added a new tool - have you followed the pipeline conventions in the contribution docs
[ ] Make sure your code lints (nf-core lint).
[ ] Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).
[ ] Usage Documentation in docs/usage.md is updated.
[ ] Output Documentation in docs/output.md is updated.
[ ] CHANGELOG.md is updated.
[ ] README.md is updated (including new tool citations and authors/contributors).

This shouldn't work because the magic keywords being considered are the nf-core ones
@sanger-tolsoft fix linting

But this should work:
@nf-core-bot fix linting

This should work because I've (temporarily) allowed the workflow on this branch:
@sanger-tolsoft fix linting


Why don't we write out own CBPi replacement.

I like CBPi as much as the next person.   But I've looked a the code and find it (needlessly ?) complex.  I'd also like to add some new functionality and separate the fermentation controller from the brewery controller.  I think they should be separate apps that share a common infrastructure.
I know that Manuel is writing CBPi4.  But he is doing everything by himself, including the design.  Again.  He has modified the license to be MIT4, with the restriction of no selling.  At least that is forkable.  But I think it is time for a different approach.
I'll commit to helping build a replacement CBPi.  Who else is in ?

@linuxguy123 I'm in. I pulled CBPi3 to my offline gitlab to make my own changes, because I didn't trust my work wouldn't just vaporize one day. Sounds like CBPi4 is safer with MIT, but I'm not convinced. I am not a developer by trade; scripting hack and code snip peter at best. I'm an infrastructure guy, and would be happy to help with containerization as needed, as well as hardware layers. I have a lot of experience with Pi, ESP8266, all the necessary sensors we'll need, as well as (albeit out of scope..) building housings and brew hardware: TIG welding aluminum and stainless, 3D printing just about anything else. I would be thrilled if an open source build were in the works. I'm positive the home brewing community would be all over this.


README SPM supported

Adding SPM in the README to show users that are solely looking to use SPM that it is supported on this library.

Thank you!


Re-adding static content for events page

Re-adding static content for events pages. This way, when add-about-models is merged into this branch, it will be the only app with dynamic content and add-page-models will be ready to merge into dev for staging server deployment.

I guess the process to work on this after the initial alpha launch will be to revert this PR, so that work on events pages can continue?

I don't know why I made this a PR, we don't need to merge this.


Event sourced aggregate with multiple (N) event sourced entities.

I have an aggregate that has a collection of child entities but one is a collection of entities called assets how would I handle returning these in getChildEntities if I want them back in the assets private variable. For example
class Contact extends EventSourcedEntity {}
class Loan extends EventSourcedEntity {}
interface Asset {}
class Property extends EventSourcedEntity implements Asset {}

class Deal extends EventSourcedAggregateRoute
{
  private $contact;
  private $loan;
  private $assets = [];

  public function applyDealAssetPropertyCreated(DealAssetPropertyCreated $event)
  {
    $asset = Property; // Construct the asset.
    $asset->initialiseAsset($event);

    array_push($this->assets, $asset);
  }

  public function getChildEntities()
  {
    return [$this->contact, $this->loan, $this->assets];
  }
}

Sorry, I'm new to this pattern but appreciate any help.

Something like return array_merge([$this->contact, $this->loan], $this->assets);?

Hi Bradley,
sorry for hijacking your thread!
@wjzijderveld I don't think your suggestion is a good idea, because the EventSourcedAggregateRoot::handleRecursively would pass all assets events to all Asset entities without checking the id of the Asset. IMHO this would lead to an unexpected result because all Assets replay the events of all other Assets too.
@bweston92 Bradley, try to avoid collections of child entities. Asset can be a aggregate root too, you only need to reference the Asset::id in the Deal AR.

@codeliner I went on their IRC, come to an understanding to get the DDD part right first then in a few months move to ES.

@bweston92 :+1:

@codeliner Well, you need to do that anyway if you have multiple assets like @bweston92 has. And the child entities that don't listen to the event won't receive it either.


Aorps/bulk scan testing

Bulk Scan Script

@AOrps Could you add comments above each method to describe what the input and output of each should be? If a new person were to use your bash script, what should they know?

I refactored the code so ./bulk-scan-poc.sh -h could have more information into usage (with examples too)!
Would look something like this:
    ./bulk-scan-poc.sh - Bulk Scan Script for Analyzer

OPTIONS: -[p|q|d|e|h]

  - p: Package Manager - Select Package Manager
  - q: seQuence - Choose awk sequence
  - d: Dry-run - See which packages you are going to bulk-scan before doing it
  - e: Env file - Pass in .env file
  - h: Help - Show Usage of Program

EXAMPLES:

$ ./bulk-scan-poc.sh -e .env
- Runs bulk-scan script with .env in local directory

$ ./bulk-scan-poc.sh -e .env -q 99
- Runs bulk-scan script at line 99

$ ./bulk-scan-poc.sh -e .env -q 43,60
- Runs bulk-script with custom sequence lines 43 to 60 inclusive

$ ./bulk-scan-poc.sh -d -q 34,45
- Dry-runs (doesn't actually perform a scan), used to check the packages you are going to scan before executing

NOTES:

- Requires '-e "Location of an environment variable"' to perform a scan (easier than running from local)
- Be sure to take 'omega-top10k.csv' with you!


Problem of compilation

Hey,
When I m trying to compile the project I have this error :
3>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3274: The primary reference "Microsoft.CodeAnalysis.Workspaces.Desktop, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" could not be resolved because it was built against the ".NETFramework,Version=v4.5.2" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.5".
3>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.CodeAnalysis.CSharp.Desktop". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
3>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.CodeAnalysis.CSharp.Workspaces.Desktop". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
3>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.CodeAnalysis.Desktop". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
And I see these error are here too :
https://ci.appveyor.com/project/icsharpcode/refactoringessentials/branch/master
and also on branch feature.
I don't understand why the project want to refer this assembly,  can you explain me if I'm doing something wrong or do something for fix this error pls
Thx :)

Tests project has targeted wrong framework (4.5 instead of 4.5.2 needed by Microsoft.CodeAnalysis.Workspaces.Desktop). The references to missing ".Desktop" assemblies might have remained from older Roslyn versions.

Ok thanks for yout help :)

Hey,
Now I have an another issue, I try to fix it but , it doesn't work
C:\Users\myname\Desktop\RefactoringEssentials\packages\Microsoft.VSSDK.BuildTools.14.1.24720\tools\VSSDK\Microsoft.VsSDK.targets(655,5): error VSSDK1031: Extension 'NR6Pack.Refactorings.Vsix..cd27e59b-5c56-4238-8931-c9bb745a7a7f' could not be found. Please make sure the extension has been installed.
Have you an idea why it don't run
Thx


added the choremodel

had a lil problem and had to create a new pr..
issue #22

I need you to please add a boolean variable called passed to the model and a static method that returns a chore by id, I need those for the Vote model

I need you to please add a boolean variable called passed to the model and a static method that returns a chore by id, I need those for the Vote model

done added the passed field and static method.

@kobihk @EliasAndry
I added this migration file in my PR
I prefer that they follow what I did because for me it is a little different and it is linked to other files
look in PR #52 #53

@kobihk @EliasAndry I added this migration file in my PR I prefer that they follow what I did because for me it is a little different and it is linked to other files look in PR #52 #53
@ofirtzabari I prefer not to waste more time on this PR
please rebase on this one.


Implement delimiter generators for "change"

Would be "pair X", eg "change pair square pair round"
Impl would send an object {pair: "parentheses"} and then extension side would do division etc

Decided not to do this one; see https://github.com/pokey/cursorless-vscode/pull/234#issuecomment-915982038


Pretrained model

Hi, tks for the interesting work.
Can you upload model to google drive or onedrive?
I can't download model from baidu.

sorry, I do not have enough space on google drive and onedrive. I will try to solve it.

Hi, tks for the interesting work.
Can you upload model to google drive or onedrive?
I can't download model from baidu.

please download from https://drive.google.com/file/d/1bccQIMeYBrEsgLAbWgxFE2sOsEhE2EKC/view

Tks you.


Koa

References:

https://github.com/koajs/koa
https://github.com/koajs/static
https://github.com/marcusoftnet/koablog-mongo
https://github.com/hemanth/koa-rest

Done in https://github.com/fmoliveira/rawr/commit/b02634eb1158559077cf110149de090fa3dd085a.


Check if tmp has space, and clear it up if there is no space

Related: https://github.com/netlify/netlify-plugin-nextjs/issues/1422
If a user has a large number of images, the cache can get too full (over 512MB). We need to check if it's full if we're wanting to write to it, and clear it out if so.
Once this is closed, we should also close the related issue linked above in the next plugin repo.

This could be something we could use: https://github.com/yetzt/node-lru-files

hi @pieh !
i am running to this issue on a project and noticed that you self-assigned the issue. do you have a sense of when you might have a possible fix? if i'm hoping to ship this project by may 7, do you recommend using<EMAIL_ADDRESS>released with changes from https://github.com/netlify/netlify-ipx/pull/136 ? or do you think you might have a patch around then?
thank you so so much

Hi @ceboop. I would definitely recommend using<EMAIL_ADDRESS>is you were hitting disk space issues before. I will actually close this ticket as my changes don't exactly do what this ticket recommended but it still address same issue. If you will hit disk space issues with<EMAIL_ADDRESS>please open a new ticket and then we will have another look (I could no longer reproduce disk space issues with my changes but it doesn't mean they won't happen)


Feature Request: Expose return values of calls to mock functions

Do you want to request a feature or report a bug?
Feature
What is the current behavior?
There is currently no way to access the return values that were returned by calls to mock functions.
What is the expected behavior?
When using jest.mock() to simply wrap a method for the purpose of "spying" on calls to the method (check if it's called, inspect the params it was called with, etc), it would also be very useful to have access to the list of return values that have been returned by calls to the mock function. This would be equivalent to sinon's spy.returnValues: http://sinonjs.org/releases/v2.0.0/spies/
The basic design of this would involve adding "returnValues" to MockFunctionState as such:
type MockFunctionState = {
  instances: Array<any>,
  calls: Array<Array<any>>,
  returnValues: Array<any>,
  timestamps: Array<number>,
};

And updating _makeComponent to push the final returned value onto the new returnValues array.
(see https://github.com/facebook/jest/blob/master/packages/jest-mock/src/index.js)
If there are no major "gotchas" to this plan, then I would volunteer to create a PR with these changes.
Please provide your exact Jest configuration and mention your Jest, node,
yarn/npm version and operating system.
Irrelevant

I think that would be a nice feature. PR welcome! 🙂

I'll work on this in the next few days. I suspect the code change itself will be fairly easy, and the bulk of the effort will be updating unit tests to thoroughly verify it.

Hmmm... there's also several unit tests failing in master. I guess the build is generally a bit broken even before I made any changes.


Import string replaces numbers with underscores

I assume this is an overly ambitious code block that's trying to replace invalid characters with underscores but it shouldn't do that with numbers since _c43721_rcon is a valid import name in JS (at least that's what my editor is suggesting.)
I'd expect this to be import * as _c43721_rcon from "jsr:@c43721/rcon";

Example: https://jsr.io/@c43721/rcon

Seems like it works fine when you're on a specific type

Example: https://jsr.io/@c43721/rcon/doc/~/RconOptions


(Do not merge!) Discussion: A userland replacement for replaceReducer

Building on #624, here is a proposed replacement for replaceReducer API that can be implemented in userland. Note how we no longer require <Root> component. Refs #350.

Are there any drawbacks to this approach that come to mind? I really like this!

@quicksnap Only downside I can think of is there's slightly more set-up for the developer

Let's take it slow.
#668 is the first step. We'll revisit whether we really want to do this after we get some feedback on it.


Add "prettier" to gemspec

I noticed that with version 2.0.0 of prettier installed (on Skyhook), nandi generate generates a blank migration.
If I pin the version to 1.6.1, the issue is resolved

As discussed elsewhere, Nandi exposes a post-processing interface that can be used with formatters such as this, but should not itself depend on them. I'm not clear why the 2.0 version was broken in skyhook but it's almost certainly to do with how we were invoking it on that side.


Rename library to something more generic

D(evelopment) Emu(lator) == demu

D(evelopment) Emu(lator) == demu

ISAmu from @raasahsan

ISAmu from @raasahsan

Settled on mainspring

Settled on mainspring


Golint fixes, removed dead code

Fixed golint fixes that seemed fixable.
Fixed several shadowed occurences.
Fixed comment format
Fixed error formatting (removed punctuation and newlines from the end of
error messages)
Capitalised abbreviations in local variable names (didn't touch exported
types)
Removed dead code occurences
Changed receiver identifiers to be consistent in proxy package
Signed-off-by: Maciej Kwiek<EMAIL_ADDRESS>related: #153

@scanf please take a look. Should I split this PR into several smaller ones (one per package?). Or is that fine?

@scanf thanks, will do

@scanf done, please re-review


Prevent users defining custom encryption keys

Currently the data doesn't actually exist in the backend until the template Activities are edited. Meaning the given user ID and encryption key pair aren't enforced and users could submit their own encryption key. Combined with data expiring over time this could allow for malicious behavior, with known but expired user IDs being taken over with new encryption keys.

To counter the bloat of random page visits creating new Users we can define a shorter data expiry for unedited Users (e.g. 30 days)


Packet Tracer 8 does not launch on sway (nixos-22.05)

Describe the bug
When I launch packettracer8, packaged in nixos, this is what I get:
[nix-shell:~]$ packettracer8
Fatal: This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: linuxfb, xcb.

[nix-shell:~]$

Steps To Reproduce
Steps to reproduce the behavior:

Use sway
Launch packet tracer

Expected behavior
Packet tracer launching.
Notify maintainers

@lucasew
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.64, NixOS, 22.05 (Quokka), 22.05.2889.67e45078141`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.9.1`
 - channels(root): `"nixos-22.05"`
 - channels(remy): `""`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Its probably a missing Wayland library in the buildInputs
The problem is which Wayland library
Qt software is very tricky sometimes
Em qui., 8 de set. de 2022 08:42, Rémy Grünblatt @.***>
escreveu:

Describe the bug
When I launch packettracer8, packaged in nixos, this is what I get:
[nix-shell:~]$ packettracer8
Fatal: This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: linuxfb, xcb.
[nix-shell:~]$
Steps To Reproduce
Steps to reproduce the behavior:

Use sway
Launch packet tracer

Expected behavior
Packet tracer launching.
Notify maintainers
@lucasew https://github.com/lucasew
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
$ nix-shell -p nix-info --run "nix-info -m" - system: "x86_64-linux" - host os: Linux 5.15.64, NixOS, 22.05 (Quokka), 22.05.2889.67e45078141 - multi-user?: yes - sandbox: yes - version: nix-env (Nix) 2.9.1 - channels(root): "nixos-22.05" - channels(remy): "" - nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos
—
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/issues/190314, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADXXO6D47PTXYW7V7LEXU3TV5HGJ3ANCNFSM6AAAAAAQHU4YBQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Is XWayland enabled there?
AFAIK PacketTracer doesn't work natively with Wayland
https://search.nixos.org/options?channel=22.05&show=programs.xwayland.enable&from=0&size=50&sort=relevance&type=packages&query=xwayland

Is XWayland enabled there?
AFAIK PacketTracer doesn't work natively with Wayland

Xwayland is enabled, I'm not sure how to check if it actually uses it.
Here is an excerpt from my configuration regarding the graphical envs:
  xdg = {
    autostart.enable = true;
    portal = {
      enable = true;
      wlr = {
        enable = true;
      };
      gtkUsePortal = true;
      extraPortals = with pkgs; [
        xdg-desktop-portal-wlr
        xdg-desktop-portal-gtk
      ];
    };
  };

  programs.sway = {
    enable = true;
    wrapperFeatures.gtk = true;
    extraPackages = with pkgs; [
      wl-clipboard
      dmenu
      alacritty
      swaylock
      waybar
      flameshot
      wdisplays
    ];
    extraSessionCommands = ''
      export MOZ_ENABLE_WAYLAND=1
      export MOZ_USE_XINPUT2=1
      export XDG_SESSION_TYPE=wayland
      export XDG_CURRENT_DESKTOP=sway
      export SDL_VIDEODRIVER=wayland
      export _JAVA_AWT_WM_NONREPARENTING=1
      export QT_QPA_PLATFORM=wayland
      export XDG_SESSION_DESKTOP=sway
    '';
  };

  programs.xwayland.enable = true;

Xwayland seems is broken for me in 21.05 as well, when using sway. Same over here.


ARROW-4030: [CI] Use travis_terminate in more script commands to fail faster

I had done this partially in ARROW-3803, but I reviewed again and tried to apply this more consistently.
Note it is not necessary to use this in the last command in the script: block

Codecov Report

Merging #3226 into master will increase coverage by 20.11%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master    #3226       +/-   ##
===========================================
+ Coverage   68.06%   88.17%   +20.11%
===========================================
  Files         422      535      +113
  Lines       52703    72637    +19934
===========================================
+ Hits        35870    64048    +28178
+ Misses      16730     8482     -8248
- Partials      103      107        +4

Impacted Files
Coverage Δ

go/arrow/math/int64_avx2_amd64.go
0% <0%> (-100%)
:arrow_down:

go/arrow/memory/memory_avx2_amd64.go
0% <0%> (-100%)
:arrow_down:

go/arrow/math/float64_avx2_amd64.go
0% <0%> (-100%)
:arrow_down:

go/arrow/math/uint64_avx2_amd64.go
0% <0%> (-100%)
:arrow_down:

go/arrow/memory/memory_amd64.go
28.57% <0%> (-14.29%)
:arrow_down:

go/arrow/math/math_amd64.go
31.57% <0%> (-5.27%)
:arrow_down:

cpp/src/parquet/thrift.h
100% <0%> (ø)
:arrow_up:

go/arrow/math/float64_amd64.go
33.33% <0%> (ø)
:arrow_up:

go/arrow/math/int64_amd64.go
33.33% <0%> (ø)
:arrow_up:

cpp/src/gandiva/expression_registry.h
100% <0%> (ø)
:arrow_up:

... and 280 more

Continue to review full report at Codecov.

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

+1


Add 2nd newline license text and header text when generating licenses

See the related issue for a description of the additional formatting being requested: https://github.com/spdx/license-list-data/issues/16

Moved to https://github.com/spdx/LicenseListPublisher/issues/14


Flight link is broken

https://jxnl.github.io/flight is referenced in index.md which is a broken link

Fixed. Thank you.


Update jwt lib

Update JWT lib to version 5. https://github.com/golang-jwt/jwt/releases/tag/v5.0.0
github.com/golang-jwt/jwt/v5

In version 5, the JWT parser has options to verify issuer and audience (I think, this is similar to version 3 and unlike version 4). That implies that, if the claims for the jwt access control block are to be evaluated per request, each request must have its own parser instance (with parser options set in NewParser()).

Yes, we had that before. Can we disable that built-in lib behavior and implement the same checks from our eval context?

Von: Johannes Koch @.>
Gesendet: Wednesday, September 20, 2023 5:44:31 PM
An: coupergateway/couper @.>
Cc: Subscribed @.***>
Betreff: Re: [coupergateway/couper] Update jwt lib (Issue #769)
In version 5, the JWT parser has options to verify issuer and audience (I think, this is similar to version 3 and unlike version 4). That implies that, if the claims for the jwt access control block are to be evaluated per request, each request must have its own parser instance (with parser options set in NewParser()).
—
Reply to this email directly, view it on GitHubhttps://github.com/coupergateway/couper/issues/769#issuecomment-1727982967, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAD3OQX4TD72AOGONUJDUYDX3MFN7ANCNFSM6AAAAAA4ZY5XRM.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Can we disable that built-in lib behavior

It's not enabled by default. You can add a specific parser/validation option to the slice of options.

and implement the same checks from our eval context?

I don't like copying the lib code to our code.
There is a validator struct handling the claim validation, which

is intentionally not exported (yet) as we want to
internally finalize its API. In the future, we might make it publicly
available.

Even if it were, newValidator() also creates a new parser with the specified options:
func newValidator(opts ...ParserOption) *validator {
	p := NewParser(opts...)
	return p.validator
}

Anyway, both Parser and validator structs are not heavy-weight:
type Parser struct {
	// If populated, only these methods will be considered valid.
	validMethods []string

	// Use JSON Number format in JSON decoder.
	useJSONNumber bool

	// Skip claims validation during token parsing.
	skipClaimsValidation bool

	validator *validator

	decodeStrict bool

	decodePaddingAllowed bool
}

type validator struct {
	// leeway is an optional leeway that can be provided to account for clock skew.
	leeway time.Duration

	// timeFunc is used to supply the current time that is needed for
	// validation. If unspecified, this defaults to time.Now.
	timeFunc func() time.Time

	// verifyIat specifies whether the iat (Issued At) claim will be verified.
	// According to https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6 this
	// only specifies the age of the token, but no validation check is
	// necessary. However, if wanted, it can be checked if the iat is
	// unrealistic, i.e., in the future.
	verifyIat bool

	// expectedAud contains the audience this token expects. Supplying an empty
	// string will disable aud checking.
	expectedAud string

	// expectedIss contains the issuer this token expects. Supplying an empty
	// string will disable iss checking.
	expectedIss string

	// expectedSub contains the subject this token expects. Supplying an empty
	// string will disable sub checking.
	expectedSub string
}

So it might be ok to create a parser/validator with each request, no?

So it might be ok to create a parser/validator with each request, no?

We should revisit this topic while working on this issue. I would like to see a benchmark for this and also to think about some object pooling to reuse the parser somehow.


[stable/postgresql] Use lo address instead of POD_IP in readiness & liveness probe

This makes the liveness and readiness probes run pg_isready against localhost instead of the pod IP.
I'm trying to run PostgreSQL within a cluster with Istio enabled (with mTLS), which causes the Postgres chart to not work (as istio intercepts requests to the pods IP address).
Whilst it isn't this charts concern that Istio has shortcomings, I'm also not sure what value this really brings (aside from building a test for whether Postgres is listening on all addresses, I suppose).
It'd be great if this could be changed as it'd save me having to fork this whole chart for a 2 line change!

cc @swordbeta @databus23

We specifically changed the readiness check to use the POD_IP instead of localhost to circumvent a startup problem with the official postgresql chart. See https://github.com/kubernetes/charts/pull/318#issuecomment-273618867 for more details.
Changing it back to localhost would reintroduce the problem where a database pod becomes ready during startup briefly before it is shut down again, possibly while initial migrations of on application have already started running.

Thanks for the clarification.
We're not using the initial seeding functionality of the upstream docker
image and have thus have not noticed this!
It's annoying that has to be the case - as mentioned previously, some other
port or bind address would have been ideal, but obviously outside the scope
of the chart 😬
This does make using pgsql via helm problematic with Istio. Does the helm
project in general have strategies for dealing with these kinds of minor
tweaks? Is the only solution to surface more configuration options via
values.yaml?
On Tue, 20 Feb 2018 at 08:36, Fabian Ruff<EMAIL_ADDRESS>wrote:

We specifically changed the readiness check to use the POD_IP instead of
localhost to circumvent a startup problem with the official postgresql
chart. See #318 (comment)
https://github.com/kubernetes/charts/pull/318#issuecomment-273618867
for more details.
Changing it back to localhost would reintroduce the problem where a
database pod becomes ready during startup briefly before it is shut down
again, possibly while initial migrations of on application have already
started running.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/charts/pull/3753#issuecomment-366904035,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMbP0ru3tn93kerqqiBA4nrHOt51mueks5tWoQZgaJpZM4SIkOF
.

Should we close this?

Yep I'm no longer persuing this!
/close
On Fri, 11 May 2018 at 09:02, Reinhard Nägele<EMAIL_ADDRESS>wrote:

Should we close this?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/charts/pull/3753#issuecomment-388291783,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMbPweWhrks_OEu-wzifLIpLTqta4Snks5txUWUgaJpZM4SIkOF
.


deleting storage node redirects to compute nodes

after deleting a storage node it should redirect to storage nodes page not compute page

verifiying this

Verified
Branch
development
Commit
18f3c421b1e6d297060483663e16884d7d0c6257


Allow plugins to extend the CLI

I’d like to be able to write functions/methods in a plugin that could be called with:
kirby pluginname:command [params]

Use case: I’d like to add CLI support to the StaticBuilder plugin.
See: https://github.com/fvsch/kirby-staticbuilder/issues/4
Maybe something as basic as looking for a $kirby->roots()->plugins() . DS . $pluginname . DS . 'cli.php' file for unknown command prefix (or namespace or however it’s called, I mean the part before the colon)? And specifying how it should be written, maybe like:
<?php // site/plugins/myplugin/cli.php

namespace Kirby\Cli;

class MypluginSomethingCommand extends BaseCommand {
  protected function something() {
  }
}

I just skimmed the cli source, not sure what would make sense.

It would probably mean more stuff in the CLI and Bastian don't have to do everything.
+1


Update Garden Linux SELinux module

What would you like to be added:
The Garden Linux SELinux module needs to be updated with new rules to solve the current avc messages.
Why is this needed:
New versions with new features create new avc messages.

Fixed by https://gitlab.com/gardenlinux/gardenlinux-package-gardenlinux-selinux-module/-/merge_requests/12


format.rb throws an error if anything other than a string is passed to it

Hello,
I was experimenting with your gem when I noticed an issue. It appears that any when a schema specifying a format is passed a non-string value, then it will throw an exception. Code to repeat:
require 'json_schemer'
schema = {"format"=>"email" }
data = []
JSONSchemer.schema(schema).validate(data)

I will create a PR to address it. Let me know if you can merge the fix and push it out?
Thank you!
P. S. it looks like the test suite has not been pushed up. Getting:
Unable to checkout '2146b02555b163da40ae98e60bf36b2c2f8d4bd0' in submodule path 'JSON-Schema-Test-Suite'

@aaronFranssell I just opened a PR that should address this issue: https://github.com/davishmcclurg/json_schemer/pull/4
Take a look and let me know if you see any issues with the approach.

@davishmcclurg Looks good! Thank you for taking care of this!

Pushed 0.1.5 to fix this issue


consolidated benchmarks execution into python app

Another required step for implementing benchmarks into mina codebase. This PR is implementation for step unify all benchmarks in code in https://github.com/MinaProtocol/mina/issues/16003.
Currently benchmarks are too diverse in form of output format. As a result I implemented wrapper python script which provides unified interfaces when dealing with mina benchmarks. see Readme.md for more information

!ci-build-me

!ci-build-me

!ci-build-me

!ci-build-me

!ci-build-me

!ci-build-me

!ci-build-me

!ci-build-me

!ci-build-me

@deepthiskumar We described our vision in this document:
https://www.notion.so/o1labs/Benchmarks-revisited-b3b42b11ae2347328e72dd139cdd106a
Therefore i will post short answers only

is moving average a good measurement here? We want to alert on spikes/troughs, right?
This is debatable as moving average has it's pros and cons.

Using moving average in influx db is very simple and does not need any threshold mechanism. We don't need to store additional value for threshold which need to be bumped if increased test duration is expected. Moving average will keep up with new values. However, if the increase is very small but stable, then tests can overlook this and we won't be alerted. Still, possibility of such behavior IMHO is very low that such regression can sneak. Usually we will observe spikes which will be caught easily.
We can discuss it in broader circle. However, i would recommend to start with moving average as this is simplest solution. We can switch to threshold based if our experience will be poor.

Could you add some blurb about why influx DB? It doesn't seem like we are going to record much data

Influx DB is already used by former o1js team. We already have a infrastructure and ready integration influxdb -> grafana. We can also use existing team experience. We are also planning to expand performance metrics (maybe for load test too), so data volume will increase

Additionally, some code comments would be good, especially in scripts/benchmarks/lib/

Sure thing. I will add them

!ci-build-me

!ci-build-me

!ci-build-me

!ci-nightly-me


How to use it for iphone

i can't built it for iphone-os,can you help me?
xcode give me a Warning:
ld: warning: in /Users/username/Projects/ProjTest/SuperDemo/Trunk/Test2/libzmq.a, file was built for unsupported file format which is not the architecture being linked (i386)
Thanks

I ran into the same thing.  easiest way around it is to pull these source files into your ios project and build alongside your ios app.  there are only a few files in this project, so it's really really straightforward that way.

Doesn't it also mean compiling libzmq for the iPhone?  ZMQSocket.h imports zmq.h.

yes, but if you use hombrew to install zmq, then that work has already been done for you.  just locate libzmq and link to it in your xcode project.
One gotcha -- you may have to use "brew install zmq --universal" (or somesuch) in order for it to pack a fat binary version of the library so it'll work with i386 as well as x86_64.

Nice to know.  I've been meaning to try homebrew.  However, the iPhone needs the lib to be built for arm7 (i386 will work on the simulator).  Not having used homebrew I'm guessing it doesn't do that (I'm off to the homebrew web site now, though).

@cswank any luck?


Integrate EventCalendar visualization type with engagements populated in database

Overview
Show engagements populated in database in the redash. Show today's events always with the ability to switch to different views such as month, week or day. Try to show a tooltip kind of UI for showing more information on events.

The fullcalendar cannot be used to fulfil the custom requirement. So closing this ticket.


Implement "My Trades" on the frontend

Closes #156
This PR does a few things, outside of implementing the page:

moves some of the logic in the /sell page into reusable components and hooks so that they can be reused here and other places if we want similar UI for future tasks.
moves the CardflowTabs component in its own standalone component (as well as making the trade button functional).

New hook and component
A new hook, useSelect, has been introduced to abstract away the logic related to the checkboxes in the first cells of the table rows.
A new component, ActionsMenu, has been introduced, which is basically the menu with buttons found at the bottom of the page. Through a configuration array, you can generate it without having to write markup at all, which should make it easier to reuse if we need another page like this in the future
My Trades page
The page works similarly to the /sell page; once the user navigates in, it retrieves a paginated list of trades and renders them.
An important distinction, though, is that the checkbox on the left of each trade is disabled if the trade has ended. In addition, when pressing an "All" action, the client won't bother sending requests for those trades (since it'd be pointless). Other parts of the UI, likewise, take into account the disabled status (e.g. when counting the amount of selected trades)
Note: it seems like the ordering on the backend is inconsistent; when I update a trade's status, the trades aren't in the same order after I refetch them. Not gamebreaking, but probably worth adding to the backlog at least

LGTM!
About the inconsistent ordering - I'll need to think about that because it also looks like a feature :D because it would always put the item that you updated first.


Relation Types for complex opt-in lazyloaded type nesting

The current join logic is currently limited to a reverse lookup field-by-field relation as:

[<Table("SubFact", Contexts.PSQL)>]
type SubFact =
    {
        factId : int64
        subFact : string
    }

[<Table("Fact", Contexts.PSQL)>]
type Fact =
    {
        [<On(typeof<SubFact>, "factId", JoinDirection.Left, Contexts.PSQL)>]
        id: int64
        [<ByJoin(typeof<SubFact>, Contexts.PSQL)>]
        subFact : string option
    }

which is extensible enough to allow specific fields to be brought into a type, but only in a flat manner. Ideal functionality would allow something like:
type SubFact =
   {
       factId : int64
       subFact : string
   }

type Fact =
   {
       id: int64
       subFact : SubFact option
   }

and
type SubFact =
   {
       id : int64
       subFact : string
   }

type Fact =
   {
       id: int64
       subFactId : int64
       subFact : SubFact
   }

(with what ever attributes and options would be appropriate in the specific context)
Additionally, the current running discussion aims to provide the given functionality in a wrapped relation type, which would carry both the related keys as well as the resulting nested type in one field (which would be more syntactically congruent with the goals of FORM), i.e. we would have something like:
type SubFact =
   {
       id : int64
       subFact : string
   }

type Fact =
   {
       id: int64
       subFact : Relation<int64, SubFact>
   }

Which should be perform well in the current FORM architecture.
In order to capture n-key relationships, I think the Relation type will need to have a primary type arg that is list-like, with arbitrary primitively type elements (e.g. [int64, int, string, string, decimal]); the second argument will always refer to another record type that is to be constructed. @Zalarian has also suggested having a sort of recursive tree like structure wherein Relation would be of the form:
type Relation<^S> =
    {
        id : RelationshipCell
        value : ^S option
    }

where the RelationshipCell would be:
type RelationshipCell =
    | Leaf of SqlValueDescriptor // int, string, etc
    | Node of SqlValueDescriptor * RelationshipCell

which could provide the same functionality to the user of FORM, but it is unclear if this solution will be more or less efficient at compile and run time than the former. In general, it would be desirable to be able to have something like:
type SubFact =
   {
       [<PrimaryKey(Order=1)>]
       int64id : int64
       [<PrimaryKey(Order=2)>]
       stringId : string
       [<PrimaryKey(Order=3)>]
       intId : int
       subFact : string
   }

type Fact =
   {
       id: int64
       subFact : Relation<int64 * string * int, SubFact>
   }

where the Key type parameter of the relation could be an n-tuple, we would need to investigate if unpacking this tuple would be a problem. This could be leveraged to avoid needing to define the foreign keys for SubFact in Fact (as shown) while still being able to allow Form to infer that they must exist in the output sql, something like:
select int64Id, stringId, intId, subFact from SubFact join Fact on {join list per above}
where Fact.id in ({list of Fact ids we are loading the relation for})

This would have the benefit of being able to load the subFact relation values for a sequence of Facts, instead of having to load them one at a time (though, how would we handle the ordering of the result set?).
We would probably need a new attribute to accompany this, which would take a list of columns as they exist in the Fact table (or tuple, if that will work) of the same order of the key type parameter for the relation:
type Fact =
    {
        id: int64
        [<Relation(FKColumns = ["subFactInt64Id"; "subFactStringId", "subFactIntId"])>]
        subFact : Relation<int64 * string * int, SubFact>
    }

If I recall, attributes can be picky about what arguments we pass to it, I don't remember if they can take lists or not. If they can't, then we may have to define the columns on the Fact type like:
type Fact =
    {
        id: int64
        [<ForeignKey(typeof<SubFact>,Order=1)>]
        subFactInt64Id : int64
        [<ForeignKey(typeof<SubFact>,Order=2)>]
        subFactStringId : string
        [<ForeignKey(typeof<SubFact>,Order=3)>]
        subFactIntId : int
        subFact : Relation<int64 * string * int, SubFact>
    }

This at the very least should give us everything we need to define arbitrary relationships between types and generate the necessary sql in FORM while abiding by the same usage levels of reflection that currently exist, though having to use this level of specificity would be less than optimum.

@Zalarian add ur thoughts

We don't want to stray too far from the relational modeling.
This shouldn't be the target
type SubFact =
   {
       factId : int64
       subFact : string
   }

type Fact =
   {
       id: int64
       subFact : SubFact option
   }

This should
type SubFact =
   {
       factId : int64
       subFact : string
   }

type Fact =
   {
       id: int64
       subFact : SubFact seq option
   }

Relational models should be in 3NF so a table should have the keys and all associated data stored together. For poorly-normalized datasets, we can keep/modify the current design
[<Table("SubFact", Contexts.PSQL)>]
type SubFact =
    {
        factId : int64
        subFact : string
    }

[<Table("Fact", Contexts.PSQL)>]
type Fact =
    {
        [<On(typeof<SubFact>, "factId", JoinDirection.Left, Contexts.PSQL)>]
        id: int64
        [<ByJoin(typeof<SubFact>, Contexts.PSQL)>]
        subFact : string option
    }

to allow for constructing a flat record from disparate tables; however, that kind of design is antithetical to conventional relational modeling.
I think the best way to model this would be to have a record-level join attribute that takes the type of join -- left, right, inner, outer -- and the type that it's supposed to map to. Then, for each field that composes the foreign key, define an "On" attribute that contains the type it's mapping to, a key identifier, the order of the field in the key (important for properly utilizing indexes), and a PropertyInfo instance that comes from the child type.
One thing I'm not sure about is if the hydrated field's type needs to be a ^T seq option or a Relation< ^T >. And, if it's a Relation< ^T >, if we should even declare the foreign key as a field in the record in the first place. We would also have to introduce another attribute to pass the correct constructor parameters to the Relation type.
[<Table("SubFact", Contexts.PSQL)>]
type SubFact =
    {
        (*This composite key could be a primary or not. Maybe there's multiple for each key.*)
        subFactId1 : int64
        subFactId2 : string
        subFact : string
    }

[<Table("OtherFact", Contexts.PSQL)>]
type OtherFact =
    {
        otherFactId : DateTime
        otherFact : string
    }

(* For ^T Seq *)
[<Table("Fact", Contexts.PSQL)>]
[<Join(typeof<SubFact>, Left)>]
[<Join(typeof<OtherFact>, Inner)>]
type Fact =
    {
        id: int64
        [<On(typeof<SubFact>, 1, 1, JoinDirection.Left, propertyInfo<SubFact.subFactId1>, Contexts.PSQL)>]
        subFactId1 : int64
        [<On(typeof<SubFact>, 1, 2, JoinDirection.Left, propertyInfo<SubFact.subFactId2>, Contexts.PSQL)>]
        subFactId2 : string
        [<ByJoin(typeof<SubFact>, Contexts.PSQL)>]
        subFact : string option
        [<On(typeof<OtherFact>, 2, 1, JoinDirection.Inner, propertyInfo<Other.otherFactId1>, Contexts.PSQL)>]
        otherFactId1 : DateTime
        (* This could SIGNIFICANTLY complicate the attributes and the join logic *)
        [<ByJoin(typeof<SubFact>, EvaluationStrategy.Lazy, Contexts.PSQL)>]
        otherFact : OtherFact seq option
    }

(* For Relation< ^T > *)
[<Table("Fact", Contexts.PSQL)>]
...
[<Join(typeof<OtherFact>, Inner)>]
type Fact =
    {
       ...
        (*
        Would this even be necessary? It exists in the table, and the Relation type could take a
        string to identify the field in the "Fact" table.
        *)
        [<On(typeof<OtherFact>, 2, 1, JoinDirection.Inner, propertyInfo<Other.otherFactId1>, Contexts.PSQL)>]
        otherFactId1 : DateTime
        [<RelationParams(EvaluationStrategy.Strict, Context.PSQL, state)>]
        otherFact : Relation<OtherFact>
    }

To my knowledge, there's no good way to directly get the PropertyInfo by calling Type.Field. I would love to find a way to support that because then there would be compile-time verification of the fields.
Due to wanting to support lazy-loading of the child(ren), I am leaning towards the Relation type because we can encapsulate the loading logic there and not clutter the existing API with it.
For the tree structure, while it's theoretically elegant, I think working with it ( and writing it all out ) will be a pain and would like to avoid it if possible.


Add LEDC duty-cycle fading support

This code may work for other chips as well; I haven't read their reference manuals.  For now it's feature-gated to just the c3.
And without interrupts it's hard to tell when a fade has finished (for example to start another), but it seems like a reasonable start to me.

Fixed rust formatting.  Not completely sure what's up with the xtensa run, though.  If that fails again I'll keep digging.

Looks like a great start. Would be nice to have examples and look into supporting also other chips as well

I've gotten a chance to read through the reference manuals for the other chips.  Looks like all of them work the same way except the -c6, which has a bunch of gamma curve support in the fading.  That's nice (and I wish it was available in the C3 that I'm able to get ahold of), and might be good to support in the future, but I think just setting up a single gamma segment if the C6 feature is present is the right way to go for this.  It may be a while before I can get to that but we'll see.
But there's something I'm less sure of.  Maybe it makes sense to have this whole API be async from the beginning?  I see a lot of complication around feature flags for async-ness in the rest of the HAL; is that because those APIs existed first as a sync variant, and so changing to async needs to be done carefully?  Or is there another reason to make this sync from the first time it's available?
I'm thinking of installing a global interrupt handler to set a flag, and using that with async/await (...somehow; I haven't fully figured out how it would work) to let the future know the fade is done.  WDYT?

Awesome you took the time to read through the TRMs - would be great to get this supported!
Regarding async: Having async support in addition would be awesome however we should always provide sync and optionally async APIs but never only async APIs since a sync API (to some extend) can be used in async code (by using callbacks, interrupts etc.) but the other way around is much harder and hackier if possible, at all
Another reason why async is feature gated is: if possible, we implement traits from embedded-hal-async but that is in alpha
I totally agree, that supporting sync and async APIs currently require a lot of duplicate code. Not sure if keyword-generics will really solve this in future

I'm thinking of installing a global interrupt handler ...

Maybe I'm misunderstanding but the HAL shouldn't do that "behind the scenes". For now, we should do it like the existing async-drivers (e.g. https://github.com/esp-rs/esp-hal/blob/e01a569c69f1254a1420ba8b699c2a6080adea3d/esp32c3-hal/examples/embassy_wait.rs#L77-L82 ) where the interrupt handler is defined in the HAL (but feature gated!) but enabling the interrupt is still the user's responsibility. Probably a convenience function to do that is also a good idea but at least it should be an explicit step (for now)
In that interrupt handler you can directly wake the waker for async (like done here: https://github.com/esp-rs/esp-hal/blob/e01a569c69f1254a1420ba8b699c2a6080adea3d/esp-hal-common/src/gpio.rs#L1942)

OK, let's see if that compiles for the xtensa chips.  Hopefully github still runs the workflows (I don't have the xtensa rust fork easily available locally ... I'll have to get it if the workflows don't trigger).

OK, no async support in this rev, but everything else is there.  Mind looking once more?  Thanks!

And oh, right, I forgot to mention this -- I don't have access to any of the ESP chips anymore, for the next couple of months.  I think the interrupt flags work the way I'm expecting (they get set regardless of whether the interrupt is mapped through the interrupt matrix to the CPU and handled), but I could be wrong on that.  If running this on an actual device that has GPIO 4 connected to an LED, flips back and forth between 0 and 100 but doesn't actually fade, then this might be the reason, and is_duty_fade_running() will need some changes.

Maybe it's just me but I tried the ESP32 and ESP32-C3 example without any success. (The LED doesn't light up at all
Also, in development mode I get this (on ESP32-C3)
!! A panic occured in 'C:\projects\review\kadzban\esp-hal\esp-hal-common\src\ledc\channel.rs', at line 770, column 33

PanicInfo {
    payload: Any { .. },
    message: Some(
        attempt to subtract with overflow,
    ),
    location: Location {
        file: "C:\\projects\\review\\kadzban\\esp-hal\\esp-hal-common\\src\\ledc\\channel.rs",
        line: 770,
        col: 33,
    },
    can_unwind: true,
}

Well, I don't even have to read the channel.rs:778 code to know what that panic is from: it's the end-start subtraction, when the fade is going in one of the two possible directions.  It needs to figure out an absolute value.
And after looking at the code, I see another bug in that area too, in the while loop's condition.  That's probably what causes the LED to not light up in release mode.  (Certainly the u32 overflow isn't working right in release mode ... I haven't thought all the way through what the hardware would do, but I bet it's the reason.)
Fixed both of those.

Thanks for the fix
A quick test on ESP32-C3:
The LED lights up at 100% and stays there. I see the while loops end really, really quick
I understand this might be hard to debug without access to hardware

I assume you mean that the is_duty_fade_running while loop is exiting quickly, right?  There is one more inside start_duty_fade! ... but it's intended to exit after only a few iterations.  So I suspect you meant the one calling is_duty_fade_running.
Do you happen to have an oscilloscope that you could hook up to the LED output?  Is it flickering off for a short time, by any chance, or is it on 100%?
I guess the other question is, is the code programming some wrong values into the duty-cycle-fading registers that makes the fade-complete interrupt trigger immediately, or is the interrupt status bit working in some way I don't expect.  Can you tell if the is_duty_fade while loop is running even twice?
So with a 5-bit duty-cycle resolution (32 values), a fade from 0 to 31 over two seconds would wait around 62-63 milliseconds per value (1/16th of a second).  The code calculates a value of 2048 of the 24kHz overflow rate, which comes out to about 85ms.  That's not that far off, especially considering it then only counts up 23 of them instead of 32.
(...That actually points out a shortcoming of that while loop in the start_duty_fade! macros.  It only picks powers of 2 ... doing some integer division should be both constant-time, and more accurate.  I'll have to work through what to divide out to get the right values out, but the target here is somewhere around 1550 instead of 2048, and 31 instead of 23.)
But that indicates the register values might be fine, and maybe it's the interrupt bit that doesn't work right.  :-/  I might have to register an interrupt handler even without the async support, just to know when the "sync" version is finished.  (It's async in the hardware either way...)

Ok I took some time to experiment with it a bit.
Looking at the signal with a logic-analyzer revealed the duty cycle is indeed changing but too fast for the human eye to notice.
I changed the frequency to 100u32.Hz() and can see some "pumping" when changing the 2000 to 20000
Seems the lowest it goes to is a duty-cycle of 3% (from 100 to 0)
So, the duration_ms apparently isn't ms

That 3%-instead-of-0% is probably a result of the while loop going a full power of two each time; it doesn't end up at quite the right final count to get all the way to the zero that the code asked for.  Fixing it to be a plain division ought to sort that out too.
The speed of duty-cycle fading should be independent of the frequency, or at least that was my intention.  I wonder whether changing the duration without changing the frequency would have had the same effect ... but don't bother testing it; I think either changing the loop to an explicit division is likely to improve things, or the bug is a missing factor somewhere in the whole calculation (i.e. I misunderstand something in the reference manual).
I wonder if setting a duration of 32000 ms would result in a one-second fade?  (I wonder if I'm just off by a factor of the 32 steps of PWM resolution, somewhere?)
Sadly I've also lost access to the local git repo where I was working on further changes for a while (hopefully only a couple days, we'll see), so I can't easily push another commit to my fork.  I'll get to it, it just might be a bit.

OK, I hope this changes things.  It should certainly fix the 3% instead of 0% issue, but I'm not sure if it will sort out the duration correctly.
Assuming it passes the workflows, give it a try.  I've renamed a bunch of the variables so I could keep it more clear what they were.  If it's still a too-short fade duration, I'd be interested to find out whether it's off by a factor of exactly 32, or 10, or if you can even tell for sure.  (Maybe the logic analyzer could help?)  Also, I'd be interested if it's possible to tell whether it's running too short of a time between steps (and so the number-of-overflows-between-duty-cycle-increments is too small), or if it's running too few steps overall.  Or, actually, if it's incrementing the duty value by too much each step; that's possible too.
Thank you again for doing the remote debugging!  :)

Already looks better - at least on ESP32-C3 there is now a visible fade effect.
Looking with the LA the full fade (fade-in and fade-out) is approx. 725556 ns when passing the 2000ms in.
With 1000ms it is 600629 ns
With 3000ms it is 1027 µs

That's odd - I would expect the result to be linear with the passed-in duration, and I'd expect the line to go through the origin (that is, a 0 duration_ms seems like it should result in a zero length fade, even if the factors are all wrong). The 2000 and 3000 cases line up with that fairly well (725 * 1.5 is 1088), but the 1000 case definitely does not.
Well, maybe more info would help. Can you post an image of the logic analyzer's capture of the 2000 or the 3000 run, or both? From the calculations I'm doing, at 2000, the LEDC is supposed to run 1548 on/off cycles (at 41.6667 microseconds each, i.e. 1/24000Hz) at each of the 32 possible duty cycle values that the 5-bit resolution provides. Clearly it's not doing that if the run finishes in 360-whatever milliseconds instead of 2 seconds, but I wonder how many cycles it does run at each of the 32 values. Or if somehow it's doing an increment of 1548 and only doing two on/off cycles, or something weird like that.
I do see something odd though: when setting the duty cycle field in the non-fade case, I've just realized that the code is shifting the calculated lpoint value left by 4 bits for some reason. I don't see why lpoint should be multiplied by 16 though ... but that might be at least part of the issue. Do you know where those 4 bits are coming from? Is the clock somehow 16x faster than it looks from the timer.rs code?
Thanks again!

captures.zip
Here are three captures in Saleae 2.4.7 format. It's only one full cycle (fade-in / fade-out) for each 1000ms, 2000ms and 3000ms

So I've pulled down the demo version of Saleae's UI.  The 2000.sal file is showing nothing happening except one dip from 1 to 0, then back to 1 at 250ns later, starting at about 337ms.  It stays at 1 until a 121us dip to 0 at ~519.5ms.  After that it starts to do some PWM; the first cycle starts at 519.65275us.  It almost looks like it's fading from 100% to 0% first, and the 121us dip is when the code first sets the duty value to zero when the channel is initialized?  Maybe that doesn't matter much though.
The overall oscillation is definitely switching between a 41.5us and 41.75us period, which lines up pretty well with the expected 41.66667us period from 24kHz, and the reference manual's description of how the fractional divisor works.  So at least that's set up right.  1/32 of that (the expected PWM resolution) is 1.29 or 1.3 microseconds, and the logic analyzer is showing a dip-to-zero that's 1.25 microseconds wide for the first duty step, so that lines up relatively well too (I will naively assume the difference is the logic analyzer's sample rate; everything appears to happen at a quarter-microsecond boundary).
The issue appears to be that the high time changes from 40.25/40.5 microseconds, to 39/39.25 microseconds, starting at 541.4885ms into the capture.  That means the first duty-cycle is effective for 21835.75us, or ... 524 iterations (if I assume the averaging works out to 41.66667us).  I expect 1548 iterations, so that's around 1/3 what it should be.  And the last one-to-zero drop happens at 1196.5215ms, for a total fade-out time of 677us, which is 31 steps, so that's pretty close.  (If we add an all-ones step or all-zeros step at one end or the other, which the LA won't show, we'll get the expected 32 steps.)
But 1/3 is a weird factor to be off by.
I'll have to see what else I can find.  Just updating here to explain what I've found so far.

Well there's the problem.
Looking at the difference between 524 and 1548, instead of the ratio, comes out to 1024 - and that does look like a suspicious number.
And, aha, the duty_cycle, duty_num, and duty_scale fields in the LEDC's conf1 register are only 10 bits wide, not 16, so the value the code is writing is getting truncated at ten bits - losing the 1024 from the eleventh bit. (And possibly messing with the bottom bit of the duty_num field, depending on the code generated by svd2rust.)
So there's a max of 1024 repetitions of any particular duty cycle - and the scale field has a min of 1, so with a 5-bit resolution timer, the max overall duration is 32767 cycles, or about 1.3 seconds.
That doesn't explain the 1000ms duration run, but I'll have to look closer at its logic analyzer trace to see if I can find anything wrong.
I also figured out the 4 bit shift - re reading the reference manual showed that those bottom 4 bits are used for a fractional duty cycle (some cycles use duty n, others use duty n+1). There's nothing indicating the same behavior for the conf1 fields used to do the fading.
It'd be nice if the type system could prevent the problems with too large durations (alternately, too small resolution, or too high frequency). Or if a couple of the bits in the scale register could be applied to the bottom 4 bits of the duty register to set a fractional lpoint; having a scale of 1/4th would mean changing the duty cycle 4x as frequently to keep the same overall duration, which works fine for 2s.
But I'm thinking I'll have to change those 65535 checks (and try_from / unwrap_or) to check against 1023 instead. At that point it might be best to add another couple of variants in the error enum, as well. It may take a bit to get those pushed but we'll see.

Yeah, just got a chance to look at the 1000.sal file, and the "down" fade runs from 461.431ms to 1461.251ms, or just shy of one second. So it looks to me like that duration is pretty close to the intent - am I missing anything?

I think that should fix it.  The examples now run a 1-second fade down, then 1-second fade up; they also assert that a 2-second fade would return an error.

Would it be better to rebase this onto current head before committing?
Also, would it be better to rebase this set of 12 commits into just one or two, skipping all the broken stages in between?

Great! This now works as intended on all chips except ESP32-C6 - I attached a LA capture
ESP32-C6.zip
I usually squash all commits and rebase. I think squashing this to one or two commits would be definitely a good thing

Reading through the -c6 reference manual again, I see an extra step that its gamma capability requires, that the code probably isn't doing (I think it could be done at channel setup time, but I'm not sure ... it's definitely not happening at duty cycle fade time).
I'll try to add that tomorrow, if I get a chance; hopefully that's all it will need, so you can run one last test, I can squash and rebase, and we can get this support added. :)

Got a chance to add it tonight.  :)  Not sure if you'll look at this on the weekend, but let me know if it still doesn't work right on the -c6.

Thanks for looking into this.
Seems like is_duty_fade_running now always returns true on C6 so it never gets past while channel0.is_duty_fade_running() {} - I also don't see much happening on the pin (33 pulses and then it stays low)

Ok, I'm not sure if that's the only issue, but it's possible. The old code was doing a read-modify-write sequence on the new register to set the count of gamma sequences, but the register contains a bunch of reserved bits, a pair of bits to pause and resume fading (writing a 1 to one or the other of them does the pause or resume), and the bits for the count.
It's not documented what value gets read from the pause and resume bits, but if for since reason the pause bit reads as a 1, then the modify won't change it, and the code will trigger a pause.
So I changed it to call write() instead, and always set the other bits to their SVD default value. Hopefully that was the problem - let me know if it works any differently now, and if it's still broken I'll keep looking at the reference manual.
I am curious if those 33 pulses were all the same duty cycle - did it change at all in that short time?

Unfortunately, this doesn't change anything (besides I only see 28 pulses) - I added the LA capture of running the example without running the fading in a loop
esp32-c6.zip

OK, one more step I missed in the reference manual. Let's see if this last change helps.
Looks like the workflows aren't happy because I didn't add an entry to the change log - looks like it's time for a rebase, since there is no change log file in this branch. :) While I'm working on that, let me know if this makes any difference.

There we go. (I didn't expect to get time to finish the rebase this soon, but here we are.) Let me know if this works.

🚀 this looks good now! Thanks for the effort
I will test on all targets during the day and then it should be fine to merge

Works fine on all tested targets 👍Just one outdated comment - otherwise this should be fine

Sorted out the comment, as well as the conflict in the change log file.
If the workflows pass, I think this looks good too.
Thank you for all the remote hardware testing!


guys, what is this? how can i fix it

second sentence says "the specified file cannot be found"

dont use anything other than alpha num path, you might need to manually edit the config file after you have changed your directory name

dont use anything other than alpha num path, you might need to manually edit the config file after you have changed your directory name

i changed it, now it just won't open, i downloaded lastest version 2.1.1 but still the same issue
please help


Valueof, concat, join and case change methods.

Description 📜
Includes a summary of the important string methods such as valueos,concat ,join, case change methods.
Fixes #6990

Type of change 📝

[ ] Au#dio (Should be in mp3 format Includes speech clarity, Concise ,Low distortion)
[ ] Vi#deo (Animations, screen-recordings, presentations and regular explanatory films are all possibilties etc)
[x] Documentation (Content Creation in the form of codes or tutorials)
[ ] Other (If you choose other, Please mention changes below)

Domain of Contribution 📊

[ ] Android Dev #(Flutter)
[ ] Android Dev #(Java)
[ ] Android Dev #(Kotlin)
[ ] Backend Dev #(Java)
[ ] Backend Dev #(.NET)
[ ] Backend Dev #(PHP)
[ ] Backend Dev #(Python)
[ ] C/#CPP
[ ] Competitive #Programming
[ ] Cyber #Security
[ ] DS#A
[ ] Data#base
[ ] Datascience with #Python
[ ] Datascience with #R
[ ] Frontend Dev #HTML/CSS/JS
[ ] Frontend Dev #React/Angular/Vue
[ ] Go#lang
[ ] Interview #Prep
[x] Java_Domain
[ ] JavaScript_#Domain
[ ] ME#RN
[ ] Machine #Learning
[ ] Open #Source
[ ] Python_#Domain
[ ] Ru#st
[ ] Statis#tics
[ ] UI/#UX

Checklist ✅

[x] I follow Contributing Guidelines & Code of conduct of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I'm GWOC'21 contributor

Screenshots / Gif (Optional) 📸

/assign documentation

/assign documentation

@kashishahuja2002  this issue is already assigned to me and have already raised a pr and completed my documentation under guidance of mentor @sumitaccess007

ok, I will unassign myself.

ok, I will unassign myself.

@kashishahuja2002 - You can still work on Audio or Video part of this topic. Documentation part - @khushali452 is already working on.

@garvitraj what points do I need to work on.....I have worked on changes mentioned by @sumitaccess007 in this commit

@garvitraj what points do I need to work on.....I have worked on changes mentioned by @sumitaccess007 in this commit

its okay


Add an --insecure / -k option to disable SSL certificate verification

When testing https to a test machine that has a self-signed certificate, it is handy to be able to disable certificate verification.
$ http https://<IP_ADDRESS>/test

http: error: SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:547)

vs:
$ curl --insecure https://<IP_ADDRESS>/test
... got what I was expecting here ...

I'm receive this error, but my certificate is valid! any idea? Thanks!

It would be nice if the the utility also accepted --verify=false

@zeknox that is also accepted:
https://github.com/jakubroztocil/httpie/blob/aae596d4724b39d3ad0da0ef4d6a5e7eb98ae418/httpie/client.py#L230-L235
Does it not work for you?


fix: enable karma in every channel

Enables receiving karma in every channel instead of only karma channels. Karma channels should automatically receive upvotes and downvotes reactions but karma should still be rewarded for channels other than karma channels. Honestly, non-karma channels should receive double karma because the upvote effort was twice as big if you'd ask me

:tada: This PR is included in version 3.3.8 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Feature Request: Add archive load failure alert

Request that user notification be added when failing to load/process an archive. Currently SC silently fails to load a corrupt/mislabeled archive with no user feedback making it unclear what went wrong.
Likewise there is no notification when a corrupt image is loaded in an otherwise functioning archive. Typically a blank page is displayed even when the same image viewed in Preview or QuickLook shows the partial image. While less severe than the entire archive failure mode, it can be confusing as some comic archives actually contain blank pages  by design (weird but true in my experience).

Both good ideas.
Honestly the archive handling is the most important, as it is indicative of a much more severe problem.  Namely the Core Data infrastructure is fragile as all hell.  Almost no fallbacks aside from the recursive delete if an archive goes missing.

I'm assuming you can get archive errors/warnings from XADMaster. FYI, XADMaster should be updated  fairly soon for a bug in zip archive handling: https://bitbucket.org/WAHa_06x36/theunarchiver/issues/934/zip-archive-tests-extracts-with-7z-zip


WorldOfDarkness: fix. add STA for 20th Ed.

原作者による2018-11-25版のtest caseを基に書き換えました。

Codecov Report

Merging #137 into master will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master     #137   +/-   ##
=======================================
  Coverage   86.30%   86.31%
=======================================
  Files         192      192
  Lines       22263    22272    +9
=======================================
+ Hits        19214    19223    +9
  Misses       3049     3049

Impacted Files
Coverage Δ

src/diceBot/WorldOfDarkness.rb
98.59% <100.00%> (+0.20%)
:arrow_up:

Continue to review full report at Codecov.

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


Merge KubeVirt e2e tests

What this PR does / why we need it:
After running the e2e tests for KubeVirt, the VM(worker node) will join successfully, however, this would generate a nonfunctioning cluster, due to the fact that, dns is simply broken. This PR configures the DNS for the VM and fixes the cluster.
Which issue(s) this PR fixes (optional, in fixes #<issue number> format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Optional Release Note:

None

/retest


Apply bootswatch theme

Pick one from https://bootswatch.com/. Dune team didn't have any strong preferences. Once implemented it's easy to change later anyway.
See example implementation in settings - https://github.com/ImperialCollegeLondon/QwikApp_web/blob/30f1d3109c3866dac5dafeeb74b92be3e3231f11/qwikapp/settings/settings.py#L210-L223.

Duplicated of #72

Good point @dalonsoa.


Make Mistral tool related enums public

This allows integrations to customize how they serialized

@langchain4j if we could get this in and have it included in a 0.29.1 release, that would be lovely!
Thanks

🙏🏼


Added translations.

Task/Issue URL:
Description
Steps to test this PR
Feature 1

[ ]
[ ]

UI changes

Before
After

!(Upload before screenshot)
(Upload after screenshot)

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#5065  👈
#5064
#5063
#5042
#5019
#5018
develop

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @anikiki and the rest of your teammates on  Graphite


Add NVIDIA Tesla driver version 440.33.01

I'm not sure on what the decision process is on adding new versions of drivers but this appears to compile on my machine.