LRU Cache Implementation In Java

Task : LRU Cache Implementation in Java.
Why Needed : Everyone might be aware that cache is a part of computer memory that is used for storing the frequently used data temporarily. But the size of the cache memory is fixed, and there exists the management requirement where it can remove the unwanted data and store new data there. Here, LRU comes into the role. Thus, LRU is a cache replacement algorithm used for freeing the memory space for the new data by removing the least recently used data.
Logic : Whenever a user references a page, there may be two cases. Either the page may exist within the memory, and if so, just detach the node of the list and bring that page to the front of the queue. Or, if the page is not available (does not exist) in the memory, then it is initially moved in the memory. For it, the user inserts a new node to the front of the queue and, after that, update the address of the corresponding node in the hash. In case if the user determines that the queue is already full (all frames are full), just remove a node from the rear end and, after that, add the new node to the front end of the queue.
@the-moonLight0  I am participant in hacktoberfest. Please assign this issue to me. Thanks.

Nice explanation , go ahead

PR is raised please approve with hacktoberfest label added. thanks.
LRU cache implementation #42


App got stuck when Flutter was initlized on some old models iPhone

I'm using Flutter 1.12.13  to develop iOS app, but sometimes I found App get stuck on some model iPhone (most below iPhone 7 Plus).

If so, could you please provide
your updated flutter doctor -v,
the details on which device / iOS version the issue occurs
and your flutter run --release --verbose on said device / devices
Thank you

Without additional information we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


Support Stripe request signatures

A callback is no longer what https://stripe.com/docs/webhooks, a recommends. That page doesn't mention callbacks at all (though the https://api.stripe.com/v1/events/… API remains).
Should probably use Stripe-Signature as described in this section or (more specifically) this section. https://stripe.com/docs/webhooks#replay-attacks is also relevant.

Likely to do this enhancement in the Core world only.

Do this for both receivers. Remove support for existing security verifications.

Turns out the Core Stripe receiver has been broken since #187 went in. Ooops…

93aa3b3f16


Clipping of analysis/synthesis voice

WORLD-based analysis/synthesis voice sometimes causes clipping of waveform samples even when the original sound does not cause.

The clipping occurrs even when using not mcep but spc. So this may not be our problem. I will check original world source to confirm this errors.
For the temporal solution, I added clipping limit for analysis/synthesis.


:ghost: Add test badges to README

Adding on-merge Hub build workflow and nightly tests badges to README (both are green as of now).

Screenshot:


Fix field validation in replace server dialog

The field validation in the replace server dialog had three problems:

It did not exclude in-use servers from the pulldown list of
available servers.
The duplicate check should have flagged only those values used in
a server in the model
The duplicate IP address check should have checked against IP
addresses used either as the main server address or its ILO address

In the process of improving the parameters to the validator I found
that the existing mechanism of checking for duplicates required very
tight coupling between the validator function and the field being
validated: specifically, the validator required that the input be
passed with two hardcoded properties, each of which needed to contain
a very specific structure.  Rather than propagating that further,
established a more general validation function for checking for
duplicates and for checking multiple criteria.

Note that I rebased against master and re-pushed


Hard dependency on anaconda

This project only depends on anaconda because of rdkit, which still doesn't support PyPi packages because of its native dependencies, but this could change relatively soon (at least partially). Once that happens, this project could migrate all its dependencies to poetry or any similarly modern package manager, leaving conda as an optional dependency.
This issue is intended as a reminder, and doesn't require any immediate action. Feel free to add it to a project board, leave it open, or simply close it and, optionally, document this in a separate file.

Thanks for this. I think it is a solid idea, and in the perfect world I would like to install the package with a single command.
The rdkit is one problem that they have working on for several years, so I am not holding my breath that it will be solved anytime soon.
Another problem is that I rely on graphviz binaries that are not python packages as all - how would you suggest to solve that dependency?
In a near future I would also like to move to the C++ implementation of RDChiral (https://gitlab.com/ljn917/rdchiral_cpp), which also is most easily managed by conda.
This is what I like with conda: you can mix pure python libraries with compiled libraries that very easily. I would rather that poetry would integrate better with conda, but most python package manager is only written with pure python packages in mind.

:facepalm: So true! No matter what approach we choose, we'll end depending on platform-specific libraries for dot rendering, and it looks like there aren't any binary wheels providing the dot command-line tool; at least, not yet.
Given poetry and conda can coexist, it may be a good idea to leverage that symbiosis. After experimenting a bit with #21, I noticed that it might actually be a good idea. In fact, it's somewhat supported by the former.

I was also thinking that graphviz is probably only being used for the frontend (graphical) part, and it could be also the case for rdkit, or so it seems. Would it be posible to separate the backend from the frontend and rely on conda only for the latter? This would probably make the integration with https://github.com/deepchem/deepchem/issues/1198#issuecomment-771098205 easier and [probably] wouldn't add any noticeable complexity to the user experience.

Right now graphviz is only a "soft-dependency", as there is no module imports necessary for this. And right now it is mostly used in the Jupyter notebook GUI to display roots. I have experimented with more interactive presentation, but haven't really manage to incorporate all the necessary Javascript in the notebook.
Also I do think there is a use-case for exporting images of the routes, and for that graphviz is essential.
rdkit is a on the other hand a hard dependency as it used in the core of the algorithm.

As of version 2.4.0 of the package, poetry is used to manage dependencies. So will close this issue now.


Just implementing it to build gradle invoke error

I added maven { url 'https://jitpack.io' }
and on build.gradle(app module)
on dependency . I added implementation 'com.github.felHR85:UsbSerial:6.0.5'
When I build project to real device,
it invoke error as below

build failed
41s 578ms

Run build
41s 328ms

Load build
5ms

Configure build
1s 642ms

Calculate task graph
66ms

Run tasks
39s 599ms

null

Invoke-customs are only supported starting with Android O (--min-api 26)

Stripped invalid locals information from 1 method.

null

com.android.builder.dexing.DexArchiveBuilderException: Failed to process /Users/jpd/.gradle/caches/transforms-1/files-1.1/UsbSerial-6.0.5.aar/d7d4b2e76bc8403376feccc049587b9f/jars/classes.jar

com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.

com.android.tools.r8.CompilationFailedException: Compilation failed to complete

com.android.tools.r8.utils.AbortException

Add this to your gradle, in the android section:
  compileOptions {
        encoding "UTF-8"
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }


chore(master): release 2.0.6

:robot: I have created a release beep boop
2.0.6 (2023-11-08)
Bug Fixes

npm publish error (14a3b93)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/keq-request/keq/releases/tag/v2.0.6 :sunflower:


three minor spelling typos

(html and tex not re-generated)

It is a very interesting tutorial, by the way.

Thanks!


catch 22

Category

What is the current behavior?
try to delete a book
What is the desired behavior?
delete book and account
Additional information
edit book never loads in Chrome.
delete account says delete book first. tried delete account from within account and at place directed to after searching question.
no readily apparent info by searching,on how to delete the book

editor client will not install on windows 10
web editor will not load in Safari,Chrome, or firefox.
please delete the davespace account and close issue

editor client will not install on windows 10
web editor will not load in Safari,Chrome, or firefox.
please delete the davespace account and close issue

downloaded  gitbook 6.5 beta and that installed. deleted all text from book; but still cannot delete account,because it says "all books must be deleted"

downloaded  gitbook 6.5 beta and that installed. deleted all text from book; but still cannot delete account,because it says "all books must be deleted"

To delete a book: login on https://www.gitbook.com/ and select your book to be deleted. Go to Settings, scroll down to the Danger Zone part, then go for the Delete this book button.


Added Qualys and other scripts

Added new app: Qualys.
Also added few new custom attributes.

Thanks!


[Event Request] Codeunit 99000813 "Carry Out Action" - OnAfterInsertTransLine

Hi, would it be possible to get an event OnAfterInsertTransLine in codeunit 99000813, procedure InsertTransLine, like this :

    procedure InsertTransLine(ReqLine: Record "Requisition Line"; var TransHeader: Record "Transfer Header")
    var
        TransLine: Record "Transfer Line";
        NextLineNo: Integer;
    begin
        if (ReqLine."Transfer-from Code" <> TransHeader."Transfer-from Code") or
           (ReqLine."Location Code" <> TransHeader."Transfer-to Code")
        then
            InsertTransHeader(ReqLine, TransHeader);

        TransLine.SetRange("Document No.", TransHeader."No.");
        if TransLine.FindLast then
            NextLineNo := TransLine."Line No." + 10000
        else
            NextLineNo := 10000;

        TransLine.Init();
        OnInsertTransLineOnAfterTransLineInit(TransLine, ReqLine);
        TransLine.BlockDynamicTracking(true);
        TransLine."Document No." := TransHeader."No.";
        TransLine."Line No." := NextLineNo;
        TransLine.Validate("Item No.", ReqLine."No.");
        TransLine.Description := ReqLine.Description;
        TransLine."Description 2" := ReqLine."Description 2";
        TransLine.Validate("Variant Code", ReqLine."Variant Code");
        TransLine.Validate("Transfer-from Code", ReqLine."Transfer-from Code");
        TransLine.Validate("Transfer-to Code", ReqLine."Location Code");
        TransLine.Validate(Quantity, ReqLine.Quantity);
        TransLine.Validate("Unit of Measure Code", ReqLine."Unit of Measure Code");
        TransLine."Shortcut Dimension 1 Code" := ReqLine."Shortcut Dimension 1 Code";
        TransLine."Shortcut Dimension 2 Code" := ReqLine."Shortcut Dimension 2 Code";
        TransLine."Dimension Set ID" := ReqLine."Dimension Set ID";
        TransLine."Receipt Date" := ReqLine."Due Date";
        TransLine."Shipment Date" := ReqLine."Transfer Shipment Date";
        TransLine.Validate("Planning Flexibility", ReqLine."Planning Flexibility");
        OnInsertTransLineWithReqLine(TransLine, ReqLine, NextLineNo);
        TransLine.Insert();
        OnAfterTransLineInsert(TransLine, ReqLine);

        ReqLineReserve.TransferReqLineToTransLine(ReqLine, TransLine, ReqLine."Quantity (Base)", false);
        if ReqLine.Reserve then
            ReserveBindingOrderToTrans(TransLine, ReqLine);

        OnAfterInsertTransLine(TransHeader);
    end;

    [IntegrationEvent(false, false)]
    local procedure OnAfterInsertTransLine(var TransHeader: Record "Transfer Header");
    begin
    end;

Thanks

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.


Colorize Plugin broke

colorize is no longer going to a sub-folder for some reason.  I need to look into that

works in Fedora 36 test


Add a terminal UI for Luckysheet

Add a terminal UI for Luckysheet, probably using blessed library: https://github.com/chjj/blessed (if your API is in nodeJS; works, but frozen), or https://github.com/jquast/blessed (if your API can be bound to Python; works, and is actively maintained), or use mighty old ncurses (in C; for the bold...). This would of course use the existing Luckysheet API.

Functions and solutions to be discussed


ci: don't have typos job depend on build

#53  👈
main

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

Join @dyc3 and the rest of your teammates on  Graphite


Remove sort arrows from headers

Appeared like a good idea at first, but not enough use to keep it in.

Once merged, verify and push to live when you have the chance!


Implement SAML2 assertion access control

An access control to be used in a SAML2 assertion consumer service endpoint.
https://cheatsheetseries.owasp.org/cheatsheets/SAML_Security_Cheat_Sheet.html mentions some security issues and how to address them.
https://tools.ietf.org/html/rfc7522#section-3 (which describes a similar case) has some requirements for assertion format and processing requirements.
The following is a mix of requirements:

check RelayState param (= RelayState from AuthN request query param)
always perform schema validation on the XML document prior to using it for any security-related purposes.
validate SAML2 response:

valid signature (from IdP metadata file (and samlp:Response/ds:Signature))
samlp:Response/@Destination (= ACS endpoint URL of SP)
samlp:Response/@InResponseTo (= samlp:AuthnRequest/@ID of the AuthN request)
samlp:Response/saml:Issuer (= entity_id of IdP, from IdP metadata file)
check samlp:Response/samlp:Status/samlp:StatusCode/@Value

validate incoming SAML2 assertion:

valid signature (from IdP metadata file (and saml:Assertion/ds:Signature))
saml:Assertion/saml:Issuer (= entity_id of IdP, from IdP metadata file)
saml:Assertion/saml:Conditions/saml:AudienceRestriction/saml:Audience (= entity_id of SP, from Couper config)
has saml:Assertion/saml:Subject/saml:Subject
saml:Assertion/saml:Conditions/@NotOnOrAfter or saml:Assertion/saml:Subject/saml:SubjectConfirmation/saml:SubjectConfirmationData/@NotOnOrAfter

saml:Assertion/saml:Conditions/@NotOnOrAfter: if time passed, reject Assertion
saml:Assertion/saml:Subject/saml:SubjectConfirmation/saml:SubjectConfirmationData/@NotOnOrAfter: if time passed, reject SubjectConfirmation

saml:Assertion/saml:Subject/saml:SubjectConfirmation/@Method (= 'urn:oasis:names:tc:SAML:2.0:cm:bearer')
saml:Assertion/saml:Subject/saml:SubjectConfirmation/saml:SubjectConfirmationData/@Recipient (= ACS endpoint URL of SP)
saml:Assertion/saml:Subject/saml:SubjectConfirmation/saml:SubjectConfirmationData/@InResponseTo (= samlp:AuthnRequest/@ID of the AuthN request)
check saml:Assertion/saml:AuthnStatement/saml:AuthnContext/saml:AuthnContextClassRef
if invalid: create HTML error response, because the request is a front-channel request

transform attributes about the authenticated user into claims, which may be used elsewhere in JWT creation

  saml2 "BI_SSO" {
    # the XML metadata about the identity provider
    idp_metadata_file = "idp-metadata.xml"
    # the entity id of the service provider (couper)
    entity_id = "my-couper-api"

    # single sign on service (idp)
    sso_binding = "HTTP-Redirect" # irrelevant for access control?
    # assertion consumer service (couper)
    acs_binding = "HTTP-Post"
    # alternative: binding = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"

    # whether to generate JSON claims
    generate_json_claims = true
    # which `saml:Attribute` elements are expected to possibly have multiple `saml:AttributeValue` element children
    array_attributes = ["memberOf"]

    # generates:
    #claims = {
    #  iss = "https://the-id-provider.com…" # saml:Assertion/saml:Issuer
    #  sub = "username" # saml:Assertion/saml:Subject/saml:NameID
    #  exp =<PHONE_NUMBER> # saml:Assertion/saml:Conditions/@NotOnOrAfter -> unixtime
    #  nbf =<PHONE_NUMBER> # saml:Assertion/saml:Conditions/@NotBefore -> unixtime
    #  iat =<PHONE_NUMBER> # saml:Assertion/@IssueInstant -> unixtime
    #  aud = "my-couper-api" # saml:Assertion/saml:Conditions/saml:AudienceRestriction/saml:Audience
    #  # loop saml:Assertion/saml:AttributeStatement/saml:Attribute -> @Name = ./saml:AttributeValue
    #  displayName = "Doe, John (External)"
    #  objectSid = "S-1-5-21-123456789-0123456789-123456789-000001"
    #  mail =<EMAIL_ADDRESS>    #  # Attribute with multiple AttributeValue's become arrays?
    #  memberOf = [
    #    "admin",
    #    "users",
    #    "CN=Special AD Group,OU=foo,DC=example,DC=com"
    #  ]
    #}
  }

in addition to preparing a ready-to-user claims object in req.ctx.SAML_AC.claims , we could provide some of the assertion values in SAML lingo:
req.ctx.SAML_AC.Issuer
req.ctx.SAML_AC.Subject (or rather .NameID?)
req.ctx.SAML_AC.NotOnOrAfter
…

Otherwise we couldn't use specific values if generate_json_claims = false.
On the other hand, I don't see a reason why we shouldn't always generate the jwt claims. Then, req.ctx.SAML_AC.claims.exp is as good as req.ctx.SAML_AC.NotOnOrAfter.

req.ctx.SAML_AC provides information from the SAML assertion:

...SAML_AC.iss: issuer from saml:Assertion/saml:Issuer
...SAML_AC.sub: subject ID from saml:Assertion/saml:Subject/saml:NameID
...SAML_AC.exp expiration date (unixtime) from saml:Assertion/saml:Conditions/@NotOnOrAfter
...SAML_AC.nbf not before date (unixtime) from saml:Assertion/saml:Conditions/@NotBefore
...SAML_AC.iat issued at date (unistime) from saml:Assertion/@IssueInstant
...SAML_AC.aud audience from saml:Assertion/saml:Conditions/saml:AudienceRestriction/saml:Audience (array?)
...SAML_AC.attributes object of attributes from saml:Assertion/saml:AttributeStatement/saml:Attribute, e.g.:

...SAML_AC.attributes.displayName
...SAML_AC.attributes.mail
...SAML_AC.attributes.memberOf

generate_json_claims is not necessary.

we still need the array_attributes attribute to keep memberOf with a single entry collapsing into a string.
we dropped the idea of ….claims, because it is unlikely to use the whole set of data from the assertion in jwt_sign() as claims. iss, aud, exp will probably be different, nbf and iat, too. we use JWT sprech for the field names, because that is the intended sink for this data.

I currently use github.com/russellhaering/gosaml2. It requires to set a AssertionConsumerServiceURL, so I added an additional property to the couper.hcl config:
  saml2 "MySAML" {
    idp_metadata_file = "idp-metadata.xml"
    sp_entity_id = "my-sp"
    sp_acs_url = "https://my-sp/saml/acs"
    array_attributes = ["memberOf"]
  }

Just for the record: github.com/russellhaering/gosaml2 has some issues, that are currently not relevant for us:

it uses only the first Assertion within a Response (per spec there may be several Assertions)
it uses only the first SubjectConfirmation within a Subject (per spec there may be several SubjectConfirmations)

The lib provides a function BuildAuthURL() on a SAMLServiceProvider struct which builds an SSO URL.
The created XML looks like (white-space added):
<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
                    ID="_80314219-e90f-4f36-8071-068b0191dedd"
                    Version="2.0"
                    ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                    AssertionConsumerServiceURL="https://the-sp.example.com/api/v1/saml/acs"
                    IssueInstant="2021-03-08T15:01:34Z"
                    Destination="https://the-idp.example.org/SSOService">
  <saml:Issuer>the_sp_entity_id</saml:Issuer>
  <samlp:NameIDPolicy AllowCreate="true"
                      Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
</samlp:AuthnRequest>

with

AuthnRequest/@AssertionConsumerServiceURL can be read from saml block sp_acs_url
AuthnRequest/@Destination can be read from idp_metadata: IDPSSODescriptor/SingleSignOnService/@Location
AuthnRequest/Issuer can be read from saml block sp_entity_id
AuthnRequestNameIDPolicy/@Format can be read from idp metadata: IDPSSODescriptor/NameIDFormat

The value for AuthnRequest/@ProtocolBinding is hard-coded in the lib.


Enable dart:html access on vm

I'm on Linux with dart 2.4.1 and with Flutter 1.8.5-pre.117 using dart 2.5.0-dev.1.0.
For flutter on web to work correctly (works but analyzer says it doesn't) access to dart:html has to be enable for vm. I also opened that issue in the flutter issue track, but nobody responded flutter/flutter#35588.
It also relates to #6424 but that issue has another context.
From the original issue:
To get it to work these lines should also be included in the vm section:
https://github.com/dart-lang/sdk/blob/master/sdk/lib/libraries.yaml#L181
Is that possible or would that break anything?

Not sure I understand the comment 'dart:html has to be enabled for vm' as you are using flutter on web which does not involve the VM. I presume you want to the analyzer to accept this without errors.
//cc @devoncarew for comments about analyzer accepting import of dart:html in flutter for web

Yeay exactly.

Currently I think you'll need to have a separate main.dart for web work; the Dart VM will not understand the dart:html import.
You'd want something like this: https://github.com/csells/flutter_mplat_ttt#the-trick, but with two separate entry-point files, one for flutter for web, which could use the dart:html library, and one for flutter for mobile.

@jld3103, looking into this a bit more, I think the work for this would happen in the flutter/engine repo. I'm going to close this issue and add a comment to your original flutter/flutter issue.

Currently flutter web gets unforked into the original repo and it's easily possible to import and work with dart:html.


Ribbon redirect failed on k8s

Ribbon failed on redirecting request to the service instance on kubernetes platform.

Probably better off in spring-cloud-kubernetes issues if you're using that project or spring-cloud-netflix if not.

Change the preferIpAddress value to true. Unlikely other environments k8s pods are not able to find the containers with the hostname.
eureka:
  instance:
    preferIpAddress: true

Yep, preferIpAddress param was the problem. Thanks @vishvarodrigo !


Feature/stepper refinement

So I went a bit ham ... I think I've made some nice improvements to the stepper. It seems to work well, but I'm curious to hear your thoughts, @miggol.
I am now a lot more intimate with the new stepper, and also more appreciative of its utility. Kudos again :)
So, what I've done:

Firstly, I did get rid of the stepper for the first form page. This allowed me to simplify quite a bit, because the stepper is always working with a proposal of which the type is known. This is chill imo.
I've implemented the flows for the different proposal type (PreAss and PreAppr, as I refer to them.)
I've messed a lot with the WMOChecker ...:

Firstly I noticed that the WmoApplicationForm (different from WMOUpdate and such) was not implemented in the stepper, so I've incorporated that. (fixes #699)
I've also done some work on the Wmo views and forms themselves, as I found some incorrect urls ...
I also figured I could make the WmoChecker into a ModelFormChecker, to also get rid of the WmoItem. This was quite the hassle ... I initially wanted to use an CreateOrUpdateChecker, but this did not quite work, so I took inspiration and made it into its own design. This seems to work fine now. However, I do think we need to look into the clean()'s of WMO related forms as these seem kindoff incomplete ...

So then the big one, I've overhauled the validation. (fixes #693) This was pretty simple luckily! A few bumps on the road:

many forms need form kwargs, so the ModelFormChecker now has a get_form_kwargs() method.
Then the other big thing: as individual sessions and tasks are not incorporated into the stepper (which I still think is good) these needed their own validation function. This is somewhat akin to the old validation system, but quite a lot simpler. I don't hate it.
To my great frustration, #691 still persists. I don't know 😭  ....

Lastly I've made some simple implementations to get the correct css classes (incomplete, complete and disabled) This works ... but I feel like there might still be some bugs ... I think having this, mostly just really showcases inconsistencies/messiness in form's individual validation ... So it would be good to have a look at that ... (fixes #694, #693)

Sorry for the big PR ... One thing led to another and such. But overall I think this has improved the stepper quite a bit!

Ok, So I've adressed your comments ... I guess this is fine for now, although I don´t love some aspects of the current design ... Mainly the validation of sessions and tasks ;p A small overview of what I've done:

ensure disabled items are no longer  elements
ensure ContainerItems check all their children and represented errors thusly.
Mostly removed ContainerItems from the stepper, so that all major steps represent modelforms and the modelform's errors. ContainerItems are now only used for studies, when there are multiple studies.
This also led to some slight reordering. It used to be:

StudyEnd > TranslatedForms > Documents > DMP
But now it's:
StudyEnd > Documents > TranslatedForms > DMP

Improved the working of validation and (mostly ...) moved it inside of the stepper. I have mixed feelings about this, as this also leads to a lot more imports on stepper.py. But maybe you have suggestions for improvements of Stepper.get_form_errors() ... I did ensure all the problems with validation you pointed out are fixed ... But this also made the design a bit more complicated.
I've added a possibility of providing a get_checker_errors function to ModelFormItem's in case we need to provide some more specific validation. I've implemented this on SessionsChecker, as an example.
And we're (for now) still stuck with this custom validator function for sessions and tasks ... Which gets called everytime the stepper gets rendered, just to give the Sessions stepper item the right color ... :skull:

IMO this is fine for now though. Curious to hear your thoughts :+1:


feat(open-digital-asset): building open-digital-asset(odap) on top of cactus

Is your feature request related to a problem? Please describe.
Building odap: https://datatracker.ietf.org/doc/draft-hargreaves-odap/ to create odap gateways, enable the client to interact with distributed ledger. See figure 1 of the odap draft for basic work flow.
Cactus implements the technical and syntactic layer regarding blockchain interoperability. Technical and syntactic layer enable negotiation between parties on different ledgers and provide reliable transfer protocol.
However, cactus currently lacks support for the semantic layer. The semantic layer would standardize asset transfer, message format, identity proof, and ledger state-transfer proof. With the semantic layer, we could enable semantic compatibility between different ledgers, to provide a more cross-chain-app friendly infrastructure.
So we propose building odap — standardization effort from IETF, trying to transfer assets across jurisdictions — on top of cactus to provide

Types of API #1027
Types of flows #1028
Format of exchanging message #1026
Format of digital asset resource descriptors
Format of digital asset resource client descriptors
Steps and format of security protocols and parameters negotiation
Steps and format of asset profile negotiation
Steps and format of application profile negotiation
API and implementation to access resources
Type of actions to assets

And after this, we would propose and build a cross-chain dapp on top of odap, to showcase how cactus could be benefit from odap.
@petermetz, @RafaelAPB, @ruychi

@petermetz this issue (and the respective sub-issues related to the odap plugin) should be closed because the functionality described is already implemented


Remove redundancy

Highlight key words in Immediate Steps to catch users attention and emphasize actionable.
Remove repeated chunk of text to improve legibility and include social media communication under one single step.

Hey @misirov , thanks for the PR. I like these changes. We recently made a few minor tweaks that have caused this PR to have a merge conflict.


[SPARK-33405][BUILD] Upgrade commons-compress to 1.20

What changes were proposed in this pull request?
This PR aims to upgrade commons-compress from 1.8 to 1.20.
Why are the changes needed?

https://commons.apache.org/proper/commons-compress/security-reports.html

Does this PR introduce any user-facing change?
No.
How was this patch tested?
Pass the CIs.

Test build #130809 has started for PR 30304 at commit 6182b75.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/35419/

cc @maropu

Thanks! LGTM

Thank you, @maropu !

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/35419/

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/35419/
Test PASSed.

Merged to master.

Thank you, @HyukjinKwon !

Test build #130809 has finished for PR 30304 at commit 6182b75.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/130809/
Test PASSed.


.github/workflows/matrixtest.yml: use LizardByte/setup-python-action

Reconstruct the test matrix but run it separately from the regular lint+test
This brings back 2.7 but Python 3 versions older than 3.7 are still untested
.github/workflows/lint+test.yml: scale down to only lint+test with Python 3.12

I'm okay with dropping 2.7, is there a reason we're using a third party action for this?

It's because Github no longer supports 2.7; the third-party action is a wrapper which gets it back if you want it, but I have no qualms about dropping support for 2.7 if that's what you want.

Yeah I'm comfortable with that. Thanks!


Use elemHashes in lookup

I tried using this in the macrobenchmark for bloom filters only (not the whole lookup) and get odd results with the allocations. The time is good though, and faster than the one-by-one. That mystery doesn't have to be solved for this PR though.


Update about-mule-event.adoc

Discussed this suggestion with developer who found it unclear. Please file an issue if you would like to discuss it further. Thx!


MAJOR: Astrobody Data processor

Feeding the 3 types of data to the processor and then starting research on an Asteroid chip causes the total amount of stored data for the 3 types to RESET to the last state it was at whenever closing out of the GUI.

Start with 500 of each data
Begin research on Asteroid
Asteroid chip begins to fill 0/2000, 1/2000, 2/2000, etc
CLOSE GUI before the three data type reach 0 in the processor. Started with 500, closed at like 200.
Asteroid chip will show 300/2000, as per the spent data.
Upon RE-OPENING the processor GUI, the 3 data type storages will have reset to 500, while the Asteroid chip continues earning points. In essence, free data. This is repeatable infinitely.

Oh I can confirm it, lol. I've deleted all my satellites  and turned my observatory off. I've had max data since reporting this and have mapped at least 6 asteroids. Still have the data, isn't going down.

Unconfirmed just means I've not yet gotten around to testing it myself

Roger that. Let me know if you need a mod list or anything else I can provide to assist as needed!

Turns out I just forgot to decrement after fixing the ABDP reseting upon being out of power or whatever.  Probably from the fix from #331


Added Data Lake 2021-08-06 service version

Why am I being asked to review this? There are no breaking changes.


write tests for lib/lambda

this will allow us to do hella speed improvements to the whole system.

Travis ci is integrated. I've got one test for the lexer and that's it. Mocha is properly poorly configured...
That's all i'm doing today.

mostly implemented in https://github.com/evinism/lambda-explorer/pull/47


Update sbt-scala-native to 0.4.0-test1

Updates org.scala-native:sbt-scala-native from 0.4.0-M2 to 0.4.0-test1.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (0.4.0-M2).
You might want to review and update them manually.
build.sbt

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-native", artifactId = "sbt-scala-native" } ]

labels: sbt-plugin-update, semver-pre-release, old-version-remains

Superseded by #817.

Superseded by #817.


server: handle non-EnvoyExceptions safely if thrown in constructor.

This came up while addressing oss-fuzz issue
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9335 in
https://github.com/envoyproxy/envoy/pull/4171.
Without this PR, the server would shutdown non-gracefully, with TLS
posts still possible to deleted worker thread dispatchers, resulting
in heap-user-after-free. Protobuf was throwing a CHECK exception, which
was not picked up as EnvoyException.
Risk level: Low
Testing: Unit tests added, corpus entry is in
https://github.com/envoyproxy/envoy/pull/4171.
Signed-off-by: Harvey Tuch<EMAIL_ADDRESS>

@mattklein123 we still propagate the error out, yeah, this just ensure we cleanup the partially constructed InstanceImpl before continuing the throw.


Unresolved reference: listOf

Description
A clear and concise description of the bug and how to reproduce it.
Extension version
Which version of the VSCode extension you are running.
Additional context
More information or screenshots.
/* error Unresolved reference: listOfkotlin(UNRESOLVED_REFERENCE) */
val obj = listOf(1, "a", 3, "b", "c")

fun main(args: Array<String>) {
    /**
     * error
     * Class 'kotlin.collections.IntIterator' was compiled with an incompatible version of Kotlin.
     * The binary version of its metadata is 1.8.0, expected version is 1.6.0.
     * The class is loaded from C:/Program Files/kotlinc/lib/kotlin-stdlib.jar!/
     * kotlin/collections/IntIterator.classkotlin(INCOMPATIBLE_CLASS)
     */
    for (i in 1..10) {
        /* error  Unresolved reference: printlnkotlin(UNRESOLVED_REFERENCE) */
        println(obj)
    }
}

This will probably be solved by upgrading the kotlin-language-server to the newest Kotlin version, like there are currently a PR for: #414. The language server currently uses Kotlin 1.6.0 internally, so this seems the most logical conclusion given the error surrounding IntIterator above :)

Any update for upgrading the language server to 1.8.0?

Any update for upgrading the language server to 1.8.0?

The release for that was done weeks ago (and PR for fix merged not long after my last comment):
https://github.com/fwcd/kotlin-language-server/releases
So you probably just need to upgrade to the newest version.

Perfect, thanks much. I'll upgrade once

Any update for upgrading the language server to 1.8.0?

The release for that was done weeks ago (and PR for fix merged not long after my last comment): https://github.com/fwcd/kotlin-language-server/releases
So you probably just need to upgrade to the newest version.

@themkat I'm using the Version: 0.2.31 of the extension, hhow do I upgrade the language server manually?

Perfect, thanks much. I'll upgrade once

Any update for upgrading the language server to 1.8.0?

The release for that was done weeks ago (and PR for fix merged not long after my last comment): https://github.com/fwcd/kotlin-language-server/releases
So you probably just need to upgrade to the newest version.

@themkat I'm using the Version: 0.2.31 of the extension, hhow do I upgrade the language server manually?

Perfect, thanks much. I'll upgrade once

Any update for upgrading the language server to 1.8.0?

The release for that was done weeks ago (and PR for fix merged not long after my last comment): https://github.com/fwcd/kotlin-language-server/releases
So you probably just need to upgrade to the newest version.

Hmm. Not really sure, as I don't use the VSCode extension much. The easiest way is probably to uninstall the VSCode extension and let it download the newest language server for you.
Another solution is to download the latest language server release, and use the path to that one in the VSCode extension settings. There should be a setting in the Kotlin extension settings menu to set the language server path.


Support chunking

This tool tends to fill up target directories really quickly. For large projects like ICU4X, this puts us in danger of hitting CI size limits. Furthermore, it just takes pretty long and it would be nice to be able to make use of parallelism.
A typical technique in CI systems is to support "chunking", where you have something like --chunks 3 --chunk 1, which splits the list of jobs into three chunks, and directs it to run just the jobs for the first one, so you can have the chunks get run on separate runners.
Thoughts?

@Manishearth Do you know which aspect of compiling with different feature flags causes target/ to fill up? I'm open to your suggestion, but also wonder if there's a way we can clean up some files between runs.

I'm not sure! I upgraded rustc a couple versions in https://github.com/unicode-org/icu4x/pull/1783 and suddenly disk space usage for the feature task has more than doubled (I don't have the exact numbers since i'm still waiting for the job to complete)
I suspect it's codegen unit stuff or whatever. But I'm still investigating. Probably I'll try to measure this for a normal build first instead of all-features which takes forever.
For now I've also switched over to using check-all-features, which should be at least a bit better.

You could use cargo build -v --message-format=json and delete selected binaries but it's fiddly and you also kinda want stuff to be cached.

What about something like:
cargo build

cp -R target target-cached

for features in feature_flag_combinations:
    cargo build --features features
    rm -rf target
    cp -R target-cached target

Actually that's probably not good since features could have a ton of dependencies. Maybe the first line should be cargo build --all-features. Hmm

yeah the thing is that all of that is doable, but chunking kinda lets you do much the same without as many nuances

okay so there's actually a bug in cargo-all-features here wrt the new dependency stuff, skip_optional_dependencies isn't working

Yeah, cargo metadata unconditionally generates a "foo": ["dep:foo"] entry for each optional dependency. Gonna fixup the code here.

(is there a reason this crate isn't using serde-json and/or clap?)

https://github.com/frewsxcv/cargo-all-features/issues/29

Another option here would be to just give a way to filter the return value of determine_packages_to_test() in workspaces.


chore(metric): Add metric interface

Signed-off-by: Bo-Yi Wu<EMAIL_ADDRESS>

Codecov Report

Merging #40 (adfd5c0) into master (fbd8614) will decrease coverage by 0.61%.
The diff coverage is 76.47%.

@@            Coverage Diff             @@
##           master      #40      +/-   ##
==========================================
- Coverage   87.46%   86.84%   -0.62%
==========================================
  Files           9       10       +1
  Lines         351      365      +14
==========================================
+ Hits          307      317      +10
- Misses         36       40       +4
  Partials        8        8

Flag
Coverage Δ

go-1.13
86.84% <76.47%> (-0.62%)
:arrow_down:

go-1.14
?

go-1.15
86.02% <76.47%> (-0.59%)
:arrow_down:

go-1.16
86.84% <76.47%> (-0.62%)
:arrow_down:

go-1.17
86.02% <76.47%> (-0.59%)
:arrow_down:

ubuntu-latest
86.84% <76.47%> (-0.62%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

options.go
80.43% <20.00%> (-7.38%)
:arrow_down:

consumer.go
90.19% <100.00%> (+0.09%)
:arrow_up:

metric.go
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


Fix can not authenticate signature by mac touch bar

Hi :)
I've made this demo work with the Mac touch bar.
I used the completed-demo branch, which is a completed demo.
Please merge my changes into the completed-demo branch!
Related #12 #17
Screenshot
https://user-images.githubusercontent.com/25325947/117857773-1aeee800-b2c8-11eb-9eb5-424d7e368c6f.mov

Great! Work for me

@herrjemand
Is it possible to merge this PR into complete demo?

This works for me, thanks 🙌


Add deleteInstance to IOS

I added deleteInstance to IOS and tried to make some documentation improvements

very nice! thank you

shipped in 0.1.0


Update Horreum raw client on main

There is a change in the Horreum openapi spec for branch master. Verify that there are no breaking changes.

looks great!


[abseil] Upgrade to 2021.1102

Describe the pull request
upgrade abseil to version 2021.1102

What does your PR fix?
Fixes #...

Which triplets are supported/not supported? Have you updated the CI baseline?
,

Does your PR follow the maintainer guide?

If you are still working on the PR, open it as a Draft: https://github.blog/2019-02-14-introducing-draft-pull-requests/

Thanks for the update!


Use Parcel for build

Great! Do we have SSR support too? :O

This shows parcels weakness by the way.
Old Bundle size (dist folder no .map files): 432k.
New Bundle size (dist folder no .map files): 708k.
So ~64% bigger.

Bigger compared to webpack.


Updated wx rotating cube example

This PR updates the cube_wx.py example to be compatible with the most recent version of pygfx (world / local position, readonly vectors and so on). To be able to test it, I had to include the wgpu package, where the following PR has been applied: https://github.com/pygfx/wgpu-py/pull/486
Now everything works as expected (currently tested on MacOS):

Thanks! I think we need to hold this until your PR @ wgpu lands in a release. But this looks good!

This is ready to go!


Handle YAML files

This aims to make i18n-check supports YAML i18n files

@antoinm Thanks for the PR!
The idea to support YAML files is very useful and makes sense.
From what I understand we can support both ICU format and i18next.
What we should probably do is also write some CLI tests, that reflect the ones we have for JSON.
One test can validate an ICU YAML file and the other one can validate against the i18next format.
Would you want to write those tests? Otherwise we can add them.

@antoinm Thanks for the PR! The idea to support YAML files is very useful and makes sense. From what I understand we can support both ICU format and i18next. What we should probably do is also write some CLI tests, that reflect the ones we have for JSON. One test can validate an ICU YAML file and the other one can validate against the i18next format.
Would you want to write those tests? Otherwise we can add them.

I can definitely write the tests.
How would you like me to do it ?
Should I simply add some yaml files (following the different structures) in the folders under /translations ?
Or should we have a /translations/json (with the current content of /translations) and a /translation/yaml folders ?
I would go for option 2, so we can keep two separate test suites (1 for JSON and one for YAML).
Since you agreed to the default YAML support approach, I'm afraid mixing both JSON and YAML in the same foldeers might complexify the tests.
What's you opinion on this ?

I can definitely write the tests. How would you like me to do it ? Should I simply add some yaml files (following the different structures) in the folders under /translations ? Or should we have a /translations/json (with the current content of /translations) and a /translation/yaml folders ?
I would go for option 2, so we can keep two separate test suites (1 for JSON and one for YAML). Since you agreed to the default YAML support approach, I'm afraid mixing both JSON and YAML in the same foldeers might complexify the tests.
What's you opinion on this ?

I would say, let's keep it simple for now and add a yaml in the translations folder, maybe something like this:
- translations
  - yaml
    - basic
      - en.yaml
      - de.yaml
    - multipleFilesFolderExample (replicates the JSON one)
      - de-DE
        - one.yaml
        - two.yaml
        - three.yaml
        ...
    - i18NextMessageExamples (replicate the JSON i18NextMessageExamples)

We will have to structure the translations folder at some point, but before now and to get some test working - this should be enough. What do you think?


APEXMALHAR-2394 adding check if already been rotated

@PramodSSImmaneni

I think you mean APEXMALHAR
On Jan 24, 2017, at 12:24 PM, oliverwnk<EMAIL_ADDRESS>wrote:
@PramodSSImmaneni https://github.com/PramodSSImmaneni
You can view, comment on, or merge this pull request online at:
https://github.com/apache/apex-malhar/pull/543
Commit Summary

APEXCORE-2394 adding check if already been rotated

File Changes

M
library/src/main/java/com/datatorrent/lib/io/fs/AbstractFileOutputOperator.java
https://github.com/apache/apex-malhar/pull/543/files#diff-0 (24)

Patch Links:

https://github.com/apache/apex-malhar/pull/543.patch
https://github.com/apache/apex-malhar/pull/543.diff

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/apex-malhar/pull/543, or mute the thread
https://github.com/notifications/unsubscribe-auth/AENquw4H7iIzJBl5zNrNcZ7BbygnEH78ks5rVl4UgaJpZM4LsviP
.

@oliverwnk could you change the title of the PR by replacing APEXCORE with APEXMALHAR. Could you also add a unit test.

Looks like you have some checkstyle violations. Could you run a mvn clean install locally to see if you get these errors.

Can you squash your commits


Adapt default figure separator to the current locale

Fixes #1303
Description
The separator property of figure.caption elements now has a default value of auto, meaning it will adapt to the current locale (e.g., [: ] for english, [ : ] for french).
Many languages are still missing from this PR. Those will use [: ] as a default. Feel free to contribute by adding other languages. For languages other than english and french, I took arbitrary Wikipedia articles as references (looking for colon usage).
Known issue
For reasons related to the cause of #1057, the separator will be recomputed every time the caption is layed out. This means the figure might have a different separator in the outline, if it is in a different language.
Addressing the core issue is well beyond the scope of this PR, and I don't think there are many cases where it would arise, let alone where it would be truly problematic.
Howerver, if you have an idea on how this issue could be fixed easily, I would be happy to implement it. A possible fix would be to move the separator field to the figure itself, and have the figure resolve it once, when creating the caption (like most fields on figure.caption). Although, as mentionned in this comment, the separator property does not make much sense on figure.

I had to keep the get_supplement function because. Not sure this is what you were thinking of.

Thanks!


Problem when bundled (rollup)

Description of the Issue and Steps to Reproduce:
Create a rollup bundle which depends on angular2-moment
Did you search for duplicate issue? Yes
Description:
When I bundle a package with angular2-moment as a dependency, my final build contains the following:
import core_1, { ...other correct import } from '@angular/core';

The core_1 part is not correct and points to a "default" export on angular/core which does not exist.
When my build is imported in Angular (through webpack) it then reads as followed:
__WEBPACK_IMPORTED_MODULE_0__angular_core__["default"].Pipe

As there is no "default" export in angular/core I receive an "Uncaught TypeError: Cannot read property 'Pipe' of undefined"
I do have the following in my rollup config:
...
plugin: {
    nodeResolve({ jsnext: true, module: true }),
    commonjs({
        include: [
            'node_modules/angular2-moment/**',
        ]
    }),
}

Has anyone got the same issue when bundling with rollup?
thanks :+1:

Ok I found a solution.
I did not include angular2-moment in my bundle and set it as "global" in rollup.
I removed the include and it worked.


Add generic state verification functions to ClientState interface

Summary
Add two new generic state verification functions to the ClientState interface.

VerifyMembership
VerifyNonMembership

ref: https://github.com/cosmos/ibc/pull/687
Proposal
Separate PRs can be made to split up the work:

[ ] Add new VerifyMembership and VerifyNonMembership to ClientState interface
[ ] 06-solomachine implementation
[ ] 07-tendermint implementation
[ ] 09-localhost implementation

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged/assigned

For the solo machine implementation, to avoid being blocked by #1141, a switch case should be used on the provided path. If the path matches a supported type then the sign bytes can be constructed, otherwise an error should be returned. The implementation of #1141 will extend the generic verify functions for the solomachine to accept any path

I have a WIP branch for this from a few weeks ago so will self-assign!
PRs will be split up. I'll remove localhost from checklist

I can do the 07-tendermint changes


Represent AccountDiffs::from_block_fees as a Vec<Vec<AccountDiff>>

Describe your changes
All account diffs are represented as an vector of all account diffs at the top level, while each inner vector represents accounts diffs that sum to zero (debits and credits). This will greatly simplify the identification of related AccountDiffs downstream.
Link issue(s) fixed
Relates to (but does not close) #1352
Checklist before requesting a review

[x] I have performed a self-review of my code.
[x] I have added tests that prove my fix is effective or that my feature works.
[x] I have verified new and existing tests pass locally with my changes.
[x] I verified whether it was necessary to increment the database version.

@n1tranquilla Possible to add an assertion that verifies that the inner vecs do indeed sum to zero?

@n1tranquilla Please do not assign to multiple persons. Pick exactly one victim.

@n1tranquilla This change merits a database version bump.

I'm a little late to respond but better would have been to model the Vec<Vec> as something like Vec<(AccountDiff, Accountdiff)> or some FeeTransfer Journal Entry type. Vector is too permissive. It's also missing the most important part which is the assertion to check the balance sums to 0.


Api wrapper transform filter

good pr, i'm missing some edge case tests like empty filter cases (code is there but no tests for it, fix it and then we can merge)


Add options parameter to Nail constructor

Possible parameters:
horizontal: boolean
respectWindow: boolean // if the window is smaller then the pinned item, it won't pin.

customTop: string // 500px - it will pin when it gets to 500px on the window
customBottom: string // 500px - it will unpin when it gets to 500px on the window

added stopOnBottom, if the user wants the element to infinitely scroll, he should use this property.

added respectWindow, if the window is smaller then the pinned element, it get unpinned automatically.
This is configurable now.


ROX-23072: Add detail tabs to cluster single page

Description
Adds "Vulnerability" and "Details" tabs to the cluster single page.
Refactors the tabs on the node single page to reduce noise in the code.
Checklist

[ ] Investigated and inspected CI test results
[ ] Unit test and regression tests added
[ ] Evaluated and added CHANGELOG entry if required
[ ] Determined and documented upgrade steps
[ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)

If any of these don't apply, please comment below.
Testing Performed
Visit a cluster single page. The tab parameter should default to "Vulnerabilities" and be visible in the URL.

Click on "Details" to view the tab, content, and URL change:

@sachaudh I did some thinking of your comment here and came up with a custom hook that could be used as a way to abstract the tab logic and boilerplate used in the node single page.
Since there was a mix of hook logic and component rendering, I came up with a solution that used a hook to encapsulate all of the boilerplate of creating the components and managing the URL, and then returned JSX to be rendered in the parent component. Although this does reduce the overhead somewhat, I was concerned because:

We move some of the Tab/TabContent props to the top of the parent component via a descriptor pattern, which does reduce boilerplate but adds some indirection
Returning components from hooks isn't really a pattern we've used elsewhere as far as I can tell
There is added complexity due to the useMemo and createRef calls in a loop in the custom hook and I'm concerned about subtle bugs this could introduce

I also took a quick look at creating custom components (without the hook), but the implementation was mostly a wrapper around existing PF components with default props.
Instead, in this PR I used a simplified version of the current pattern:

Removed usage of id and refs for the disconnected content
Instead of wrapping in <TabContent> components, just conditionally render each tab's content in a normal <PageSection>

The benefits of using a <TabContent> are actually the opposite of what we want in this case: a full unmount and rerender of the content inside the tabs in order to get the most recent data when the component loads. I tested this out on the Node page and the rendering behavior is exactly as it was before this PR, with quite a bit less code.


Re-factor how the GenericL10n class fetches localization-data

Re-factor the existing fetchData helper function such that it can fetch more types of data, and it now supports "arraybuffer", "json", and "text". This only needed minor adjustments in the DOMCMapReaderFactory and DOMStandardFontDataFactory classes.[1]

Expose the fetchData helper function in the API, such that the viewer is able to access it.

Use the fetchData helper function in the GenericL10n class, since this should allow fetching of localization-data even if the default viewer is run in an environment without support for the Fetch API.

[1] While testing this I also noticed a minor inconsistency when handling standard font-data on the worker-thread.

/botio test


Azure Search - Managed Identity

All requests to a search service need an api-key that was generated specifically for your service. The api-key is the sole mechanism for authenticating access to your search service endpoint.

This doesn't seem right - Managed Identity should even be the preferred method imo - or am I missing something here?
https://learn.microsoft.com/en-us/dotnet/api/overview/azure/search.documents-readme?view=azure-dotnet#authenticate-the-client

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

ID: f60660a9-9a80-3259-8eeb-79d18bcf5d50
Version Independent ID: 6f76c320-0f86-7013-a389-8aba5421706e
Content: Azure Cognitive Search client library for .NET - Azure for .NET Developers
Content Source: api/overview/azure/latest/search.documents-readme.md
Service: search
GitHub Login: @ShivangiReja
Microsoft Alias: shreja

Thank you for your feedback.  Tagging and routing to the team member best able to assist.


Documentation links are all broken

The problem
Describe the bug
The links in the README and in the wiki don't go to any useful pages
To Reproduce
Steps to reproduce the behavior:

Go to 'https://godotengine.org/asset-library/asset/833'
Download the package
Unzip the package
Notice the README.md
Open the README
Observe a link to https://github.com/coppolaemilio/dialogic/blob/main/addons/dialogic/Documentation/Content/Tutorials/BeginnersGuideStepByStep.md
Click on that link
Observe a 404

Alternate repro steps

Go to the project wiki https://github.com/coppolaemilio/dialogic/wiki
Scroll down to the Tutorials
Notice Beginner's Guide
Click on the link https://github.com/coppolaemilio/dialogic/wiki/Tutorials/BeginnersGuideStepByStep.md
Observe that there's no page at that address so GitHup asks me to write the beginner's step-by-step guide?

Expected behavior
I expect that the links you provide in your README and your wiki will lead to pages that exist
Screenshots
N/A just click the above links and observe the issues
System (please complete the following information):

OS: Windows
Godot Version: 3.5
Dialogic Version: 1.4.5

Solutions
Workaround
Idk??? I tried going to the wiki when the link in the README didn't work but was not able to find the documentation I needed. i guess I could scour the wiki and hope that I stumble upon the right page?
Possible fixes
You should either update the links to point to documentation pages that exist, or write documentation pages and put them in the place of the links

Hi, thanks for letting us know.
This is a result of us starting to update the wiki for dialogic 2. Also some links seem to be broken due to the 1.x branch not being main anymore. I will try to fix the broken links.
You can find the old documentation both offline in the editor (at the bottom of the resource tree) or online here.

Alright I've updated the links in the readme. Also I've updated the welcome page of the wiki to mention that is not for the 1.x branch anymore.


Converting ponAbe3 and PanTro6 to Hg38

Dear segment-liftover team,
thank you for doing such a great job!
Our group is currently using your tool for making a comparison of orangutan, chimpanzee and human possible. Segment-liftover had already reduced the coordination loss drastically. Nonetheless, the humanized/lifted files of orangutan and chimpanzee are still containing peaks with their original chromosome names: chr2A and chr2B. These chromosomes are not part of the human genome and the peaks should be relocated somewhere on chr2. Do you have any ideas how I could solve the problem? I run the tool on default. Do you think that the problem is probably caused by the used chain files?
Kind regards
Sebastian

Hi Sebastian,
Are you lifting orangutan and chimpanzee genome to human using chain files, or pretending them to be human genome and lifting from one version to another?
You are right of the cause. I think it's because of the chromosome names. The naming convention is  completely inconsistent across different species, so we ignored chromosome with string suffix in names. A workaround solution would be to rename the input chromosome to "chr2" and do the lifting twice for chr2A and chr2B separately. If you are not using cross species chain files, I believe this should work.
If you are doing from chain files, you have to modify the chromosome name conversion and checking code in the python file. Then just make sure the input chromosome names are exactly as in the chain file.

Thank you for your quick and accurate answer.
We are using chain files from UCSC to lift both species to human. So, your second solution should help here.
Do I have to change anything in the UCSC LiftOver algorithm too?

No, you don't need to change the Liftover.
I recommend you comment out line 1039 in the python file to keep the tmp directory. Then check both the log files and intermedia files in tmp to confirm where and why the program breaks.
If it failed during the initial lifting, check the code around line 250.
If it failed during the remapping, check the code around line 112.
Direct hard coding chromosome names might be a quick solution.
It may also be because of an unknown bug, sadly we didn't test for all species.


vue-i18n not working with Nuxt 3.7

Environment
------------------------------
- Operating System: Linux
- Node Version:     v16.20.0
- Nuxt Version:     3.7.2
- CLI Version:      3.8.3
- Nitro Version:    2.6.3
- Package Manager<EMAIL_ADDRESS>- Builder:          -
- User Config:      devtools, vite
- Runtime Modules:  -
- Build Modules:    -
------------------------------

Reproduction
https://stackblitz.com/edit/github-hnz7et-dysose?file=nuxt.config.ts
Describe the bug

Run npm run build
Run the build using node .output/server/index.mjs
Access the application using localhost:3000
Observe the following error:
[nuxt] [request error] [unhandled] [500] Cannot find module '/home/projects/github-hnz7et-dysose/.output/server/chunks/dist/vue-i18n.runtime.mjs' imported from /home/projects/github-hnz7et-dysose/.output/server/chunks/app/server.mjs

Additional context
vue-i18n used to work with Nuxt 3.6 but not anymore with 3.7. Nonetheless, this might actually be an issue with vue-i18n and not Nuxt but I'm not sure how to get to the bottom of this issue.
Logs
No response

@mcrapts Your reproduction link doesn't show the error, is there a reason why you're not using the i18n module which wraps this? https://nuxt.com/modules/i18n

@DanielRivers did you run npm run build && node .output/server/index.mjs? It works in dev, but not when you build it.
I didn't use the i18n module because it's not in the instructions for vue-i18n. https://vue-i18n.intlify.dev/guide/integrations/nuxt3.html

This seems like it might be an upstream issue with vue-i18n rather than Nuxt. Would you open an issue there instead?

Thanks, that does indeed seems to be a workaround. I will open an issue with vue-i18n!

The vue-i18n docs have been updated, so this issue can be closed.


Update PokemonGo-Bot Docker Instructions

Expected Behavior
Volume mounting web example should follow the CLI example, which uses configs/config-account1.json in the docker run command so the user can copy paste the docker command.
Actual Behavior
Web example uses a different config file causing confusion as to what is getting passed to the container and which arguments are needed for the container to work correctly. docker logs -f command also points to a different name than the one used in the example.
Steps to Reproduce
Create a configs/config-account1.json
Run existing command which mounts web volume from the host to the container
CLI fails to parse config
docker inspect pokemon-go-bot shows pokecli.py has exited, but volumes are mounted correctly between host & container.
Other Information
OS: Docker, Ubuntu, OSX, Windows
I have updated on my own repo since github does not allow me to directly make a pull request for wikis. I am also adding an enhancement to run NGINX in a container for serving the webserver content. https://github.com/anthonygtellez/PokemonGo-Bot/wiki/How-to-run-with-Docker
Feel free to copy paste the markup.

Start by downloading for your platform: Mac, Windows, or Linux. Once you have Docker installed, simply create the various config.json files for your different accounts (e.g. configs/config-account1.json) and then create a Docker image for PokemonGo-Bot using the Dockerfile in this repo.
cd PokemonGo-Bot
docker build -t pokemongo-bot .

You can verify that the image was created with:
docker images

To run CLI PokemonGo-Bot Docker image you've created, simple run:
docker run --name=pokego-bot1 --rm -it -v $(pwd)/configs/config-account1.json:/usr/src/app/configs/config.json pokemongo-bot

Check the logs in real-time docker logs -f pokego-bot1
If you want to run multiple accounts with the same Docker image, simply specify different config.json and names in the Docker run command.
Do not push your image to a registry with your config.json and account details in it!
Configure PokemonGo-Bot with Web UI
Using the example config from CLI, this will share the /web folder with the container:
docker run -d --name=pokego-bot1-web -v $(pwd)/configs:/usr/src/app/configs -v $(pwd)/web:/usr/src/app/web pokemongo-bot -cf configs/config-account1.json

Validate CLI is running docker logs -f pokego-bot1-web
Configure web/userdata.js for google API access on your host, you should also see new files getting updated by the CLI.
catchable-xxx.json, inventory-xxx.json, location-xxx.json
Validate they are getting updated by the CLI tail -f<EMAIL_ADDRESS>From the web directory run: python -m SimpleHTTPServer 8080
Alternatively you can use NGiNX (execute from ~/PokemonGo-Bot directory)
docker run -d --name=poke-nginx -v $(pwd)/web:/usr/share/nginx/html -p 8080:80 nginx

You can view the nginx logs by running docker logs -f poke-nginx
TODO: Add configuration for running multiple Docker containers from the same image for every bot instance, and a single container for the web UI.
Troubleshooting links: https://docs.docker.com/engine/tutorials/dockervolumes/


More hashes than Amsterdam

Popular Sysmon config have this for log config:
<HashAlgorithms>*</HashAlgorithms>
CIM compliance is achieved however by mapping CIM field process_hashes to the TA field hashes. Which will result in a hashes field containing all hashes. I have moved the mapping to SHA256 in my deployment. It is hard to automate against a multi value field. How would this work in real live?

We have tried it both ways in the past, and there is no way to satisfy everyone. Customizing for your needs as you have done is a fine way to deal with it.


Remove PWA (SW) until guaranteed fix

Since we've introduced PWA and the underlying Service Worker we've been getting cache invalidation issues. We've been unable to resolve this reliably to this day (see https://github.com/excalidraw/excalidraw/issues/2083).
The issue is compounded by collaboration because several clients may have slightly diverging versions that may contain changes to collaboration code.
This issue serves to discuss the removal of PWA until we can say with confidence the caching issue is resolved. Right now that seems to be blocked by CRA (#2083), but even then there's no guarantee that workaround will work reliably so we'll need to somehow test it behaves correctly ourselves.
We should decide based on the benefits and costs that PWA adds to Excalidraw at this point in time.
Benefits

Users can install, and use the app offline.

Trouble is, without knowing how many of our users do that we may be optimizing for a use case that's not really there.

Costs

Cache invalidation issues.

There is a hidden cost where if the app doesn't work for even just a single user during collaboration, a whole team may decide to stop using Excalidraw.

UX

Even if we resolve cache invalidation, there's the question of how SW impacts the UX due to frequent updates. Currently, we force-refresh which isn't ideal. It often takes >5-10 seconds until the SW gets latest bundles and we refresh the page, at which point user may already be using the canvas (happens to me often).
Other apps, such as CodeSandbox instead shows a popup (or used to) to the user that a new version is available. This isn't ideal either since these popups are annoying (they would show pretty much every time the user opens Excalidraw).
On top of that, this workflow pretty much removes any benefit of an SW as we'd not use it for caching purposes at all (in fact it would make it worse as noted above).

/cc @tomayac

I wonder if maybe @jeffposnick might be able to advise, since he’s dived deeply into CRA and knows the pitfalls with its service worker setup.
I know it’s not helpful, but it works reliably for me, on all devices (Android, iOS, and PC).

I know it’s not helpful, but it works reliably for me, on all devices (Android, iOS, and PC).

I don't doubt it, but it still affects a large amount of users.
14-day old version-mismatch bug:

The latest on PWA support in create-react-app is that, starting with c-r-a v4, developers who want to use a service worker in their new projects are expected to bootstrap things with
npx create-react-app my-app --template cra-template-pwa

This will create a project that includes a user-editable service-worker.js for customizing the service worker's behavior. The default file that you get from that template closely matches how the current service worker behaves, including listening for the SKIP_WAITING message.
There are details in https://github.com/facebook/create-react-app/pull/9205
Ultimately, it sounds like there are both collaboration and UX considerations at play here, and I don't know that there's a one-size-fits-all answer for you.
If you need to ensure that all users collaborating on the same document are using the same version of Excalidraw, then there presumably needs to be some sort of global versioning string that could be compared as part of the session handshake, with mismatches leading to a failure to start a session. This seems like an issue that could exist whenever there's a new deployment while some clients had existing tabs already open, but using a cache-first service worker would certainly make it much more likely to happen.
As for the UX front, I can understand not being happy with a "Reload for updates" prompt, and force-reloading while someone might be the middle of drawing is definitely a bad experience. Some other things that I've seen folks do is force-reload only if there hasn't been any user interaction at the time new service worker is installed, or just not showing a prompt at all and assuming that folks will eventually close out their existing tabs and get the new version the next time they open up a fresh tab. Another approach, building on the preceding discussion around collaboration, would be to only show a "Reload for updates" prompt if a user attempts to collaborate with another user who is using a newer version of the web app. Finally, you could consider incrementing a local counter stored in IDB each time the user loads your web app while there's a waiting service  worker, and only show the prompt if it's happened X number of times for a given pending update.
From a technical point of view, I don't hear anything that makes me think that things aren't working as expected—it just sounds like the implications of using using a cache-first service worker don't align with all of your product needs.

Thank you, Jeffy, this is very detailed and very helpful. For the core Excalidraw team, is a switch to CRA v4 a viable option at this point?

Thanks @jeffposnick for the elaborate reply.

If you need to ensure that all users collaborating on the same document are using the same version of Excalidraw, then there presumably needs to be some sort of global versioning string that could be compared as part of the session handshake, with mismatches leading to a failure to start a session.

We will ultimately need to implement this (as you insinuate) even if we have no SW in place at all because clients may diverge if they do not refresh the page for a longer period of time.
But the focus should always on reducing the "Your client version different from that of the host. Please [hard] refresh your browser" messages to the minimum, so if using SW will end up in these prompts becoming more common, that's one consideration against it.

From a technical point of view, I don't hear anything that makes me think that things aren't working as expected—it just sounds like the implications of using using a cache-first service worker don't align with all of your product needs.

I'm not well versed with SW, but from a PWA/CRA (or SW in general) perspective, is there even something other than cache-first strategy when it concerns the browser-initiated initial loading of static resources (as opposed to later app-initiated XHR requests)?
Ideally, the workflow would be: if user is online, the initial load of resources should skip cache altogether (unless the file hash is identical).
If we consider that most users (I'd dare say it's 90% or more, but I don't have any hard data) are using Excalidraw while online, and we release new versions often, then they shouldn't be forced to reload (via prompt or being force-reloaded), nor wait X seconds before the SW gets into waiting state.
I should also note that only returning users can potentially benefit from SW cache, and in that case regular browser cache would kick in anyway, so there's no net benefit in using SW at all (apart from offline mode). After all, we're pretty much 100% a static site at this point.

I'm not well versed with SW, but from a PWA/CRA (or SW in general) perspective, is there even something other than cache-first strategy when it concerns the browser-initiated initial loading of static resources (as opposed to later app-initiated XHR requests)?

Sure, there are a number of different approaches you could take. "The Offline Cookbook" does a good job of describing them in a generic fashion, and if you wanted to use Workbox without the c-r-a integration (i.e., writing the service worker code manually, then using the workbox-routing and workbox-strategies modules together is a shortcut to implementing those recipes. With this approach, you'd basically ignore the service worker file that c-r-a generates and overwrite it with your own custom code.

Ideally, the workflow would be: if user is online, the initial load of resources should skip cache altogether (unless the file hash is identical).
If we consider that most users (I'd dare say it's 90% or more, but I don't have any hard data) are using Excalidraw while online, and we release new versions often, then they shouldn't be forced to reload (via prompt or being force-reloaded), nor wait X seconds before the SW gets into waiting state.
I should also note that only returning users can potentially benefit from SW cache, and in that case regular browser cache would kick in anyway, so there's no net benefit in using SW at all (apart from offline mode). After all, we're pretty much 100% a static site at this point.

I just took a look at your network traffic when loading your web app, and I think you could accomplish something similar to that via:
import {registerRoute} from 'workbox-routing';
import {NetworkFirst, StaleWhileRevalidate} from 'workbox-strategies';

// Use a NetworkFirst strategy for all navigation requests (i.e. requests for HTML pages).
// This will provide offline support, while still getting fresh HTML while online.
registerRoute(
  ({request}) => request.mode === 'navigate',
  new NetworkFirst({cacheName: 'html'}),
);

// Use SWR for your fonts, as they are unversioned URLs not cached by the browser.
registerRoute(
  ({request}) => request.destination === 'font',
  new StaleWhileRevalidate({cacheName: 'fonts'}),
);

// This SW won't handle any other requests, and the assumption is that browser caching
// will "fill in the gaps". If there are other types of requests you do want your SW to handle,
// add in more calls to registerRoute().

(That syntax assumes you're using a bundler like webpack to package up your service worker source and consume the JS module imports.)

@jeffposnick thanks again. From testing this (predictably) does not cache other files such as js, so it seems the SW should look more something like this (I think?) if we wanted to use the app offline:
import { registerRoute } from "workbox-routing";
import { NetworkFirst, StaleWhileRevalidate } from "workbox-strategies";

registerRoute(
  ({ request }) => request.mode === "navigate",
  new NetworkFirst({ cacheName: "html" }),
);

registerRoute(
  /\.(html|css|js)\b/,
  new NetworkFirst({ cacheName: "resources" }),
);

registerRoute(
  ({ request }) => request.destination === "font",
  new StaleWhileRevalidate({ cacheName: "fonts" }),
);

All of your CSS and JS files include versioning in their URLs via hashes. If you serve them with HTTP Cache-Control headers that allow them to avoid revalidation, then that may be sufficient, and you don't have to add them to a cache in your service worker. The benefit of not adding them to a cache inside your service worker is that by default, there's no automatic mechanism for cleaning up cache entries, so each time you redeployed and your hashed URLs changed, you'd add new entries without removing old ones, and disk usage could grow quickly.
The workbox-expiration module can help with that to some extent, but you'd have to either set a maximum age or maximum number of items to cache—setting a maximum age is probably the safer of the two, as it appears that you have a lot of individual JS and CSS files.
The downside to relying on the standard HTTP cache is that its eviction policy is more unpredictable, and you might end up with scenarios in which some of the subresource URLs you need for offline usage drop out of the cache unexpectedly.
(This was not an issue with your previous setup, because the way Workbox integrates with c-r-a, it maintains a list of just the exact URLs that are associated with assets in the most recent build, and ensures that only those URLs are cached, removing old URLs that are no longer active.)

(This was not an issue with your previous setup, because the way Workbox integrates with c-r-a, it maintains a list of just the exact URLs that are associated with assets in the most recent build, and ensures that only those URLs are cached, removing old URLs that are no longer active.)

I suppose that's what CRA's precache manifest was for. We'll want to do that as well then. The plot gets thicker by the minute :).

I suppose that's what CRA's precache manifest was for. We'll want to do that as well then. The plot gets thicker by the minute :).

(It's actually Workbox's precache manifest, not c-r-a's.)
It's difficult to "mix-and-match" precaching and runtime caching in the manner you propose. If you serve your HTML network-first (by excluding it from the precache manifest, and setting up the runtime caching route with registerRoute() as in my previous example), but use precaching for all of your JS and CSS URLs, then there's a decent chance that after each deployment, your HTML will refer to a set of URLs that doesn't match what your active service worker has precached. This won't "break anything," but it will mean that there will be precache misses for your new JS and CSS URLs, so you'd reduce the effectiveness of actually caching the URLs.
Think of it this way: if you use Workbox's precaching, the precache manifest represents a set of assets—HTML, JS, CSS, anything else that's part of your site's build—that all "work well" together. They are all served alongside each other, and expired alongside each other, atomically. When there's an update to your precache manifest, a new service worker is installed, but that new set of assets don't become active until the service worker stops waiting and activates. You normally want to reload the page and "start fresh" with HTML and JS/CSS that all match each other after a new service worker goes from waiting to active, which is what those recipes we alluded to earlier that show a "Reload for updates" message handle for you.
If you use runtime caching, with those calls to registerRoute() and no precache manifest, then things are more along the lines of traditional HTTP Cache-Control headers and the browser's cache. You're relying on requests that are made against the network for a given URL to populate the cache. The main difference is that you can "safely" cache HTML for offline use when you have a service worker, which you would normally not do with Cache-Control headers.

Oh, I didn't realize that by precaching we'd be updating the manifest every deploy and be stuck in the waiting-installed loop again (having to refresh).
But I don't think I fully understand yet. In your example, you're caching only the fonts and html, so that won't work for offline use.
And if we cache js/css as in my amended example, you say that will potentially have issues with disk size due to not clearing the cache.
So, do I understand it that we should do what I do above, and set a time expiration on the cache to minimize the disk usage problems?

Oh, I didn't realize that by precaching we'd be updating the manifest every deploy and be stuck in the waiting-installed loop again (having to refresh).

Yup, Workbox's precaching is tightly coupled with the service worker lifecycle, and the transition between the installed and activated states for each updated service worker.

But I don't think I fully understand yet. In your example, you're caching only the fonts and html, so that won't work for offline use.

If you serve your HTML with a NetworkFirst strategy in your service worker, then when you're offline, it will fall back to loading the last HTML document from the Cache Storage API.
That HTML document should contain references to versioned JS and CSS URLs that are already in the browser's "normal" HTTP cache, by virtue of the Cache-Control headers that you use. If you have a max-age of a year, for instance, that tells the browser that it can keep using the resource from the HTTP cache for that amount of time without needing to revalidate it with the server. This means that those URLs should work while offline—even though the service worker doesn't handle them, the standard HTTP cache is still consulted. (You should test this to confirm everything, of course.) There are no guarantees that your HTTP cache will stay populated indefinitely, but you do get cleanup "for free," so I think it's a good trade-off in your case.

That HTML document should contain references to versioned JS and CSS URLs that are already in the browser's "normal" HTTP cache, by virtue of the Cache-Control headers that you use. If you have a max-age of a year, for instance, that tells the browser that it can keep using the resource from the HTTP cache for that amount of time without needing to revalidate it with the server. This means that those URLs should work while offline—even though the service worker doesn't handle them, the standard HTTP cache is still consulted. (You should test this to confirm everything, of course.) There are no guarantees that your HTTP cache will stay populated indefinitely, but you do get cleanup "for free," so I think it's a good trade-off in your case.

I see. It must be that the test server that CRA uses in local dev doesn't set any Cache-control. I always thought that caching works only in the context of an online app. Will investigate later, thank you.

I see. It must be that the test server that CRA uses in local dev doesn't set any Cache-control. I always thought that HTTP cache works only in the context of an online app. Will investigate later, thank you.

There are a lot of possible ways to configure Cache-Control! In some configurations, revalidation (via eTags or Last-Modified timestamp checks) is required before using an entry in the HTTP cache, and in those scenarios, the entries can't be used when offline. In other configurations, specifically those that use a long max-age, you're telling the browser that it could use the response from the HTTP cache without checking with the server first. In that scenario, the entries should be usable while offline.

EDIT: Although, here's a thought: what's the difference between HTTP cache and SW cache in relation to disk space. In either case if we set cache expiration to one year, it should have identical effects.

The relevant difference here is that there is automatic cleanup of the "normal" HTTP cache implemented by the browser based on...some sort of heuristics?... that probably varies from browser to browser. But the browser will remove entries eventually if whatever relevant heuristic is met.
With the Cache Storage API, it's up to the developer to manage cached entries, and nothing is automatically cleaned up. (If you really run out of disk space, the browser may decide to delete everything you have stored for a given origin, but that would leave you starting from a blank slate.) workbox-expiration attempts to help with that, but as mentioned, you still need to provide some criteria for what should be cleaned up, and it's not clear what that criteria would be when your URLs all look like 1.[hash].chunk.js. So you could use workbox-expiration, and a maxAgeSeconds criteria of, let's say, a month, but what if a user comes back to your web app, while offline, after more than a month? It's hard to know what the right amount of time to use would be.
That's why I'm saying that it's probably easier to just let the HTTP cache handle those versioned URLs.

What's the status of this one? Can we close it?

It's not resolved yet, I just didn't have time to delve into it. I'm interested to see how things change with CRA@4.


add macos scancode mapping

I didn't revert the previous commit. This should make the key.code values work on Mac.
This will probably need some iterations before everything works on every computer/os/keyboard configuration... :)

I just tested it in my mac for the boxes & sponza examples, and use back code instead of key and it works perfectly.
So could i merge it now ? after merged i will change back all key => code.

I'll revert the previous commit in this pull request, this way everything will be fine

now this can be merged!


Adjust maxIterateSize

Increase enumerate threshold from 4M to 32M.
Up to 2x speedup depending on problem.

Is there any heuristic we use to determine the maxIterateSize or are we just trial-and-erroring until we get a good value?

We're just trial-and-error checking different sizes. 32M happens to work well on my machine & lantua's I assume.

Is there any heuristic we use to determine the maxIterateSize or are we just trial-and-erroring until we get a good value?

There are two trivial restrictions;

Small maxIterateSize puts stress on SplitWorker, and ComputeWorker has to wait for each splitting step, essentially serializing the process, and
Large maxIterateSize leads to many builds being unnecessarily checked when they could be pruned by the SplitWorker.

It still largely depends on env, but those restrictions put maxIterateSize somewhere between 10–50M before I experience a sharp drop in performance.
I'm not 100% sure how we could home in on the exact value beyond that, though.
Also, this range could change with the performance profiles of SplitWorker and ComputeWorker, so we need to retune this value once in a while, e.g., when the splitting heuristic changes.

It also depends on the optimization problem, so there's a risk of overfitting if the test cases are not diverse enough.


Automatic adding of use statements interferes with grouping in rare cases.

Hello
It appears the automatic adding of use statements sometimes wrongly interferes with grouping:
use A\B;
use A\B\F; // <-- Inserted here while it should probably be inserted under A\C.
use A\C;

This can probably be solved by adding an additional check on the amount of segments.
Thanks in advance

Why should it be inserted under A\C ?

At the moment this is actually an exception that does not conform to the current behavior, which is why I marked it as bug, if you have:
use A\B;
use A\D;

... and now add an A\C, you get this (correct):
use A\B;
use A\C;
use A\D;

Now if you add use A\E\Test, you will get (correct):
use A\B;
use A\C;
use A\D;

use A\E\Test;

The only reason this issue exists is because A\B\F has the same prefix as the existing A\B, so it gets treated differently as, say, A\E. With the 'add newlines' option disabled (default), this is not so much of a problem, but if it is enabled, the grouping will be messed up and start adding newlines in places it shouldn't, e.g. with the original example:
use A\B;

use A\B\F; // With newlines enabled, there will be extra whitespace (incorrect).
use A\C;


[Minor rc-3.1] EDC version 0.3.0 changes for multiple BPN

EDC version 0.3.0 changes for multiple BPN.
Network policy added in helm charts.

Minor release 2.0.2.


Refactor and streamline grunt tasks?

Currently, we have all our tasks loaded in a hardcoded way, and moving our tasks to separate files inside a folder like grunt-tasks will not only allow more control over the individual tasks, but also allow us to load all the tasks without explicitly hardcoding them.
Willing to put in a PR if this idea sounds good.
@isuttle
@cheruvian

Sounds reasonable, I'm happy to look over any PR you submit.


test for binary response content, skip decoding if it is. closes #87

This patch checks to see if content returned from http request is binary and skips decoding step if it is. this prevents decoding binary data as utf-8 from raising an exception

Thanks @eads :+1:


UnicodeEncodeError: 'charmap' codec can't encode characters in position 2-13: character maps to

I tried to use
instagram-location-search --lat 18.78 --lng 98.98 --csv locs.csv
But it throws an error whenever it tries to bring me to the login page for Instagram.
UnicodeEncodeError: 'charmap' codec can't encode characters in position 2-13: character maps to <undefined>
PS C:\Users\USER\downloads> instagram-location-search --lat 18.78 --lng 98.98 --csv locs.csv

DevTools listening on ws://<IP_ADDRESS>:63333/devtools/browser/2ac137bc-ce41-4282-9c1b-bfa2566d473a
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\USER\AppData\Local\Programs\Python\Python311\Scripts\instagram-location-search.exe\__main__.py", line 7, in <module>
  File "C:\Users\USER\AppData\Local\Programs\Python\Python311\Lib\site-packages\instagram_locations\instagram_locations.py", line 264, in main
    writer.writerow(row)
  File "C:\Users\USER\AppData\Local\Programs\Python\Python311\Lib\csv.py", line 154, in writerow
    return self.writer.writerow(self._dict_to_list(rowdict))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\USER\AppData\Local\Programs\Python\Python311\Lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Hi @wan-andrea, thanks for opening this issue! It looks like this is a bug where the response from Instagram contains a character that can't be written in the default encoding.
For developers, the relevant lines are:
https://github.com/bellingcat/instagram-location-search/blob/e4045cc5b19432393c07e1270dbf5082c692d3c7/instagram_locations/instagram_locations.py#L259-L264
Changing L259 to with open(args.csv, "w", encoding="utf-8") as f:  may fix this.


updates changelog

Do we want a ziti edge re-enroll identity or similar?

I'm going to add it but this lets the MOP move forward.


make file and library name consistent with others

like title.

It's a breaking change which does not really improve anything (it does not matter how this library name is spelt). As such we are not interested in doing this (as was already indicated before on https://github.com/dart-lang/sdk/issues/43474).

it is a few breaking change, and i think has very little peoples will use nativewrappers, rename it
can improve  dart's consistent.


Update title of BitSpinner section of Spinner demo (#5665)

this closes #5665

@alireza107 Thanks for your contribution.


Lifted functions cause an 'unknown global' error

Defining a 'global' function (without local) causes it to be 'lifted' to the top of the scope, and it is callable before the line that actually defines it.
The code in this example is completely valid and will print twice, so the 'Unknown global' error should not happen

Nevermind.. 😅


Unable to Connect to Local Beszel Agent in Docker

I’m running into issues trying to connect to the local Beszel agent using the Docker setup provided in the getting started guide. Here is the relevant part of the docker-compose.yml I’m using:
services:
  beszel:
    image: henrygd/beszel:latest
    container_name: beszel
    restart: unless-stopped
    extra_hosts:
      - host.docker.internal:host-gateway
    ports:
      - 8090:8090
    volumes:
      - ./beszel_data:/beszel_data

  beszel-agent:
    image: henrygd/beszel-agent:latest
    container_name: beszel-agent
    restart: unless-stopped
    network_mode: host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      PORT: 45876
      KEY: 'redacted'

After running docker compose down && docker compose up -d, the beszel-agent container is listed as “down,” and the logs don’t show any attempts to connect:

docker compose logs -f -n 100
beszel-agent  | 2024/12/31 23:08:27 INFO Root disk mountpoint=/ io=sda
beszel        | 2024/12/31 23:08:28 Server started at http://<IP_ADDRESS>:8090
beszel        | ├─ REST API:  http://<IP_ADDRESS>:8090/api/
beszel        | └─ Dashboard: http://<IP_ADDRESS>:8090/_/
beszel-agent  | 2024/12/31 23:08:27 INFO Detected network interface name=wlan0 sent=24551158 recv=25407343
beszel-agent  | 2024/12/31 23:08:27 INFO Detected network interface name=tailscale0 sent=26720 recv=58350
beszel-agent  | 2024/12/31 23:08:27 INFO Starting SSH server address=:45876

The beszel container is running fine, but I'm unable to figure out why the agent is not connecting. The agent logs don't show much info, and without shell access or nc inside the container, debugging is tricky.
Anyone have suggestions or insights into what might be causing this issue?
Beszel version 0.9.0
Raspberry Pi 4 on NixOS 24.11
cgroup memory is enabled

Do you see errors on the logs page at /_/#/logs?
Scratch images are nice, but I agree it's annoying to debug something like this with no shell available. Maybe I'll add an :alpine image to make the process easier.

Thanks for the quick response.
It seems that there was a connection problem when I tried to start it up the first time.

I just tried to compose down and up again but it's only INFO logs of successful http requests.
I'll see if I can copy some tools into the container to try to get more information.


Create Mini Solar System.html

Title and Issue number

Title :
Issue No. :
Code Stack :
Close #<issue_no>

Checklist:

[] I have mentioned the issue number in my Pull Request.
[] I have commented my code, particularly in hard-to-understand areas
[] I have created a helpful and easy to understand README.md
[] I have updated the Index.html file for my contribution

@RS-labhub  follow the standards of challenge creation.
Read through contributing.md and refer to other challenges


Implemented: Change the flag --project-manifest to --manifest-path #1333

crates/release_plz/src/args/release.rs AND crates/release_plz/src/args/update.rs

Commented out (line 20 release.rs, line 22 update.rs):
#[arg(long, value_parser = PathBufValueParser::new())] for project_manifest: Option<PathBuf>
to still keep the project_manifest flag as requested in issue #1333 "Keep the old flag for cli retro-compatibility".

Added (line 23 - 27 in release.rs, line 25 - 29 in update.rs):
#[arg(long, value_parser = PathBufValueParser::new())]     manifest_path: Option<PathBuf>
with the same '--help' message as the old flag.

Changed (line 139 release.rs, line 102 update.rs) -> from self.project_manifest to self.manifest_path

Added (line 205 release.rs, line 243 update.rs) -> to include manifest_path: None,

website/docs/github/quickstart.md

Renamed (line 217, line 245) -> the Github Action input parameter from project_manifest to manifest_path

Additional Notes:

All tests passing (including Docker tests)
Code formatted
Followed all steps in Contributing.MD

@MarcoIeni, would it be possible to view the PR (and merge it if it addresses the issue in question)? It would be my first major PR merge to an open source project. Thank you!

I'll do it today. Sorry if it took so long, it's a busy period for me. Hopefully coming to an end now 👍

merged, thanks!


[resotocore][feat] Add a package manager for infratsructure apps

Description
Added a package manager for infra apps which is capable of installing/uninstalling the apps.
To-Dos

[x] Add test coverage for new or updated functionality
[x] Lint and test with tox
[ ] Document new or updated functionality (someengineering/resoto.com#XXXX)

Issues Fixed

Fixes #XXXX

Code of Conduct
By submitting this pull request, I agree to follow the code of conduct.

Codecov Report
Patch coverage: 69.23% and project coverage change: +0.19 :tada:

Comparison is base (f4eb194) 88.82% compared to head (b6cbb66) 89.01%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1538      +/-   ##
==========================================
+ Coverage   88.82%   89.01%   +0.19%
==========================================
  Files          78       79       +1
  Lines       12489    12589     +100
==========================================
+ Hits        11093    11206     +113
+ Misses       1396     1383      -13

Flag
Coverage Δ

resotocore
89.01% <69.23%> (+0.19%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

resotocore/resotocore/cli/command.py
86.73% <8.33%> (ø)

...esotocore/resotocore/infra_apps/package_manager.py
74.46% <74.46%> (ø)

resotocore/resotocore/infra_apps/manifest.py
93.47% <90.00%> (+93.47%)
:arrow_up:

resotocore/resotocore/ids.py
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.