Update NodeJS version on CI/README files

Updates the selected NodeJS version of the project on both ci.yml and README.md files.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Files with Coverage Reduction
New Missed Lines
%

src/routes/transactions/entities/tests/human-description.builder.ts
4
60.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.03%

Covered Lines:
5028

Relevant Lines:
5387

💛  - Coveralls


Removing references to Algorand Studio / Algorand VS Code extension - indicate they are out-of-date

The current state
Pages like https://developer.algorand.org/docs/sdks/java/ recommend the use of Algorand Studio / Algorand VS Code extension.
Unfortunately both these tools have not been updated for a very long time.
In particular:

They don't support fast catchup and instead use a very old method of fast syncing (downloading the data folder in a compressed way). Not only is this method more dangerous from a security point of view (what happens if the endpoint gets corrupted) but also the endpoint used only provide a data folder from before https://testnet.algoexplorer.io/block/12321367, that is almost a year ago. This means catchup takes a huge amount of time.
They don't support even TEAL v2.

The proposed state
Remove all references to Algorand Studio / Algorand VS Code and promote AlgoDEA that is up to date.

These should be removed from those pages


Status does not update in battle

Current status does not update while in battle. HP/MP/Status remain as they were before battle.
After battle the update is applied and status continues to track while on field.

Battle memory addresses differ from field addresses for this data.  This has been corrected in v0.4-alpha


IOU Preview does not take the entire width of the page when the description text is of multiple lines

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open App and Go to Any chat.
Press + from Composer > Press Request money > Enter amount > Add a long description (adding test description in thread) > Press Request
Press on the IOU thread
Check IOU Preview

Expected Result:
IOU Preview should be taken the entire width of the page
Actual Result:
IOU preview description text takes 50% of the width of the page
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.32-2
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

https://github.com/Expensify/App/assets/43996225/c07d114d-6526-4858-9fed-f716657c1519

Expensify/Expensify Issue URL:
Issue reported by: @jayeshmangwani
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1687269264188689
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
IOU Preview does not take the entire width of the page when the description text is of multiple lines
What is the root cause of that problem?
We have intentionally added the maxWidth: 375 for iouPreviewBox
https://github.com/Expensify/App/blob/820fa93ad1e799c12d8b639b98018b5350ea17af/src/styles/styles.js#L2532-L2538
What changes do you think we should make in order to solve the problem?
We need to remove the maxWidth style from iouPreviewBox and requestPreviewBox
What alternative solutions did you explore? (Optional)
none

I reported this bug, but after looking code, I think it was intentionally designed like this,
@shawnborton  can you please confirm that we want to change the width of the IOUPreview when the description is multiline or the current UI is as intended

Yeah, this is intentional - going to close.


Infinite scrolling without button

how to implement this?
I think it should be onEndReached: function () {}

check the latest pull requests, i've done a lot to make it work. if u need it now, fork the repo, and paste my   latest pull request.

tnx

Why the pull request has not been merged yet regarding infinite scrolling?


Add Buzzer volume control feature in HW

Connect buzzer to +5V via transistor and add volume ctrl potentiometer


High memory usage

Hey @homov, firstly thanks for putting together this Avalonia wrapper 👍🏼 👍🏼
I do have a question - when I maximise the window, the memory usage grows without bound. Any ideas why?
e.g. 10GB after 30 seconds, 20GB after ~1 minute:

It grows very quickly!

Hello!
I was unable to replicate your result. When I run I don't see this problem.
Memory consumption when playing in full Window

Ah I figured out how to reproduce. It only happens when I maximise on my big monitor.
You can add Height="1440" Width="2560" to the control, it also triggers the problem this way.
<TabItem Header="OpenGL">
	<Viewbox>
		<local:OpenGlVideoView MpvContext="{Binding OpenGLMpvContext}" Height="1440" Width="2560" />
	</Viewbox>
</TabItem>
<TabItem Header="Software">
	<Viewbox>
		<local:SoftwareVideoView MpvContext="{Binding SoftwareMpvContext}" Height="1440" Width="2560"/>
	</Viewbox>
</TabItem>

Yes you are right. When using opengl, I see the same effect. This effect is not present in software rendering. So far I have no idea why this is happening.

I also tried on Linux. Works without this problem.
Most likely on Windows you need to use native rendering, and on other platforms opengl rendering.
I can assume that this is directly related to libmpv opengl rendering on Windows.

Apparently, the problem is solved in the latest beta versions of Avalonia. Confirm if you can.

Thanks @homov just tested, looks fixed to me 👍🏼


Switch from KDE/SDDM to Hyprland

Closes #34 & #69

This will not be merged. I don't really think that hyprland is the best choice. I'll change a lot again and use sway instead!


[FEATURE] Switch from "rimraf" to native "fs.rm"

coverage: 94.907% (+0.002%) from 94.905%
when pulling f03dd2825e265498e1a56a09214228f51680a93a on use-native-fs-rm-recursive-force
into 2124643f7c0f98ce12edb5b3dbbcc7e93f2fc033 on main.

As rimraf still uses its own implementation on Windows, I want to do some manual testing before merging this. Our unit tests don't cover this part well as many times the FS APIs are stubbed.

I've tested this on Windows via ui5 build --all --clean-dest and ui5 build jsdoc --all --clean-dest and didn't see any issues. So I'm eager to merge this.
Also see https://github.com/SAP/ui5-project/pull/780

I forgot to adjust the commit message via squash merge. The merged commit on main has been adjusted as 0adf4da0e747f1fb46cf0bf0da7b3e0af8e9bcec.


Package version conflict

I am using conda with python=3.8, and I get a conflict like below.
The conflict is caused by:
    The user requested numpy==1.23.5
    bottleneck 1.3.5 depends on numpy
    mkl-fft 1.3.1 depends on numpy<1.23.0 and >=1.22.3

Any idea??

Thanks for pointing this out. The current version works with python>=3.10. I'll work on a revision to requirements.txt that works with older versions.
In the meantime, if you change line 12 in requirements.txt to:
numpy==1.22.4

you should be able to install everything for python=3.8

Version has been updated in requirements and instructions for installation added to the README.


Allow installing federation in cluster scope

We are planning on using this operator to deploy Federation along with Hive in production. This use case requires federation controllers to run in cluster scope instead of namespace scope.

@pmorie

I think this is definitely reasonable, we have talked about having different CSVs for ns- and cluster- scope deployments, but I'm not sure we know the right patterns here yet.


Server handshake implementation in Rust

Implements the server-side of the Postgres handshake in Rust. This isn't currently hooked up, but we test it against the client-side handshake for correctness.
As client-side data is possibly malformed or malicious, we add a new validation layer in the protocol which automatically bails if any messages cannot be decoded as expected.  There's a new fuzz tester that attempts to exercise each message type with various mutations: deletions, randomization, etc.
We also add a new PgError for strongly-typed Postgres error codes.
SSL implementation on the server isn't tested currently. This will come in a future revision.

I skimmed through and this looks pretty well-done. We're reusing the same protocol/message framework for EdgeDB binary protocol too, right?

We will be, in a future PR. :)


Allow user to specify RBAC on or off when installing aci connector

Is your feature request related to a problem? Please describe.
The az aks install-connector command doesn't allow the user to toggle if the cluster has RBAC or not. This means it uses the default value of the virtual-kubelet helm chart: rbac is disabled.
This poses a problem for new AKS clusters that have RBAC. When the az aks install-connector command is used, they end up with virtual-kubelet in a broken state because the needed RBAC related resources are not created.
Describe the solution you'd like
The install-connector command should have an additional flag to allow the user to enable or disable rbac for the vk install.
Describe alternatives you've considered
If we could determine if the cluster had RBAC, we could default this selection.
Additional context

Thanks to @mboersma for the tip:
We should be able to obtain the cluster info to determine if RBAC is enabled, no flag should be needed!


Getting SyntaxError SyntaxError: Unexpected token < in JSON at position 0

I'm using this project code in my django project to upload multiple images using the basic plus UI version. There's one change though -- in my templates, I'm using the latest version for all JS files (jquery, jquery-ui, javascript-templates, jquery-fileupload, etc.).
When I try to add files and start the upload by clicking on 'Start upload', I get the following error for each of the newly added image files (I added a console.log() to see what's causing the error):
SyntaxError: Unexpected token < in JSON at position 0
    at parse (<anonymous>)
    at ajaxConvert (jquery.js:8787)
    at done (jquery.js:9255)
    at XMLHttpRequest.<anonymous> (jquery.js:9548)

If it helps, I also included a console.trace() to see what is calling the error function. Here's the output.
People seemed to have had this issue before, as is evident from these 2 posts (post 1 and 2). However, none of the solutions worked for me.
How do I resolve this?

Without looking too much into it myself, I would guess you get some kind of error from the server side, represented as html, giving you a < which is not json. Have a look at the server response in your browser developer (network) tool (as suggested in 2).

I tried debugging as suggested in 2, but after a fair amount of effort, I've no idea what's causing it.
In the network tab, I see a request with the status code (302 found). Everything else seems normal with a status code of 200. Looking at the request's header, this is a request.POST method and the content is 'text/html'. I'm unable to see a preview or the response of this request in the browser dev tools (I get a 'Failed to load response data' error).
If I could find out the error that's coming from the server side, my problem would be solved.

The images get uploaded successfully -- I'm able to see the uploaded ones on the admin site. There doesn't seem to be any error from the server side as well. The only abnormality, if any, would be the 302 status code in the network panel of the browser dev tools.
Some say this isn't an abnormality, and it is a standard practice to receive a 302 after a successful POST request (see the comments on this post.) I've checked your code -- it returns a 200 status code on a successful POST request.
Is there some way to find out what input the JSON parser is receiving? The output from console.trace() is too long, and I don't know where to start.

I found what went wrong. While overriding the form_valid method, I called the original implementation of form_valid from CreateView class. So I was getting a HTML response, in addition to JSON response. I removed the super() statement, and things just work fine.


Request: additional operators

Wish to have the following operators/symbols:

a binary operator for exponential -- e.g. a ^ b.
Σ, ∏, ∀, ∃, in the operator position of quantification only, respectively being synonyms of +, *, ∧, ∨.

For example, ⟨ ∃ k : 0 ≤ k : b = 2 ^ k * B ⟩ can be a legal expression.

Turns out that we have Σ, ∀, ∃.  The symbol ∏ is still missing, though.


fix several CMakeLists.txt files to support non-standard cudnn path

Background
My machine have been installed  cudnn under the non-standard path /usr/local/cudnn-linux-x86_64-<IP_ADDRESS>_cuda11.6-archive, and the directory tree under this path looks like:
/usr/local/cudnn-linux-x86_64-<IP_ADDRESS>_cuda11.6-archive/
├── include
├── lib
└── LICENSE

Problem
When I ran cmake with following options:
cmake .. -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.6 \
    -DCUDNN_LIBRARY_PATH=/usr/local/cudnn-linux-x86_64-<IP_ADDRESS>_cuda11.6-archive/lib \
    -DCUDNN_INCLUDE_PATH=/usr/local/cudnn-linux-x86_64-<IP_ADDRESS>_cuda11.6-archive/include \
    -DCMAKE_CUDA_ARCHITECTURES=80-real

Some target libraries such as swin_gemm, vit_gemm, WenetEncoder and ViTINT8 still failed to find cudnn.h. The error during building looks like:
[ 75%] Building CXX object src/fastertransformer/models/vit_int8/CMakeFiles/ViTINT8.dir/ViTINT8.cc.o
In file included from /data/huangzhuobin/projects/oneflow_features/FasterTransformer/src/fastertransformer/models/vit_int8/ViTINT8.h:26,
                 from /data/huangzhuobin/projects/oneflow_features/FasterTransformer/src/fastertransformer/models/vit_int8/[ViTINT8.cc:17](http://vitint8.cc:17/):
/data/huangzhuobin/projects/oneflow_features/FasterTransformer/src/fastertransformer/utils/conv2d.h:24:10: fatal error: cudnn.h: No such file or directory
   24 | #include <cudnn.h>
      |          ^~~~~~~~~
compilation terminated.
make[2]: *** [src/fastertransformer/models/vit_int8/CMakeFiles/ViTINT8.dir/build.make:76: src/fastertransformer/models/vit_int8/CMakeFiles/ViTINT8.dir/ViTINT8.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:6880: src/fastertransformer/models/vit_int8/CMakeFiles/ViTINT8.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Fix
This patch specifies the CUDNN include path for these target libraries via the CUDNN_INCLUDE_PATH which passed as cmake option

Have you investigated why find_package(CUDNN) does not find your CUDNN?
Have you tried the variable DCUDNN_LIBRARY and CUDNN_INCLUDE_DIR?


Please help configuring tests from ES6 project

Ok, I have been pounding my head against the desk for far too long, it is time to ask for help.
Maybe I am way off base, or I just cannot see the trees in the forest.  Please help.
I am trying to build an application using gulp, Angular 1.3+, ES6, traceur, SystemJS, es_module_loader and http-server.
So far the app is looking good, it compiles and runs and hosts just fine from the compiled folder location, but I cannot get Karma to run a single test within my compiled project.
Here is my project structure:
gulpfile.js
client/
    - src
        - app/
            - bootstrap.js
            - system.config.js
            - index.html
            - modules/
                  - app.module.es6
                  - AppRouter.es6
                  - app.less
                  - common/
                       - common.module.es6
                       - masterTemplate/
                               - MasterTemplateController.es6
                               - MasterTemplateController.spec.es6
                               - masterTemplate.tpl
                               - masterTemplate.less
                  - home/
                      - home.module.es6
                      - home.less
                      - greeting/
                            - GreetingController.es6
                            - GreetingController.spec.es6
                            - greeting.less
                            - greeting.tpl
                    ...

using gulp and traceur I am able to transpile all the es6 code to es5 modules with amd wrappers.
The compiled artifacts are laid out in a build folder as such:
_build/
   - css/
   - fonts/
   - img/
   - js/
      - lib/...
      - modules/
         - common/...
         - home/
             - greeting/
                  - GreetingController.js
             - home.module.js
         - app.module.js
         - AppRouter.js
         - mock.app.module.js
      - bootstrap.js
      - system.config.js
   - index.html

The compiled layout is not identical to the source layout, but it is very close:

The vendor libs are in the lib folder and come from 3 different places (npm, bower and a custom download).
The fonts, css and img folders are collected from several sources.
The _build/js folder is nearly identical to the client/src/app folder, except the index.html file is one level up.
The html template files (*.tpl) {some call these partials} are all compiled into a $templateCache module
saved under _build/js/modules/common/templates/templates.module.js

then I serve it up using http-server.  The index.html loads up the runtime infrastructure
and finally the bootstrap.js, which uses SystemJs to bootstrap angular starting with the /modules/.
<!doctype html>

    <title>App</title>

    <link rel="icon" type="image/png" href="/favicon.png">
    <link rel="stylesheet" href="/css/app.css">

This works great.  Everything loads and present as it should.
Now I go to test it...  Because I am using SystemJs to load all dependencies (identified using import in each module and subsequent src file) I need to use karma-systemjs to help karma find and load those same files.
Here is my karma.config.js, which is stored at client/src/tests/karma/karma.config.js
module.exports = function (config) {
  config.set({
    basePath: '../../../../,
    urlRoot: '',
    hostname: 'localhost',
    frameworks: [ 'systemjs','mocha','chai','chai-as-promised','sinon-chai'],
    plugins: [
      'karma-mocha',
      'karma-chai',
      'karma-chai-plugins',
      'karma-systemjs',
      'karma-traceur-preprocessor',
      'karma-chrome-launcher',
      'karma-firefox-launcher',
      'karma-spec-reporter',
      'karma-junit-reporter',
      'karma-failed-reporter'
    ],
    systemjs: {
      configFile: '_build/js/system.config.js',
      files: [
        '_build/js/lib/*.js',
        '_build/js/modules/**/*.js',
        'client/src/app/**/*Spec.es6'
      ],
      config: {
        transpiler: 'traceur',
        paths: {
          'angular':           '_build/js/lib/angular.min.js',
          'angular-animate':   '_build/js/lib/angular-animate.min.js',
          'angular-messages':  '_build/js/lib/angular-messages.min.js',
          'angular-aria':      '_build/js/lib/angular-aria.min.js',
          'angular-resource':  '_build/js/lib/angular-resource.min.js',
          'angular-cookies':   '_build/js/lib/angular-cookies.min.js',
          'angular-storage':   '_build/js/lib/angular-storage.min.js',
          'angular-material':  '_build/js/lib/angular-material.min.js',
          'angular-mocks':     '_build/js/lib/angular-mocks.js',
          'angular-ui-router': '_build/js/lib/angular-ui-router.min.js',
          'statehelper':       '_build/js/lib/statehelper.min.js',
        }
      },
      testFileSuffix: '.spec.js'
    },
    preprocessors: {
      'client/src/app/**/*.spec.es6': ['traceur']  // pre-compile tests
    },
    traceurPreprocessor: {
      options: {
        modules: 'amd',
      },
    },
    client: {
      mocha: {
        reporter: 'html',
        ui: 'bdd'
      }
    },
    reporters: ['junit', 'spec', 'failed'],
    reportSlowerThan: 1000,
    junitReporter: {
      outputFile: 'reports/unit-test-results.xml',
      suite: ''
    },
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: false,
    browsers: [
       'Chrome'
    ],
    captureTimeout: 10000,
    port: 9876,
    runnerPort: 9100,
    singleRun: true,
    background: false
  });
};

after I build the app and run gulp karma I get this incredibly useful error message:
ERROR [karma]: Uncaught TypeError: Illegal module name "/base/client/src/app/modules/home/greeting/GreetingController.spec"
at http://localhost:9876/base/node_modules/es6-module-loader/dist/es6-module-loader.src.js?3aac9167d6f21486de90ab673ff41c414843e2b4:2667

Chrome 41.0.2272 (Mac OS X 10.10.2): Executed 0 of 0 ERROR (0.399 secs / 0 secs)

[02:17:59] 'karma' errored after 1.81 s
[02:17:59] Error: 1
    at formatError (/Users/kpburson/.nvm/versions/node/v0.12.0/lib/node_modules/gulp/bin/gulp.js:169:10)
    at Gulp.<anonymous> (/Users/kpburson/.nvm/versions/node/v0.12.0/lib/node_modules/gulp/bin/gulp.js:195:15)
    at Gulp.emit (events.js:107:17)
    at Gulp.Orchestrator._emitTaskDone (/Users/kpburson/projects/ver-client/node_modules/orchestrator/index.js:264:8)
    at /Users/kpburson/projects/ver-client/node_modules/orchestrator/index.js:275:23
    at finish (/Users/kpburson/projects/ver-client/node_modules/orchestrator/lib/runTask.js:21:8)
    at cb (/Users/kpburson/projects/ver-client/node_modules/orchestrator/lib/runTask.js:29:3)
    at removeAllListeners (/Users/kpburson/projects/ver-client/node_modules/karma/lib/server.js:220:7)
    at Server.<anonymous> (/Users/kpburson/projects/ver-client/node_modules/karma/lib/server.js:231:9)
    at Server.g (events.js:199:16)

The system.config.js file is:
System.config({
  baseURL: '/js/',
  paths: {
    'angular':          '/js/lib/angular.js',
    'angular-animate':  '/js/lib/angular-animate.js',
    'angular-aria':     '/js/lib/angular-aria.js',
    'angular-cookies':  '/js/lib/angular-cookies.js',
    'angular-material': '/js/lib/angular-material.js',
    'angular-messages': '/js/lib/angular-messages.js',
    'angular-mocks':    '/js/lib/angular-mocks.js',
    'angular-resource': '/js/lib/angular-resource.js',
    'angular-storage':  '/js/lib/angular-storage.js',
    'angular-ui-router':'/js/lib/angular-ui-router.js',
    'statehelper':      '/js/lib/statehelper.js'
  },
  meta: {
    'angular': {format: 'global', exports: 'angular'},
    'angular-ui-router': {format: 'global', deps: ['angular']},
    'statehelper': {format: 'global', deps: ['angular', 'angular-ui-router']}
  }
});

and the bootstrap.js file is:
System.import('app.module').then(
  function (a) {
    angular.element(document).ready(
      function () {
        angular.bootstrap(document, ['app']);
      }
    );
  },
  function (a, b, c) {
    console.out('\na:', a, '\nb:', b, '\nc:', c);
  }
);

I am at my wits end. Please help me figure out how to get the tests from the client/src folder
to compile in memory and execute against the pre-compiled code in _build/js.

OK, that's very different from the examples I'm used to.
In all of them, SystemJS takes care of calling Traceur or Babel to transpile ES6 down to ES5.
And systemjs-builder for production workflow (ie. Concatenation and minification).
eg. https://github.com/rolaveric/angular-phonecat/tree/es6
I'll create a branch to try and reproduce your setup, and work from there.

Still working on that branch, but I might have an idea as to what's going wrong here.
I think you need to set the "baseURL" to "/" in the systemjs config within your karma config, since karma is running from a different base directory to your http-server.
So under "systemjs.config" add: "baseURL": "/"

Thank you so much for the quick reply.  I am on the West Coast, near Seattle, you must be several hours ahead of me.
Anyway,  I made the change you suggested (baseUrl: '/')  Basically the same results:
WARN [config]: urlRoot normalized to "/"
INFO [karma]: Karma v0.12.31 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
INFO [Chrome 41.0.2272 (Mac OS X 10.10.2)]: Connected on socket pcmKA3nlk7WZmiFjUtQS with id 56656884
Chrome 41.0.2272 (Mac OS X 10.10.2) ERROR
  Uncaught TypeError: Illegal module name "/base/client/src/app/modules/home/greeting/GreetingController.spec"
  at /Users/Shared/projects/ver-client/node_modules/es6-module-loader/dist/es6-module-loader.src.js:2667
Chrome 41.0.2272 (Mac OS X 10.10.2) ERROR
  Uncaught TypeError: Illegal module name "/base/client/src/app/modules/home/greeting/GreetingController.spec"
  at /Users/Shared/projects/ver-client/node_modules/es6-module-loader/dist/es6-module-loader.src.js:2667

Chrome 41.0.2272 (Mac OS X 10.10.2): Executed 0 of 0 ERROR (0.288 secs / 0 secs)

[11:08:40] 'karma' errored after 6.13 s
[11:08:40] Error: 1
    at formatError (/Users/kburson/.nvm/versions/node/v0.12.0/lib/node_modules/gulp/bin/gulp.js:169:10)
    at Gulp.<anonymous> (/Users/kburson/.nvm/versions/node/v0.12.0/lib/node_modules/gulp/bin/gulp.js:195:15)
    at Gulp.emit (events.js:107:17)
    at Gulp.Orchestrator._emitTaskDone (/Users/Shared/projects/ver-client/node_modules/orchestrator/index.js:264:8)
    at /Users/Shared/projects/ver-client/node_modules/orchestrator/index.js:275:23
    at finish (/Users/Shared/projects/ver-client/node_modules/orchestrator/lib/runTask.js:21:8)
    at cb (/Users/Shared/projects/ver-client/node_modules/orchestrator/lib/runTask.js:29:3)
    at removeAllListeners (/Users/Shared/projects/ver-client/node_modules/karma/lib/server.js:220:7)
    at Server.<anonymous> (/Users/Shared/projects/ver-client/node_modules/karma/lib/server.js:231:9)
    at Server.g (events.js:199:16)

I am interested in your earlier comment:
In all of them, SystemJS takes care of calling Traceur or Babel to transpile ES6 down to ES5.
And systemjs-builder for production workflow (ie. Concatenation and minification).

I will study these examples again, but I was not aware that they pre-compiled the ES6 to ES5 into a test folder.  It seemed to me that they pre-compiled then bundled them.  During testing and debugging you worked with the bundled js (with sourcemaps).
I was attempting to work with individual files from abuild folder, then later think about optimizing with a bundler like systemjs-builder.  I am questioning whether bundling is still a necessary practice or not when using amd/es6 modules.
I am curious what is the most efficient method.  SystemJS provides wonderful functionality for loading modules using the module dependency tree (from the various import statements).  With this I only need to point to an initial point of entry module that starts the tree.  Previously I would have to order my scripts in dependency order, and later when I did bundle I would need to make sure they concatenated in this same order.  I like the SystemJS utility much better.
That being said, balancing between dev/runtime and karma test runs...  I would love to load all the es6 scripts from my src folder and have them pre-compiled into ES5 then loaded into the karma iframe in dependency order, along with all my templates and config files.  This is the holy grail for me, not sure if it is attainable.
Your guidance and experience is much appreciated.
thanks.

I am on the West Coast, near Seattle, you must be several hours ahead of me.
I'm actually in Sydney, Australia.  I first replied at about 10:30pm
I had to go to bed soon after, but I'm up now and will try to debug your scenario when I can today.
I will study these examples again, but I was not aware that they pre-compiled the ES6 to ES5 into a test folder
They don't precompile them into a folder, just in memory.
The idea is if you SystemJS comes across an ES6 module at any point during the dependency tree, it will transpile it to ES5.
Now this would get expensive at runtime for multiple reasons: cost of loading the transpiler to the browser, multiple round-trips to the server (eg. Load A, realise it needs B -> load B, realise it needs C, etc.)
systemjs-builder does the exact same thing as SystemJS would do live in the browser, but just once, with everything precompiled into a single file.
Either way, you shouldn't have to change your setup unless you really want to, and it sounds like the problem is just a matter of paths getting mixed up somewhere - so we'll find a way to fix it. And maybe work in some better debugging output too. :)

Ok, good news and bad.
I've recreated your setup, so to speak - hard coded the "_build" folder with a lot of "The X module was loaded" console outputs.
I managed to reproduce the issue, then workaround it by doing the following:

The tests are no longer run through "karma-traceur-preprocessor" first.  I just used SystemJS directly and had them reference the compiled modules in under "_build/".
Added "baseURL: '/'" to the SystemJS config in karma.config.js, which is how the tests can reference the "_build/" folder.
Had to change the test file extensions to ".js" - something kept looking for looking for "{moduleName}.js".
https://github.com/rolaveric/karma-systemjs/tree/issue7

Hopefully that helps you get going with your own project.
I'm going to see if I can fix the ".es6" extension thing (I personally stick to ".js" - but I'm not everyone :) ) and try to create better error messages or at least some README doco for debugging the original issue.

I've added some hints to the errors I could reproduce on how to fix them.
And it looks like adding ".js" to end of modules names to resolve them to paths is something SystemJS does by default.  It's an easy fix to add {".es6": ".es6"} to the maps config in SystemJS.
Let me know if that solves the issues with your karma setup.

Thank you, I will try to make those changes and see what happens.

Jason,
Thanks for your help.  I made the modifications you showed in your branch.  This stopped the errors from showing up, but I do not have any tests executing.  Not sure why.  So, I still need help getting the unit tests to execute.
I took my current application and sanitized it (removing all corporate identity) and pushed it to github so it can be focus of discussion.
https://github.com/kburson/Angular-ES6-starter.git
You should be able to clone my repo and run my scripts en-toto to verify what I am doing wrong.
Can you help me understand how the karma.con.jsf:: systemjs object relates to the system.config.js::System.config({}) object ?
The karma.config::system.js object references the system.config.js file:
karma.config.js
module.exports = function (config) {
    basePath: projectRoot,
    urlRoot: '',
    hostname: 'localhost',
    frameworks: [ ...],
    plugins: [...],
    files: [],
    systemjs: {                             // <---
        configFile: 'system.config.js',     // <---
        files: [...  ],
        config: {
            transpiler: 'traceur',
            baseUrl: '/',
            paths: {                          // <---
                'asset':  'location'          // <---
                ...
            }
        }
        testFileSuffix: '.spec.js'
    },
    preprocessors: { ... },
    reporters: [...],
    browsers: [...]
    port: 9876,
    runnerPort: 9100
}

system.config.js
System.config({
    baseURL: '/', //relative to index.html location
    paths: {                                 // <---
         'asset':  'location'               // <---
    },
    meta: { ... },
    map: { ... }
});

They both have baseUrl and paths objects for denoting location of dependencies.  Does the karma config object override the system.config.js settings?
I have configured the system.config.js to locate my dependencies within a deployable build folder.
I would like to have the karma systemjs settings look for those same dependencies in their 'natural habitat' whether that be bower_components or node_modules.  This way the unit/integration tests can run against the raw source files, while the e2e and manual testing would run against the pre-compiled app in the build folder.  This would be ideal.  Is this possible?
Lastly, if you have time, I would welcome a discussion about project structures and efficiency.  I am trying to find a structure that will work well for today and migrate easily for tomorrow (When ES6 and Angular 2.0 are mainstream).
Thanks,
Kendrick

I could not get the tests to run in your repo either.  I performed the following actions:
    clone https://github.com/rolaveric/karma-systemjs.git
    cd karma-systemjs/examples.issue7
    npm install
    karma start client/src/tests/karma/karma.config.js

I still get errors.  This seems to relate to not being able to find the spec apps, even when the paths config was set with
          '*.es6': '*.es6'

Error output was:
    WARN [config]: urlRoot normalized to "/"
    INFO [karma]: Karma v0.12.31 server started at http://localhost:9876/
    INFO [launcher]: Starting browser Chrome
    INFO [Chrome 41.0.2272 (Mac OS X 10.10.2)]: Connected on socket 5Zth707_w3K0JVh7TG26 with id 81452082
    WARN [web-server]: 404: /base/client/src/app/modules/common/masterTemplate/MasterTemplateController.spec.js
    WARN [web-server]: 404: /base/client/src/app/modules/home/greeting/GreetingController.spec.js
    Chrome 41.0.2272 (Mac OS X 10.10.2) ERROR
      Error loading "client/src/app/modules/common/masterTemplate/MasterTemplateController.spec" at /Users/kpburson/projects/karma-systemjs/examples/issue7/client/src/app/modules/common/masterTemplate/MasterTemplateController.spec.js
      Not Found: /Users/kpburson/projects/karma-systemjs/examples/issue7/client/src/app/modules/common/masterTemplate/MasterTemplateController.spec.js
    Chrome 41.0.2272 (Mac OS X 10.10.2) ERROR
      Error loading "client/src/app/modules/common/masterTemplate/MasterTemplateController.spec" at /Users/kpburson/projects/karma-systemjs/examples/issue7/client/src/app/modules/common/masterTemplate/MasterTemplateController.spec.js
      Not Found: /Users/kpburson/projects/karma-systemjs/examples/issue7/client/src/app/modules/common/masterTemplate/MasterTemplateController.spec.js

    Chrome 41.0.2272 (Mac OS X 10.10.2): Executed 0 of 0 ERROR (0.297 secs / 0 secs)

Going through your example I've found a number of things:

Way too many npm dependencies - It pretty much locked up my IDE...
console.out is undefined
GreetingController.spec.es6 doesn't import angular-mocks anywhere
The home angular module in home.modules.es6 should include ui.router as a dependency
You haven't included any of your third-party libraries under "files" in karma.conf.js
the "baseUrl" property in karma.config.js should be "baseURL"
Test file suffix is set to ".spec.js" when it should be ".spec.es6"
Typo in the path for "statehelper" in karma.conf.js

Point 7 is why you were getting "Executed 0 of 0 ERROR" - it couldn't find any test suites to run.

Yes, I was adding npm dependencies that I was interested in but not yet using.  I  shelved some off to a "pending" block to trim down to what I am using now.

console.out is part of xcon-0.6.0.min.js (extended console) which is included in the index.html, but I guess I missed it in the karma config.  xcon adds some nice console debugging features.  It is not necessary, I was merely playing around with the idea.

Hmm, I thought it was globally included. oops.

oops, same as #3.

I had "_build/js/lib/**/*.js" to include all dependent libraries,  I have changed this to specifically include each from the node_modules or bower_components (not from the build folder).

baseUrl -->  baseURL:  Good catch.

ouch, ".spec.js" <--> ".spec.es6", I keep bouncing back and forth trying to get something to work.

type: nice catch.

This is why I need a second pair of eyes; acute myopia.
I was able to get your issue 7 compiling and running tests.
I followed the steps you outlayed to massage my starter app into shape.  It still compiles and hosts the app correctly, but the tests are not running...  For some reason the { ".es6": ".es6" } is not catching,  Karma is still trying to load *.js files.
% karma start client/src/tests/karma/karma.conf.js
=== projectRoot =  /Users/kpburson/projects/Angular-ES6-starter
WARN [config]: urlRoot normalized to "/"
INFO [karma]: Karma v0.12.31 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
INFO [Chrome 41.0.2272 (Mac OS X 10.10.2)]: Connected on socket shyPelNuxoA_pU7jgirm with id 50820101
WARN [web-server]: 404: /base/client/src/app/modules/app.module.js
WARN [web-server]: 404: /base/lib/angular-mocks.js
Chrome 41.0.2272 (Mac OS X 10.10.2) ERROR
  Error loading "client/src/app/modules/app.module" at /Users/kpburson/projects/Angular-ES6-starter/client/src/app/modules/app.module.js
  Error loading "client/src/app/modules/app.module" from "client/src/app/modules/home/greeting/GreetingController.spec.es6" at /Users/kpburson/projects/Angular-ES6-starter/client/src/app/modules/home/greeting/GreetingController.spec.es6
  Not Found: /Users/kpburson/projects/Angular-ES6-starter/client/src/app/modules/app.module.js
Chrome 41.0.2272 (Mac OS X 10.10.2) ERROR
  Error loading "client/src/app/modules/app.module" at /Users/kpburson/projects/Angular-ES6-starter/client/src/app/modules/app.module.js
  Error loading "client/src/app/modules/app.module" from "client/src/app/modules/home/greeting/GreetingController.spec.es6" at /Users/kpburson/projects/Angular-ES6-starter/client/src/app/modules/home/greeting/GreetingController.spec.es6
  Not Found: /Users/kpburson/projects/Angular-ES6-starter/client/src/app/modules/app.module.js

Chrome 41.0.2272 (Mac OS X 10.10.2): Executed 0 of 0 ERROR (0.357 secs / 0 secs)

I have pushed all changed up to github.  I am working from the 'gulp' branch, although I am pushing most changes out to master.

I am also interested in creating a branch that bundles with systemjs, and another that does all this with webpack.  Then this public repository can be a comparison of building manually with gulp, using systemjs for module loading and testing, using systemjs-builder for bundling, and using webpack for bundling...  An interesting comparison of the various patterns used in development and testing of SPA apps.
I do very much appreciate your help in all this.
Thanks.

For some reason the { ".es6": ".es6" } is not catching
Damn...
What's happened is it works when karma-systemjs tries to convert file paths to module names, but the module names used in your 'import' statements don't include '.es6' - so it defaults back to regular old "add .js to the end" behaviour.
One option would be to try {"*/modules/*": "*/modules/*.es6"}, but then karma-system would try to import module modules/something.spec.es6, which would get mapped to modules/something.spec.es6.es6...
Maybe try a rule for both - It should be the more specific rule (ie. Longer string, less wildcards) wins:
``{"/modules/": "/modules/.es6", "/modules/.spec.es6": "/modules/.spec.es6"}
It also looks like the SystemJS team are talking about removing the default "add .js to module names" behaviour:
https://github.com/systemjs/systemjs/issues/319
That should simplify things, eventually.  But for now you'll need that work around.
The joys of living on the edge :grinning:

Trying the {"*/modules/*": "*/modules/*.es6"}
Only one wildcard in a path is permitted
% karma start client/src/tests/karma/karma.conf.js
=== projectRoot =  /Users/kpburson/projects/Angular-ES6-starter
WARN [config]: urlRoot normalized to "/"
INFO [karma]: Karma v0.12.31 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
INFO [Chrome 41.0.2272 (Mac OS X 10.10.2)]: Connected on socket TNr1PKd_cW8N20t3poYz with id 41159743
Chrome 41.0.2272 (Mac OS X 10.10.2) ERROR
  TypeError: Error loading "client/src/app/modules/home/greeting/GreetingController.spec.es6" at <unknown>
  Only one wildcard in a path is permitted
Chrome 41.0.2272 (Mac OS X 10.10.2) ERROR
  TypeError: Error loading "client/src/app/modules/home/greeting/GreetingController.spec.es6" at <unknown>
  Only one wildcard in a path is permitted

Chrome 41.0.2272 (Mac OS X 10.10.2): Executed 0 of 0 ERROR (0.3 secs / 0 secs)

Perhaps I need to give up the ghost on using *.es6 to identify ES6 vs ES5 files and normalize on *.js and simply transpile everything...  Although the system.config.js and bootstrap.js are ES5, so I do not want them wrapped in amd defines...  Is there a better way around this?
I am going to try the experiment in the gulp branch to rename the .es6 to .js

Only one wildcard in a path is permitted
OK, then try:
{"client/src/app/modules/*": "client/src/app/modules/*.es6", "client/src/app/modules/*.spec.es6": "client/src/app/modules/*.spec.es6"}
Although the system.config.js and bootstrap.js are ES5...
Yes, but all your ES6 code is inside client/src/app/modules/, and both of those files are in client/src/app/, so you can easily exclude your ES5 files from any ES6 based processing you want to do.
And besides - SystemJS will only wrap modules that are imported.  If you never import client/src/app/bootstrap.js from another module or directly from System.import(), you'll be fine.

Cool, thanks, I will try some of that... Check back with you tomorrow after I complete some more experiments.

I made the suggested change.  No dice.  I started to look thru your plugin code (Karma-systemjs).  IT does indeed overlay all karma.config.systemjs.config settings ontop of the systemjs.config settings, thus I can use systemjs as a default setup and override with karma when I am testing.
I continued to run into the problem with the file extensions, so I changed them all to js, then it would not load the pre-compiled templates cache file, so I removed the template cache and reconfigured the entire site to import templates using systemjs.  I also reconfigured the routing to be more distributed (each module defines it's own route with lineage relative to the root level.  This seems to be the way people like to do things ( I studied a few of your sample projects).

GET http://localhost:8000/json.js 404 (Not Found)
es6-module-loader.src.js:140 Potentially unhandled rejection [5] Error loading "resources.json!json" at <unknown>
Error loading "json" at http://localhost:8000/json.js
Not Found: http://localhost:8000/json.js (WARNING: non-Error used)

I know the plugin is in _build/js/lib/json.js.  The systemjs.config.js has baseURL set to ./, so all files should load relative to the index.html (or is it relative to the systemjs.config.js ?)
The project is all pushed to github if you can please take a look at branch SystemJS
https://github.com/kburson/Angular-ES6-starter.git#SystemJS
Thanks, I appreciate any help you can give me getting this thing working.

What do you use to debug the karma-systemjs plugin with?  When I was writing grunt tasks I used node-debug grunt {task}, but gulp and karma do not seem to stop on any set breakpoints I had to use console.log to see what was going on (very old school).  What is the proper way?
Thanks

I honestly don't know how (or if) a baseURL of "./" works. ie. What it's relative to.
I know "/" is relative to the webroot for your web server, and I'm guessing it's treating "./" the same way.
I'll take a look at your SystemJS branch tomorrow and see if I can find the problem.
What do you use to debug the karma-systemjs plugin with?
console.log()
I actually don't do much NodeJS coding - just build process stuff, so I've never needed anything more sophisticated for debugging.

I have refactored the project to load templates using systemjs import rather than the ngtemplate template cache.  I have also created module files in each folder to register providers and dependencies for that specific folder, allowing for children folders to export their own module defs with deps and all.  It is moving closer to what I see you do in ngbp and angular-seed, although a little more complex.
Now I am getting $inject errors.  I have double checked the dependency graph and all imports line up correctly, so there should be no problems with DI...  puzzled.

If you get an injector error, best thing to do is switch back to the unminified version of Angular.  It'll give you more detailed error messages.
I've fixed up the issues - expect a PR soon.

Jason, Thanks so much! That was what I needed, a pairing partner that could see what I could not see. I was so close, but could not see the trees thru the forest!
My email address is<EMAIL_ADDRESS>Send me your paypal account info and I will send you some money. Your help has been invaluable.

No need. It helps me fire proof karma-systemjs anyway.

Hi I'm trying to set up my test suite using karma-systemjs, when execute my gulp task, none of the files from 'src/' get loaded.  What am I doing wrong or missing?


BUG: fix to spelling of Vaisala WXT536

Vaisala was not correctly spelled throughout the notebook and images

Looks good! In the future, feel free to tag me for a review (@mgrover1)


Truncate circle button text after 24 characters

See https://github.com/UW-Madison-DoIT/angularjs-portal/pull/351

Hmmmm, I like the feature. I'm sure someone will use circle-button outside of the scope of a widget, where they may not want the title to be truncated, and that could be frustrating for developers. Maybe make the truncate number a variable? Then for our case in lol we just set it to 24?

Good idea. Ask and you shall receive.

:+1:


Calling /rest/order-history without the JWT crashes Juice Shop [🐛]

:bug: Bug report
Description

After calling /rest/order-history without the Authorization header causes Juice Shop to throw an error and exit completely.
Is this a regression?

Unknown
:microscope: Minimal Reproduction

Call:

GET /rest/order-history HTTP/1.1
Host: :3000
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36
Referer: http://:3000/
Accept-Encoding: gzip, deflate
Connection: close

Note: I removed some other Headers but the one causing the error is Authorization. Tested by removing them one by one.
:fire: Exception or Error

TypeError: Cannot read property 'replace' of undefined
    at /home/kona/Schreibtisch/juice-shop_12.7.1/build/routes/orderHistory.js:12:88
    at Layer.handle [as handle_request] (/home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/layer.js:95:5)
    at /home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/index.js:281:22
    at Function.process_params (/home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/index.js:335:12)
    at next (/home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/index.js:275:10)
    at /home/kona/Schreibtisch/juice-shop_12.7.1/build/routes/verify.js:133:5
    at Layer.handle [as handle_request] (/home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/index.js:317:13)
    at /home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/index.js:335:12)
    at next (/home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/index.js:275:10)
    at /home/kona/Schreibtisch/juice-shop_12.7.1/build/routes/verify.js:69:5
    at Layer.handle [as handle_request] (/home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/index.js:317:13)
    at /home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/index.js:335:12)
    at next (/home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/index.js:275:10)
    at logger (/home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/morgan/index.js:144:5)
    at Layer.handle [as handle_request] (/home/kona/Schreibtisch/juice-shop_12.7.1/node_modules/express/lib/router/layer.js:95:5)

:deciduous_tree: Your Environment

v15.14.0
7.9.0

Additional Information

💥 Ouch... Good catch! 👍


Investigate discussion forum alternatives

Currently, we use a combination of Gitter, #lighttable on freenode, and Google Groups to field questions and problems that pop up with users. It was suggested in issue https://github.com/LightTable/LightTable/issues/2277 that these may no longer be the best, or at least most welcoming, solutions. Given that attracting people is an ongoing issue, this claim seems plausible.
Rust, Sublime, and Atom were suggested as having better ways to field questions... we should check into what they (and others) are using and see if anything matches our needs better than the current system.

May I suggest switching over to Slack instead? It seems a lot more popular than Gitter on the App Stores

@abhi18av the problem is that we already have a channel on IRC and Gitter; that's enough.
For news, instead of posting on the mailing list, we should announce on telegram.
Personally I think we should relay all issues fixed automatically on twitter.
We should:

close this issue
add a maintenance issue to create the telegram channel
discuss on Gitter if it's warranted to have webhook or service for Twitter
update or remove the community section of the README


search channels is not working

Hi. I am new in python, and I would like to get streamers that stream gta. I know how to use search_categories, that one works for me, but search_channels is not.
it gives me this error:
  File "\twitchio\client.py", line 176, in wrapped
    await func(*args)
  File "main.py", line 22, in event_ready
    await self.try_join_gta()
  File "main.py", line 35, in try_join_gta
    list_gta_players = await self.search_channels(query='gta', live_only=True)
  File "\twitchio\client.py", line 515, in search_channels
    return [SearchUser(self._http, x) for x in data]
  File "twitchio\client.py", line 515, in <listcomp>
    return [SearchUser(self._http, x) for x in data]
  File "twitchio\user.py", line 624, in __init__
    self.started_at = datetime.datetime.strptime(data["expires_at"], "%Y-%m-%dT%H:%M:%SZ") if self.live else None
KeyError: 'expires_at'

this is the code:
    async def try_join_gta(self):
        list_gta_players = await self.search_channels(query='gta', live_only=True)

I'm calling it in event_ready. (with await).

Should be fixed! Upgrade to the newest version by running pip install -U twitchio
👍

Yes, it works now. Thank you


Avoid detection by mitm watch

I am not saying we should solve all the cases listed below. What I am saying is that it'd be a right thing to properly copy all the TLS extensions (and no just ciphers) when we handshake with the remote (or local) endpoint.
Test website:
https://mitm.watch
Paper:
https://jhalderm.com/pub/papers/interception-ndss17.pdf

We describe the heuristics for each browser below:

Mozilla Firefox
Firefox was the most consistent of the four browsers, and by default, each version produces a nearly identical Client Hello message regardless of operating system and platform. All parameters, including TLS extensions, ciphers, elliptic curves, and compression methods are predetermined and hard-coded by the browser. Users can disable individual ciphers, but they cannot add new ciphers nor reorder them. To determine whether a Firefox session has been intercepted, we check for the presence and order of extensions, cipher suites, elliptic curves, EC point formats, and handshake compression methods. Mozilla maintains its own TLS implementation, Mozilla Network Security Services (NSS) [42]. NSS specifies extensions in a different order than the other TLS libraries
we tested, which allows it to be easily distinguished from other implementations. The library is unlikely to be directly integrated into proxies because it is seldom used in server-side applications.

Google Chrome
Chrome was one of the most challenging browsers to fingerprint because its behavior is dependent on hardware support and operating system. For example, Chrome prioritizes ChaCha-20-based ciphers on Android devices that lack hardware AES acceleration [10] and Chrome on Windows XP does not advertise support for ECDSA keys at all. These optimizations result in several valid cipher and extension orderings for each version of Chrome, and furthermore, users can disable individual cipher suites. We check for ciphers and extensions that Chrome is known to not support, but do not check for the inclusion of specific ciphers or extensions, nor do we validate their order. When appropriate, we check the presence and order of elliptic curves, compression methods, and EC point formats. We note that because Chrome uses BoringSSL, an OpenSSL fork, connections have a similar structure to OpenSSL. However, Chrome supports considerably fewer options, including a subset of the default extensions, ciphers, and elliptic curves advertised by OpenSSL.

Microsoft Internet Explorer and Edge
Internet Explorer is less consistent than the other browsers for two reasons: (1) administrators can enable new ciphers, disable default ciphers, and arbitrarily reorder cipher suites through Windows Group Policy and registry changes, and (2) IE uses the Microsoft SChannel library, an OS facility which behaves differently depending on both Windows updates and browser version. Because of this additional flexibility, it is hard to rule out handshakes that include outdated ciphers, so we introduce a third categorization, unlikely, which we use to indicate configurations that are possible but improbable in practice (e.g., including an export-grade cipher suite). We note that minor OS updates alter TLS behavior, but are not indicated by the HTTP User-Agent header. We mark behavior consistent with any OS update as valid. SChannel connections can by uniquely identified because SChannel is the only TLS library we tested that includes the OCSP status request extension before the supported groups and EC point formats extensions.

Apple Safari
Apple Safari ships with its own TLS implementation, Apple Secure Transport, which does not allow user customization. The order of ciphers and extensions is enforced in code. While extension order does not vary, the NPN, ALPN, and OCSP stapling extensions are frequently excluded, and the desktop and mobile versions of Safari have different behavior. One unique aspect of Secure Transport is that it includes the TLS_EMPTY_RENEGOTIATION_INFO_SCSV cipher first, whereas the other libraries we investigated include the cipher last. Similar to Microsoft, Apple has changed TLS behavior in minor OS updates, which are not indicated in the HTTP UserAgent header. We allow for any of the updates when validating handshakes, and we check for the presence and ordering of ciphers, extensions, elliptic curves, and compression methods.

Useful links:

https://mitm.watch/
https://github.com/cloudflare/mitmengine
https://malcolm.cloudflare.com/
https://www.ssllabs.com/ssltest/viewMyClient.html

Is this feature implemented for each AdGuard version? And would you expect that the fingerprint stays the same if AdGuard is running or not?
I only made a small test. One on Windows. With Chrome the fingerprint stayed the same. In Firefox it changed.
On MacOS the fingerprint for Safari also changed.

@askingforafoe in theory it should be done automatically, but we revisit this from time to time.
Currently, there's an open issue about that:
https://github.com/AdguardTeam/CoreLibs/issues/1503


dynamic tables, search button is not working in responsive design.

dynamic tables, search button is not working in responsive design.
http://quirktools.com/screenfly/#u=https%3A//colorlib.com/polygon/gentelella/tables_dynamic.html&w=768&h=1024&a=22&s=1

Hi there @jimmibond,
Thank you for reporting this, we will take care of it in a future update.
Regards,
Andrew.


Add argsort of BatchedTensor(Seq)

Codecov Report
Patch coverage: 100.00% and no project coverage change.

Comparison is base (c6ae613) 100.00% compared to head (3edf145) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #385   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           18        18
  Lines         1759      1765    +6
  Branches       183       183
=========================================
+ Hits          1759      1765    +6

Files Changed
Coverage Δ

src/redcat/tensor.py
100.00% <100.00%> (ø)

src/redcat/tensorseq.py
100.00% <100.00%> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


ClockPicker seems to change date aswell

Hi,
When I add the widget to a page with a dateTime attribuut (default value CurrentDateTime) with localize yes. For today that would be 2016-08-12 15:54. If I set the time to 00:05 the date jumps to 2016-08-13 00:05. Instead of 2016-08-12 00:05
I will add a test project soon, but I wanted to inform you about this behaviour.
With kind regards,
Stephan

Closed issue (not an issue).  Made a reproduction project and the behaviour is what you would expect.

Create object. With a dateTime attribute set to 17-08-2016 10:31 (session time, CET + 2:00) so 17-08-2016 08:31 UTC
Change the time on the object via the ClockPicker to 00:05
dateTime attribute on object will be set to 17-08-2016 00:05 (session time, CET + 2:00) so 16-08-2016 22:05 UTC

Which is ok :+1:

Great, thanks for updating!


Generate api docs

It would be nice if we can generate api documentation for the existing endpoints
Notes/ References

https://github.com/SergioBenitez/Rocket/issues/297
https://github.com/GREsau/okapi

Evaluate rustdoc


Many small frag files

youtube-dl is creating tons of frag files, it does it one at a time but it is thrashing my HD and not good for flash drive(which I moved to because I got tired of hearing the thrashing and don't want to ruin my drive).
I am downloading about 30gb and the frag files are about 512k each. Not sure why it can't just use a memory buffer.

Why was this closed? Is this issue going to be addressed or is addressed? I'm pretty sure a simple memory buffer would do wonders here and should have no problem doing. I have 16GB. I could even spare 1GB for youtube-dl rather than it deteriorate my HD. Note that it does not do this on all downloads, it seems only on certain ones.


requirements.txt  环境配置失败

PS D:\CnOCR> pip install -r requirements.txt
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple, https://mirrors.aliyun.com/pypi/simple, https://pypi.doubanio.com/simple, https://pypi.org/simple
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000019F939768E0>, 'Connection to mirrors.aliyun.com timed out. (connect timeout=15)')': /pypi/simple/aiohttp/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000019F93976B50>, 'Connection to mirrors.aliyun.com timed out. (connect timeout=15)')': /pypi/simple/aiohttp/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000019F93976D00>, 'Connection to mirrors.aliyun.com timed out. (connect timeout=15)')': /pypi/simple/aiohttp/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000019F93976EE0>, 'Connection to mirrors.aliyun.com timed out. (connect timeout=15)')': /pypi/simple/aiohttp/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000019F93976FA0>, 'Connection to mirrors.aliyun.com timed out. (connect timeout=15)')': /pypi/simple/aiohttp/
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.doubanio.com', port=443): Read timed out. (read timeout=15)")': /simple/aiohttp/

外网IP  切换库后配置成功
#--index-url https://pypi.tuna.tsinghua.edu.cn/simple
#--extra-index-url https://mirrors.aliyun.com/pypi/simple
#--extra-index-url https://pypi.doubanio.com/simple
--index-url https://pypi.org/simple


[sensor_ctrl] V2(S) Signoff

Description
Ensure V2(S) signoff criteria are still maintained (this is not a focus area block).

@matutem @rswarbrick PTAL

I'm convinced: this looks good to me. Happy with closing this.


Drop EL8 from Foreman, Katello and Candlepin

Done removed the el8 from both install and upgrade pipelines.


ps-mem: update to build with 2.19

Note: this is literally my first day with snapcraft.

Nice work! Merging.


Fail to create a new connection for the connection pool.

I connect to rethinkdb with docker image package verion - 2.3.5, Initially it connects and then throws the error
{
    servers: [
        { host: '<IP_ADDRESS>', port: 32780 },
        { host: '<IP_ADDRESS>', port: 32779 }
    ],
    pool: true,
    buffer: 300,
    max: 3000
}

Creating a pool connected to <IP_ADDRESS>:32780
Creating a pool connected to <IP_ADDRESS>:32780
Entering slow growth mode
Fail to create a new connection for the connection pool. Error:{"msg":"Failed to connect to <IP_ADDRESS>:32780 in less than 20s","message":"Failed to connect to <IP_ADDRESS>:32780 in less than 20s.","isOperational":true}
Entering slow growth mode
Fail to create a new connection for the connection pool. Error:{"msg":"Failed to connect to <IP_ADDRESS>:32780 in less than 20s","message":"Failed to connect to <IP_ADDRESS>:32780 in less than 20s.","isOperational":true}

@neumino could you take a look this please. it is a show stopper

@BhaskaranR - I think the driver never successfully connect to your cluster.
Did you try connecting with the official driver? My guess is that it doesn't work too.
Did you open your port on Docker? What's your cluster configuration? Docker file?


Check for valid DynamicFontData before duplicate

Proposed fix for issue #48674
Adds a check for valid DynamicFontData before attempting to duplicate it when creating the Editor preview.
Apologies for making this to the 3.x branch directly, but this function has changed in the master branch where this appears to not be needed and is relevant to the 3.x branch only.
Bugsquad edit: Fixes #48674.

I cannot believe I was missing the closing bracket on the if statement, how embarrassing.  Updated.

Could you squash the two commits? See PR workflow for instructions.

I re-based my fork against the latest commit of the 3.x branch and squashed my 2 commits into one. However, upon a re-push to my fork, GitHub is now reporting that my repository has been deleted and so the link between this pull-request and my fork is now broken.  Not sure why this occurred, it is still very much there: hlfstr/godot:3.x
I am very sorry for this; a simple fix like this should not be this much of a headache for the both of us. I assume this will require a new pull request?

No problem, Git rebase can be a bit tricky but it's a good skill to acquire, so we're happy to assist :) not sure why the link has been severed here but indeed this will require a new PR.

Understood. I will close this pull request and have opened #48694 regarding the same


Relaxer Application

Describe the project you want to add with tech stack
Has a subtle animation with instructions to breathe in and out in time intervals to relax and meditate
Screenshots (optional)

@MohitGupta121


mix point and box prompt

Here I  have an idea: can we add point and prompt together? In other words, the prompt embedding of one pic composed by point and box coor. When I look in the source code, it just need  to input the coor of them to the prompt_encode, in my opinion.
What is your opinion on this question?Thank you for answering my questions,and looking forward to your reply 😀

Hi @xiawei20161308104 ,
Great point.
I didn't go for point prompt because of two main reasons

point prompt is ambiguous.
it usually requires trail and error.

In contrast, the bounding box can clearly specify the targets with minor interactions (just clicking two points).
Actually, it is still an open question about what is the best segmentation prompt as discussed in the original SAM paper. It's worth further exploring different prompt types.


Escaped interpolations trigger a GrammarParseError if they don't follow the expected interpolation grammar

Describe the bug
The following code triggers a GrammarParseError:
cfg = OmegaConf.create({"x": "\\${not an interpolation}"})
cfg.x

Expected behavior
There should be no grammar syntax constraint after a \${ since it is not a real interpolation.
Discussion
What happens is that when we dereference cfg.x, the resulting string ("${not an interpolation}") is wrapped within a node (AnyNode because here x is untyped), whose constructor calls ValueNode._set_value(), that checks if the the value is an interpolation... and this check raises an exception because it's a badly formed interpolation.
The bandaid fix is to set strict_interpolation_validation=False at https://github.com/omry/omegaconf/blob/a03f681713a4c551c9f25ed8172d958b16fc92d0/omegaconf/nodes.py#L37
It would break the tests that specifically test for this check, but overall things would still work fine.
This bandaid fix, however, wouldn't change the fact that cfg._get_node("x")._dereference_node()._is_interpolation() is True, i.e., when we dereference cfg.x we obtain a node that believes it is an interpolation (!). Right now this isn't really a problem because we don't do anything with this node except getting its value, but it may bite us later.
Right now I don't have a solution that I really like in mind, so posting this issue for discussion.
Here are options I've thought about so far:

The bandaid fix mentioned above (currently my preferred option for 2.1)
Creating a subclass of StringNode specifically when an interpolation result is a string with ${. This subclass would override what it takes to avoid a crash. One issue with this is that if cfg.x is actually typed, we'd like to return another type of node (ex: IntegerNode), so there should be an exception instead (it seems doable, just a bit clumsy)
Adding a flag to StringNode that says "I am not an interpolation" even if the value looks like one. This would be similar to the previous idea, but without adding an extra class.
Add a more general flag to all nodes, is_interpolation={True,False,None}, where None would be the current behavior (check if the value is a string looking like an interpolation), False would make it possible to "declare" the value as not being an interpolation (even if it looks like one), and True would declare it as being an interpolation (regardless of the value). Besides fixing this issue, this could enable more things like (i) caching the interpolation status in that flag for faster checks, or (ii) enabling new kinds of interpolations that aren't tied to the string content (e.g. to point to config nodes that aren't accessible by a path from the root config, as I once did in a draft PR). I kinda like this option but I expect it to be non trivial and uncover issues I haven't thought about yet, so I'd rather not go there in 2.1

Thoughts?

The bandaid fix as you call it is also a performance concern.
The idea with having a fast is_interpolation that can return False positives was to improve performance by avoiding full grammar parse to detect interpolations.
The first solution should be acceptable if the performance is good in some real world scenarios.
The second solution sounds terrible.
The last two are going in a direction of caching the parsing results.
I think this is a good direction, we can cache the output of a strict get_value_kind and even the parse tree itself if it makes sense.
This should definitely not happen in 2.1 though, I think it's a pretty big change and it's not trivial to achieve that without potentially paying a significant cost during config initialization (because we are doing more real parses).
Right now the logic in get_value_kind is:
    # We identify potential interpolations by the presence of "${" in the string.
    # Note that escaped interpolations (ex: "esc: \${bar}") are identified as
    # interpolations: this is intended, since they must be processed as interpolations
    # for the string to be properly un-escaped.
    # Keep in mind that invalid interpolations will only be detected when
    # `strict_interpolation_validation` is True.
    if isinstance(value, str) and "${" in value:
        if strict_interpolation_validation:
            # First try the cheap regex matching that detects common interpolations.
            if SIMPLE_INTERPOLATION_PATTERN.match(value) is None:
                # If no match, do the more expensive grammar parsing to detect errors.
                parse(value)
        return ValueKind.INTERPOLATION

One thing that looks weird to me is: what is the purpose of calling parse(value)?
Is the intention if get_value_kind to raise an exception?
I think we have discussed it, but looking now it looks weird. My expectation is that if the string is not valid then ValueKind should be VALUE.
Second thing that jumps out:
why do we need the flag strict_interpolation_validation?
What would be the cost of just running the regex for any string that passes the initial ${ sniff test?

The bandaid fix as you call it is also a performance concern.

It's actually improving performance (strict_interpolation_validation=False is faster, it just won't detect grammar errors).

This should definitely not happen in 2.1 though

Agreed.

One thing that looks weird to me is: what is the purpose of calling parse(value)?
Is the intention if get_value_kind to raise an exception?

Yes. If I remember correctly personally I was fine with having strict_interpolation_validation=False everywhere and letting the code crash on access, but you preferred to have a check earlier (which led to the simple regex to avoid paying too much of a performance hit).

I think we have discussed it, but looking now it looks weird. My expectation is that if the string is not valid then ValueKind should be VALUE.

I think that would cause problems because badly formed interpolations wouldn't be detected anymore.

Second thing that jumps out:
why do we need the flag strict_interpolation_validation?

Same reason as above: to detect errors early.

What would be the cost of just running the regex for any string that passes the initial ${ sniff test?

Running the regex is pointless if we don't do anything when the regex doesn't return a match: the regex is only here to avoid the costly grammar parsing in common situations.

You misunderstood me.
I mean this:
    if isinstance(value, str) and "${" in value:
        # First try the cheap regex matching that detects common interpolations.
        if SIMPLE_INTERPOLATION_PATTERN.match(value) is None:
            # If no match, do the more expensive grammar parsing to detect errors.
            parse(value)
        return ValueKind.INTERPOLATION

The bandaid fix is to set strict_interpolation_validation=False at

Now I am confused.
I though the solution was to be more strict, not less strict.
If this is not an interpolation, why does the the strictest _get_value_kind says that it is?
You are already parsing the value. at this point you can check if it's an interpolation or not based on what it is, and not by the fact that it passed parsing.

You misunderstood me.
I meant this:
    if isinstance(value, str) and "${" in value:
        # First try the cheap regex matching that detects common interpolations.
        if SIMPLE_INTERPOLATION_PATTERN.match(value) is None:
            # If no match, do the more expensive grammar parsing to detect errors.
            parse(value)
        return ValueKind.INTERPOLATION

What's your objective here? If we remove the strict_interpolation_validation flag then we always validate interpolation syntax, which (i) doesn't help with this issue, and (ii) incurs a performance cost.

The bandaid fix is to set strict_interpolation_validation=False at

Now I am confused.
I though the solution was to be more strict, not less strict.

It is to be less strict so that we don't notice that the string is a badly formed interpolation.

If this is not an interpolation, why does the the strictest _get_value_kind says that it is?
You are already parsing the value. at this point you can check if it's an interpolation or not based on what it is, and not by the fact that it passed parsing.

I'm not sure I understand your last sentence, but I think the confusion comes from me not explaining well enough what is happening. Let me write in more details the steps that occur when we run this code:
cfg = OmegaConf.create({"x": r"\${not an interpolation}"})
cfg.x

When the cfg.x statement is executed, the x node is fetched and its _maybe_resolve_interpolation() method is called
In _maybe_resolve_interpolation() we detect that it is an interpolation (escaped interpolations are considered as a special kind of string interpolation, this is required so that they can be properly un-escaped)
Then we obtain the parse tree with the grammar and call _resolve_interpolation_from_parse_tree()
This calls resolve_parse_tree() which runs the grammar visitor on the string "\${not an interpolation}" and returns the resulting string resolved = "${not an interpolation}" (so far so good)
The next step in _resolve_interpolation_from_parse_tree() is to call _validate_and_convert_interpolation_result(). In that function, we detect that resolved is a string and thus has to be wrapped into a node, so we call _wrap_interpolation_result() on it, which calls _node_wrap()
Since the type passed to _node_wrap() is Any (the type of the x node), _node_wrap() attempts to create an AnyNode whose value is resolved, i.e. the string "${not an interpolation}"
That's where we have a problem: the constructor of AnyNode calls the constructor of ValueNode, which calls ValueNode._set_value(), which checks if the input is an interpolation with strict_interpolation_validation=True... which raises an exception because "${not an interpolation}" is invalid syntax for an interpolation.

What's your objective here? If we remove the strict_interpolation_validation flag then we always validate interpolation syntax, which (i) doesn't help with this issue, and (ii) incurs a performance cost.

The objective here was to to always be strict, which would solve the wrong problem if this failing by not being strict enough.
The performance cost should be negligible because very few strings would pass the ${ check without actually having an interpolation.
In any case, it's not important.
Going to look at the second part of your answer now.

Can you give more examples of what considering escaped interpolations as special kind of interpolations buys us?

It buys us the un-escaping of escaped interpolations. If we said "it's just a regular string" then the following code would return "\${y}" instead of "${y}":
cfg = OmegaConf.create({"x": r"\${y}"})
cfg.x

Note also that even if we make it so that escaped interpolations aren't considered interpolations anymore, it may help in the specific example I gave here, but the same problem would occur if for instance a resolver returns a string that looks like an interpolation:
OmegaConf.register_new_resolver("oops", lambda: "${trigger crash}")
cfg = OmegaConf.create({"x": "${oops:}"})
cfg.x  # GrammarParseError

I guess what might work is:

Delaying the un-escaping of \${ to the call of ._value() instead of doing it in the grammar visitor
Saying that a string that doesn't contain any regular (i.e, not escaped) interpolation is not an interpolation according to get_value_kind()
Saying that the resolver example I just wrote above is invalid, and one should instead return r"\${trigger crash}" in the resolver (in other words, if the result of resolving an interpolation is a string, it is not allowed to be an interpolation according to get_value_kind())

I'm not 100% sure I like it because it makes the nodes' internals a bit more complex and adds extra processing on each access, but at first glance it seems doable. What do you think?

My preference is actually to retain the old behavior and consider broken interpolations as values.

Just to understand, are you saying that it should be the case only when strict_interpolation_validation is True? (as in your code snippet). I'm not comfortable having a different output depending on the value of strict_interpolation_validation -- it might happen to solve this specific problem but it could bite us later.
If we do it also when strict_interpolation_validation is False then I see at least the following issues:

strict_interpolation_validation is actually pointless now because we always need to do this strict validation => there is a performance cost
More importantly, there would be no explicit error raised anymore for badly formed interpolations, instead the program may behave in surprising ways because what was supposed to be an interpolated value suddenly turned into a weird string. Since in the large majority of cases such badly formed interpolations are user error, I think there is value in catching them (I think the OmegaConf 2.0 behavior was pretty bad in that regard -- I actually remember having a few "WTF" moments back when working on the new grammar and trying stuff with 2.0 because I wrote an interpolation that wasn't recognized as such and processed seamlessly as a string instead).
In the context of this issue, the "under-the-hood" behavior would be different depending on whether one writes {"x": "\\${not an interpolation}"} (the node obtained when dereferencing x would be considered as not being an interpolation) vs  {"x": "\\${not_an_interpolation}"} (now it would be considered as being an interpolation, since ${not_an_interpolation} would pass the grammar parse step). I'm not sure if there would be any user-facing consequence to that, but it's definitely the kind of subtle difference that can cause problems down the road. In other words, IMO it remains another kind of "bandaid" fix and not a viable long term solution to this specific issue.

"that now would all trigger the regex" if the string contains ${.

If your point is that we only pay a price for interpolations, then yes I agree. But if we don't care why did we bother with the regex version in the first place? (it's only there to speed-up the processing of interpolations).

@omry just realized we hadn't converged on this one, can you please have a look when you get a chance?

Yes, I postponed this because having multiple parallel design discussions was too time consuming and I felt it's best to focus on one at a time.
I am planning to get back to this one next week.


Help/input wanted: usePinch with overflow:auto and native-scrollbars

First of all, thanks for an awesome library 🥳
I have this slider with content covering more than the screen, and my intention was to use this lib to create a pinch+zoom effect leveraging the native scrollbars inside a div with auto overflow.
I have been struggling now for some time getting this to work and so far it works OK on desktop
https://codesandbox.io/s/pinch-zoom-slider-34eby
However, there are still two major issues happening:

There is a slight delay when pinching. I suspect this has to do with onPinchStart.
When pinching rapidly (without waiting for the spring to catch up) there is flickering and the content goes all over the place
Origin when using pinch-to-zoom on mobile doesn't seem to act the same way as when using my trackpad. Its slightly off.

I'm sure you guys are super busy, but I would love it if someone could take a look at what I'm trying to accomplish. Maybe this is something that also could be showcased in a demo of use-gesture/use-spring? :)
Thanks in advance!

Seems to be working pretty decently on my iPhone, what are you testing on?
Origin should be the cursor origin on desktop, on mobile it's the centre of the two touch points.

he cursor origin on desktop, on m

Testing on Android and iPhone. The issue is mainly if you pinch and then quickly pinches again. I'm also sure there is a cleaner way of dealing with the translation => scrollLeft & scrollTop rather than persisting the scrollLeft/top and try to reverse that when another pinch occurs. @dbismut correct me if I'm wrong but is pinch-start determined using timers? AFAIK there is no "native" event for pinch stop and start

Pinch should start as soon as two fingers touch the screen, there's no timer. I'll have a look at the code when I can.

Hey @richarddd I'm sorry I didn't have time to look, I've been busy with other things and that problem isn't easy. Did you come up with something viable?

Hey @richarddd I'm sorry I didn't have time to look, I've been busy with other things and that problem isn't easy. Did you come up with something viable?

Hi @dbismut no worries :) I ended up using another approach which worked using transformation origins instead and ditched this :)

I ended up using another approach which worked using transformation origins instead and ditched this :)

Hey, @richarddd, any chance you could share a codesandbox of what you ended up doing?


error when npm install @socket.io/cluster-adapter

At line:1 char:13

npm install @socket.io/cluster-adapter

        ~~~~~~~

The splatting operator '@' cannot be used to reference variables in an
expression. '@socket' can be used only as an argument to a command. To
reference variables in an expression use '$socket'.
+ CategoryInfo          : ParserError: (:) [], ParentContainsErrorReco
rdException
+ FullyQualifiedErrorId : SplattingNotPermitted

For future readers:
On Windows systems, you need to escape the @ character:
npm install<EMAIL_ADDRESS>
Reference: https://stackoverflow.com/a/59807392/5138796


Update documentation for #252 (Show services claimed-by-labels)

Update documentation for #252 (Show services claimed-by-labels)

I have updated: https://docs.google.com/document/d/1scMZ9XCmI1Ws5Fga2t4Letd6gKKHscjA1B5XLx4DiUY/edit

Sent a PR to update docs: #310


Implement Bech32 encoding/decoding

These are utilities for converting public keys of ubyte array type and bech32-encoded strings. We should switch the address format from Stellar-style to bech32. So this is the first step for the task.
This PR needs more comments and descriptions. And it also needs more tests. So it is now a WIP state.
Fixes #1655

This PR now only passes in unit tests of agora.crypto.Key. We should change all the key pairs of the WellKnownKeys module. So, I'd like to have a whiteboard or pair-programming about it. And there are something more to share and discuss.
@Geod24 I will ask you for a whiteboard tomorrow. Thanks.

Need to rebase

Ready for review.

Ready for review

Does this mean we have to mine the keys again?


Tabler icons not found after updating plugin

Describe the bug
All of my folders’ icons are Tabler icons. Despite having the Tabler icon pack installed, and its ZIP present in .obsidian/plugins/obsidian-icon-folder/icons, when I start up Obsidian, I get a million notifications saying “icon not found”, and icons are not shown for my vault’s folders.
To Reproduce
Steps to reproduce the behavior:

Install the Tabler icon pack
Set many folders’ icons to Tabler icons
Fast forward several months
Update the plugin after not updating it for a few months
Restart Obsidian
Bug: a million “icon missing” notifications, and icons aren't visible

Expected behavior
No issue; folder icons remain visible
Screenshots
It is almost certainly related to this, the contents of .obsidian/plugins/obsidian-icon-folder:
    - .
10.0k ├── data.json
    - ├── icons
    - │  ├── tabler-icons
  569 │  │  └── Template.svg
  28M │  └── tabler-icons.zip
 803k ├── main.js
  309 ├── manifest.json
 2.3k └── styles.css

After updating, it looks like the set of icons was replaced with a ZIP, but the icons in use were not extracted into a folder correctly. The file tabler-icons/Template.svg was only created when I set the icon of a folder after updating.
Additional context
The data in data.json is still intact, so in theory this could be fixed by running through that file and extracting all the necessary icons.

I don't quite understand it. The plugin never removes or deletes any icons when they are updated. Normally, after the recent update, you should've just downloaded the tabler icons pack as a zip and everything would have worked.
What you could do to resolve the issue, is just extracting all the icons into the tabler icons directory.

Looks like it may be related to the change here (#153) not taking into account the icons that are needed in the vault before cleaning things up.

Got it. I think I could make something asynchronous in the background that checks in the beginning, if all used icons are downloaded/added correctly. That would fix some things.
I'll create a new issue for that and close this for now!

Keeping track of it at #242


Cryptosharing

Cryptosharing
Grant category
Please select one:

[x] Open source maintenance
[x] Developer tools / services
Educational material

Description
We propose a new protocol to implement Collateral-free Rental NFT
Problem statement
After each NFT project matures, it is difficult for new players to access, especially some high-value NFTs. For NFTs of users, who hold high-value NFTs, are not well utilized.  So Rental NFT is so important in Metaverse or NFT-Game projects.
Existing technical solutions can only support collateral-rent on flow. This means that renting an NFT needs a large amount of collateral. But the flow is not a good way to implement collateral-free rent. The cadence is a strong resource-type language. The resources held are difficult to enforce transfer or destroy.
Proposed solution
On Ethereum, we find that the leasing business is now slowly starting to grow. the adoption of EIP 4907 makes unsecured leasing possible. So we propose a new protocol to accomplish the goal. we provide a new user-NFT contract that the NFT owner can invoke user-NFT contract to create user-NFT. Through this protocol, you can create a rental marketplace to help rent NFT.
For a detailed introduction, please visit:
https://forum.onflow.org/t/collateral-free-rental-nft-promotes-the-development-of-metaverses-sharing-economy/3043
Impact
This protocol adds a new right of Non-Fungible Token that the right to use. Through this protocol, you can achieve :

Separation of the right to use and ownership of Non-Fungible Token
Non-secured lease Non-Fungible Token
You can continue to use it after you mortgage the Non-Fungible Token
Metaverse sharing economy

Milestones and funding

Note: You can leave the USD proposal empty / "TBD". Please consider adoption and/or maintenance milestones at the end of your project.

Milestone
Deliverables
Timeline
Risks
USD proposal

1 - MVP
Smart Contract for protocol, and Minimum MVP
2 weeks
Time
3000

2 - propose Flips
Separate ownership protocol submission flips
1 weeks
Time
1000

3 - Audit
Smart contract audit and github stars reach 20
6 weeks
probably delay
6000

4 - Documentation
Developer document
2 weeks
Based on audit result
2000

5 - Rent marketplace and open source
A fully available rental marketplace and open source, GitHub stars reach 50 and at least one project party uses it.
8 weeks
Time
10000

6 - Maintenance
web, documentation, maintenance
3 months
No
3000

Team

Name
Role
Bio
Contact

Kimos
Full-Stack Engineer
Kimos is Ph.D. in computer science and technology. Proficient in the blockchain development framework, a blockchain enthusiast, with a unique understanding of blockchain, defi, and NFT. Continuous entrepreneur, flow technology Ambassador, and Dev engine cofounder.
<EMAIL_ADDRESS>

Wesley
Full-Stack Engineer
Master of Data Science, Deeply cultivate the intersection of mathematics and computer, Blockchain Developers.

Hi @KKimos, thanks so much for the proposal!
We've reviewed and have a few follow-up questions/suggestions:

Can you please reduce the maintenance to 3 months?
How confident are you on the proposed timelines (and please fill out the missing ones)?  They seem like they could be a bit aggressive, so wanted to confirm.
Can you please incorporate an adoption milestone for the solution (i.e. developers using the new contract)?
Related to 3. above, how are you thinking about finding other stakeholders to support the FLIP and developers to use the contract as well?

Hi @KKimos - Just wanted to follow up on these open questions, thanks!

Sorry, something has happened these days. I didn't follow this。

ok, if necessary
Because we have implemented a version on Ethereum, and our team is familiar with cadence development
We can set a star count milestone on github
We hope that the official can provide the opportunity to cooperate with the chain game project, because this agreement can help the chain game to have a more reasonable economic model

@chrisackermann

Hi @KKimos - no worries!  Thanks so much for getting back on these open questions.

Can you please update this in the original proposal above?
Thanks for confirming!
Sounds great, can you please define a milestone that denotes this and the proposed payout associated with achieving that adoption milestone?
I'd suggest discussions in the Flow forum to help facilitate support/garner community interest and support: https://forum.onflow.org/

Hi @KKimos - just wanted to follow up on the open questions.  Can you please get back to us when you get a chance?

@chrisackermann plz check。 thanks

Hi @KKimos, thanks for this diagram!  In addition to the NFT, how will funds flow between the lendor and lendee?

Hi@chrisackermann, All processes are paid with flow. Lendor pricing in FLOW/day and lendee lending the NFT in FLOW with time(days)

Hi @chrisackermann , all processes are paid with flow. Lendor pricing in FLOW/day and lendee lending the NFT in FLOW with time(days)

@chrisackermann do you have any advice?

The exchange of funds is realized through the contract as the other dapps. When B wants to lease A's item, it costs B a pre-specified value from A.
Since we are a new NFT with time generated through smart contracts, there will be no legal issues such as theft.

Hi @KKimos!  Thanks for your patience - would you be open to tightening the scope specifically to the protocol and removing the rental marketplace so we can keep the scope tighter on the initial deliverable?  Then could look at the open source rental marketplace as a follow-up proposal.

Hi @chrisackermann , your suggestion is to cancel proposal 5, right? If so, we accept your propose.


Improve usage of MockServer in tests

Improve usage of MockServer in tests
This PR closese #194
What's done:

[ ] Created submodule for test utils
[ ] Implemented function that creates MockWebServer instance with additional logging
[ ] Improved logging

21 days left after opening of this PR...


implement settings (wip)

Implementing settings for Openslides 3
This is still an early work in progress .

[ ] The individual settings don't get the constants info that comes from the ConstantsService (preferably already there at initialization, avoiding 80 items having to listen to the CS)
[ ] Saving is not yet implemented
[ ] updating is not yet tested

ping @FinnStutzenstein

Update: This is now ready :+1:
Whats still missing, but has not a high priority:

DateTimePicker. Entering dates through the popup works (but only with
a hack in the config-field.component update() method). Displaying values
from the server does not work. Also the localisation is missing. See
attempts to fix it in the sheared module.
Errors, if the server cannot be reached. Should be solved in another
PR fixing the datasendservice and make generic error messages.

Can be done later.

was looking into this a little bit today and managed to DRY-Up the template. Also added some performance tweaks using change detection.
@FinnStutzenstein if you are happy with the changes, please rebase and we can review later again.


Explore CISecurity collaboration

It seems that CISecurity is working on OSCAL for their benchmarks.  Looking to set up collaboration conversations.

Pending an introduction by Zeal

FYI, their baselines are already public and they accept feedback via GH issues.
https://github.com/CISecurity/CISControls_OSCAL/

Intro has been sent, working on initial discussion

CC @achetal

Had an initial discussion this morning; more coming, collaboration likely and may loop in other entities including NIST and the CSA

Here are my notes from today:

CIS provides Mapping as a Service - controls only, which is a very popular service that tool vendors and orgs look at.
Looking for all frameworks to be represented in OSCAL, and map together as needed.  Some work on refining mapping methodologies; opportunity for collaboration.  Internally they plan to come up with use cases and think about the end goal of the mapping.  They currently use ideas like superset and intersection, but are also looking to be able to identify gaps during mapping exercises.
CSA CCM is 4.0 in OSCAL; CIS has mapped, but no unique IDs yet.

Want unique IDs for their benchmarks.

Cloud providers are interested.
CSA does have CCM 4.0 in OSCAL, not sure where it resides
CIS mapping to CSA is in https://github.com/CISecurity/CISControls_OSCAL
If we want to talk about coming together for a mapping methodology.
CIS Meets with CSA and NIST regularly; going to work on a method to collaborate more together instead of individually.  Consider a CIS Workbench community or GitHub discussions.


fix(MazeWeb): Add resize screen feature

Add fullscreen and unfullscreen buttons to MazeWeb/index.html
Add fullscreen and unfullscreen icons to MazeWeb/icons/
Add fullscreen and unfullscreen function to MazeWeb/js/activities.js

Fix #400

@felipebrunetti94 Since this is a visual change, can you provide us some prints/gifs of the changes?

It's a good start.
BTW you're hiding the toolbar but you don't resize the board, so the real size of the board is not increased. You must resize the screen on each click on fullscreen/unfullscreen button.

Plus: don't do PR on master branch.
See https://github.com/llaske/sugarizer/blob/master/CONTRIBUTING.md

@llaske  I'm deleting this branch and opening a new one on the dev branch :D


how to fill anything or replace anything with an image?

as the title mentioned, how to fill anything or repalce anything with another image,  just extracting the object from an image, then filling or replacing the  mask area?

I also have the same question.


About real-time sound changes

The effect of offline rendering is very good. And the real-time sound changes at each time slice segmentation point, due to the problem of fading in and out of the effect, the swallowed sound is slightly serious and unnatural.
Suggestion:
1.each time slice is changed to a sliding window of variable length, and the segmentation point is determined according to the gradient of the sound amplitude.
2.Use STT model for sentence segmentation and segmentation.

Got the answer in the QQ. Hold the time slice longer than 2 seconds for the encoder to process.


refactor(coral): Add user and team links

Linked issue
Resolves: #1067
What kind of change does this PR introduce?

[ ] Bug fix
[ ] New feature
[x] Refactor
[ ] Docs update
[ ] CI update

Description

All team names in tables are now a link to the team overview page.
All user names in tables are now a link to the users overview page.

Requirements (all must be checked before review)

[x] The pull request title follows our guidelines
[x] Tests for the changes have been added (if relevant)
[x] The latest changes from the main branch have been pulled
[x] pnpm lint has been run successfully

Are we planning to introduce "overview" pages for each team and user? Because that's what I would expect such links to go to (like configuration/teams/Ospo).

Not as far as I know. Currently, Angular Klaw also links to the overview pages.
We could think about that for later though


Fix responsiveness of Meshery.io page on Mobile phones

Description
This PR fixes #1541
Notes for Reviewers
Right parallel polygon and callout width is showing buggy behaviour, setting integrations-heading to overflow-x hidden on media screen max-width 480px seems to working fine, also changing media screen max-width of section layout
to 480px is also solving overflow bug of callout element.
BTW still it's not a perfect solution because when I switch to desktop mode on mobile screen and while inspecting in chrome at some widths the right parallel polygon is still overflowing.
Right parallel polygon is really giving me a hard time to figure out the perfect solution.
Signed commits

[x] Yes, I signed my commits.

Hello @yogesh-sirsat
While your solution works and certainly helps in better defining the responsive design but on some cases it fails as mentioned in your last comment.
Better approach would be :
Targeting the overflowing components that breaks the responsive design:

parrllel-right polygon:
The overflowing polygon if its clipped when overflow , it would solve this problem on wherever its overflowing.

callout div: its border is also overflowing , so fix that

Img Multi-cluster Kubernetes Manager : also breaks on smaller screens

This component is also breaking on mobile screen.

Hey @yogesh-sirsat   Let's discuss this on website call today at 6:30 PM IST / 7 AM Central time. Please add this as an agenda item in the meeting minutes.

@yogesh-sirsat working on this still?

Sorry for the delay from my side, I don't seem to find time to continue working on it.
@sudhanshutech if you are looking to take over, you can continue.
Thank you.


build: Fix broken OIIO_NO_NEON definition

Clean up the #if tests that disable Intel SIMD when not on Intel architectures, which incorrectly disabled ARM NEON when on ARM.
Fixes #3909

@1-Olivier reports that this fixes the reported problem


question: why doesn't Javascript have optional static typing ?

tc39 is adding new things to JS. But why not optional static typing ?
If they do it, we don't have to use Typescript anymore and being able to pass type information to the engine.
We will have less dev dependency.

Please only report issues with the repo.  For discussions, you can open a topic on our forum.
Thank you.