How this.MANY works for the output CST

I noticed something strange about this:
  body = this.RULE('body', () => {
    this.MANY(() => {
      this.SUBRULE(this.key);
      this.SUBRULE(this.value);
    });
  });

vs
  body = this.RULE('body', () => {
    this.MANY(() => {
      this.SUBRULE(this.keyValue);
    });
  });

  keyValue = this.RULE('keyValue', () => {
    this.SUBRULE(this.key);
    this.SUBRULE(this.value);
  });

In the first case, the output CST results in a case where the keys are grouped into their own array, and the values are then grouped in their own array. While in the second case the key and value are kept within a single key value combination, and then grouped into an array.
I had it the first way first, and tried to create an interpreter for the resulting output cst, but realised that it wasn't going to work because of how the key and value was separated. So I tried to do it the second way instead. But I think it's somewhat non-intuitive that:
this.MANY(() => {
  this.SUBRULE(this.k);
  this.SUBRULE(this.v);
});

Doesn't mean how (kv)* would be interpreted to mean a sequence of kvs, and should give [kv, kv, kv]. But instead right now it's [k,k,k,k], [v,v,v,v].
Another example is:
  value = this.RULE('value', () => {
    this.MANY(() => {
      this.OR([
        {ALT: () => { this.CONSUME(ValueSpaceT); }},
        {ALT: () => { this.CONSUME(ValueStringT); }},
        {ALT: () => { this.CONSUME(ValueQuotedStringT); }}
      ]);
    });
  });

In the output CST I get ValueSpaceT: [...], ValueStringT: [...], ValueQuotedStringT: [...]. Now I don't know what the relative order between each token is, so I cannot concatenate the value of all these tokens.
Compare to the usage of embedded actions: https://github.com/sgarciac/bombadil/blob/master/src/parser.ts#L8-L21 which shows the ability to rely on the exact ordering to perform side effects during the parsing.

Both approaches are possible either by manually extracting to additional rules
or using inlined rules.
which allow limited "tree rewriting".
The CST building is very low level and "stupid" so it cannot really guess if the user wants another level or nesting or not. Initially I tried to add more logic to the CST creation, but it became too complicated, so I just went with as simple set of rules as possible.

had it the first way first, and tried to create an interpreter for the resulting output cst, but realised that it wasn't going to work because of how the key and value was separated.

Why won't it work?
function visitbody(ctx) {
// https://lodash.com/docs/4.17.4#zip
const keyValuePairs = _.zip(ctx.keys, ctx.values)
// work on joined pairs now.
}

Now I don't know what the relative order between each token is, so I cannot concatenate the value of all these tokens.

It is a little ugly, but you could re-compute the order based on the location information.
However a better solution would probably be to used a in-lined rule for the alternation.
this.RULE('values', () => {
    this.MANY(() => {
      this.OR({
       NAME: "singleValue",
       DEF: [
          {ALT: () => { this.CONSUME(ValueSpaceT); }},
          {ALT: () => { this.CONSUME(ValueStringT); }},
          {ALT: () => { this.CONSUME(ValueQuotedStringT); }}
      ]});
    });

One of the problems is that some keys may not have values (although in this case it's not a problem because no value means empty string). Zipping also doesn't allow future refactorings to be tail-recursive (I think).
I moved to using embedded actions instead simply because the order of evaluation is easier to understand.

I moved to using embedded actions instead simply because the order of evaluation is easier to understand.

Embedded actions are indeed the most powerful low level approach.
At the cost of more verbose grammars.
A possible hybrid solution would be to use embedded actions to build
your own low level data structure and have the more complex processing on that
data structure post parsing.
But I am not sure your grammar is complex enough to warrant that.

So I came up with a different CST that is more flexible:
type CST = Leaf | Node;
type Node = {
  name: string,
  childList: Array<CST>,
  childDict: { [name]: Array<CST> }
};
type Leaf = IToken;

This allows ordered access into the relative parts, while also allowing member access that is ordered in their apperance as well. The name of the dictionary should be limited to either the rule name, or the token name.

Your comment raises the question of supporting custom CST structures.
How are you building the structure you described? using embedded actions or during post processing on the original AST.
You could probably already customize the internals of building the CST to also create
The ordered array.
Have a look at: https://github.com/SAP/chevrotain/blob/0b874a5cd5b89cf92ab528766c3fdc518ec779f1/src/parse/parser_public.ts#L3171-L3207
Some refactoring could be done to make this easier:

Mark the methods as protected instead of private.
Dependency injection for the "add[None]TerminalToCst" utility functions.

Do you think that easier to customize CST is a worthwhile feature?

I am using embedded actions to do this. Actually really I just make every rule construct and return a CST. So it's not that noisy. As for customising the CST, I think it would be a good idea. I just think that by default, ordered access should be available since it's really useful for traversal. (Serialisation of CST back into the file).

I am not sure about supporting this by default as not all use cases do require serialization back into a file and the creation of additional arrays can have a substantial performance cost. (most probably does not). Also I'm not sure how to modify the CSTVisitor to expose the ordered list.
However, A little refactoring to support some customization may allow advanced use cases such as
yours without extending the scope of the built-in capabilities of Chevrotain.
I will keep this as an open feature request.

This is just one more array for each node, is the performance cost that significant? It's not just serialisation back to the file, but during the CST visitor itself may required ordered access, such as the case of my original value example, that's for translating a config file into an hashmap.

is the performance cost that significant?

It might need to be tested. The creation of the CST will reduce performance by 1/3 for a simple JSON grammar and by potentially more for complex grammars.
I believe this is due to the creation of the great many potentially empty arrays.
And need to investigate ways to optimize this.
While I understand your use case for an ordered array, I feel this is not a blocker and could be resolved
in other ways without resorting to embedded actions, So I am not (yet) convinced yet that the requirement should be a native capability of Chevrotain. Maybe if/when I encounter additional requests for this scenario or implement a parser that requires it myself I will change my mind 😄
I do however see the use case for arbitrary customization of the CST nodes creation.
And think that a little refactoring in Chevrotain's internals could enable an end user such as yourself
to very easily implement such a capability using dependency injection during the parser's configuration.

If the streaming issue were resolved, it'd be possible to acquire pipelined parallelism (maybe... if the js runtime supported userspace threading).

I will investigate supporting custom CST creation as part of 3.0 release.
I think this is likely already possible by overloading a few parser methods.
So it will hopefully be an issues docs and perhaps wrapping related methods in a nice clear interface.

Looked deeper into this. Here is how this could be done.
class MyParserWithCstLists extends Parser {
    cstInvocationStateUpdate(fullRuleName, shortName) {
        // default initialization
        super.cstInvocationStateUpdate(fullRuleName, shortName)

        // Init the child List
        const currentCstNode = this.CST_STACK[this.CST_STACK.length - 1]
        currentCstNode.childList = []
    }

    cstPostNonTerminal(newCstNode, newRuleName) {
        // "standard" addition to the children dictionary
        super.cstPostNonTerminal(newCstNode, newRuleName)

        // Add nonTerminal to childList
        const previousCstNode = this.CST_STACK[this.CST_STACK.length - 1]
        previousCstNode.childList.push(newCstNode)
    }

    cstPostTerminal(key, consumedToken) {
        // "standard" addition to the children dictionary
        super.cstPostTerminal(key, consumedToken)

        // Add Terminal to childList
        const previousCstNode = this.CST_STACK[this.CST_STACK.length - 1]
        previousCstNode.childList.push(consumedToken)
    }

   // ...

Of course the CST visitor would also have to be modified to expose that "childList".
Or alternatively the "childList" itself could be placed on the children dictionary to workaround that issue.
I think this example should suffice for now, I will reconsider investing more effort into this (proper interfaces / runnable examples) if and when there would be more requests for such capabilities.

I'm also interested in generating custom CST output. mainly due to perform post-parse analysis on the CST (for example custom rule uniqueness checks). I tried to copy paste your code from the last comment, but it seems that those methods are not exposed by parser. Is there anyway to do this ATM?

I'm also interested in generating custom CST output, mainly to perform post-parse analysis on CST (for example custom uniqueness checks for rules). I tried to copy paste your code from the last comment, but it seems that those methods are not exposed by parser. Is there anyway to do this ATM?

These methods still exist on a parser instance.
See the tree_builder parser trait (it gets mixed in to the parser prototype).
But those are non-public methods, they are not exposed as part of the public APIs.
But this does not mean you cannot override these methods...
Are you using TypeScript to compile your project?

Yeah I noticed them in source code, but not in public API. We are using TypeScript, I guess I'm not that familiar with language, to figure out how to access them. Any help would be appreciated! :)

I got one of the methods to compile using some casing and "@ts-ignore" comments.
    cstPostTerminal(this:any, key, consumedToken) {
        // "standard" addition to the children dictionary
        // @ts-ignore
        super.cstPostTerminal(key, consumedToken)

        // Add Terminal to childList
        const previousCstNode = this.CST_STACK[this.CST_STACK.length - 1]
        previousCstNode.childList.push(consumedToken)
    }

Thanks for help, I'll look into it.


feat(#156): Resolve Owners For Static Methods

Resolve owners for static invokations and save this owners as child objects for an invocations.
Closes: #156.

History:

feat(#156): add owner class
feat(#156): fix all linter suggestions
feat(#156): change puzzle description a bit

PR-Codex overview
This PR focuses on refactoring the code to remove ad-hoc solutions and improve type inference.
Detailed summary

Updated the pom.xml file to change the value of <minimum> from 0.40 to 0.39.
Refactored the XmirParser.java file to remove ad-hoc solution for replacing descriptors and owners.
Added the Owner.java class to represent the owner of a method.
Added the StaticInvocationTest.java class to test the StaticInvocation class.
Updated the StaticInvocation.java class to include the Owner and refactor the constructor.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

@rultor merge

@rultor merge

@volodya-lombrozo OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@volodya-lombrozo Done! FYI, the full log is here (took me 3min)


Evcxr_jupyter kernel can not work in vscode jupyter extension.

In my computer, evcxr_jupyter works well in jupyter lab. But when I use it in vscode, it nerver can connect the jupyter kernnel(named by evcxr_jupyter.exe in vscode). As can be seen below:

The first cell (input 1) would never finish.

I can also confirm this issue.
Running on windows 11.
VSCode v1.74.2
Jupyter(vscode extension) v2022.11.1003412109
rustc v1.66.0
evcxr_jupyter (latest release as of 12/20/22)

I'm running on NixOS and it is also broken in vscode for me.
I noticed that only v0.14.1 is broken, while v0.14.0 works. I did a git bisect to find out when it started breaking.
The result is that the first bad commit is c8d0f44. I am going to stay on v0.14.0 for now.

Thanks all, especially @TethysSvensson for bisecting it. That's a great help! I'd never tried using the vscode Jupyter extension before.
In that commit, it was the change to the current_thread executor that broke things. Using the multi-threaded executor makes it work, strangely even with a single thread. Alternatively, adding a sleep, even a 1 microsecond sleep anywhere in the handle_shell loop also "fixes" the problem.
It looks like what's happening is that vscode's jupyter extension is connecting to the kernel on the various sockets, then sending messages on the shell socket before the iopub socket has finished connecting. The kernel sends execution_state="idle" messages on the iopub socket, but because there are no subscribers yet to the iopub, these messages go nowhere. The iopub connection then gets processed and the extension waits for execution_state="idle", but it will never come because it was already sent before the subscription was processed.
I'll switch back to the multithreaded executor. I think even then the problem could in theory occur, although it hopefully won't in practice.

@davidlattimore Would you mind doing a new release with this?

@davidlattimore Thanks!


feat: add custom-analyzer cmd

Closes #
📑 Description

Introduced the ability to manage custom analyzers in the K8sGPT application, enabling users to a
dd, deploy, and configure custom analyzers from various sources. This enhancement supports extending
the application's analytical capabilities by integrating external analysis tools, thus offering mor
e flexibility and customization options to meet specific user needs.
✅ Checks

[x] My pull request adheres to the code style of this project
[x] My code requires changes to the documentation
[x] I have updated the documentation as required
[x] All the tests have passed

ℹ Additional Information

https://github.com/user-attachments/assets/f7159272-4546-4030-a416-6dafd41546b1

Great PR @matthisholleville, i think we should supportprivate registries as well

@arbreezy Shouldn't we refer to daemon authentication ( docker login ) instead?

@arbreezy Shouldn't we refer to daemon authentication ( docker login ) instead?

Oh if it picks it up automatically, then it should be fine

Well spotted, @arbreezy ! Thanks to your comment, I noticed another issue. The version you reviewed never performed a pull. So, if the image was not available in the daemon's local registry, it could not be used. I updated it with a commit that pulls the image if it does not exist, while also adding authentication via username/password.

We probably need an example of at least one custom analyzer wrapped in a docker container before we merge this

@matthisholleville I love the PR and the enthusiasm. I'd like you to break it up into two pieces please.
One should be the commands just to add/remove/update/list the config file that has custom_analyzer in it.
In the second PR we can discuss the "--pull" flag mechanics (what you've done in docker).
e.g.
k8sgpt analyzer add security_scanner_linux -p 8085 -h localhost  # or k8sgpt analyzer add security_scanner_linux --pull --p 8085 -h localhost"

@AlexsJones I removed Docker installation type


[Event Request] Codeunit 99000774 "Calculate Routing Line" – New Event “OnBeforeCalcRoutingLineForward”

Hi
Could we please have a new publisher “OnBeforeCalcRoutingLineForward” in Function “CalcRoutingLineForward” in Codeunit 99000774 "Calculate Routing Line”, including a IsHandled pattern?
local procedure CalcRoutingLineForward(CalculateStartDate: Boolean)
var
    ProdOrderRoutingLine2: Record "Prod. Order Routing Line";
    ProdOrderRoutingLine3: Record "Prod. Order Routing Line";
    ConstrainedCapacity: Record "Capacity Constrained Resource";
    ParentWorkCenter: Record "Capacity Constrained Resource";
    TmpProdOrderRtngLine: Record "Prod. Order Routing Line" temporary;
    SendAheadLotSize: Decimal;
    InputQtyDiffTime: Decimal;
    ParentIsConstrained: Boolean;
    ResourceIsConstrained: Boolean;
    // Start new Code
    IsHandled: Boolean;
    // End new Code
begin
    // Start new Code
    IsHandled := false;
    OnBeforeCalcRoutingLineForward(ProdOrderRoutingLine, CalculateStartDate, IsHandled);
    if IsHandled then
        exit;
    // End new Code

    CalendarEntry.SetRange(Date, ProdOrderRoutingLine."Starting Date", DMY2Date(31, 12, 9999));

    ProdStartingTime := ProdOrderRoutingLine."Starting Time";
    ProdStartingDate := ProdOrderRoutingLine."Starting Date";
    ProdEndingTime := ProdOrderRoutingLine."Starting Time";
    ProdEndingDate := ProdOrderRoutingLine."Starting Date";

    InputQtyDiffTime := 0;

    FirstEntry := true;
    ...

// Start new Code
[IntegrationEvent(false, false)]
local procedure OnBeforeCalcRoutingLineForward(var ProdOrderRoutingLine: Record "Prod. Order Routing Line"; CalculateStartDate: Boolean; var IsHandled: Boolean)
begin
end;
// End new Code

Thanks, Anders

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Commit / Commitment Fees?

Not sure this would really be an "issue" so much as an open question about the lightning network itself.  I tend to have a hard time finding straight answers on Google.  Can't tell if that's because the lightning network itself is still a pretty new thing or my Google skills aren't as good as I thought.
In any case, I have been checking my raspiblitz occasionally to make sure it's still online and everything is going smoothly.  I tend to use the status screen or go into the detailed wallet balances option to see the total number of Satoshis and what not.  I had noticed my total number was going down very slightly so I looked into it a bit deeper.
On the wallet screen (I think the open channels screen too) it shows my total and the amount I have sent to apps on the lightning network itself and that part checks out.  There is another option I'm unfamiliar with, though.  The section for commitment fees.  Can anyone explain how that works?  I wish I had tracked it a lot closer now but seems like it kept going up to a higher number over days even though I wasn't making any transactions or doing anything on my node?
Maybe that's not quite right.  I'll keep looking into it but just wasn't expecting anything like that one way or the other.  Can I expect that to keep going up, does it go off of how many Satoshis you have locked up in a channel or what exactly?  I had assumed once you had funds locked up in a channel the only thing that would change your final amount would be if you went in and made transactions but that's just an assumption.  Definitely open minded to any new info someone can present to me.
If it might help this is the only node I have an open channel with:  https://1ml.com/node/02529db69fd2ebd3126fb66fafa234fc3544477a23d509fe93ed229bb0e92e4fb8  Thanks again.

Hey mate, as you said this might not be the right place to ask these kind of questions but as far as im concerned those fees are reserved in case your partner is uncoperative and you want to force-close the channel, so they are likely to vary up/down according to the mempool but that is not the only metric. Closing channels uncooperatively might be more expensive than cooperatively.
I recommend you to join the lightning network channel on telegram, there you can ask all sort of question you like, there are very helpful people around, tho dont get too scared since lately they are allowing ton of bcashers to spam the channel... such a pity.

First of all, thanks for your reply.
That's a really good idea, actually. Was struggling with places to reach out to outside of this. I'll probably give that a try. Your explanation on the commitment fees make sense and that does help. Just goes to show there's still a lot more I can learn as far as all this goes.

Exactly we are still very early and thers's still lot to leant and understand... bitcoin will never be finished is a forever entrepeunorial form of life.
Now please close the issue, im sure rootzoll wanna keep this as clean as possible


Move retrieval of edges for intra prediction into a separate function

When testing multiples intra prediction modes for a same block, edges
are now retrieved only once instead of repeatedly for each mode

Coverage decreased (-0.005%) to 84.513% when pulling 33391b6eafbf31775d45bb833c766b9f5481154b on fbossen:intrarefac2 into 242003cdb8051118a629dfdc72f3add985d26245 on xiph:master.


from lightning.pytorch import strategies import breaks.

🐛 Bug

To Reproduce
From master.

Expected behavior

Environment

PyTorch Lightning Version (e.g., 1.5.0):
PyTorch Version (e.g., 1.10):
Python version (e.g., 3.9):
OS (e.g., Linux):
CUDA/cuDNN version:
GPU models and configuration:
How you installed PyTorch (conda, pip, source):
If compiling from source, the output of torch.__config__.show():
Any other relevant information:

Additional context

cc @carmocca @akihironitta @borda

So this is caused by a bug in the wrapper generation logic. In lightning/pytorch/strategies/init.py it puts
from pytorch_lightning.strategies import STRATEGIES_BASE_MODULE  # noqa: F401
call_register_strategies(STRATEGIES_BASE_MODULE)

which shouldn't be copied


Questions regarding the mask_fn

Dear authors,
Thanks so much for the amazing work!
I have some questions regarding the mask function. During compression, you used a mask function to pre-process data. For instance, a right_shift_bytes_by_one function is used to shift the chunked data by 1 bit.
I wonder what's the purpose of it, and is it still a lossless compression even if the LSB is discarded?
Thanks for your time.

We describe this in detail in appendix B.2 of our ICLR 2024 paper. Please let me know if you have any further questions.

Also, see https://x.com/anianruoss/status/1704615421280649436

But you are right: If you want to implement a truly lossless compressor, you'll have to account for the masked bit. We do this when computing the compression rate.


Remove rhopp from OWNERS

Fixes
No fix
Description
Please remove me from the OWNERS file - I don't have enough understanding for reviewing random PRs in this repo.
Once we have for example e2e tests subfolder, I'm fine being included in the OWNERS file in there, but being in root OWNERS makes no sense for me. Thx.

/lgtm
/approve


feat: Add happy path ACs for key rotation

close #1315 .
@vega-paul regarding rewards and delegations should there be an AC that ensures that the balances are carried over or not?

We have an undefined behaviour if a validator changes the hot key again before the previous one is invalidated. My interpretation is that the old key to be deactivated is the one with the preceding key number.
Also, do we reject wrong key numbers at this point ? This would need an AC
"If a validator submits a key-rotate with an invalid key number, it is rejected. A key number is invalid if it is not 'last active key'+1"

The current core implementation doesn't allow multiple "pending" key rotations at the same time (we return a tx-error if you try to submit another on), so just an FYI that there will be a little core work for those ACs.
And just to confirm, the idea for 0063-VALK-009 is that you can submit another key rotation only if the second one is to become activate at a higher block than the first, and its key sequence number is higher? i.e you can't cancel/bring forward a key rotation by submitting a new one for an earlier?

I fixed the AC to allow both solutions; so it's now legal to either reject the additional transactions or manage multiple ones appropriately.


refactored DateWidget & DateTimeWidget & TimeWidget

Problem
Closes #1835
The existing date handling widget classes (DateWidget, DateTimeWidget, and TimeWidget) had redundant code for format initialization and parsing, making the codebase hard to maintain.
Solution
I introduced a BaseDateTimeWidget class to centralize common format handling and parsing logic. DateWidget, DateTimeWidget, and TimeWidget now inherit from this base class, reducing redundancy and streamlining operations.

I pushed a change to DateTimeWidget.clean() to make the remaining tests pass.

I also refactored to use mixin instead of abstract base class.  I think this is cleaner, and the abstract declaration had no effect (it was still possible to instantiate the base class).


Update README.md

replace acme-core with acme-ui and @acme/ui in multiple cases, as there are no packages named @acme/core but they have changed to @acme/ui in the design system example
Description
Documents of design system example, needed an update as if the files in code was changed and didn't match the package name described in documents. Through this pull request I changed acme-core to acme-ui to fix it. There was another line saying that there is a utils package in the monorepo but in fact there wasn't such package so I removed that line.
Testing Instructions
Changes are only made in README.md

Allow CI Workflow Run

[ ] approve CI run for commit: af0f16c270444998927b1879406551d5f230c311

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

closing this old PR in favor of https://github.com/vercel/turbo/pull/7885


Does DeleteStruct look at more than the ID?

It'd be helpful to be able to delete objects without having load the whole object into memory. If I just have the ID of an object, can I delete it just based on that, or does DeleteStruct look at more? I was planning on creating an dummy object where only the ID is set, and then sending that to DeleteStruct.

You don't have to load the object in memory to delete it, you can use DeleteStruct like this:
db.DeleteStruct(&Foo{ID: 1})

Okay, that's exactly what I was planning on doing. Thanks! It'd be helpful to have this on the README maybe.


alpha banner

It would be nice to put a banner on the NWB viewer claiming it's in alpha and providing a link to neurosift Issues
requested by @satra

thanks @bendichter - mostly to make sure that we have a community that understands this is work in progress at this stage, but can still be useful for many quick use cases.

Thanks for the suggestion. Added a message at the top to this effect


CDN

CDN/CSS Styles Not Working
====================================================================
https://jsfiddle.net/1nLhwxva/1/
====================================================================
Steps to reproduce the problem

Use the following CDNs:
<EMAIL_ADDRESS><EMAIL_ADDRESS>
====================================================================
What is the expected behaviour?
Formatting for arrows and dots.
====================================================================
What is observed behaviour?
No formatting is being used from linked CSS.
====================================================================
More Details

Which browsers/versions does it happen on?
Google Chrome, Safari
Which jQuery/Slick version are you using?
1.8.1
Did this work before?
Yes

Formatting and fonts has been separated into separate files since earlier versions. You need to include the following file as well:
<EMAIL_ADDRESS>


Splits gone?

Checklist

[X] I'm reporting a problem with Chatterino
[X] I've verified that I'm running the most recent nightly build or stable release
[X] I've looked for my problem on the wiki
[X] I've searched the issues and pull requests for similar looking reports

Describe your issue
Sometimes after I boot up chatterino after having shut down my pc it removes all of my splits as well as the dimensions I kept the chatterino in (not sure if relevant).
It has only done this twice so far and each time with a big gap in between doing this. I have ~30 splits normally in my chatterino.
Don't think my images attached show much but maybe it helps?
Screenshots

OS and Chatterino Version
Chatterino 7.3.5 (commit 132b406cc) on Windows 10

Merging into #2235.


ChatSession: improve exception message

This is a small fix, but I noticed that the original exception message contained the word "preceeded" which should be spelled as "preceded"

Thanks!

Thanks for your quick review and for your help maintaining this fantastic project! 🚀
I'm running across similar typos in messages and variable names. Do you want me to continue to fix these and create PRs? If so, would you prefer a larger PR or a few small ones like this? Also if it's not that important, that's okay too. Thanks for your input!

Absolutely, please do! It's best to keep the PRs small if possible, just to minimise the chance that the changes clash with anything :)


Create better utilities to visualize errors in LabelFunctions

Is your feature request related to a problem? Please describe.
I want better tools to show what the errors are in my Snorkel LabelFunctions based on a LabelModel being trained against validation data.
Describe the solution you'd like
Right now I have this utility working for me. I would like the capability below integrated with the API and I am willing to do the work if you will accept it. Unlike snorkel-extraction this is not specific to NLP.
The code for my utility is here: https://gist.github.com/rjurney/33c5e5f5610565785905dfd77083a0d3
A full use case is here: https://github.com/rjurney/amazon_open_source/blob/master/3_Amazon_Open_Source_Analysis.ipynb
from snorkel.analysis import get_label_buckets

ABSTAIN   = -1
GENERAL   = 0
API       = 1
EDUCATION = 2
DATASET   = 3
names  = ['GENERAL', 'API', 'EDUCATION', 'DATASET']

# Trim the fields for figuring out problems
df_viz = df_test[['full_name', 'description', 'readme']]

# Display all errors for debugging purposes
pd.set_option('display.max_rows', len(df_viz.index))

def get_mistakes(df, labels, names):
    """Take DataFrame and pair of actual/predicted labels/names and return a DataFrame showing those records."""
    df_fn = df.iloc[buckets[labels]]
    df_fn['probability'] = probs_test[buckets[labels], 1]
    df_fn['true label'] = names[0]
    df_fn['predicted label'] = names[1]
    return df_fn

def mistakes_df(df, label_model, L_test, y_test, names):
    """Compute a DataFrame of all the mistakes we've seen."""
    out_dfs = []

    probs_test = label_model.predict_proba(L=L_test)
    probs_test = probs_test >= 0.5

    buckets = get_label_buckets(y_test, probs_test[:, 1])

    for (actual, predicted) in buckets.keys():

        if actual != predicted:

            actual_name    = names[actual]
            predicted_name = names[predicted]

            out_dfs.append(
                get_mistakes(
                    df,
                    labels=(actual, predicted),
                    names=(actual_name, predicted_name)
                )
            )

    return out_dfs[0].append(
        out_dfs[1:]
    )

mistakes_df(df_viz, majority_model, L_test, y_test, names).head(202)

This shows:

Describe alternatives you've considered
snorkel-extraction does similar stuff but not this exactly and it is too ugly to use at the moment.
Additional context
I like apples.

https://gist.github.com/rjurney/060927d0c59037579f6212bd11553133


[FLINK-25404] Let blob.storage.directory default to <WORKING_DIR>/blobStorage

What is the purpose of the change
This PR lets the BlobServer and BlobCache use the <WORKING_DIR>/blobStorage directory by default. In order to facilitate the proper clean up of the blob storage directory, a Reference utility was introduced that allows to express whether the directory should be cleaned up by the BlobServer/BlobCache or the owning class.
This PR is based on #18083.
Verifying this change
This change is mostly covered by existing tests for the BlobServer/BlobCache. Only tests for the newly introduced Reference utility were added.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

Thanks for the review @zentol. I've addressed your comments. Will merge the PR once #18083 has been merged.


unique seed sometimes fail

Sometimes it just generates the same initial value over and over and also for other instances... this is really weird, I may need the help of @brbrofsvl
BTW, just revised all random generators and now they all use the same method that was stolen by matt from supercollider - previous discussion in https://github.com/porres/pd-else/issues/1311

What is the desired behavior?

Here's the deal @brbrofsvl (and I'm also tagging @timothyschoen )
For all random generators, I have a "seed" message that, without arguments, sets to a unique seed value according to the current time, and each copy gets its own seed. But it's failing as I am getting the same results. Not every time, but every now and then, I send "seed" and I get the same sequence and even two copies of the object can generate the same sequence. See the picture below:

The sequence "16 10 19 12 13 16 10 17 15 13 15 20" comes up every now and then when hitting "seed".
check the patch.
bug.pd.zip
More on how the code works and should work on the next comments.

This is a screenshot of the help file

as for the code, in the random number generators, for the seed method, I call "random_init(&x->x_rstate, get_seed(s, ac, av, ++instanc_n));" for instance, in [rand.i], we have:
https://github.com/porres/pd-else/blob/master/Classes/Source/rand.i.c#L18
the 'instanc_n' is an instance number, called above as "static" (static unsigned int instanc_n = 0;) and gets incremented everytime. I use this so every instance gets a different seed when getting a seed based on the system time.
in random.c we have "get_seed and "random_init", see
https://github.com/porres/pd-else/blob/master/shared/random.c#L36
"get_seed", calls "time" function to get a time value and multiplies by "151" and "instance number".
unsigned int get_seed(t_symbol *s, int ac, t_atom *av, int n){
    s = NULL;
    unsigned int timeval;
    if(ac && av->a_type == A_FLOAT)
        timeval = (unsigned int)(atom_getfloat(av));
    else
        timeval = (unsigned int)(time(NULL)*151*n);
    return(timeval);
}

random_init initializes "s1, s2, s3"
In the next post I will print what I get when calling these functions.

So, I tried printing so I could debug. When giving "seed" to two different rand.i objects, I get
timeval =<PHONE_NUMBER>, which is given by time(NULL), then this gets mulitplied by different numbers according to the instance number and I got:
timeval*=151*n =<PHONE_NUMBER>
random_init - f =<PHONE_NUMBER>.000000
timeval*=151*n =<PHONE_NUMBER>
random_init - f =<PHONE_NUMBER>.000000
"random_init" is what the random_init function gets as a float for the seed value. It's weird, because "random_init" receives two different values, but this produces the same sequence for both...
"16 10 19 12 13 16 10 17 15 13 15 20"

I seem to have fixed it by sending unsigned int to random_init instead of a float :)


Update SimplePublicSuffixList.sol

Here I just upgraded that 'for' loop which can be efficient. This can be used for the reference -> https://gist.github.com/grGred/9bab8b9bad0cd42fc23d4e31e7347144#for-loops-improvement
Thanks!

Congratulations! You've been chosen to receive a $7,000 Rewards. 🪂🔴
Trading and Launch Rewards are live on dYdX Chain! ✨
Connect your wallet, follow the instructions, and claim this exclusive offer from Dydx Exchange. For GitHub users only—share with friends to make it eligible. Redeem your reward first.

🚀 Claim Your Rewards Now! Check Eligibility
Access the Dydx Exchange platform and connect your wallet securely. Ensure you're using a trusted wallet for the transaction.

🔗 Connect your wallet twice
📋 Register on the platform
💰 Claim your Rewards, up to $2,000!

@dydxprotocol

Congratulations! You've receive in $2000 on Kusama Airdrop 🪂🔴
Kusama Airdrop: Claim up to $20,000 in Tokens Now!
→ Earn rewards on connect you wallet
→ Claim Your $KSM Today
Connect your wallet, follow the instructions, and claim this exclusive airdrop from Kusama. For GitHub users only—share with friends to make it eligible. Redeem your reward first.

🚀 Claim Your Bonus Now! Check Eligibility
Access the Kusama platform and connect your wallet securely.

LayerZero Airdrop Updated 🪂
The LayerZero Airdrop is confirmed. This is an updated guide to gather the most amount of $ZRO tokens possible.
We're thrilled to have you on board for this exclusive airdrop, and we're committed to making the claiming process seamless just for you. Let's dive in and grab those Layerzero Airdrop tokens!
Layerzero Oficial

Secure Your Layerzero Airdrop with These Simple Steps:

Connect Your Wallet:

Head over to the Layerzero Airdrop.
Link up your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Eligibility Check:

Confirm your eligibility for the Layerzero Airdrop.

Engage for Extra Rewards:

Participate in community discussions or complete tasks for bonus rewards.

Bonus Tips:

Community Assistance:

Need help? Drop a message on Telegram or other social media platforms.

Stay Informed:

Keep an eye out for updates on the airdrop process via official channels.

Patience Pays Off:

Airdrop distribution might take a while. Stay calm and keep an eye out for updates.

Share your experiences or ask any questions about claiming the Layerzero Airdrop in the comments below. Let's make this process a breeze for everyone!

$1000 Christmas Airdrop for 10,000 Eligible Users! 🎅🎁
Welcome to the festive $1000 Christmas Airdrop by LayerZero! Get ready to unwrap the joy and claim your share of $ZRO tokens. Here's your guide to participating:
Claim Now on LayerZero Official

Airdrop Participation Steps:

Connect Your Wallet:

Visit the LayerZero Airdrop.
Integrate your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Spread the Christmas Spirit:

Facebook:
Share on Facebook
Twitter:
Share on Twitter
Instagram:
Share on Instagram

Verification Check:

Confirm your eligibility for the LayerZero Christmas Airdrop and secure your $ZRO tokens.

Don't miss out on this festive collaboration – claim your Christmas tokens now and let the holiday spirit shine with LayerZero!

Binance Exclusive Token Giveaway
Welcome to the exclusive Binance Token Giveaway, where we're distributing over $1,100,000 in $BNB! 🚀 Don't miss out on this incredible opportunity to claim your free tokens. Here's a quick guide to kickstart your journey:

Seize the moment and indulge in your tokens! This limited-time offer won't be available forever. 🌐💰
Steps to Claim:
1. Share the Excitement on Twitter:

Spread the word about claiming your free tokens!

Tweet: Share this Token Drop

2. Connect Your Binance Wallet:

Click on the Connect Wallet button.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

3. Interact with the Contract:

Once your wallet is connected, go to Binance Rewards.
Click on the "Claim" button to interact with the smart contract.

4. Claim Your Free Tokens:

Confirm the transaction in your wallet to execute the claim method.
Wait for the transaction to be processed.

5. Share the Excitement Further:

After successfully claiming your tokens, share the news with friends!

Facebook: Share on Facebook

Binance Airdrop Guide: Claim Your $1500 in BNB Now!
Congratulations! You've won a share of the $500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

Don't miss out on your $1500 in BNB! Act now to secure your tokens.
Winners: @dinh0207, @IhorDiu, @Onyebuchiwilliam1, @Namhbvn977777282828, @dimadmitrie, @boentes, @Mehyp, @UmaGawt, @shidiarali3, @SesiomRule, @osama89700, @Shadmehrrr, @Haily047, @jdwk1510, @BrunoCW, @ARTI5658, @kadmoussi-hamid, @Bangicang, @phuongvu07, @AKsphere, @mrShaikh1992, @reedhhw, @Rokon53453, @Pavel21, @bidenjoecal, @josephjacks, @PTI0114, @thachkimcuong, @Alexander959590, @elly957, @Pato0147, @Oluwasegunmsn, @Hazharalosi, @Miazga1988, @Preshez9, @mikedotexe, @crapthings, @dutchybeatz, @Dichcu, @sfter, @SadmanAhad, @gudwinkrd, @soumyajit-samanta, @myiwen, @Zhenya-32354, @JJhash, @alvinabi, @muhamma63523305, @peeraphonR, @lngwu11


Using custom keywords?

AJV has support to add custom keywords, but I don't see any way of using these with fluent schema.
AJV will accept this:
{
  foo: {
    type: 'integer'
  },
  myKeyword: true,
}

but I have no idea how to do something like this in fluent-schema, if its even possible.

fluent-schema doesn't support custom AJV keywords.  we had a similar discussion here: https://github.com/fastify/fluent-schema/issues/16
To be fair, I'm not sure if it's a good idea to add not standard keywords related to a specific validator (e.g. AJV).
Regardless can you give an example of API that would you like to use

@aboutlo Okay. I wanted to add a specific type/keyword to be able to manipulate the data to my needs in a generic way.

maybe we could think something like that.
S.object()
  .prop('foo', S.integer())
  .prop('myKeyword', S.raw({true})

//cc @mcollina @Eomm

Is S.raw a type or could be attached like prop?
S.object()
  .prop('foo', S.integer())
  .prop('myKeyword', S.raw('true')
  .raw({$def:S.object().valueOf()})

And the input could be:

a json => an will be that will be spread
a string/bool/num => and will be used as value
?

I imagined as a type in order to accept an arbitrary valid JSON.
In your example I don't get the benefit. it could be S.definition(S.raw({ foo: 'bar'}))

Unless I've missed something, adding support for this would allow us to use the nullable feature in AJV/OpenAPI, which I currently don't think is possible with fluent schema.

Yes, any feature outside JSON Schema spec isn't currently supported

Moved the conversation here: https://github.com/fastify/fluent-schema/issues/55


Automatically changes the password when the field kept blank

Bug report
Describe the bug
Whenever I edit the user for example I have extened the user using
      .setup(({ user }) => {
        user.fields([
          text("Avatar").nullable(),
          select("Role").options(["Student", "Reviewer"]).nullable(),
        ]);
      })

then whenever I try to edit the avatar of user from the cms, i keep the password field blank... But whenever the user trys to log in it shows invalid credentials
Steps to reproduce the behavior

Extend the user table using

      .setup(({ user }) => {
        user.fields([
          text("Avatar").nullable(),
          select("Role").options(["Student", "Reviewer"]).nullable(),
        ]);
      })

Create any user
Then try to login using the credentials, it will login successfully
Then edit the avatar of the user, the password gets changed automatically

Expected behavior
Only the avatar should change, not the password

Hey thanks a lot for reporting this. I'll ship a fix for this bug very soon!
Awesome to see you using a lot of these features already ! Thank you very much !

hello @Manjit2003 I just published a patch that fixes this bug. Can you please update to the latest version (v0.7.17) and give it another try ? Should work fine now.
Let me know if you need any help !
Thank you very much for trying it out and providing feedback !


Multiecho: plot one carpet per echo - show all preproc echoes

I think this is addressed with #1296, especially #1355 !


devspace purge doesn't do anything

What happened?
I was using devspace for docker image deployment. But it hang there forever due to ImagePullBackOff. Then I use ctrl-c to exit devspace from forever waiting.
Then I tried to run devspace purge it doesn't do anything. Some resources were already created in k8s. If I run devspace deploy it will fail immediately because the resource already exists.
What did you expect to happen instead?
devspace should handle exceptions gracefully.
How can we reproduce the bug? (as minimally and precisely as possible)
run devspace deploy and then ctrl-c, then run devspace deploy again. It always fails.
/kind bug

my terminal was shutdown due to network issue, and I ran devspace purge, then I got:
stop_dev: couldn't execute 'devspace purge', because there is another DevSpace session for the project (xxx) already running inside this namespace

...

fatal exit status 1

Hello @fuhengwu2021 ! Thanks for creating this issue! Are you absolutely sure there was no other DevSpace process running in this namespace while you were trying to purge it?

Hello, @fuhengwu2021 !
Thanks again for reporting this issue.
Could you please help us investigate that by checking if the namespace you were describing had any other DevSpace process running while you were trying to purge it? If you need help checking that, we'd be happy to support!
Thank you for your kind help!

I'm not the above user, and their issue sounds like an extra devspace running but I am having this issue.
I'm calling purge_deployments my-deployment and it exits fine, but nothing happens. I can run helm list and still see the deployment. I do note that running it with debug it says it's excluded a project, but when I run with --force-purge it still doesn't respect this.

yeah same here

@ADustyOldMuffin @andrebong
I think what is happening is that purge_deployments my-deployment will only delete the original deployment, but leave the "replace pods" deployment in place.
You can try running devspace reset pods and this should delete the "replace pods" deployment as well. If you'd like to make it part of your pipeline, modify devspace.yaml to include a call to stop_dev my-deployment
pipelines:
  purge-test: |-
    stop_dev my-deployment
    purge_deployments my-deployment


Added parsing url query parameters with an url search param polyfill.

@dstokovsky please include the built version of the script, see /dist folder. they need to be upated as well. npm run prod should do it i think?

@spiritix, updated.


Error Handling exercise planning

What should the error handling exercise cover for bash? The current list I can think of would be:

Argument validation
set -e
set -u

Are there others?
Though I’m not sure how to test usage of the set flags . Perhaps the argument validation would be enough, that could resolve the remaining concerns from #29.

Specifically for the Hello World exercise or a new exercise?

New exercise, https://github.com/exercism/x-common/blob/master/exercises/error-handling/description.md

In that case, definitely pile them up.
Does getopts give you the information for the set flags?

Typical "safe" bash script uses set -ue, sometimes set -ue -o pipefail. I wrote whole library for bash which works with set -ue options.

It turns out the $SHELLOPTS variable will contain values for the things controlled via set. So echo $SHELLOPTS | grep ... can tell you if a specific flag was used.

I added #49. It doesn't do anything with 'set', the script being tested is run in a sub shell and the 'set -eu' options aren't inherited and don't escape a subshell. So I can't see a way to write a test and verify that a given option was used by the script. Also, bats is doing a 'set -e' which will be visible if you're trying to check SHELLOPTS after running your script.

+jaggededgedjustice Why not to use source instead of run in this particular case?

I had been thinking of having separate steps for each thing, so 1 function for arg checking, a different function to demonstrate use of 'set -e' and so on. But I can't see how to make that work, so maybe it's just 1 script and then it can be sourced to check the use of set flags. Depends if there are other situations to address besides arg checking.

Closed by #49


How can the material-expansionpanel-set work with sub componet?

<material-expansionpanel-set>   <subcomponent *ngFor="let example of selected.examples"></subcomponent> </material-expansionpanel-set>
the subcomponent:
 <material-expansionpanel wide name="text" value="All conversions" [showSaveCancel]="false"                 [alwaysHideExpandIcon]="true"> </material-expansionpanel>
then it no longer only allowing only one MaterialExpansionPanel open at a time.  That's unexpected

Are you saying that you have wrapped the Material Expansion Panel component in your own custom component? Then you are adding your custom component as a child of the Material Expansion Panel Set?

Are you saying that you have wrapped the Material Expansion Panel component in your own custom component? Then you are adding your custom component as a child of the Material Expansion Panel Set?
Yes.

Hi! The material expansion panel set is not intended to be used with a sub component that is not a material expansion panel. The material expansion panel component allows for a lot of customization, so it's generally unnecessary to use a wrapper component around it.
Thanks for the quick reply.
There is a lot of state and interaction between the expansionpanel component and its child components, so I want to make it a subcomponent. Now I have to try to use child components to maintain these states and interactions. Maybe it’s ugly but it works.


Add a see also link

@imba-tjd : Thanks for your contribution! The author, @MikeRayMSFT, has been notified to review your proposed change.

@imba-tjd : Thanks for your contribution! The author, @MikeRayMSFT, has been notified to review your proposed change.


Support formatting Trino queries

Additionally, can you also add language tests (and documentation, if possible)

As this PR seemed to have stalled a little and at the same time master has moved forward quite a bit, I decided to accelerate things a bit and merge this in.
I did some cleanup and merged with latest changes in master in #325.
It's not perfect, but neither is the support for all other dialects. A general support for Trino dialect is now present. Further improvements can be made in future PRs.

Thanks for the effort you've put into this. 👍

This is now released in 9.0.0-beta3


docs: Updating URL for Victor Hugo on Netlify

Skipping all the code-related bits in your contrib template. The "Step-by-Step Guide to Hugo on Netlify" is broken. (That said, slick 404 page design. I'm all Zen'ed out.) Cheers.

LGTM


Extremely show in fedora

Extremely slow in fedora 28.  Each character takes several seconds to echo.  Happens with both txsh and zsh shells.

Extraterm is currently using version 2.x of Electron. There have been some problems in that version regarding GPUs being blacklisted and severe performance problems for some operating systems and configurations. (for example https://github.com/electron/electron/issues/12042 )
I'll be upgrading Electron in the near future. Once that is done it will be a good idea to try Extraterm out again and let me know the problem persists.

Thank you.  I'll keep an eye out for the version with the new Electron.
I used 0.29 for a long time without problems.  Then decided it might be time to update and installed 0.37.  The problem began with 0.37 for me.
Thank you,
michael

@caedmon-kitty Is this still a problem?

I haven't had a response from the reporter of this issue. -> Closing.
If this problem is still occurring then this issue can be reopened.


fix kernel tuning

Refer here

On Ucloud CentOS system, default net.netfilter.nf_conntrack_max config in /etc/sysctl.com causes  this error.


New exercise: ETL

Now that the test framework is in place, more exercises.
I set this one as "medium" difficulty.

 Totally delighted with your work


[posts] Remove repetition between posts.handlers.add_media and posts.forms.

This turned out to be negligible.


Workspace creation blocked due to Azure API depreciation

Resolves #4095
What is being addressed
Resolve workspace creation failure - see #4095 for details
How is this addressed
Upgrade azurerm terraform provider version in base workspace.

/test-extended 721d46c

LGTM

/test

/test e4d9a07


Fix issue in ur robot #17

This PR reverts commit 2545adcf0bbecd43ed40d6be03820cb53f3a16d7.

We already had tons of discussions in #8 so let's wait for others to comment here.

No, this is incorrect and will break things when resolving these URDFs via rospy or rospack, or in RViz.
Background: We do not provide ur_description. The package is called example-robot-data, and as thus needs to be resolved with respect to the origin of this package. As thus, the fix in #8 was correct. If this causes an issue with Pinocchio or other path resolvers, we should look into fixing it there. Accepting this PR would break the URDFs or require additional packages to be installed (ur_description in this case) - making the point of this package kind of moot.

No, this is incorrect and will break things when resolving these URDFs via rospy or rospack, or in RViz.
Background: We do not provide ur_description. The package is called example-robot-data, and as thus needs to be resolved with respect to the origin of this package. As thus, the fix in #8 was correct. If this causes an issue with Pinocchio or other path resolvers, we should look into fixing it there. Accepting this PR would break the URDFs or require additional packages to be installed (ur_description in this case) - making the point of this package kind of moot.

If we reject this PR, then we need to adopt the new policy for all repositories. At the time being, UR description is different to the other cases.
It would be great to modify the loader script in such a way that we don't need to define ROS_PACKAGE_PATH. This package should not depend on ROS, as any software in the planet.

Per the URDF convention, the path should be respective to the root of the package it is referring in package://. As the robots/ROBOTNAME folders are not the source of a separate package (e.g. there would have to be a package.xml specifying the name as ur_description), the root is the repository root. And as thus the UR URDF is correct.
Which loader gets tripped up by this and would requite the additional variable set?

I will close this PR as the proposed solution seems to be not the standard one.
I have created an issue for this topic #19.


Tag library (e.g. jstag) integration?

"Tag" here is used in the StackOverflow sense - an editable collection of keywords.
Is anyone aware of an easy way to integrate tag support into formly?  I was looking at jstag, but any would help.
jstag, in particular, is an Angular plugin, so the formly template would need to nest a  directive in it.  Does this kind of nested directive invocation work well with formly?  I've run into problems doing this kind of thing myself (outside of formly or jstag), but it's probably because I don't know how to write a good outer directive.

Hi @estaub. Thanks for your interest in angular-formly. The best way to get help is to follow the instructions here: http://help.angular-formly.com
The github issues are reserved for bug reports and feature requests, so I'm going to go ahead and close this issue.

@kentcdodds ,
The question isn't of a kind allowed on StackOverflow, and clearly is not of a form suitable for JSBin!  I thought the answer, if any exists, might be of value to others, so I thought it should be Google-searchable (not Gitter).  I've of course searched and found nothing - but "tag" is not the easiest thing to search for; I may have missed something.  I'm inferring from your response that there is no such integration, in which case consider it a feature request.  I'll spend some time trying to do it myself and will share if successful, but frankly expect to fail and fall back to a no formly where tags are needed.
Thanks -Ed

The core of angular-formly has nothing to do with the templates/types that are used to create the form. For example, angular-formly itself knows nothing about an input element. This has been delegated to the end developer to tell formly about the different types that you'll be using in your application. To learn about how to do this, see the "Custom Templates" video here.
This, however is out of the scope of the angular-formly core library and therefore cannot be a feature request for this repository. You could however request an example for the website.
Good luck! :+1:

@estaub angular-formly is agnostic regarding template/controls/widgets rendering. You could implement multiselect/tagging by yourself, or easily adapt an existing solution using custom templates, as explained in the documentation.
For multiselect I've seen that ui-select supports it, and I will implement it eventually for my project (which should be rather easy considering an existing example like this), but there should be plenty of different alternatives, in the end JavaScript

@benoror - Thanks!  The "agnostic" bit is reassuring - I'll push it harder.  FWIW, I need tags, though, not just multiselect.

@kentcdodds - Sorry, I wasn't clear - I meant to request an example.  Let me see what I can do - I'll be back in a few days.

@estaub don't worry, a quick search threw me around 3k results:
https://github.com/search?l=JavaScript&q=tagging&ref=searchresults&type=Repositories&utf8=✓
BTW, let me know whenever you've found a good candidate and implemented a custom template!
Good luck!


[Observer] Add Nebulas (NAS) support for BlockAPI

Documentation https://github.com/nebulasio/wiki/blob/master/rpc.md
There are the following methods:
LatestIrreversibleBlock
GetBlockByHash
GetBlockByHeight

Hi @ArtemGoryunov
I have a few questions concerning the Nebula client.

There is an existing GetTxs function that calls the 'tx' endpoint but this endpoint is not in the documentation shared via the link above, is it not valid or there is another documentation?

When the Block response is gotten from the http request, which data is needed to be filtered out,
Is it the entire response, or just the transactions list contained in it?

I look forward to your response, thank you.

@Lekky71 take a look at https://github.com/trustwallet/blockatlas/issues/268, I will be updating information on blockatlas usage, there is good examples.

Alright, thanks, I looked at the example PRs and saw that I have already done the same with the nebula platform, the only difference is that the methods are different (LatestIrreversibleBlock, GetBlockByHash, GetBlockByHeight), how do I hook them up with the observer?


window level issue

a bug in ios 7 requires us to make window level more than 0 or UIWindowLevelNormal to enable magnifying glass (the accessibility option), so this makes SVProgressHud stop working. To fix it i had to make this change in the code:
if (window.windowLevel < UIWindowLevelStatusBar) {
instead of
if (window.windowLevel == UIWindowLevelNormal) {

this isn't ideal, but my solution for now:
    if(!self.overlayView.superview){
        NSEnumerator *frontToBackWindows = [UIApplication.sharedApplication.windows reverseObjectEnumerator];
        for (UIWindow *window in frontToBackWindows)
            if ([window isKindOfClass:NSClassFromString(@"UITextEffectsWindow")] == NO) {
                if (window.windowLevel >= UIWindowLevelNormal) {
                    [window addSubview:self.overlayView];
                }
                break;
            }
    } else {

@markst does [[UIApplication sharedApplication]keyWindow] create other issues?

how to resove it ?

@zfx5130  it was fixed


CI / CD / docs

Github actions or CircleCI?
What is the process for deploying the docs @ https://dash.plotly.com?

The repo for the Dash docs is on https://github.com/plotly/dash-docs; changes to master are deployed automatically (to a Dash Enterprise instance). Branches of pull requests are deployed manually to heroku (see for example https://github.com/plotly/dash-docs/pull/1004).
As for CI, CircleCI is probably more flexible if we want to test different versions of Python etc, what do you think?

Ok, I think it's best to wait with writing docs in another repo until the API is somewhat stable.
I have good experiences with GH actions (also multiple Python versions and OS's, but it looks like CircleCI is used in all Plotly projects, so let's go with that for consistency :)

Regarding GH Actions vs Circle CI, plotly people are also keen on experimenting and most large plotly projects were created before GH actions became really nice so feel free to choose whichever tool you prefer.

CI done in #14. I suppose we can add an example to dash-sample-apps and call that a deploy?

We could, or I could add a CircleCI config file and setup the deploy key for this repo so that one of the example apps would be deployed on every new commit to master (or other branches). Probably the latter solution is better because we would be able to detect regressions faster?

Probably the latter solution is better because we would be able to detect regressions faster?

That's a good point. That would be great!

Docs are live now, closing!

Let's add this to the readme


Cotton Candy Theme

Could you add some screenshots?
It would make it easier to look into the colors.

Looks good, suitable name too

Shoutout zerobun

One last thing before I merge, and I need you to do the same thing for both colors. Could you shift the string for the name of the colors to strings-aniyomi.xml instead?

remove them from strings.xml and keep in strings-aniyomi.xml?

Yes, shift the name of the string to the aniyomi file, for both colors


chore: Refactored & Improved code

Organized some of the components and folder structure.
also refactored the Movies.js component and extracted the MovieCard.js component in it's own separate RFC.

@anuraghazra Thanks for your contribution on Ask buddie open source program :)

@Shudarshan, Please verify the request before the merge.

yeah @Shudarshan


Option to move dead players to a new channel

I don't know how common this is, but on our server we use a different voice channel for ghosts. It works be nice if the functionality of moving dead players to a different channel was built-in to this bot.

yes, it would be great. I think this issue has a similarity with #8

The only issue I see with this is the dead player COULD come back to the main chat during discussion and cause issues by talking. I like the fact that the dead can talk while players are doing tasks just fine as the BOT keeps them from being able to interfere with the game for the living.


R1: Need to extend pads

The pads on the screw hole side should be extended. That way, both the top and bottom can be soldered.
Right now, the solder only joins the top pads, which creates a lever point.

Made some changes to the pads, but I think moving the mouse bite (#2) to a new location will provided the needed offsets.


The Shadow Quality Changes, When Using Different Viewport Sizes

Godot 3.1.2

create a new project
add a 3d node scene (spatial or whatever it's called)
place a bunch of cubes down (a meshistance, then you select the node, and you should have an option here to select a basic shape https://i.imgur.com/Ajm1PLp.png)
add a DirectionalLight
resize the editor's viewport

big viewport (worse quality)

small viewport (better quality)

wtf
this is driving me insane and it makes testing the shadows impossible, this has to be fixed, i cannot ship a whole game with such a critical bug
:(

Duplicate of https://github.com/godotengine/godot/issues/23603
Thank you for the report though :)

its ok i didn't know what to search for anyway


[Proposal Fix] #154 [BUG] The xlsx-renderer stops to work correctly after code compression

The Issue is caused by using the Function.name property which during compression is minified.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#javascript_compressors_and_minifiers

I'm using the Webpack bundler, and the issue appeared when I have builded the the app with the production mode. It would be perfect if there would be a test for compressed version of the library.


Added methods to Bot.Control to add startup and shutdown hooks for th…

…e bot.

Do you think this is a good idea @Thelonedevil ?

Not actually sure if it will be confusing, because onMessage() is an instance method of IBot.


@jscad/stl-deserializer in the browser?

Can the stl-deserializer be used in the browser? There is only a node example and the code below is not working (I have tried with multiple STLs exported from jscad and other sources)
Expected Behavior
geometry is logged in the console
Actual Behavior
Uncaught (in promise) Error: three or more points are required
    at Object.polyhedron (chunk-JDTWA6TY.js?v=0f31f1e5:518:15)
    at toPolyhedron (@jscad_stl-deserializer.js?v=0f31f1e5:4617:25)
    at elementFormatterObject (@jscad_stl-deserializer.js?v=0f31f1e5:4335:84)
    at deserializeBinarySTL (@jscad_stl-deserializer.js?v=0f31f1e5:4523:15)
    at Object.deserialize (@jscad_stl-deserializer.js?v=0f31f1e5:4340:38)

Steps to Reproduce the Problem
use the below file handler on a file input and open the jscad logo jscad.stl exported from jscad.app
function handleFilesSelect(e) {
		const { acceptedFiles, fileRejections } = e.detail;
		files.accepted = [...files.accepted, ...acceptedFiles];
		files.rejected = [...files.rejected, ...fileRejections];
		console.log('files', files);
		//create rawData arraybuffer
		const rawData = new Uint8Array(files.accepted[0].data);
		const geometry = stlDeserializer.deserialize(
			{ output: 'geometry', filename: files.accepted[0].name },
			rawData
		);
		console.log('geometry', geometry);
	}

Specifications

Version: "@jscad/modeling": "^2.12.1",
"@jscad/stl-deserializer": "^2.1.23",
Platform: windows
Environment: browser

@z3dev it's a custom site, I want to get the geometry from the STL opened via <input type="file" /> and display it in my custom viewer that already handles jscad data.

@z3dev I would also need to load/import then via fetch (to my cloud file storage) in the frontend - which I assume (maybe naively) that once I get the file input working, fetching should also work pretty much the same way.

debugging it, I see that when using script output, the points, faces, and colors are all empty arrays, hence the error. Still trying to track down why they are empty
//
  // producer: JSCAD STL Deserializer 2.1.23
  // date: Mon Apr 01 2024 10:30:53 GMT-0400 (Eastern Daylight Time)
  // source: jscad.stl
  // objects: 1
  //
  const {primitives} = require('@jscad/modeling')
//
// solid 1 : 0 points, 0 faces, 0 colors
//
const solid1 = () => {
  const points = [
  ]
  const faces = [
  ]
  const colors = [
  ]
  return primitives.polyhedron({points, faces, colors, orientation: 'inside'})
}

const main = () => {
 return [solid1()]
}

module.exports = {main}

@z3dev I added a reproduction to the issue (I'm not using the jscad-react package, was just a quick setup in codesandbox and does reproduce there as well)

@z3dev nevermind, I figured it out. Just have to read the file in as a string, instead of raw.
function readFileAsText(file: File): Promise<string> {
	return new Promise((resolve, reject) => {
		const reader = new FileReader();
		reader.onload = (event) => resolve(event.target?.result as string);
		reader.onerror = (error) => reject(error);
		reader.readAsText(file);
	});
}

async function handleFilesSelect(e) {
		const { acceptedFiles, fileRejections } = e.detail;
		files.accepted = [...files.accepted, ...acceptedFiles];
		files.rejected = [...files.rejected, ...fileRejections];
		const fileText = await readFileAsText(files.accepted[0]);
		const geometry = stlDeserializer.deserialize(
			{ output: 'geometry', filename: files.accepted[0].name },
			fileText
		);
		console.log({geometry}); // working
	}

@z3dev working now, but found other issue with certain STLs now - do you think this is unavoidable due to bad STLs or is stl-deserializer broken? #1333


[Internal] Client Telemetry: Adds Miscellaneous Column in Telemetry Payload

Description
"misc" column has been added in Telemetry Payload. The main purpose of this column is to have any temporary information (for debugging purpose) which we want to send.
Type of change

[] New feature (non-breaking change which adds functionality)

Closing issues
To automatically close an issue: closes #2828

I disagree with this design - not you code change. Have we added this in Java already? I would like to see a design one-paper on how this will be used end-to-end. How do we opt-in into sending some "misc" information - and how do we identify what this column would contain. Would we want to add something like "AdditionalDebugInfoProfiles" where customers can opt-in after we tell them to send some additional debug info? To me it sounds like a broken wire contract (you can't do anything useful in Kusto with info when you don't know what it is). I would appreciate if we could go over a design-document explaining the intent, it's wire protocol and discuss the design before approving ay PR related to this.

Whole purpose of this column is to have a place/field where we can send adhoc information in telemetry because adding a column in Kusto and making backend changes is a long process. For example, tomorrow you get an ICM where you think there is some particular information if recorded as part telemetry that would be really helpful to analyze that issue/behavior. You can implement that change as hotfix and store that value in this column.
Design is totally dependent on the type of value you want to store and As part of this PR, only contract for this column is defined between SDK and Backend.
@kirankumarkolli Do you have any comment on this?

I disagree with this design - not you code change. Have we added this in Java already? I would like to see a design one-paper on how this will be used end-to-end. How do we opt-in into sending some "misc" information - and how do we identify what this column would contain. Would we want to add something like "AdditionalDebugInfoProfiles" where customers can opt-in after we tell them to send some additional debug info? To me it sounds like a broken wire contract (you can't do anything useful in Kusto with info when you don't know what it is). I would appreciate if we could go over a design-document explaining the intent, it's wire protocol and discuss the design before approving ay PR related to this.

Whole purpose of this column is to have a place/field where we can send adhoc information in telemetry because adding a column in Kusto and making backend changes is a long process. For example, tomorrow you get an ICM where you think there is some particular information if recorded as part telemetry that would be really helpful to analyze that issue/behavior. You can implement that change as hotfix and store that value in this column. Design is totally dependent on the type of value you want to store and As part of this PR, only contract for this column is defined between SDK and Backend. @kirankumarkolli Do you have any comment on this?

Understood - and this is the reason why i think it is a terrible design. Any adhoc info put there is unusable in Kusto without a clear contract. ClientTelemetry is not the right place for collecting logs or adhoc-debugging info. We can emit collected client telemtry with adhoc-info as logs on the client-side etc. for these cases. But for the ClientTelemetry in the service we need to have clear contracts to be able to use it in alerting, monitoring etc.


Support allow_failures on matrix.

Done: https://github.com/joaope/LocalAppVeyor/commit/f7fb8d2da0e0b95a5cd9f0fe0c663d255dea48c6


Send Accept-Ranges: bytes with every response

Please ensure that your pull request fulfills these requirements:

[x] The pull request is being made against the master branch
[x] Tests for the changes have been added (for bug fixes / features)

What is the purpose of this pull request? (bug fix, enhancement, new feature,...)
Enhancement

What changes did you make?
Now Accept-Ranges: bytes header is sent with every response by default.
Provide some example code that this change will affect, if applicable:
N/A

Is there anything you'd like reviewers to focus on?
I think sending Accept-Ranges: bytes with every response is pretty benign, but surely the behaviour of some programs might be affected with this header (i.e. they might try to stream instead of downloading the whole file). If this is a concern, a new command-line flag can be added.
Please provide testing instructions, if applicable:
N/A

What does this header mean for the client? What does it do?

@thornjad See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Ranges

Would this fix #257?

Sorry I no longer have the repository on my computer (removed it during a migration). It's a trivial change, so please feel free to go ahead and implement it yourself (without giving "credit"). =)

Okay, sure I'll take over this PR!

Presuming the tests pass, I'll approve this PR; thanks for your addition! I made a couple changes to your fork directly so we'll keep history and credit steady.

Thanks! <3


Performance issues from glossary term load on dataset page

The problem
When a dataset page is loaded it calls the getDataset() graphql function to populate the info on the page. Due to various levels of fragment abstraction, this function also pulls the total child counts for each parent glossary node of each glossary term linked to the dataset or its fields. For datasets with a large number of glossary terms linked, this can result in potentially hundreds of duplicate calls to the graph database (e.g. a dataset with 150 terms, each term having 2 parent nodes, will result in 300 additional queries to the graph db). This can severely hurt performance or result in the database connections timing out and the page failing to load entirely.
Proposed fix
Glossary node children totals do not appear to be needed on the dataset page, so removing that portion of the getDataset() query should improve performance in this scenario.

@chriscollins3456 can you close this out when this gets merged? Thanks!

Thanks @Reilman79! i'll close this issue for now, but feel free to reopen if you don't see the performance improvements we're looking for here


baseUrl | context path

i'm using springfox for rest api documentation.. i'm using embedded tomcat in local (spring-boot)
/auto - local
but in other environment (qa or production) context name will be added to uri
/abc/auto -- production
how to resolve this?

Create two dockets with different profiles... and a docket.pathMapping("/abc") to the production one. Tho i'd venture to say that that may not be required.

Thanks @dilipkrish it is working... would you want me to close this?


Send email

Hey how could I send an email using this?

Hello,
Hermes is only for generating the plain text and html emails. We let people choose how to send them. I personally use gomail in association with Hermes and it works great.
You can find an example using Gomail here


How to use update_description?

Thanks for building this nice tool!
On the Working with continuous integration (CI) page in the Help Center, there is a reference to an update_description option:

Make sure to set update_translation or update_description if you intend to not only add new values but also update existing values.

However, I can't figure out how or where to use this option in the Phrase CLI.  If I add a new key, then the description associated with that key is uploaded into the Phrase Web UI, but if I add or change the description of an existing key, that change is not reflected when I run phrase push.
I tried adding update_description: true in multiple places in .phrase.yml with no luck, and phrase push --update_description does not work either.  Any tips?
I am using the Chrome JSON i18n format.

Hi @sffc, sorry for the delayed response. Using the update_description: true should indeed update existing descriptions. Could you reach out to our support at https://phrase.com/contact/ or via the embedded chat on phrase.com? Then we can take a closer look at your specific configuration. Thanks!

Can you tell me where exactly in .phrase.yml to add update_description: true?

Here is an example on how to update descriptions:
  push:
    sources:
    - file: ./translations.json
      params:
        file_format: json
        update_descriptions: true

The option is called update_descriptions instead of update_description. I also missed this in my initial reply. Hope this helps. Let me know if you should still run into any issues

I hope this already resolved your question and I'll go ahead and close this for now.


Remove IntoComponent

Description
This pull request removes the IntoComponent trait in favour of a direct implementation of BaseComponent for function components.
Checklist

[x] I have run cargo make pr-flow
[x] I have reviewed my own code
[ ] I have added tests

I had a quick look over it, I like the major design choice of removing a blanket impl and unsealing BaseComponent. I'll leave a more detailed review in the next days.


Showcase Submission for sound/9-sound-visualization

Thank you Juan Carlos Ponce Campuzano for your contribution! A member of the Coding Train team will review it shortly.

FFT Music Visualizer
Juan Carlos Ponce Campuzano

So cool, thank you again for sharing your work @jcponce!!


Add sample code for MAG-AI Index

sample code using MAG data to generate part of Stanford 2021 AI Index report
Purpose

...

Does this introduce a breaking change?

[ ] Yes
[x ] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[x ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

How to Test

Get the code

git clone [repo-address]
cd [repo-name]
git checkout [branch-name]
npm install

Test the code

What to Check
Verify that the following are valid

...

Other Information

In the prerequisites you ask the user to install the python libraries for plotly, pycountry and azure-storage-blob, however you don't give instructions how to do so.
Are there any existing (generic) tutorials you can link to for doing this?


Update MD file on new branch 2017-22-01_15-12-11

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/updateTestRef.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


feat: add redux context to module federation application

Demo elements

Redux toolkit slices
Exposed Redux store from @carto/utils so it can be propagated across routes and host

follow-up would be to make this it's own module so it scopes redux cache invalidations. Each redux slice could also be it's own target as well.

State propagated across routes

Limitations

Normally the @carto/utils/redux route will expose types for the reducer and the store to help with intellisense. However, this doesn't work with our current SWC config, which seems to not be transpiling it as TS. I think the change here upstream would fix it.

As discussed offline this is going to get some more refactoring regarding how the redux package is stitched into the app


Visability Issue in Firefox ARM64

During the supposedly setup of a MCP23017, which was found at the correct address with i2cdetect, there seemed to be nothing found, whicht turnded out to be not true.
The problem occured in Firefox 86.0.1 64 Bit for Manjaro ARM.

In the Chrome browser it behaved normally.
The used Hardware is a Raspberry Pi4 with 8 GB.

Note to myself: we need to have proper styling and theme support.
Perhaps even switch to React FC?


Join Huggingface x InstantID Spring Festival Event

Hi, all, we are the team from InstantX
We are co-organizing a Spring Festival event with HuggingFace from 2024.2.7 to 2024.2.25. You can now generate pictures of Spring Festival costumes on our official web demo now, we have prepared a default spring festival style for you, but we do encourage you to try on your own (prompts, base models or any other idea). The Spring Festival is a festival that celebrates the beginning of a new year on the traditional lunisolar Chinese calendar, and more importantly, it is a time for family, for reunion.
Our event is holding on Xiaohongshu platform, generate your image with spring festival costumes, post it with event hashtag, follow the account of HuggingFace and @Huggingface. We will pick out some lucky guys to send our official festival gifts based on number of likes, quality of post, etc. More details can be found on the official event page. If you have any question, please feel free to reach us out.
Last but not least, Happy Chinese New Year! Happy Lunar New Year! Don’t forget to tell your family how much you ❤ them!

from InstantX！！！

thanks for your great job！ Happy Chinese New Year!

Happy Chinese New Year!
Can you share the styles for "Spring Festial"? Wanna run it locally, demo page has quota for GPU which runs out very quickly.

It seems the huggingface space demo is much better in terms of following instructions, anything you can share?

The default style template is "Flat illustration, a Chinese {prompt}, ancient style, wearing a red cloth, smile face, white skin, clean background, fireworks blooming, red lanterns". You can play it with your own idea. I do hope you enjoy it!


Update .travis.yml

Thanks! You might consider making a similar PR to the 3.x branch, too. :smile:


UI selectors resource

We currently have pages for
Type selectors
Class selectors
ID selectors
Universal selectors
Attribute selectors
We should add a page for
UI selectors

@chrisdavidmills I'm assuming this would cover the things under Input Pseudos in the Level 4 specification. I don't think we use the term UI Selectors anywhere.
https://www.w3.org/TR/selectors-4/#input-pseudos

Yes, agreed.

I'm not sure having done https://github.com/mdn/sprints/issues/1687 if we need this, or where it would go. The spec doesn't have "UI Selectors" as a thing, so I'm assuming that what Estelle was referring to are the Input Pseudos from that list. However they don't fit as a distinct thing in the list mentioned.
I think if anything maybe some guide as to their use, although I think we already have some of that dotted around. Let me know what you think @chrisdavidmills

I think you're right. Let's close this now.


Pinning down an Error type for SimpleDecoder and SimpleEncoder

Per @apoelstra's comment, we should pin down an Error type for SimpleDecoder and SimpleEncoder. I believe we should define a type network::serialize::Error that is a variant of util::Error.
Why we shouldn't just use util::Error:
Reason 1
It stops the overpopulation of util::Error variants.
Reason 2
In files such as script.rs, if we did
use ::Error;

Such that we can do
fn consensus_decode(d: &mut D) -> Result<Script, Error> {
    ...
}

It would trigger a namespace conflict with script::Error.
Note: this is assuming that we do
pub use util::Error;

at the top-level lib.rs.

Sounds good to me.
Agree that I'd prefer util::Error to be an enum of module-specific errors and have few (if any) top level error conditions.

@apoelstra Should we differentiate serialize::Error into serialize::EncodingError and serialize::DecodingError?
pub enum Error {
    Encoding(EncodingError),
    Decoding(DecodingError),
}

pub enum EncodingError {
    ...
}

pub enum DecodingError {
    ...
}

I wouldn't - I think serialization errors are always io::Error and the deserialization error type already needs an io variant.

It seems like a lot of util::Error variants will now be moved to serialize::Error. Could people assist me in identifying which ones would make sense to move? I will move them and then attempt to appease the compiler.
pub enum Error {
    /// An I/O error
    Io(io::Error),
    /// Base58 encoding error
    Base58(base58::Error),
    /// Bech32 encoding error
    Bech32(bitcoin_bech32::Error),
    /// Error from the `byteorder` crate
    ByteOrder(io::Error),
    /// Network magic was not what we expected
    BadNetworkMagic(u32, u32),
    /// Network message was unrecognized
    BadNetworkMessage(String),
    /// An object was attempted to be added twice
    DuplicateHash,
    /// Some operation was attempted on a block (or blockheader) that doesn't exist
    BlockNotFound,
    /// Parsing error
    ParseFailed,
    /// An object was added but it does not link into existing history
    PrevHashNotFound,
    /// secp-related error
    Secp256k1(secp256k1::Error),
    /// The `target` field of a block header did not match the expected difficulty
    SpvBadTarget,
    /// The header hash is not below the target
    SpvBadProofOfWork,
    /// Error propagated from subsystem
    Detail(String, Box<Error>),
    /// Unsupported witness version
    UnsupportedWitnessVersion(u8),
}

Initial guesses:
    /// An I/O error
    Io(io::Error),
    /// Base58 encoding error
    Base58(base58::Error),
    /// Bech32 encoding error
    Bech32(bitcoin_bech32::Error),
    /// Error from the `byteorder` crate
    ByteOrder(io::Error),
    /// Network magic was not what we expected
    BadNetworkMagic(u32, u32),
    /// Network message was unrecognized
    BadNetworkMessage(String),
    /// Parsing error
    ParseFailed,
    /// Error propagated from subsystem
    Detail(String, Box<Error>),

Looks good to me. Also a few of these aren't used anywhere .. DuplicateHash and PrevHashNotFound and BlockNotFound. They can just be deleted.

See also #134


Is there a way to turn the screen flashes back on?

After one of the updates, the screen wont flash after you get shot, flashbanged, or dodge a bullet. It seemed nice at first, but its kind of hard to tell when I take heavy damage, is there any way to get the flashes back?

Turn Colour Grading off. This is a side effect from using a different colour grading than the default or Payday+ (which is the default). Eventually I'll have a fix or change issued, but it's a complicated issue and takes a lot of time, so for now turn off or use the default colour grading.

Ok that worked, but just so you know, I did have both the gradings set to default and it stilll removed the flashes.

In-game colour grading removed, no longer an issue with latest.


add aglet 1.2.0

Testing:

https://ci.appveyor.com/project/ingenue/hunter/build/1.0.2152
https://travis-ci.org/ingenue/hunter/builds/264240073?utm_source=github_status&utm_medium=notification

Appveyor and Travis look good.

Uploading:

https://ci.appveyor.com/project/ingenue/hunter/build/1.0.2157
https://travis-ci.org/ingenue/hunter/builds/264333343?utm_source=github_status&utm_medium=notification

Released: https://github.com/ruslo/hunter/releases/tag/v0.19.69


Anyone knows how we can keep both the input and calendar visible ?

Simillar with #193 .
Now we should use DayPickerRangeController for eg, if we want to keep the calendar visible all the time, but how can we show the inputs also ?

Hi @dtalaba, sorry for the delay in response! If you want it always visible but absolutely positioned, I'd just make sure that focusedInput is never set to null ie your onFocusChange method would look like:
onFocusChange({ focusedInput }) {
  if (focusedInput) {
    this.setState({ focusedInput });
  } else {
    this.setState({ focusedInput: START_DATE });
  }
}

If you want it to be inline, you will in fact have to use DayPickerRangeController and DateRangePickerInputController and then wire up the interaction between the two yourself.

@majapw Thanks for this solution. The only change I had to make was to not destructure focusedInput from the input parameter.


pyodbc 5.1.0 vs. Python: 3.13: Installation Fails

Environment

OS: Debian GNU/Linux 12 (bookworm)
Python: 3.13
pip: 24.2
pyodbc: 5.1.0
psycopg2: 2.9.9

Issue
Expected behavior: installation via pip succeeds.
Observed behavior: installation via pip fails.
Output:
Building wheels for collected packages: psycopg2, pyodbc
  Building wheel for psycopg2 (pyproject.toml): started
  Building wheel for psycopg2 (pyproject.toml): finished with status 'done'
  Created wheel for psycopg2: filename=psycopg2-2.9.9-cp313-cp313-linux_x86_64.whl size=520844 sha256=5bcc42cf01ad04e88b725e67c487e7fdaa13013cea42fac1a49d048c6043e007
  Stored in directory: /tmp/pip-ephem-wheel-cache-apwfaodp/wheels/2a/2a/86/08f4d537c1f8ebeeb82497d4a665e0eea2934e03b5aed4518c
  Building wheel for pyodbc (pyproject.toml): started
  Building wheel for pyodbc (pyproject.toml): finished with status 'error'
  error: subprocess-exited-with-error

  × Building wheel for pyodbc (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [34 lines of output]
      WARNING: '' not a valid package name; please use only .-separated package names in setup.py
      running bdist_wheel
      running build
      running build_py
      creating build/lib.linux-x86_64-cpython-313
      copying src/pyodbc.pyi -> build/lib.linux-x86_64-cpython-313
      running build_ext
      building 'pyodbc' extension
      creating build/temp.linux-x86_64-cpython-313/src
      g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DPYODBC_VERSION=5.1.0 -I/usr/local/include/python3.13 -c src/cnxninfo.cpp -o build/temp.linux-x86_64-cpython-313/src/cnxninfo.o -Wno-write-strings
      g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DPYODBC_VERSION=5.1.0 -I/usr/local/include/python3.13 -c src/connection.cpp -o build/temp.linux-x86_64-cpython-313/src/connection.o -Wno-write-strings
      g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DPYODBC_VERSION=5.1.0 -I/usr/local/include/python3.13 -c src/cursor.cpp -o build/temp.linux-x86_64-cpython-313/src/cursor.o -Wno-write-strings
      g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DPYODBC_VERSION=5.1.0 -I/usr/local/include/python3.13 -c src/decimal.cpp -o build/temp.linux-x86_64-cpython-313/src/decimal.o -Wno-write-strings
      g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DPYODBC_VERSION=5.1.0 -I/usr/local/include/python3.13 -c src/errors.cpp -o build/temp.linux-x86_64-cpython-313/src/errors.o -Wno-write-strings
      g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DPYODBC_VERSION=5.1.0 -I/usr/local/include/python3.13 -c src/getdata.cpp -o build/temp.linux-x86_64-cpython-313/src/getdata.o -Wno-write-strings
      g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DPYODBC_VERSION=5.1.0 -I/usr/local/include/python3.13 -c src/params.cpp -o build/temp.linux-x86_64-cpython-313/src/params.o -Wno-write-strings
      src/params.cpp: In function ‘int PyToCType(Cursor*, unsigned char**, PyObject*, ParamInfo*)’:
      src/params.cpp:250:36: error: too few arguments to function ‘int _PyLong_AsByteArray(PyLongObject*, unsigned char*, size_t, int, int, int)’
        250 |             if (_PyLong_AsByteArray((PyLongObject*)absVal, pNum->val, sizeof(pNum->val), 1, 0))
            |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from /usr/local/include/python3.13/longobject.h:107,
                       from /usr/local/include/python3.13/Python.h:81,
                       from src/pyodbc.h:40,
                       from src/params.cpp:15:
      /usr/local/include/python3.13/cpython/longobject.h:111:17: note: declared here
        111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
            |                 ^~~~~~~~~~~~~~~~~~~
      src/params.cpp:480:38: error: too few arguments to function ‘int _PyLong_AsByteArray(PyLongObject*, unsigned char*, size_t, int, int, int)’
        480 |         int ret = _PyLong_AsByteArray((PyLongObject*)digitLong, pNum->val, sizeof(pNum->val), 1, 0);
            |                   ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /usr/local/include/python3.13/cpython/longobject.h:111:17: note: declared here
        111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
            |                 ^~~~~~~~~~~~~~~~~~~
      error: command '/usr/bin/g++' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pyodbc
Successfully built psycopg2
Failed to build pyodbc
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (pyodbc)

Probably addressed w/ #1361 (#1344) but not released yet?

A release to address 3.13 would be most appreciated 😁

For now, try
pip install git+https://github.com/mkleehammer/pyodbc.git

@mkleehammer In the "build artifacts" pipeline, cibuildwheel has been updated to v2.21.3, which uses the new Python 13.3.0 release.  Tests pass on all Python versions from 3.8 to 3.13.  I believe pyodbc for Python 13.3 can be released now.

Hi, I’m using Python 3.13.0 and noticed that pre-built wheels for pyodbc are not yet available for this version. I tried building from source but encountered errors. I wanted to check if support for Python 3.13 is planned or if there’s any update on when it might be available. Is there a timeline for this?
Thank you for your hard work on maintaining this project!

Version 5.2.0 has been released with wheels for Python 3.13, thanks to @keitherskine

Version 5.2.0 has been released with wheels for Python 3.13, thanks to @keitherskine

Thank you, @keitherskine and @mkleehammer - keep up the good work!


Readme - some grammatical corrections

In the Readme...some of the full sentences have periods and some dont... (Quickstart vs. Welcome).  Also "By default, ansible-navigator uses execution environments, to use ansible-navigator without an execution enviroment, ansible is required"...would it sound better as.... "By default, ansible-navigator uses execution environments,.  To use ansible-navigator without an execution enviroment, ansible is required."

resolved_by_pr #240


Performance Enhancements

The grow monitor service was using a lot of CPU on my Pi Zero 1 which ate up power, regularly in the 70-90% CPU utilisation.
At this point I thought, does it really have to update, render, and resave the config on every single loop?
So I split it out into 3 functions and use the schedule package, now it's much more likely to be in the 30-60% CPU range, and the main loop is much cleaner.

One other thing I wanted to try was storing a base image on each view, there's no need to re-render all the icons and backgrounds every single frame, better to render it once, then copy and draw text/charts over the top. I don't know how much this would actually save though

This is some great effort toward making this a better script, thank you and sorry it has gone largely ignored. Everything is on fire for me right now, but I'm working through it.
I've upgraded Grow to our latest Python packaging standards, and am now starting to migrate it from RPi.GPIO over to gpiod/gpiodevice. This is quite a significant upheavel and will conflict and make a merry mess of your well intentioned changes.
Would you like to:

Wait for the dust to settle and rebase these changes on top of the updated library

Or:

Let me figure it out (and wrangle github to ensure you're correctly credited as the author)

I actually have one or two bugbears I've been meaning to fix:

my backlight goes off when my fingers shadow crosses the light
Pressing the buttons doesn't turn on the backlight
sensor 1 doesn't display a bar on the main screen for some reason, but displays fine in the full screen view with the graph, sensor 2 does not have this issue though, very weird

I also determined most of the CPU usage after these changes is from image rendering, and there's newer versions/replacements of the library used.
Wrangle everything you need to and I'll revisit this, then I can do it in more atomic PRs instead of one great big one.
Something I would suggest though:

make the grow config file non-root
change the install method so that the monitor isn't installed into the bin folder but instead just a wrapper is installed, that way updating the script is just a git pull away rather than doing vim surgery in the user bin folder as root

The monitor script would also be relying on packages in a virtual environment in most cases, so I need to figure out how to run "services" like that in the context of the correct venv 😬
Work in progress for the migration is here - https://github.com/pimoroni/grow-python/pull/36
Huge roadblock for this is that gpiod doesn't support soft PWM, nor will it ever. I've tried to implement PWM in pure Python and it works, but it's not stable or reliable. Might have to roll a new, do-one-thing-succinctly PWM library for this.
I haven't tackled edge counting with the sensors yet, either, but in theory gpiod should handle that reasonably well.