1.0.98 Failed to build in android : NDK not configured

The NDK is installed correctly. I even installed the preferred version, but it didn't help!

Warning: Failed to download any source lists!
Warning: IO exception while downloading manifest:
Warning: IO exception while downloading manifest:
java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 405 Method Not Allowed"
java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 405 Method Not Allowed"
at java.base/sun.net.www.protocol.http.HttpURLConnection.doTunneling0(Unknown Source)
at java.base/sun.net.www.protocol.http.HttpURLConnection.doTunneling(Unknown Source)
at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at java.base/sun.net.www.protocol.http.HttpURLConnection.doTunneling0(Unknown Source)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)
at java.base/sun.net.www.protocol.http.HttpURLConnection.doTunneling(Unknown Source)
at com.android.sdklib.repository.legacy.remote.internal.DownloadCache.openUrl(DownloadCache.java:245)
at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at com.android.sdklib.repository.legacy.remote.internal.DownloadCache.downloadAndCache(DownloadCache.java:622)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)
at com.android.sdklib.repository.legacy.remote.internal.DownloadCache.openCachedUrl(DownloadCache.java:453)
at com.android.sdklib.repository.legacy.remote.internal.DownloadCache.openUrl(DownloadCache.java:245)
at com.android.sdklib.repository.legacy.LegacyDownloader.downloadAndStream(LegacyDownloader.java:82)
at com.android.sdklib.repository.legacy.remote.internal.DownloadCache.downloadAndCache(DownloadCache.java:622)
at com.android.repository.impl.downloader.LocalFileAwareDownloader.downloadAndStream(LocalFileAwareDownloader.java:51)
at com.android.sdklib.repository.legacy.remote.internal.DownloadCache.openCachedUrl(DownloadCache.java:453)
at com.android.repository.impl.manager.RemoteRepoLoaderImpl.lambda$fetchPackages$0(RemoteRepoLoaderImpl.java:138)
at com.android.sdklib.repository.legacy.LegacyDownloader.downloadAndStream(LegacyDownloader.java:82)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at com.android.repository.impl.downloader.LocalFileAwareDownloader.downloadAndStream(LocalFileAwareDownloader.java:51)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at com.android.repository.impl.manager.RemoteRepoLoaderImpl.lambda$fetchPackages$0(RemoteRepoLoaderImpl.java:138)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Warning: Still waiting for package manifests to be fetched remotely.

FAILURE: Build failed with an exception.

What went wrong:
A problem occurred configuring project ':pdfrx'.

org.gradle.api.InvalidUserDataException: NDK not configured. Download it with SDK manager. Preferred NDK version is '23.1.7779620'.

Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 2s
[!] Gradle threw an error while downloading artifacts from the network.

It is apparently your network issue; your proxy reject some HTTP operations.


Test Dart roll version

Just testing to make sure that the Dart roll is actually the culprit in the Travis failures.
This PR will not be checked in as-is, so no need to review.

You can test this locally by running ./bin/cache/dart-sdk/bin/dart ./dev/bots/test.dart

Thanks!  I try that from now on.


Referral amazon

Can you enter your amazon referral?

Can you enter your amazon referral?

does it works for you?


Logging out while going through a portal seems to create a broken clone of the player.

I was testing the glitches with shaders and this mod combined, and decided to relog while sprinting through a portal. When I logged back in I got jumpscared by a flashing copy of me teleporting up & down. Installed mods were this, the latest fabric api, and Optifabric. Breaking the portal did not fix the issue and neither did reloading the world again. Here is a screenshot of the glitch.

I will update if the glitch can occur without other mods.

I was able to reproduce the glitch without mods, here is another screenshot and the log.

latest.log
It seems to be teleporting me right before I log out, and again when I log in. This could be related to the glitch.

Fixed. It will be in the next version.


Find Node(s) function for all Grid elements

Solved with https://github.com/ie3-institute/psdm-analysis/pull/48


Floating Point Spinbox

I have need for a numerical input, like a spinbox, but for floating point numbers. I've seen this in wxWidgets, they call it a DoubleSpinBox.

The underlying Windows control (UPDOWN_CLASSW) that uiSpinbox uses is integer only, doesn't support floating point values.
Unix and Darwin controls do support this though, and we enforce integer only just for compatibility with Windows.

Ah okay. Seems like this would be a good thing to put in the spinbox documentation in case people are looking for one that does floats. Is there a way to implement a custom widget that does this? For now I'll fall back to using a uiEntry and parse the values in my own code.

Is there a way to implement a custom widget that does this?

It does seem like a custom control would be possible using the win32 API by overriding some of the handlers as suggested here and here.
So it does look like writing a uiSpinboxDouble would be possible, Windows being the only cumbersome undertaking.


Chrysemys picta subsp. Bellii (Gray, 1831) and other subspecies

Chrysemys picta subsp. Bellii (Gray, 1831) is not recognized by the GBIF backbone taxonomy, because Bellii is written with capital B. bellii does match: https://api.gbif.org/v1/species/match?strict=true&name=Chrysemys picta subsp. bellii (Gray, 1831)
Note also that subsp. is reserved for plant and fungi names, to distinguish from var. and forma. Animal names only allow subspecies and these names should be written as Chrysemys picta bellii

[x] Correct Bellii to bellii
[x] Remove subsp. from names: Graptemys pseudogeographica subsp. kohnii (Baur, 1890), Graptemys pseudogeographica subsp. pseudogeographica (Gray, 1831), Chrysemys picta subsp. Bellii (Gray, 1831)
[ ] Remove the duplicate Chrysemys picta subsp. Bellii (Gray, 1831),  since the name appears twice (line 12 and 101 at https://github.com/trias-project/alien-herpetofauna-belgium/blob/main/data/raw/alien-herpetofauna-checklist_dump.csv#L101)
[ ] Remove Chrysemys picta subsp. Bellii (Gray, 1831) from ad hoc checklist now that it appears here? It is also written incorrectly there.

Thx for the input. Two remarks:

The duplicate Chrysemys picta subsp. Bellii (Gray, 1831) is not an error. These are two records describing the distribution of the species on different regions, one in Flanders and one in Brussels.

I didn't find that specific record in the ad hoc checklist, so I assume it has already been removed?


Quota for each project on the user dashboard

Figma link - https://www.figma.com/design/rgzEYTpnGl6l68moRSVwYg/Phase-1-UI-Details?node-id=807-2898&node-type=frame&m=dev
We need a quota widget to display for each project on the user dashboard
Current display

Desired display

Acceptance criteria

[ ] The quota and consumed storage are reflected in the UI with a bar graph as shown in Figma (potential strategy here)
[ ] There is a test for this in the view

Hey team! Please add your planning poker estimate with Zenhub @bess @carolyncole @JaymeeH @jrgriffiniii @leefaisonr


Fail to build in net6 rc1

🤪
https://github.com/Amazing-Favorites/Amazing-Favorites/pull/153/checks?check_run_id=3606630901

I looked at the changes in RC1 and the static web assets manifest have changed from XML to JSON. So just a heads up it's going to take some time to resolve this issue.

too many changed 👻

I have added JSON manifest reader as well in v0.6.2 and tried out a simple project build with RC1. You can try it out and reopen this issue if it still doesn't work.

It can build w/o error but something wrong with Razor llibary e.g. AntDesignBlazor
It need to keep structure as source directory, but it left as target now as error folder structure as below:

Here is the json file at bin\Debug\net6.0\Newbe.BookmarkManager.staticwebassets.runtime.json  (rename to json if you download
Newbe.BookmarkManager.staticwebassets.runtime.json.csv

Thanks for the JSON file, I'll take a look at it

I have pushed a fix for the directory structure in v0.6.3

thanks for your awesome work. it works well now!


[GH-584] Improved function specs

resolves #584

ok, I will check

@d-velev @gspasov what is your opinion on the start_link specs? I don't think they are needed to have.


Converting LinkEndID, LinkEnds typedefs to class/struct

Make classes / structs out of typedefs. (followup meeting 14.01., API docs observation module).
Will have functional benefits (flexibility in type of LinkeEndID, etc), more homogeneous interface for python users.
input from tudat team, especially new naming, here

[ ] LinkEnds

[ ] LinkeEndID

[ ] rename new classes

I've had a first go at seeing what can be done for this, and have come to the following idea for a setup:

The LinkEndId can be changed into a class without much trouble
Changing the LinkEnds into a class throughout all of Tudat is quite troublesome. It is used as a key in various maps, and modifying the code such that this is no longer done (or such that our new class can be used as a map key) is rather cumbersome.

So, I propose the following solution:

We change the LinkEndID into class, which will also permit various ways to make the software more flexible in the future
We keep the LinkEnds (as map typedef) throughout the backend of the code, but remove it from all the interfaces, and replace it with our own LinkDefinition class. Since the Python interface don't permit the LinkEnds as map/dict key anyway, this does not limit us. For now, I would like to keep this LinkDefinition class simple, and give it a single member: the LinkEnds. we can see if we can extend this in the future, but should make sure that any additional information is then passed on properly to the back-end of the code.

This now implemented in this
https://github.com/tudat-team/tudat/tree/feature/estimate_update
branch. This pull request
https://github.com/tudat-team/tudat/pull/121
lists the open points before merging


Processing Frames While streaming

is it possible to process frames in real time while streaming them using camera2?

What do you mean with proccess?
If you want get bitmap you can use:
rtmpCamera1.getGlInterface().takePhoto(new TakePhotoCallback() {
      @Override
      public void onTakePhoto(Bitmap bitmap) {

      }
    });

If you want capture continously frames from camera2 you can set a surface of an ImageReader in Camera2ApiManager class.

I want to get each frame in real time, in Camera2 API I used to that using ImageReader with onImageAvailableListener, I want to get the frames from the camera while streaming them

What I meant is to get each frame from the camera, process it or manipulate it, then send it to the server(stream it),
but currently adding ImageReader to Camera2ApiManager  would work for me.

If you want sent it to server. I recommend you create your own filter:
https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/wiki/Real-time-filters

Can I do Machine learning processing using filters?
I wan for example to detect faces in the images and mark them while streaming.

Machine learning on fly normally is not possible because all api need generate a bitmap and proccess it on each frame with 30fps is impossible in a phone.
Face detection is developed and working with camera1. Example:
final ImageObjectFilterRender imageObjectFilterRender = new ImageObjectFilterRender();
    rtmpCamera1.getGlInterface().setFilter(imageObjectFilterRender);
    imageObjectFilterRender.setImage(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));
    imageObjectFilterRender.setDefaultScale(rtmpCamera1.getStreamWidth(),
        rtmpCamera1.getStreamHeight());
    final FaceDetectorUtil parser = new FaceDetectorUtil();
    rtmpCamera1.enableFaceDetection(new Camera1ApiManager.FaceDetectorCallback() {
      @Override
      public void onGetFaces(Camera.Face[] faces) {
        if (faces.length > 0) {
          FaceDetectorUtil.FaceParsed faceParsed = parser.camera1Parse(faces[0], openGlView, imageObjectFilterRender.getScale(),
              CameraHelper.getCameraOrientation(getApplicationContext()), rtmpCamera1.isFrontCamera());
          imageObjectFilterRender.setScale(faceParsed.getScale().x, faceParsed.getScale().y);
          imageObjectFilterRender.setPosition(faceParsed.getPosition().x, faceParsed.getPosition().y);
        }
      }
    });


no error in connection

why errorHandler not giving error?
I write all importnant infos empy but there is no error .
  scheme: '',
      host: '',
      key: '',

my code :
import 'package:dart_pusher_channels/dart_pusher_channels.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Pusher Channels Example'),
        ),
        body: MyHomePage(),
      ),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  late PusherChannelsClient _client;
  late PublicChannel _publicChannel;
  Stream<ChannelReadEvent>? _publicChannelStream;
  String _receivedMessage = '';

  @override
  void initState() {
    super.initState();
    _initializePusherClient();
  }

  Future<void> _initializePusherClient() async {
    final hostOptions = PusherChannelsOptions.fromHost(
      scheme: '',
      host: '',
      key: '',
      shouldSupplyMetadataQueries: true,
      metadata: PusherChannelsOptionsMetadata.byDefault(),
      port: 0,
    );

    _client = PusherChannelsClient.websocket(
      options: hostOptions,
      connectionErrorHandler: (exception, trace, refresh) async {
        print('Connection error: $exception');
        refresh();
      },
    );

    _publicChannel = _client.publicChannel('public.deneme');
    _publicChannelStream = _publicChannel.bind("chat-message");

    _publicChannelStream!.listen((event) {
      print("object ${event.data.toString()}");
      setState(() {
        _receivedMessage = event.data.toString();
      });
    });
  }

  @override
  void dispose() {
    _client.disconnect();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Text('Received message:'),
          Text(_receivedMessage),
        ],
      ),
    );
  }
}

Your _client does not even attempt to connect. Put _client.connect() at the end of _initializePusherClient  method.

like this ?
 Future<void> _initializePusherClient() async {
    final hostOptions = PusherChannelsOptions.fromHost(
      scheme: '',
      host: '',
      key: '',
      shouldSupplyMetadataQueries: true,
      metadata: PusherChannelsOptionsMetadata.byDefault(),
      port: 0,
    );

    _client = PusherChannelsClient.websocket(
      options: hostOptions,
      connectionErrorHandler: (exception, trace, refresh) async {
        print('Connection error: $exception');
        refresh();
      },
    );

    _publicChannel = _client.publicChannel('public.deneme');
    _publicChannelStream = _publicChannel.bind("chat-message");

    _publicChannelStream!.listen((event) {
      print("object ${event.data.toString()}");
      setState(() {
        _receivedMessage = event.data.toString();
      });
    });
     _client.connect();
  }

like this ?
 Future<void> _initializePusherClient() async {
    final hostOptions = PusherChannelsOptions.fromHost(
      scheme: '',
      host: '',
      key: '',
      shouldSupplyMetadataQueries: true,
      metadata: PusherChannelsOptionsMetadata.byDefault(),
      port: 0,
    );

    _client = PusherChannelsClient.websocket(
      options: hostOptions,
      connectionErrorHandler: (exception, trace, refresh) async {
        print('Connection error: $exception');
        refresh();
      },
    );

    _publicChannel = _client.publicChannel('public.deneme');
    _publicChannelStream = _publicChannel.bind("chat-message");

    _publicChannelStream!.listen((event) {
      print("object ${event.data.toString()}");
      setState(() {
        _receivedMessage = event.data.toString();
      });
    });
     _client.connect();
  }

yes

@Shahmirzali-Huseynov Did it work?

@kerimamansaryyev thanks. but is there difference call _client.connect();before/after public channel/event stuff ? or only at the end ?

@kerimamansaryyev thanks. but is there difference call _client.connect();before/after public channel/event stuff ? or only at the end ?

No difference but semantically it is good to place _client.connect() at the end of the method for better readability.
And one important thing to remember is:
// Highly recommended to subscribe to the channels when the clients'
  // .onConnectionEstablished Stream fires an event because it enables
  // to resubscribe, for example, when the client reconnects due to
  // a connection error
  final StreamSubscription connectionSubs =
      client.onConnectionEstablished.listen((_) {
    for (final channel in allChannels) {
      // Subscribes to the channel if didn't unsubscribe from it intentionally
      channel.subscribeIfNotUnsubscribed();
    }
  });

That means: each time the client connects/reconnects - it will resubscribe all your channels.

@Shahmirzali-Huseynov if your issue has been solved - may I close it?

@kerimamansaryyev Thanks. @kerimamansaryyev


Unexpectedly removed single-line comments

in some times ,the comments will be wiped when i format code。this include below
1 an isolate comment
2. the comment is not align with the below code

Ran into this bug too, it seems like that the comments are stripped when they are standing at the end of the file without a stylue rule following the comment section. Hope this information helps. Pretty cool extension btw 👍


Make sure the Address book sync is leveraging the checkboxes from the customer list

This PR is doing multiple things:

Removes the Address checkboxes from the B2C site, and make sure only the customer list is hosting these checks
Make sure the Address Book retrieval/publishing actions are controlled by the checkboxes from the customer list, to ensure no one can retrieve/publish address books on non-enabled customer lists
Modify the View Address Book flows to work with contacts when using the Account/Contact model, and with Accounts (then reuse the one with Contacts) when using the PersonAccount model

@jbachelet proposed changes here: https://github.com/jbachelet/b2c-crm-sync/pull/1

@sandragolden thanks so much for the fixes!
I merged your PR, so this PR is reflecting your fixes now


Edit Button and Time Page

Closes Issue #32

Pull Request Test Coverage Report for Build 81

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 77.043%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

client/src/components/Time.jsx
0
1
0.0%

Totals

Change from base Build 80:
0.0%

Covered Lines:
179

Relevant Lines:
224

💛  - Coveralls


Do you plan to continue the UserVoice forum? If please reconsider to add URL again?

Hi,
Since the update to 1.3 I didn't found the URL to the UserVoice forum again in the UI of BuildVision, nor in its settings.
May you add the URL again? And a direct URL to github?
Best regards,
Martin

Hi Martin,
No, I don't. I would like to use GitHub Issues instead of UserVoice forum.
I will think over where to add the URL to the github repo in the UI.

Thanks for the information! :+1:


create sub-generator to assist with bootstrapping

Even though the following focuses on using the patch service, I feel pretty strongly that we should be using module components. So whoever takes this on, we should discuss (and probably validate with @gravitonian and/or @ohej.)
http://docs.alfresco.com/5.1/references/dev-extension-points-bootstrap.html
My rational briefly (sorry even though I'm trying to be brief, I'm a wind-bag):
Patches are tied to database scheme versions. As such I believe they are highly suited for performing bootstrapping and other business logic as versions of Alfresco are upgraded.
Module components are essentially tied to our AMPs. As such they are tied to the installation and upgrading of our custom code.
I believe that the main aim for this generator to to assist folks with creating projects that extend the shrink wrapped repo. Of course I would be thrilled if folks internally decide to use this as well, and if that happens it would be great if there was a patch sub-generator that offers bootstrapping among other options.

@ohej what do you think about using Patch Service vs. creating a Module Component for folks creating Alfresco extensions?


Use React 18 types and useId hook for identifiers

My previous assumption was erroned, project already uses React 18 but we didn't upgrade the related typescript types so we weren't able to import the new useId() hook.
This PR upgrade the types version and allow usage of useId() instead of hardcoded id
Fixes https://github.com/walnuthq/cairovm.codes/pull/75 comment
Cancels https://github.com/walnuthq/cairovm.codes/issues/98

Hi @mazurroman, for this PR I needed to change a few types, I performed an extensive functional test, compiling a program, using the kbar, adding an argument but it would be useful if you quickly can test typical use-cases to ensure nothing has been broken.

Great work Matthieu !
I reviewed the code and I tested a maximum of features, LGTM !


issue/1254

Fix typo in docs/using_helm.md that refers to "glide install".  The
reference should be to "helm install".

This change is

Thank you! That was my mistake. Glad you caught it.


[Autocomplete] Fix selecting undefined on updated options

Hi,
I've implemented changes suggested by @oliviertassinari to fix #18590 and #18456 and put in a test for each too. Both tests fail without the suggested changes, and pass with them.
It's my first PR for MUI so hopefully I haven't missed/messed anything!
Cheers,
John

[x] I have followed (at least) the PR section of the contributing guide.

Closes #18590
Closes #18456

@jellyedwards Thanks for the tests! Could you run prettier to fix the build fail? I will have a closer look this evening, I would like to test a bit more extensively the changes.

Could you run prettier to fix the build fail?

@oliviertassinari @eps1lon Thoughts on running a git hook to do the formatting?
Using these two packages
https://github.com/typicode/husky
https://github.com/azz/pretty-quick

I personally hate git hooks. I don't think that we should force it to contributors.


Use namespaced gem require instead of hyphenated name

Both work but the namespaced name is more friendly to zeitwerk in the future.
Related: https://github.com/ManageIQ/manageiq/issues/22000
Note, this was extracted from https://github.com/ManageIQ/manageiq/pull/22488 as it's completely backward compatible.


[xh] Create MongoDB Sink

Summary
Create MongoDB Sink
Tests
(1) Tested by creating streaming pipeline with kafka loader and mongo db exporter.
Screenshot of success run:

Data shows in mongodb container:

Support store of dictionary type in mongodb:

(2) Unit test
cc:
@wangxiaoyou1993 @tommydangerous

@wangxiaoyou1993 comments addressed. Also updated a screenshot of mongo db output in the description. PTAL.


Python 3.4 support

Awesome! What a coincidence! This is actually something I've started doing yesterday evening (after upgrading the python client to also support python 3.4).


Installation and Data Preloading Issue

Hi Tan!
1) Installation instructions considering the current changes
I have been checking your CGRA-Flow repository (alongside its sub-modules like VectorCGRA,  CGRA-Mapper etc.) for the past few months. Its great to see that you have integrated vcd generation recently. However, I've noticed that the current installation instructions for both VectorCGRA are outdated due to these new changes.
For example, when testing the TileRTL_test.py, it seems that the mentioned version of pymtl3 in the README does not include the VerilogTranslationPass package (it rather has the TranslationImportPass package).
So, could you please update the installation instructions by specifying the correct pymtl3 version that you are using? It would also be great if the mentioned docker container is also updated to integrate the changes.
2) Preloading data to CGRA
I previously formulated a simpler design flow, which uses the config.json generated by CGRA-Mapper, pass its src_opt following the CGRATemplateRTL_test, and later generate VCD files from it.
However, I'm struggling to figure out how to preload data into the tiles and the SPM. Specifically, I tried preloading constants and input values for the FIR test but was unable to see these values in the generated VCD file. On the other hand, simpler tests like VectorAdderRTL_test show both input and output data clearly in the VCD.
Would you please provide some guidance or documentation on how to preload data into the CGRA tiles and SPM for and test its output?

Hi shourovrm,

We will use the updated PyMTL (i.e., pip install -U git+https://github.com/cornell-brg/pymtl3@yo-struct-list-fix) for modeling and translation. The TileRTL_test.py should be able to generate Verilog, please make sure the --test-verilog is attached after the TileRTL_test.py, for example, pytest --tb=short -sv ../TileRTL_test.py --test-verilog. If it still doesn't work, please let me know. I will update the README next month to make it more clear.
For the docker, I am not sure whether it requires this latest change. The docker is just to show the demo with the previous version and it should work with the old version. But I will try to update all the related stuff if i have time.

For data preloading into SPM, it should okay if the preload data can be sent through the pytest. However, I didn't test it with the RTL version, the provided FIR test is in CL rather than RTL. Do you try the FIR in RTL simulation? The input/output can be seen in AdderRTL as the data is sent into the port and sent out via the outport. However, in the CGRA modeling, the inputs for now is like constants/wires implicitly writing into the data memory/registers. It is not like a data sent into a port then update the SPM in each cycle. I guess that's why the VCD doesn't include it. In short, the current design doesn't model the data preloading in a good way. We can think about how to make an appropriate design for the data feeding. For your kernel test/verification, you need to check whether the final data/value stored in the specific address/location in the SPM is expected or not, which is similar to the FIR CL test, but I am not sure how to do it by looking into VCD.

Thanks for your questions again. Will update the README.

TODO:

[ ] Enable preloading ctrl signals via controller.
[ ] Enable preloading data into data memory via controller.
[ ] Enable preloading const data into tile register via controller.


BigQuery: deprecate list_dataset_tables in favor of list_tables

list_dataset_tables was needlessly verbose. Feedback from BQ GA review.
Even though we aren't GA yet, I deprecate rather than remove because we've just done a ton of breaking changes with 0.28.0 release and I'd rather not increase the fatigue of upgrading versions needlessly.

Note to self: wait to merge until I've double checked that the snippets at the migration guide point to a commit hash.

Ha. Well, I didn't actually add a sample for listing tables at https://cloud.google.com/bigquery/docs/python-client-migration#table_code_changes We can merge this to our heart's content.


chore: js+express supported

:tada: This PR is included in version 0.23.1 :tada:
The release is available on:

v0.23.1
GitHub release

Your semantic-release bot :package::rocket:


Support installation without CUDA

Hi, @dashesy, thank you for the implementation of batched NMS. Unfortunately, I was not able to install the library on the machine without CUDA. AFAIS, there is a CPU implementation, and it would be nice to be able to use it on the CPU-only machines.
Thanks!
The trace when I try to install it on a machine without CUDA:
% pip install git+https://github.com/microsoft/pytorch_od.git
    ..........
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/1z/pz_kbcf15gncn6wg3ws9v9qm0000gn/T/pip-req-build-rzwrbl8z/setup.py", line 42, in <module>
        ], include_dirs=include_dirs),
      File "/usr/local/miniconda3/envs/env/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 476, in CUDAExtension
        library_dirs += library_paths(cuda=True)
      File "/usr/local/miniconda3/envs/env/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 555, in library_paths
        if (not os.path.exists(_join_cuda_home(lib_dir)) and
      File "/usr/local/miniconda3/envs/env/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1146, in _join_cuda_home
        raise EnvironmentError('CUDA_HOME environment variable is not set. '
    OSError: CUDA_HOME environment variable is not set. Please set it to your CUDA install root.
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Should be fixed, lmk if not

This https://github.com/microsoft/pytorch_od/blob/cf84773b5e54f45d2aa86f9ac1b5dcd74ee1fe25/setup.py#L10
doesn't seem to guaranty that there's no CUDA on the machine, at least on my machine it imports successfully. How about checking if torch.cuda.is_available()?

So it is imported fine, but the error happens when the extension is being built.

Hey @dashesy, sorry for bothering again, but there's apparently an undesired side-effect with checking torch.cuda.is_available(). When I try to build this extension in docker with cuda in order to run it later on a machine with GPU, this will build a CPU version instead of CUDA.
IDK how to do it correctly, but you should probably try building CUDA version first, and only revert to CPU version if it fails.

You are correct. Unfortunately there is no straightforward way to separate build environment from runtime. I created this thread but got no response. Here I created an issue to get a more elegant solution, than try-catch the setup() call.

Thanks!  Let's hope the pytorch teem addresses the issue.


DataFrames in conftest should specify the dtypes

The dataframes in the conftest should be very explicit about the dtypes being used.
For example, here

Code Example
@pytest.fixture()
def sample_unsorted_df_pandas():
    return pd.DataFrame({
        'id': pd.Series([3, 1, 2, 0], dtype="Int64")
        'full_name': pd.Series(['Mr. John Doe', 'Doe, Mrs. Jane', 'James Brown', 'Ms. Paige Turner'], dtype="string"),
        'email'<EMAIL_ADDRESS>np.nan<EMAIL_ADDRESS><EMAIL_ADDRESS>dtype="string"),
        'phone_number': pd.Series(['5555555555', '555-555-5555', '1-(555)-555-5555', '555-555-5555'], dtype="string"),
        'age': pd.Series([33, 25, 33, 57], dtype="int64"),
        'signup_date': pd.Series(pd.to_datetime(['2020-09-01', '2020-08-01', '2020-08-02', '2020-09-01']), dtype="datetime64[ns]"),
        'is_registered': pd.Series([True, False, True, True], dtype="boolean"),
    })

@gsheni May I take this up?

@not-so-rabh yes, you can take this issue up. Thanks!

One thing to keep in mind is that the series dtype does get used in the inference process, so if specifying the dtype during dataframe creation results in a different dtype than pandas would have set, this could change the resulting logical type that is inferred. Not exactly sure if that will happen here or not, but if it does we may need to add some new tests to make sure we are still covering things properly.

Closing in favor of #999


db.collection.bulkWrite support

could you please enable the bulkWrite function on collections?

pull request welcome


Not enough information to generate folds from train data

Hi! I'm noticing the provided method for creating folds doesn't write to an output path and there is no documentation for the input arguments into preprocess_utils.train_valid_test_split.
I am getting the below error when attempting to train a new 'descemb_bert' model for 'readmission' task:
FileNotFoundError: [Errno 2] No such file or directory: './data/output/fold/mimic_2021_fold_split.csv'
Shell command:
python main.py \
    --distributed_world_size 1 \
    --input_path ./data/output \
    --model ehr_model \
    --embed_model descemb_bert \
    --pred_model descemb_bert \
    --data mimic \
    --value_embed_type DSVA_DPE \
    --task readmission

Reference: https://github.com/hoon9405/DescEmb/blob/master/preprocess/preprocess_utils.py#L38
CC: @mp2893 @hoon9405
Thanks!

Same question!,  the provided method 'train_valid_test_split' in  reference 'Reference: https://github.com/hoon9405/DescEmb/blob/master/preprocess/preprocess_utils.py#L38'  does not provide a entry to call.

Hello, there was a serious issue with the Preprocess code, but we have now refactored the preprocess code. Please let us know if there are any other issues. Thank you.


release: v0.4.0

Bump the major version due to API change in #34.

@Tim-Zhang @dpeckett Can one of you publish the new version to crates.io?

@qwandor @jalil-salame https://crates.io/crates/vsock/0.4.0 has been published

@qwandor Could you send your username of crates.io to me? I want to add you to the admin list. thanks

I have already sent a invitation to username qwandor. Is that you?

Thanks! Yes, that's me, I've accepted it now.


Add "Under Construction" page to pages that are still being worked on

Right now pages like "About Hack Club", "Meeting Schedule", and "Ongoing Projects" links just go directly to https://google.com. Since some of these pages (like "Meeting Schedule") are under construction because we don't have meeting times yet, it would be really cool to have a dedicated page to link to when a page is under construction.
Some inspo:

This issue can be broken down into two steps:

Update the home page links that currently link nowhere to go a new "under construction page"
Add information on the under-construction page, saying that the page is coming soon.

The "under construction" page shouldn't be confused with a 404 page, which is made for a page that doesn't exist.
This is a "first-timers-only" issue. That means that we are requesting that only those new to open source try this one out! Please ask as many questions as you need, I am here to help you create your first contribution to open-source :D

Can I work in this issue?

Yes you can!

Do we have to make a new Html File and redirect to it(from home page)

@nshah1729 You can work on it, but @siddhantdixit is also working on it, so you might want to jump into another issue to prevent duplicating your work, so you're not wasting your time. No worries about being a newbie to open source!
To do this, you would probably want to create a new HTML file and redirect to it from the homepage, you're right!
Thank you so much!


Submit prediction fails with insufficient balance to pay the fees, despite wallets having enough balance

Submit prediction fails with insufficient balance to pay the fees, despite wallets having enough balance.
This problem occurred on a MacOS running a fresh pdr-backend instance, specifically on commit 50399e8f08b42c401e65dc8ff7458f0adda48248.
Attempts to replicate this error on a Linux setup with the same pdr-backend version were unsuccessful, as predictions were submitted without any issues. This suggests that the problem might be specific to MacOS or potentially linked to the sapphire.py, although tests for sapphire.py on MacOS have been passing.
The issue appears to be isolated to the prediction submission functionality. Further investigation is required to pinpoint the exact cause and replicate the issue for a resolution.

Low priority because: only seen once, haven't been able to reproduce


[Feature request] Notification name - with/without calendar

Hi Anton ,
I have problem with change of notification name and lack of column (maybe with checkbox) "calendar" on notification list. I have one notification with calendar and one without calendar. Both have the same name in notification list. Could you think about it ?

Hi ! I found (maybe I do something wrong) problem with additional column. After (every time) I close dialog box and open next time the additional column "calendar" go out.

I compile and minify WEB only. Is that problem (I dont't think so but I'am not "strong" in java independencies. ;)

Web app update should be enough.

Anton could you check it ?

Check what?

Problem : dialog box did not remember column checked and added to the grid. If I open dialog box "notifications" ones again is the "old" vie without added column "calendar" .

I don't think dialog state is saved, so it will automatically reset. That's expected.


Multiple Instances

This is the thrux of the work for #42 to support multiple instances of the SDK.
Notes:

All exposed functions needed to be attached to the FamilySearch prototype. Any alternative solution would lead to significant memory usage due to duplicate function definitions for each SDK instance. This demanded a significant change the in structure of the SDK. Instead of using amd modules it now uses the native node.js CommonJS format.

Object instances (person, couple, etc) need a reference to an SDK instance so that they can call API methods, for example when saving. This was done by calling a constructor, as opposed the previous method of assigning a constructor (I didn't even know that kind of black magic worked; pretty insane). Instead of requiring the user to pass in the client every time they want to construct an object, convenience functions were added such as client.createPerson({personData}).

In order to maintain the nice concept that objects are extensions of the raw JSON data (raw person facts can be accessed via person.facts or via helper functions person.$getFacts()), and in order to support a normal method of creating objects by passing the raw data into the constructors, the previous method of passing in an optional simple flat object (as opposed to the proper more complex nested GEDCOM X syntax)  has changed. More specifically the convenience attributes have been changed by prefixing them with a $. Instead of new Name({givenName: 'Bob'}) it should be client.createName({$givenName: 'Bob'}). Attempting to keep the same names for the convenience attributes while avoiding conflicts with the raw data is too complex.

PhantomJS integration for testing will be removed. None of the browser dependent features were being tested, and now the SDK works in node so we are using karma straight. I would switch to mocha but I didn't want to rewrite all of the expect tests because the karma format is unique.

Most of the helper functions that don't depend on an SDK instance were put into a static utils module. Helpers contains primarily those functions that do need an instance of the SDK. Helpers is it's own class. Each SDK instance creates a new helpers object. This was done for the sake of namespacing. Didn't want to muddy the FS namespace with internal functions.

Because we're not using AMD modules anymore, all class definitions were put into individual files.

Yay for unit tests. This would not have been possible without them.

Things still left to do:

[ ] Better date object with getters and setters
[ ] Refactor build process
[ ] Save access token with a unique id for each SDK instance
[ ] Finish standardizing object creation by adding the $ prefix to convenience attributes (I figured this out halfway through, I'm not convinced I got it 100%)
[ ] Test outside of a node with jQuery and angular http and deferred functions
[ ] Update jsfiddle examples
[ ] Update docs to match new usage

I think I'm going to change my mind on point (3) above. I want to just get rid of them. The attributes are primarily shortcuts to setter functions, and since all objects support chaining, we can just do this:
client.createName().$setGivenName('Bob');

All that's left is to update the jsfiddle examples, but I can't update those until this is merged. I'll probably do that next week.

All the jsfiddle examples have been updated.


Allow for at least two runs of the lingering task killer for test_max_runtime_exceeded

Passing build: https://travis-ci.org/twosigma/Cook/builds/233406805


web3dev grant proposal

Project Abstract
Web3dev is the largest and most engaged web3 developers community in LATAM. We already have a Discord with more than 1800 developers: https://bit.ly/w3b3d3v/ Our community is organized in pods, each pod for a different theme or blockchain. Each pod has a leader, which helps that pod to evolve, promoting growth to the ecosystem and the whole web3dev community.
Our objective is to bring thousands of web2 developers to the web3 world. Brazil is the biggest economy in Latin America and has thousands of high talent developers. This project is to create tech content about Polkadot in Brazilian Portuguese and help our community to start building on Polkadot
For which grant level are you applying?

[x] Level 1:  Up to $10,000, 2 approvals
[ ] Level 2:  Up to $50,000, 3 approvals
[ ] Level 3:  Unlimited, 5 approvals (for > $100k Web3 Foundation Council approval)

Application Checklist

[x] The application template has been copied, renamed ( project_name.md) and updated.
[x] I have read and understood the FAQs, application guidelines and announcement guidelines.
[x] A BTC, Ethereum (USDT/USDC/DAI) or Polkadot/Kusama (aUSD) address for the payment of the milestones is provided inside the application.
[x ] I have read and acknowledge the terms and conditions.
[x] The software delivered for this grant will be released under an open-source license specified in the application.
[x] The initial PR contains only one commit (squash and force-push if needed).
[x] The grant will only be announced once the first milestone has been accepted.
[ ] I prefer the discussion of this application to be in a private Element/Matrix channel. My username is: @_______

How Did You Hear About our grants program?

[ ] Social Media
[ ] Hackathon
[x] Personal Recommendation
[ ] Substrate Builders Program
[ ] Investor/VC
[ ] Online Search
[ ] Other: _______

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Therefore, I’m closing the PR.


update packages

:white_check_mark: Build TheIdServer 7.4.7-fix-dependencies1-0145 completed (commit https://github.com/Aguafrommars/TheIdServer/commit/95a4bf08fd by @invalid-email-address)


WIP: Initial commit

TODO: Support transactions
TODO: Support execute method
TODO: Refactor poll/await events handling according to https://github.com/swoole/swoole-src/issues/3309
TODO: Do something with simultaneous queries


[suggestion] some WebRTC knowledge for every issue or a overview introduction

Hi, @Sean-Der, Thanks For U Great Work! We have look for a Go native WebRTC implement long time.
I have see the issues you created for improving this repo. I hope to contribute some code and want to learn some protocol, but i don't know how to start up for there are series of protocols.
So i suggest to have some basic knowledge for current issues you have created, or a overview intruduction of protocols. Even recommend some blogs or posts relative is fine.

That's a great idea @chenkaiC4!
Would you be interested in starting a wiki on the pions/webrtc github project? I would be more then happy to fill in stuff/add what I know.
There are a bunch of holes in my knowledge, so would help me as well!

@Sean-Der I glad to do it! 😄

I am happy with this!
We now have a developer wiki, and we are slowly expanding it


Configure,util/shlib_wrap.sh: harmonize -Wl and -rpath handling.

Addresses parts of #6500.

Additional commit that adds rpath_flag is not nominated for approval, it's presented to give a taste. Well, it doesn't mean that it can't be approved [if suggestion to have Configure recognize e.g. --run-path will be considered worthy.]

I cannot see myself approving this unless you move the rpath_flag commit to a different PR.

I did say that I'm not nominating it for approval, i.e. one could as well say "approve without add-on". But I squashed and removed add-on...

I know you said that, just want to avoid possible last minute mistakes.


[BUG] Zero3 causes AttributeError: 'NoneType' object has no attribute 'numel' in continual training

I was training LLaVA model using deepspeed zero3. What I want to do is continually train the model to different datasets.
I create LLaVA model and in the for-loop, I create new dataset and new trainer, then calls trainer.train().
At the first iteration of the for-loop, the training works properly.
However, at the second iteration, I got 1 warning and 1 error:
warning: "Invalidate trace cache @ step XX: expected module XX, but got module XX"
error:  AttributeError: 'NoneType' object has no attribute 'numel' at the same location as this issue
Screenshot:

But when I simply change the deepspeed config to use zero2 instead of zero3, no error occurs.
I want to use zero3 for larger batch size training. Can you help me out with this?
System info

OS: Ubuntu 20.04
GPU count and types: single node 4 RTX A6000 gpus
Python version: 3.10.0

zero3.json that I used:
{
    "fp16": {
        "enabled": "auto",
        "loss_scale": 0,
        "loss_scale_window": 1000,
        "initial_scale_power": 16,
        "hysteresis": 2,
        "min_loss_scale": 1
    },
    "bf16": {
        "enabled": "auto"
    },
    "train_micro_batch_size_per_gpu": "auto",
    "train_batch_size": "auto",
    "gradient_accumulation_steps": "auto",
    "zero_optimization": {
        "stage": 3,
        "overlap_comm": true,
        "contiguous_gradients": true,
        "sub_group_size": 1e9,
        "reduce_bucket_size": "auto",
        "stage3_prefetch_bucket_size": "auto",
        "stage3_param_persistence_threshold": "auto",
        "stage3_max_live_parameters": 1e9,
        "stage3_max_reuse_distance": 1e9,
        "stage3_gather_16bit_weights_on_model_save": true
    }
}

zero2.json
{
    "fp16": {
        "enabled": "auto",
        "loss_scale": 0,
        "loss_scale_window": 1000,
        "initial_scale_power": 16,
        "hysteresis": 2,
        "min_loss_scale": 1
    },
    "bf16": {
        "enabled": "auto"
    },
    "train_micro_batch_size_per_gpu": "auto",
    "train_batch_size": "auto",
    "gradient_accumulation_steps": "auto",
    "zero_optimization": {
        "stage": 2,
        "overlap_comm": true,
        "contiguous_gradients": true,
        "sub_group_size": 1e9,
        "reduce_bucket_size": "auto"
    }
}

I have the same issue and solved it by just reloading the whole model on every iteration.
Though now I am getting oom due to the memory not freeing after the second epoch, but I guess that is a different issue.

@Xirid, please try the following API to free engine memory
https://deepspeed.readthedocs.io/en/latest/zero3.html#gpu-memory-management

我也遇到了在 for 循环中创建新的数据集和新的训练器，然后调用trainer.train()。
在 for 循环的第一次迭代中，训练工作正常。然而，在第二次迭代中，报错为错误： AttributeError: 'NoneType' object has no attribute 'numel'
尝试释放GPU，但没有用，释放GPU如下：# Free GPU memory consumed by model parameters
ds_engine.empty_partition_cache()

Closing this issue due to lack of response. Please reopen if needed.


TP-396 - Trigger HMRC async upload

Add option to run bypassing celery.

Probably could use some more detailed tests around serialization, this will make sense at the point of splitting envelopes into the right size, since a little restructuring may be needed at this point.

Probably could use some more detailed tests around serialization, this will make sense at the point of splitting envelopes into the right size, since a little restructuring may be needed at this point.

Codecov Report

Merging #118 (b472dde) into master (1b881e6) will increase coverage by 0.08%.
The diff coverage is 59.41%.

@@            Coverage Diff             @@
##           master     #118      +/-   ##
==========================================
+ Coverage   60.09%   60.18%   +0.08%
==========================================
  Files         164      167       +3
  Lines        9997    10141     +144
  Branches      750      756       +6
==========================================
+ Hits         6008     6103      +95
- Misses       3811     3858      +47
- Partials      178      180       +2

Impacted Files
Coverage Δ

exporter/models.py
6.06% <0.00%> (-0.61%)
:arrow_down:

exporter/tests/test_exporter_commands.py
33.33% <0.00%> (ø)

urls.py
60.00% <ø> (ø)

workbaskets/views/__init__.py
70.45% <ø> (-0.66%)
:arrow_down:

exporter/tasks.py
34.69% <31.91%> (-45.31%)
:arrow_down:

exporter/management/util.py
40.00% <40.00%> (ø)

workbaskets/models.py
14.11% <53.84%> (+7.70%)
:arrow_up:

common/tests/factories.py
99.25% <66.66%> (-0.37%)
:arrow_down:

common/tests/util.py
78.81% <66.66%> (-0.69%)
:arrow_down:

exporter/views/__init__.py
81.25% <81.25%> (ø)

... and 9 more

Continue to review full report at Codecov.

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

Codecov Report

Merging #118 (b472dde) into master (1b881e6) will increase coverage by 0.08%.
The diff coverage is 59.41%.

@@            Coverage Diff             @@
##           master     #118      +/-   ##
==========================================
+ Coverage   60.09%   60.18%   +0.08%
==========================================
  Files         164      167       +3
  Lines        9997    10141     +144
  Branches      750      756       +6
==========================================
+ Hits         6008     6103      +95
- Misses       3811     3858      +47
- Partials      178      180       +2

Impacted Files
Coverage Δ

exporter/models.py
6.06% <0.00%> (-0.61%)
:arrow_down:

exporter/tests/test_exporter_commands.py
33.33% <0.00%> (ø)

urls.py
60.00% <ø> (ø)

workbaskets/views/__init__.py
70.45% <ø> (-0.66%)
:arrow_down:

exporter/tasks.py
34.69% <31.91%> (-45.31%)
:arrow_down:

exporter/management/util.py
40.00% <40.00%> (ø)

workbaskets/models.py
14.11% <53.84%> (+7.70%)
:arrow_up:

common/tests/factories.py
99.25% <66.66%> (-0.37%)
:arrow_down:

common/tests/util.py
78.81% <66.66%> (-0.69%)
:arrow_down:

exporter/views/__init__.py
81.25% <81.25%> (ø)

... and 9 more

Continue to review full report at Codecov.

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

I've taken this off "draft" so this can start to be reviewed.   There's a little bit around envelope_ids that will be pushed shortly.

I've taken this off "draft" so this can start to be reviewed.   There's a little bit around envelope_ids that will be pushed shortly.

This PR needs a description of what changes are contained and why.

This PR needs a description of what changes are contained and why.

Where are we at with this? Looks like its getting large!

@simonwo yes, this is true - should have a better idea on sizing things in this project after this at least :)
We are at:
In the bits I need to push up now, it serializes everything into 40mb temp files + validates those
I am:
Finishing moving it from uploading single envelopes (these originally just a ContentFile) to multiple envelopes - the temporary files.
Will push these shortly, then there are some tests + it's ready for review.

Squash the commits!


Why is the prelude obfuscated in Browserify output?

Browserify output starts with this:
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==
"function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new
Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(
f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}
return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<
r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
'use strict';

Since the inlined modules themselves are unminified, I still need to run the whole bundle through a minifier for production anyway.
So... why obfuscate the prelude like this? Why not print it out with proper formatting and variable names, so curious devs can better understand how a Browserify bundle works?

Any way to unminify the prelude part?

Sure. Here it is and even with comments. https://github.com/substack/browser-pack/blob/master/prelude.js

No. I mean I want the prelude unminified in my browserified output

It would be helpful to be able to use an unminified standard prelude whilst debugging errors in one's configuration. It would be a lot easier to simply switch of the minification of the prelude off rather than create a new unminified version. Especially for browserify noobs like me.


More test cases

What's this PR do?
Adds test case for the /api/game endpoint for GET/POST/PUT requests
Where should the reviewer start?
Specs/server/serverSpec.js
How should this be manually tested?
you can run npm test and see all the passing tests!
Any background context you want to provide?
Once in a while, there's a DEADLOCK error from sequelize. Still debugging but does not affect the performance of the tests.
What are the relevant tickets?
Screenshots (if appropriate)
Questions:

more tests!


nodePackages.tsun: add typescript dependency

This package has typescript as dependency, but it is specified as peer
dependency which is not reflected via the nodePackages generation script
which is using node2nix which is requiring --include-peer-dependencies
to include such dependencies.
In order to be able to run this package stand alone, it needs to add the
typescript module to the NODE_PATH.
Fix #88046
As discussed in #89269 that proposed another solution. This creates a
bin-wrapper instead that includes the necessary dependencies and leaves
the old package as is for library usage.

Motivation for this change
Users expect to be able to run the bin provided by this package.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@Mic92 what about now? Hope all looks good.

Any chance to get this merged? As the maintainer of this package I feel the responsibility to move this forward.

Pushed a change for it to be self.typescript instead of super.typescript. See https://nixos.org/nixpkgs/manual/#sec-overlays-definition for self vs super


thoughts on asynchronous playback?

I'm trying to play sounds saved in NumPy arrays with ultra-low latency. Opening an OutputStream and writing to it works great. However, my script hangs whilst this is happening. I want to play asynchronously—that is, start playing the sound then continue immediately with the rest of my script. An obvious solution is to put the .write(mydata) call within a Thread via the threading module, but another call to the play function before the previous sound has finished playing will crash the script. Is there any way to check whether the OutputStream is currently playing (not just open)?

I'm trying to play sounds saved in NumPy arrays with ultra-low latency.

Then you should probably re-evaluate whether Python is the right language for you.
If you still want to use Python, you can have a look at my project https://github.com/spatialaudio/python-rtmixer which is trying to achieve less latency by using a callback function implemented in C.

Opening an OutputStream and writing to it works great. However, my script hangs whilst this is happening.

You should provide a minimal (but fully working) code example, then I can try to have a look what's going wrong.

I want to play asynchronously

Sounds like you want to use a custom callback function, i.e. a "non-blocking" stream.
You should probably not use the so-called "blocking" interface.

An obvious solution is to put the .write(mydata) call within a Thread via the threading module

I find that less than obvious.
The .write() function is a strange creature. It blocks for some time while playing, then it returns, but keeps playing some more.
The idea is that you wait until the function returns and then call it again immediately with some more data.
It's inherently synchronous.

Is there any way to check whether the OutputStream is currently playing (not just open)?

As the documentation tells you, a stream can be active, stopped or closed.
There is no such thing as "playing". An active stream is constantly producing an output signal (even if it's just a sequence of zeros).
It wouldn't help if there were a way to check "playing". If you initiate a follow-up playback once a hypothetical "playing" state becomes False, there will be a gap in playback.
That's why .write() returns somewhat before playback is finished, in order for you to provide new data to be played back without gap.

Thanks for your response (and sorry for my delay). It sounds like sounddevice is perhaps not the package for me. I'll check out your project.

By defining a callback function and passing it to the stream constructor.
Have a look at the examples, several of them use a custom callback function.

@sammosummo Any news?

No, sorry. I couldn’t figure it out.

If you need help, please try to describe what you have done already and what you would still like to achieve.

@sammosummo Do you have any further questions? Do you want to provide some code that didn't work for me (and others) to have a look at?
If not, I think we can close this issue.

Sorry for the long delay in responding, I'm now returning to this project after hiatus.
To recap, I think I want to open an output stream and occasionally feed it new NumPy arrays to consume, for example after a key press or some other event.
I don't have any working code (even a minimal example) because thus far I've not been able to achieve anything close to what I want.
I guess the closest example is this one: https://github.com/spatialaudio/python-sounddevice/blob/master/examples/play_sine.py
Should I modify the callback function in some way to accept new data?

Here is something that seems to work. I would be very interested to hear your thoughts on it.

sample_rate = 44100
channels = 2

class AudioStream(object):
    def __init__(self):
        """Audio stream.

        When the method `start()` is called, this class will begin to play silence
        constantly from the default audio device via `sd.OutputStream`. Calling
        `play(arr)` will replace the silence with the passed audio data in
        `np.ndarray` format. When all samples are consumed, it will play silence
        again until `close()` is called.

        """
        logger.debug("Putting these settings into sounddevice.")
        sd.default.samplerate = sample_rate
        sd.default.channels = (1, channels)
        sd.default.latency = ("low", "low")

        logger.debug("Setting the pointer and initial contents.")
        self.ix = 0
        self.contents = np.zeros((2, 512))

        logger.debug("Initializing the OutputStream.")
        stream = sd.OutputStream(callback=self._callback)

        logger.debug("Assigning convenience start/stop methods.")
        self.start = stream.start
        self.close = stream.close

    def append(self, arr):
        """Append the array to the end of the contents.

        """
        self.contents = np.concatenate([self.contents, arr])

    def play(self, arr):
        """Replace contents with array.

        """
        self.contents = arr

    def _callback(self, outdata, frames, time, status):
        """Callback function. Don't call this.

        """
        if self.ix + frames > self.contents.shape[0]:

            self.contents = np.zeros(frames).reshape(-1, 1)
            self.ix = 0

        outdata[:] = self.contents[self.ix : self.ix + frames]
        self.ix += frames

Your code looks mostly OK.
You should probably think about what should happen when play() is called a second time while already playing.
As it is now, it will switch the arrays but not start from the beginning?
And if the new array is shorter than the already played portion, an error will happen?
Apart from that, I see some further problems:

in the callback, you are reading self.contents at two different times, and you silently assume that it didn't change in between (which it could!). You should probably only read it once and store it in a local variable.
if you don't specify blocksize to something else than the default 0, the frames might change from callback to callback (depending on the host API).
you are already writing zeros to outdata when no signal is available (which is very good!), but you should also think about what happens if the last block of the signal is shorter than the block size.

Here's an example where the incomplete output buffer is filled with zeros:
https://github.com/spatialaudio/python-sounddevice/blob/732f10d4d0da3742783705141f4dd63a0dc5646e/sounddevice.py#L2469-L2480

I guess the closest example is this one: https://github.com/spatialaudio/python-sounddevice/blob/master/examples/play_sine.py

I think the closest example is actually https://github.com/spatialaudio/python-sounddevice/blob/master/examples/rec_gui.py. It's doing recording instead of playback, but I think it's the only example where the callback function keeps running all the time, but the "action" (in this case recording) happen only on demand.
You should read the comments in the callback function, they talk about concurrent access to variables.
As mentioned before, I've also created the https://github.com/spatialaudio/python-rtmixer project, which you could probably also look at for inspiration.
More specifically, this has an example where sound is recorded and played back on keypress: https://github.com/spatialaudio/python-rtmixer/blob/master/examples/sampler.py.

And another thing: you should not ignore the status parameter in the callback function!

Thanks! I'll address each point as I get to it.

You should probably think about what should happen when play() is called a second time while already playing.

I added self.ix = 0 to the play function, which should reset the pointer and start playing from the beginning. This should prevent the error I think.

This should prevent the error I think.

Well, it prevents the more obvious error and introduces a more subtle error.
Since the assignments happen in different bytecodes, (parts of) the callback function might run inbetween them and observe the two variables in an inconsistent state.

Since the assignments happen in different bytecodes, (parts of) the callback function might run inbetween them and observe the two variables in an inconsistent state.

So I guess I should do this in the same thread as the callback function, somehow?

Another, possibly related, issue is that if other things are happening in my code, even if they are not in the main thread, it creates audible clicks during playback.

So I guess I should do this in the same thread as the callback function, somehow?

I assume you want to communicate between threads at some point.
If you want to start playback based on an external event (while the stream is already running), there has to be some communication between threads.
In the simplest case, you can use the OutputStream.write() method, which will delegate the thread communication to PortAudio (or even to the audio backend).
If you just want to play short sounds once in a while, that's a great solution.
However, if you want to play longer sounds, or if you want to do something more complicated like playing multiple sounds at the same time, I think it's better to use a callback function.

if other things are happening in my code, even if they are not in the main thread, it creates audible clicks during playback.

That's why I said (https://github.com/spatialaudio/python-sounddevice/issues/170#issuecomment-461350308) that Python is probably not the best tool for the job.
It has a "global interpreter lock (GIL)" and a garbage collector, which can lead to the mentioned clicks. And it's slow, but I think that's normally not the problem.
That's also why I started https://github.com/spatialaudio/python-rtmixer, which circumvents some of the problems by implementing the callback function in C.
With that, you should be able to mostly avoid those problems, but of course only as long as your ring buffers are not empty.


feat(next): tooltip network name

close #661

label review is not necessary here is a PR, we always take PR ready to review, instead, please put a review on the issue resoloved.
If a PR is partially done, please put a 【WIP】 prefix to the PR title.


Informer和Autoformer的解码器部分完全没有发挥应有的作用

基于Transformer的模型，其解码器在训练的时候可以采用teacher-forcing进行加速训练，在后期还可以根据epoch控制真实值和预测值的比例。但是在评估、推断/预测阶段，解码器的输入应该根据其上一时刻的输出迭代更新，再继续作为输入，以达到自回归的目的。
dec_in : [batch, pred_len, d_model]，为简化，假设batch和d_model都为1
dec_out : [batch, pred_len, d_model]

dec_in = [[[0], [0] ... [0]]]  # 初始化的解码器输入，用来预测第一个时刻的值 ，模型输出为dec_out_1
...
dec_in = [[dec_out_1[0, 0], [0] ... [0]]]  # 第一次更新后的解码器输入，用来预测第二个时刻的值，模型输出为dec_out_2
...
dec_in = [[dec_out_1[0, 0], dec_out_2[0, 1] ... [0]]  # 不断迭代，直到达到预测长度

I had the same idea.
I am seeing the model overfitting training dataset way earlier after teacher forcing is introduced. It's pretty useless at least for the dataset I am running with.
I can't find any paper applying teacher-forcing on time series data.
If I have to guess, they probably made this change intentionally not to use teacher forcing because intuitively, teacher forcing works well with task that human excel at because it promote memorization: you are feeding the model the answer and allowing it remember it. For generative model, this is good because you are telling the model what kind of sentence you expect, same with image recognition and translation, but for time series forecast I think you do not want the model to do that(memorize the answer)


Use UMD

Closes #291

Is this vjs 5.3 compatible? I tried patching and testing with the samples but I error on videojs.plugin on line 1399.

@shawnbuso I think it might be the variable hoisting on lines 24 and 28.

Looks good, thanks!

do you think that you could add a variable in second condition that allow to force usage of third case ? like that we could use a fork of videojs-contrib-ads for example without forking this lib also.

@shawnbuso any reason this was reverted and not released?

It looks like this was only reverted in @mkhazov's forked repo - we still have it at master. We just haven't gotten around to doing a release since this was committed. You should be able to use these changes if you clone the repo at master and use the code there.

Thanks @shawnbuso. Having an issue building this using r.js.
Its trying to follow the define(['video.js']) as a file path on line 22 of videojs.ima.js
Any thoughts?
{ Error: Error: ENOENT: no such file or directory, open '*/public/javascripts/video.js'
In module tree:
    main
      app
        router
          views/video
            videojs-ima

@bamboocreative if you use requirejs, you need a map:
require.config({
    map: {
        "*": {
            'video.js': 'videojs'
        }
    }
});

video.js is the 'proper' name via npm, but requirejs doesn't like the extension.
@shaolintibo I don't know what bundler you're using, but it should be doable, if not with the bundler, then using git [npm] [bower]


Starting new game after loading doesn't work crashes game

Loading a game wasn't working.  Pressing Enter while highlighting a game wasn't giving any feedback, nor clicking.  I know these are valid saves because some of them are from Civilization.  Anyway, after doing that, I figured I should just start a new game to test what I wanted to test, but it crashed doing so.  Here's the full console output.  I'll check for where I should post the other issue and/or open a new ticket about it.
-------------------------------------------------------------------
You may only use the Microsoft .NET Core Debugger (vsdbg) with
Visual Studio Code, Visual Studio or Visual Studio for Mac software
to help you develop and test your applications.
-------------------------------------------------------------------
Game Start
Setting Loaded - FullScreen: 0
Setting Loaded - Scale: 4
Setting Loaded - AspectRatio: 0
Setting Loaded - DebugMenu: 1
Setting Loaded - CursorType: 0
Loaded e:\games\civone\data\sp257.pic
Warning: Character width larger than bytes per character. (ID: 95, Width: 9)
Loaded e:\games\civone\data\iconpg2.pic
Loaded e:\games\civone\data\iconpg3.pic
Loaded e:\games\civone\data\iconpg6.pic
Loaded e:\games\civone\data\iconpg5.pic
Loaded e:\games\civone\data\iconpg1.pic
Loaded e:\games\civone\data\iconpg4.pic
Loaded e:\games\civone\data\iconpg8.pic
Loaded e:\games\civone\data\iconpg7.pic
Loaded e:\games\civone\data\citypix2.pic
Loaded e:\games\civone\data\sp299.pic
Loaded e:\games\civone\data\sp257.pic
Warning: Character width larger than bytes per character. (ID: 95, Width: 9)
Loaded e:\games\civone\data\birth0.pic
Loaded e:\games\civone\data\birth1.pic
Loaded e:\games\civone\data\logo.pic
Checking data files...
- Done, all files exist
Checking data files...
- Done, all files exist
Civilopedia: Preloading articles...

Main Menu: Load a Saved Game
Load game: Emperor Napoleon, French/1 AD
Map instance created
Map: Loading e:\games\civone\saves\C\CIVIL8.MAP - Random seed: 0
Loaded e:\games\civone\saves\C\CIVIL8.MAP
Map: Placing goody huts
Map: Calculating land value
Map: Ready
Load game: Emperor Napoleon, French/1000 BC
Map: Loading e:\games\civone\saves\C\CIVIL7.MAP - Random seed: 0
Loaded e:\games\civone\saves\C\CIVIL7.MAP
Map: Placing goody huts
Map: Calculating land value
Map: Ready
Load game: Emperor Napoleon, French/1000 BC
Map: Loading e:\games\civone\saves\C\CIVIL7.MAP - Random seed: 0
Loaded e:\games\civone\saves\C\CIVIL7.MAP
Map: Placing goody huts
Map: Calculating land value
Map: Ready
Load game: Emperor Napoleon, French/1000 BC
Map: Loading e:\games\civone\saves\C\CIVIL7.MAP - Random seed: 0
Loaded e:\games\civone\saves\C\CIVIL7.MAP
Map: Placing goody huts
Map: Calculating land value
Map: Ready
Load game: Emperor Napoleon, French/1000 BC
Map: Loading e:\games\civone\saves\C\CIVIL7.MAP - Random seed: 0
Loaded e:\games\civone\saves\C\CIVIL7.MAP
Map: Placing goody huts
Map: Calculating land value
Map: Ready
Load game: Emperor Napoleon, French/2000 BC
Map: Loading e:\games\civone\saves\C\CIVIL6.MAP - Random seed: 0
Loaded e:\games\civone\saves\C\CIVIL6.MAP
Map: Placing goody huts
Map: Calculating land value
Map: Ready
Load game: Emperor Montezuma, Aztecs/3000 BC
Map: Loading e:\games\civone\saves\C\CIVIL5.MAP - Random seed: 7
Loaded e:\games\civone\saves\C\CIVIL5.MAP
Map: Placing goody huts
Map: Calculating land value
Map: Ready
Loaded e:\games\civone\data\slam2.pic
Game instance loaded (difficulty: 4, competition: 1)
- Player 0 is Atilla of the Barbarians
- Player 1 is Stalin of the Russians
Turn 50: 3000 BC
Load game: Prince M.Gandhi, Indians/2480 BC
ERROR: Game instance already exists
Load game: Chief Caesar, Romans/520 AD
ERROR: Game instance already exists
Load game: Chief Caesar, Romans/20 BC
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/320 BC
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/320 BC
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/320 BC
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/320 BC
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/320 BC
ERROR: Game instance already exists
Load game: Emperor Napoleon, French/1 AD
ERROR: Game instance already exists
Load game: Emperor Napoleon, French/1 AD
ERROR: Game instance already exists
Load game: Emperor Napoleon, French/1 AD
ERROR: Game instance already exists
Empty save file, cancel
Main Menu: Load a Saved Game
Load game: Chief Stalin, Russians/1470 AD
ERROR: Game instance already exists
Load game: Emperor Stalin, Russians/760 AD
ERROR: Game instance already exists
Load game: Emperor Stalin, Russians/760 AD
ERROR: Game instance already exists
Load game: Emperor Stalin, Russians/760 AD
ERROR: Game instance already exists
Load game: Emperor Stalin, Russians/760 AD
ERROR: Game instance already exists
Load game: Emperor Stalin, Russians/760 AD
ERROR: Game instance already exists
Load game: Emperor Stalin, Russians/760 AD
ERROR: Game instance already exists
Load game: Emperor Stalin, Russians/760 AD
ERROR: Game instance already exists
Load game: Emperor Stalin, Russians/760 AD
ERROR: Game instance already exists
Cancel
Main Menu: Load a Saved Game
Load game: Chief Stalin, Russians/1 AD
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/1000 AD
ERROR: Game instance already exists
Load game: Prince Rico, Russians/1500 AD
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/1 AD
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/1000 BC
ERROR: Game instance already exists
Load game: Prince Abe Lincoln, Americans/2000 BC
ERROR: Game instance already exists
Load game: Prince Abe Lincoln, Americans/3000 BC
ERROR: Game instance already exists
Load game: Prince Rico, Russians/1974 AD
ERROR: Game instance already exists
Load game: Emperor Peter, Zulus/1600 BC
ERROR: Game instance already exists
Load game: Emperor Ri, Russians/1907 AD
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/1470 AD
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/1470 AD
ERROR: Game instance already exists
Load game: Prince Abe Lincoln, Americans/2000 BC
ERROR: Game instance already exists
Load game: Prince Abe Lincoln, Americans/2000 BC
ERROR: Game instance already exists
Load game: Prince Abe Lincoln, Americans/2000 BC
ERROR: Game instance already exists
Load game: Prince Abe Lincoln, Americans/2000 BC
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/1000 BC
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/1000 BC
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/1000 BC
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/1 AD
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/1 AD
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/1000 AD
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/1000 AD
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/1 AD
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/1000 AD
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/1000 AD
ERROR: Game instance already exists
Load game: Chief Stalin, Russians/1 AD
ERROR: Game instance already exists
Cancel
Main Menu: Start a New Game
ERROR: Map is already loaded/generated
Loaded e:\games\civone\data\birth1.pic
Loaded e:\games\civone\data\birth2.pic
Loaded e:\games\civone\data\birth3.pic
Loaded e:\games\civone\data\birth4.pic
Loaded e:\games\civone\data\birth5.pic
Loaded e:\games\civone\data\birth6.pic
Loaded e:\games\civone\data\birth7.pic
Loaded e:\games\civone\data\birth8.pic
Intro: "In the beginning,"
Loaded e:\games\civone\data\diffs.pic
Difficulty: Emperor (toughest)
Competition: 7 Civilizations
Tribe: Zulu
ERROR: Game instance already exists
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at CivOne.Screens.NewGame.HasUpdate(UInt32 gameTick) in e:\games\civone\src\Screens\NewGame.cs:line 197
   at CivOne.Window.<get_HasUpdate>b__24_2(IScreen x) in e:\games\civone\src\Window.cs:line 108
   at System.Linq.Enumerable.Count[TSource](IEnumerable`1 source, Func`2 predicate)
   at CivOne.Window.get_HasUpdate() in e:\games\civone\src\Window.cs:line 108
   at CivOne.Window.OnUpdateFrame(FrameEventArgs args) in e:\games\civone\src\Window.cs:line 318
   at OpenTK.GameWindow.RaiseUpdateFrame(Double elapsed, Double& timestamp)
   at OpenTK.GameWindow.DispatchUpdateAndRenderFrame(Object sender, EventArgs e)
   at OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second)
   at CivOne.Program.Main(String[] args) in e:\games\civone\src\Program.cs:line 36

The game instance has been created but the game didn't load correctly. This will not be an issue once Load Games are working correctly. #153

Instead of crashing when there is a game instance already, the game should handle the failure elegantly, preferably by deleting (and backing up preferably, but that adds complexity) the current game instance.  Otherwise, you won't be able to start a new game without restarting the entire client.  It will be a problem if a new feature of returning to the main menu without restarting the application is implemented.

I've created a solution: #384


Remove isPast meta from events

Currently in events (src/routes/events/*.svx) there is a isPast metadata that could be computed on the fly.
The meta is used in src/routes/events/index.svelte.

Working on this


Get column names in output data

Hi,
I think this may be a very basic question but... when reading parquet data with parquetRead, I get an array of arrays like this:
[[0, "foo"], [1, "bar"]]

I know that I can get the parquet column names from the parquet metadata with parquetMetadata. But is there a simple way to get data as an array of objects with column names, suitable to use with d3 or Plot?
Something like the following?
[{column1: 0, column2: "foo"}, {column1: 1, column2: "bar"}]

Many thanks for your work on this project !

Honestly that's a good idea. I originally wrote this to dump row data into a table, so I just returned nested arrays. But I agree that it would be nicer in some cases to have it as objects.
I want to think about a couple things:

Is there a performance hit using objects instead of arrays? (or maybe a benefit?)
How to expose it without breaking the existing API? Probably need to come up with either a new function for reading, or perhaps an option to the existing parquetRead function.
Would require some changes to the code where hyparquet transposes from column-oriented data to row-oriented data here

This is something I will definitely consider adding as the API evolves. Pull requests are welcome if you are inclined to help!

Thanks for your answer ! At least now I'm sure it was not something I missed from the API 😅
Thank you for taking my proposition into account. Even if the array-of-objects format is quite standard when using d3 / Plot / Observable, it may not be that useful outside of this ecosystem.
Here is a very naive way to do the conversion from array of arrays to array of objects, but obviously that's not what could be used in hyparquet:
const metadata = parquetMetadata(value.buffer);
const { children } = parquetSchema(metadata);
const columns = children.map((d) => d.element.name);
let table;
await parquetRead({
      file: value.buffer,
      onComplete: (data) => (table = data),
});
table = table.map((row) =>
    Object.fromEntries(row.map((d, i) => [columns[i], d]))
);

I'll see if I can dig a bit into hyparquet code and if my limited JavaScript skills could be enough to propose a PR.
Thanks !

This issue is resolved with #25

Option available in published version 1.2.0 thanks @ctranstrum !

Very nice, thanks a lot !


Fixed Symfony doc link in layout.md

The "How to Override Templates from Third-Party Bundles" now has a separate page in the Symfony documentation. This pr links to the new page as the old paragraph doesn't exist any more.

Merged, thanks!


⚠ Bofrost.nl has degraded performance

In b092c7d, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 1411 ms

Resolved: Bofrost.nl performance has improved in d1a92b4.


Blynk.NCP nano33iot not connecting to blynk

hi
I am planning to use the new NCP feature on my nano33iot based devices. but when using the given example on platform io I'm getting the following error.
[3461] Main1 firmware: 0.1.0
[3461] Build: Aug  2 2023 15:25:21
[3462]
    ___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
        /___/ v1.3.0 on Nano 33 IoT

 #StandWithUkraine    https://bit.ly/swua

[13731] Cannot communicate to Blynk.NCP

please help with this.
also, I am interested in knowing how actually the network co-processor is flashed with new firmware and where is the source code for network co-processor

Hi. Did you run pio run -e nano33iot -t upload_ncp ?

The NCP flashing is performed by this script:
https://github.com/blynkkk/BlynkNcpExample/blob/main/tools/extra_upload_ncp.py
The NCP source code is proprietary.

is this resolved?

Hi. Did you run pio run -e nano33iot -t upload_ncp ?

yes

is this resolved?
No still facing the same issue

please describe in details, what you do and what results you see

I think once my nano is up and running I am suppose to use may phone to find the device and connect to it. but couldn't find any devices under wifi and on nano's terminal it says  "[13731] Cannot communicate to Blynk.NCP"

The provided information is not enough to understand your problem.
Please describe what happens when you run upload_ncp command, provide logs and so on.

I have uploaded the log (terminal output)  that i get when I run upload_ncp command in the first question of this thread itself.
the build and upload operation is succesfull without any issues but I cannot able to connect the nano to blynk.

sorry I missed that.
now I have attached the log.

Dependency Graph
|-- Blynk @ 1.3.0
|-- BlynkNcpDriver @ 0.6.2
|-- ArduinoOTA @ 1.0.10
|-- OneButton @ 2.1.0
Building in release mode
upload_ncp(["upload_ncp"], [])
Getting Blynk.NCP release info
Downloading BlynkNCP_nina_w102.flash.bin ...
pio run -d tools/BlynkNcpFlasher -e nano33iot --target upload
Processing nano33iot (platform: atmelsam; board: nano_33_iot; framework: arduino)

Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/atmelsam/nano_33_iot.html
PLATFORM: Atmel SAM (8.1.0) > NANO 33 IoT
HARDWARE: SAMD21G18A 48MHz, 32KB RAM, 256KB Flash
DEBUG: Current (atmel-ice) External (atmel-ice, blackmagic, jlink)
PACKAGES:

framework-arduino-samd @ 1.8.13
framework-cmsis @ 1.40500.0 (4.5.0)
framework-cmsis-atmel @ 1.2.2
tool-bossac @ 1.10700.190624 (1.7.0)
toolchain-gccarmnoneeabi @ 1.70201.0 (7.2.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 12 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Compiling .pio\build\nano33iot\src\main.cpp.o
Compiling .pio\build\nano33iot\FrameworkArduinoVariant\variant.cpp.o
Compiling .pio\build\nano33iot\FrameworkArduino\Reset.cpp.o
Compiling .pio\build\nano33iot\FrameworkArduino\SERCOM.cpp.o
Compiling .pio\build\nano33iot\FrameworkArduino\Tone.cpp.o
Compiling .pio\build\nano33iot\FrameworkArduino\USB\CDC.cpp.o
Compiling .pio\build\nano33iot\FrameworkArduino\USB\USBCore.cpp.o
Compiling .pio\build\nano33iot\FrameworkArduino\USB\samd21_host.c.o
Compiling .pio\build\nano33iot\FrameworkArduino\Uart.cpp.o
Compiling .pio\build\nano33iot\FrameworkArduino\WInterrupts.c.o
Compiling .pio\build\nano33iot\FrameworkArduino\WMath.cpp.o
Compiling .pio\build\nano33iot\FrameworkArduino\abi.cpp.o
In file included from C:\Users\123sa.platformio\packages\framework-arduino-samd\cores\arduino/api/Interrupts.h:8:0,
from C:\Users\123sa.platformio\packages\framework-arduino-samd\cores\arduino/api/ArduinoAPI.h:29,
from C:\Users\123sa.platformio\packages\framework-arduino-samd\cores\arduino/Arduino.h:23,
from src\main.cpp:1:
C:\Users\123sa.platformio\packages\framework-arduino-samd\cores\arduino/api/Common.h: In instantiation of 'decltype (((b < a) ? b :  a)) min(const T&, const L&) [with T = int; L = unsigned int; decltype (((b < a) ? b :  a)) = unsigned int]':
src\passthrough.h:5:60:   required from here
C:\Users\123sa.platformio\packages\framework-arduino-samd\cores\arduino/api/Common.h:126:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
return (b < a) ? b : a;
~^~
Compiling .pio\build\nano33iot\FrameworkArduino\api\Common.cpp.o
Archiving .pio\build\nano33iot\libFrameworkArduinoVariant.a
Compiling .pio\build\nano33iot\FrameworkArduino\api\IPAddress.cpp.o
Compiling .pio\build\nano33iot\FrameworkArduino\api\PluggableUSB.cpp.o
Compiling .pio\build\nano33iot\FrameworkArduino\api\Print.cpp.o
Compiling .pio\build\nano33iot\FrameworkArduino\api\Stream.cpp.o
Compiling .pio\build\nano33iot\FrameworkArduino\api\String.cpp.o
Compiling .pio\build\nano33iot\FrameworkArduino\compact\dtostrf.c.o
Compiling .pio\build\nano33iot\FrameworkArduino\cortex_handlers.c.o
Compiling .pio\build\nano33iot\FrameworkArduino\delay.c.o
Compiling .pio\build\nano33iot\FrameworkArduino\hooks.c.o
Compiling .pio\build\nano33iot\FrameworkArduino\itoa.c.o
Compiling .pio\build\nano33iot\FrameworkArduino\main.cpp.o
Compiling .pio\build\nano33iot\FrameworkArduino\new.cpp.o
Compiling .pio\build\nano33iot\FrameworkArduino\pulse.c.o
Compiling .pio\build\nano33iot\FrameworkArduino\pulse_asm.S.o
Compiling .pio\build\nano33iot\FrameworkArduino\startup.c.o
Compiling .pio\build\nano33iot\FrameworkArduino\wiring.c.o
Compiling .pio\build\nano33iot\FrameworkArduino\wiring_analog.c.o
Compiling .pio\build\nano33iot\FrameworkArduino\wiring_digital.c.o
Compiling .pio\build\nano33iot\FrameworkArduino\wiring_private.c.o
Compiling .pio\build\nano33iot\FrameworkArduino\wiring_shift.c.o
Archiving .pio\build\nano33iot\libFrameworkArduino.a
Linking .pio\build\nano33iot\firmware.elf
Checking size .pio\build\nano33iot\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [=         ]  12.5% (used 4092 bytes from 32768 bytes)
Flash: [          ]   4.6% (used 12028 bytes from 262144 bytes)
Building .pio\build\nano33iot\firmware.bin
Configuring upload protocol...
AVAILABLE: atmel-ice, blackmagic, jlink, sam-ba
CURRENT: upload_protocol = sam-ba
Looking for upload port...
Auto-detected: COM20
Forcing reset using 1200bps open/close on port COM20
Waiting for the new upload port...
Uploading .pio\build\nano33iot\firmware.bin
Atmel SMART device 0x10010005 found
Erase flash
done in 0.817 seconds

Write 12028 bytes to flash (188 pages)
[==========                    ] 34% (64/188 pages)
[====================          ] 68% (128/188 pages)
[==============================] 100% (188/188 pages)
done in 0.094 seconds
Verify 12028 bytes of flash with checksum.
Verify successful
done in 0.011 seconds
CPU reset.
========================= [SUCCESS] Took 8.13 seconds =========================
Environment    Status    Duration

nano33iot      SUCCESS   00:00:08.126
========================= 1 succeeded in 00:00:08.126 =========================
pio pkg exec -p tool-esptoolpy -- esptool.py --baud 921600 --before default_reset --after hard_reset write_flash --flash_size detect --erase-all 0x0 .pio/BlynkNCP/v0.6.2/BlynkNCP_nina_w102.flash.bin
Using<EMAIL_ADDRESS>package
C:\Users\123sa.platformio\python3\python.exe: can't open file 'C:\Users\123sa\Desktop\BlynkNcpExample-main\esptool.py': [Errno 2] No such file or directory
*** Error 2
*** [upload_ncp] Explicit exit, status 1
========================================================== [FAILED] Took 17.07 seconds ==========================================================
Environment    Status    Duration

nano33iot      FAILED    00:00:17.068
===================================================== 1 failed, 0 succeeded in 00:00:17.068 =====================================================PS C:\Users\123sa\Desktop\BlynkNcpExample-main>
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

I think your platformio is outdated.
Please update it to the latest version and retry

im using v3.3.1 i think it is latest version

$ platformio upgrade
Please wait while upgrading PlatformIO Core ...
$ platformio --version
PlatformIO Core, version 6.1.10b1

Added it to the Troublehooting section

PS C:\Users\123sa\Desktop\BlynkNcpExample-main> platformio upgrade
You're up-to-date!
PlatformIO 6.1.9 is currently the newest version available.

C:\Users\123sa.platformio\python3\python.exe: can't open file 'C:\Users\123sa\Desktop\BlynkNcpExample-main\esptool.py': [Errno 2] No such file or directory
*** Error 2
why is this error coming? actually I could not find any file called esptool.py in my directory

There was such a bug in PIO, and it was fixed...
Please try updating to the development version:
pio upgrade --dev
pio --version
pio pkg update

pio run -e nano33iot -t upload_ncp

wo hooo thank you.
finally connected to blynk.

pio upgrade --dev
pio --version
pio pkg update
pio run -e nano33iot -t upload_ncp
better add this to troubleshoot section

I'm now consulting with platformio on how to handle it properly.
Forcing everyone into the development branch is not an option...

ok.
I also need your help with blynk using python on my raspberry pi.

It is best to post it on community.blynk.cc

@Sachinmc73 PlatformIO stable was updated to v6.1.10 and contains the relevant bugfix