screen readers should speak the line landed on when navigating with f3, f8, etc

Issue Type: Feature Request
Please consider adding a way for screen readers to speak the lin landed on when navigating with keyboard commands. For instance, you press ctrl-f, type, then press escape. Now, as you press f3 and shift-f3, you move from search result to search result. It would be helpful to hear the full line spoken that contains the result that gets focus. This holds for other navigation keys, such as moving by change, problem, breakpoint, etc.
VS Code version: Code 1.41.1 (26076a4de974ead31f97692a0d32f90d735645c0, 2019-12-18T14:58:56.166Z)
OS version: Windows_NT x64 10.0.18362
Remote OS version: Linux x64 3.16.0-4-amd64

Yes, basically what happens when a breakpoint is hit. Ideally, you'd press F3 or shift-f3 and hear the line landed on, with the "x of y found for..." announcement following the line. This same would happen for other navigation commands, as described in the initial issue.
--
Alex Hall

On Jan 23, 2020, at 05:20, Isidor Nikolic<EMAIL_ADDRESS>wrote:
Hi Alex,
Thanks for filling the issue and I think this makes perfect sense.
We already do this when a breakpoint gets hit. Code pointer https://github.com/microsoft/vscode/blob/2f1419db46d4a108e72ec58043fa51188e4f67d7/src/vs/workbench/contrib/debug/browser/debugService.ts#L743 for reference.
Or did you mean when you press on a breakpoint from the breakpoints view?
We need to do the same thing for:
Find widget @rebornix https://github.com/rebornix
Problem @sandy081 https://github.com/sandy081
SCM moving by change @joaomoreno https://github.com/joaomoreno
Assigning this to next milestone so we look into adding this.
There might be a chance that all these use cases use the same underlying EditorService api and that we can maybe tackle it on that level.
@rebornix https://github.com/rebornix @sandy081 https://github.com/sandy081 @joaomoreno https://github.com/joaomoreno let me know if you do not have time and I can look into your areas. Just provide pointers.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/microsoft/vscode/issues/89111?email_source=notifications&email_token=AAILC25Q2FULYGW55VYVGWTQ7FVQHA5CNFSM4KKKGRY2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJW36XQ#issuecomment-577617758, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAILC26IG33F2CS6VGDN6NDQ7FVQHANCNFSM4KKKGRYQ.

@mehgcap thanks for feedback, yes that makes sense to me.
@rebornix thanks for pointers I might look into this right now.

@mehgcap I have some questions:

Find widget:  for me it currently nicely reads out "1 of 4 found for SEARCH_TERM at LINE:COLUMN". So for example "1 of 4 found for hello at 7:3" do you not hear this, or just just think this message should be improved to be what you proposed?
Problems: how do you navigate problems. Currently we designed this to be via F8 and shift + F8. Once you navigate on a line with error we simply read that error. Reading the content of that line also might be confusing. How do you suggest we improve this? Or do you navigate problems differently?
Move to next change does not read the whole line nicely, are you using the F7, shift + F7 experience for this? If yes we plan to improve that as part of https://github.com/microsoft/vscode/issues/88695

I hear the message, and would like my suggestion prepended to the existing announcement.

echo "Hello world!"; hello found at line 9 column 6, 1, of 1
or something similar.

Similar to above, though a setting to let the user control whether the line or problem is spoken first would be great.

doStuff(); error, undeclared function "doStuff" at line 7, column 1
or
error, undeclared function "doStuff" at line 7, column 1. doStuff();

Yes, the interface for that is very different. I originally thought f7 would act like f3 or f8, not realizing it would bring up a whole separate list. If that UI is the one that will continue to be used, it wouldn't make sense to apply the idea in this issue to that.

I agree with @mehgcap here. The reason is really because on it's own, just knowing the line and column name, while useful, doesn't give context unless you can either:

See your cursor, in which case reading out the line might seem overly verbose
know the entire file by heart , which is unlikely.

That is where Find is concerned, in any case. Ditto for the problems view, just knowing the error message is useful, but unless you know where you are in the file, which at this point you don't because you were just jumped, you won't know the context you're in that can help debug the error.
The first thing someone is going to do in that instance is up arrow down arrow to read the current line they're on. If we automate that, that would save the user a step and make the info we're already providing a lot more useful.

@mehgcap Ok, we change the find to pronunce the following for your example from above
echo "Hello world!"; 1 of 1 found for 'Hello' at 1:2
Please note the following details:
1 )there are no commas, dotas or anything except a whitespace between the line content and the find result.
2) I did not use the word "result", "line" and "column" to make it less verbose per previous feedback from users.
We can of course tune this so please provide feedback.
Next week vscode insiders will have this changes so it would be great if you could try them out and let us know how it behvaes now.
So for the diff editor let's stick with https://github.com/microsoft/vscode/issues/88695
Still keeping this issue open for the go to error widget. We will also look into improving that based on your feedback.
Thanks a lot!

Thanks! I agree that less verbose is better, but I'm a fan of separating things with punctuation to make it easier to hear. A comma after the line, and another between the line and column numbers, would be good. But that's just me. VSCode loves settings for everything; would it ever be possible to define the template to be spoken in a setting?
"accessibility.speech.templates.focusSearchResult": "{$line}, {index} of {total}, at {lineNumber}, {columnNumber}"
This way people can set the announcement exactly how they want. Punctuation and text cues for some, compact information for braille users, less details for those who don't need them.
As the above would take a while, and may not happen at all, I'll just say I prefer commas to separate information. Thanks!
Sent from my iPhone

On Feb 6, 2020, at 06:36, Isidor Nikolic<EMAIL_ADDRESS>wrote:

@mehgcap Ok, we change the find to pronunce the following for your example from above
echo "Hello world!"; 1 of 1 found for 'Hello' at 1:2
Please note the following details:
1 )there are no commas, dotas or anything except a whitespace between the line content and the find result.
2) I did not use the word "result", "line" and "column" to make it less verbose per previous feedback from users.
We can of course tune this so please provide feedback.
Next week vscode insiders will have this changes so it would be great if you could try them out and let us know how it behvaes now.
So for the diff editor let's stick with #88695
Still keeping this issue open for the go to error widget. We will also look into improving that based on your feedback.
Thanks a lot!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

@mehgcap that makes perfect sense. I have added commas. As for the setting, we usually only add settings if there are conflicting opinions from users. I believe the current soution might work for everybody and I would only consider adding a setting in the future if users come with good reasons why the current annoucment does not work for them.
@sandy081 leaving this item assigned to you. So it would great if the goToErrorWidget pronunces the following
LINE_CONTENT, ERROR at LINE:COLUMN
or the other way around, whatever you prefer
ERROR at LINE:COLUMN, LINE_CONTENT

@isidorn thanks for the ping, your changes look pretty good.

Following is read when navigated to problems using goto problems
${LINE_CONTENT}, Error/Warning/Info/Hint at ${LINE:COLUMN}. ${problemMessage}
Example:

Open to do changes if there are suggestions.

That makes sense to me. Thanks for doing this!

@sandy081 PROBLEM_NUMBER of TOTAL_PROBLEM_COUNT would be helpful.
we also should do this for

f4: workspace search @roblourens @JacksonKearl
f7: go to next symbol @alexdima

@JacksonKearl this all makes perfect sense. However please file a new issue. Closing this.


Use a web worker to evaluate question variables

When a question's variables take a long time to be generated, or have an infinite loop, the editor page can't be loaded, so the question can't be edited to fix the problem.
If we moved variable generation to a web worker, it would happen in a different thread and the editor would be usable while generation is happening. We'd also be able to interrupt the worker if it takes too long.

The difficult part is functions that produce HTML - there's no document in a web worker.

Well, this was a beautiful dream!


Bug: getColWidths, getColumnCount, setColWidths not a function in TableNode from '@lexical/table'

I am implementing TableCellResizer plugin from lexical-playground,
In that code there is some operation using this functions (getColWidths, getColumnCount, setColWidths) on tableNode,
tableNode is imported from '@lexical/table'
This is LexicalTableNode.d.ts
here I can see there are not functions in TableNode class even after tweaking types of class (add functions types) it is not working seems like TableNode class actually does not have these functions.
/**
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 */
import type { TableCellNode } from './LexicalTableCellNode';
import type { DOMConversionMap, DOMConversionOutput, DOMExportOutput, EditorConfig, LexicalEditor, LexicalNode, NodeKey, SerializedElementNode } from 'lexical';
import { ElementNode } from 'lexical';
import { TableDOMCell, TableDOMTable } from './LexicalTableObserver';
export type SerializedTableNode = SerializedElementNode;
/** @noInheritDoc */
export declare class TableNode extends ElementNode {
    static getType(): string;
    static clone(node: TableNode): TableNode;
    static importDOM(): DOMConversionMap | null;
    static importJSON(_serializedNode: SerializedTableNode): TableNode;
    constructor(key?: NodeKey);
    exportJSON(): SerializedElementNode;
    createDOM(config: EditorConfig, editor?: LexicalEditor): HTMLElement;
    updateDOM(): boolean;
    exportDOM(editor: LexicalEditor): DOMExportOutput;
    canBeEmpty(): false;
    isShadowRoot(): boolean;
    getCordsFromCellNode(tableCellNode: TableCellNode, table: TableDOMTable): {
        x: number;
        y: number;
    };
    getDOMCellFromCords(x: number, y: number, table: TableDOMTable): null | TableDOMCell;
    getDOMCellFromCordsOrThrow(x: number, y: number, table: TableDOMTable): TableDOMCell;
    getCellNodeFromCords(x: number, y: number, table: TableDOMTable): null | TableCellNode;
    getCellNodeFromCordsOrThrow(x: number, y: number, table: TableDOMTable): TableCellNode;
    canSelectBefore(): true;
    canIndent(): false;
}
export declare function $getElementForTableNode(editor: LexicalEditor, tableNode: TableNode): TableDOMTable;
export declare function $convertTableElement(_domNode: Node): DOMConversionOutput;
export declare function $createTableNode(): TableNode;
export declare function $isTableNode(node: LexicalNode | null | undefined): node is TableNode;

My package json
{
  "private": true,
  "sideEffects": false,
  "type": "module",
  "scripts": {
   ...//removed
  },
  "dependencies": {
    "@aws-sdk/client-s3": "^3.577.0",
    "@aws-sdk/s3-request-presigner": "^3.577.0",
    "@headlessui/react": "^1.7.18",
    "@lexical/link": "^0.17.0",
    "@lexical/list": "^0.17.0",
    "@lexical/react": "^0.17.0",
    "@lexical/utils": "^0.17.0",
    "@popperjs/core": "^2.11.8",
    "@prisma/client": "^5.12.1",
    "@remix-run/node": "^2.8.1",
    "@remix-run/react": "^2.8.1",
    "@remix-run/serve": "^2.8.1",
    "@remix-validated-form/with-zod": "^2.0.7",
    "@tailwindcss/forms": "^0.5.7",
    "@umami/api-client": "^0.64.0",
    "beehively-icons": "^1.1.0",
    "camelcase-keys": "^9.1.3",
    "clsx": "^2.1.1",
    "froala-editor": "^4.2.0",
    "ioredis": "^5.3.2",
    "isbot": "^3.8.0",
    "lexical": "^0.17.0",
    "lucide-react": "^0.395.0",
    "meilisearch": "^0.38.0",
    "mime-types": "^2.1.35",
    "moment": "^2.30.1",
    "moment-timezone": "^0.5.45",
    "openai": "^4.33.0",
    "react": "^18.2.0",
    "react-color": "^2.19.3",
    "react-dom": "^18.2.0",
    "react-dropzone": "^14.2.3",
    "react-easy-crop": "^5.0.6",
    "react-email-editor": "^1.7.9",
    "react-froala-wysiwyg": "^4.2.0",
    "react-popper": "^2.3.0",
    "react-select": "^5.8.0",
    "remix-utils": "^7.6.0",
    "remix-validated-form": "^5.1.5",
    "rrule": "^2.8.1",
    "tailwind-merge": "^2.3.0",
    "usehooks-ts": "^3.1.0",
    "uuid": "^9.0.1",
    "values.js": "^2.1.1",
    "zod": "^3.22.4",
    "zod-form-data": "^2.0.2"
  },
  "devDependencies": {
    "@remix-run/dev": "^2.8.1",
    "@remix-run/eslint-config": "^2.8.1",
    "@types/lodash": "^4.17.0",
    "@types/mime-types": "^2.1.4",
    "@types/morgan": "^1.9.9",
    "@types/react": "^18.2.75",
    "@types/react-color": "^3.0.12",
    "@types/react-dom": "^18.2.24",
    "@types/uuid": "^9.0.8",
    "autoprefixer": "^10.4.19",
    "concurrently": "^8.2.2",
    "eslint": "^9.0.0",
    "morgan": "^1.10.0",
    "openapi-typescript-codegen": "^0.29.0",
    "postcss": "^8.4.38",
    "prettier": "^3.2.5",
    "prettier-plugin-tailwindcss": "^0.5.13",
    "prisma": "^5.12.1",
    "remix-development-tools": "^4.1.4",
    "tailwindcss": "^3.4.3",
    "typescript": "^5.4.4",
    "vite": "^5.2.8",
    "vite-tsconfig-paths": "^4.3.2"
  },
  "engines": {
    "node": ">=18.0.0"
  }
}

You're using code from the playground that depends on lexical table code that is not in the latest stable release. You can pin a nightly version for all of your lexical packages, or wait for the next stable release.


Cannot use the command view

On my Ubuntu PC, I have to run uva-node as root, so when I use the command view <problem nymber> it shows
[12347:12347:0808/023756.187382:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
and the command doesn't work. I set chromium-browser.
On the other hand trying to use uva-node without sudo shows
fs.js:646
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: EACCES: permission denied, open '/home/shafquat/.ssh/uva-node.key'
    at Object.fs.openSync (fs.js:646:18)
    at Object.fs.writeFileSync (fs.js:1299:33)
    at createKey (/usr/local/lib/node_modules/uva-node/cryptoUtil.js:32:8)
    at getKey (/usr/local/lib/node_modules/uva-node/cryptoUtil.js:44:28)
    at Object.<anonymous> (/usr/local/lib/node_modules/uva-node/cryptoUtil.js:50:17)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)

You have to set the right permission to your .ssh directory.


[Feature Request] i want to judge number(like 1 and 0) with checkbox but only boolean

Element UI version
1.2.3
OS/Browsers version
chrome 58.0.3029.110
Vue version
2.1.9
Reproduction Link
https://elementui.github.io/issue-generator/#/en-US
Steps to reproduce
use check with number，no work
What is Expected?
isChecked: function isChecked() {
if ({}.toString.call(this.model) === '[object Boolean]') {
return this.model;
}
else if(Number.isInteger(this.model)){
return this.model === 1;
}
else if (Array.isArray(this.model)) {
return this.model.indexOf(this.label) > -1;
} else if (this.model !== null && this.model !== undefined) {
return this.model === this.trueLabel;
}
},
just like this ,and i hope to see return its number
or other way to fix it
What is actually happening?
use check with number，no work

Use true-label and false-label: https://jsfiddle.net/jggwzsyu/


Convert SQL to Azure Storage so we do not need a SQL database

In order to save on cost/time for rolling out SQL server, we want to make use of storage accounts instead. The number of data points can also be from memory, not everything need to be in the storage.

Is there anything needed at all the comes from the database?

It is already setup for in memory

Checked the deployment myself. Db not needed anymore


wrong suffix for new file: jl becomes .jl.j

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: Version: 1.93.1 (Universal)
OS Version: macos 15.0 (24A335)

Steps to Reproduce:

cmd-n to make new file
save file as test.jl
file saved becomes test.jl.j

expected: saved as test.jl
also tested with empty profile with default settings, no extensions
https://github.com/user-attachments/assets/c3807731-b97d-427a-b444-135223b75bd2

@alexr00, @aeschli, could you please triage this issue? Thanks!

This is a Sequoia bug see also https://forum.sublimetext.com/t/sublime-text-started-adding-a-s-to-new-files-very-annoying/73628

Thanks @timanderson. It does appear to be a Sequoia bug. Another example: https://github.com/zed-industries/zed/issues/16969


kubectl kudo bundle command

LGTM.  The comment about the alpha or beta command can either be ignored, addressed here, or addressed at a later date

Closing in favor of @alenkacz's pending issue.

I'll preserve the branch for now @alenkacz


Automate movement of issues on the board when a PR is opened

When a new PR is opened, the issue that should be closed by it is moved to the In Review column.

I chose pretty much the same approach as for #1232
Tested with https://github.com/api3dao/airnode/pull/1242 which worked.
You can check the code here but again, more polishing and proper integration to our infra will be done ina separate issue once I see it's working.
Closing.


Support for NumLock key

Adds support for the NumLock key.
Currently when an unsupported key is released, the emulator will put 0x80 in the keyboard buffer, which is not correct behavior.
Note that I don't have a keyboard with the NumLock key, so I haven't actually been able to test that part.

Commit f92340d also adds support for the application menu key available on some keyboards


Add .eslintrc to .npmignore.

Saves ~4KB from the package size.

Thank you for your time.

Just published on npm @wtgtybhertgeghgtwtg


Flutter overlapped FlatButton is pressed together

I want my button to be clicked independently in Stack.
However they are pressed together. I've captured the CLIP for clear understanding.
And here is my sourcecode:
FlatButton(
  onPressed: () {
    print('profile image pressed');
  },
  padding: EdgeInsets.all(0.0),
  child: Stack(
    children: <Widget>[
      Container(
        child: Image(
          image: Theme.Images.testProfile,
        ),
      ),
      Positioned(
        right: 0.0,
        bottom: 0.0,
        width: 36.0,
        height: 36.0,
        child: FlatButton(
          onPressed: () {
            print('camera icon pressed');
          },
          padding: EdgeInsets.all(0.0),
          child: Container(
            child: Image(
              image: Theme.Icons.icCameraOrange,
            ),
          ),
        ),
      ),
    ],
  ),
),

Hi @dooboolab, please include the results of flutter doctor -v so we know the exact version of flutter you are running.

@jonahwilliams Sorry I've missed that.
flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, v0.5.7, on Mac OS X 10.13.6 17G65, locale en-KR)
[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[✓] iOS toolchain - develop for iOS devices (Xcode 9.4.1)
[✓] Android Studio (version 3.1)
[!] VS Code (version 1.25.1)
[✓] Connected devices (1 available)

! Doctor found issues in 1 category.

Hi @hyochan
I've tested your code (with minimal changes) on both mobile and

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

  void main() => runApp(MyApp());

  class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context) => MaterialApp(
      home: MyHomePage(),
    );
  }

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

class _MyHomePageState extends State<MyHomePage> {
    void _snack(BuildContext context, String message) => Scaffold.of(context)
    .showSnackBar(SnackBar(content: Text(message),),);

  @override
  Widget build(BuildContext context) => Scaffold(
    body:  Builder(
      builder: (context) => Center(
      child: FlatButton(
      onPressed: () => _snack(context,'blue'),
      padding: EdgeInsets.all(0.0),
      child: Stack(
        children: <Widget>[
          Container(
            color: const Color.fromRGBO(0, 0, 255, 1),),
          Positioned(
            right: 0.0,
            bottom: 0.0,
            width: 36.0,
            height: 36.0,
            child: FlatButton(
              onPressed: () => _snack(context,'red'),
              padding: EdgeInsets.all(0.0),
              child: Container(
                color: const Color.fromRGBO(255, 0, 0, 1),
              ),
            ),
          ),
        ],
      ),
  ),),),);
}

with the latest master

flutter doctor -v
[✓] Flutter (Channel master, v1.18.0-5.0.pre.46, on Mac OS X 10.15.4 19E266, locale en-EE)
    • Flutter version 1.18.0-5.0.pre.46 at /Users/nevercode/development/flutter_master
    • Framework revision 0d459f2326 (6 hours ago), 2020-04-08 21:32:25 -0700
    • Engine revision 5b4b1f33c6
    • Dart version 2.8.0 (build 2.8.0-dev.20.0 dcdc71d763)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at /Users/nevercode/Library/Android/sdk
• Platform android-29, build-tools 29.0.2
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.3.1, Build version 11C504
• CocoaPods version 1.9.0
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 3.6)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 45.0.1
• Dart plugin version 192.7761
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
[✓] VS Code
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.9.1
[✓] Connected device (3 available)
• Pixel 3a   • 965AY0WP5C • android-arm64  • Android 10 (API 29)
• Chrome     • chrome     • web-javascript • Google Chrome 80.0.3987.163
• Web Server • web-server • web-javascript • Flutter Tools
• No issues found!

and the issue appears to be fixed.
I'm closing the issue as solved
if you disagree please write in the comments and I will reopen it
Thank you


Not seeing meter 1 / social connect

Meter 1 is not appearing on live pages

we disabled it while we figuring out the issues with it.


Enhancement: Catch-all exception handling

When a Bullet app throws an exception, it triggers two handlers: the handler for Exception, and the handler for the exception subclass (i.e. RuntimeException or MyAwesomeCustomException). The handler for Exception always runs first:
// Always trigger base 'Exception', plus actual exception class
$events = array_unique(array('Exception', get_class($e)));

As a result, the behavior in the Exception handler applies to every exception. Subclass handlers can overwrite behavior that manipulates the Response, but any error logging or notification will apply to every exception.
In most of my Bullet apps, I use custom exceptions to handle all kinds of error conditions, including invalid user input. I don't necessarily want a stack trace in my error log every time a user mistypes their query, but I do want logs for otherwise unhandled or unexpected exceptions. In other words, I want to control my error logging on a per-exception (or per handler) basis. At the moment, that means I've got a giant switch statement (with a default case) in my Exception handler.
Swapping the order of exception handling so Exception is last would be a big backwards-compatibility break. What if a catch-all exception handler (maybe except, in the same category as before and after) were added that only ran if no other exception handlers were present? If App::filter() returned false when no handlers were triggered, it could look something like this:
// Run and get result
try {
    $response = $this->_runPath($this->_requestMethod, $path);
} catch(\Exception $e) {
    // Always trigger base 'Exception', plus actual exception class
    $events = array_unique(array('Exception', get_class($e)));

    // Default status is 500 and content is Exception object
    $this->response()->status(500)->content($e);

    // Run filters and assign response; returns false if nothing was run
    if (!$this->filter($events, array($e))) {
        $this->filter('except', array($e));
    }

    $response = $this->response();
    break;
}

Hhhmmm... what an unfortunate mistake. I think the user expectation is that SpecificException be handled first, and then fallback to a generic Exception handler.
In practice, I do wonder how large of a BC break it would be to change this. It seems like most people would just use Exception itself with a switch due to the current order of how events are fired, but it would be really hard to guess how this is actually used and depended on in the wild.

Seems like @netom should fix this in v2 :)


three new resources added to machine learning

🛠 Fixes issue #
📇 Changes proposed
✅ Check List (Mark all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[ ] This PR contains changes in the documentation
[x] This PR contains changes in the Code of the project
[x] The title of my pull request is a short description of the requested changes.

📄 Note to reviewers

Three new resources (10,11,12) were added to the machine learning page.

📷 Screenshots

Please refer the isseu in the PR @alaminrifat

I don't understand your comment, @hasnainmakada-99

@all-contributors, please add @alaminrifat as a contributor of tutorials

@all-contirbutors please add @alaminrifat as a contributor of tutorials

@all-contributors please add @alaminrifat as a contributor of tutorials


Lawrie branch

Looks great.  One suggestion which I can fix and repush.  Change:   st.image("/Users/lawrie/Data515/Project/books_banner.png", use_column_width=True) to st.image("books_banner.png", use_column_width=True)


#96 Added SubscriptionCreated Event

Added support for the SubscriptionCreated Event regarding issue #96

Could you rename it to SubscriptionStarted?
(Same as SubscriptionCanceled instead of SubscriptionDeleted)

Also, could you add a dispatched assertion to FirstPaymentSubscriptionBuilderTest?

Thanks for the feedback @sandervanhooft, I have changed the code.

Tweaked the docs a bit, but this is great. Thanks @pascallieverse !


RetinaNet

Is RetinaNet (or any other single stage detector) training/inference supported? I saw some field that correspond to RetinaNet in config.py - hence this question.
Thanks,

No, RetinaNet is not supported yet. Supported network modules are list in here.


User moderation

This a task to design user moderation in InvenioRDM. That will include capabilities, to mark a user as spam, inactivate a user, delete all user's content, safelist a user. We will need to implement both backend and frontend for this feature.
Resources
See mockups here under the "Users dashboard (List records)"
See RFC here
Actions

[ ] Design the feature, writing a small RFC to align the architecture of the backend with the rest of the team
[ ] Ensure that UI design is agreed and interfaces from the mockups are clearly updated in the RFC
[ ] Define current scope from the RFC, both for the backend and frontend implementation
[ ] Make sure the tasks are clearly stated in issues and tracked by this parent issue

Issues
### Tasks
- [ ] https://github.com/inveniosoftware/invenio-users-resources/issues/89
- [ ] https://github.com/inveniosoftware/invenio-requests/issues/334
- [ ] https://github.com/inveniosoftware/invenio-users-resources/issues/92
- [ ] https://github.com/inveniosoftware/invenio-requests/issues/336

From discussions, the following was agreed:

We will use invenio-requests for moderation requests. We will create a new request type for user moderation and use the underlying generic requests service/resource to interact with these requests.
User moderation requests are created when the user first publishes a record / creates a community.
Actions on users (block, approve, suspend) should be on the users-service
Permissions-wise, we should have more granular permissions in terms of administration. E.g. some admin users might be able to moderate users, others don't.
"After-actions" (e.g. what happens after we block a user) can be asynchronous for cases where these actions could take a lot of time (e.g. deleting thousands of records)
Permissions on the users' service are dictated by the service permission policy. We add new actions like "can_manage" that are only allowed to users of certain role/group (typically one that enables user moderation)
Permissions on the requests are dictated by the request's entities. We create a new entity resolver for roles/groups and they require the moderation role.

We agreed on splitting these requirements into multiple deliverables:

First derivable delivers the bare minimum. E.g. we can block users from the platform and they can't log in anymore.
The second deliverable delivers 1) after actions. E.g. after blocking a user, we also execute side effects like deleting all the user's records; and 2) automatic request creation after the user publishes for the first time.
From the second deliverable we have multiple open questions. E.g. how we add the user's "activity" to the request so the moderator can have more context on the user, like the list of user's records.

After discussion, the following was discussed:

Naming-wise, the entity should be called "group" instead of "role". However, the entity being resolved by a "GroupResolver" is a "Role"
Ideally, we should address these groups (or roles) by ID and not name. However, this can be implemented afterwards.
We might have use cases where the receiver of a request can be multiple entities. E.g. the receiver can be a user or a group of users. So maybe we might have "receivers" instead of a single "receiver".

2nd Deliverable
Regarding moderation actions (e.g. what happens after a user is blocked), we discussed:

Modules should register their actions separately. For now, we can assume they are independent since we'll be dealing with soft deletions.

For now, we can omit per-instance configuration and add it later.

User service should "notify" the registered modules to run their actions.
Like "block" actions, we also need "restore" actions.
We can't block the main execution thread, thus avoiding timeouts (e.g. we can kick off one celery task to handle after actions).
Actions should be idempotent
Record deletion can be anything from deleting one record to thousands of records. We need to be careful with this not to exhaust a lot of resources at the same time.
We need to think about reliability and consistency. E.g. deal with failures and consider retries

Following these points, the strategy for now is the following:

Think about decentralized actions registration (e.g. maybe entry points)
Think about distributed execution of the tasks

e.g. we can delete a user's records and communities separately

We agreed to ship in the second deliverable the following features:

Registration mechanism for moderation actions (users service)
Empty actions (records service)

The implementation of the actions will come in the next deliverable

We agreed on having a third deliverable focusing mostly on re-indexing user records after moderation. It includes:

Update the record's API and mapping and add an is_verified property to it
The property should be computed from the owner (parent.access.owner)for now. In the future, it might need to be computed using other information (e.g. communities).
Update the search to sort by is_verified (similar to Zenodo), so unverified records are moved to the bottom of the search results.

Re-indexing of records done in two parts:

Latest versions re-indexed immediately
Siblings (other versions + drafts) re-indexed afterwards (ideally in bulk).

4th Deliverable
We agreed on having a fourth deliverable focusing on protecting the user from concurrent moderation actions. E.g:

A user is blocked and then restored when the block actions are still running (e.g. deleting a high amount of records)

The agreed solution was the following:

Adding a lock mechanism (similar to CDS videos) to prevent concurrent accesses to user moderation on the same user (e.g. a Mutex)

Some details on the implementation were also discussed and agreed:

The lock is acquired as soon as possible (e.g. when the service method is called) and released as late as possible

This point is a bit tricky since the "real" latest release of the lock would be when the actions finished their execution.
This point in time would be inside an asynchronous context (a celery task).

Due to the previous issue, we agreed on having the locking mechanism done in two steps:

acquire the lock in the service call (with a timeout to avoid deadlocks in case of failures)
refresh the lock inside the celery task.

Refreshing the lock means that the celery task will have access to the lock unconditionally. Therefore, two tasks could actually dispute the lock. We believe that this can be mitigated if the lock timeout on the service call is sufficient to avoid a new moderation call from being accepted at the service layer

5th Deliverable
We agreed on having a fifth deliverable focusing on the creation of moderation requests when the user publishes a record.
The agreed solution was the following:

When a user publishes a record, we will create a moderation request asynchronously if the user is not verified yet - avoiding the overloading of the publish' operations.

It is expected that this step will add one db query on the user that has to be executed synchronously (to know if the user is verified or not).

We only allow one open request moderation for now.

We also agreed on adding the user management REST endpoints in this deliverable since the overhead of adding it was small for now.
We briefly discussed feature flags, namely:

Adding a flag to set verified to True / False by default. Some instances might want to just have all the new users verified by default, while others don't (like Zenodo)


Define secrets.NODE_AUTH_TOKEN to allow CI to release npm packages

According to https://github.com/hCaptcha/react-native-hcaptcha/actions/runs/8282088173/job/22662448149#step:3:10 it looks like secrets.NODE_AUTH_TOKEN is note defined
I need someone who have access to define it

Done


Issue/3076 fix memory leak introduced by using rlu cache (#4187)

Pull request opened by the merge tool on behalf of #4187

Merged into branches iso5 in 1dddfac701709ddb48a3056d50ba75bf46fa613e


Codegen broken with Hydrogen CLI 7 and Hydrogen 2023.10

What is the location of your example repository?
No response
Which package or tool is having this issue?
Hydrogen
What version of that package or tool are you using?
2023.10.4
What version of Remix are you using?
2.5.1
Steps to Reproduce
On a project with:

<EMAIL_ADDRESS>(or any 2023.10 version)
<EMAIL_ADDRESS>(or any 7 version)

Run
npx shopify hydrogen codegen
Expected Behavior
With:

<EMAIL_ADDRESS><EMAIL_ADDRESS>
This worked as expected and codegen was successful.
I expected<EMAIL_ADDRESS>to work as well since it has no dependency on @shopify/hydrogen.
Actual Behavior
Fails with the below error using<EMAIL_ADDRESS>
error
[Codegen] Cannot find module<EMAIL_ADDRESS>
I found I experienced issues with any combination of<EMAIL_ADDRESS>and @shopify/hydrogen-cli@7.
It seems that the customer-account schema setup changed in @shopify/hydrogen@2024 and<EMAIL_ADDRESS>only works with that new setup. @shopify/hydrogen-cli@7 changed its @shopify/hydrogen-codegen dependency to version 0.2, so  it now doesn't work with<EMAIL_ADDRESS>

Hi @diced-dev, I think you need to migrate to Hydrogen 2024.1.x to use CLI 7.

Hi @blittle, if that's the case you might want to include it somewhere in the documentation or changelog to save other users wasted time, I was forced to dig through the packages to figure this out since it wasn't noted anywhere.


added new project

I added CodeCombat which is a website that teaches the fundamentals of computer science through a video game!

Oo thats soo cool! Will check it out later :D


Fix Mismatch in Flow Rates

URBANopt/ThermalNetwork pass flow rates in m3/s, whereas GHEDesigner are expecting them in lps. This corrects the units.

@vtnate @JingWang-CUB I'm going to close this PR for now since it looks like the issue could be resolved with some doc fixes over here: https://github.com/urbanopt/geojson-modelica-translator/pull/623. Feel free to reopen this one if needed.


Fix ClusteredBitVector::fromAPInt for zero-sized vectors.

A one-bit zero APInt is a reasonable stand-in for everywhere we need this.

@swift-ci Please test

@swift-ci Please test source compatibility


Redirect to original page after sign in

Gogs version (or commit ref): <IP_ADDRESS>3
Git version: 2.1.4
Operating system: Debian/Linux
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[x] SQLite

Can you reproduce the bug at https://try.gogs.io:

[x] Yes (example: https://try.gogs.io/nome/hello/_edit/master/README.md)
[ ] No
[ ] Not relevant

Log gist (usually found in log/gogs.log): N/A

Description
When following a direct blob edit link on GitHub while not logged in, one gets a log in prompt, and is afterwards redirected to the file editor. This behaviour is particularly useful in conjunction with "Edit on GitHub" links in documentation generated from a repository.
Gogs also allows one to log in in this case, but redirects to the landing page afterwards instead of the original URL, forcing the user to navigate manually to the correct repository and file. This is certainly not a big issue, but a small feature that would be nice to have.

Same as #4374?

@Fastidious Yes, thanks. I missed that one while searching for existing issues. Closing this one as duplicate.


How to disable Blazor server side render?

Could you please tell me how to disable Blazor server side render in .NET Core 3.0 Preview 4
Thanks...

This might be a regression because in preview 3, you just needed to remove @(await Html.RenderComponentAsync()) from cshtml page. In preview 4 this doesn't work anymore.

I believe that preview rendering should turn off.
This is not always useful and may lead to unnecessary code for the interaction of the preliminary and hub rendering.

@enetstudio, Found a solution at https://github.com/aspnet/AspNetCore/pull/8911
app.UseEndpoints(endpoints =>
{
   endpoints.MapBlazorHub().AddComponent<App>(selector: "app");
   endpoints.MapFallbackToFile("index.html"); // or - endpoints.MapFallbackToPage("/_Host");
});

Thanks for answering, @cores-system!

Many thanks, @cores-system!

Am I missing something? I'm using VS 2019 16.1 preview 2 and can't make this work (dotnet core 3 preview 4).
I just started a new Blazor Server side template then, I change from:
app.UseEndpoints(endpoints =>
            {
                endpoints.MapBlazorHub();
                endpoints.MapFallbackToPage("/_Host");
            });

to
app.UseEndpoints(endpoints =>
{
endpoints.MapBlazorHub().AddComponent("app");
endpoints.MapFallbackToFile("index.html");
});
And then, create index.html inside pages folder
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>BlazorClientSide</title>
    <base href="~/" />
    <environment include="Development">
        <link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />
    </environment>
    <environment exclude="Development">
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
              asp-fallback-href="css/bootstrap/bootstrap.min.css"
              asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute"
              crossorigin="anonymous"
              integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"/>
    </environment>
    <link href="css/site.css" rel="stylesheet" />
</head>
<body>
    <app></app>
    <script src="_framework/blazor.server.js"></script>
</body>
</html>

When deployed to browser: 404


Navigation timeout of 30000 ms exceeded

hi,
Home Assistant 2023.8.3
Supervisor 2023.08.1
Operating System 10.4
Frontend 20230802.1 - latest
Israeli Bank Firefly iii Importer version: 1.3.7
getting the error:
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
[2023-08-20 14:34:25.592] INFO (110): Starting Israeli Bank Firefly iii Importer
version: "1.3.7"
[2023-08-20 14:34:25.597] INFO (110): Getting state from firefly...
[2023-08-20 14:34:26.126] INFO (110): Getting scrap data...
[2023-08-20 14:35:25.281] ERROR (110): leumi  failed with type GENERIC: Navigation timeout of 30000 ms exceeded
[2023-08-20 14:35:25.286] INFO (110): Getting or creating accounts...
[2023-08-20 14:35:26.336] INFO (110): Manipulating...
[2023-08-20 14:35:26.365] INFO (110): Getting firefly transactions to compare...
What am I missing?
Thank you

Old ticket, sorry for late reply
this is an issue with scraper / site
I hope this is not longer an issue with the latest version
If still reproduce, please open a ticket at https://github.com/eshaham/israeli-bank-scrapers


Link expired.

The link to download the fulldb.tar file has expired.

Thanks, the link is updated.

@OatsCG The fulldb.tar file link just points to the github repo root and not to onedrive.


fix: ditiona upgraders ids

Issue
https://gravitee.atlassian.net/browse/APIM-6914
Description
A small mistake has ben done when we fixed the EventLatestUpgrader. The ids has been reversed on start/stop and publish/unpublish events. The dictionary is well deployed at the end but here we do a fix to use the proper ids for dictionaries events during migration.
Additional context

Waiting for the release to merge and test it properly


Support sharing between TCP and HTTP services

@ayj commented on Tue Feb 28 2017
Envoy currently doesn't support using both tcp_proxy and http_connection_manager filter on the same port for different services. Support for this features requires updating envoy tcp_proxy filter to be optionally non-terminal and fallback to other filters (e.g. HTTP) on the same port. The workaround for this limitation is to not share ports between destination services with different protocols.

@kyessenov commented on Thu Mar 02 2017
Started https://github.com/lyft/envoy/issues/527 to initiate a design discussion how to handle it properly.

This will be possible once the fields here are implemented: https://github.com/envoyproxy/envoy/blob/master/api/envoy/api/v2/listener/listener.proto#L76


update netstandard2.0

Thanks for these changes, Could you get this building on a CI server? (e.g. AppVeyor)?

I think you need #11 for the tests


Intersection of two arrays

Enter your question -
Given two arrays arr1 and arr2. We need to find the intersection of both the arrays and return the result as a list.
Enter link to the question(if question belongs to any online platform) -
N\A
Tags for the question(eg - Array, Basic, Stack, etc.) -
Arrays
Example:

As a part of Hacktoberfest, @SarthakKeshari please assign this issue to me

@aadityasinha-dotcom,
Go ahead, Kindly add your solution to "Arrays/1D Array" folder
Deadline - 03/10/2021


add show service key detail

[#87061876]
Signed-off-by: zhang-hua<EMAIL_ADDRESS>

@simonleung8 please review this PR for getting service key detail. Thanks!
cc @maximilien @xingzhou

@simonleung8 have fixes the minor issues commented by Max. please help review this PR for getting service key detail. Thanks!
cc @maximilien @xingzhou

Add one more test case for get the detail of non-exist service key suggested by Max. Thanks!

Left some comments, nothing really major. I think the rest of it is good.

@simonleung8 thanks for your comments! I have updated this PR. please take a look.

Thanks for addressing the issues so quickly. Merged.


stucks at [INFO] Loading ShrecNet..

The code freezes at 2020-09-30 16:58:02,672 [INFO] Loading ShrecNet.. Ubuntu 18.04

Hello, could you please elaborate on the problem? From what you've said I can tell that you've run gesture_receiver.py successfully. That file is one half of the application i.e. the receiving half of the keypoints.
For the keypoints to be generated and sent to gesture_receiver.py, you must build and run the mediapipe executable, as described in the README. While the executable is running, if you run the gesture_receiver script, it should work. Both programs must be running together for usage.
Let me know if you have any further questions.

Should I have to clone the mediapipe repository on separate directory,
build it and copy the hazel binary to this directory
On Wed, Sep 30, 2020, 5:38 PM Sriram S K<EMAIL_ADDRESS>wrote:

Hello, could you please elaborate on the problem? From what you've said I
can tell that you've run gesture_receiver.py successfully. That file is
one half of the application i.e. the receiving half of the keypoints.
For the keypoints to be generated and sent to gesture_receiver.py, you
must build and run the mediapipe executable, as described in the README.
While the executable is running, if you run the gesture_receiver script,
it should work. Both programs must be running together for usage.
Let me know if you have any further questions.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/sriramsk1999/gestop/issues/3#issuecomment-701348412,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALS677BV4NCSYOJRU4GMZW3SIMNSXANCNFSM4R67HXPA
.

A simpler approach (and the one described in the README) is to setup mediapipe and then clone this repo in mediapipe

Let me try and update it to you, cheers

FileNotFoundError: [Errno 2] No such file or directory: 'data/static_gesture_mapping.json'
even if I set python path as export PYTHONPATH=$(pwd)

this happens when I run from mediapipe directory. But after i run from the gesture directory it works, but nothing happens even I run the mediapipe execution parallel. No mouse movement

FileNotFoundError: [Errno 2] No such file or directory: 'data/static_gesture_mapping.json'
even if I set python path as export PYTHONPATH=$(pwd)

Ah, I'd missed that. Thanks for the catch, I'll push a commit and fix this.

this happens when I run from mediapipe directory. But after i run from the gesture directory it works, but nothing happens even I run the mediapipe execution parallel. No mouse movement

That is strange. Are you using the mediapipe executable specified in the README? Compiled and executed using the instructions here?

yes. I build it using the extact instructions

is it something related to __post__init(self)

Okay so I had a look, and figured that you were using the CPU version, while I only use the GPU version. I tested out the CPU version and it didn't work so I can reproduce the bug.
I'll look into it and get back to you with a fix. Thanks for raising the issue!

thanks. Looking forward to it

I've pushed some changes that should hopefully fix the issue. Could you pull the latest commits and rebuild the application?

Ohk. Lemme try and update you 👍
On Thu, Oct 1, 2020, 9:33 AM Sriram S K<EMAIL_ADDRESS>wrote:

I've pushed some changes that should hopefully fix the issue. Could you
pull the latest commits and rebuild the application?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/sriramsk1999/gestop/issues/3#issuecomment-701868980,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALS677EL2FWPAUJFA7M25HLSIP5Q7ANCNFSM4R67HXPA
.

<IP_ADDRESS>
Server Connection Failed
I think the server is not connecting . The zmq can't listen. Still no luck in running

Are you sure you have the latest commits? In particular, in hand_tracking_landmarks_cpu..cc , is this flag set to 1 and not 0?

ERROR: /home/nandu/Desktop/mediapipe/gestop/BUILD:36:10: //gestop:zeromq: missing input file '//gestop:zmq.hpp'
Target //gestop:hand_tracking_cpu failed to build
Use --verbose_failures to see the command lines of failed build steps.
ERROR: /home/nandu/Desktop/mediapipe/gestop/BUILD:36:10 1 input file(s) do not exist
INFO: Elapsed time: 15.750s, Critical Path: 0.83s
INFO: 0 processes.
FAILED: Build did NOT complete successfully

latest commit throwing this error. So I built it using previous one

Please use only the latest versions in future comments, it's harder to debug if we are not on the same page.
As for the BUILD error, have you completed all the steps in the README?
ZeroMQ - The zeromq library (libzmq.so) must be installed and symlinked into this directory. The header only C++ binding cppzmq must also be installed and its header (zmq.hpp) symlinked into the directory.

ERROR: /home/nandu/Desktop/mediapipe/gestop/BUILD:84:11: C++ compilation of rule '//gestop:hand_tracking_landmarks_cpu' failed (Exit 1) gcc failed: error executing command /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -g0 -O2 '-D_FORTIFY_SOURCE=1' -DNDEBUG -ffunction-sections ... (remaining 62 argument(s) skipped)
Use --sandbox_debug to see verbose messages from the sandbox
gestop/hand_tracking_landmarks_cpu.cc: In function 'mediapipe::Status RunMPPGraph()':
gestop/hand_tracking_landmarks_cpu.cc:208:20: error: 'buffer' is not a member of 'zmq'
sock.send(zmq::buffer(output), zmq::send_flags::dontwait);
^~~~~~
gestop/hand_tracking_landmarks_cpu.cc:208:41: error: 'zmq::send_flags' has not been declared
sock.send(zmq::buffer(output), zmq::send_flags::dontwait);
^~~~~~~~~~
Target //gestop:hand_tracking_cpu failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 22.235s, Critical Path: 19.81s
INFO: 0 processes.

created symblic link for libzmq.so,zmq.hpp

It appears to be a problem with your zmq installation. Can you run the first example here and check if it runs successfully? Compile with g++ file.cpp -lzmq

test.cc: In function ‘int main()’:
test.cc:8:20: error: ‘str_buffer’ is not a member of ‘zmq’
sock.send(zmq::str_buffer("Hello, world"), zmq::send_flags::dontwait);
^~~~~~~~~~
test.cc:8:53: error: ‘zmq::send_flags’ has not been declared
sock.send(zmq::str_buffer("Hello, world"), zmq::send_flags::dontwait);

this is the error after running the test script

Okay looks like we've isolated the problem. There's something wrong with your zmq/cppzmq installation. I would suggest making sure that you have the latest versions of the zmq and cppzmq, or opening an issue on their repo.

thanks it worked.

Thank you for your time and effort for replying to my queries instantly. Great job for making this work

Glad to hear it! :)


 If it looks useful you can merge it.

Nice! I appreciate the help with python because I am totally a stack overflow pythoner 😂


machine REPL improvement

This change will produce friendlier error messages in "machine REPL" mode, which we use in some cases where expression shells are run indirectly.
Also I found during my macOS testing that an 'illegal instruction' exception kills the 'hi' process (just on macOS I think).  This came down to a simple issue with a couple of non-virtual destructors, which I've fixed here as well.

This build (and one in another PR) is getting stuck on one of the macOS build targets.  It seems to be trying to rebuild everything (clang and other libs) and then times out after 50 minutes.  I don't think that this is related to the content of this PR but I'm looking into how this can be resolved (possibly in travis-ci config).


Release a 1.0 version

This library appears to be the de-facto standard for approximate comparisons. Downstreams include ndarray and nalgebra. I just ran into an issue where ndarray is using an older version tied to an older version of num-complex. If you aren't planning on making breaking changes then it would be nice if you could bump to a 1.0 version so that feature additions don't require upstreams to bump their versions.

As you can see I actually opened a similar issue with num-complex for that reason. That being said I think there is still value in this crate considering doing it as well.

Another way to limit future breakage could be to use the semver trick.


Add Document::setErrors($errors)

Add a possibility to set error-objects as described in http://jsonapi.org/format/#error-objects

Something to keep in mind is that "The members data and errors MUST NOT coexist in the same document."  (http://jsonapi.org/format/#document-top-level) Should consider adding a check for that in.

What kind of error-mechanism do you prefer in the code? \LogicException (http://php.net/manual/en/class.logicexception.php) might fit or do you prefer a generic \Exception? Let me know and I'll add that check.

LogicException sounds good, thanks!


[ODS-4299] Cleanup remaining bulk references

I removed .gitignore file: #File System Queues section
I removed Application\EdFi.Ods.WebService.Tests\WebApiInstaller.cs: line 99, commented out queue installer


feat: Stripe GraphQL

package readme: https://github.com/nhost/nhost/tree/feat/graphql-stripe/packages/stripe-graphql

and we'll need to add a changeset
good stuff ;)

I would also add to the readme an explanation about permissions on remote schemas: Hasura handles field permissions, whereas we are here handling "record-based" permissions.

Should we use snake_case everywhere in the GraphQL API or transform everything to camelCase?
Option 1:
Use snake_case everywhere.
Pros:

Follows Stripe APIs naming convention.

Cons:

Breaks GraphQL naming convention.
Consumers of the GraphQL API is usually JavaScript, which use camelCase.

Option 2:
Transform everything to camelCase.
Pros:

Follows GrpahQL naming convention.
Consumers of the GraphQL API is usually JavaScript, which use camelCase.

Const:

Breaks Stripe API's naming convention.

Note
It's always possible to use aliases in GraphQL so users can get the data in the form they want no matter what we decide.
Example:
If we decide on using camelCase but the user wants the data returned in snake_case naming convention.
stripe_customer: stripeCustomer {
  id
  name
  address {
    city
    postal_code: postalCode
  }
}

I would call the package @nhost/stripe-js because we might want to have implementations in other languages and that way we follow the same pattern as the other packages.

Should we use snake_case everywhere in the GraphQL API or transform everything to camelCase?
Option 1:
Use snake_case everywhere.
Pros:

Follows Stripe APIs naming convention.

Cons:

Breaks GraphQL naming convention.
Consumers of the GraphQL API is usually JavaScript, which use camelCase.

Option 2:
Transform everything to camelCase.
Pros:

Follows GrpahQL naming convention.
Consumers of the GraphQL API is usually JavaScript, which use camelCase.

Const:

Breaks Stripe API's naming convention.

Note
It's always possible to use aliases in GraphQL so users can get the data in the form they want no matter what we decide.
Example:
If we decide on using camelCase but the user wants the data returned in snake_case naming convention.
stripe_customer: stripeCustomer {
  id
  name
  address {
    city
    postal_code: postalCode
  }
}

Option 2. Users will use this package to get a GraphQL api, not to play with the Stripe API, and we should make our best to respect these conventions. Moreover this convention will spread into JS code, codegen etc.
OneGraph does it and their API is very clean

I would call the package @nhost/stripe-js because we might want to have implementations in other languages and that way we follow the same pattern as the other packages.

npm packages cannot be anything else than javascript

I would call the package @nhost/stripe-js because we might want to have implementations in other languages and that way we follow the same pattern as the other packages.

npm packages cannot be anything else than javascript

Yea I think @nhost/stripe-graphql is fine as it's the name of the npm package (JS only).
However, we have one package called @nhost/nhost-js which I actually think we should consider renaming to @nhost/client.


Add ADDAX NFT Collection project

Showcase addition

Name: ADDAX NFT
Description: The Addax NFT collection, is a collection of 11.111 unique NFT collectables. 1 Cardano Donated for every Addax sold. Special category with the 100% of the revenue Donated
Link: https://addaxnft.com/
Tags:

nft

I usually try to get not participate much in NFT/marketplace/asset PRs, but FYI - having multiple accounts with no previous history on github with only participation being :

fork of public repo
approval of this PR

Does not account to much in terms of approvals 🥲


Unit Tests and CI

Hey guys,
can we add some form of unit tests and CI (via github actions) to this wonderful project? :)
Thx in advance!

Yes, agreed, that would be terrific. I am currently investigating if there is anything within the Unreal Engine which would allow for automated functional testing of this but so far I haven't found anything suitable.
I will try to find an answer for a bit but to be honest I wouldn't hold my breath.

OP is ghosted. I'm closing this


implement ctrl/cmd + backspace/delete

First stab at some rust code. Diff is approximately half tests, half code.
Quite a few questions to address, specifically:

use of enums, is that a sensible approach? where they should actually live in the codebase if it is the right approach?

yes, approach is fine, can stay in that file if not used elsewhere, but names can change to be something more descriptive

should the get_end_index_of_run method be moved outside the impl block? I think it probably should, not sure if it stays in the same file or not

if it can move outside, move it outside and use it as a util

finally I think it could do with a refactor due to the repetition between delete_word and backspace_word, this is pretty clearly required as it stands but there may also be some value in keeping them separate in case we want to change the behaviour of only one of the methods

hold off on the refactor to make a single remove word method, need to sort dom traversal and codepoint navigation first

Superseded by different branch implementing this functionality


run "python main.py  --data minst32" and return error

Dear developers,
I used this code to test on Windows, however I got following message, after I run command " python main.py --data mnist32"
L = 32
batch_size = 64
clip_grad = 1
cuda =
data = mnist32
data_path = ./data
depth = 8
device = cpu
device_count = 1
dtype = float32
epoch = 500
keep_epoch = 10
kernel_size = 4
lr = 0.001
nchannels = 3
net_name = laplace_nl8,6,4,2_nr4_nm2_nh512
nhidden = 512
nhidden_list = [512, 512, 512, 512, 512, 512, 512, 512]
nlayers = 8,6,4,2
nlayers_list = [8, 8, 6, 6, 4, 4, 2, 2]
nmlp = 2
nmlp_list = [2, 2, 2, 2, 2, 2, 2, 2]
no_stdout = False
nresblocks = 4
nresblocks_list = [4, 4, 4, 4, 4, 4, 4, 4]
out_dir = ./saved_model
out_filename = ./saved_model\mnist32\laplace_nl8,6,4,2_nr4_nm2_nh512\out
out_infix =
plot_epoch = 1
plot_filename = ./saved_model\mnist32\laplace_nl8,6,4,2_nr4_nm2_nh512\epoch_sample
print_step = 1
prior = laplace
save_epoch = 1
subnet = rnvp
weight_decay = 5e-05
nparams in each RG layer: [20129536, 20129536, 15097152, 15097152, 10064768, 10064768, 5032384, 5032384]
Total nparams: 100647680
Traceback (most recent call last):
File "main.py", line 246, in
main()
File "main.py", line 182, in main
train_split, val_split, data_info = utils.load_dataset()
File "D:\Research Data\Coding\Python\RG-Flow-master\code\utils\data_utils.py", line 97, in load_dataset
assert data_info.channel == args.nchannels
AssertionError
(pytorch) PS D:\Research Data\Coding\Python\RG-Flow-master\code>

Hi, @harrypotty18 . Thanks for your interest in our work!
MNIST is a grayscale dataset, and you need to set --nchannels 1. (Sorry that we should have automatically set it.)

Hi, @harrypotty18 . Thanks for your interest in our work!
MNIST is a grayscale dataset, and you need to set --nchannels 1. (Sorry that we should have automatically set it.)


x902 - Home page UX

Added new column 'Most recent operation' to work progress
Changed status sort order
Made DataTable easier to use for large data sets

Looking great  👍


threaditjs implementation

@lawrence-dol
@yosbelms
@barneycarroll
@koglerjs
Here is my intial implementation of http://threaditjs.com/
http://leeoniya.github.io/domvm/demos/threaditjs
It is not yet in final form for official submission but gets everything done (and more) with 2x perf and smaller lib size than the current leader (Mithril).
All the niceties below are handled, however a route prefix is prepended by the code to handle running from a directory url rather than from a dedicated domain as the officially published implementations do. As an additional consequence of this, if a sub-page fails to load and renders an error, it cannot be refreshed (via browser F5) since the server is unable/not configured to serve up index.html regardless of requested url...these are not bugs and work fine otherwise.

[x] Handling document.title
[x] Handling 404s from the API
[x] Handling an error state
[x] Losing the ugly hash in the URL
[x] Trimming the title
[x] Pluralizing the comment count text (0 comments, 1 comment, n comments)

Perf is excellent in all cases thanks to explicit sub-view redraw and fast render in general. In addition, every user action/nav has immediate "Loading..." feedback of some sort, whereas current implementations will freeze/wait for the [slow] server to respond in cases besides the main view load. Like other implementations, when a comment reply is added, I just append what comes back to the cached parent's children array and redraw. This is not ideal and I'd rather re-fetch and redraw the entire parent to reflect any new sibling/descendant comments but that requires another painful server trip to re-fetch the parent since "It's not a very well programmed API, apparently." ;)
I've been using threaditjs to figure out exactly where the pain points are WRT how much module decoupling/0-magic is worth the cost of wiring everything together. Currently the implementation LOC size is on-par with the others (if not on the shorter end) but is rather ad-hoc in places. For example, some places use the Mithril-inspired mutation observer wrappers for auto-redraw while others call redraw() of sub-views explicitly. This implementation also strives to keep the views separate from the model/API Pattern A (w/OO) in [1], which leads to some technically unavoidable roughness and more code than might be used for a more monolithic Pattern C or UI-centric/React-like Pattern D in [1].
I'm thinking of reworking the base implementation to be with explicit redraw only (without any mutation observers or auto-redraw) for clarity and making another version where it's all based on observers w/auto-redraw. I don't know how practical the latter would be since in huge threads it makes no sense to pay the overhead to watch a couple properties x1000s of recursive sub-views to save a couple explicit redraw() lines. Right now it's a pre-meditated mix for this reason.
Overall it's not too incomprehensible IMO but could possibly be somewhat better. I'd like to do a couple alternate versions using the more concise/monolithic patterns as well. I chose the more difficult route since a decoupled pattern with an exposed model API is the one which demands most forethought and up-front engineering from the lib, else you compel pure hackery from app-space users.
Keep in mind that various domvm modules rely on modern APIs: ES6 Promise, history, requestAnimationFrame, fetch, querySelectorAll/Node.matches and you'll need to use polyfills to get it working in browsers with lagging or non-conforming support. No features are used which cannot be polyfilled down to IE9+.
@koglerjs, thanks a ton for threaditjs and I would be very interested in your feedback or suggestions if you have time. I 100% agree with your MVR terminology [2], which is why MVC never made sense to me for front-end as Mithril pushes it and domvm was written specifically to liberate M and V from any particular structural impositions but retain flexible composition and M-V binding where needed.
[1] https://github.com/leeoniya/domvm#subviews-components-patterns
[2] https://koglerjs.com/verbiage/threadit

Hey Leon!
I'm really excited you've taken the time to make an implementation and would love to get it up on its own subdomain.  I suspect all that's needed is to copy the example to  threaditjs/examples/domvm; the handling of responding with index.html is done by the existing server.  I'd be happy to work with you to get that up.
I haven't yet dug deep into the app.js, but I did notice the setup timer; you are supposed to end the setup time at the first AJAX call.  The time to "vtree build, ajax and render/repaint" is (probably) negligible in this particular case, but I'm intentionally making that a standard as it marks the application initialization time more thoroughly, or I should say it includes the framework's initialization, not just the time to run the implementation's app code.
I'll be reading your work in more detail and I'll let you know if I have additional feedback.
Again, flattered that you took the time to do an implementation!
-Jim

@koglerjs

I suspect all that's needed is to copy the example to threaditjs/examples/domvm;

You'd also need to remove the path prefix in the router.

I haven't yet dug deep into the app.js, but I did notice the setup timer; you are supposed to end the setup time at the first AJAX call.

At first this seems like a good common ground, but I'll explain some issues with this requirement, especially in decoupled systems like domvm.
Mithril gets 4ms setup for me. If you notice, it does no vtree build and no DOM mounting before the first ajax request completes. So if that request takes 500ms, you see a blank page. This is what the "Setup" measures - doing nothing except executing the app code, parsing the route and invoking its handler.
The "time-to-ajax" setup condition works great for frameworks executed in app-parse -> route -> ajax -> vtree/mount order. But it does not work great for app-parse -> route -> vtree/mount (loading...) -> ajax -> vtree/redraw (loaded!) which is what the domvm implementation does so it can immediately render something before any ajax request initiates, and the experience is IMO much better.
I've created another branch [1] and placed the timeEnd("Setup") calls just above the ajax inits and slightly re-arranged the code so that the order is now more similar: app-parse -> route -> ajax -> vtree/redraw (loaded!), but now the vtree/mount (loading...) stage is done in parallel with the initial ajax request, relying on it taking much longer than the app init (about 7ms). So the setup timer is also 4ms but with immediate render and post-ajax redraw.
This "uniform" implementation looks odd because the route is dispatched before the initial app init/render/mount. This is why things are not as straightforward as "time-to-ajax" - if you defer all rendering before any ajax return then you can conveniently "skip" a bunch of init cost.
This is basically the reason why the setup timer was set up the way it was. It attempted to time the same amount of init as what is done in Mithril. It's true that it excluded the time required to dispatch the route and invoke the handler, but as you can see it was well under 1ms and was negligible compared to including an initial vtree build/mount that Mithril does not do at the expense of waiting for the initial request to complete.

I'll be reading your work in more detail and I'll let you know if I have additional feedback.

Thanks!
[1] https://github.com/leeoniya/domvm/commit/43b8f05187046194449e8e24e55ef1d9659bae8c

@leeoniya been watching DOMVM with interest, keep up the good work!
@koglerjs it seems by and wide we're talking about initial 'time to screen'. In this case, wouldn't an animation frame resolution, called after XHR resolution, be a good indicator that everything's done?
Alternatively, we could use a more complex system of DOM mutation callbacks that unhook and resolve when the live DOM matches a query selector.
Because of different approaches to optimisation, these implementation discrepancies — tests being meaningful for one framework but not for another — are always bound to crop up AFAICT. Using something closer to traditional 'BDD' tests using native event hooks to assert pass conditions would seem to be a more reliable way of asserting meaningful outcomes IMO.

@barneycarroll

called after XHR resolution

this doesnt really work if the xhr is real and especially if it's randomly throttled like the threaditjs server. it woud work better if it's just a synthetic resolved promise with data.
initial time to screen is also not good because domvm renders the "loading.." version of the viw right away but thats not the end of the story.
i think the init timer just needs to be honest rather than strictly uniform but really a solution would be to prescribe what should be measured by the setup timer more explicitly or require an "loading" render to be done on init. if a framework does no rendering until all needed ajax requests resolve, and kills the timer just before they init, it's hugely unfair to ones which choose to render a ui asap in parallel with initial fetch.
my $0.02

just needs to be honest

That's a much better implementation strategy ;)

heh, it sounds funny but all the implementations are curated and i think mostly written by @koglerjs anyhow, plus it's not hard to spot cheating in ~250 LOC.
fwiw, i believe the domvm implementation is in fact honest with respect to how the mithril timer works...in both the initial and alt branch versions.

A single "setup" metric will probably not work in the long run as there are two eventual UX factors which will account for any and all setup:

Time to initial render
Time to final redraw/render (assuming synthetic, immediately resolved promises to simulate async)

A "setup" timer is not very meaningful to the end user and measuring the time it essentially takes to route and dispatch a fetch request is pretty meaningless since most (all?) implementations could be written to optimize for an immediately dispatched and parallel fetch.

Mithril gets 4ms setup for me. If you notice, it does no vtree build and no DOM mounting before the first ajax request completes.

I didn't know that about Mithril, probably because the difference is negligible if you're comparing it to the larger frameworks.  But it definitely should be measured.
The goal with that setup time is to evaluate time spent by the framework getting ready that does not include parsing/executing lib code.  I don't want to include any networking requests in this timing at all.  It can't be that Mithril refuses to touch the DOM until the request completes, can it?  Maybe I actually just didn't get around to getting a Loading notification for the Mithril example.

most (all?) implementations could be written to optimize for an immediately dispatched and parallel fetch.

Well, yes; but they could also be written to optimize to immediately show "Loading..." despite using no routing whatsoever.

Time to initial render

I'm trying to build metrics that contribute to this initial time.  Not only the time for dependencies to load and execute, but also the time for the framework to take the app "online."
Really I'm finding that this setup time should be very slight unless you're doing something really wrong (Ember).  The Setup metric is more about ammunition to punish the Angulars/Embers of the world than it should be used to decide or encourage small optimizations to setup order.

Because of different approaches to optimisation, these implementation discrepancies — tests being meaningful for one framework but not for another — are always bound to crop up AFAICT.

Yeah.  I'm thinking that the only sensible way to do it might be to time until "Loading" is present on the DOM.  For rendering threads I already had to just count the .comment elements on the DOM and I already intended to convert all the render timers to use that method.

Well, yes; but they could also be written to optimize to immediately show "Loading..." despite using no routing whatsoever.

Routing and dispatch (of the 4 routes) which happens in pure JS is at least an order of magnitude faster than doing even a single appendChild & reflow in the DOM. So this would never be an optimization that'd make any sense.
You could cheat of course and have
Loading...
 or other isomorphic things already in the html, but we're not gonna go there :)

It can't be that Mithril refuses to touch the DOM until the request completes, can it?

:\

I'll be more than happy to change the "Setup" timer to fire after initial render as I believe this to be more correct, as long as all implementations adhere to this standard, since excluding it can skew the Setup timings by 400%+

Since this has been identified as unintended behavior in the Mithril impl, I've updated the domvm impl to fire the "Setup" timer only after didMount, when the "Loading..." DOM is live [1] and just before the routing dispatch invokes the handlers/ajax requests. If you guys want to be pedantic and fire the timer just before the ajax requests, feel free to remove the opts/didRedraw hook and uncomment T.timeEnd("Setup"); in the two API routes. In my testing I could detect any measurable difference between them. As already mentioned, the routing overhead is negligible.

@koglerjs :

It can't be that Mithril refuses to touch the DOM until the request completes, can it? Maybe I actually just didn't get around to getting a Loading notification for the Mithril example.

Actually, that's exactly what it does by default, by blocking the redraw while any network request is pending. It's something that works well for toy apps with small data, and the second you do anything real you quickly realize that all requests must set the async flag on and show the user some indication of the action pending without blocking redraw.
On my first app (and as a new JS programmer at that) I about went round the twist trying to figure out why my throbber wasn't displaying while data was fetched. When I worked it out I wrapped Mithril's sender with my own function that set async true for every request. There simply isn't a justifiable use-case for locking up the API waiting on network operations.

This is all very interesting.  Honestly I'm surprised at Mithril's apparent behavior.  I can't imagine that Mithril gained a sizable unfair advantage over the main competitors in my performance analysis, but it does seem odd here.

Since this has been identified as unintended timing behavior in the Mithril impl, I've updated the domvm impl to fire the "Setup" timer only after didMount, when the "Loading..." DOM is live and just before the routing dispatch invokes the handlers/ajax requests.

None of this is holding domvm back from being included; I'll likely do a round of formalizing timer behavior across implementations as part of my next wave of ThreaditJS development, which is a little on hold at the moment.  If you throw me a pull request with domvm added I'll accept it for sure, or if you'd like me to include it manually I'll get to it in a few days.
As to where you should put the timer... assume that at some point the timer will end when some manner of "loading" text is detected in the DOM.

Routing and dispatch (of the 4 routes) which happens in pure JS is at least an order of magnitude faster than doing even a single appendChild & reflow in the DOM. So this would never be an optimization that'd make any sense [if we were measuring time to inital render] or have any outcome-changing effect

True; I think my point is something along the lines of "both of these things need to happen as fast as possible."
My goal for ThreaditJS was not to crown an established winner so much as make it easy to rule out frameworks that are doing something badly (in this case, initializing with a lot of unnecessary crap).  The point at which we're making sure these two things (DOM loading state, AJAX calls) happen quickly and first is a point at which we're already way outperforming (for instance) Ember.
In my mind it's ideal for the order of events to be route match -> AJAX call -> Loading status in the DOM.  Having "Check to see if Loading is in the DOM" be the setup leads to incentivizing putting the loading status first, which IMO isn't right: start the AJAX call as soon as you can.  (If you're wondering why the routing is so important to me, it's because an SPA has to be able to load the page cold at /thread/:id or similar: you can't know which AJAX you're waiting on until you've hit the route).
And if my point wasn't clear before, yes, the routing overhead should be negligible, but we've got Ember taking almost half a second on mobile devices.  Vue also takes a weirdly long amount of time.
I've keyed these metrics to detect that kind of misbehavior.  It's not currently designed to differentiate between Mithril and another small, sensible library, neither of which are stumbling through 7000 lines of router code (react-router).
That doesn't mean I'm not interested in figuring out the best way to measure this init time, of course; it certainly could and should be able to do so.
This has been a very productive thread for me; thanks once more.

@koglerjs
https://github.com/koglerjs/threaditjs/pull/6

I can't imagine that Mithril gained a sizable unfair advantage over the main competitors in my performance analysis, but it does seem odd here.

The initial "Loading..." views are cheap, so it's unlikely any currently tested lib would gain much at all from re-positioning the timer. When you're looking at 500ms craziness, 6ms (which is the difference it made for domvm) is basically 0. Either way, the implementations should measure the same thing despite this.
It's best to just have 2 metrics "time to initial render" and "time to full render". If the ajax request is started in parallel with initial render, then this will reflect in the spread between these two and the overall speed will be reflected by the raw values. So there's no "incentive" set up to do one before the other but to always minimize both times which includes parsing, routing, ajax init, app setup and render in whatever order the lib (or implementation) is designed for.
If you intend to test truly fast libs (Mithril, domvm, Inferno, Preact), including pure-vdom (kivi, snabbdom, citojs, vidom, etc..) then 4ms vs 10ms becomes a 250% error - it's just a different ball game which you may find pointless and choose not to play, i dunno.

Was playing with the threaditjs implementation and noticed that in the main thread list it displays an escaped apostrophe:
I don't know if I can make this gibberish like all the cool auto generated posts.

but in the thread view replies, apostrophe's display correctly:
I don't know if I can make this gibberish like all the cool auto generated posts.

That might be a fail on the part of the server; but it might be in DOMVM's implementation. The question for me is why the inconsistency? I assume that, like Mithril, DOMVM is "safe by default" with respect to rendering text nodes.

@lawrence-dol try the current version: http://leeoniya.github.io/domvm/demos/threaditjs/
all the posts and replies are actually markdown. and what comes back from the server is raw html, so the safety has to be disabled there. i fixed a couple places I missed for passing things through the markdown parser.
let me know if this still happens in the current version & repro steps

It correctly renders now.
I did notice that as I was typing it was dropping keystrokes. This was a nagging problem with Mithril early on, a race-condition with recreating input fields and losing events for the previous input field. Redrawing as a result of keyed input is unnecessary for the input field itself, but in this case it's also redrawing to reflect the rendered input beneath. I don't recall what Leo did to resolve it in Mithril. But it seems that for input fields special handling of some kind is needed (indeed, any input object where the event means that the input has already been rendered by the widget itself).

there is special handling in place already for dynamic attrs/props, if it's "dropping keystrokes", please open an issue with steps to reproduce.

I have a question, and pardon me if the answer is "read the manual"...
Looking at the code in ThreadItJS, deliberately not having yet read the docs, it seems like each rendered node is a generic array tuple:
function ThreadBranchView(vm, comment, key, imp) {
    return function() {
        return [".comment",
            !comment
            ? ["p", {style: {marginBottom: 20, fontWeight: "bold"}}, "Loading thread " + imp.router.current().params[0] + "..."]
            : [
                ["p", {_raw: true}, comment.text],
                [CommentReplyView, comment, null, imp],
                [".children", comment.children.map(function(comment2) {
                    return [ThreadBranchView, comment2, null, imp];
                })]
            ]
        ];
    }
}

To me it all seems to blend together, particularly
                ["p", {_raw: true}, comment.text],
                [CommentReplyView, comment, null, imp],

which seems like a mistake. But I am assuming that one is a string-properties-value tuple and the other is a view-state-???-context tuple.
It's just an observation from the point of view of a brand-new engineer looking at the code, but I think I would have liked to see something more explicit for a node wrapper, like:
                vm.node("p", {_raw: true}, comment.text),
                vm.node(CommentReplyView, comment, null, imp),

I realize I can create my own function to achieve this effect, I am more curious as to whether people don't get lost in a maze of brackets (and whether my intuition ala nodes is incorrect).

first, let's get on the same page. where are you finding this code in [1]?

[CommentReplyView, comment, null, imp]

this is a sub view, and this signature has been changed for a couple weeks now
[1] https://github.com/leeoniya/domvm/blob/master/demos/threaditjs/app.js

Ahhh. I went to the ThreadItJS link you provided, then clicked the source view; but that's on the koglerjs repo; your source link above is on your repo.

the corresponding portion is https://github.com/leeoniya/domvm/blob/master/demos/threaditjs/app.js#L178
i dont see how it's possible to confuse a sub-view with plain nodes. one starts with a function, the other with a tag string.

The source link on your implementation still points at koglerjs, which is how I ended up viewing out of date source.
I am currently looking at the source as the "next engineer who knows nothing about DOMVM except that it's a vDOM library with a component-first design". So I am testing myself to see if I can make reasonable sense of the code without more information (which I can, BTW).
My comments are simply to offer a "first look impression", which in a few days I'll never be able to do again. :-) Don't take them as criticism, merely observations.

The source link on your implementation still points at koglerjs,

oops.

My comments are simply to offer a "first look impression", which in a few days I'll never be able to do again. :-) Don't take them as criticism, merely observations.

yeah, i apologize my reply was a bit rude. however, please at least ingest the template reference [1] before choosing to silo yourself away from the docs which i spent so much time writing...specifically so i dont need to explain every bit to each user. so, yes, there's a bit of RTFM in my view :)
[1] https://github.com/leeoniya/domvm#template-reference

There's a bit of RTFM in my view :)

Never fear; that's my next stop. It's actually very rare that I only have a single (and superficial) comment at this point.

there is special handling in place already for dynamic attrs/props, if it's "dropping keystrokes", please open an issue with steps to reproduce.

Can't reproduce with the current code. :-)


snap: Transition to classic confinement

The Snap package is currently subject to strict confinement. We are already approved for classic confinement. Reasons to transition to classic confinement:

We need to move from core20 to core22 at some point, and the current Asciidoctor/Ruby package is blocked by Apparmor under core22. See #11116.
Allow access to projects outside of $HOME.
Allow access to non-standard Git config file locations without having to add more interfaces (e.g., system-files, personal-files).
Allow dart to access /proc/sys/vm/max_map_count

To do:

[ ] Create mechanism to detect if user is running Hugo as a Snap under strict confinement, then prompt then to refresh (see https://forum.snapcraft.io/t/19892/16). This would be in the last commit prior to the change to classic confinement.

[ ] Decide which parts we should continue to include under classic confinement, if any:

Git
Go
Asciidoctor
Dart Sass
Node
Pandoc
rst2html

I am inclined to remove all of them. We needed to include them under strict confinement, but under classic confinement users can install the dependencies as needed, just like any other installation method.

cc: @anthonyfok

I know very little about how Snap works, but I vote for the "least amount of work for us" option. I'm guessing that very few people use asciidoc, and those who do can go through some extra hoops.
Is it possible to define a baseline(say Git, Go, Node, Dart Sass) and leave the rest optional?

Is it possible to define a baseline(say Git, Go, Node, Dart Sass) and leave the rest optional?

Yeah, maybe, but there are some complications that I don't understand yet. If a classically confined Snap includes Dart Sass, and the user has installed Dart Sass, which is used? Or more importantly, which should be used? Further investigation is required, but there's no rush on this.
FYI: I am planning to embedded Dart Sass in the current Snap (strictly confined, core20) once things have settled a bit.

I am inclined to remove all of them

So, I think I was a bit frustrated by Ruby 3.x when I wrote this. I've changed my mind.

Closing for now.
We resolved the core20 to core22 transition, including the Ruby 3.x issue, in #12227 with credit and many thanks to @alexmurray.
The other restrictions/problems listed in the issue description are rarely encountered in the wild, and the convenience of self-containing the required and optional dependencies far outweighs the occasional edge case.


Segregate API types from the core

Is your feature request related to a problem? Please describe.
I think it would be better to divide the Discord API types or the types directory into a different repository, specifically created for the API types; essentially to remove clutter from the main codebase. Moreover, the repository will be activity-maintained with types for all API versions.

I dont like this idea, will elaborate on reasons when im more free just wanted you to know quickly in case u wanted to work on this. This is not something that is good to do.

One of the deductions I forgot to mention is that the current API types are not completely compliant with the latest version of API, namely v8.

Alrighty so let's break this down.

Separate repo for types only makes maintenance worse.
Discord is no longer going to support uses of different API versions so the entire purpose of having multiple goes out the window. With what happened to v7 of the Discord API because of other libraries choosing to push all users to an unstable and undocumented library version Discord is going to stop allowing using newer versions. That means the only 2 versions we can use atm is v6, v7, and v8.
Note in a few months, v6 & v7 are going to be turned off so any work done to build or maintain typings for them goes out the window. So all our types should prioritize v8.
When v9 is being released by Discord in the future we will have a deprecation period for which we will create a PR to update to the new version which will update the types accordingly.

One of the main goals of this library was not to worry about backward compatibility.

We should not spend any time trying to maintain things that are going to die out. Our goal should be to provide the very best library possible.
Anyone wanting to use an older version like v6 can still use any of our commits or tags/releases that support it. When they are ready to upgrade, they also get the best and latest changes.

@ayntee If there are any issues in the typings we should just patch those, please. Moving them to a separate repo would not resolve them.


Is there a way to reset all containers in tests

Hi I have defined a number of custom containers and in my tests I want to call .reset() on all of them instead of remembering to add a line to reset every new container I end up creating later.
Is there a way to do this now?

No, but...
let containers: [ManagedContainer] = [c1, c2, c3, c6, c5, c4]
containers.forEach { $0.reset() }

Yeah that's kind of what I have now. It's just having to update this every time a new container is introduced.

Make each container autoRegistering and register with a global set.


Unable to build on Clang 8.0.0

In file included from src/p3d-vma.cpp:9:
ext/VulkanMemoryAllocator/src\vk_mem_alloc.h:4441:47: error: call to implicitly-deleted default constructor of 'VmaPoolAllocator<VmaAllocation_T>::Item'
        vma_new_array(m_pAllocationCallbacks, Item, newBlockCapacity),
                                              ^
ext/VulkanMemoryAllocator/src\vk_mem_alloc.h:4404:27: note: in instantiation of member function 'VmaPoolAllocator<VmaAllocation_T>::CreateNewBlock' requested here
    ItemBlock& newBlock = CreateNewBlock();
                          ^
ext/VulkanMemoryAllocator/src\vk_mem_alloc.h:14113:24: note: in instantiation of member function 'VmaPoolAllocator<VmaAllocation_T>::Alloc' requested here
    return m_Allocator.Alloc();
                       ^
ext/VulkanMemoryAllocator/src\vk_mem_alloc.h:4348:11: note: default constructor of 'Item' is implicitly deleted because variant field 'Value' has a non-trivial default constructor
        T Value;
          ^
1 error generated.

I am not exactly sure what is going on, but I suspect the error is caused by the member VmaAllocation_T::m_LastUseFrameIndex; Its type is std::atomic<uint32_t> which does have a constructor. VmaPoolAllocator places one of those inside an union.
My build command is:
$ clang++.exe src/p3d-vma.cpp -Iinclude -Iext/VulkanMemoryAllocator/src -Iext/Vulkan-<IP_ADDRESS>/include

Contents of p3d-vma.cpp:
#define VMA_IMPLEMENTATION
#include <vk_mem_alloc.h>

clang++ --version:
$ clang++.exe --version
clang version 8.0.0 (tags/RELEASE_800/final)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\LLVM\bin

Thank you for reporting this issue. Indeed it looks like there is a bug as you described, which may occur in some compiler environments. I will work on a fix.

I've submitted a potential fix to master branch. Please let me know if it solves the problem on your platform.

Awesome, the latest commit did solve the problem!

Great, thanks!


fix bug of filters not being removed from the context menu

When i removed a filter, the visual indicators, and the entry in the context menu were not removed correctly

bug fixed in next release


Added support for setting transaction name via monolog extra context

Closes #842

Change looks good and clean, really good work. Just wondering if we should prefix all these extra keys to not clash with other libraries using the same names for something totally different. This is one of the main reasons I didn't support such feature when I coded the handler: I though that it was best to leave to the user the choice of how to implement it and from where to retrieve such information

Just wondering if we should prefix all these extra keys to not clash with other libraries using the same names for something totally different.

I see what you mean and totally agree. My personal opinion is that it is not necessary as it is possible to register processors for specific handlers or either exclude them, so i think this might not be issue.

I though that it was best to leave to the user the choice of how to implement it and from where to retrieve such information

I agree with this as well, i am the kind of person who prefers sending data to sentry via monolog and configure it via monolog processors - i missed this options so i am adding them, if you are okay with that, few more PRs are following soon 😄

it is not necessary as it is possible to register processors for specific handlers or either exclude them, so i think this might not be issue.

It may be an issue as long as I want to use both processors at the same time. If that's the case, then I have to choose between reimplementing one of the two, not use any of them or use only one of them.

if you are okay with that, few more PRs are following soon

We would be glad to get some more contributions and feedback from you and all the community of course :smile: I'm really undecided about the prefixed keys but I would say that since those worked fine in version 1.x let's keep using them here and hope for the best

It may be an issue as long as I want to use both processors at the same time. If that's the case, then I have to choose between reimplementing one of the two, not use any of them or use only one of them.

Yeah, sometimes i have problem with that i am trying to solve problems that might exist only in my head and other developers are not facing them 😄 let's see and wait for some feedback.


deprecated Stream handling in Scala 2.13

Scala's Stream is deprecated and LazyList should be used in Scala 2.13 so a compatibility trait has been added for testing.
For now, Scalaz doesn't support LazyList so scalaz.EphemeralStream is used instead for Scala 2.13.

@charleso Thank you!


No result table columns when using named subselect with join

Version
1.12.0
What happened?
running sqlc generate on a select statement that uses a subselect that includes a join operation results in an empty columnset
Relevant log output
# package sqlc
sql-queries/projects.sql:159:1: empty edit contents

Database schema
CREATE TABLE public.projects (
    id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
    name character varying(100) NOT NULL
);
CREATE TABLE public.project_saves (
    user_id uuid NOT NULL,
    project_id uuid NOT NULL,
    created_at timestamp without time zone DEFAULT now()
);

SQL queries
SELECT r.*
FROM (
        project_saves
        JOIN projects
        ON project_saves.project_id = projects.id
    ) r;

Configuration
version: "1"
packages:
  - path: "sqlc"
    name: "sqlc"
    engine: "postgresql"
    schema: "schema.sql"
    queries: "sql-queries"

Playground URL
https://play.sqlc.dev/p/7a3d51abd4191695fa4412ad377a93f3e6f764b5630dea0cb4e5051390f1d9ea
What operating system are you using?
Linux
What database engines are you using?
PostgreSQL
What type of code are you generating?
Go

This now compiles but the generated query is invalid
https://play.sqlc.dev/p/ff08c950047b9c1dd5606f92c1f98b581fb93617a85ac45de2a84a7c774ab7e9


Nordix metal3-dev-env repo sync fails with upstream

example: https://jenkins.nordix.org/view/Airship/job/airship_update_nordix_repos/2360/console

Updating master branch in /home/airshipci/slave_root/workspace/airship_update_nordix_repos/metal3-dev-env
~/slave_root/workspace/airship_update_nordix_repos/metal3-dev-env ~/slave_root/workspace/airship_update_nordix_repos ~/slave_root/workspace/airship_update_nordix_repos ~/slave_root/workspace/airship_update_nordix_repos
Already on 'master'
Your branch is up to date with 'origin/master'.
Current branch master is up to date.
Warning: Permanently added 'github.com,<IP_ADDRESS>' (RSA) to the list of known hosts.
remote: error: GH006: Protected branch update failed for refs/heads/master.
remote: error: You're not authorized to push to this branch. Visit https://help.github.com/articles/about-protected-branches/ for more information.
To github.com:Nordix/metal3-dev-env.git
 ! [remote rejected] master -> master (protected branch hook declined)
error: failed to push some refs to 'git@github.com:Nordix/metal3-dev-env.git'
Push done to git@github.com:Nordix/metal3-dev-env.git
Already on 'master'
Your branch is up to date with 'origin/master'.
~/slave_root/workspace/airship_update_nordix_repos ~/slave_root/workspace/airship_update_nordix_repos ~/slave_root/workspace/airship_update_nordix_repos

https://github.com/Nordix/metal3-dev-env/settings/access
'nordix-airship-ci' user access rights change from 'Maintainer' to 'Admin' soleved the issue.