F# API

Hi, I wonder if contributing to an F# API is something you might be interested in ? Before starting anything I wanted to have a feedback.

Absolutely, that would be interesting :) I'm not very experienced with F# yet, so I can't really give any opinions right now design-wise, except that I think it should be built as an extension library and shouldn't introduce anything special in the core libraries.

Agree with @cpx86 .
The main issue I've seen so far with F# and Proto.Actor is the lack of decent ProtoBuf support in F#.
You can use Protobuf libs with mutable types in F#, but it seems to be an issue to map F# special types such as records or DU's to protobuf.
If that is possible using Froto, or possible some other way, that would be awesome

Thanks for your feedback. Definietly, I take a note on extension library, that would be an add-on to what already exists and on serialization with protobuf.
I'll try to spike something and keep you posted.

I've been doing some investigation testing different approaches for protobuf serialization and F#. Unfortunately there are no libraries that support DU's serialization at all and speaking to the community there are no plans to support it. Unless some unexpected contribution which for now is unlikely to happen. Froto isn't maintained since months and it doesn't support DUs either. The work to add them since huge.
I've managed to serialize and deserialize simple DU with Mark Gravell library protobuf-net annotating F# types with attributes and with some hacky code, but I'm not sure what are the limits with this approach I can run into in the feature. Without speaking about supporting .proto files and code generation.
So I'm not sure, where to go from that. Would be a protobuf-net instead Google.protobuf library be a valid choice for F# Api? Of course with a limited support to the attribute annotations.

Hi,
I've tried Proto.Actor for my pet f# project and experimented with some more idiomatic API.
Now I have something like this:
let helloWorldActor =
    actorOf ( fun ctx->
      ctx.Message
      >>| fun(msg:Started) -> printfn "Hello World!"
    ) |> spawn

It's almost the same as Actor.FromFunc(..) but with infix operator (>>|) in actor body. It just help to match message to specific type.
More complex example:
type HttpAction =
    | GET of string
    | POST of uri:string*content:string

type HttpActionResult =
    | Ok of uri:string
    | Error of uri:string*error:string

let doRequest (pid:PID) action =
    async {
        let client = new HttpClient()
        let (task, uri) =
            match action with
            | GET uri -> (client.GetAsync(uri), uri)
            | POST (uri, content) ->
                let postBody = new FormUrlEncodedContent(dict["key", content])
                (client.PostAsync(uri, postBody), uri)
        printfn "about starting download %s" uri
        try
            let! result = task |> Async.AwaitTask
            pid <! Ok(uri)
        with
        | exn as ex -> pid <! Error(uri, ex.ToString())
        return ()
    }
let httpActor =
    actor {
      receive (fun ctx ->
        ctx.Message
        >>| fun (msg:HttpAction) ->
                msg |> doRequest ctx.Sender |> Async.RunSynchronously
      )
    }
let urls = ["https://github.com/";"https://docs.microsoft.com";"https://www.tut.by"]
let mutable downloadActors = Map.empty

let mainActor =
    actor {
        receive (
          fun ctx ->
            ctx.Message
            >>= (fun (_:Started) ->
                for url in urls do
                  let child = httpActor |> spawnFromContext ctx
                  downloadActors <- downloadActors |> Map.add url child
                  child <? (GET(url), ctx.Self)
            )
            >>| (fun (msg:HttpActionResult)->
                match msg with
                | Ok uri ->
                    printfn "ok %s" uri
                    downloadActors.[uri] <! Stop.Instance
                | Error (uri, error) -> printfn "error %s %s" error uri
            )
        )
    } |> spawnNamed "main"

Here I created mainActor for making some http requests. There is some computation expression actor{..} instead of function actorOf. It's almost the same. Here we have one more infix operator (>>=) for matching message to specific type, but with piping message further as result of function. It helps compose logic with a lot of branches. Also we have (<!) Tell-operator and (<?) Request-operator. The same as in FSharpAPI for Akka.net. Also there is (<??) RequestAsync-operator.
Configurations in computation expression:
let helloWorldActor =
    actor {
        //takes IContext->unit function
        receive (fun ctx->
          ctx.Message
          >>| fun(msg:Started) -> printfn "Hello World!")
        //takes unit->IMailbox function
        mailbox (fun()->Mailbox.UnboundedMailbox.Create())
        //takes IDispatcher
        dispatcher Mailbox.Dispatchers.DefaultDispatcher
        //takes ISupervisorStrategy
        supervisorStrategy Supervision.DefaultStrategy
        //takes list of IContext->unit functions
        receiveMiddlewares [
            fun ctx-> printfn "middleware 1";
            fun ctx-> printfn "middleware 2"
        ]
        //takes list of ISenderContext->PID->MessageEnvelope->unit functions
        sendMiddlewares [
            fun ctx pid envelope -> printfn "sender middleware 1";
            fun ctx pid envelope -> printfn "sender middleware 2"
        ]
    }

Here we make some basic configuration, including middlewares. Also there are additional functions for props configuration such as let withDispatcher d (props:Props) = props.WithDispatcher d . They are copy computation expression members, but good for using with (|>)-operator.
The most tricky part was behaviors. To have possibilities switching between behaviors I made them as mutually recursive functions.
Here is example:
let getBehaviors (behavior:BehaviorSwitcher) =
    let rec on (ctx:IContext) =
        ctx.Message
        >>| (fun (msg:BulbMessage)->
            match msg with
            | On-> printfn "It's already turned on!"
            | Off->
                printfn "Turning it off."
                behavior.become off
        )
    and off (ctx:IContext) =
        ctx.Message
        >>| (fun (msg:BulbMessage)->
            match msg with
            | On->
                printfn "Turning it on."
                behavior.become on
            | Off-> printfn "It's already turned off!"
        )
    [off;on]
let bulbActor =
    actor {
        behaviors getBehaviors
        receive (fun ctx ->
            ctx.Message
            >>= fun (_:Started) -> printfn "Bulb actor started. State is off!"
            >>| fun (msg:BulbMessage) ->
                    match msg with
                    | On ->  printfn "Turned on!"
                    | Off -> printfn "Turned off!"
        )
    } |> spawn

So in actor-computation we need to call behaviors function which is takes BehaviorSwitcher->MessagesHandler list. MessagesHandler is simple IContext->unit. BehaviorSwitcher is record with basic behavior operations:
type BehaviorSwitcher = {
  become:(IContext->unit)->unit
  becomeStacked:(IContext->unit)->unit
  unbecomeStacked:unit->unit
}

So, to setup behaviors we need a function which takes BehaviorSwitcher and returns list of handlers, which are know each other as they are mutually recursive functions.
Also there is equivalent function for creating actor with behaviors
let behaviorActor = behaviorOf (fun (behavior:BehaviorSwitcher) ->
    let rec on (ctx:IContext) =
        ctx.Message
        >>| (fun (msg:BulbMessage)->
            match msg with
            | On-> printfn "It's already turned on!"
            | Off->
                printfn "Turning it off."
                behavior.become off
        )
    and off (ctx:IContext) =
        ctx.Message
        >>| (fun (msg:BulbMessage)->
            match msg with
            | On->
                printfn "Turning it on."
                behavior.become on
            | Off-> printfn "It's already turned off!"
        )
    [off;on]
)

I didn't add spawner configuration, because I'm not sure how useful it is (I'm still investigating this framework). Also there are no builders and helpers for persistence and remoting, because I didn't touch it yet.
So what do you think? If you are interested in it then I can make PR.

@p69 Nice, but does this play with protobuf and DU/records?

I would be really interested in this and would test the F# Api if help is needed. Im not as firm with F# to implement it myself at the moment.

Outdated, F# API will have to live in Contrib

Fair enough
On Sun, 6 Sep 2020 at 11:41, Roger Johansson<EMAIL_ADDRESS>wrote:

Outdated, F# API will have to live in Contrib
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/AsynkronIT/protoactor-dotnet/issues/217#issuecomment-687740490,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAD2NMABDGOVKFDHOQ7U77DSENKLJANCNFSM4DKGNL2A
.


Add Support to customize the Host

Hi, Can we add support to customize the host when we run pact-mock-service.
https://github.com/SEEK-Jobs/pact-net/blob/5fdaaf2eb87bcc1a39796408c1f1786a8679fd49/PactNet/Core/MockProviderHostConfig.cs#L14
I the prev class can we add an extra parameter "host" that we pass it down to pact-mock-service to fix this issue https://github.com/pact-foundation/pact-mock_service/issues/79
I'm happy to send a PR.
Thanks

I went ahead with the option I mentioned before, It will not work because we pass these args to a script rather than calling the actual service. As @bethesque explained in this ticket https://github.com/pact-foundation/pact-mock_service/issues/79
Not sure what is the next step that I can take right now.
Thanks

@waelemara Sorry I don't understand. Are you able to elaborate? Are your talking about the pact-mock-service.sh script?

@neilcampbell  yes, the parameter needs to be passed to the pact-mock-service.sh, however, the solution I mentioned above is passing it to pact-mock-service.rb script.

Why would it only be passed to the pact-mock-service.rb script?

I think you are right after digging a little bit the process that is getting triggered is pact-mock-service.sh, the reason I thought it is only the pact-mock-service.rb is this error that I got after adding the host option
ERROR: "pact-mock-service.rb service" was called with arguments ["Website", "API"]
Usage: "pact-mock-service.rb service"

@waelemara What version are you using? We fixed that issue last night. Try 2.0.21

I was running an old version, just updated thanks.
@neilcampbell is running the integration tests enough, or there is another suggested testing approach?

I have created an initial PR https://github.com/SEEK-Jobs/pact-net/pull/123 to kick off the review process.
Thanks for your time today.

@waelemara Added some comments to the PR

@neilcampbell  thanks for your comments, I have addressed them when you have the time it would be great to have a look at the changes.
And if you can advise on the approach of e2e test the changes that would be great.
Thanks

@waelemara Merged. If all the tests pass, that is all that is needed. We run the samples on the build server, so that will pick up anything breaking changes.

Awesome, let me know the results 👍 once it is ready.

@neilcampbell, I have looked into the integration tests and found a place where I can test the code, and when I pass <IP_ADDRESS> it fails with the following error
=========
Message: System.AggregateException : One or more errors occurred.
---- System.AggregateException : One or more errors occurred.
-------- System.Net.Http.HttpRequestException : An error occurred while sending the request.
------------ System.Net.WebException : Unable to connect to the remote server
---------------- System.Net.Sockets.SocketException : The requested address is not valid in its context <IP_ADDRESS>:9222
---- The following constructor parameters did not have matching fixture data: ConsumerEventApiPact data
I reverted back to the original implementation I had where I pass the host to the RubyHost and this fixes it.
I think there is a difference between the base-url and host.
Host: is passed down to the pact-mock-service script so that the process can be accessible from outside the container
here is the difference between passing the host flag and not
Without
tcp 0 localhost:1234 <IP_ADDRESS>:* LISTEN
With passing --host=<IP_ADDRESS> flag
tcp 0 0 <IP_ADDRESS>:1234 <IP_ADDRESS>:* LISTEN
baseUrl : is used to create an HttpClient in this class AdminHttpClient

I will create another PR and let me know your thoughts. @neilcampbell

@waelemara Oh right, I assumed you had already tested you changes.
Keep me posted.

I will also add the Linux package into the Integration tests and test in a container just to be sure,
Stay tuned

@neilcampbell  I have finished testing on a Linux Container, and the pact server now can be accessed from outside the container. So it is safe now to merge the PR if you are happy with it.
as a side note, I was not able to update the tests to run on Linux because they are a full dotnet framework projects, so I had to create a test console application and ran it in the Linux container.
Thanks

@waelemara I had a look at the change. There is one issue, what if the chosen host is something other than localhost (or variants of that), the AdminHttpClient will not be able to talk to the mock provider service, which is needed for everything to work.
Another option could be to revert back to using the Uri, however when passing it to the AdminHttpClient detect if it's <IP_ADDRESS>, and change to localhost.

@neilcampbell  from the docs of pact-mock-service this is what the host flag will do
-h, [--host=HOST] # Host on which to bind the service
# Default: localhost
And from the information that you just mentioned, exposing the host flag can cause issues, the consumer of the library has to know that when using localhost as a base url he needs to use <IP_ADDRESS> and if he/she uses different url they need to match.
I suggest that we do not expose this option and drive the it's value.
If the use did not customise the base url which means it will have a default value of localhost we default the host to <IP_ADDRESS> , if they customised the base url then we pass it's host to the pact-mock-service.
What do you think?

And from the information that you just mentioned, exposing the host flag can cause issues, the consumer of the library has to know that when using localhost as a base url he needs to use <IP_ADDRESS> and if he/she uses different url they need to match.

I am a bit confused by what you mean here.

If the use did not customise the base url which means it will have a default value of localhost we default the host to <IP_ADDRESS> , if they customised the base url then we pass it's host to the pact-mock-service.

Are you suggesting that the MockService call takes a uri rather than port, enableSsl and host? I think I would prefer to keep the API surface area compatible, so adding the host is more desirable IMO.

My suggestion is to leave the API surface area intact, and drive the value of the host flag from the base URI that the user can pass to MockProviderServiceBaseUri , if the user passes localhost then we use <IP_ADDRESS> , if the user passes something else we use URI.Host to pass it down to pact-mock-service
Regarding what I mean in my prev comment,
If AdminHttpClient needs to be able to reach mock provider service, this means the baseURL and host values needs to be compatible, which can be a bit confusing for the consumer of the library.
So if we only expose one option in this case MockProviderServiceBaseUri and from that we drive the right values that we can pass to pact-mock-service.

Where does the user pass a base URI to MockProviderServiceBaseUri? AFAIK the user can only pass a port on the current API surface area.

Why not have a host and a bind host, as separate parameters? One is passed to the start up command, and the other is used by the client. The bind host can default to the host if not specified.

Yeah could do, however I don't think we need to. If we get a host of <IP_ADDRESS>, we use localhost for the  admin http client calls. If we get anything else, we use what was sent as the host for both the bind and admin http client calls. I'm happy to get this working tomorrow.

@neilcampbell  and @bethesque, I have a suggestion, we can do something similar to ASP.NET core when it comes to configuring the IP address that we server can listen to
We can introduce an enum with two values for now IPAddress.Any and IPAddress.Loopback
IPAddress.Any option will pass down <IP_ADDRESS>
IPAddress.Loopback will leave the underlying ruby package to it's default.

Is there any scenario where we want to bind a specific IP or hostname?

To my knowledge no.

@neilcampbell I'm happy to go ahead and do the changes you recommended and update the PR

@bethesque Can you think of any scenario where the user would bing a specific IP address or hostname that isn't <IP_ADDRESS> or <IP_ADDRESS>/localhost?

No. I've never come across it.

@waelemara Yeah I think your idea of the enum will work nicely. Go for it :D

@neilcampbell can I pass this IPAddress flag to RubyHttpHost now? rather than driving it from baseUrl, they seem to be different things.

Yep, sounds good.

Changes made and PR ready for review.

Merged and released in 2.1.1


A migration guide from Blogger to Docusaurus

Have you read the Contributing Guidelines on issues?

[X] I have read the Contributing Guidelines on issues.

Description
There isn't a guide for migrating from Blogger to Docusaurus in the docs. I've written one, based upon my own experiences of migrating:
https://blog.johnnyreilly.com/definitive-guide-to-migrating-from-blogger-to-docusaurus
It involves some automation, and I'm planning to maintain it on an ongoing basis. Would it be helpful to have a link to this in the Docusaurus docs?
Self-service

[X] I'd be willing to address this documentation request myself.

Great 👍
I think it could be added to https://docusaurus.io/community/resources#articles, we don't really have any other place otherwise

I shall PR!

fixed in https://github.com/facebook/docusaurus/pull/8313


Feature/configurable service account for seldon predictor service

Describe changes
I've added the ability to deploy Seldon Core V1 Models with a custom service account
Pre-requisites
Please ensure you have done the following:

[x] I have read the CONTRIBUTING.md document.
[ ] If my change requires a change to docs, I have updated the documentation accordingly.
[ ] If I have added an integration, I have updated the integrations table and the corresponding website section.
[ ] I have added tests to cover my changes.

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Other (add details above)

Can you please add the serviceAccountName to the docs section where SeldonDeploymentConfig is mentioned, you can find it here! Otherwise looks good

Updated the docs 🙌


Failed starting the global hook: ErrorSetWindowsHookEx (30)

This error occures when running app

Hi! Thanks for using this library! I'll need more info before I can help you. Can you please provide some info about your machine (e.g., if it's 32-bit or 64-bit, the OS version etc.)? Also, if you could share a small project where this issue can be reproduced, it would be ideal.

its MacOs Catalina

This is really weird. ErrorSetWindowsHookEx is a Windows-specific error, it shouldn't be possible on macOS. I'm going to need more info. Could you please tell me which files are present in the build output folder? Usually it's bin/Debug. Also, which .NET version you're using. A small project which reproduces this issue would be ideal.

Closing this issue due to inactivity, but if you provide more details then I'll reopen it.


What is the SJ?

Newbie here....
In the schematic diagram, what is the component SJ1? I've never seen that designation.
Thanks!

Not sure, but maybe some sort of soldering joint/jumper.

As I study this circuit, I'm wondering if it is the switching mechanism that is part of the jack? Maybe when the jack is unplugged, the input just loops to the output?
Nonetheless, I'm doing this up on a breadboard soon to give your very interesting Firmata/ Javascript project a try.
My eventual goal is to use an Arduino soft modem via Android (app inventor?) for youth robotics classes I teach. I think the big leap is going to be adapting the audio in/ out for use from App Inventor.

Any update on what that component is/was?

my best guess is that it's a wrong symbol (and with the wrong pinout) for those "either solder me or cut through me" connections along the vgrove in their commercial board:


fix: bump edge-runtime to 1.51.0

What kind of change does this PR introduce?
Bump edge-runtime to 1.51.0

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
5 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.03%) to 58.16%

Files with Coverage Reduction
New Missed Lines
%

internal/gen/keys/keys.go
5
11.76%

Totals

Change from base Build<PHONE_NUMBER>:
-0.03%

Covered Lines:
6511

Relevant Lines:
11195

💛  - Coveralls

Will close due to stale.


Bug: Using derive_vars_query with admiral::ADMH and admiral::queries_mh  errors

What happened?
While adopting the data/data-raw convention we were re-running old code and noticed that this code no longer worked

Session Information
R version 4.3.3 (2024-02-29 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19045)
Matrix products: default
locale:
[1] LC_COLLATE=English_United Kingdom.utf8  LC_CTYPE=English_United Kingdom.utf8
[3] LC_MONETARY=English_United Kingdom.utf8 LC_NUMERIC=C
[5] LC_TIME=English_United Kingdom.utf8
time zone: America/New_York
tzcode source: internal
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base
other attached packages:
[1] stringr_1.5.1         lubridate_1.9.3       dplyr_1.1.4
[4] pharmaversesdtm_1.0.0 admiral_1.1.1
loaded via a namespace (and not attached):
[1] vctrs_0.6.5       cli_3.6.3         rlang_1.1.4       stringi_1.8.4
[5] purrr_1.0.2       generics_0.1.3    assertthat_0.2.1  glue_1.8.0
[9] rprojroot_2.0.4   hms_1.1.3         fansi_1.0.6       admiraldev_1.1.0
[13] tibble_3.2.1      lifecycle_1.0.4   diffdf_1.1.1      compiler_4.3.3
[17] fs_1.6.4          timechange_0.3.0  pkgconfig_2.0.3   tidyr_1.3.1
[21] rstudioapi_0.17.0 R6_2.5.1          tidyselect_1.2.1  utf8_1.2.4
[25] usethis_3.0.0     pillar_1.9.0      magrittr_2.0.3    tools_4.3.3
[29] withr_3.0.1       desc_1.4.3
Reproducible Example
Please see the file in data-raw seen in the screenshot
Definition of Done

[x] Investigate source of the error and report back in this issue
[x] Propose fix to the function and/or example datasets used.
[x] Implement fixes and Profit 💰

@pharmaverse/admiral @pharmaverse/admiral_comm anyone familiar with these query datasets and want to take a peek please?

The error is issued because the query variables like SMQ02NAM already exist in the input dataset.
I have

updated the script such that the queries datasets are checked by assert_valid_queries() and
improved the error message.

How much profit did you make!?!?

How much profit did you make!?!?

The profit were two improved error messages and detecting an inconsistency regarding scopes for SMQs (see https://pharmaverse.slack.com/archives/C028SJ83KM1/p1730740846808719).


Import Bootstrap.bundle.js

Hello, how can i import bootstrap.bundle.js with npm webpack . I tried and i can not use new bootstrap class.
When i import "bootstrap" don get that file

Hi,
Have you tried to post on  Stackoverflow

@andresfdel17 we need more information, like which version of Bootstrap are you trying to import ?

bootstrap 5.0 alpha

import Bootstrap from 'bootstrap/dist/js/bootstrap.bundle.min.js'


Add VBox version to Bugsnag metadata

When VBox log is not available, we don't know which version of VirtualBox is used.
This version should be added in Bugsnag's metadata

Closing since it can be found in the docker-machine create log


Add Ethereum name or address to package.json

Is your proposal related to a problem?

I can't donate to your project using Sustainus, and there is no canonical Ethereum address associated with this project and easily retrievable from the package.json
Describe the solution you'd like

I would like to see an Ethereum name or address added to the ethereum field of the package.json file. This will allow consumers of the project to know a cannonical address to send funds to. For example, I'm building an application that will allow developers to automatically donate ETH to all of their npm dependencies that have Ethereum addresses in their package.json files: https://sustainus.io
Describe alternatives you've considered

I could just donate through traditional means, but I'd rather donate through my own tool that automatically donates to all verified projects on my machine.
Additional context

If we can remove the marginal friction of donating to projects, we might be able to take open source donations truly mainstream

Hi @lastmjs
Cool idea, I wasn't aware that something like https://sustainus.io existed, I'll definitely check it out :)
As for adding an Ethereum field to this project's package.json to allow for donations, I'm not sure if this would really be necessary. Create React App is backed by Facebook and the open source community and therefore does not rely on community funding per-se (as far as I am aware). I know that there is https://opencollective.com/create-react-app, but I'm not sure what happens with the funding?
Perhaps instead of finding ways to donate to CRA, we could encourage donations to other projects that CRA uses from the community or to a charity of your choice?
@iansu do you think there's an action for us to take here, or shall we close this issue?

@lastmjs I've just learned something new:

"This project isn't Jest or React and none of the maintainers of Create React App work at Facebook. We are all volunteers working on this project in our spare time."
https://github.com/facebook/create-react-app/issues/6756#issuecomment-490275172

I'm still not sure whether ETH based donations would make sense for CRA. We'll need to seek guidance from the actual maintainers 🙂
Have a good weekend


Installed ganache and after adding new network on metamask, balance is empty.

I was following the truffle pet-shop tutorial and added new network but the balance is zero. What's wrong with my ganache? Or is the reason something else? Thanks!

I had a similar issue and I run ganache cli. You may refer to this for a potential fix: https://stackoverflow.com/questions/70364998/accounts-provided-by-ganache-cli-has-no-balance-at-all  . I had the network set to localhost but setting it to <IP_ADDRESS> fixed it for me.  Also note the port in use.  For ganache-cli it is 8545 by default.  The desktop app is port 7545 by default.

Same issue here.

Did you import the wallet on metamask (using the private key from ganache)?


How to use LTR？

Hi experts,
when I use LTR,  I meet some questions.

I need check the encoded frame is a  LTR and get the frame number for feed , but I can't get these from SFrameBSInfo. Does it means I must modify the struct SFrameBSInfo to add the LTR info?
I add follow code at the end of fuction WelsEncoderEncodeExt. But I do not know it's right or not.

`  SLTRState* pLtr               = &pCtx->pLtr[pCtx->uiDependencyId];
SSpatialLayerInternal* pParamD    = &pCtx->pSvcParam->sDependencyLayers[pCtx->uiDependencyId];
//get FrameNum, uiTemporalId of this frame
WelsLog (pLogCtx, WELS_LOG_INFO, "WelsEncoderEncodeExt() end, iFrameNum = %d, findex = %d, tid=%d, idr=%d",
pParamD->iFrameNum, pParamD->iFrameIndex, pCtx->uiTemporalId, pParamD->uiIdrPicId); `

I find that if I change the LtrPeriod, it will only mark  one frame in a GOP.  If it receive decoder feedback or data invalid, it will mark another one.
But I add test code , find that pLongRefList[i]->iFrameNum  not equal with pLtr->iLtrMarkFbFrameNum in fuction HandleLTRMarkFeedback.  And the reason is that pLongRefList has modified in LTRMarkProcess. But I donot konw why change.

I use webrtc test in windows.
Thanks!

There's not enough information provided in SFrameBSInfo to indicate LTR.
2.3. LTR is not suggested to modify due to other accompanied mechanisms (including feedbacks).


Update password validation regex on Registration form

Added ), ( and : symbols as valid:

Before
After

@sashko9807 Thank you! It is updated with the other special symbols.


[NGSI-LD] Test query language for NGSI-LD entities

Test query language for get_entities endpoints.
official examples from spec v1.3.1
# Example 1: Query checking if temperature is equal to 20
temperature_check = "temperature == 20"

# Example 2: Query checking if brand name is not "Mercedes"
brand_check = 'brandName != "Mercedes"'

# Example 3: Query checking if the parked status matches a specific identifier
is_parked_check = 'isParked == "urn:ngsi-ld:OffStreetParking:Downtown1"'

# Example 4: Query encoded as HTTP Query String with multiple conditions
http_query_example = "?q=speed > 50; brandName != Mercedes"

# Example 5: Query checking if entities have the attribute isMonitoredBy
is_monitored_check = "isMonitoredBy exists"

# Example 6: Complex query using logical OR and AND
complex_query_1 = "((speed > 50 | rpm > 3000); brandName == 'Mercedes')"

# Example 7: Query combining temperature range and capacity conditions with logical OR
complex_query_2 = "(temperature >= 20; temperature <= 25) | capacity <= 10"

# Example 8: Query for checking attribute path for observedAt time
observed_at_query = "temperature.observedAt >= '2017-12-24T12:00:00Z'"

# Example 9: Query for a specific city within a JSON structure in address property
city_query = 'address[city] == "Berlin"'

# Example 10: Query for a specific air quality particulate level in a nested JSON structure
particulate_query = "sensor.rawdata[airquality.particulate] == 40"

@SystemsPurge could you take over this issue?


breaking change with Craft 2.7.7+

Description
We've updated a Craft 2 site from 2.7.6 -> 2.7.7 (and above) and it seems to be introducing breaking changes with the nocache plugin. It's giving us the following error anywhere we use this plugin within the Twig templates.
We noticed starting in Craft 2.7.7 that Twig was updated to 1.38.4. Based on the error in the screenshot attached, we believe that may be the issue.
Steps to reproduce

Update to Craft 2.7.7 or later
Attempt to open any page that uses {% nocache % } tags.
Receive the following error:

Additional information

No-Cache version: 1.0.3
Craft CMS version: 2.7.7
PHP version: tested on 5.6,7.0,7.1, and 7.2.x

Thanks @nicklanehq!  This has now been fixed.  No-Cache for Craft 2 is unlikely to have another official release at this stage, but you can grab the fix from the craft-2 branch (specifically, the nocache/twigextensions/NoCache_Node_Module.php file).


Markdown Footnotes Not Properly Numbered

🐛 Bug Report
I can't find documentation on the Docusaurus website, but according to https://www.markdownguide.org/tools/docusaurus/, Docusaurus uses the Remarkable markdown processor. And that processor supports footnotes, as shown in their manual and also in the  The Markdown Guide
Both guides have an example for using footnotes:
Here's a simple footnote,[^1] and here's a longer one.[^bignote]

[^1]: This is the first footnote.

[^bignote]: Here's one with multiple paragraphs and code.

    Indent paragraphs to include them in the footnote.

    `{ my code }`

    Add as many paragraphs as you like.

which yield two footnotes, 1 and 2. Where the markdown processor handles the numbering of the footnotes.
However, if you put the same code into Docusaurus, the footnotes section as expected -- labels are 1 and 2 respectively. But the superscript text with the link uses not the foot note number, but the text in between the [ ] when defining the foot note.  I believe the expected behavior would be for the footnote label in the main section and the footnote section to match and both be the footnote number.
As you can see in the image below, the link to the second footnote has the text 'bignote' instead of '2' even though it links to the footnote that is labelled '2'.

shows the issue.
Have you read the Contributing Guidelines on issues?
Yes
To Reproduce
Create markdown page with
Here's a simple footnote,[^1] and here's a longer one.[^bignote]

[^1]: This is the first footnote.

[^bignote]: Here's one with multiple paragraphs and code.

    Indent paragraphs to include them in the footnote.

    `{ my code }`

    Add as many paragraphs as you like.

Expected behavior
Second footnote in superscript should be labelled '2' and not 'bignote'
Actual Behavior
See above.
Your Environment
Clean fresh docusaurus checkout with alpha73

Hi,
We use MDX, and you can test your md syntax in the MDX playground here: https://mdxjs.com/playground/

It seems that this behavior is from MDX, so I believe you should report it here if it is for you the wrong behavior to have.
You can also track this issue in case you'd like to use a non-MDX parser once we support alternative parsers: https://github.com/facebook/docusaurus/issues/3018


add button to check if every deducible thing is marked

https://github.com/lrvideckis/Minesweeper_Android/pull/70