Calling for volunteers to support more datasets in WeNet.

We are calling for volunteers to support more datasets in WeNet including but not limited to the following table. Please note the Assign column:

Done: already one.
@sb: taken by the volunteer.
empty: it is free to take.

Let we know if you are interest in, feel free to support the dataset not listed in the table, thanks!

Datasets
Languages
Assign
Test Sets
Metric(CER/WER)

aishell
CN
Done
test
4.36

aishell2
CN
Done
test_IOS
5.35

ami
EN

chime4
EN
@funcwj

commonvoice/en
EN

commonvoice/pt
PT
@Xiaoxiao_77

csj
JP

gigaspeech
EN
Done
dev/test
10.7/10.6

hkust
CN
@fanlu

librispeech
EN
Done
test_clean/test_other
2.65/5.98

multi_cn
CN
Done
test_aishell/test_aishell2
1.23/5.25

swbd
EN
@pengchengguo

tedlium3
EN
@YuekaizhanG

timit
EN

wsj
EN
@pengchengguo

求aishell2和wsj数据集

需求aishell2和hkust数据集，谢谢了。

需求aishell2和wsj数据集

需求aishell2数据集，谢谢

Please do not apply for data here, try to use English if you are willing to contribute a public dataset, which is friendly for non-Chinese users.

We moved it to Github Discussions https://github.com/wenet-e2e/wenet/discussions/587


Add assertions to initialization of UniversePackageCache to verify that it's possible for it to work.

While updating some code I inadvertently destroyed the ability for UniversePackageCache to be able to work.
It should run a series of assertions when it is created to verify that the config provided to it can result in success. (In my case I had told it to use a directory that didn't exist).

UniversePackageCache is going away.


fix: mark fs.FileSystem from_uri as staticmethod

See https://github.com/apache/arrow/blob/90b30fcbfdfe12fa9ed497c3fa1cfe682b50168f/python/pyarrow/_fs.pyx#L425
Otherwise we get 2 errors:
[call-arg] ...: error: Missing positional argument "uri" in call to "from_uri" of "FileSystem"
[arg-type] ...: error: Argument 1 to "from_uri" of "FileSystem" has incompatible type "str"; expected "FileSystem"

fix in #10


README.md mentions webtreemap which doesn't seem to exist

I suspect webtreemap is an alias in your shell to node cli.ts?

You have to run 'npm install', then it shows up in node_modules/.bin/webtreemap.  I'm never quite sure whether to document this (for people unfamiliar with the node world) because I never see it documented in other comparable apps.

npm install doesn't seem to be enough.  Are you sure that's all I need to run? :)

I am sorry for not fixing this sooner.  I have updated the README with install instructions:
https://github.com/evmar/webtreemap#command-line
The normal way to install a node package is via 'npm install' as written there.  If you have the code from git then you have to dig the program out from the build directory, which I've now also documented.

Hi, I'm also having trouble installing webtreemap.
I've tried two things:

Running sudo npm i webtreemap from my ~/ directory.
The output was:

tuket@asus:~$ sudo npm i webtreemap
[sudo] password for tuket:
/home/tuket
└──<EMAIL_ADDRESS>
npm WARN enoent ENOENT: no such file or directory, open '/home/tuket/package.json'
npm WARN tuket No description
npm WARN tuket No repository field.
npm WARN tuket No README data
npm WARN tuket No license field.


Add possibility to setup multibranch

We want to allow a multi-branch setup - what I mean by that the user can select processes (feature branch, main, release), and for each process user can select workflows.
I imagine that at the beginning there will be select which processes we're adding (feature branch, main, release) - I assume we can be opinionated about the main branch naming and release strategy. Then our current selection is displayed for each process. Additionally, when we run the selected recipe we can show for which process it will be used.

The description is my idea of how it could work, but I'm open to other options on how to resolve it from a UX perspective.

I imagine the survey could look something like this:
Select processes you'd like to run in every pull request
(learn more about feature branch processes: /* link to docs */)
[ ] option a
[ ] option b

Select processes you'd like to run on main branch each time its head commit changes
(learn more about main branch processes: /* link to docs */)
[ ] option a
[ ] option b

Select processes you'd like to run on release branch each time new code is pushed to it
(learn more about release branch processes: /* link to docs */
[ ] option a
[ ] option b


Updated DataConnector code to handle parameter type changes of Dataminr API.

Change(s):
Updated DataConector code and steps in README.md file
Reason for Change(s):
type of id parameter is changed in API. So handled type conversion in code.
Version Updated:
Yes
Testing Completed:
Yes
Checked that the validations are passing and have addressed any issues that are present:
Yes

Hello @niralishah-crest, Thanks for raising this PR. We will investigate this PR and come back to you with an update by 19 December, 2023.

Hello @niralishah-crest, Please update the branch from master. The validation error will show valid errors.
Thanks.

@v-prasadboke I have updated the branch from master and now all validations have been succeeded
Thanks

Hello @niralishah-crest, can you provide me write access to your branch. Thanks

Hello @niralishah-crest, can you provide me write access to your branch. Thanks

@v-prasadboke We are unable to provide write access to a particular branch. It's possible to add you as a collaborator in my forked  repository which will give you an edit access to whole repository.

Thats fine. You can invite me as a collaborator so that I can push the required changes

@v-prasadboke I have sent an invite to add you as a collaborator in my repository.
Thanks

@v-prasadboke Can you please provide the ETA for merging this PR?
Thanks


Enable LogRecord ByteBuf based constructor public

Is this a question, feature request, or bug report?
feature request
FEATURE REQUEST

Please describe the feature you are requesting.
Enable LogRecord ByteBuf based constructor public.

Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?
should-have

Provide any additional detail on your proposed use case for this feature.
I want to use ByteBuf data to construct LogRecord to leverage Dlog's zero-copy feature, but found that constructor still has protected modifier, so I can't access it outside Dlog.

If there are some sub-tasks using -[] for each subtask and create a corresponding issue to map to the sub task:
None

pr #182 is the solution.


Node red additions

Added several nodes to the node-red code

Thank you for the language errors corrections.

Alexandru,
No problem.  I know from my feeble attempts to learn Spanish, German, and French, and from talking with the many people I’ve worked with over the years for whom English was a second, third, or even fourth language, that translation can be difficult, especially when there are a lot of homonyms and irregular constructions in the target language.  When I suggest changes, my intent is to make the content “standard” English so that it is more accessible to everyone, especially the non-native English speakers who are stuck using this poorly structured and irregular language.  I don’t want to be the ‘grammar police’ or the ’spelling nazi’, but rather the ‘universal-ish understanding facilitator’.  So please let me know if I am stepping too far out-of-bounds, or if my suggested changes don’t make sense to you.
Thank you,
John

On Jan 23, 2022, at 10:12 AM, Alexandru Burcea @.***> wrote:
Thank you for the language errors corrections.
—
Reply to this email directly, view it on GitHub https://github.com/SequentMicrosystems/megaind-rpi/pull/15#issuecomment-1019504895, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQ2EB6KBBYZDI3DWWXW2Y3UXQLGBANCNFSM5MQ7WKJA.
Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.


Fix vending machines throwing

Should stop it happening in future when I bulk update proto names

This doesn't pass the integration tests.

Yeah something weird's going on, that was the same exception I was getting prior to fixing ammovend even though all of the prototypes for the machine exist... hmm...


updated module declaration

Need this updated in order to build using BarnBridge repo

github.com/lacasian/ethwheels is public so rather than deal with rebuilding this module I'll just source that


[Android] Severe jank with custom paint

2 VIDEO FILES ATTACHED:
1x no jank w/2.6.0-5.2.pre and below
1x bad jank w/2.7.0-3.0pre
beta 2.6.0-5.2.pre and BELOW works perfect
beta 2.7.0-3.0.pre and ABOVE creates massive jank : custompaint in any kind of scrollview. Unsure if its a custompaint issue, scrollview issue or optimisation issue.
-confirmed 2 physical devices w/8 and 12gb ram
Int16List (pcm audio) int values are being thinned and custom-painted as an audio waveform inside horizontal singlechildscrollview. Prior to latest beta performance was exceptional. After latest beta (and including master ch releases) something is broken and screen redraws are as if they're not cached/rasterised at all irrespective of custompaint settings and are drawing on the fly???.

...
-Find a wave file to dump in assets
(suspect a complex paint object will suffice)
-Implement attached code.
-Switch between any release ABOVE 2.6.0-5.2.pre to see massive jank or BELOW (and including) to see perfect operation

...
-Scroll left or right to see massive jank above 2.6.0-5.2.pre
-Even scroll to the scrollview bounds and see jank on overscroll glow

Expected results:
-Smooth scrolling/rasterising/screen update as per prior release
Actual results:
-Massive jank

Please see attached video files.

import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/services.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      debugShowCheckedModeBanner: false,
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({
    Key? key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.transparent,
      body: FutureBuilder(
        future: loadGraph(),
        builder: (context, AsyncSnapshot<Int16List> waveData) {
          return (!waveData.hasData)
              ? const CircularProgressIndicator.adaptive()
              : SizedBox(
                  width: MediaQuery.of(context).size.width,
                  height: MediaQuery.of(context).size.height,
                  child: SingleChildScrollView(
                    scrollDirection: Axis.horizontal,
                    child: SizedBox(
                      width: MediaQuery.of(context).size.width * 20,
                      height: MediaQuery.of(context).size.height,
                      child: RepaintBoundary(
                        child: CustomPaint(
                          willChange: false,
                          isComplex: true,
                          painter: PaintTest(
                            waveData: waveData.data!,
                          ),
                        ),
                      ),
                    ),
                  ),
                );
        },
      ),
    );
  }
}

class PaintTest extends CustomPainter {
  final Int16List waveData;

  const PaintTest({
    required this.waveData,
  });

  @override
  void paint(Canvas canvas, Size size) {
    final _height = size.height;
    double x = 0;
    double strokeSize = .5;
    const zoomFactor = .5;

    final Paint paintPos = Paint()
      ..color = Colors.pink
      ..strokeWidth = strokeSize
      ..isAntiAlias = false
      ..style = PaintingStyle.stroke;

    final Paint paintNeg = Paint()
      ..color = Colors.pink
      ..strokeWidth = strokeSize
      ..isAntiAlias = false
      ..style = PaintingStyle.stroke;

    final Paint paintZero = Paint()
      ..color = Colors.green
      ..strokeWidth = strokeSize
      ..isAntiAlias = false
      ..style = PaintingStyle.stroke;

    int index = 0;
    for (index = 0; index < waveData.length; index++) {
      if (waveData[index].isNegative) {
        canvas.drawLine(Offset(x, _height * 1 / 2), Offset(x, _height * 1 / 2 - waveData[index] / 32768 * (_height / 2)), paintPos);
        x += zoomFactor;
      } else {
        (waveData[index] == 0)
            ? canvas.drawLine(Offset(x, _height * 1 / 2), Offset(x, _height * 1 / 2 + 1), paintZero)
            : canvas.drawLine(Offset(x, _height * 1 / 2), Offset(x, _height * 1 / 2 - waveData[index] / 32767 * (_height / 2)), paintNeg);
        x += zoomFactor;
      }
    }
  }

  @override
  bool shouldRepaint(CustomPainter oldDelegate) {
    return false;
  }
}

Future<Int16List> loadGraph() async {
  //*_____________________________________________
  //! LOAD ANY WAVE FILE - THIS IS 16bit 44.1 MONO
  //*_____________________________________________
  Int16List load16bitMonoWave = await rootBundle.load('assets/rawalice.raw').then((value) => value.buffer.asInt16List());
  //! THIN WAVE FILE TO 1/20
  Int16List waveDataThinned = Int16List((load16bitMonoWave.length * 1 / 20).round());
  int reducedIndex = 0;
  for (int index = 0; index + 20 < load16bitMonoWave.length; index += 20) {
    waveDataThinned[reducedIndex] = load16bitMonoWave[index];
    reducedIndex++;
  }
  return waveDataThinned;
}

Logs

[  +47 ms] executing: [c:\flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[ +171 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +1 ms] c19845a8c347adebc2c672f5e51b74855e645be2
[        ] executing: [c:\flutter/] git tag --points-at c19845a8c347adebc2c672f5e51b74855e645be2
[  +24 ms] Exit code 0 from: git tag --points-at c19845a8c347adebc2c672f5e51b74855e645be2
[        ] 2.7.0-3.0.pre
[   +6 ms] executing: [c:\flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[  +18 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/beta
[        ] executing: [c:\flutter/] git ls-remote --get-url origin
[  +16 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +68 ms] executing: [c:\flutter/] git rev-parse --abbrev-ref HEAD
[  +18 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] beta
[  +49 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +40 ms] executing: C:\Users\mark\AppData\Local\Android\sdk\platform-tools\adb.exe devices -l
[  +35 ms] List of devices attached
           <IP_ADDRESS>:5555      device product:CPH1979 model:CPH1979 device:OP48A1 transport_id:1
[   +5 ms] C:\Users\mark\AppData\Local\Android\sdk\platform-tools\adb.exe -s <IP_ADDRESS>:5555 shell
getprop
[  +64 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[   +3 ms] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +60 ms] Skipping pub get: version match.
[  +77 ms] Generating C:\Users\mark\OneDrive\Desktop\SS
Development\janktest\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java
[  +43 ms] ro.hardware = mt6779
[        ] ro.build.characteristics = default
[  +25 ms] Initializing file store
[   +7 ms] Skipping target: gen_localizations
[   +4 ms] gen_dart_plugin_registrant: Starting due to {InvalidatedReasonKind.inputChanged: The following
inputs have updated contents: C:\Users\mark\OneDrive\Desktop\SS
Development\janktest\.dart_tool\package_config_subset}
[  +16 ms] gen_dart_plugin_registrant: Complete
[   +1 ms] Skipping target: _composite
[   +1 ms] complete
[   +4 ms] Launching lib\main.dart on CPH1979 in debug mode...
[   +3 ms] c:\flutter\bin\cache\dart-sdk\bin\dart.exe --disable-dart-dev
c:\flutter\bin\cache\artifacts\engine\windows-x64\frontend_server.dart.snapshot --sdk-root
c:\flutter\bin\cache\artifacts\engine\common\flutter_patched_sdk/ --incremental --target=flutter
--debugger-module-names --experimental-emit-debug-metadata -DFLUTTER_WEB_AUTO_DETECT=true --output-dill
C:\Users\mark\AppData\Local\Temp\flutter_tools.dd32c6e6\flutter_tool.a597404c\app.dill --packages
C:\Users\mark\OneDrive\Desktop\SS Development\janktest\.dart_tool\package_config.json
-Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts --track-widget-creation
--filesystem-scheme org-dartlang-root --initialize-from-dill
build\c075001b96339384a97db4862b8ab8db.cache.dill.track.dill
--enable-experiment=alternative-invalidation-strategy
[   +6 ms] executing: C:\Users\mark\AppData\Local\Android\sdk\build-tools\31.0.0\aapt dump xmltree
C:\Users\mark\OneDrive\Desktop\SS Development\janktest\build\app\outputs\flutter-apk\app.apk
AndroidManifest.xml
[   +7 ms] Exit code 0 from: C:\Users\mark\AppData\Local\Android\sdk\build-tools\31.0.0\aapt dump xmltree
C:\Users\mark\OneDrive\Desktop\SS Development\janktest\build\app\outputs\flutter-apk\app.apk
AndroidManifest.xml
[        ] N: android=http://schemas.android.com/apk/res/android
             E: manifest (line=2)
               A: android:versionCode(0x0101021b)=(type 0x10)0x1
               A: android:versionName(0x0101021c)="1.0.0" (Raw: "1.0.0")
               A: android:compileSdkVersion(0x01010572)=(type 0x10)0x1e
               A: android:compileSdkVersionCodename(0x01010573)="11" (Raw: "11")
               A: package="com.example.janktest" (Raw: "com.example.janktest")
               A: platformBuildVersionCode=(type 0x10)0x1e
               A: platformBuildVersionName=(type 0x10)0xb
               E: uses-sdk (line=7)
                 A: android:minSdkVersion(0x0101020c)=(type 0x10)0x10
                 A: android:targetSdkVersion(0x01010270)=(type 0x10)0x1e
               E: uses-permission (line=14)
                 A: android:name(0x01010003)="android.permission.INTERNET" (Raw:
                 "android.permission.INTERNET")
               E: application (line=16)
                 A: android:label(0x01010001)="janktest" (Raw: "janktest")
                 A: android:icon(0x01010002)=@0x7f080000
                 A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff
                 A: android:appComponentFactory(0x0101057a)="androidx.core.app.CoreComponentFactory"
                 (Raw: "androidx.core.app.CoreComponentFactory")
                 E: activity (line=21)
                   A: android:theme(0x01010000)=@0x7f0a0000
                   A: android:name(0x01010003)="com.example.janktest.MainActivity" (Raw:
                   "com.example.janktest.MainActivity")
                   A: android:launchMode(0x0101001d)=(type 0x10)0x1
                   A: android:configChanges(0x0101001f)=(type 0x11)0x40003fb4
                   A: android:windowSoftInputMode(0x0101022b)=(type 0x11)0x10
                   A: android:hardwareAccelerated(0x010102d3)=(type 0x12)0xffffffff
                   E: meta-data (line=35)
                     A: android:name(0x01010003)="io.flutter.embedding.android.NormalTheme" (Raw:
                     "io.flutter.embedding.android.NormalTheme")
                     A: android:resource(0x01010025)=@0x7f0a0001
                   E: intent-filter (line=39)
                     E: action (line=40)
                       A: android:name(0x01010003)="android.intent.action.MAIN" (Raw:
                       "android.intent.action.MAIN")
                     E: category (line=42)
                       A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw:
                       "android.intent.category.LAUNCHER")
                 E: meta-data (line=49)
                   A: android:name(0x01010003)="flutterEmbedding" (Raw: "flutterEmbedding")
                   A: android:value(0x01010024)=(type 0x10)0x2
[   +8 ms] executing: C:\Users\mark\AppData\Local\Android\sdk\platform-tools\adb.exe -s <IP_ADDRESS>:5555
shell -x logcat -v time -t 1
[  +10 ms] <- compile package:janktest/main.dart
[ +292 ms] --------- beginning of main
                    10-24 08:17:10.264<EMAIL_ADDRESS> 512): updateSleepTime
                    mSleepTime=200: Device or resource busy
[   +7 ms] executing: C:\Users\mark\AppData\Local\Android\sdk\platform-tools\adb.exe version
[  +10 ms] Android Debug Bridge version 1.0.41
           Version 31.0.3-7562133
           Installed as C:\Users\mark\AppData\Local\Android\sdk\platform-tools\adb.exe
[   +1 ms] executing: C:\Users\mark\AppData\Local\Android\sdk\platform-tools\adb.exe start-server
[  +11 ms] Building APK
[  +11 ms] Running Gradle task 'assembleDebug'...
[   +3 ms] Using gradle from C:\Users\mark\OneDrive\Desktop\SS Development\janktest\android\gradlew.bat.
[   +3 ms] executing: C:\Program Files\Android\Android Studio\jre\bin\java -version
[  +99 ms] Exit code 0 from: C:\Program Files\Android\Android Studio\jre\bin\java -version
[        ] openjdk version "11.0.10" 2021-01-19
           OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
           OpenJDK 64-Bit Server VM (build 11.0.10+0-b96-7249189, mixed mode)
[   +1 ms] executing: [C:\Users\mark\OneDrive\Desktop\SS Development\janktest\android/]
C:\Users\mark\OneDrive\Desktop\SS Development\janktest\android\gradlew.bat -Pverbose=true
-Ptarget-platform=android-arm64 -Ptarget=C:\Users\mark\OneDrive\Desktop\SS
Development\janktest\lib\main.dart -Pdart-defines=RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ==
-Pdart-obfuscation=false -Ptrack-widget-creation=true -Ptree-shake-icons=false
-Pfilesystem-scheme=org-dartlang-root assembleDebug
[ +773 ms] Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns
http://schemas.android.com/repository/android/common/01
[   +1 ms] Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns
http://schemas.android.com/repository/android/generic/01
[        ] Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns
http://schemas.android.com/sdk/android/repo/addon2/01
[        ] Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns
http://schemas.android.com/sdk/android/repo/repository2/01
[        ] Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns
http://schemas.android.com/sdk/android/repo/sys-img2/01
[+1994 ms] > Task :app:compileFlutterBuildDebug
[        ] [  +45 ms] executing: [c:\flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] [ +174 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] [        ] c19845a8c347adebc2c672f5e51b74855e645be2
[        ] [        ] executing: [c:\flutter/] git tag --points-at
c19845a8c347adebc2c672f5e51b74855e645be2
[        ] [  +25 ms] Exit code 0 from: git tag --points-at c19845a8c347adebc2c672f5e51b74855e645be2
[        ] [        ] 2.7.0-3.0.pre
[        ] [   +6 ms] executing: [c:\flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[        ] [  +18 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] [        ] origin/beta
[        ] [        ] executing: [c:\flutter/] git ls-remote --get-url origin
[        ] [  +15 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] [        ] https://github.com/flutter/flutter.git
[        ] [  +38 ms] executing: [c:\flutter/] git rev-parse --abbrev-ref HEAD
[        ] [  +18 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] [        ] beta
[        ] [  +39 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping
update.
[        ] [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping
update.
[        ] [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] [   +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] [  +68 ms] Artifact Instance of 'MaterialFonts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'GradleWrapper' is not required, skipping update.
[        ] [   +2 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping
update.
[        ] [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterSdk' is not required, skipping update.
[        ] [        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'PubDependencies' is not required, skipping update.
[        ] [  +27 ms] Initializing file store
[        ] [  +15 ms] Skipping target: gen_localizations
[        ] [   +8 ms] gen_dart_plugin_registrant: Starting due to {InvalidatedReasonKind.inputChanged:
The following inputs have updated contents: C:\Users\mark\OneDrive\Desktop\SS
Development\janktest\.dart_tool\package_config_subset}
[        ] [  +27 ms] gen_dart_plugin_registrant: Complete
[        ] [   +1 ms] kernel_snapshot: Starting due to {}
[        ] [   +8 ms] c:\flutter\bin\cache\dart-sdk\bin\dart.exe --disable-dart-dev
c:\flutter\bin\

https://user-images.githubusercontent.com/80554643/138573736-cea995fe-73c3-42a0-ace3-28afa952f2b8.MP4

cache\artifacts\engine\windows-x64\frontend_server.dart.snapshot --sdk-root
c:\flutter\bin\cache\artifacts\engine\common\flutter_patched_sdk/ --target=flutter
--no-print-incremental-dependencies -DFLUTTER_WEB_AUTO_DETECT=true -Ddart.vm.profile=false
-Ddart.vm.product=false --enable-asserts --track-widget-creation --no-link-platform --packages
C:\Users\mark\OneDrive\Desktop\SS Development\janktest\.dart_tool\package_config.json --output-dill
C:\Users\mark\OneDrive\Desktop\SS
Development\janktest\.dart_tool\flutter_build\6f2d2252579d7f67f96a4aeb04bf2037\app.dill --depfile
C:\Users\mark\OneDrive\Desktop\SS
Development\janktest\.dart_tool\flutter_build\6f2d2252579d7f67f96a4aeb04bf2037\kernel_snapshot.d
package:janktest/main.dart
[+4486 ms] [+5541 ms] kernel_snapshot: Complete
[ +293 ms] [ +336 ms] debug_android_application: Starting due to {}
[ +104 ms] [ +117 ms] Manifest contained wildcard assets. Inserting missing file into build graph to
force rerun. for more information see #56466.
[ +108 ms] [  +30 ms] debug_android_application: Complete
[ +496 ms] [ +523 ms] Persisting file store
[        ] [   +5 ms] Done persisting file store
[        ] [   +3 ms] build succeeded.
[        ] [   +8 ms] "flutter assemble" took 6,737ms.
[ +289 ms] [ +260 ms] ensureAnalyticsSent: 257ms
[        ] [        ] Running shutdown hooks
[        ] [        ] Shutdown hooks complete
[        ] [        ] exiting with code 0
[        ] Parameter format not correct -
[ +114 ms] > Task :app:packLibsflutterBuildDebug UP-TO-DATE
[        ] > Task :app:preBuild UP-TO-DATE
[        ] > Task :app:preDebugBuild UP-TO-DATE
[        ] > Task :app:compileDebugAidl NO-SOURCE
[        ] > Task :app:compileDebugRenderscript NO-SOURCE
[        ] > Task :app:generateDebugBuildConfig UP-TO-DATE
[        ] > Task :app:checkDebugAarMetadata UP-TO-DATE
[        ] > Task :app:cleanMergeDebugAssets
[        ] > Task :app:mergeDebugShaders UP-TO-DATE
[        ] > Task :app:compileDebugShaders NO-SOURCE
[        ] > Task :app:generateDebugAssets UP-TO-DATE
[        ] > Task :app:mergeDebugAssets
[ +288 ms] > Task :app:copyFlutterAssetsDebug
[        ] > Task :app:generateDebugResValues UP-TO-DATE
[        ] > Task :app:generateDebugResources UP-TO-DATE
[        ] > Task :app:mergeDebugResources UP-TO-DATE
[        ] > Task :app:createDebugCompatibleScreenManifests UP-TO-DATE
[        ] > Task :app:extractDeepLinksDebug UP-TO-DATE
[        ] > Task :app:processDebugMainManifest UP-TO-DATE
[        ] > Task :app:processDebugManifest UP-TO-DATE
[        ] > Task :app:processDebugManifestForPackage UP-TO-DATE
[        ] > Task :app:processDebugResources UP-TO-DATE
[        ] > Task :app:compileDebugKotlin UP-TO-DATE
[        ] > Task :app:javaPreCompileDebug UP-TO-DATE
[        ] > Task :app:compileDebugJavaWithJavac UP-TO-DATE
[        ] > Task :app:compileDebugSources UP-TO-DATE
[        ] > Task :app:mergeDebugNativeDebugMetadata NO-SOURCE
[        ] > Task :app:compressDebugAssets UP-TO-DATE
[        ] > Task :app:processDebugJavaRes NO-SOURCE
[        ] > Task :app:mergeDebugJavaResource UP-TO-DATE
[        ] > Task :app:checkDebugDuplicateClasses UP-TO-DATE
[        ] > Task :app:dexBuilderDebug UP-TO-DATE
[        ] > Task :app:desugarDebugFileDependencies UP-TO-DATE
[        ] > Task :app:mergeExtDexDebug UP-TO-DATE
[ +102 ms] > Task :app:mergeDexDebug UP-TO-DATE
[        ] > Task :app:mergeDebugJniLibFolders UP-TO-DATE
[        ] > Task :app:mergeDebugNativeLibs UP-TO-DATE
[        ] > Task :app:stripDebugDebugSymbols UP-TO-DATE
[        ] > Task :app:validateSigningDebug UP-TO-DATE
[        ] > Task :app:packageDebug UP-TO-DATE
[  +51 ms] > Task :app:assembleDebug
[        ] Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
[        ] Use '--warning-mode all' to show the individual deprecation warnings.
[        ] See
https://docs.gradle.org/6.7/userguide/command_line_interface.html#sec:command_line_warnings
[        ] BUILD SUCCESSFUL in 9s
[        ] 32 actionable tasks: 5 executed, 27 up-to-date
[ +509 ms] Running Gradle task 'assembleDebug'... (completed in 9.8s)
[  +40 ms] calculateSha: LocalDirectory: 'C:\Users\mark\OneDrive\Desktop\SS
Development\janktest\build\app\outputs\flutter-apk'/app.apk
[ +625 ms] √  Built build\app\outputs\flutter-apk\app-debug.apk.
[   +2 ms] executing: C:\Users\mark\AppData\Local\Android\sdk\build-tools\31.0.0\aapt dump xmltree
C:\Users\mark\OneDrive\Desktop\SS Development\janktest\build\app\outputs\flutter-apk\app.apk
AndroidManifest.xml
[   +7 ms] Exit code 0 from: C:\Users\mark\AppData\Local\Android\sdk\build-tools\31.0.0\aapt dump xmltree
C:\Users\mark\OneDrive\Desktop\SS Development\janktest\build\app\outputs\flutter-apk\app.apk
AndroidManifest.xml
[        ] N: android=http://schemas.android.com/apk/res/android
             E: manifest (line=2)
               A: android:versionCode(0x0101021b)=(type 0x10)0x1
               A: android:versionName(0x0101021c)="1.0.0" (Raw: "1.0.0")
               A: android:compileSdkVersion(0x01010572)=(type 0x10)0x1e
               A: android:compileSdkVersionCodename(0x01010573)="11" (Raw: "11")
               A: package="com.example.janktest" (Raw: "com.example.janktest")
               A: platformBuildVersionCode=(type 0x10)0x1e
               A: platformBuildVersionName=(type 0x10)0xb
               E: uses-sdk (line=7)
                 A: android:minSdkVersion(0x0101020c)=(type 0x10)0x10
                 A: android:targetSdkVersion(0x01010270)=(type 0x10)0x1e
               E: uses-permission (line=14)
                 A: android:name(0x01010003)="android.permission.INTERNET" (Raw:
                 "android.permission.INTERNET")
               E: application (line=16)
                 A: android:label(0x01010001)="janktest" (Raw: "janktest")
                 A: android:icon(0x01010002)=@0x7f080000
                 A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff
                 A: android:appComponentFactory(0x0101057a)="androidx.core.app.CoreComponentFactory"
                 (Raw: "androidx.core.app.CoreComponentFactory")
                 E: activity (line=21)
                   A: android:theme(0x01010000)=@0x7f0a0000
                   A: android:name(0x01010003)="com.example.janktest.MainActivity" (Raw:
                   "com.example.janktest.MainActivity")
                   A: android:launchMode(0x0101001d)=(type 0x10)0x1
                   A: android:configChanges(0x0101001f)=(type 0x11)0x40003fb4
                   A: android:windowSoftInputMode(0x0101022b)=(type 0x11)0x10
                   A: android:hardwareAccelerated(0x010102d3)=(type 0x12)0xffffffff
                   E: meta-data (line=35)
                     A: android:name(0x01010003)="io.flutter.embedding.android.NormalTheme" (Raw:
                     "io.flutter.embedding.android.NormalTheme")
                     A: android:resource(0x01010025)=@0x7f0a0001
                   E: intent-filter (line=39)
                     E: action (line=40)
                       A: android:name(0x01010003)="android.intent.action.MAIN" (Raw:
                       "android.intent.action.MAIN")
                     E: category (line=42)
                       A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw:
                       "android.intent.category.LAUNCHER")
                 E: meta-data (line=49)
                   A: android:name(0x01010003)="flutterEmbedding" (Raw: "flutterEmbedding")
                   A: android:value(0x01010024)=(type 0x10)0x2
[   +3 ms] Stopping app 'app.apk' on CPH1979.
[        ] executing: C:\Users\mark\AppData\Local\Android\sdk\platform-tools\adb.exe -s <IP_ADDRESS>:5555
shell am force-stop com.example.janktest
[ +547 ms] executing: C:\Users\mark\AppData\Local\Android\sdk\platform-tools\adb.exe -s <IP_ADDRESS>:5555
shell pm list packages com.example.janktest
[ +105 ms] package:com.example.janktest
[   +1 ms] executing: C:\Users\mark\AppData\Local\Android\sdk\platform-tools\adb.exe -s <IP_ADDRESS>:5555
shell cat /data/local/tmp/sky.com.example.janktest.sha1
[  +37 ms] 9d2b1e045f1269930aa2c064d8115030fbd2cbaf
[        ] Latest build already installed.
[        ] executing: C:\Users\mark\AppData\Local\Android\sdk\platform-tools\adb.exe -s <IP_ADDRESS>:5555
shell -x logcat -v time -t 1
[  +51 ms] --------- beginning of main
           10-24 08:17:21.810<EMAIL_ADDRESS> 512): updateSleepTime 1: Device or
           resource busy
[   +3 ms] executing: C:\Users\mark\AppData\Local\Android\sdk\platform-tools\adb.exe -s <IP_ADDRESS>:5555
shell am start -a android.intent.action.RUN -f 0x20000000 --ez enable-background-compilation true --ez
enable-dart-profiling true --ez enable-checked-mode true --ez verify-entry-points true
com.example.janktest/com.example.janktest.MainActivity
[ +111 ms] Starting: Intent { act=android.intent.action.RUN flg=0x20000000
cmp=com.example.janktest/.MainActivity (has extras) }
[        ] Waiting for observatory port to be available...
[ +631 ms] Observatory URL on device: http://<IP_ADDRESS>:43367/4H9fTxRs6nk=/
[        ] executing: C:\Users\mark\AppData\Local\Android\sdk\platform-tools\adb.exe -s <IP_ADDRESS>:5555
forward tcp:0 tcp:43367
[  +11 ms] 61006
[        ] Forwarded host port 61006 to device port 43367 for Observatory
[   +3 ms] Caching compiled dill
[  +15 ms] Connecting to service protocol: http://<IP_ADDRESS>:61006/4H9fTxRs6nk=/
[ +422 ms] Launching a Dart Developer Service (DDS) instance at http://<IP_ADDRESS>:0, connecting to VM
service at http://<IP_ADDRESS>:61006/4H9fTxRs6nk=/.
[ +445 ms] DDS is listening at http://<IP_ADDRESS>:61010/iQhhoxGEvu0=/.
[  +35 ms] Successfully connected to service protocol: http://<IP_ADDRESS>:61006/4H9fTxRs6nk=/
[ +118 ms] DevFS: Creating new filesystem on the device (null)
[  +57 ms] DevFS: Created new filesystem on the device
(file:///data/user/0/com.example.janktest/code_cache/janktestJOQOIJ/janktest/)
[   +1 ms] Updating assets
[  +46 ms] Manifest contained wildcard assets. Inserting missing file into build graph to force rerun.
for more information see #56466.
[   +3 ms] Syncing files to device CPH1979...
[   +1 ms] <- reset
[        ] Compiling dart to kernel with 0 updated files
[   +1 ms] <- recompile package:janktest/main.dart ee1d23bd-4d88-4d7b-ad09-f8874bba0b20
[        ] <- ee1d23bd-4d88-4d7b-ad09-f8874bba0b20
[  +62 ms] Updating files.
[        ] DevFS: Sync finished
[        ] Syncing files to device CPH1979... (completed in 66ms)
[        ] Synced 0.0MB.
[   +1 ms] <- accept
[   +4 ms] Connected to _flutterView/0xb4000076132d3220.
[   +1 ms] Flutter run key commands.
[   +1 ms] r Hot reload.
[        ] R Hot restart.
[        ] h List all available interactive commands.
[        ] d Detach (terminate "flutter run" but leave application running).
[        ] c Clear the screen
[        ] q Quit (terminate the application on the device).
[        ]  Running with sound null safety
[        ] An Observatory debugger and profiler on CPH1979 is available at:
http://<IP_ADDRESS>:61010/iQhhoxGEvu0=/
[+2206 ms] The Flutter DevTools debugger and profiler on CPH1979 is available at:
                    http://<IP_ADDRESS>:9103?uri=http://<IP_ADDRESS>:61010/iQhhoxGEvu0=/
[+28440 ms] V/PhoneWindow(30325): DecorView setVisiblity: visibility = 0, Parent =
android.view.ViewRootImpl@1808d83, this = DecorView@52c5b00[MainActivity]
[        ] V/PhoneWindow(30325): DecorView setVisiblity: visibility = 0, Parent =
android.view.ViewRootImpl@1808d83, this = DecorView@52c5b00[MainActivity]
[        ] V/OplusZoomWindowDecorViewHelper(30325): setLastReportedMergedConfiguration
mZoomDisplayHeight: 1080 getDecorView.DecorView@52c5b00[MainActivity]
[        ] E/libEGL  (30325): Invalid file path for libcolorx-loader.so
[        ] D/libMEOW (30325): applied 1 plugins for [com.example.janktest]:
[        ] D/libMEOW (30325):   plugin 1: [libMEOW_gift.so]:
[        ] I/libMEOW_gift(30325): ctx:0xb400007663491d80, ARC not Enabled.
[        ] E/libEGL  (30325): Invalid file path for libcolorx-loader.so
[        ] I/chatty  (30325): uid=10511(com.example.janktest) RenderThread identical 5 lines
[        ] E/libEGL  (30325): Invalid file path for libcolorx-loader.so
[        ] D/libMEOW (30325): applied 1 plugins for [com.example.janktest]:
[        ] D/libMEOW (30325):   plugin 1: [libMEOW_gift.so]:
[        ] E/libEGL  (30325): Invalid file path for libcolorx-loader.so
[        ] I/chatty  (30325): uid=10511(com.example.janktest) RenderThread identical 7 lines
[        ] E/libEGL  (30325): Invalid file path for libcolorx-loader.so
[        ] E/libEGL  (30325): Invalid file path for libcolorx-loader.so
[        ] I/chatty  (30325): uid=10511(com.example.janktest) RenderThread identical 49 lines
[        ] E/libEGL  (30325): Invalid file path for libcolorx-loader.so
[        ] E/ion     (30325): ioctl c0044901 failed with code -1: Invalid argument
[        ] E/libEGL  (30325): Invalid file path for libcolorx-loader.so
[  +15 ms] I/chatty  (30325): uid=10511(com.example.janktest) 1.raster identical 15 lines
[  +12 ms] E/libEGL  (30325): Invalid file path for libcolorx-loader.so
[        ] E/libEGL  (30325): Invalid file path for libcolorx-loader.so
[        ] I/chatty  (30325): uid=10511(com.example.janktest) 1.raster identical 41 lines
[        ] E/libEGL  (30325): Invalid file path for libcolorx-loader.so

Analyzing janktest...
No issues found! (ran in 2.2s)

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, 2.7.0-3.0.pre, on Microsoft Windows [Version 10.0.22000.282], locale en-AU)
[√] Android toolchain - develop for Android devices (Android SDK version 31.0.0)[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.11.2)
[√] Android Studio (version 2020.3)
[√] VS Code (version 1.61.2)
[√] Connected device (4 available)
• No issues found!

<!--

NO JANK: 2.6.0-5.2.pre (and below)
https://user-images.githubusercontent.com/80554643/138573745-e7bf6e08-291c-4be7-8dd2-58cf5ab219ac.MP4

UNUSABLE JANK: 2.7.0-3.0pre (and above)
https://user-images.githubusercontent.com/80554643/138573761-7d7f518c-c332-418a-b440-5f184673dbcc.MP4

->

None of the skia commits in https://skia.googlesource.com/skia.git/+log/a20c60d9e5d5..c076abe32ab5 look suspicious, but that engine roll also enabled DisplayList by default.
/cc @flar

The devtools_master.json file does not include any trace events to analyze.

Using a path would require more processing on the segments to compute the joins. That processing is great if you can see the joins and want them to have a given style, but when there are so many segments and you can't really see the joins, it is just wasted computations.

@flar can you think of why https://github.com/flutter/flutter/issues/92366#issuecomment-951167248 would happen?

@flar can you think of why #92366 (comment) would happen?

You'd have to ask Skia.

Ok, backing up a step -

I don't think we have tracing to show that the linked commit provides different tracing before or after. It's possible this unfortunate looking tracing is unrelated.
The linked commit does cause jank
The skia rolls in the linked commit are all either related to testing/infra, Darwin specific, or CPU specific (this is GPU).
The linked commit contains the switch to go from SkPicture to DisplayList

My question is: can @flar think of any reason why enabling display list would have introduced jank here?

Running the test case locally I'm seeing 100ms per call to the Dart Paint phase. This would be the phase during which the DisplayList is constructed.
Using the supplied twinkle-twinkle WAV file I get 333k samples to render. Each is a drawLine call which is 24bytes per record which is an 8mb display list. The current buffer growth algorithm, copied from Skia's SkLiteDL is to bump it by 4k per buffer overrun which means that the buffer will be grown from 4k to 8m over 2000 reallocs. I'll check it's behavior with an exponential growth algorithm (and we could also consider saving the temp grow buffers from one frame to the next) and see how that impacts things.
Looking at how SkPictureRecorder worked, it looks like it would double (starting from an initial buffer of 4 records) on each growth.

The buffer growth was a red herring. Switching to a doubling algorithm decreased reallocs from 1985 to 12, but the time spent still averaged 150ms.

To answer the question directly, you can verify that this is a DisplayList issue simply by running with it enabled and disabled, no bisecting or theorizing required:
--dart-flags=--enable-display-list   (display list is used and a printout on the console confirms this)
--dart-flags=--no-enable-display-list   (display list is disabled and a printout on the console confirms this)
As to why DisplayList is slower here, it is executing the same drawLine calls that were originally captured by the SkPicture and playing them back to Skia. There is likely an optimization inside SkPicture to batch the calls that are not being batched by the Painter. I tried manually batching them and performance improved 5x, but still not to the level of SkPicture. As far as I can tell from reading the code for the SkPictureRecorder it does not actually do any batching of the line calls, but there could be something deeper. I'm still investigating along those lines.

It looks like SkPicture uses nested bounding boxes to quickly pinpoint the part of a picture that is visible when the picture greatly exceeds the clip. DisplayList doesn't have a mechanism like that. The SkCanvas draw calls often have a quick reject, but it has a tiny cost to be executed on every line in that picture.
There are 333,775 lines in the waveform generated if I use the twinkle-twinkle WAV file from the jank report above. Of those, about 0.2% of them (1 out of 500) are rendered on any given frame on my Moto G4.
I'll file a bug/feature_request? against DisplayList to cull by the bounds of the records which will hopefully bridge this gap.

I created a new suggested implementation of the sample code that uses a scrolling ListView.builder to render the waveform section by section to avoid both the performance problems seen here as well as significantly reducing the memory usage to store the very large pictures. Some stats on frame times and the size of the Picture objects generated by the 3 implementations:

The DisplayList uses a lot less memory than SkPicture in all 3 implementations, but it does not perform well for the 2 cases that render the entire waveform in a single picture. Fortunately, it does perform equally on the last implementation that uses a ListView and both the SkPicture and DisplayList mechanisms perform better than any of the other approaches (and use a lot less memory as well).

New example with 3 implementations
import 'dart:math';
import 'dart:typed_data';
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      debugShowCheckedModeBanner: false,
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({
    Key? key,
  }) : super(key: key);

  @override
  State createState() => MyHomePageState();
}

class MyHomePageState extends State<MyHomePage> {
  bool consolidate = false;
  bool useList = false;
  Future<Int16List> waveform = loadGraph();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        actions: <Widget>[
          Row(
            children: <Widget>[
              const Text('list:'),
              Checkbox(value: useList, onChanged: (value) => setState(() {
                useList = value!;
              }),),
            ],
          ),
          Row(
            children: <Widget>[
              const Text('consolidate:'),
              Checkbox(value: consolidate, onChanged: (value) => setState(() {
                consolidate = value!;
              }),),
            ],
          ),
        ],
      ),
      backgroundColor: Colors.transparent,
      body: FutureBuilder(
        future: waveform,
        builder: (context, AsyncSnapshot<Int16List> waveData) {
          return (!waveData.hasData)
              ? const CircularProgressIndicator.adaptive()
              : SizedBox(
            width: MediaQuery.of(context).size.width,
            height: MediaQuery.of(context).size.height,
            child: useList
            ? ListView.builder(
              scrollDirection: Axis.horizontal,
              clipBehavior: Clip.none,
              itemCount: (waveData.data!.length / 200).ceil(),
              addRepaintBoundaries: true,
              itemExtent: 100,
              itemBuilder: (context, index) => CustomPaint(
                painter: PaintSomeTest(
                  waveData: waveData.data!,
                  from: index * 200,
                  to: min((index + 1) * 200, waveData.data!.length - 1),
                )
              ),
            )
            : SingleChildScrollView(
              scrollDirection: Axis.horizontal,
              child: SizedBox(
                width: MediaQuery.of(context).size.width * 20,
                height: MediaQuery.of(context).size.height,
                child: RepaintBoundary(
                  child: CustomPaint(
                    willChange: false,
                    isComplex: true,
                    painter: PaintTest(
                      consolidate: consolidate,
                      waveData: waveData.data!,
                    ),
                  ),
                ),
              ),
            ),
          );
        },
      ),
    );
  }
}

class PaintTest extends CustomPainter {
  final bool consolidate;
  final Int16List waveData;

  const PaintTest({
    required this.consolidate,
    required this.waveData,
  });

  @override
  void paint(Canvas canvas, Size size) {
    final _height = size.height;
    double x = 0;
    double strokeSize = .5;
    const zoomFactor = .5;

    final Paint paintPos = Paint()
      ..color = Colors.pink
      ..strokeWidth = strokeSize
      ..isAntiAlias = false
      ..style = PaintingStyle.stroke;

    final Paint paintNeg = Paint()
      ..color = Colors.pink
      ..strokeWidth = strokeSize
      ..isAntiAlias = false
      ..style = PaintingStyle.stroke;

    final Paint paintZero = Paint()
      ..color = Colors.green
      ..strokeWidth = strokeSize
      ..isAntiAlias = false
      ..style = PaintingStyle.stroke;

    int index = 0;
    Paint? listPaint;
    Float32List offsets = Float32List(consolidate ? waveData.length * 4 : 4);
    int used = 0;
    for (index = 0; index < waveData.length; index++) {
      Paint curPaint;
      Offset p1;
      if (waveData[index].isNegative) {
        curPaint = paintPos;
        p1 = Offset(x, _height * 1 / 2 - waveData[index] / 32768 * (_height / 2));
        // canvas.drawLine(Offset(x, _height * 1 / 2), Offset(x, _height * 1 / 2 - waveData[index] / 32768 * (_height / 2)), paintPos);
        // x += zoomFactor;
      } else if (waveData[index] == 0) {
        curPaint = paintZero;
        p1 = Offset(x, _height * 1 / 2 + 1);
      } else {
        curPaint = (waveData[index] == 0) ? paintZero : paintNeg;
        p1 = Offset(x, _height * 1 / 2 - waveData[index] / 32767 * (_height / 2));
        // (waveData[index] == 0)
        //     ? canvas.drawLine(Offset(x, _height * 1 / 2), Offset(x, _height * 1 / 2 + 1), paintZero)
        //     : canvas.drawLine(Offset(x, _height * 1 / 2), Offset(x, _height * 1 / 2 - waveData[index] / 32767 * (_height / 2)), paintNeg);
        // x += zoomFactor;
      }
      Offset p0 = Offset(x, _height * 1 / 2);
      if (consolidate) {
        if (listPaint != null && listPaint != curPaint) {
          canvas.drawRawPoints(PointMode.lines, offsets.sublist(0, used), listPaint);
          used = 0;
        }
        listPaint = curPaint;
        offsets[used++] = p0.dx;
        offsets[used++] = p0.dy;
        offsets[used++] = p1.dx;
        offsets[used++] = p1.dy;
      } else {
        canvas.drawLine(p0, p1, curPaint);
      }
      x += zoomFactor;
    }
    if (consolidate && used > 0) {
      canvas.drawRawPoints(PointMode.lines, offsets.sublist(0, used), listPaint!);
    }
  }

  @override
  bool shouldRepaint(CustomPainter oldDelegate) {
    return oldDelegate is! PaintTest ||
      oldDelegate.consolidate != consolidate ||
      oldDelegate.waveData != waveData;
  }
}

class PaintSomeTest extends CustomPainter {
  final Int16List waveData;
  final int from;
  final int to;

  const PaintSomeTest({
    required this.waveData,
    int? from,
    int? to,
  }) : from = from ?? 0, to = to?? waveData.length;

  @override
  void paint(Canvas canvas, Size size) {
    final _height = size.height;
    double x = 0;
    double strokeSize = .5;
    const zoomFactor = .5;

    final Paint paintPos = Paint()
      ..color = Colors.pink
      ..strokeWidth = strokeSize
      ..isAntiAlias = false
      ..style = PaintingStyle.stroke;

    final Paint paintNeg = Paint()
      ..color = Colors.pink
      ..strokeWidth = strokeSize
      ..isAntiAlias = false
      ..style = PaintingStyle.stroke;

    final Paint paintZero = Paint()
      ..color = Colors.green
      ..strokeWidth = strokeSize
      ..isAntiAlias = false
      ..style = PaintingStyle.stroke;

    for (int index = from; index <= to; index++) {
      Paint curPaint;
      Offset p1;
      if (waveData[index].isNegative) {
        curPaint = paintPos;
        p1 = Offset(x, _height * 1 / 2 - waveData[index] / 32768 * (_height / 2));
      } else if (waveData[index] == 0) {
        curPaint = paintZero;
        p1 = Offset(x, _height * 1 / 2 + 1);
      } else {
        curPaint = (waveData[index] == 0) ? paintZero : paintNeg;
        p1 = Offset(x, _height * 1 / 2 - waveData[index] / 32767 * (_height / 2));
      }
      Offset p0 = Offset(x, _height * 1 / 2);
      canvas.drawLine(p0, p1, curPaint);
      x += zoomFactor;
    }
  }

  @override
  bool shouldRepaint(CustomPainter oldDelegate) {
    return oldDelegate is! PaintSomeTest ||
        oldDelegate.waveData != waveData ||
        oldDelegate.from != from ||
        oldDelegate.to != to;
  }
}

Future<Int16List> loadGraph() async {
  //*_____________________________________________
  //! LOAD ANY WAVE FILE - THIS IS 16bit 44.1 MONO
  //*_____________________________________________
  Int16List load16bitMonoWave = await rootBundle.load('assets/audio.wav').then((value) => value.buffer.asInt16List());
  //! THIN WAVE FILE TO 1/20
  Int16List waveDataThinned = Int16List((load16bitMonoWave.length * 1 / 20).round());
  int reducedIndex = 0;
  for (int index = 0; index + 20 < load16bitMonoWave.length; index += 20) {
    waveDataThinned[reducedIndex] = load16bitMonoWave[index];
    reducedIndex++;
  }
  return waveDataThinned;
}

@flar This issue has been sitting for a while, do we want to close this or is it still beneficial to keep open?

The underlying issue is now being tracked under https://github.com/flutter/flutter/issues/92740
The specific problem here has a workaround, so I'm going to close this issue.


Fix incorrect references to windows decls in render.zig

I got a compile error for this after playing around and doing 'vk.InstanceWrapper(std.enums.values(vk.InstanceCommand))', where the compiler thusly complained that there is no declaration for HINSTANCE inside std.os.

Thank you!


Upgrade dateformat to address vulnerability in transitive dependency trim-newlines

Issue description
Transitive dependency chain<EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>Vulnerability: https://github.com/advisories/GHSA-7p7h-4mm5-852v
Context
OS version (is it docker or host?), ts-node-dev version
macOS Big Sur 11.4, 1.1.6
Did you try to run with ts-node?
Not applicable
Did you try to run with --files option enabled?
Not applicable
Did you try to run with --debug option enabled?
Not applicable
Do you have a repro example (git repo) with simple steps to reproduce your problem?
Repro:
$ npm install ts-node-dev
...
$ npm audit
# npm audit report

trim-newlines  <3.0.1 || =4.0.0
Severity: high
Regular Expression Denial of Service - https://npmjs.com/advisories/1753
fix available via `npm audit fix`
node_modules/trim-newlines
  meow  3.4.0 - 5.0.0
  Depends on vulnerable versions of trim-newlines
  node_modules/meow

2 high severity vulnerabilities

To address all issues, run:
  npm audit fix

Also, Dependabot is pointing this vulnerability too.

Yes, i see that CVE here too. I tried update the lock json manually and add in packaged the new version, but nothing. It's get replaced, so i think we need @wclr make that update, or better make the change suggested here https://github.com/wclr/ts-node-dev/pull/273#issuecomment-858491800

Fixed (removed dateformat)
Made a release
Can now close this issue

Its Works! Tyvm!

Looks good! Closing.
$ npm install ts-node-dev
$ ...
$ npm audit
found 0 vulnerabilities


message: "Cannot send an empty message" - code: 50006

weird thing suddenly started happening, I am getting the following message when sending an embed message to any webhook:
HTTP Status Code: 400
Response Body: {"message": "Cannot send an empty message", "code": 50006}"
On lib/discord_notifier.rb line #50 on self.send_request(params) reads:
    def self.send_request(params)
      Net::HTTP.post endpoint(params),
                     params.to_json,
                     'Content-Type': 'application/json'
    end

Which looks fine as far as I understood, but there is something happening here that Discrod's API is complaining, so I changed the statement a little bit to get more control over the request and ended up having:
    def self.send_request(params)
      uri = endpoint(params)
      Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
        req = Net::HTTP::Post.new(uri)
        req['Content-Type'] = 'application/json'
        req.body = params.to_json
        http.request(req)
      end
    end

Inspecting the request I found that the second sends out a Connection Header set to close, ["HTTP_CONNECTION","close"], and to be honest I have no idea if that could be the issue or else if the wait flag influences on the api now
Anyways:

further investigation is needed
my fix is forcing SSL, need to handle this in a better manner

I would propose to PR a fix, do I keep the old approach and a new one with a flag or method call to differ each of them?
Does it make any sense?
I'm running on ruby-2.5.3

Hello! Apologies for the delay in response - getting back from a vacation. Will take a look at this tomorrow!

no bother @IanMitchell, take your time and let me know if you need any hand with it

Might as well take this opportunity to switch to GitHub Actions too 👀

[ ] Add Ruby 2.2, 2.3, 2.4, 2.5, and 2.6 unit test runner on commit
[ ] On commit to master, release the gem to ruby gems

Put up a WIP branch, might not have time to really dig into this until after Thanksgiving but I'll let you know what I find out!

@quirinux would you mind posting example code for how you're calling the notifier gem right now?

@sas145alex are you seeing the same error? I'm not seeing it reproduce when I run the following quick test script:
Discord::Notifier.setup do |config|
  config.url = 'WEBOOK'
  config.username = 'Discord Notifier'
end

embed = Discord::Embed.new do
  title "Discord Ruby Notification"
  description "Will it work?"
end

Discord::Notifier.message(embed)

Oh just kidding, one of my Rails applications is being impacted by this too, just not seeing any logging from it... interesting.

I downgraded to Ruby 2.5.3 and I'm seeing the same issue locally now. I upgraded my Rails application to ruby 2.6.5 and the issue was fixed - so short term, I would recommend that route if you can. Will continue to poke at the Ruby 2.5.3 issue though

Can you compare what the HTTP requests look like coming from the different versions of ruby? When i tested a simple http request from 2.5.1 it worked fine so it'd be good to know what the request looks like compared to the two versions. And easy test is to run something like nc -l localhost 8888 and point the endpoint at http://localhost:8888

@gmjosack thanks for the tip! That is super useful. Yeah, definitely shows the problem - for some reason the Content Type is being overridden
2.5.3:
POST /?wait=true HTTP/1.1
Content-Type: application/json
Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept: */*
User-Agent: Ruby
Host: localhost:8888
Content-Length: 152
Content-Type: application/x-www-form-urlencoded

{"url":"http://localhost:8888","username":"Discord Notifier","wait":true,"embeds":[{"title":"Discord Ruby Notification","description":"Will it work?"}]}

2.6.5
POST /?wait=true HTTP/1.1
Content-Type: application/json
Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept: */*
User-Agent: Ruby
Host: localhost:8888
Content-Length: 152

{"url":"http://localhost:8888","username":"Discord Notifier","wait":true,"embeds":[{"title":"Discord Ruby Notification","description":"Will it work?"}]}

Yeah, previously, by accident, the API would parse json even when receiving the form-urlencoded content type. This bug was fixed but had the unfortunate side-effect of breaking clients with invalid requests that previously worked by coincidence. I'm not really sure why ruby is ignoring your header here :X

Figured it out! This needs to be a hash: https://github.com/IanMitchell/discord-notifier/blob/master/lib/discord_notifier.rb#L53
Many thanks for the tip, made this so much easier haha. Working on verifying the fix + getting it out now

Awesome! glad i could help :)

Ok, should be published. Let me know if I messed anything up, been a while since I've done this heheh

sorry for the delay in reply, but ya, I had noticed that app/jaon and form-encoded were been both sent on request header, apologies I should have included that on this issue.
Anyway I just tested the 1.0.3 version and it is working like a charm again, thanks a much.
Just for the sake of the records follow how I normally sent a message out
  def send_notification(message)
    avatar_url = message[:avatar]
    username = message[:username]
    webhook = message[:webhook]
    raise "No webhook found for channel" if webhook.blank?
    embed = Discord::Embed.new do
      title message[:title] unless message[:title].blank?
      color message[:colour] unless message[:colour].blank?
      footer(text: message[:footer]) unless message[:footer].blank?
      message[:fields].each do |f|
        next if f[:value].blank?
        field(
          "name": f[:name],
          "value":f[:value],
      	  "inline": f[:inline]
        )
      end
    end
    @log.debug 'send_notification', embed: embed.data
    Discord::Notifier.message(embed, url: webhook, username: username, avatar_url: avatar_url)
  end

All good! Glad to hear it’s working now 😁. Thanks for the bug report!


Steps for the Whole Project to follow

6 steps:

A method returning a String Object containing Js from a String Object containing Html as parameter.

A method generating a Js file from Html file as parameter.

CLI : A method generating a Js file from Html file as argument

We'll add all the required tests, javadocs , refactor the code as much as possible. In order to better understand the Jsoup library, there are links in the README file.

Publish on Maven Central in order to get our own Maven / Gradle dependency. @elroykanye, you shared some interesting links, we'll look at it on step 5 https://github.com/osscameroon/js-generator/pull/11

Building the API with Spring Boot, we will have 2 main endpoints related to 1. & 2. We will build the frontend with Angular or whatever...

We are at step 4

I just created a project to manage tasks

Hello, sorry for delayed response.
Thanks for this. I will follow :)

Suggest to use "var" or "let" #52

These steps need to be updated but to make it simple, these are the basics.
To know more about the "WHY" of this project: https://github.com/osscameroon/js-generator/issues/91
The user has choice to copy and paste html code or submit  file as input then get a Js code or file as output. It will be also possible to get both Js code or file if the user wants to do so. I mean, if the user choose the Js code as output, it would be possible to get also the file. If the user choose the Js file as output, it would be possible to get also the content.
First, we ask the user if the html input contains only HTML 5 tags or not (there are some custom tags) then we'll raise exception if custom tags are used or not. To be more precise, we'll throw exception if the user informed us that there are only HTML 5 tags but custom tags are also present. On the other hand, we do nothing if the user informed us that there are custom tags.
Secondly, we will ask if the user wants to use LET or VAR.
We will think about how to implement it for each sub project: Maven & Gradle Library, REST APIs, Web & Desktop Apps and Command Line Interface tool.


can NullAway use CollectionUtils.isEmpty as a valid null check?

I got a dereferencing error in this code
if (!CollectionUtils.isEmpty(var)) {
     var.stream()...
} else {
    log.info("var is null or empty")
}

CollectionUtils.isEmpy, StringUtils.isEmpty, StringUtils.isBlank  are used everythere in our code, and while I think noone shoud ever use null collections, in real world code lots of time people use null Strings and Collections. In this particular case using var != null will get almost the same result, but you get the idea. Can NullAway consider some specific methods as valid null checks?
Thanks for this wonderfull tool!

@pablogrisafi1975 what library does CollectionUtils and StringUtils come from?  We already some relevant StringUtils models here:
https://github.com/uber/NullAway/blob/d7e96e471df5c3420301ba782a3ac59b3ae1430a/nullaway/src/main/java/com/uber/nullaway/handlers/LibraryModelsHandler.java#L465-L475
Maybe we just need to add CollectionUtils?

You are probably right. I thought I was using apache commons but no.

org.springframework.util.CollectionUtils.isEmpty
spark.utils.StringUtils.isBlank
spark.utils.StringUtils.isNotBlank
spark.utils.StringUtils.isEmpty
spark.utils.StringUtils.isNotEmpty
spark.utils.StringUtils.hasLength

Maybe  org.apache.commons.lang3.StringUtils.isNull/Empty/Blank should be in NULL_IMPLIES_FALSE_PARAMETERS?
Thanks again

That sounds like a good change to me. If you want to submit a PR for this we'd be happy to take a look!

ok, give me a couple of days....

took more than I expected, gradle is not my thing, but
https://github.com/uber/NullAway/pull/436


Cursor is not placed in a file

#267
Previously I created enhancement issue.
Everything works fine except only 2 things:
1.After pressing enter button, focus should leave solution explorer and place cursor in a file, but it doesn't happen.
2. After pressing shortcut Ctrl + Alt + L for focus and then it should leave focus.,
I will attach some examples in gif how it should work and how it works for clear understanding where I press shortcut for focus and leave focus Ctrl + Alt + L and pressing Enter button for going to a file.

Here the example how it works.

Here the example how I suppose should work

from v0.8.5 you can open a file using "ctrl+enter" and them it will focus the document


rust related errors building installer

Using the steps in https://github.com/tpwrules/nixos-apple-silicon/blob/main/docs/uefi-standalone.md#software-preparation I get no errors building m1n1 or uboot-asahi but when I get to installer-bootstrap I see many errors like the following
linux-aarch64-unknown-linux-gnu> /nix/store/51sszqz1d9kpx480scb1vllc00kxlx79-bash-5.2-p15/bin/bash: line 1: rustc: command not found
linux-aarch64-unknown-linux-gnu> expr: syntax error: unexpected argument '1.69.0'

after this the build "succeeds" and an .iso is produced but I'm suspicious about its correctness. Are these errors new from upstream changes? Existing and expected?
Thank you!

I assume this is just the kernel checking for Rust support and giving errors because it is indeed not available in the installer. There's no reason the .iso you built shouldn't work if it was indeed produced.
You are also free to download the .iso from GitHub to save time. It should be (but isn't always sadly) bit-identical if you build from the same tag on a local x86_64-linux machine.


Support unmyelinated axons in morphometrics

Describe the problem
I received an email from our Sick Kids collaborators and they are currently collecting morphometrics for unmyelinated axons using ADS. The only problem is that she has to manually combine the myelinated/unmyelinated axon masks + update the axonmyelin mask. She has a Fiji macro for this but it is still impractical because she has to open each image one by one.
Proposed solution
The morphometrics script could simply have an option to incorporate the unmyelinated axon mask before the call to compute_morphometrics().
Closely related to #698

It is possible to compute the morphometrics with only an axon mask by calling get_axon_morphometrics and setting the im_myelin to None.

Would it be sufficient to just add this option to the batch morphometrics? And we would just not pass a myelin mask to the function that computes the morphometrics.

It is possible to compute the morphometrics with only an axon mask by calling get_axon_morphometrics and setting the im_myelin to None.

Ideally I think it would be better to call the morphometrics script only once and it would do it for both myelinated and unmyelinated axons but maybe there is a better way.

Would it be sufficient to just add this option to the batch morphometrics? And we would just not pass a myelin mask to the function that computes the morphometrics.

@Stoyan-I-A Why would we not want it for the normal (non-batched) morphometrics tho?

It is possible to compute the morphometrics with only an axon mask by calling get_axon_morphometrics and setting the im_myelin to None.

@Stoyan-I-A actually yes it might be nice to have this ALSO (in case someone wants to apply morphometrics only to an unmyelinated axon mask). Maybe we could automatically detect if there is no myelin mask and in this case proceed like you said.

Why would we not want it for the normal (non-batched) morphometrics tho?

We can add it to both.
I'm just trying to understand what the user wants exactly.

unmyelinated axon mask

Is this going to be like a third class (4th if you include the background)? Does the user data contain masks which are currently labeled with all these masks: background, myelin, myelinated axons, unmyelinated axons?

@Stoyan-I-A at the moment yes because the unmyelinated axon prediction is obtained by a 2nd model.

I ended up doing something slightly different. I implemented a draft in #796 and it is ready to test.
To simplify things, the -u flag toggles unmyelinated mode. In this mode, axon and myelin masks are ignored and the script looks for files suffixed _seg-uaxon instead. I used the fact that the get_axon_morphometrics(...) function works without a myelin mask.


fix crash on x86-32

When use atocim.AddInt64, it is the caller's responsibility to arrange for 64-bit alignment of 64-bit words accessed atomically.
https://golang.org/pkg/sync/atomic/#pkg-note-BUG
But, FileJournalChunk.Size isn't on 64-bit alignment.
(The first word in a struct, it is on 64-bit aligned always.
byte from first word in a struct : variable name

 0: head      FileJournalChunkDequeueHead
 8: container *FileJournalChunkDequeue
12: Path      string
20: Type      JournalFileType
24: TSuffix   string
32: Timestamp int64
40: UniqueId  []byte
52: Size      int64

So, when execute on x86-32 environment(for example, using go windows/386),
this software will crash on file_journal.go#L562
I move  this variable to first in struct.
Fortunately, `ForwardInput.entries' is on 64bit alignment which have same problem.
But, if we add some variable like uint32 to before the 'entries', this software will crash.
So, I move it to first too.

LGTM

This change fix crash. However test are failing
--- FAIL: Test_Journal_Scanning_Ok (0.05s)
        file_journal_test.go:328: journal.chunks.count=1
        file_journal_test.go:329: journal.chunks.first.Size=8
        file_journal_test.go:341: journal.chunks.count=1
        file_journal_test.go:328: journal.chunks.count=2
        file_journal_test.go:329: journal.chunks.first.Size=8
        file_journal_test.go:341: journal.chunks.count=1
        file_journal_test.go:328: journal.chunks.count=3
        file_journal_test.go:329: journal.chunks.first.Size=8
        file_journal_test.go:341: journal.chunks.count=1
--- FAIL: Test_Journal_FlushListener (0.02s)
        file_journal_test.go:438: C:\Users\mattn\AppData\Local\Temp\journal631001009/test
        file_journal_test.go:61: flush 1
        file_journal_test.go:61: flush 2
        file_journal_test.go:61: flush 3
        file_journal_test.go:61: flush 4
        file_journal_test.go:471: journal.chunks.count=5
        file_journal_test.go:472: journal.chunks.first.Size=5
        file_journal_test.go:473: len(listener.chunks)=4
        file_journal_test.go:61: flush 5
        file_journal_test.go:507: journal.chunks.count=5
        file_journal_test.go:508: journal.chunks.first.Size=0
FAIL
exit status 1
FAIL    github.com/fluent/fluentd-forwarder     1.145s

But this is a problem of code or test, i think.


Node version

You need NPM v3 and NODE v5.

Maybe replace the and by or, no :)?

 My bad. Closing this...

haha ;-)


CoinMP: fix build with clang 16

Description of changes
Closes #282606.
Closes #282609.
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 282673 run on aarch64-darwin 1

4 packages marked as broken and skipped:

python311Packages.paperwork-backend
python311Packages.paperwork-backend.dist
python311Packages.paperwork-shell
python311Packages.paperwork-shell.dist

1 package built:

CoinMP


Drop Artery UDP based on Aeron

Artery UDP based on Aeron (hard to deploy, little used, one extra dimension in hard to stabilize remoting (and everything above like cluster, persistence etc) tests)
Originally posted by @jrudolph in https://github.com/mdedetrich/akka-apache-project/discussions/8#discussioncomment-3904101
The design blog: https://akka.io/blog/article/2016/12/02/streams-in-artery & https://akka.io/blog/article/2016/12/05/aeron-in-artery

This may or may not be contentious but should be discussed on the pekko dev list before proceeding.

Could you please reshare the original discussion thread? The link is invalid today.

Hi, he origin comments said it not easy to tune ,but on reddit, We cam see some people are using it.


Modeling Exercise visibile to student before release

Describe the bug

Modeling Exercise is visible to students before they are released (release date passed)
To Reproduce

Create an Modeling Exercise with release Date 15 mins in future
Change account to student account and navigate to course overview
Exercise is visible and the student can start the exercise (see screenshot)

Expected behavior

Exercise is not visible for student before release date has passed
Screenshots

Environment
https://artemistest.ase.in.tum.de/
When fixed please update https://ls1intum.testquality.com/project/10165/plan/17385/test/239506

Are you 100% sure that you tried it out as a student? In the second image there is a "Not released" tag, which is only shown to tutors / instructors

Yeah you are right, I had a wrong mapping of course tutors to the student group


How to add analyticsLabel to the message?

I want to use an analytics label for the message. Labeling messages is very useful for custom analysis, allowing you to filter delivery statistics by labels or sets of labels.
Firebase has a feature to set this.
https://firebase.google.com/docs/cloud-messaging/understand-delivery#adding-analytics-labels-to-messages
How to set this in this package?

Any news about this topic?

Any news about this topic?

+1

@brozot Any update here?


Question on designing hooks

I have a particular use case where a collection has different update operations on it. Each update operation should trigger a different hook. Eg. Liking a document, editing the timestamp, raising a flag, adding collaborators, etc.
At the moment, in my hooks I have to validate fields / modifiers to determine which operation is running. This becomes very hard to maintain in the long run and I am wondering whether there is a better way to design my hooks.
Or should I just fall back to writing my own meteor method instead?

Looking back at this, as cool as this would be, it'd be quite the job to pull this off and not sure it'd be worth bringing this much change to collection-hooks at this point. I'm not even sure if this API would work, considering my previous note on how it also needs to support synchronous calls.


BaseServiceException should not extend RuntimeException

Maybe this ship has already sailed, but if it's still possible BaseServiceException should not extend RuntimeException. As is, I can't confidently make any calls to a gcloud-java method without wrapping them in a try-catch block, and should I accidentally miss one it could cause my whole application to crash. I would suggest it extend IOException instead, but just extending Exception would be great.

I can't confidently make any calls to a gcloud-java method without wrapping them in a try-catch block

How would this be different if we extended IOException? You would still have to catch exceptions...

If this is about checked vs unchecked exceptions my (strong) preference is to stick to unchecked. As a reference also AWS uses unchecked exceptions: AmazonClientException extends RuntimeException and AmazonServiceException extends AmazonClientException.

My preference is also to stay with unchecked exceptions.  I do think we should make a pass through the library make sure every method call that can throw an exception has the exception documented with an "@throws" in the javadoc.

+1 for unchecked exceptions.
This was discussed early on by various people which all favored or agreed to it.
This is also the path that gRPC (grpc-java) is taking.

Well if that's the consensus fair enough; personally it's a much more error-prone experience.


Possible to hide specific files in Media Library?

Is it possible to hide or filter specific files or filter out specific file types from showing up in NetlifyCMS' Media Library?
For example: if I store images to a single /content folder in Hugo to be able to use it's built in image processing, NetlifyCMS' Media Library will show the required _index.md file in this directory, giving the end user the option to delete this file. Can I set NetlifyCMS to not show this file in its Media Library?

Please disregard issue. This file seems to have magically disappeared from the Media Library on the site I am working on. Not sure why it was showing up before.


Teams Connector - Hardcoded URL issue

Notify version:
1.0.2
Current Behavior:
While not fully documented I am looking to use the Teams provider. I read the code and saw a couple of parameters are required including the teams webhook url and message format.
The webhook I have been generated is for a corporate enviroment and is formatted as: Company.webhook.office.com/Webhook_details...
However, the MS teams connection code is currently configured with a hardcoded URL to be: https://outlook.office.com/webhook/. This is causing an issue as companies with corporate MS Teams that are unable to use this plugin and are having to resort to a custom connector configuration. This code is found under "notify/pkg/providers/teams/teams.go"
If anyone else is reading this and is looking for the custom connector code for teams as a work around please see below and add into the provider-config.yaml:
custom:
  - id: webhook
    custom_webhook_url: "YOUR TEAMS WEBHOOK URL"
    custom_method: POST
    custom_format: '{"text": "{{data}}"}'
    custom_headers:
      Content-Type: application/json

Expected Behavior:
I expected the MS Teams connector to parse the Full webhook url and send the MS Teams message. This can be parsed through the existing "teams_webhook_url" parameter.
Steps To Reproduce:
Please see the teams.go file and see line 41.
Anything else:

Hello! I once had the same issue but I managed to figure out what was going on and made a fix that works for me. I never made a PR because I was quite busy at the time and forgot about it but the general gist of it is as follows from memory:

For sending info to teams web hooks Notify utilises the shoutrrr library as we can see in the go.mod
The version in use with notify is v0.4.5-0.20220522113502-c91dc3cf1279 whereas the library has already moved onto v0.6+ as we can see from their releases
From the shoutrrr v0.5 docs on sending messages to Teams web hooks there is a warning on how the format for Teams web hooks have changed:

That is basically the source of the problem, so I managed to resolve it for myself by changing the version of shoutrrr in use to be v0.5+ and then changing the Send function in pkg/providers/teams/teams.go to be the following:
func (p *Provider) Send(message, CliFormat string) error {
	var TeamsErr error
	for _, pr := range p.Teams {
		msg := utils.FormatMessage(message, utils.SelectFormat(CliFormat, pr.TeamsFormat))

		teamsTokens := strings.TrimPrefix(pr.TeamsWebHookURL, "https://<domain>.webhook.office.com/webhookb2/")
		teamsTokens = strings.ReplaceAll(teamsTokens, "IncomingWebhook/", "")
		url := fmt.Sprintf("teams://%s?host=<domain>.webhook.office.com", teamsTokens)
		err := shoutrrr.Send(url, msg)
		if err != nil {
			err = errors.Wrap(err, fmt.Sprintf("failed to send teams notification for id: %s ", pr.ID))
			TeamsErr = multierr.Append(TeamsErr, err)
			continue
		}
		gologger.Verbose().Msgf("teams notification sent for id: %s", pr.ID)
	}
	return TeamsErr
}

You will need to replace  with the domain that your Corporate MS Teams uses for it to work.
My provider-config.yaml looked like the following:
teams:
  - id: '<id>'
    teams_webhook_url: 'https://<domain>.webhook.office.com/webhookb2/....'
    teams_format: '{{data}}'

I don't actually know Go so looking back on this I just didn't spend the time figuring out how to make it generic whilst I was busy. Also I do not know if the old Teams web hooks are still supported in some places 🤷♂
Hopefully this is helpful in getting this resolved.

@LegendOfLynkle @PR3R00T this is now fixed in dev with https://github.com/projectdiscovery/notify/pull/175
Example: https://github.com/projectdiscovery/notify/pull/175#pullrequestreview-1132734768


Clippy Support

it should work the same way, the issue parser already works with the json spec

Right on! We should definitely add Clippy.
I'm thinking #6 will be the last feature I add before shipping Version 1. I want to get the current feature set out there and make sure there aren't major bugs before adding additional features. This will make a nice addition for v2.

yes i agree! we definitely need some testing before publishing it. guess i’ll just use it as my daily driver

Would you accept a PR adding this feature (with a bit more flexibility than described here, which is similar to how the Rust Analyzer VS Code extension does it)?

It sounds to me like a user preference to select either "check" or "clippy" as the command to run to surface issues.

This was basically what I was thinking, except Rust Analyzer's VS Code extension has this configurable by a string as opposed to a preset list of options (hence the point I made about flexibility).

Preference added in extension version 2.0, which requires Nova 9 (released today). It can be adjusted per project.
I kept the preference as a radio selection instead of an open field. I believe this makes options more discoverable for newer users of Rust. If there are other commands I should add for save checks, please open a new issue!


Error every time debugger is running during an http.request() call.

Since the update to chrome 44 I get the following error whenever running code with a http.request() call.
TypeError: Cannot read property '_host' of null
    at ClientRequest.http.ClientRequest.onSocket (eval at WRAPPED_BY_NODE_INSPECTOR (/Users/username/.nvm/v0.10.39/lib/node_modules/node-inspector/node_modules/v8-debug/v8-debug.js:95:15), <anonymous>:381:28)
    at new ClientRequest (http.js:1433:10)
    at Object.exports.request (https.js:123:10)
...

I suspect it has something to do with the WRAPPED_BY_NODE_INSPECTOR in chrome 44 since when I run my app without the debugger (I.e. node app.js), there is no error. I have confirmed this issue in multiple projects which were all working with node-inspector last week before chrome updated.
node version: v0.10.39
node-inspector: v0.11.1
Mac OS: 10.10.4
Chrome: 44.0.2403.89 (64-bit)

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/24843666-error-every-time-debugger-is-running-during-an-http-request-call?utm_campaign=plugin&utm_content=tracker%2F195817&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F195817&utm_medium=issues&utm_source=github).

Fixed in 0.11.2
Please confirm this and close the issue if all works fine here.

This appears to be working again in 0.11.2 thanks.


Create a events form page for admin

Create an events form page for the admin to add an event.
Assign the issue to me. I will make it similar to hackathon form page.

assigned


ci: disable lint on release

In order to pass through the first release ...

:tada: This PR is included in version 0.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Utility Request: background-repeat

I believe the background-repeat utility is missing. Any specific reason why it is not included?

No specific reason, just haven't gotten around to discussing it yet. What values do you think are smart to include by default? I'm thinking at least bg-repeat and bg-no-repeat but not sure if the others are commonly used enough to justify including by default.

I would like at least bg-repeat-x and bg-repeat-y. I personally don't care about the space and round values and don't think they're commonly used.

Well, for starters it is a fail safe when used with background-position: center.
Also in practise, a quick way to always make your content responsive for all screen sizes were background: no-repeat center / cover, which translates to:
background-repeat: no-repeat;
background-position: center;
background-size: cover; // or contain

The implicit value is repeat so bg-repeat its not so useful. In a situation when you dynamically want to change a background (bg-no-repeat) into a repeat you just remove that class.  I agree with @benface for the bg-repeat-x and bg-repeat-y

The implicit value is repeat so bg-repeat its not so useful.

Actually this means it's mandatory to include if we have any background-repeat utilities, otherwise there is no way to get back to a default state at larger screen sizes.
So I think the four we should add are:
bg-repeat
bg-no-repeat
bg-repeat-x
bg-repeat-y

Happy to accept a PR for getting this started, otherwise I can start something if I have time over the next few days.

@pxwee5 as you initiated it do u have time in making that PR?

@sorinr @pxwee5 PR is on it's way 🙂😉

@sorinr @pxwee5 PR is merged with the 0.3 branch now 🙂

Closing since this is now in 0.3:
https://tailwindcss.com/docs/background-repeat


Update README.md

Added the required permissions in the geolocation plugin documentation so that the code example can run.

Thank you


Plot in existing figure/axis

I noticed that viewer.draw(nrn) creates a new figure and lot the neuron on that axis. As far as I can find in the docs there is no way to tell the method which axis to plot on, such asviewer.draw(nrn, ax=ax)
This is quite crucial for generating neuron galleries, which are often seen in publications and supplementary data.
Or am I missing something?

Hi @INF-Rene !
Have a look at https://neurom.readthedocs.io/en/latest/_neurom_build/neurom.view.view.html#module-neurom.view.view
I think plot_neuron and plot_neuron3d are what you need.

@mgeplf Should we pass this part of the doc in the public documentation ?

Hey, @wizmer, thanks for the help!
Actually I already tried that function, but all it does for me is just change the title of the plot to the filename, while not plotting anything. viewer.draw(nrn) works fine on the same nrn object

Hum, that should work. You have to pass your own axes as the first argument and the neuron as the 2nd one.
Here is a small example:
import matplotlib.pyplot as plt
from neurom.view.view import plot_neuron
plt.figure()
ax = plt.gca()
plot_neuron(ax, neuron)

What exactly did you try ?

Sorry, just found out that it was just a scaling issue. Apparantly the plot_neuron method does not automatically set the scaling of the axes correctly. A simple ax.autoscale() fixed it.

Cool. Yes, plot_neuron does not mutate the axes, by design.
Closing the ticket.


Close icons color

Hey, awesome that someone finally ported gruvbox to Intellij theme, thank you. Hope you win some in Intellij theme contest :)
Could you change close icons color to be a bit brighter? They are nearly invisible currently:

Thank you for the report!
I will try to fix it today :)

I have uploaded the new version to the jetbrains repository.
It usually takes 2 business days for them to process the update.


empty nerf

Hello, I am getting this error:
File "/home/me/anaconda3/envs/ngp_pl/lib/python3.9/site-packages/nerfvis/scene.py", line 976, in add_nerf
assert grid.shape[0] > 0, "This NeRF is completely empty! Make sure you set the bounds reasonably"
AssertionError: This NeRF is completely empty! Make sure you set the bounds reasonably
im using a ngp_pl trained nerf  instead of nerf_pl. I believe the structure is the same unless i'm way off. Could you please shed some light onto this issue?
Thanks in advance.
P.S: I can render the silica nerf from nerf_pl with no issues.

Sorry, forgot the difference between checkpoints. You can go ahead and close this issue.


Bug (CLI): Inconsistent UI

Is this a bug report or feature request? (choose one): Bug

Armada user should experience same user input experience across all functionality.
Currently test behaves differently than the other functions, shown below.
Expected Behavior:
armada validate examples/simple.yaml
armada test file examples/simple.yaml
armada test release armada/simple
What Actually Happened:
armada validate examples/simple.yaml
armada test --file=examples/simple.yaml
armada test --release=armada/simple
How to Reproduce the Issue (as minimally as possible):
Any Additional Comments:

I have to agree on the UX for these files should be updated to follow a nice format other than --[option].
I would like to make the cli group grow in the command options to improve it.
Example:
armada test --file=examples/simple.yaml  to armada test file examples/simple.yaml


Updated images

I've optimized all images with ImageOptim and save about 6mb of image size.
And size of several images still more than 1 mb, because of high resolution.
Some guy from Africa will spend literally hours to open this page.

thanks!


Allow pipeline update

First, I'd like to thank you for your much appreciated work.
I've successfully started by first real pipeline on Gaia.
I'm developping in C++, and using latest docker image.
Currently, while developping my pipeline, I first entered the repository for the pipeline in the Create Pipeline page, and it failed because of dumb C++ mistake.
Since my own machine does not have gRPC (and I didn't want to pollute it with all the dependencies), it was very painful.
So I finally docker exec and clone the repository in the docker's image so at least, I was able to build it without error. So far so good, it only took one more commit to get to this building correctly point.
Then... well it was a PITA.
Once I had a way to build a successful pipeline, Gaia accepted it and would not pull from the repository anymore. So I had to delete the pipeline, and recreate it for every change.
In my pipeline I used the vault, so I could not stub the pipeline with define, it would not work.
Can you either provide a button to force Gaia to reload the pipeline from the initial repository ?
Or better, could you document or provide a way to trigger a pipeline from the docker image/manually, so we don't have to commit tens of dumb changes to get the complete pipeline to work ?

Hi!
First of all, thank you for using Gaia! Much appreciated. :)
Second, you can turn on polling in the settings menu. This will periodically make pulls and rebuild pipelines automatically.
Now, there is no reason to not add a force pull or something like that to a pipeline, so I think that's still a good idea, I'm just saying what you can do right now.
Another option. albeit I realise that that is not really a nice dev flow you can rebuild your pipeline and copy over the binary. But if I understand correctly, that's not what you want.
So your best bet for now is turning on the poller which polls ever minute.
Meanwhile I'll look into the force rebuild button ;)

Oh I forgot to add that you can also setup a webhook for git, which will immediately rebuild your pipeline when there is a commit.

Oh I forgot to add that you can also setup a webhook for git, which will immediately rebuild your pipeline when there is a commit.

How do you do that ? I'm not using github here, but Gitea.

Another option. albeit I realise that that is not really a nice dev flow you can rebuild your pipeline and copy over the binary.

That's a very good idea indeed. I want to prevent all the useless "fix one line" commit until I bump on the next one. This would help a lot. Thanks!

Oh I forgot to add that you can also setup a webhook for git, which will immediately rebuild your pipeline when there is a commit.

How do you do that ? I'm not using github here, but Gitea.

Oh yeah, we don't support Gitea hooks yet. Sorry mate. :/ But it shouldn't be too hard to add one. :)

@X-Ryl669 hi.
This update in the next release will contain a pull button which updates the pipeline's code.
https://github.com/gaia-pipeline/gaia/pull/265

Done, please reopen if still an issue.


Screenshot Issue

I am adding screenshots based on the WiKi,
Filename:
1.png
Attachment Name:
1.png
Added it into the proof section of the default template:
[!! 1.png !!]
Will not show up in the word report when generated.  Any ideas?

I now have managed to get the screenshot to appear.  Issue is I can only seem to add one screenshot, and any text I put before or after the screenshot will not appear.

@overflowsecurity, sorry about that. I should add to the Wiki that the image insertion is buggy. Considered removing it because imo it is more effort than it's worth. That is, I find inserting images into my reports one of the shortest parts of the report writing process and the added benefit in doing it from Serpico is limited anyways as the image still has to be resized elsewhere.
As to troubleshooting, what version of Office are you using? Image insertion is untested on 2016. Common issues that cause the text not to show up would be the formatting surrounding the image (i.e. edit the finding in Serpico and remove text surrounding the image to test) or the template itself breaking the paragraph elements.

@overflowsecurity are you using a default template or a custom template?

Please help me. The exported word document is not showing the screenshots.

@rameshg - Are you using a default template or custom template?


ordereddict installation

Originally reported by: Anonymous

ordereddict is a requirement/installs for newer versions of Python. It looks like it is only being used in one place. Since most major packages are dropping Python 2.6 <, would you be ok with a pull request to deprecate this?

Bitbucket: https://bitbucket.org/antocuni/pdb/issue/56

Python 2.6 has been dropped in https://github.com/antocuni/pdb/commit/c7c51504e2e59a7abce3fbbee19bfdb6bb9727c7#diff-354f30a63fb0907d4ad57269548329e3. Can this issue be closed?

yes, good idea. I removed all the leftovers of 2.6 support in 928b5b3