"new NativeEventEmitter() was called with non-null argument without the required "addListener" method"

Describe the bug
I am using React Native and I installed the stripe-react-native SDK.
I set it up and it is working. I followed these instructions https://stripe.com/docs/payments/accept-a-payment?platform=react-native.
But every time I start my app it keeps telling me "new NativeEventEmitter() was called with non-null argument without the required "addListener" method"
I don't know which Listener, as soon i comment //import { StripeProvider, useStripe } from "@stripe/stripe-react-native"; the warning disappear how can i fix this warning?
IM NOT USING APPLE PAY,
I'm using presentPaymentSheet and initPaymentSheet
To Reproduce
Steps to reproduce the behavior:
I followed all instructions and as soon I open the APP I get that message.
Expected behavior
Not receive a warn.
Screenshots

Smartphone (please complete the following information):

iPhone 11
OS: 15.5

Additional context
"@types/react-native": "~0.66.13",
"@stripe/stripe-react-native": "^0.12.0",
"expo": "~45.0.0",
expo --version
5.4.12

this is due to the version of stripe react native pinned in sdk 45- https://github.com/expo/expo/blob/sdk-45/packages/expo/bundledNativeModules.json#L11
you cannot use v 0.12.0 while on SDK 45. But this is fixed in a more recent version.
closing since this was fixed in https://github.com/stripe/stripe-react-native/commit/7cfcdc00bdaac7deb5836baba6ce8542bce509d7

I downgrade to
"@stripe/stripe-react-native": "0.6.1"
iOS: Warning is gone.
Android: Still showing it.

Ah we might be missing some blank override methods, I'll take care of that. In the meantime, you can silence this warning if you don't want to see it

I am getting this issue on  "@stripe/stripe-react-native": "0.17.0", with SDK 45. What stripe version is recommended with SD K 45 now?

you can use expo install to install the appropriate version of stripe :)

@charliecruzan-stripe has this been fixed for android? I'm 0.20.0 and still seeing this issue:

Are you using expo?

Having issue on Android, not IOS using latest expo and stripe builds afaik
"@stripe/stripe-react-native": "0.19.0",
"expo": "~47.0.12",
"react": "18.1.0",
"react-native": "0.70.5"

@textual this was addressed in 0.22.0+ IIRC

I'm using expo, so when I upgrade to the latest stripe, I get this error:
Some dependencies are incompatible with the installed expo version:
<EMAIL_ADDRESS>- expected version: 0.19.0
Your project may not work correctly until you install the correct versions of the packages.
Install individual packages by running npx expo install<EMAIL_ADDRESS>not sure which is worse, expo incompatibility or andrioid not liking nativeeventemitter

You can ignore that particularly warning with this: https://stackoverflow.com/questions/69538962/new-nativeeventemitter-was-called-with-a-non-null-argument-without-the-requir, which I would recommend instead of using a version that is not compatible with your Expo version

Are you using expo?

i'm using expo. same problem

If you're on Expo and haven't built a new development build since installing stripe-react-native, this is likely your issue. Make sure you update your provisioning profile on iOS to include Apple Pay permissions before you attempt to build.


I would like to format the contact us page better

the page though serves it purpose stands out of the rest of the website as it looks like it has been done in a rush I would like to make it look more polished whilst maintaining the theme of the website

@harbakshsinghbaath please add preview video of ur updated cintact us page.

Preview video? Can't you just assign it to me so I can make it and then just check if it's any good

@harbakshsinghbaath go ahead!

According to the changes i will add the level label to the PR.

Thank you

Just wanted to add that the label is gssoc-extd they won't accept anything else

Just wanted to add that the label is gssoc-extd they won't accept anything else

that is neccessary for only PR , if label is not added to PR then u need to worry

@harbakshsinghbaath any progress?

yes almost there, i got sick this morning so sorry for the delay

actually sorry for this but i dont think I can submit on time I'm really not doing well

you can assign it to someone else if you want to

you can assign it to someone else if you want to

No worries , do contribute when u r fine.

@Shekhar-Raj look at this issue.

@Shekhar-Raj look at this issue.

Can u please assign to me so that I can try it with full efforts!

@Shekhar-Raj go ahead.

@Anjaliavv51 , I Have a doubt I committed the issue in my old branch and when I am creating a pull request it shows me to assign a new issue first, how can I contribute to this issue?

@Anjaliavv51 , I Have a doubt I committed the issue in my old branch and when I am creating a pull request it shows me to assign a new issue first, how can I contribute to this issue? Can u please help?

I didn't get u place a screenshot and explain me the issue


Sync failed but there's no error info at all!!

When I was trying to create a new project of mediapipe with android studio, I got sync failed but there's no error message in the console, can anyone help troubleshoot the problem?
Here's my console message:

Syncing project: Sync (incremental)...
Updating VCS...
Running Bazel info...
Command: /usr/bin/bazel info --tool_tag=ijwb:AndroidStudio --curses=no --color=yes --progress_in_terminal_title=no --host_crosstool_top=@bazel_tools//tools/cpp:toolchain --
Command: git diff --name-status --no-renames f15da632dec186f2c1d3c780f47086477e2286a9
DEBUG: /home/shirakami/.cache/bazel/_bazel_shirakami/747afcf886d1ee55a82404ae9bab611f/external/rules_foreign_cc/workspace_definitions.bzl:15:10: WARNING: This branch is deprecated and no longer recieving updates. Please update to main or choose a specific commit to pin in your workspace.
Computing VCS working set...
.aswb/.bazelproject (added)
.aswb/.blaze/modules/.project-data-dir.iml (added)
.aswb/.blaze/modules/.workspace.iml (added)
.aswb/.idea/.gitignore (added)
.aswb/.idea/.name (added)
.aswb/.idea/misc.xml (added)
.aswb/.idea/modules.xml (added)
.aswb/.idea/runConfigurations.xml (added)
.aswb/.idea/vcs.xml (added)
WORKSPACE (modified)
mediapipe/calculators/util/BUILD (modified)
mediapipe/calculators/util/simple_flow_calculator.cc (added)
mediapipe/examples/desktop/face_keypoint/BUILD (added)
mediapipe/graphs/face_keypoint/BUILD (added)
mediapipe/graphs/face_keypoint/face_keypoint_desktop_live.pbtxt (added)
Sync targets from project view targets:
//mediapipe/examples/android/...:all
//mediapipe/java/...:all
Building Bazel targets...
Command: /usr/bin/bazel build --tool_tag=ijwb:AndroidStudio --keep_going --build_event_binary_file=/tmp/intellij-bep-3fe812b4-c2a1-49de-9cee-2653639f7c07 --nobuild_event_binary_file_path_conversion --curses=no --color=yes --progress_in_terminal_title=no --host_crosstool_top=@bazel_tools//tools/cpp:toolchain --noexperimental_run_validations --aspects=@intellij_aspect//:intellij_info_bundled.bzl%intellij_info_aspect --override_repository=intellij_aspect=/home/shirakami/.local/share/Google/AndroidStudio4.1/aswb/aspect --output_groups=intellij-info-android,intellij-info-generic,intellij-info-java,intellij-render-resolve-android,intellij-resolve-android,intellij-resolve-java -- //mediapipe/examples/android/...:all //mediapipe/java/...:all
Loading:
Loading: 0 packages loaded
DEBUG: /home/shirakami/.cache/bazel/_bazel_shirakami/747afcf886d1ee55a82404ae9bab611f/external/rules_foreign_cc/workspace_definitions.bzl:15:10: WARNING: This branch is deprecated and no longer recieving updates. Please update to main or choose a specific commit to pin in your workspace.
Analyzing: 76 targets (0 packages loaded, 0 targets configured)
INFO: Analyzed 76 targets (6 packages loaded, 4165 targets configured).
INFO: Found 76 targets...
[0 / 1] [Prepa] BazelWorkspaceStatusAction stable-status.txt
INFO: Elapsed time: 2.198s, Critical Path: 0.02s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
INFO: Build completed successfully, 1 total action
INFO: Build Event Protocol files produced successfully.
INFO: Build completed successfully, 1 total action
build invocation result: success
Parsing build outputs...
Total rules: 233, new/changed: 233, removed: 0
Reading IDE info result...
Reading IDE info result...
Updating target map
Sync finished
Timing summary:
BlazeInvocation: 2.3s, Prefetching: 1ms, Other: 87ms
Sync failed

Version information
Operating System: Ubuntu 20.04
AndroidStudio: 4.1.2
Platform: Linux 5.4.0-58-generic
Bazel plugin: 2<IP_ADDRESS>.1
Bazel: 4.0.0
I'll reply as soon as possible if needing more information, thanks!

Looks like a dupe of #2265


WEBAPP-303-add-logo-for-sprungbrett-into-work

This pull request belongs to an issue on our bugtracker.
You can find it there by looking for an issue with the key which is mentioned in the title of this pull request.
It starts with the keyword WEBAPP.

Looking good 🎉 Thanks!
Minor: Maybe it would look better if it was centered horizontally.

I think so, too.
Still nice work :)

You have a very goood Github name! Finally a name which I can remember!
Lookingn at you @Schedulaar, @klinzo and @Taggotty !

The format for commits is actually "WEBAPP: Your commit message" But this is fine for now :)


go/oasis-node: Add the unsafe-reset sub-command

Fixes: #2435
As it probably can be deduced from the name, this sub-command will
reset the node back to a freshly provisioned state (preserving any
key material if it exists).
The -n (--dry_run) flag will go through the process without actually
removing state, so that it is possible to preview the results of
executing the command.
Usage: oasis-node unsafe-reset --datadir=/path/to/datadir

Nice, this will be really useful :+1:
we could use (and therefore at least partially test) the command in the dump-restore e2e test: https://github.com/oasislabs/oasis-core/blob/master/go/oasis-test-runner/scenario/e2e/dump_restore.go#L71

we could use and therefore (at least partially) test the command in the dump-restore e2e test

It would need options to preserve certain things it currently will obliterate (worker local storage for the KM, the mkvs store for storage).


Is there a way to make one group expanded by default?

Let's say I have 3 groups and I want the first one to already be expanded when I open the app.

Hi,
I would really appreciate if this would be possible.

@dotocan you can programmatically expand a group by calling adapter.toggleGroup(1); - or whatever the flat list position of the group you want expanded is.
If you call toggleGroup() before you set the adapter to the RecyclerView it will appear expanded immediately on inflation. For example:
    adapter = new BandAdapter(makeBands());
    adapter.toggleGroup(1);
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setAdapter(adapter);


Unified shader

Unified shader with calibrated coefficents for DK1 and DK2.

oops, missed some files.  rebasing and will reopen with something that builds cleanly.
-James


Bypass load if the data is already present on the client

Describe the problem
I have an app with 2 routes :

a home page with a search input that returns a list of cities
a page per city showing some data about the city selected

(you can see the site at https://mesaidesvelo.fr)
If the user access a city page such as /ville/paris directly, using a load function works as expected : it allows me to render the page with the needed data.
But if the user came from the home page using the search feature, I don't want to call the load function of the city page, as the data is already loaded on the client from the “typeahead” search feature. I would like to display the page immediately without waiting for a HTTP client/response roundtrip.
(example of the data returned for a search of “paris”, https://mesaidesvelo.fr/api/collectivites?search=paris  this is enough to render the page /ville/paris)
Describe the proposed solution
One possibility would be to use the stuff argument of the load function to distinguish between the two navigation paths (data already present on the client from the search result, or direct access with the need to load the data)
export async function load({ page, fetch, stuff }) {
  // First case: data already on the client, we don't need to refetch it
  if (path.params.slug === stuff?.slug) {
    return { props: { city: stuff } }
  }

  // Otherwise, fetch the data as usual
  const res await fetch(`/api/getCityInfo/${path.params.slug}`)
  return { props: { city: await res.json() } }
}

The only problem is that I can't think of a way to put my data in stuff from my goto call. Maybe it would make sense to have this option ?
goto('/ville/paris', { noscroll: true, stuff: cityDataAlreadyFetched })

Alternatives considered
I considered using prefetch but it only fetch one page data at a time while my search “typeahead” API returns the top 10 page data in a single HTTP response.
Another alternative would be to write a service worker intercepting the fetch call from load and returning instantly the data already present on the client. That would work but seems fairly complex.
Importance
would make my life easier
Additional Information
No response

I'm able to solve my problem by putting the data is a store, a reading the stroe from the load function on the client:
import { browser } from '$app/env';
import { localisation } from '$lib/stores/localisation';

export async function load({ page, fetch }) {
    if (browser && get(localisation)?.slug === page.params.slug) {
        return { props: { city: get(localisation) } };
    } else {
        const res = await fetch(`/api/city?slug=${page.params.slug}`);
        return { props: { city: await res.json() } };
    }
}

I remember reading that reading a store from a load function was an anti-pattern, but if we do it only on the browser it is probably fine?
Closing this issue for now.


Added otlLib

Without otlLib in the setup file it gives the error
ImportError: No module named otlLib

when using defcon library.

Thanks.  It was rather by design that we have not added it yet, as it's extremely premature and subject to change.  But as long as you keep that in mind, I don't mind others using it.  Note that we'll be changing API, like, today, and again tomorrow, etc for a while.  You can track that here:
https://github.com/behdad/fonttools/issues/468

Thanks for the heads up.

It was rather by design that we have not added it yet

If other fontTools modules are calling that one, you need it in the setup script whatsoever.

If other fontTools modules are calling that one, you need it in the setup script whatsoever.

Ah, ok, good point.  Thanks.


Why can't I get USB jtag serial IO working? (CON-357)

why does this simple program not work? I am using S3.
extern "C" void app_main(void)
{
    nvs_flash_init();

    /* Disable buffering on stdin */
    setvbuf(stdin, NULL, _IONBF, 0);

    /* Minicom, screen, idf_monitor send CR when ENTER key is pressed */
    esp_vfs_dev_usb_serial_jtag_set_rx_line_endings(ESP_LINE_ENDINGS_CR);
    /* Move the caret to the beginning of the next line on '\n' */
    esp_vfs_dev_usb_serial_jtag_set_tx_line_endings(ESP_LINE_ENDINGS_CRLF);

    /* Enable non-blocking mode on stdin and stdout */
    fcntl(fileno(stdout), F_SETFL, O_NONBLOCK);
    fcntl(fileno(stdin), F_SETFL, O_NONBLOCK);

    usb_serial_jtag_driver_config_t usb_serial_jtag_config;
    usb_serial_jtag_config.rx_buffer_size = 256;
    usb_serial_jtag_config.tx_buffer_size = 256;

    esp_err_t ret = ESP_OK;
    /* Install USB-SERIAL-JTAG driver for interrupt-driven reads and writes */
    ret = usb_serial_jtag_driver_install(&usb_serial_jtag_config);
    if (ret != ESP_OK) {
        printf("usb_serial_jtag_driver_install fail\n");
        return;
    }

    /* Tell vfs to use usb-serial-jtag driver */
    esp_vfs_usb_serial_jtag_use_driver();
    esp_vfs_dev_uart_register();

    while (true) {
        unsigned char c;
        usb_serial_jtag_read_bytes(&c, 1, 0);
        usb_serial_jtag_write_bytes(&c, 1, 0);
    }
}

This code reads a single byte from the USB-to-serial adapter using the usb_serial_jtag_read_bytes function, and then immediately writes that byte back to the adapter using the usb_serial_jtag_write_bytes function.
One potential issue with this code can be :
The usb_serial_jtag_read_bytes and usb_serial_jtag_write_bytes functions are blocking functions, which means that they will wait until data is available to be read or written before returning. In this code, if there is no data available to be read from the adapter, the usb_serial_jtag_read_bytes function will block the loop and prevent any further execution of the code.
The code can be modified as follows:
esp_err_t ret = usb_serial_jtag_read_bytes(&c, 1, 1000); // timeout after 1 second
   if (ret == ESP_OK) {
       usb_serial_jtag_write_bytes(&c, 1, 0);
   }

In above code usb_serial_jtag_read_bytes function will wait for up to 1 second for data to be available and will return an error code if no data is available within that time. If data is available, the byte is read and immediately written back to the adapter using the usb_serial_jtag_write_bytes function

@jonsmirl can you also provide additional information like, what issue you are facing exactly and what you are trying to achieve?
because there are some possible reasons why the code may not work like: missing header files or hardware issues or incorrect configurations of the USB-to-serial adapter

I want to turn off the esp-matter REPL console and replace it with my own I/O.  I can do this without issue on a UART but  I can't get the USB Serial com port to work.
Here is another symptom:
printf("X");
usb_serial_jtag_write_bytes(&"Y", 1, 0);
You will see the X and not the Y.  So I am able to printf over USB serial but the read/write byte functions don't work. If I use the UART I see both X and Y;
printf("X");
uart_write_bytes(&"Y", 1, 0);
That loop should have had an if in it.
    while (true) {
        unsigned char c;
        if (usb_serial_jtag_read_bytes(&c, 1, 0))
             usb_serial_jtag_write_bytes(&c, 1, 0);
    }

Can you provide me with the simplest possible program which will just echo back what you type using /dev/ttyACM0? The USB serial code is not broken, the REPL console obviously uses it.  So how do I get it into a state where I can use it? This might be some issue with the VFS having control of it and I don't know how to turn it off.

I am attempting to avoid addressing this issue by using the code in the esp-console component instead. I don't have it completely working yet but it seems to be a possible solution.


cargo install should have an option to allow installing a yanked binary

Problem
Installing binaries using cargo install --version <version> <crate> will fail if version is yanked.
Crates can be yanked for different reasons. While some of those reasons are security related, not all are. Even for security related reasons, blocking the install of yanked tools is disruptive. Teams may need time to update CI, install scripts, systems, to be able to upgrade to a new version.
In CI systems it breaks and prevents reproducibility when versions of tools can disappear.
Proposed Solution
Add an option --allow-yanked to allow installing yanked binaries.
Or, change the --force option to allow installing yanked binaries.
Notes
No response

https://github.com/rust-lang/cargo/issues/4225 seems like a generalized version of this issue.
For cargo install specifically, could you run cargo install <pkg> --locked? It is the flag to achieve the reproducibility if the binary package had Cargo.lock committed.

For cargo install specifically, could you run cargo install <pkg> --locked? It is the flag to achieve the reproducibility if the binary package had Cargo.lock committed.

I use --locked, I just left it out of the example in the PR, and it doesn't make a difference. Cargo still disallows installing the binary.

I suspect the actual solution for this should be #2267 as it makes running the command subject to the lockfile which can bypass yanked.

The problem with relying on #2267 is that it doesn't solve the problem for users who wish to cargo install a binary globally, which is a very valid way to install a development tool. #2267 appears to be narrowly focused on a specific workflow where somebody is using a development tool for a Rust project specifically. This issue is specifically about the cargo install user flow which applies to a large variety of environments and setups which may not actually be in the context of a Rust project.


[dotnet] Update 3.1.27 and 6.0.7

Add new version info

Would have been picked up in a few hours automatically: https://github.com/dotnet/core/tags


[Feature Request] fire autocmd on end of makeState

Description
I want to running makeState at background. but it was asynchronous process.
Therefore I think it solved if event fired at end of makeState.
Idea
Implements roughly proposal to https://github.com/kuuote/dpp.vim/tree/feat-dppmakestatedone
and assumed configuration is following code.
" from help
if dpp#min#load_state(s:dpp_base)
  execute 'set runtimepath^=' .. s:denops_src
  autocmd User DenopsReady
  \ call dpp#make_state(s:dpp_base, '{your TypeScript file path}')
endif

" and auto exit
autocmd User DppMakeStateDone * quit!

I have added dpp:makeStatePost autocmd.


Add Automated Contributors Section to README.md

@all-contributors please add @vgrigoriu  for code
@all-contributors please add @samqty  for code
@all-contributors please add @cmdkeen  for code
@all-contributors please add @delainewendling  for code
@all-contributors please add @allenz0810  for code
@all-contributors please add @beforan   for code
@all-contributors please add @LUS1N  for code
@all-contributors please add @euronay  for code
@all-contributors please add @dutts  for code
@all-contributors please add @melkor54248 for code
@all-contributors please add @agustashd for code
@all-contributors please add @OranguTech for code
@all-contributors please add @macleodmac for code
@all-contributors please add @pezholio  for code
@all-contributors please add @tomizechsterson for code
@all-contributors please add @codeman869 for code
@all-contributors please add @NauhcNoohc  for code

@all-contributors please add @vgrigoriu for code

@all-contributors please add @euronay for code

@all-contributors please add @samqty for code

@all-contributors please add @cmdkeen for code

@all-contributors please add @delainewendling for code

@all-contributors please add @allenz0810 for code

@all-contributors please add @beforan for code

@all-contributors please add @LUS1N for code

@all-contributors please add @dutts for code

@all-contributors please add @melkor54248 for code

@all-contributors please add @agustashd for code

@all-contributors please add @OranguTech for code

@all-contributors please add @macleodmac for code

@all-contributors please add @pezholio for code

Wow, next up a PR for the bot to recognize more than one contributor at a time!


netkvm: notify object: add one Broadcom SRIOV adapter

Add 14e4:16dc (NetXtreme-E Ethernet Virtual Function)
Signed-off-by: Annie Li<EMAIL_ADDRESS>

OffloadLSO failure is the known issue.
Merging.


Add 'filter' to the list of extensions

That extension was missed.

Can somebody merge this, please?


chore: release-please-config.json を更新

Codecov Report

Merging #25 (e525203) into main (4c93acc) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #25   +/-   ##
=======================================
  Coverage   98.25%   98.25%
=======================================
  Files          20       20
  Lines         573      573
  Branches       87       87
=======================================
  Hits          563      563
  Misses         10       10

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


NuGet: Support multiple configured NuGet indices

Use the NuGet.config file to get the configured indices for the analyzed
project and support package sources other than the default api.nuget.org.
Resolves #2189
This might not work for all service indices, as some do not provide valid catalogEntries.
e.g. The service for windows terminal dependencies links to this Package Data which does not contain a valid catalogEntry URL

Commit message nits:

NuGet: Support multiple configured NuGet indices
DotNet: Support multiple configured indices

Shouldn't it rather be so that for DotNet you emphasize "NuGet indices", and for NuGet you just talk about "indices"? Like:

NuGet: Support multiple configured indices
DotNet: Support multiple configured NuGet indices


tile op: support int32_t data type

Needed for quick integration with a partner and so only extending to support int32_t for now

If we want to add support int64_t in future, this code should be easy to extend, right?

yes, it should be very easy to extend this


Added .editorconfig.

Added .editorconfig. Useful for people having tabs as their editor default settings and wanting to contribute into this project. Not useful for people having 4 spaces as default settings.

I'm reluctant to add another file in the root for the benefit of people that have a default editor config so out of line with Python norms.  I've been on the other side of sending mass PRs for things I consider wrong in projects across the Internet, but I think in this case the lack of .editorconfig is fine -- both PEP 8 and Black prefer 4 spaces already, and you'd be sending this to 99.9% of python projects adding clutter.
Is there some documentation you can point me at (like a popular editor defaulting to tabs in .py files without user configuration) that would explain the value in this?


RC npm Best Practices Guide: package content guidance

Propose to add section providing guidance on the content of a published package to improve security for consumers.
Basic guidance recommended: package the smallest set of content that allows delivery of intended functionality.
Rationale:

All of the content bundled in a package is accessible and provides opportunity for abuse without directly contributing to the intended functionality of the package.
It is also difficult and impractical to ascertain what content of a package is required from the point of view of any consumer. The further removed a consumer is from [indirect] dependencies the harder it becomes to understand what is actually relevant/required.
Tools that may scan for issues will be most thorough by scanning all of the content. Keeping the content small will reduce cost, improve turn-around time, and may allow for more thorough analysis.

Examples of content that should be excluded include helper files used to generate the package and files used for verification including test data and code.

This looks like it can be closed as the guide has been publshed.

https://github.com/ossf/package-manager-best-practices/blob/main/published/npm.md

@torgo, @SecurityCRob, why does publishing mean it can be closed? Or maybe the funniness is closing as completed rather as rejected? There is no text in the guide to the effect recommended.


UseWindowsService() should take an overload to configure the eventlog

Since the addition of automatically creating the eventlog log with UseWindowsService(), it would be nice to have an overload to control the logname and source of that eventlog. I'm thinking just overloading UseWindowsService() to UseWindowsService(Action<EventLogSettings> configure) then just handing that Action to the call to AddEventLog().

I just created PR #1800 that includes my proposed changes.

As discussed in the PR, we don't want to couple the event logging config to the UseWindowsService method. Closing.

can we please reopen this or provide a solution on how to overrride default event log source ? I want to set up my own destination rather than polluting Application source in the event log
I was able to do this with
//configure logging
.ConfigureLogging(loggerFactory =>
//add event log
loggerFactory.AddEventLog(settings)
but now UseWindowsService() is overriding it

@losdamianos All you have to do is add
services.Configure<EventLogSettings>(settings =
{
    settings.LogName = "MyService";
    settings.SourceName = "MyService";
});

in ConfigureServices after the call to UseWindowsService.

I want to set up my own destination rather than polluting Application source in the event log

The default logic for UseWindowsService does in fact attempt to log to an Event Source named after the application. However, as @erikmf12 said, you need to either have created the Event Source manually in advance or launch your application at least once as an Administrator so that it can create the source.

@losdamianos All you have to do is add
services.Configure<EventLogSettings>(settings =
{
    settings.LogName = "MyService";
    settings.SourceName = "MyService";
});

in ConfigureServices after the call to UseWindowsService.
Also, don't forget that if it yells at you that it cannot create the Source, just start your app once as Admin and then it will have the correct credentials.

@erikmf12 Thanks for getting back to me. I run VS as admin before running this test snippet, it was working fine on preview 5 but just cant get it to work on preview 6
        public static IHostBuilder CreateHostBuilder(string[] args)
        {
            string _sourceName = "MyProgram"; //source program name
            string _logName = "MyProgram"; //new event log or targeted event log name

            //if custom event log does not exist, create it
            if (!EventLog.SourceExists(_logName))
            {
                //event log creates new app log and associates program, "My Program", with new log, "My Event Log"
                EventLog.CreateEventSource(_sourceName, _logName);
            }
            //event log settings
            EventLogSettings settings = new EventLogSettings
            {
                SourceName = _sourceName,
                LogName = _logName
            };

            return Host.CreateDefaultBuilder(args)
                    //configure logging
                    .ConfigureLogging(loggerFactory =>
                        //add event log
                        loggerFactory.AddEventLog(settings)
                                    //add console
                                    .AddConsole(x => x.DisableColors = true))
                    .ConfigureServices(services =>
                    //add worker service
                    services.AddHostedService<Worker>()
                      //Configure db context
                      .AddDbContext<DBContext>(options => options.UseSqlServer(_configuration.GetConnectionString("MSQLDEVDatabase"))));
        }

To keep it simple I just changed it to below, still no luck, error test message logs directly to application with the source = ".NET Runtime"
            return Host.CreateDefaultBuilder(args)
                    .UseWindowsService()
                    .ConfigureServices(services =>
                    services.AddHostedService<Worker>()
                    .Configure<EventLogSettings>(z=> new EventLogSettings
                    {
                        SourceName = "MyProgram",
                        LogName = "MyProgram"
                    })

@erikmf12  thanks! I got it working in the end

Ah yeah, the Configure delegate takes an Action<TOptions> so constructing a new instance in your handler won't do anything other than running the constructor of the class. You're expected to just modify the existing value. If you think the IntelliSense docs could be clearer here, a PR to fix them would be cool!


💡 RFC: Change unused variable from red to yellow

Background & Motivation
When there is an unused variable it underlines it in red, it's confusing as that is also the colour used for errors. This makes it difficult to see at a glance whether there is an actual error or if something is just not used yet.

Proposed Solution
Possible solutions
Make the underline yellow for unused as that information is still great to have
Alternatives considered
Risks, downsides, and/or tradeoffs
I don't believe there are any
Open Questions
Detailed Design
No response
Help make it happen!

[ ] I am willing to submit a PR to implement this change.
[X] I am willing to submit a PR to implement this change, but would need some guidance.
[ ] I am not willing to submit a PR to implement this change.

Hello! This happens because you have the tsconfig.json setting noUnusedLocals turned on.
This comes with the strictest preset in Astro, so perhaps you have it from there? If you disable it, you should see the same behaviour as in TypeScript files:


"Add email" button in Settings doesn't seem to do anything

Happens at least on 53.5 and on current master.
Clicking button does nothing.

Glad I'm not the only one. I didn't notice this until the other day on a new machine. As the login credentials were carried through updates, those of us who signed in on versions from long ago had no reason to notice this bug. As I'm in the process of setting up a new machine, I now have no way of associating my account with the latest version. I'm assuming I'll have to get a much earlier version, sign in, then update.

Signing in from 52.2 then updating to latest (53.7) works.

It's also still possible to log in using the option in the profile menu at top right.


Strip '$ ' from start of code lines when copying

Description
It is quite common practice to use a $ at the start of each line in a code block to signal that it's a terminal command.
E.g:
$ brew install example
$ docker pull example
When using the built-in GitHub copy button, it includes the '$ ', then if you paste that into your terminal (in this example zsh) you will get the error
zsh: command not found: $
For single line commands, this can, of course, be worked around by just selecting the command text.
But when copying multiline strings this isn't possible.
An option to strip '$ ' from the start of lines when using the copy button would be really useful.
Example URLs
https://github.com/samschott/maestral
Multiple examples of multiline commands in this repo. Undoubtedly, there's probably a better example with even more lines.

I'm not comfortable with silently altering user content. I'd advise adding a $ alias to your cli. This might work:
alias "$"=""


Can't play the local sound file when the js bundle is loaded from http server.

I load js bundle from remote http server, it can't play the local sound file. If I change to local js bundle, it works fine.
In this case, the error argument in callback is null, but just no sound. If I change the file name to a non-exists file, the error argument is an error.

This doesn't sound like a react-native-sound issue. Have you verified that the js bundles are identical?

It's my fault. I didn't call play in callback. Most time it works in local network env, and often fails in a  slower network environment.


Enforce use of spread syntax over Object.assign

Brought up by @jbalsas over here.
I think it is probably time to enforce use of spread over Object.assign now:

We're using Babel everywhere.
It is https://twitter.com/bmeurer/status/1015105293301280768 on engines that support it natively.
It is concise.
It is already a familiar pattern to people working in the React ecosystem.

Based on the examples, not sure whether the prefer-object-spread rule will do what we want; if it doesn't, I think we should be able to cook up a custom rule easily enough.

Merged: https://github.com/liferay/eslint-config-liferay/pull/88


3.5.2-alpine OpenSSL broken

Invocation of pip3 install is impossible on 3.5.2-alpine image:
$ docker build .
Sending build context to Docker daemon 271.9 kB
Step 1 : FROM python:3.5.2-alpine
 ---> 9a646c8ffe06
Step 2 : WORKDIR /si
 ---> Using cache
 ---> f9776040eaf0
Step 3 : COPY requirements.txt /tmp
 ---> Using cache
 ---> 6a27c18de034
Step 4 : RUN python3 -c 'import ssl; print(ssl.OPENSSL_VERSION)'
 ---> Running in 5ad2d70780c4
OpenSSL 1.0.2h  3 May 2016
 ---> d54a691e78cc
Removing intermediate container 5ad2d70780c4
Step 5 : RUN pip3 install --index-url http://pypi.python.org/simple --trusted-host pypi.python.org --requirement /tmp/requirements.txt
 ---> Running in 70dcb10acb68
Collecting scipy==0.17.1 (from -r /tmp/requirements.txt (line 1))
  Downloading scipy-0.17.1.tar.gz (12.4MB)
    Complete output from command python setup.py egg_info:
    Download error on https://pypi.python.org/simple/numpy/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645) -- Some packages may not be found!
    Couldn't find index page for 'numpy' (maybe misspelled?)
    Download error on https://pypi.python.org/simple/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645) -- Some packages may not be found!
    No local packages or download links found for numpy>=1.6.2
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-rhh3r_cn/scipy/setup.py", line 265, in <module>
        setup_package()
      File "/tmp/pip-build-rhh3r_cn/scipy/setup.py", line 262, in setup_package
        setup(**metadata)
      File "/usr/local/lib/python3.5/distutils/core.py", line 108, in setup
        _setup_distribution = dist = klass(attrs)
      File "/usr/local/lib/python3.5/site-packages/setuptools/dist.py", line 269, in __init__
        self.fetch_build_eggs(attrs['setup_requires'])
      File "/usr/local/lib/python3.5/site-packages/setuptools/dist.py", line 313, in fetch_build_eggs
        replace_conflicting=True,
      File "/usr/local/lib/python3.5/site-packages/pkg_resources/__init__.py", line 826, in resolve
        dist = best[req.key] = env.best_match(req, ws, installer)
      File "/usr/local/lib/python3.5/site-packages/pkg_resources/__init__.py", line 1092, in best_match
        return self.obtain(req, installer)
      File "/usr/local/lib/python3.5/site-packages/pkg_resources/__init__.py", line 1104, in obtain
        return installer(requirement)
      File "/usr/local/lib/python3.5/site-packages/setuptools/dist.py", line 380, in fetch_build_egg
        return cmd.easy_install(req)
      File "/usr/local/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 634, in easy_install
        raise DistutilsError(msg)
    distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('numpy>=1.6.2')

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-rhh3r_cn/scipy/
The command '/bin/sh -c pip3 install --index-url http://pypi.python.org/simple --trusted-host pypi.python.org --requirement /tmp/requirements.txt' returned a non-zero code: 1

pip should use HTTP, not HTTPS in such case. I've tried the same command on the 3.5.2-sim image - it works

ca-certificates not installed by default according to #109

Fixed by #136


Chore: refactoring from wombat to cryptoadvance and testing

change of package naming
trying to get the tests to run on cirrus

Please have a look @wombat6

Looks good to me. I was able to run the refactored version locally with no issues.
One thing I just realized is that when I removed the btc and btc_cusum columns from the DataFrame, the chart is now showing sats, which probably isn't the right default behavior. (In the future I'm thinking we want to allow the user to choose which they want, but initially I think the default should be btc.)
I'll add comments to the relevant file.


Version 3.7.5 breaks semantic versioning (removes public API)

The 3.7.5 release includes https://github.com/rs/SDWebImage/commit/5b05d6c3cc37df4b87d202a1b6ad6ee1f4d5c64c#diff-bdc7e3a487083b2ad4c00bdfc0345330 which removes a method from a public header. Per semantic versioning, this is a breaking API change which requires a new major version. This breaking change was instead released in a patch version.
The best route forward would be to re-add the old method's name (sd_setImageWithPreviousCachedImageWithURL:andPlaceholderImage:options:progress:completed:) to the interface, with an implementation that simply calls through to the new method.
Per semantic versioning, the next minor release of SDWebImage may mark this old method as deprecated. It may then be removed in the next major version of the library.
From semver.org

What do I do if I accidentally release a backwards incompatible change as a minor version?
As soon as you realize that you’ve broken the Semantic Versioning spec, fix the problem and release a new minor version that corrects the problem and restores backwards compatibility. Even under this circumstance, it is unacceptable to modify versioned releases. If it’s appropriate, document the offending version and inform your users of the problem so that they are aware of the offending version.

:+1:

Thanks @cdzombak for detailing this.


[padring] Correct enumeration type for IOB[3:0] muxing

This resolves lowRISC/OpenTitan#23600.

@sha-ron , could you please verify that this works on your end?

I am merging this. The only CI test failure is boot_policy_flash_ecc_error:a_valid_b_corrupt_manifest_security_version_fpga_cw310_rom_with_fake_keys which I've also seen failing for other unrelated PRs.


Provide more intuitive feature_importance

Given multiple models such as
StableRules model with 8 rules:
 if X[i, :nodes] < 7.0 then 0.238 else 0.046 +
 if X[i, :nodes] < 2.0 then 0.183 else 0.055 +
 if X[i, :age] ≥ 62.0 & X[i, :year] < 1959.0 then 0.0 else 0.001 +
 if X[i, :year] < 1959.0 & X[i, :nodes] ≥ 2.0 then 0.0 else 0.006 +
 if X[i, :nodes] ≥ 7.0 & X[i, :age] ≥ 62.0 then 0.0 else 0.008 +
 if X[i, :year] < 1959.0 & X[i, :nodes] ≥ 7.0 then 0.0 else 0.003 +
 if X[i, :year] ≥ 1966.0 & X[i, :age] < 42.0 then 0.0 else 0.008 +
 if X[i, :nodes] ≥ 7.0 & X[i, :age] ≥ 42.0 then 0.014 else 0.045
and 2 classes: [0, 1].
Note: showing only the probability for class 1 since class 0 has probability 1 - p.

It is currently unclear which variable has "significant" impact on predictive performance and which one not. The only thing that the current feature_importance provides is whether A has higher impact on B, but not whether A has a "significant" impact on the prediction.
To solve this, maybe add a function that determines the percentage that some feature affects the outcome? So basically feature_importance of some feature X as percentage of the sum of all feature_importances.

Maybe just a nice plot would work? This is from scikit learn:

Works well on my data and on the example here. Also easy to defend against sklearn and many others use the same method. Added an example to the plot in https://github.com/rikhuijzer/SIRUS.jl/commit/d3b879496d6a839ff28bdd43502de412ea3d40f3.


Python 2 support roadmap

What's the roadmap towards sunsetting Python 2 support for MNE? Many projects have already decided to support only Python 3, with one final Python 2 release that won't get any new features. MNE should be on the http://python3statement.org/ website, which means that we will have to drop Python 2 support by 2020 at the latest. Many projects will do or have done this earlier by releasing one final Python 2-compatible version, while development continues with Python 3-only code.

My vote is to follow NumPy and SciPy:
https://docs.scipy.org/doc/numpy-1.14.0/neps/dropping-python2.7-proposal.html
But for use our maintenance releases don't last nearly as long as theirs. So the important thing is that we drop new features at the end of 2018, which means 0.17 would probably be the last 2.7 release.

My vote is to follow NumPy and SciPy

Yeah, why not?

I like the idea of following NumPy. Should we prepare a short statement for the website? Should we also try to get on the Python 3 Statement website?
@agramfort it's nice that we currently support the two versions, but at least for me it is sometimes annoying/frustrating to keep stumbling over Python 2 incompatibilities (related to e.g. encoding or float/int). Even more so, we can't use some nice Python 3 features and have to carry around the six package to maintain Python 2 compatibility. I think discarding all that will free our resources for getting more important things done. The whole CI suite is already taking a long time, so dropping all Python 2 jobs will be a welcome relief for me (and Travis).
The other question is: does everything work with Python 3? I remember some people mentioning a while ago that mayavi is still in beta for Python 3, but this seems to be resolved.
How is this going to work technically? After we make the last Python 2 release (presumably 0.17), do we actively start to make the code more Python 3 like, or do we not touch it and just ensure that new features make use of Python 3? I'm assuming the latter, and the former only if someone has time to do it.

if for my next MNE training course all students have a working python 3 env
I am happy to make this decision rapidly.
we should ask on the mailing list if there is any objection too.

I think this should be possible since installing Python 3 via Anaconda is not more difficult than installing Python 2 :smile:. I'll ask on the mailing list.

We probably want to hear more MNE devs here. @kingjr in particular :)

Yes, more input would be great. I've already sent out a message to the mailing list (although with the wrong email address so this message is awaiting moderator approval).

How s mayavi on python 3 ?
On Wednesday, 2 May 2018, Clemens Brunner<EMAIL_ADDRESS>wrote:

Yes, more input would be great. I've already sent out a message to the
mailing list (although with the wrong email address so this message is
awaiting moderator approval).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mne-tools/mne-python/issues/5167#issuecomment-385951138,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEp7DHN-G4a7qx94IW1GZ1-HotYZQZsrks5tuZ0CgaJpZM4TlHJ8
.

@larsoner claims if you use the environment.yml to set up your system, it works. Haven't tried it myself, but if Eric says so ...

Also https://github.com/enthought/mayavi/issues/84 is closed, so I'm assuming that it works (but haven't tried it either).

For almost 7 months our CIs have been running Py3k with Mayavi.

Do they include Mac and windows environments ?
On Wednesday, 2 May 2018, Eric Larson<EMAIL_ADDRESS>wrote:

For almost 7 months our CIs have been running Py3k with Mayavi.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mne-tools/mne-python/issues/5167#issuecomment-385953542,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEp7DKoKKGWAGEvY9dOcVu0hTfqvvB4Tks5tuZ93gaJpZM4TlHJ8
.

Yes

Ideally the dependencies would be available as official release rather than special github branch installations... Hopefully that will be the case soon...

I'm also all for dropping explicit Python 2 support once all the dependencies have official Py3-compatible releases and don't require any extra steps to install from a development branch.
How dependent is the overall codebase on six for dual compatibility? My own experience is that well-written code, even string code, generally works well[1] on 2.7 and 3 without any changes except a from __future__ import print_function, division (at least for code that's not dependent on features introduced in a later Py3 point release like the new format strings). If that's the case, then we can leave that line in, even after we drop official Py2 support / CI testing and let limited, unsupported Py2 compatibility continue until too much of the code has Python 3 idioms.
[1] This of course ignores some memory optimality for some iterator methods.

We use six for a bunch of things, like next, StringIO, BytesIO, string_types, etc.

@palday which dependencies do not have official Python 3 support? AFAIK all packages in environment.yml are officially on PyPI, so it might not be necessary to pull them from specific branches.

I didn't have anything in particular in mind and I haven't looked at the Install page in a while, but I was thinking about how there used to be some special casing for Python 3, which I think is what @christianbrodbeck was also getting at.  My statement was more "conditional" and less "temporal".

Sure, we should check. What I meant to say though was that we have these special installs even for Python 2, so this is not a Python 3 issue. Of course we could check if the normal versions work in case no one has done that in a while. @larsoner @christianbrodbeck?

The docs recommend using pip (via environment.yml) to install MNE and not conda-forge, and everything seems to work with Python 3.

Now that mayavi is pip-installable on Python 3, I think we can safely implement the Python 3 transition following the example of NumPy. I can write a short text, but where should this text go? It could be a short section in README.rst and/or a short section in the documentation section of the website (e.g. in "Getting started" right after "Introduction to Python"). Let me know what you prefer. I will then also try to add MNE to https://python3statement.org/.

I would do the README plus whats_new.rst API section, plus maybe a .. note in install_mne_python.rst. That way the plan will be made clear to people when we release 0.17. It's a bit redundant but we do want to warn people they need to transition before 0.18.


enhancement: Add support for resolver policies

I couldn't get TestProvider to pass, it says

think i found a bug
panic: interface conversion: interface {} is bool, not *bool

This PR is dependent upon a change to cloudflare-go. That PR is here https://github.com/cloudflare/cloudflare-go/pull/1615

acceptance tests all passing
TF_ACC=1 go test ./internal/sdkv2provider -v -run "^TestAccCloudflareTeamsRule_" -count 1 -timeout 120m -parallel 1
=== RUN   TestAccCloudflareTeamsRule_Basic
--- PASS: TestAccCloudflareTeamsRule_Basic (7.50s)
=== RUN   TestAccCloudflareTeamsRule_NoSettings
--- PASS: TestAccCloudflareTeamsRule_NoSettings (10.30s)
PASS
ok  	github.com/cloudflare/terraform-provider-cloudflare/internal/sdkv2provider	18.921s


Angular 4.0.0-rc.1

Since Angular 4.0.0-rc.1:

The <template> element is deprecated. Use <ng-template> instead

The result is that you can't click on an item from the result list of the Typeahead component.

I tried today 4.0.0-rc.2
minor changes are needed and it is starting to work
but it is kinda a breaking change
so I can publish it as @beta
ok?

@valorkin beta ist OK :)

@valorkin Thanks it would be useful to fix this deprecation error! Could you let us know when published? Cheers

@valorkin any news :) ?

@valorkin is working on that and he hopes that he can fix the whole problem this week...

FYI - Saw elsewhere -  https://github.com/valor-software/ng2-bootstrap/pull/1770 that ng4 beta is available:
npm i -S ng2-bootstrap@beta

Yes, it is. Unfortunately not compatible with AoT

FYI: 2.0.0-rc.0 fixed this!

Silly question how do I get the 2.0.0.rc-0 please?

Install @beta

there are already 5 pages of issues about this single deprecation. Why you decided to fix it only in next major, that is not released?
It's extra small, could you please fix it with currently released major simply as bugfix? If there are dozens of users asking of this for few months, would be great to give them a smile...
Keep in mind that next, not stable, bc breaking release is not a solution for all users.
cc @valorkin @Martin-Wegner @fchiumeo

@keradus I guess the idea here is that version 1.x is dedicated to Angular 2.x. Angular >= 4 is covered by ngx-bootstrap@next

@keradus when I say @next version, I am literally mean it:
npm install ngx-bootstrap@next
I am trying to solve as a many issues as possible without breaking changes, then merging them in @next version and publishing

yet, as @next is unstable, as you could see from history of 10 PR and 5 sites of bug report, a lot of ppl are using current release with angular 4 with ease , only encountering that one violation. And while current release is stable, we like to use it. While @next release may be nice, it's not there yet, it may or may not contains bc breakers, every time you update you may end up with a little different version...
is there an issue with updating that deprecation on 1.x line ?

I can't do it in v 1.*
It's a breaking change
So it has to be v2
If only I had statics about ngx-bootstrap users,
Do they use v2 or v4 of angular


Win11 C# - BluetoothRadio.Default 'Operation is not supported on this platform.'

Microsoft Visual Studio Community 2022
Version 17.8.3
VisualStudio.17.Release/17.8.3+34330.188
Microsoft .NET Framework
Version 4.8.09032
Installed Version: Community
Windows 11 Pro
InTheHand.Net.Bluetooth version 4.1.40 from NuGet (latest version)
BluetoothRadio.Default yields 'Operation is not supported on this platform.'
...and returns null.
ChatGPT seems to think I need BluetoothRadio.PrimaryRadio, but this is not recognized.
static void EnableBluetooth()
{
	BluetoothRadio radio = BluetoothRadio.Default;
	if (radio == null)
	{
		Console.WriteLine("No Bluetooth radio hardware or unsupported software stack");
	}
	else
	{
		if (radio.LocalAddress != null)
		{
			// Bluetooth is enabled
			Console.WriteLine("Bluetooth is already enabled");
		}
		else
		{
			// Bluetooth is not enabled, attempt to enable it
			try
			{
				radio.Mode = RadioMode.Connectable;
				Console.WriteLine("Bluetooth is now enabled");
			}
			catch (Exception ex)
			{
				Console.WriteLine($"Failed to enable Bluetooth: {ex.Message}");
			}
		}
	}

	Console.WriteLine("Well, I tried.");
	Console.ReadLine();

}

What I'm trying to do is find the default radio, and enable it if it's off.

This tends to occur when your project doesn't target a specific enough TFM and the .NET Standard dll is used from the NuGet package. The consuming package needs to target net6.0-windows7.0 or net6.0-windows10.0.19041.0 or higher to pick up the Win32 or WinRT implementations respectively.

version: InTheHand.Net.Bluetooth 4.1.40
Framework: WPF
Just to chime in here:
I reference WinRTNetworkStream directly in one of mye Bluetooth classes. If I target net6.0-windows10.0.19041.0 I can't compile the application:

CS0246: The type or namespace name 'WinRTNetworkStream' could not be found (are you missing a using directive or an assembly reference?)

So it seems that targeting net6.0-windows10.0.19041.0 forces it to Win32, not WinRT. The same happens when I target net6.0-windows10.0.20348.0. I am able to reference it when targeting net6.0-windows10.0.22000.0 however.
Based on that it would seem that Win32 is used for all versions before 10.0.22000.0?
If it's supposed to be for 10.0.19041.0 and up then maybe something is wrong with the package? I can reproduce it if I create a new blank WPF project. For my use case it would be great if 10.0.19041.0 and up used WinRT. If you'd like I can report it as a new issue if it's supposed to use WinRT.

@PerKjelsvik any reason you need WinRTNetworkStream over NetworkStream?

@PerKjelsvik any reason you need WinRTNetworkStream over NetworkStream?

No, not really! I have only used it in my class to be able to easily navigate directly to the platform-specific NetworkStream. Normally I would just use NetworkStream, but when I explored using the WinRT version in November (#361) I referenced it directly to look into the implementation, and that's also how I discovered it didn't work for build version 10.0.19041.0.

For .NET 6 you should be getting WinRT as long as your target SDK is 19041 or later.

Hmm, that doesn't seem to be the case? Assuming WinRTNetworkStream should be accessible when targeting net6.0-10.0.19041.0 in the application project file. Here's what I have in a new blank WPF project:
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
    <RootNamespace>_32FeetTest</RootNamespace>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <UseWPF>true</UseWPF>
    <SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="InTheHand.Net.Bluetooth" Version="4.1.40" />
  </ItemGroup>

</Project>

In code:
using InTheHand.Net.Sockets;

BluetoothClient client = new();
var stream = client.GetStream();
var winRT = (WinRTNetworkStream)stream; // can't compile, CS0246

Inspecting the BluetoothClient I also see this:

In this case the compiler flag WINDOWS10_0_17763_0_OR_GREATER should have triggered, right?
Or is there something wrong with my setup?


VSC doesn't protect add-on IP

Describe the bug
We've been able to see that in an on-premise installation with add-ons, after symbols have been generated, you can access to add-ons source code from VSC throught Microsoft_Application_13.0.25924.0.app.
Tested with customer license without developer permissions.
To Reproduce

From an installation with add-ons, generate symbols.
Run VSC and point to the appropiate server.
Download symbols.
Develop some code that calls to a function into add-on.
Right-click on function name and click in Go to definition.
The source code of the add-on will appear.

Expected behavior
We expect that our source code is not visible to third.
Screenshots

Versions:

AL Langauge: 2.1.79379
Business Central: 13.0.25924.0.

Hi
Would you so kind to tell us something about this?
Thanks!

This is by design. Anything in Microsoft_Application.app is opened.
How different is your onprem scenario from working and debugging with C/SIDE?
For IP protection you can use run-time packages for extensions, or extensions with showmycode false.
https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-creating-runtime-packages
https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-security-settings-and-ip-protection

Thanks Kálmán for your response.
With the debugger I can view the code that is executing but I cannot download all the objects in the add-on. From C/SIDE I cannot view nor modify the objects in the add-on without our license.
Can you so kind to tell us if we can create an extension for on-premise installations of our add-on wich have thousands of objects?
If not, IMHO when symbols are generated, the server should check the license permissions and not include in Microsoft_Application.app
Thanks

IMO you should be able to create an extension with thousands of objects.  We do that with teh base app (6000 objects) starting from the Spring release. The first publishing is a pain, but with the RAD feature publishing/debugging is 40 seconds of the base app.
Go to definition for baseapp objects is not using the symbol file, but does what the debugger is doing.
It  connects to the the NST defined in your launch.config and it simply gets the AL source for an application object.
If you can open an extension in VsCode and you can debug it then accessing the base app(Application symbol) is for free.
You should be able to decouple your IP in an app and set show my code false. I agree, it is probably easier to say it then do it.
I will take your note as an enhancement.

We'll try it, or even better, we'll do it :-)
Firstly we must to convert our C/AL to AL, although it is a work we should do anyway.
Thanks!


standalone extract owner groups

Software versions
"@pact-foundation/pact-node": "8.2.0"
Expected behaviour
tar extracting should happen with current logged in user / group
Actual behaviour
tar which extracts files but doing with archieve file owner groups  which prevents executes files  unless you do chown to current user.
Steps to reproduce
just create a dockerfile
FROM node:10.15.3-alpine AS build
try npm install /@pact-foundation/pact-node
and you could see standalone files in node_modules/@pact-foundation/pact-node having 2000 as owner group ids.

here is the work around if anyone wants .  Add this in your Dockerfile
RUN chown -R root:root node_modules/@pact-foundation/pact-node/standalone/

I also ran into several other problems.  So the  shell scripts written in mix of sh and bash under standalone pact distribution so no good if your docker uses ash/sh shells.  I am logging here if the team would like to investigate and fix it future.

Thanks @senips1001. We know we have a dependency on bash at the moment - you'll find more on this over on the pact-js repo (as well as a number of others). Appreciate the visibility here is difficult, and we'd like to move to our docs.pact.io website for all to see.
I'm not convinced of the underlying permissions issue - would you be willing to share a code example that reproduces it?

Well, I was literally on this about 3days to run the whole thing run finally.  Anyway here is an example https://github.com/qamatic/examples-pact

Thanks for the example repo!
According to the documentation of tar, the default way it handles permissions changes depending on whether or not it is run as root:

preserveOwner If true, tar will set the uid and gid of extracted entries to the uid and gid fields in the archive. This defaults to true when run as root, and false otherwise. If false, then files and directories will be set with the owner and group of the user running the process.

This is not what we want, and I expect it affects docker users the most (as they're most likely to run as root).
I think we should correct this, because extracting with the owners stored in the archive is definitely not correct.
However, the permissions that it extracts with are rwxr-xr-x, so I think it shouldn't prevent execution of the binaries. I was able to executes the binaries in the example docker container:
  "scripts": {
    "test": "pact verify -b localhost -u http://localhost"
  },

This fails with /bin/sh: ./standalone/linux-x64-1.64.1/bin/pact-provider-verifier: not found because bash is missing, but results from executing the binary.
We should still fix it though.

@TimothyJones Thank you for the fix.


src/assets/static/images not copied to phonegap platforms

Hi, I've added a favicon.png file to the src/assets/static/images directory in my project, but
phonegap build browser
doesn't copy it to anywhere.
Is there something in a config file that needs turning on?

Images not copying to anywhere, webpack handles it.
You need to require image files like require('./assets/static/images/imagename.png') in main.js (or somewhere else linked with main.js) it will return back image path after compile like abcdefghjklmno.png

Thanks for the explanation, I hadn't realised webpack did that, I thought it only handled the js and css build processes.

Hello @coedycode
We have 1 more option now. You can add your image file to static folder and use like:
<img src="static/your_image.png">

Have a great day!


Using proper filesystem SD card

Separate topic as this is a fairly separate item.
I'd like to be able to send/upload the tmp-video file as its being written to. This to minimize the 1-minute delay that is introduced if you wait for the tmp-file to first be completed and renamed to its 'final' filename.
However as we have no control over when the tmp-file is rolled (about once per minute) I'd thought it would be great to make a hardlink. Uploading data from that hardlink should work even if the tmp-file is being rolled in the meantime. It basically allows to attach a 'final' filename to a recording still in progress.
Typically the SD card uses FAT, and unfortunately FAT doesnt support hard links.  I'm guessing the camera does not support the newer unix filesystems...but maybe it does support something basic.
In /home/base/tools we only have the commands to create FAT file systems. The typical ways of checking support for filesystems does not seem to work well. Do we know what filesystems are supported other than FAT, squashfs, tmpfs all of which are not usable in this case?

This is the list returned from proc filesystem:
root@yi-hack-allwinner:~# cat /proc/filesystems
nodev   sysfs
nodev   rootfs
nodev   ramfs
nodev   bdev
nodev   proc
nodev   tmpfs
nodev   devtmpfs
nodev   configfs
nodev   debugfs
nodev   sockfs
nodev   pipefs
nodev   devpts
        squashfs
        vfat
nodev   jffs2
nodev   mqueue

Oh I should have been able to find that myself, that was too easy - I thought the only way to get the kernel supported ones was to mess about with modprobe. Thanks.
But alas, it seems none of those would be actually suitable for the SD card. Would we be able to add support (for e.g. ext4) without recompiling the kernel? At least I don't think that recompiling the kernel currently is something that we can do?
A workaround for this is to (very) closely monitor the temp video file. When we see that the temp-file is growing, and Motion is detected, figure out what the next recording directory and filename is going to be. Copy the first part of the temp recording file somewhere, tail it so that the copy grows along with the original temp-file, and when the temp-file gets renamed/rolled 'complete' our copy with the data from the final file (which is why we need to know the directory/name of the next video file). That would allow to upload/sync our growing copy wile the temp-file is being recorded to - allowing to have the video that contains motion within seconds on a remote host...instead of having to wait for the minute to complete.
Having said all that..maybe it can be done easier by using one of the streams. Could we somehow get a stream of the mp4 video and write that to disk as long as we see motion? Maybe by using rtsp? (Although I don't know of rtsp data can just be saved to mp4 and played back that way?)
, tail/copy it to another file on the filesystem, and when we see the filesize jump back to 0 (Maybe the creation-date on the temp file changes too) make sure to switch to anoth

But alas, it seems none of those would be actually suitable for the SD card. Would we be able to add support (for e.g. ext4) without recompiling the kernel? At least I don't think that recompiling the kernel currently is something that we can do?

This is correct. I already tried to recompile kernel to add a module and I only got a lot of kernel panics.
I could try ext4 but I don't think I will succeed.

A workaround may be to use the raw video data stream. Could we somehow get access to a continuous stream of the mp4 video and write that to disk as long as we see motion? Maybe by using rtsp? (Although I don't know of rtsp data can just be saved to mp4 and played back that way?)
That way we would create a 'secondary' video recording file, but...that allows to start uploading straight away from the first second motion is detected. All of this will help, of course, when using the cam for security purposes...where the biggest risk is the camera being unplugged (and/or SD card removed).

We can extract an h264 raw stream (it's the first function performed by rRTSPServer reading it from the buffer /dev/shm/fshare_frame_buf) and copy it somewhere.
But at this point why not use rtsp?

Yes, I think that re-building the kernel might be a whole other project on its own indeed.
Fully agree, RTSP may be a good way to get a copy.. at least that doesn't require any code changes. The only trick will be to convert the RTSP stream into mp4. Ffmpeg can do that, and although I did see it being used with building one of the modules, I don't think we have the ffmpeg binary available/accessible. Maybe build RTSPClient as that seems to be a popular client for these kind of things..

I have ffmeg compiled but we don't have hw resources to do this conversion inside the cam.
Ram and cpu...
Probably would be better to use an external dvr (sw or hw) like motion or zoneminder.

There should not be a need to convert anything...rtsp also uses the mp4 codec right? Theoretically it should be just about removing the RTSP layer (SETUP/PLAY messages, SDP parsing, etc)..but the video data stream itself should just be stored byte-for-byte. Something like this:
./ffmpeg -i rtsp://<IP_ADDRESS>/live/ch01_0 -c copy -map 0 -f segment -segment_time 300 -segment_format mp4 "capture-%03d.mp4"
Maybe I'll play around with ffmpeg and/or the Live555 tool. I'm looking at how the compilation works..theoretically this should work, right?
export CROSSPATH=/opt/yi/toolchain-sunxi-musl/toolchain/bin
export PATH=${PATH}:${CROSSPATH}

export TARGET=arm-openwrt-linux
export CROSS=arm-openwrt-linux
export BUILD=x86_64-pc-linux-gnu

export CROSSPREFIX=${CROSS}-

export STRIP=${CROSSPREFIX}strip
export CXX=${CROSSPREFIX}g++
export CC=${CROSSPREFIX}gcc
export LD=${CROSSPREFIX}ld
export AS=${CROSSPREFIX}as
export AR=${CROSSPREFIX}ar

./configure --enable-cross-compile --cross-prefix=$(CROSSPREFIX) --arch=armel --target-os=linux --prefix=$(CROSSPATH) [... other compile options ...]

Yes, I got that to work. ffmpeg had heaps of problems properly writing the video data (even when i re-compiled ffmpeg with all options enabled). Live555 works:
./bin/openRTSP -4 -b 200000 "rtsp://<IP_ADDRESS>/ch0_0.h264" > video.mp4
That just fills the video file realtime with data. I think I should be able to make this work with a 'realtime' file upload.

Playing around a bit more with this. An issue may be that the video starts with a 'green' picture. When splitting into smaller files each file has a second of green..that is kind of annoying. When using 2-second files it basically means that all video data is green.
However when not splitting into smaller files the video is not playable because the file is incomplete, I'm assuming that mp4/h264 needs some kind of header/footer data for playback? I'm not sure if it would be possible to 'repair'  a half-uploaded video file if that header/footer data is not there.
Maybe because of missing keyframes?

I don't know...
Do you need both audio and video or only video?

Preferably both; but mainly video.
One thing that I may be able to do is just record to one large file. The first few seconds may be green, but the rest of the video should not. If the power would be interrupted while recording (and uploading) I may be able to repair that incomplete video file. VLC does not play it (at all), but perhaps there are ways..

Another way...
Export h264 raw from the buffer with h264grabber and convert it with this library:
https://github.com/lieff/minimp4
At the moment without audio.
Do you wanto to try?
Tools.zip

That actually works incredibly well, thanks! That works much better than using RTSP! Could it be that the video quality is also better or is that just on my mind?

The video recording starts in about ~1 second after issuing the h264grabber command, not much loss there
If I unplug the camera while recording it maybe loses a fraction of a second of video, but, it still converts to a playable file with minimp4
If I copy the file mid-recording and convert the copy into mp4 it doesn't show any problems (other than that it was cut halfway, obviously)

The only thing I noticed is that on one of my test recordings, somewhere in the middle, it shows these artifacts for just over a second. But I'd say that is pretty minor...it also only showed up with one of my tests so far.

That actually works incredibly well, thanks! That works much better than using RTSP! Could it be that the video quality is also better or is that just on my mind?

I think it's the same quality.

* The video recording starts in about ~1 second after issuing the h264grabber command, not much loss there

The time needed to receive the 1st i-frame (there is 1 i-frame every 2 seconds).

The only thing I noticed is that on one of my test recordings, somewhere in the middle, it shows these artifacts for just over a second. But I'd say that is pretty minor...it also only showed up with one of my tests so far.

It's an h264grabber issue, I will try to study it.

Thanks! Would you need samples for the h264grabber issue, and/or is there anything that I can do to help with this?

No, thanks.

To kind of piggy back off of this. Would we be able to add recording to say a network drive?

That probably depends on what protocols the network drive supports. And keep in mind that you'll need about 1Mbit of bandwidth available towards your network drive (Especially important if your network drive is, for example, a cloud-based drive that requires your internet connection).
If your drive supports ONVIF/RTSP (Like the Synology/Qnap ones) you're probably best off using the RTSP streams. That allows realtime recording of the video stream.
If it supports FTP/SFTP/RSYNC you can use the file-based approach where you sync the recorded files from the SD card towards your network drive. The files that are generated by the Yi software are easiest but those are delayed by about a minute (which in some cases may be an issue, like when you use the camera for security purposes).
This issue/topic is about improving on that mechanism, allowing to start moving files to a remote drive almost realtime (just a few seconds delay). That's still work-in-progress though.

for me having it uploaded in real time isnt an issue as i need it more for going back and looking at it. i use a wdmycloud and access it with smb it also has ftp but i dont think i can set it to grab from anything it is more for accessing it with ftp

I noticed something interesting on the 'official' recording feature: The tmp file that is being recorded to can be renamed to another file - and will continue to grow/be written to by the Yi software. Apparently the fact that the file descriptor/pointer was already opened is enough to keep writing, even though the file is moved. This also means that it would be possible to start uploading this file after renaming it - as the name won't change any more at that point.
Problem is if the upload is cut off (i.e. camera shut down), this results in an incomplete file on the remote host. I've tried various recovery tools but was unable to repair that..so this does not seem like a feasible method. Unless somebody else knows of a way to get these mp4 files to work if they were cut while recording?
Using h264grabber this issue does not exist and even cut files can be easily played still. But we are seeing some artifacts with h264grabber every now and then. In general, the quality of the video that is being produced isn't great ...most likely due to compression? h264grabber obviously grabs the already compressed video so at that stage there is not much that can be done. Do we have a way to change some of the video quality settings within Yi software? With RTSP we also have a low stream... probably not much better (have not checked yet), but to be quite honest - a lower resolution (e.g. 720p) stream that is less compressed would overall be much more usable than the heavily compressed 1080p stream. How do we get hold of the low-resolution stream for RTSP?

How do we get hold of the low-resolution stream for RTSP?

You can choose the stream passing an argument to h264grabber.
But the sub stream is 640x360, I think not enough.

640x360 is, indeed, a bit too low. 720p would be ideal but it seems that we don't have access to this format then. At least not without reverse-engineering or decompiling the Yi software.
So I installed one of these cameras as a security camera today. Its still running the default Yi software. It looks out through an alleyway to a street in front, like this:

When somebody passes on the street in front we get a movement notification, and the standard 6-seconds movement clip. What I noticed though is that this 6 second clip often starts just before the person passes. So before the motion was detected..
The only way I can explain this is that the Yi software seems to have some kind of buffer of most-recent-video, which is being used as a starting point when movement is detected. It seems to do this in-memory (the temp-file that is created when its recording after seeing motion is ONLY there when recording). But it is kind-of neat to be honest.
Theoretically I can build something like this using the h264grabber tool as well, but it would be tricky. To do that we may have to start a new recording every 5 seconds or so, and only in case of movement keep recording (and upload the file). In case of no movement discard the 5 second clip and start with a new 5-second clip. Its possible..but tricky to implement.
It would be nice if we can use the native videos that are recorded by Yi when motion is observed. They also have audio which is a plus. But the main problem is, when we are syncing the video files (in realtime) and the camera is cut off (Which is a realistic scenario for a security camera), the mp4 file that has so far been uploaded cannot be played because of some mp4 metadata missing at the end of the file.
I think it would be useful if we could find a way how to repair mp4 files that have been cut short. For this specific scenario, but also other cases where people may end up with incomplete files. If you don't mind I'll open another topic/issue for that.

Ok, no problem.

So I implemented this last night using h264grabber, just to see how this would work out.  It basically records 4-second videos, two in parallel with a 2-second offset. Like this:

When no motion is detected the 4-second clips are deleted. However, when motion is detected, there is always a recording already underway for ~2 seconds...meaning that this recording already has had keyframe(s) and contains a little bit of history. Like so:

But I noticed something odd when using h264grabber in this way, basically having it record the stream twice. This is something you can easily test.

Start h264grabber, write to file. You will see the file size increase slowly..100K, 200K, 300K, etc.
After 10 seconds start (in another window/thread) a second instance if h264grabber, writing to another file. It starts 100K, 400K, 800K, 1.2M...until it is in sync with the first instance.

In many cases I end up with two files that are almost identical in size/video length. Even though the two h264grabber processes were started with 5-10 seconds time in between. I would have expected at least 0.5 to 1MB of file size difference between them.
In these cases, when playing back those videos, they actually do start at the same point. Basically one of them 'went back in time', catching up to the other one. Its very strange. I don't believe that we have the h264grabber source code public in this project? I'm wondering if there is some kind of shared-buffer that doesn't work well when the h264grabber executable runs multiple times in parallel.
Another thing I noticed with the h264grabber video result is that the time is not consistent. When you record a clock for example, you will see that some seconds on the clock take looong, while others are almost totally skipped. I have the feeling that we are not capturing all video data correctly yet with the h264grabber. Do we see the same behavior with RTSP streams? Probably as it uses the same mechanism right?

But I noticed something odd when using h264grabber in this way, basically having it record the stream twice. This is something you can easily test.
* Start h264grabber, write to file. You will see the file size increase slowly..100K, 200K, 300K, etc.

* After 10 seconds start (in another window/thread) a second instance if h264grabber, writing to another file. It starts 100K, 400K, 800K, 1.2M...until it is in sync with the first instance.

In many cases I end up with two files that are almost identical in size/video length. Even though the two h264grabber processes were started with 5-10 seconds time in between. I would have expected at least 0.5 to 1MB of file size difference between them.

This is the normal behavior. Because the read index is initialized to the buffer start.
Regardless of the write index. The buffer is about 1.7 MB, so many seconds of video.
If you want to start the recording from "now" we have to initialize buf_idx_1=buf_idx_w.

In these cases, when playing back those videos, they actually do start at the same point. Basically one of them 'went back in time', catching up to the other one. Its very strange. I don't believe that we have the h264grabber source code public in this project?

No problem, h264grabber is my source.
https://github.com/roleoroleo/yi-hack-Allwinner/tree/0.1.3/src/h264grabber

Another thing I noticed with the h264grabber video result is that the time is not consistent. When you record a clock for example, you will see that some seconds on the clock take looong, while others are almost totally skipped. I have the feeling that we are not capturing all video data correctly yet with the h264grabber. Do we see the same behavior with RTSP streams? Probably as it uses the same mechanism right?

h264grabber is not perfect, I know.
It's obtained from a complicated reverse engineering.
We can probably do better (with a lot of time available).

Ah it was removed from the latest source, thats probably why I could not find it. Would it be worth keeping it in the source tree so that its being built, but maybe not package it (by default) with a release? This way it won't take space on the device for people that will not use it.
No problem for it not being perfect - that's why we are here...trying to improve and build a capable product out of a trashy 18 Euro Chinese camera.
The buffer is maintained by Yi software right? I'm not very well versed in C, from what I understand you find two buffer indices (buf_idx_1, buf_idx_2). What do these two positions represent?
If the buffer is a FiFo-like system and you will always get ~1.7MB of video data because that is already in the buffer, then I don't need to do the trickery as described in my previous post. Because that would mean that, every time you start a recording, you will get 1.7MB of history anyway.
But that would only work if the buffer is always filled (continuously). Is it circular, does it go from 0 to 100% and back to 0.. how does the buffer work?
One other thing that I was wondering... while mmap() is being called, munmap() is not upon SIGINT or TERM/KILL. Should we catch signals and perform munmap() to be sure that we release these resources? To prevent running out of memory or file-descriptors when we start/stop h264grabber many times?

The only thing I noticed is that on one of my test recordings, somewhere in the middle, it shows these artifacts for just over a second. But I'd say that is pretty minor...it also only showed up with one of my tests so far.

It's an h264grabber issue, I will try to study it.

This issue is a bit..weird. Sometimes it does not happen for a long time...and then it happens almost continuously. As if something gets out of sync.
What I noticed is that when this happens for a longer amount of time, that the regular frames are distorted...but the keyframes are not. So it has a proper keyframe, then 2 seconds of broken video, a good keyframe again, 2 seconds of broken video, and so on. This seems to point to something related to the code for regular-frame handling perhaps..

The buffer is maintained by Yi software right? I'm not very well versed in C, from what I understand you find two buffer indices (buf_idx_1, buf_idx_2). What do these two positions represent?

The buffer is maintained by rmm (the core yi process) and it's a circular buffer.

If you read the first 32 bytes of the buffer /dev/fshare_frame_buf you can see 2 4-bytes values changing, from the start of the buffer (offset 300) to the end.
I don't know exactly what's the content of these indices but they are near to the write index of the buffer.
So I made a procedure that reads the buffer down to the "write index" looking for a NAL_START sequence (00000001). Then it repeats the search looking for the next NAL_START. In this manner I have a complete frame that I can analyze and write to stdout.
This step is repeated indefinitely going forward in the buffer.

If the buffer is a FiFo-like system and you will always get ~1.7MB of video data because that is already in the buffer, then I don't need to do the trickery as described in my previous post. Because that would mean that, every time you start a recording, you will get 1.7MB of history anyway.

Yes, the buffer contains 1.7 MB of history.

But that would only work if the buffer is always filled (continuously). Is it circular, does it go from 0 to 100% and back to 0.. how does the buffer work?

It's circular. There is an header 300 bytes long.

One other thing that I was wondering... while mmap() is being called, munmap() is not upon SIGINT or TERM/KILL. Should we catch signals and perform munmap() to be sure that we release these resources? To prevent running out of memory or file-descriptors when we start/stop h264grabber many times?

The file is already mmapped by yi processes. If I am not wrong, the new mmap should not take up new memory.

Thanks for the details.
Interestingly I noticed that the behavior currently is that:

Distortion often happens with movement
It applies to regular frames, not keyframes

Look at this example file. The moment that the movement starts, the distortion starts as well. It does resolve itself after a while though. Maybe, if we cannot determine what is causing it, we can reduce the amount of time/frames the problem is showing? Assuming it is h264grabber that now detects the issue and resets, causing the distortion to stop.
What kind of tools do you use to visualize the buffer contents, to see changes happening and so on?

Maybe, if we cannot determine what is causing it, we can reduce the amount of time/frames the problem is showing? Assuming it is h264grabber that now detects the issue and resets, causing the distortion to stop.

I don't know if I able to detect the problem from h264grabber.
I need to check it.
Lost frames? Frames corrupted?
I would like to know if the problem is the grabbing or the sequence grabber -> rtsp server.
Could you make the following test?

Save the h264 stream redirecting h264grabber to a file.
Copy the file to your pc.
Play the raw file with vlc.
Is the stream corrupted?

What kind of tools do you use to visualize the buffer contents, to see changes happening and so on?
I wrote and compiled small C utils.

Apologies for the delayed reply. The above video sample was recorded with h264grabber and then converted into mp4 with the minimp4 tool. I have not used RTSP in any way.
Original h264 file made by piping h264grabber output to file:
http://upload.xandrios.net/20200605T200852.raw
Converted into mp4:
http://upload.xandrios.net/20200605T200852.raw.mp4
I don't think that frames are lost, but rather corrupted as the timing information is there. If frames were lost I would expect it to just skip over parts, rather than show a distorted image?
VLC shows the following statistics. Interesting enough it does show lost frames...but that happens from the beginning. It is losing frames even when the video looks fine. When the distortion happens the ratio of good/lost frames does not seem to change.

So perhaps we are seeing two separate problems here? Lost frames along the whole video, and distortion when a lot of motion is visible.

I think the 1st problem it's not a real problem.
Probably vlc understands the movie as 25 fps while it is 20 fps.
If you look at the counter, it increases by 5 at a time.

Since the distortion is definitely motion-related, and since keyframes seem to be fine, I am wondering if the format of regular frames in the buffer changes when there is a lot of motion. More motion means larger changes in each frame, and thus a larger size. Could it be that we are seeing a situation where the frame size grows larger than what we are expecting - causing the grabbing to get out of sync?

I couldn't find any problems when there is a video distortion.
If you run the grabber with debug option you can see the frame size and the frame counter (extracted directly from the frame buffer).
There is a specific log when the counter skips a value.
If there were problems (eg sync lost) we would have lost frames.


Fix node is down status in /application/v4 nodes API

I'll add it to nodes API. Merging this so it doesn't show nodes as down in the meantime.


Page not fount

when i try to use the exchange restore page it sends me this error T### he requested URL /exchange/0b401a78-d9a4-48a0-8312-db13f3974d69 was not found on this server. any suggestion to repear it ?

This looks like the rewrite rules aren’t working. Make sure you have enabled it as described in the readme file depending on the web server you are using underneath.

The rewrite is active, I'm using apache2 with ubuntu 16.4 but the error still

This is the .htaccess from the server

SetEnv HTTP_MOD_REWRITE On
RewriteEngine On
Rewrite rules
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^index/?$ index.php [NC,L]
Exchange
RewriteRule ^exchange/?$ exchange.php [NC,L]
RewriteRule ^exchange/([^/]+)/?$ exchange.php?oid=$1 [L,QSA]
RewriteRule ^exchange/([^/]+)/([^/]+)/?$ exchange.php?oid=$1&uid=$2 [L,QSA]
OneDrive
RewriteRule ^onedrive/?$ onedrive.php [NC,L]
RewriteRule ^onedrive/([^/]+)/?$ onedrive.php?oid=$1 [L,QSA]
RewriteRule ^onedrive/([^/]+)/([^/]+)/?$ onedrive.php?oid=$1&uid=$2 [L,QSA]
SharePoint
RewriteRule ^sharepoint/?$ sharepoint.php [NC,L]
RewriteRule ^sharepoint/([^/]+)/?$ sharepoint.php?oid=$1 [L,QSA]
RewriteRule ^sharepoint/([^/]+)/([^/]+)/?$ sharepoint.php?oid=$1&sid=$2 [L,QSA]
RewriteRule ^sharepoint/([^/]+)/([^/]+)/([^/]+)/?$ sharepoint.php?oid=$1&sid=$2&cid=$3 [L,QSA]
RewriteRule ^sharepoint/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ sharepoint.php?oid=$1&sid=$2&cid=$3&type=$4 [L,QSA]
Disable directory browsing
Options -Indexes
Options +FollowSymLinks

<FilesMatch "^.">
Order allow,deny
Deny from all

Order allow,deny
Deny from all

Order allow,deny
Deny from all

~

Could you confirm, after logging in, you can actually go to /exchange or /onedrive (via the top navigation bar)? The posted htaccess seems to be a bit off in the end (original and correct file is https://github.com/nielsengelen/vbo365-rest/blob/master/.htaccess)

it's stil not working
I changed the htaccess

This means mod rewrite is not enabled on the apache webservice.
Please try the following:
sudo a2enmod rewrite
sudo systemctl restart apache2
Next is to edit the configuration file:
sudo nano /etc/apache2/sites-available/000-default.conf
There should be something like this:
<VirtualHost *:80>     <Directory /var/www/html>         Options Indexes FollowSymLinks MultiViews         AllowOverride All         Require all granted     </Directory> </VirtualHost>
Make sure you have AllowOverride All or the htaccess won't work.

Let me show my virtual host configuration
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    #LogLevel info ssl:warn

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    # For most configuration files from conf-available/, which are
    # enabled or disabled at a global level, it is possible to
    # include a line for only one particular virtual host. For example the
    # following line enables the CGI configuration for this host only
    # after it has been globally disabled with "a2disconf".
    #Include conf-available/serve-cgi-bin.conf

<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted

The rewrite mode is enable

Actually this is the third server installation with all dependencies as you explained

I'll try again with a different OS like CENTOS, if I can't install it, i'll contact you

It should work fine as I leverage Ubuntu as well. One of my next steps is to make an OVA download available in the upcoming weeks.

Do you have a complete installation manual over this product?.
I'm thinking in one fo the steps, Somenthing is missing when I made the installation.

All the steps for the portal are in there. The only exception is the setup on the web servers as there are plenty of guides out there. I linked the ones I used for Apache and IIS and deployed multiple times. If the rewrite isn’t working it is related to your Apache config. You have to make sure AllowOverride is set to All for the root.

I resolved htaccess using centos and apache but it doesn't display exchange view jus only shows this

If you select the organization on the left, you should see the options to start the restore. It looks ok on the screenshot.

When I select the organization name, it appears the seam page,it doesn't show the options

I've been doing some testing with some new machines and it looks like "MultiViews" within the apache configuration is the issue.
Please edit the apache configuration file and change it to
<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>


Could not set source in Kubernetes yaml

Datadog Agent version: 7.32.4
Cluster: Azure AKS
What happen:
Try to assign source to csharp by
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: xxx-deployment
  namespace: dev
  labels:
    app: DemoManagement
spec:
  replicas: 1
  selector:
    matchLabels:
      app: DemoManagement
  template:
    metadata:
      labels:
        app: DemoManagement
        tags.datadoghq.com/env: "dev"
        tags.datadoghq.com/service: "demo-service"
        tags.datadoghq.com/version: "xxxx"
        tags.datadoghq.com/source: "csharp"
xxxxxxxxxxxxxxxxxxxxxxx

But what we found in datadog logs is that
Source: demo_management
Expected Behavior:
Source: csharp

Resolved：
Add
ad.datadoghq.com/ordermanagement.logs: '[{"source":"csharp"}]'

to annotations
will work.


Plugin does not work a bootstrap table body

    			Names
                Dates
                Events

            {% if users %}
                {% for user in users %}

                        {{ user.date }}
                        {{ user.username }}
                        {{ user.event_name }}

                {% endfor %}
            {% endif %}

$("#table-wrapper").mCustomScrollbar({
        axis: "y",
        theme:"dark",
        setHeight: 50
    })

however wrapping the entire table works

A div as direct child for a table isn't allowed in HTML and could result in weird errors between browsers.

How can use with table? It's impossible? :(

This work fine for me http://codepen.io/dragospaulpop/pen/asBcI


Weird "slowness" with my SpoofDPI install.

Version
0.12.0
Operating System
Arch Linux, latest updates
How are you running SpoofDPI?
SpoofDPI through spoofdpi-bin package (AUR), automatically started on startup.
 Loaded: loaded (/usr/lib/systemd/system/spoofdpi.service; enabled; preset: disabled)
 Active: active (running) since

Invocation: ca4d16fae8f144afb2e0201585c00b6b
Main PID: 24743 (spoofdpi)
Tasks: 15 (limit: 37218)
Memory: 13.3M (peak: 14.6M)
CPU: 662ms
CGroup: /system.slice/spoofdpi.service
└─24743 /usr/bin/spoofdpi -silent -addr <IP_ADDRESS> -port 6969 -window-size 0 -dns-addr <IP_ADDRESS> -dns-ipv4-only -enable-doh
Oct 22 20:43:29 blackpc systemd[1]: spoofdpi.service: Scheduled restart job, restart counter is at 18.
Oct 22 20:43:29 blackpc systemd[1]: Started SpoofDPI Service.
Oct 22 20:43:29 blackpc spoofdpi[24743]: INF 2024-10-22T20:43:29+07:00 [PROXY] created a listener on port 6969
Description
When I try to load some webpages (namely github and reddit), it refuses to load until I refresh the page a second time.
Doesn't happen without the proxy.
Thank you in advance <3

Fixed after switching to byedpi (AUR)
Hopefully @xvzc will be able to fix this "issue" of mine because SpoofDPI has actual English documentation <3


Create POC for template w/Orchestrator

Multi bot template POC working e2e in Composer new creation flow with Orchestrator as the default recognizer for skill dispatch

done!


Make approve method compliant with ERC20

This PR is fixing an issue #438 as we reached the conclusion that it's best to unconditionally follow the ERC20 specs

Thanks @jakub-wojciechowski!
Could you add to the documentation of approve a small comment describing the race condition? Something very similar to the one that was deleted would be good, but also describing the proposed mitigation (lowering to zero first, etc.).

Sure @frangio, that's a very good idea.

Ready to merge, @jakub-wojciechowski can you rebase on master?

Merged manually! Thanks a lot @jakub-wojciechowski.


IChasmRepository.WriteObject should permit forceOverwrite operations

Some callers may need to force a write even if the (immutable) object already exists

Fixed in #52


Reddit Comments Analysis during CWC Final 2023

Pull Request for ML-Crate 💡
Issue Title: Reddit Comments Analysis during CWC Final 2023

Info about the related issue (Aim of the project) : Create an analysis for model the Reddit Comments made during CWC Final 2023.
Name:  Adithya Awati
GitHub ID:  p1utoze
Idenitfy yourself:  Contributor(KWOC)

Closes:

[x] #443

Describe the add-ons or changes you've made 📃
Give a clear description of what have you added or modifications made
Preprocessed and transformed text data, perform sentiment analysis with different models. Data visualization.
Type of change ☑
What sort of change have you made:

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested? ⚙
Describe how it has been tested
Describe how have you verified the changes made
Checklist: ☑

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly wherever it was hard to understand.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] I have added things that prove my fix is effective or that my feature works.
[x] Any dependent changes have been merged and published in downstream modules.

Hi @p1utoze can you please share your email for further communication on Discord?

Hi @p1utoze can you please share your email for further communication on Discord?

Sure, here's my mail ID<EMAIL_ADDRESS>