Where is the API for Category Filterable Attributes

Bug report
Category Filterable Attributes
**I know there is API for filter products using category ID => Get products with filterable query parameters
**But How can I get those list of attributes?

Hi @AkashWeybee,
Did you check this doc,
https://devdocs.bagisto.com/1.x/api/products.html#get-products-with-filterable-query-parameters
Check this thread atleast.

Hi @AkashWeybee,
I just verified this and raised the issue here,
https://github.com/bagisto/bagisto-docs/issues/253


Read document data only for matching document IDs.

Without this, the migration assistant loads all order documents on every iteration. This leads to ... suboptimal runtimes and loads of errors if you limit the migrated orders in any way.

Hello,
thank you for creating this pull request.
I have opened an issue on our Issue Tracker for you. See the issue link: https://issues.shopware.com/issues/PT-12605
Please use this issue to track the state of your pull request.

thanks for your contribution @kleinmann 👍🎉💙
it is already released with version 4.2.5


test_array_object.py::test_getitem_masking relies on shape assertion

test_array_object.py::test_getitem_masking fails in Dask due to a assert_shape call on a masked array. This should be hidden behind the --disable-data-dependent-shapes flag.
See https://github.com/tomwhite/dask/runs/5306535598?check_suite_focus=true

Also https://github.com/dask/dask/pull/8750


Event convolution

Updated files (included a text file for commentary, tests for both real "non-trivial" functions, updated locations for things based on the "utils" configuration from recent reorganization)
Another start for Event convolution (we'd updated a lot of files since the start of the last pull request, and it was annoying that it suggested I'd "updated" a ton of files)
These files are pretty big, and this pull request is to start the dialog, it's probably not really needed to be pulled any time soon. I've updated test files, provided a commentary text file, and make the Images return zoomed in (in a clean way) * though you should run them an zoom in yourself.
The script file is pretty cool, with some sexy plots *** you'll need to have an Images folder (figured we'd talk about this later)***. As soon as the Images folder is added you should run the script and read the introduction in the script file
(Yay!!!! Goodnight)^2
@jarrodmillman @matthew-brett
~ You two are tagged in this pull request since the problems analyzed in the script file don't really have a clear right or wrong answer. Please comment on how I should direct this discussion for your sake. Thank you.

OMG. Thanks for all of your work.

merge

Why didn't this change the master?


Add support for NetBSD NVMM

NVMM is the native hypervisor in NetBSD.

Documentation here.
API here.


Adjusted example code for consistency

Updated "UMyGameInstance" and "UShooterGameInstance" instances to "UThirdPersonGameInstance"

Closing this PR due to inactivity.


CODEOWNERS file needed

Who would be listed as the code owners? @joesepi

see also discussion in instructlab/taxonomy#718

Above PR is now https://github.com/instructlab/taxonomy/pull/741

I think we can close.


Debug error system

Some coding are not found in program

@Samfrancisartuza I appreciate the report. Can you be more specific? It seems like you are saying that there is not sufficient test coverage for mnlite, which is true. If so, I can work on expanding the tests to cover more of the code base.

Closing as stale.


Increased readabillity of prints

Co-Authored-By: Arnar F<EMAIL_ADDRESS>

no?

no?

So it is on purpose that you have completely removed all the improvements I made in #38 ?

the purpose is to make the code readable. vi snakkede om det i gruppen og vi blev enige om at det var mere læseligt og forståligt

Okay, if the group thinks the other solution of writing lines was too complicated, then that's fair enough. But in this PR you have reintroduced at least three other errors that we had already fixed.

nå men så skal vi da bare lige kigge på det :D

But in this PR you have reintroduced at least three other errors that we had already fixed.

hvilke fejl så kigger jeg lige på det


issue: lean-action fails

Sometimes workflow fails with error message such that:
▼ Run : Get Mathlib Cache
  : Get Mathlib Cache
  echo "::group::Mathlib Cache"
  lake exe cache get
  echo "::endgroup::"
  echo
  shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
▼ Mathlib Cache
  info: mdgen: updating repository '././.lake/packages/mdgen' to revision '6a6a412465e82572f6e30385592eac52ab055c83'
  info: mathlib: updating repository '././.lake/packages/mathlib' to revision '03092720f68254315c95a5bf2[49](https://github.com/lean-ja/tactic-cheatsheet/actions/runs/9530357340/job/26270125659#step:5:55)c5f2cdef717d6'
  error: external command 'git' exited with code 1
  Error: Process completed with exit code 1.

see: https://github.com/leanprover/lean-action/issues/62

The cause of this is already known: it is due to the use of the github cache in the lean-action.
see: https://github.com/leanprover/lean-action/issues/62#issuecomment-2174583900

This problem is said to be temporary, but may still persist. I have confirmed that temporarily setting the lean-action use-github-cache option to false solves the problem.
@oliver-butterley What shall we do? Setting use-github-cache to false does not cause a serious slowdown, so I prefer to avoid the problem by not using the github cache in the current situation.

Avoiding github cache is fine in my opinion. Just from academic curiosity, I would love to fully understand why this error happens. At the moment it is completely mysterious to me. Is it related to having an action used within another action?

Just from academic curiosity, I would love to fully understand why this error happens.

I don't understand it either. The only hints I have are the following issue communications.

https://github.com/leanprover/lean-action/issues/62
https://github.com/leanprover/lean-action/issues/64


Think of a way to clean up the code a bit.

There's not much code in the application at the moment, but I feel like I could lose control over it pretty soon as there are multiple responsibilities in the main file. As a low priority task, I should take a step back, look at the code from perspective and see if it can be broken down into more digestible pieces.

I believe this will be an ongoing task. First part of the cleanup (moving Player representation outside Main) done with 47d8bb205df8d860516b6030645bfb88efae4742.

The code is constantly changing and it's very difficult to keep up with my own pace of changes :smiley:
I think the next step is going to be clean up the polyhedrons I've been working with, possibly turning them into individual types. Also, the Player type looks less and less helpful...


Any plans to addsum helper?

I think having this could be useful:
(sum sectionTotal1 sectionTotal2)

Is there any appreciable difference between that and add?

@skeate No, there is none, I just did not see the add helper, sorry :)

@skeate, can you use the add helper for an array? {{add thisItem.arrayOfNumbers}}
A sum helper would be great for this, if add doesn't already do this.

I just tried this with ember-composable-helpers, the following didn't work:
{{add (map-by 'clientPriceCents' order.orderItems)}}

Going to look to see if there is a splat helper of some kind to

If I make a PR, would it be welcomed?

This would be trivial with a spread operator, which is in RFC: https://github.com/emberjs/rfcs/issues/184
though that appears to be more focused on named arguments, and thus (if they don't see a use case for it) might not be implemented to support arrays.
I still don't agree with adding a separate sum helper, especially if it's not just an alias to add. Having to check the docs all the time to remember which was which would be a pain.
This should be doable with ember-composable-helpers, though. Perhaps {{reduce add (map-by 'clientPriceCents' order.orderItems}}? (can't test right now to see if that actually works)
One possibility for this addon would be to just do some typechecking. If we have one param and it's an array, return the sum of that. That does lead to "well why not flatten any arrays passed", and suddenly we're in space where behavior is not completely intuitive.

I was trying to test this out, but couldn't get it to work as you mentioned. Shelfing it for now though as I no longer need it for my use-case.
Thanks for the ideas! Hopefully it'll help people looking to do the same :)


Break in smaller pieces current pipeline

As the pipeline has grown faster we might discuss here if we should break into smaller scripts or not.
fyi @dron22 @alanhamlett

@gandarez Are you referring to the CI pipeline here?


feat(TreeView): [FX-2016] Horizontal layout, margin props & compact variant for TreeView

FX-2016
TOP-1535
Description
Added horizontal layout, vertical and horizontal margin props that allow to override default margins & compact variant of TreeView that allows for less bloated trees if tree has one or zero nodes with children per depth level
How to test
'Horizontal layout' & 'Compacted tree' examples in TreeView storybook
Screenshots

Review

[x] Read CONTRIBUTING.md and Component API principles
[x] Annotate all props in component with documentation
[x] Create examples for component
[x] Ensure that deployed demo has expected results and good examples
[x] Ensure that tests pass by running yarn test
[x] Ensure that visuals tests pass by running yarn test:visual. If not - check the documentation how to fix visual tests
[x] Ensure the changed/created components have not caused accessibility issues. How to use accessibility plugin in storybook.

PR commands

List of available commands:

@toptal-bot run all - Run whole pipeline
@toptal-bot run build - Check build
@toptal-bot run visual - Run visual tests
@toptal-bot run deploy:documentation - Deploy documentation
@toptal-bot run package:alpha-release - Release alpha version

@toptal-bot run all

Found a bug, do not merge yet

Topteam is the only user of TreeView, so I'm fine with this change

Nope, Staff portal also uses TreeView: https://github.com/toptal/staff-portal/blob/ebb05a0f5de92a0f69e6050edc3308b969bec85e/src/modules/summary-sidebar/components/StaffTreeModal/StaffTreeModal.tsx

I was playing locally, and just assigned horizontal direction to the With selected node example:
directionOptions={{
  verticalMargin: 20,
  direction: 'horizontal'
}}

I was playing locally, and just assigned horizontal direction to the With selected node example:
directionOptions={{
  verticalMargin: 20,
  direction: 'horizontal'
}}

isn't it because defaultHeight wasn't specified? if yes, then this is okay

@dmaklygin1 the default height should not be a problem, this looks like a bug. Although maybe adding default values to the defaultProps like you suggested might solve this.


Improve photo page display

Fix the page CSS

See this MB help page: https://help.micro.blog/t/styling-the-photos-page/871


Some of the buttons on the toolbar are not localized

Summary
Some of the toolbar buttons that appear when selecting text are not localized.
The first four buttons (Cut, Copy, Paste and Look Up) are localized and displayed in Japanese, but the Search Web and `Share... buttons are not localized.

First Buttons
Second Buttons
Third Buttons

  sample
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: const [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: const [
        Locale('en', ''), // English, no country code
        Locale('ja', ''), // Japanese, no country code
        // 他のロケールを追加する
      ],
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Sample App'),
        ),
        body: const Center(
          child: MyCustomForm(),
        ),
      ),
    );
  }
}

class MyCustomForm extends StatefulWidget {
  const MyCustomForm({super.key});

  @override
  MyCustomFormState createState() {
    return MyCustomFormState();
  }
}

class MyCustomFormState extends State<MyCustomForm> {
  final myController = TextEditingController();

  @override
  void dispose() {
    // Clean up the controller when the widget is disposed.
    myController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(16.0),
      child: TextField(
        controller: myController,
      ),
    );
  }
}

  pubspec.yaml
name: try_localizations
description: "A new Flutter project."
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1
environment:
  sdk: '>=3.2.0 <4.0.0'
dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  cupertino_icons: ^1.0.2

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^2.0.0
flutter:
  uses-material-design: true

  flutter doctor -v
➜  try_roboto_font git:(main) flutter doctor -v
[✓] Flutter (Channel stable, 3.16.0, on macOS 13.4 22F66 darwin-arm64, locale ja-JP)
    • Flutter version 3.16.0 on channel stable at /Users/01036096/fvm/versions/3.16.0
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision db7ef5bf9f (4 months ago), 2023-11-15 11:25:44 -0800
    • Engine revision 74d16627b9
    • Dart version 3.2.0
    • DevTools version 2.28.2

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at /Users/01036096/Library/Android/sdk
    • Platform android-33, build-tools 33.0.2
    • ANDROID_HOME = /Users/01036096/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
    • Xcode at /Applications/Xcode14.1.app/Contents/Developer
    • Build 14B47b
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.86.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.84.0

[✓] Connected device (3 available)
    • sdk gphone64 arm64 (mobile) • emulator-5554 • android-arm64  • Android 12 (API 31) (emulator)
    • macOS (desktop)             • macos         • darwin-arm64   • macOS 13.4 22F66 darwin-arm64
    • Chrome (web)                • chrome        • web-javascript • Google Chrome 122.0.6261.112

[✓] Network resources
    • All expected network resources are available.

• No issues found!

@SShayashi
I was able to see the localized text for those options in the toolbar as below:

I verified on latest master and stable by running the code sample on iOS simulator, changed language to Japanese.
Also, see this fix for your reference: https://github.com/flutter/flutter/pull/144857

@darshankawar
Thanks for the reply, I tried it with 3.19.2 and confirmed that it localizes correctly.

  click to expand
fvm flutter doctor -v
[!] Flutter (Channel stable, 3.19.2, on macOS 13.4 22F66 darwin-arm64, locale ja-JP)
    • Flutter version 3.19.2 on channel stable at /Users/01036096/fvm/versions/3.19.2
    ! Warning: `dart` on your path resolves to /opt/homebrew/Cellar/dart/2.19.6/libexec/bin/dart, which is not inside your current Flutter SDK checkout at /Users/01036096/fvm/versions/3.19.2. Consider adding /Users/01036096/fvm/versions/3.19.2/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision<PHONE_NUMBER> (3 weeks ago), 2024-02-27 16:51:22 -0500
    • Engine revision 04817c99c9
    • Dart version 3.3.0
    • DevTools version 2.31.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at /Users/01036096/Library/Android/sdk
    • Platform android-33, build-tools 33.0.2
    • ANDROID_HOME = /Users/01036096/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[!] Xcode - develop for iOS and macOS (Xcode 14.1)
    • Xcode at /Applications/Xcode14.1.app/Contents/Developer
    • Build 14B47b
    ! CocoaPods 1.12.1 out of date (1.13.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see https://guides.cocoapods.org/using/getting-started.html#updating-cocoapods for instructions.

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.87.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.84.0

[✓] Connected device (3 available)
    • iPhone 14 (mobile) • 2DAB222C-752B-4291-9758-B9D95D5698ED • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-1 (simulator)
    • macOS (desktop)    • macos                                • darwin-arm64   • macOS 13.4 22F66 darwin-arm64
    • Chrome (web)       • chrome                               • web-javascript • Google Chrome 123.0.6312.58

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 2 categories.


Re add Card

I want to re add previosly added and dismiss card
e.g
no 1 card swipe
no 2 card swipe
no 3 card swipe
after i want to add and view card 1 how?

You need to reverse the animation functionality from the edge to the center. Then readd the item to your adapter


new position is not stored after changed

whenever onPositionChanged is called, I have to call setPosition to make the new position permanent. Is this an expected thing to do or is it a bug?

Can you give me more details about what exactly is happening?  Are you having an issue with the sample or with a custom implementation that you are doing?

I'm just trying to implement it in my activity
Here is my Activity
public class MyActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final DiscreteSlider mySlider = (DiscreteSlider) findViewById(R.id.my_slider);
        mySlider.setTickMarkCount(6);
        mySlider.setPosition(2);
        mySlider.setOnDiscreteSliderChangeListener(new DiscreteSlider.OnDiscreteSliderChangeListener() {
            @Override
            public void onPositionChanged(int position) {
                System.out.println("changed to: " + position);
            }
        });
        findViewById(R.id.my_button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                System.out.println("position: " + mySlider.getPosition());
            }
        });
    }
}

Here is my layout activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">

    <Button android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/my_button"/>
    <com.etiennelawlor.discreteslider.library.ui.DiscreteSlider
            android:id="@+id/my_slider"
            android:layout_width="match_parent"
            android:layout_height="30dp"/>
</LinearLayout>

Here is the output:
System.out: changed to: 3
System.out: position: 2
System.out: changed to: 4
System.out: position: 2
System.out: changed to: 1
System.out: changed to: 5
System.out: position: 2

I'm running Android 6.0.1

This is now fixed in version 0.0.9.  It should be live in a few hours.

slider.position is still the same after scrolling in 0.0.9 so in order to get current position I have to implement callback which is not ideal


avoid_parse__require_for_vite_AAiMGp is not defined

安装@originjs/vite-plugin-commonjs 后 出现avoid_parse__require_for_vite_AAiMGp is not defined

推荐你用 https://github.com/vite-plugin/vite-plugin-commonjs


Node.parentElement should be Element, not HTMLElement

The declaration of the parentElement property on the Node interface in lib.d.ts states that it is of type HTMLElement while it should be Element (see the spec).

This is arguable, because there was complainant before saying that it was too cumbersome to always cast the type Element to HTMLElement when in most common cases the actual type is HTMLElement, even though the spec says it should be Element.
For example, the return type of getElementById is defined as Element, however we made it HTMLElement to avoid too much casting. If the type is some other Element, you can just cast it to Element first and then cast it again to the final type. I think in most cases the parentElement is HTMLElement too, therefore it might be better just leave it the way it is.

I just encountered this bug. The issue occurred with SVG on the page.
Maybe this can be solved with generics? Though the syntax would be ridiculous. (e.g. Node<Element<HTMLElement>>>

How about changing Node.parentElement to return Element and overriding parentElement in HTMLElement to return HTMLElement?

sounds reasonable.

I plan to submit a PR that contains the following changes:

documentElement and getElementById(elementId: string) in Document will return Element instead of HTMLElement as specified in the specification.
There will be a new interface, DocumentOf<TNamesapce, TElement, TDocument>:

interface DocumentOf<TNamesapce extends string, TElement extends Element, TDocumentElement extends Element> extends Document {
	documentElement: TDocumentElement;
	getElementById(elementId: string): TElement;
	getElementsByTagNameNS(namespaceURI: TNamesapce, localName: string): NodeListOf<TElement>;
}

There will be a type alias, HTMLNamespace:

type HTMLNamespace = "http://www.w3.org/1999/xhtml";

HTMLDocument will be changed to extend DocumentOf<HTMLNamespace, HTMLElement, HTMLHtmlElement>.
The type of document in Window will be changed from Document to HTMLDocument.
parentElement in Node will return Element, which will be overridden by HTMLElement to return HTMLElement.
There will be a new interface, HTMLAttr, that extends Attr. ownerElement and parentElement in HTMLAttr return HTMLElement.
getAttributeNode(name: string) in HTMLElement will return HTMLAttr.

Any thoughts?

note sure if you need the additional type DocumentOf. all you need is to redefine the two methods in HTMLDocument.
otherwise seems reasonable.

The original idea of creating DocumentOf was to allow a document that shares a similar structure (e.g. SVGDocument) be easily defined, but after taking a step back and looking deeper into the issue, including #2339, #3304 and DOM Bug 22960, I think my plan may be going too far and not the best approach.
A common reason why developers want to "cast" an Element to HTMLElement is to use the additional methods and properties provided by HTMLElement, but in my own experience, the cast is either not necessary or not enough. For example, when I need to disable a form control or set the style of a HTML element, the setAttribute method is usually used and no cast to HTMLElement is required. Event handlers may similarly be added to any Element using the addEventListener method. In fact, many UI events are not specific to HTMLElement according to the specification--they apply to all elements. I note that the commonly used click event is only defined in HTMLElement and missing in Element, but it appears to be an implementation issue of Edge that does not conform with the specification, which may be overridden. Returning HTMLElement instead of Element also does not help if I want to get the value of a form control-- a type assertion to a more specific type such as HTMLInputElement and `HTMLSelectElement is in any event required.
One of the advantages of using TypeScript is to reduce, if not eliminate, the chance of calling undefined a method or property unexpectedly. Returning a type that may be wrong during runtime appears to undermine this. A developer should be aware of the actual type of element that he/she is working on. With the introduction of the as operator, I think we now have a way to assert the type of an element from the DOM elegantly.
Back to the present issue, I suggest changing parentElement to return Element without making parentElement in HTMLElement to return HTMLElement, as the latter case will be false when HTML is embedded in SVG. Type assertion should be added when the developer is sure that the parentElement is HTMLElement and wants to use the methods and properties that are not present in Element. That also makes the type definitions of TypeScript more consistent with and not significantly different from the DOM specification.
There may be additional issues to follow:

Should getElementById return Element instead of HTMLElement?
Should a new type, AttrOf<T extends Element>, be added to provide better support of  ownerElement?
Should createElementNS(namespaceURI: "http://www.w3.org/1999/xhtml", qualifiedName: string): HTMLElement be added to Document and getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): NodeListOf<HTMLElement> and getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): NodeListOf<SVGElement> be added to both Document and Element?
Should document.getElementsByName(elementName: string), which currently returns NodeListOf<Element>, be changed to return NodeListOf<HTMLElement>? It is defined in the HTML Specification to be applied to HTML elements only.

For 1, there has been a long discussion in https://github.com/Microsoft/TypeScript/issues/3613, the typings are not accurate, but looks like most ppl do not use SVG elements.
3. makes sense, can not think of a downside here.
4. sounds reasonable
5. I do not know :) what does the spec say?

Not sure if this is a separate or related issue, but (thanks to TS) I have gotten very comfortable writing vanilla DOM code, and wanted to try the same with SVG - and it doesn't seem like the type-definitions make much sense.
For starters:
var el = document.createElementNS("http://www.w3.org/2000/svg", "rect");

var parent = el.parentElement;

The type of parent here comes out HTMLElement. It seems like the parent element of any SVGElement except the root document SVGSVGElement should be expected to be another SVGElement? Likewise, most of the interface signatures seem to come out wrong, e.g. querySelector and querySelectorAll from within an SVG element, I'd expect, must return SVG rather than HTML elements?
Looks like the SVGElementInstance interface has all of the required type-definitions, but none of the actual SVG elements (such as SVGRectElement) inherit this type.

i ran into this when doing stuff with xml documents

This is arguable, because there was complainant before saying that it was too cumbersome to always cast the type Element to HTMLElement when in most common cases the actual type is HTMLElement, even though the spec says it should be Element.

For example, the return type of getElementById is defined as Element, however we made it HTMLElement to avoid too much casting. If the type is some other Element, you can just cast it to Element first and then cast it again to the final type. I think in most cases the parentElement is HTMLElement too, therefore it might be better just leave it the way it is.

this is the most arguable thing i've heard today
is breaking types for all non-html documents really the best fix for this

Also see #32822.

What's the status of this issue in 2020?
While I understand the rationale behind the decision to make the type HTMLElement instead of Element, considering it's plainly against the spec and causing trouble for people working with non-HTML documents, I would urge to reconsider.
Or as a compromise, given the overwhelming majority use-case, I'd be in favor of making it a tsconfig.json option as suggested in #32822, I believe this has potential to satisfy both use cases.

What's the status of this issue in 2020?

@jun-sheaf sent a PR for these changes and I've been reviewing about whether it should make it in for 4.1.
I don't think we should make these changes, because it's going to add break a lot of code in a way that people won't think is to their advantage. TS tries to balance correctness and productivity and I think making getElementById start returning code which needs to be casted to be useful in the majority of cases (e.g. HTML nodes) is going to be a bad call for TypeScript.
The main crux of the PR is changes like these:
-  getElementById(elementId: string): HTMLElement | null;
+  getElementById<E extends Element = Element>(elementId: string): E | null;

Meaning in the old version to use an SVG/XML element meant doing something like:
const logo = document.getElementById("my-logo") as unknown as SVGPathElement

Which isn't great, and now you can write:
const logo2 = getElementById2("my-logo") as SVGPathElement
const logo3 = getElementById2<SVGPathElement>("my-logo")

Which is better.
But we lose something in the trade-off, and that is the tooling support for JS (because it always uses the defaults)
With the changes to make it exactly the same as the spec, you can no-longer write code like:
const logo4 = getElementById2("my-logo")!
logo4.innerText = "123"

Without a cast, and you lose the addEventListener/removeEventListener auto-complete map: e.g.
logo2.addEventListener("|
> "fullscreenchange" | "fullscreenerror"

logo2.addEventListener("|
> "fullscreenchange" | "fullscreenerror" | "abort" | "animationcancel" | "animationend" | "animationiteration" | "animationstart" | "auxclick" | "blur" | "cancel" | "canplay" | ... 80 more ... | "paste"

And this means you don't get a typed event anymore. Which I don't think is worth the change to getElementById<E extends Element = Element>(elementId: string): E | null.
Switching it to getElementById<E extends Element = HTMLElement>(elementId: string): E | null on the other hand still allows for setting the return type less drastic ways for the uncommon cases:
const logo2 = getElementById2("my-logo") as SVGPathElement
const logo3 = getElementById2<SVGPathElement>("my-logo")

But doesn't hinder the default JS tooling support.
Notes

Hate to interject, as I do agree with your assessment of the trade-offs involved, but I would like to hear your opinion on making it a project-wide setting (#32822) - wouldn't that also alleviate the productivity/JS default issues?

Personally, I'm super hesitant to add more flags and options to TS, there's already 100+
IMO, the strictest/most compliant version can ship as a .d.ts which can modify the DOM types to be stricter globally though:
// Default with lib.dom.d.ts
interface Document {
    getElementById<E extends Element = HTMLElement>(elementId: string): E | null
}

// In something like in  @types/strict-dom/index.d.ts
interface Document {
    getElementById<E extends Element = Element>(elementId: string): E | null
}

const a = document.getElementById("e")!
a.innerText // bails

Which means this can effectively live in user-land instead of it having to be inside the compiler, having a library means it can support more than just the recommendations here too

Related question on Stack Overflow: Why isn't the style property suggested for the result of document.querySelector()?


Add option to list available query names to joern-scan

Notes
A small change to add a list-query-names option to joern-scan which simply prints a sorted list of names of all the available queries, which is potentially useful for debugging. This doesn't contain any information that you could not get through the dump option, but avoids some JSON parsing.
Testing
❯ ./joern-scan --list-query-names
call-to-exec
call-to-gets
call-to-getwd
call-to-scanf
...

(Feel free to merge)


SIMPLE-660: netlink golang library does not install on a fresh machine

Replace references to import from the github.com/vishvananda/netlink project
to be imports from the github.com/rschmied/netlink fork instead.  That should permit
go get githbub.com/rschmied/netlink to succeed since it will no longer reference
the original project, which has moved ahead in ways that break the current code
on your fork.

As noted in 660, I want this to be merged upstream. You can go ahead and test with your branch for now. Won't merge this as that would then become part of my upstream PR


logos not showing

something's not working here. in config.toml we have
[extra]
...

logos = [
#   { name = "CodeRefinery", url = "https://coderefinery.org/", image = "coderefinery.png" },
    { name = "CodeRefinery", url = "https://coderefinery.org/", image = "coderefinery.png" }
]

and in templates/index.html we have:
      {% for logo in config.extra.logos %}

      {% endfor %}

But the logo doesn't render. Inspecting the page shows:

why is it processed_images under coderefinery.org? This happens to work for the github and twitter icons at the bottom but not logos added to a workshop webpage repo

@bast sorry for bothering but i thought you might be able to spot the problem in under a minute

Looking ...

i should add that it renders locally...

I have also tested this only locally so maybe my suggestion was not good. But I will check it out now.

I think this is the reason: https://github.com/coderefinery/template-workshop-webpage/blob/b2aed8c4c57c1525f2a455efc2b1664e975229b0/config.toml#L2
(I haven't verified this but am quite confident)

We could make the code simpler if we assume that logos are accessible directly via internet. Then we could avoid serving them from the course website.

yeah it's the base_url. I couldn't see it used anywhere but changing it works

fixed now with new base_url


Enhancement Suggestion For toBuffer "info" parameter

Currently the "info" parameter in the 'toBuffer' callback provides "format, size, width, height and channels", which is very useful information about the finished image.  But it would be extremely helpful to have the original byte size of the input image so that the before/after difference could be determined.
Thanks,
Kris

The info parameter made available after processing is typically for values that are (potentially) calculated during processing, e.g. the calculated image height when only the width was specified.
I can see value in providing the compressed input size when using Stream-based input (behaves like a byte counter).
It makes most sense for the logic to live in the C++ part of the code, probably HandleOKCallback, and will need to use the cross-platform g_stat call to size file-based input.
Happy to accept a PR for this - thanks for the suggestion!

This feature can be implemented outside of sharp using something like an intermediate byte-counting Stream such as https://github.com/yoshuawuyts/size-stream


ARTEMIS-3341: update checkstyle, use consistent plugin version

Why not use this in checkstyle.xml:
      <module name="RightCurly">
         <property name="option" value="alone_or_singleline"/>
         <property name="tokens" value="METHOD_DEF, CTOR_DEF"/>
      </module>

Then you could drop your changes from TypedProperties and AbstractJDBCDriver and everything would be consistent.
As it stands now the change looks a bit strange because you're eliminating a newline in SensitiveDataCodec and adding one in the other two aforementioned classes.

I actually prefer class definitions having the newline so I just went with the default. The change in SensitiveDataCodec was about originally about eliminating the semi colon which already failed the 'alone' check, and I just made it consistent with all the other default and empty methods that would have needed updated if not for config tweak.

OK, that's fair. Thanks, Robbie!
After reviewing this a bit more I've sent #3619 as a follow-up.


undefined symbol: __cudaRegisterFatBinaryEnd

When I run the example command:
python attack.py -obj ./object/object.ply -obj_save ./object/obj_save -lidar ./data/lidar.bin -cam ./data/cam.png -cali ./data/cali.txt -e 0.2 -o pgd -it 1000
I got:
Traceback (most recent call last):
File "attack.py", line 2, in
import neural_renderer as nr
File "/home/jqwu/.conda/envs/msf-adv/lib/python3.6/site-packages/neural_renderer/init.py", line 3, in
from .load_obj import load_obj
File "/home/jqwu/.conda/envs/msf-adv/lib/python3.6/site-packages/neural_renderer/load_obj.py", line 8, in
import neural_renderer.cuda.load_textures as load_textures_cuda
ImportError: /home/jqwu/.conda/envs/msf-adv/lib/python3.6/site-packages/neural_renderer/cuda/load_textures.cpython-36m-x86_64-linux-gnu.so: undefined symbol: __cudaRegisterFatBinaryEnd
I have already changed my CUDA path to use the version 9.0:
export PATH=/usr/local/cuda-9.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
My gcc version is 5.4.0:
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)
Any suggestions? Thanks a lot !!

Did you ever solve this issue? I am currently facing the same issue.

I have faced this same issue and solved it.But I don't konw whether this is right way.I just make it run.This is my way:

change the CUDA version and GCC version, just like what you have did
clone the source file of neural renderer from github
check the pytorch version. For me is 0.4.1, But the readme recommend 0.4.0, I konw from a blog which said that higher version has some syntax changes, high version use TORCH_CHECK instead of AT_CHECK. so I just edit all the cpp files in this folder:/yourWorkSpace/neural_renderer/neural_renderer/cuda, replace all the TORCH_CHECK to AT_CHECK.
then compile the source code i have modified. python setup.py install I run this command in the msf-adv environment.
remove the neural-renderer-pytorch  which installed by conda. use this commend to uninstall pip uninstall neural-renderer-pytorch=1.1.3, I think you can edit the requirements.yml to avoid installing neural-renderer-pytorch from begin and then perform the previous step.
I hope these will help you！

Hi, I followed your instructions but when I tried to run command python setup.py install, it gave the error that 'TORCH_CHECK' was not declared in this scope. Could you specify what versions for GCC and CUDA you are using? I'm using GCC 5.4 and CUDA 9.0. I checked my pytorch is also 0.4.1.
Thanks!

@chunhez
Thanks for your reply!
I am using the GCC 5.4.0 and CUDA 9.0,too. but the neural_renderer also need G++ compiler (I'm sorry that I forgot to note that,haha!), the older version just like 5.3 seems not working correctly, so I change the G++ to 9.4.

I have faced this same issue and solved it.But I don't konw whether this is right way.I just make it run.This is my way:

change the CUDA version and GCC version, just like what you have did
clone the source file of neural renderer from github
check the pytorch version. For me is 0.4.1, But the readme recommend 0.4.0, I konw from a blog which said that higher version has some syntax changes, high version use TORCH_CHECK instead of AT_CHECK. so I just edit all the cpp files in this folder:/yourWorkSpace/neural_renderer/neural_renderer/cuda, replace all the TORCH_CHECK to AT_CHECK.
then compile the source code i have modified. python setup.py install I run this command in the msf-adv environment.
remove the neural-renderer-pytorch  which installed by conda. use this commend to uninstall pip uninstall neural-renderer-pytorch=1.1.3, I think you can edit the requirements.yml to avoid installing neural-renderer-pytorch from begin and then perform the previous step.
I hope these will help you！

@hxlCHD Hi, I followed your instructions but when I tried to run command python setup.py install, it gave the error that 'TORCH_CHECK' was not declared in this scope. Could you specify what versions for GCC and CUDA you are using? I'm using GCC 5.4 and CUDA 9.0. I checked my pytorch is also 0.4.1.
Thanks!
@chunhez
Thanks for your reply!
I am using the GCC 5.4.0 and CUDA 9.0,too. but the neural_renderer also need G++ compiler (I'm sorry that I forgot to note that,haha!), the older version just like 5.3 seems not working correctly, so I change the G++ to 9.4.

I have faced this same issue and solved it.But I don't konw whether this is right way.I just make it run.This is my way:

change the CUDA version and GCC version, just like what you have did
clone the source file of neural renderer from github
check the pytorch version. For me is 0.4.1, But the readme recommend 0.4.0, I konw from a blog which said that higher version has some syntax changes, high version use TORCH_CHECK instead of AT_CHECK. so I just edit all the cpp files in this folder:/yourWorkSpace/neural_renderer/neural_renderer/cuda, replace all the TORCH_CHECK to AT_CHECK.
then compile the source code i have modified. python setup.py install I run this command in the msf-adv environment.
remove the neural-renderer-pytorch  which installed by conda. use this commend to uninstall pip uninstall neural-renderer-pytorch=1.1.3, I think you can edit the requirements.yml to avoid installing neural-renderer-pytorch from begin and then perform the previous step.
I hope these will help you！

@hxlCHD Hi, I followed your instructions but when I tried to run command python setup.py install, it gave the error that 'TORCH_CHECK' was not declared in this scope. Could you specify what versions for GCC and CUDA you are using? I'm using GCC 5.4 and CUDA 9.0. I checked my pytorch is also 0.4.1.
Thanks!

I think my previous comment have made a mistake. I checked my cpp files just now. I just replace all the TORCH_CHECK to AT_CHECK.

I have faced this same issue and solved it.But I don't konw whether this is right way.I just make it run.This is my way:

change the CUDA version and GCC version, just like what you have did
clone the source file of neural renderer from github
check the pytorch version. For me is 0.4.1, But the readme recommend 0.4.0, I konw from a blog which said that higher version has some syntax changes, high version use TORCH_CHECK instead of AT_CHECK. so I just edit all the cpp files in this folder:/yourWorkSpace/neural_renderer/neural_renderer/cuda, replace all the TORCH_CHECK to AT_CHECK.
then compile the source code i have modified. python setup.py install I run this command in the msf-adv environment.
remove the neural-renderer-pytorch  which installed by conda. use this commend to uninstall pip uninstall neural-renderer-pytorch=1.1.3, I think you can edit the requirements.yml to avoid installing neural-renderer-pytorch from begin and then perform the previous step.
I hope these will help you！

@hxlCHD Hi, I followed your instructions but when I tried to run command python setup.py install, it gave the error that 'TORCH_CHECK' was not declared in this scope. Could you specify what versions for GCC and CUDA you are using? I'm using GCC 5.4 and CUDA 9.0. I checked my pytorch is also 0.4.1.
Thanks!
@chunhez
Thanks for your reply!
I am using the GCC 5.4.0 and CUDA 9.0,too. but the neural_renderer also need G++ compiler (I'm sorry that I forgot to note that,haha!), the older version just like 5.3 seems not working correctly, so I change the G++ to 9.4.

@hxlCHD Thanks for your reply! So you mean you have to use different versions for GCC and G++? You have GCC 5.4 and G++9.4?

I have faced this same issue and solved it.But I don't konw whether this is right way.I just make it run.This is my way:

change the CUDA version and GCC version, just like what you have did
clone the source file of neural renderer from github
check the pytorch version. For me is 0.4.1, But the readme recommend 0.4.0, I konw from a blog which said that higher version has some syntax changes, high version use TORCH_CHECK instead of AT_CHECK. so I just edit all the cpp files in this folder:/yourWorkSpace/neural_renderer/neural_renderer/cuda, replace all the TORCH_CHECK to AT_CHECK.
then compile the source code i have modified. python setup.py install I run this command in the msf-adv environment.
remove the neural-renderer-pytorch  which installed by conda. use this commend to uninstall pip uninstall neural-renderer-pytorch=1.1.3, I think you can edit the requirements.yml to avoid installing neural-renderer-pytorch from begin and then perform the previous step.
I hope these will help you！

@hxlCHD Hi, I followed your instructions but when I tried to run command python setup.py install, it gave the error that 'TORCH_CHECK' was not declared in this scope. Could you specify what versions for GCC and CUDA you are using? I'm using GCC 5.4 and CUDA 9.0. I checked my pytorch is also 0.4.1.
Thanks!
@chunhez
Thanks for your reply!
I am using the GCC 5.4.0 and CUDA 9.0,too. but the neural_renderer also need G++ compiler (I'm sorry that I forgot to note that,haha!), the older version just like 5.3 seems not working correctly, so I change the G++ to 9.4.

@hxlCHD Thanks for your reply! So you mean you have to use different versions for GCC and G++? You have GCC 5.4 and G++9.4?

yes!

I have faced this same issue and solved it.But I don't konw whether this is right way.I just make it run.This is my way:

change the CUDA version and GCC version, just like what you have did
clone the source file of neural renderer from github
check the pytorch version. For me is 0.4.1, But the readme recommend 0.4.0, I konw from a blog which said that higher version has some syntax changes, high version use TORCH_CHECK instead of AT_CHECK. so I just edit all the cpp files in this folder:/yourWorkSpace/neural_renderer/neural_renderer/cuda, replace all the TORCH_CHECK to AT_CHECK.
then compile the source code i have modified. python setup.py install I run this command in the msf-adv environment.
remove the neural-renderer-pytorch  which installed by conda. use this commend to uninstall pip uninstall neural-renderer-pytorch=1.1.3, I think you can edit the requirements.yml to avoid installing neural-renderer-pytorch from begin and then perform the previous step.
I hope these will help you！

@hxlCHD Hi, I followed your instructions but when I tried to run command python setup.py install, it gave the error that 'TORCH_CHECK' was not declared in this scope. Could you specify what versions for GCC and CUDA you are using? I'm using GCC 5.4 and CUDA 9.0. I checked my pytorch is also 0.4.1.
Thanks!
@chunhez
Thanks for your reply!
I am using the GCC 5.4.0 and CUDA 9.0,too. but the neural_renderer also need G++ compiler (I'm sorry that I forgot to note that,haha!), the older version just like 5.3 seems not working correctly, so I change the G++ to 9.4.

@hxlCHD Thanks for your reply! So you mean you have to use different versions for GCC and G++? You have GCC 5.4 and G++9.4?

yes!

@hxlCHD I followed your steps and finally make it work. The difference is that I use pytorch 1.4.0, cuda 10.0 and gcc 5.4. Also, I do need to change all the AT_CHECK to TORCH_CHECK. Also thanks for your help!

I have faced this same issue and solved it.But I don't konw whether this is right way.I just make it run.This is my way:

change the CUDA version and GCC version, just like what you have did
clone the source file of neural renderer from github
check the pytorch version. For me is 0.4.1, But the readme recommend 0.4.0, I konw from a blog which said that higher version has some syntax changes, high version use TORCH_CHECK instead of AT_CHECK. so I just edit all the cpp files in this folder:/yourWorkSpace/neural_renderer/neural_renderer/cuda, replace all the TORCH_CHECK to AT_CHECK.
then compile the source code i have modified. python setup.py install I run this command in the msf-adv environment.
remove the neural-renderer-pytorch  which installed by conda. use this commend to uninstall pip uninstall neural-renderer-pytorch=1.1.3, I think you can edit the requirements.yml to avoid installing neural-renderer-pytorch from begin and then perform the previous step.
I hope these will help you！

@hxlCHD Hi, I followed your instructions but when I tried to run command python setup.py install, it gave the error that 'TORCH_CHECK' was not declared in this scope. Could you specify what versions for GCC and CUDA you are using? I'm using GCC 5.4 and CUDA 9.0. I checked my pytorch is also 0.4.1.
Thanks!
@chunhez
Thanks for your reply!
I am using the GCC 5.4.0 and CUDA 9.0,too. but the neural_renderer also need G++ compiler (I'm sorry that I forgot to note that,haha!), the older version just like 5.3 seems not working correctly, so I change the G++ to 9.4.

@hxlCHD Thanks for your reply! So you mean you have to use different versions for GCC and G++? You have GCC 5.4 and G++9.4?

yes!

@hxlCHD I followed your steps and finally make it work. The difference is that I use pytorch 1.4.0, cuda 10.0 and gcc 5.4. Also, I do need to change all the AT_CHECK to TORCH_CHECK. Also thanks for your help!

@chunhez It's my  pleasure！


Laravel 10 support

Hi, I'm going to work to get Laravel 10 support for this package. I'm going to use this issue to ask question and get early feedback.
At the moment I have these questions;

what is the minimal PHP version you want to support?
As Laravel 10 requires at minimum PHP 8.1
what is the minimal Laravel version that you want to support?

I'm probably going to make a few other pull requests with additional changes, but will add questions about those here in this issue.

@mazedlx what's the best / preferred way to test this in a Laravel 10 application?
Currently I have a Laravel 10 application, with my fork installed and the middleware is added to the middlewareGroups.
A curl -i -I <site url> returns the headers listed below.

Returned headers
HTTP/1.1 200 OK
Server: nginx/1.23.2
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: PHP/8.1.13
Cache-Control: no-cache, private
Date: Sat, 18 Mar 2023 14:22:25 GMT
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
Permissions-Policy: geolocation=self,fullscreen=self

There are tests in the test folder. You could make use of the Http Fake.

I've just released v2.0


Support for NestJS 9

Peer dependencies for NestJS are locked to specific versions:
"peerDependencies": {
    "@nestjs/common": "^7.0.0 || ^8.0.0",
    "@nestjs/core": "^7.0.0 || ^8.0.0",
    ...
}

It's safe to assume that the mechanics required for your library to function will not change enough between versions, so it could be better to do this:
"peerDependencies": {
    "@nestjs/common": ">= 7.0.0",
    "@nestjs/core": ">= 7.0.0",
    ...
}

I have the same problem :/

Merged

@KerryRitter can you please also update the  "rimraf": "^3.0.2" version? Currently, the rimraf version is "4.1.1" and it is causing dependency issues when trying to run npm i.


Change flow.json structure

lookig at https://github.com/onflow/flow/blob/139cd856b0eed7ee18763329ec155eeded17bf8e/sporks.json#L2 and https://github.com/onflow/flow/blob/139cd856b0eed7ee18763329ec155eeded17bf8e/sporks.json#L381
I propose to change the structure of the file to add a nesting to something like this :
{
environments: [
{
env-name: "mainnet"
iteractions: [
{
iter-name: "14"
.....
}
}
{
env-name: "testnet"
{
iter-name: "31"
.....
}

I'd probably still keep the "spork name" value of candidate-9 somewhere in the json.
I'm fine with further nesting though, it might be worth mentioning why you feel the additional nesting is superior.

I think nesting would help while using tools like jq to query and also to group / import new sporks containing only a subdoc for the latest spork ( i.e. imagine to have a subdoc with only mainnet14 and then use jq / shell to create a full env:"mainnet"["1","2".."14"]
the less we leave full access to the full json the less problems we'll probably have with json-linter, indentation ,convert to yaml etc

any issues from your side @franklywatson ?

No concerns, but would be useful if we can agree on the element names in scope for this change:

iteractions - i assume you mean iterations? @contil
iter .. means iteration?
env-name... maybe we want to speak directly to blockchain domain here and use 'network'?

Want to make sure the final version makes things clear. I think ID could be better than iter/iteration, very direct a clear and backed up by the name. Just wondering if there is a better name for 'iterations' to hold the list

I agree on the terminology ... I borrowed "environment " and "iteration" ( with a typo ) from the TF code but please use the more appropriate terminology that makes sense ....

👍🏼  So for final confirmation, how about these names and structure:
{
  "networks": [
    {
      "name": "mainnet"
      "sporks": [
        {
          "id": "14"
        }
      ]
    },
    {
      "name": "testnet"
      "sporks": [
        {
          "id": "32"
        }
      ]
    }
  ]
}

Hm.. the ID element kind of has an issue when we're referring to mainnet because we have mainnet IDs 4 and up, and the Candidate IDs 4-9. This could result in collisions in the ID for the same network.

they are at different level and if you drop this it'll be really complicated to query  / sort ( i.e. give me all mainnet data for id[3-10]... I'd actually make the id as integer and keep the name as text ...

Candidate and Mainnet are not at a different level, they are all mainnet. Look at https://docs.onflow.org/node-operation/past-sporks/ - Candidate 9 precedes Mainnet1, all on the same network.
Otherwise am not sure what you are saying

We could use a 0.x indicator ID for the candidates?


Can it work in the Mac M1?

Just curious if anyone could get it to work in the mac M1. I tried recompiling python with the --enable-shared flag, by I keep getting the same error from PyCall.
Task Terminated with exit code 1
<internal:/username/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require': Unable to find the required symbol in libpython: _Py_NoneStruct (PyCall::LibPythonFunctionNotFound)
    from <internal:/username/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /username/.rbenv/versions/3.1.0-dev/lib/ruby/gems/3.1.0/gems/pycall-1.4.1/lib/pycall/init.rb:39:in `init'
    from /username/.rbenv/versions/3.1.0-dev/lib/ruby/gems/3.1.0/gems/pycall-1.4.1/lib/pycall/init.rb:16:in `const_missing'
    from /username/.rbenv/versions/3.1.0-dev/lib/ruby/gems/3.1.0/gems/pycall-1.4.1/lib/pycall.rb:74:in `import_module'
    from /username/.rbenv/versions/3.1.0-dev/lib/ruby/gems/3.1.0/gems/pycall-1.4.1/lib/pycall/import.rb:18:in `pyimport'
    from /pathtoscript/untitled7.rb:20:in `<main>'

I have PyCall and ruby-spacy working fine on my M1 mac. If possible, would you please remove your current python environent altogether and reinstall it from scratch?
Notice that in order to compile python with --enable-shared  using pyenv, you may need to set the environemnt varialbe CONFIGURE_OPTS instead of just placing it as an option flag to pyenv install command. Like so:
env CONFIGURE_OPTS="--enable-shared" pyenv install 3.9.5

Thanks, @yohasebe! I managed to get it to work. The problem was the value of the PYTHON env variable. Once I pointed it to the right place (export PYTHON="/Users/user/.pyenv/versions/3.9.6/bin/python3.9") it started working.


Add support for "thread-id" in SimpleApnsPushNotification class

The SimpleApnsPushNotification class is missing the thread-id attribute, see:
https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/PayloadKeyReference.html#//apple_ref/doc/uid/TP40008194-CH17-SW1

Provide this key with a string value that represents the app-specific identifier for grouping notifications. The system groups notifications with the same thread identifier together in Notification Center and other system interfaces. For local notifications, this key corresponds to the threadIdentifier property of the UNNotificationContent object.

Can be work-around with a "custom property".

Hmmm... that's weird. You are right. But it somehow works - push messages with the same "thread-id" are replaced in notification center, namely when I include:
payloadBuilder.addCustomProperty("thread-id", push.getMessage().getCollapseKey());

Notification is replaced by a newer one...

APNs: Hmm… That's Weird™.
Well, good to know that there's an immediate workaround, but I wouldn't bank on it working forever. We'll get this in for real shortly. Thanks for calling it to our attention!

@petrdvorak Took a shot at this in #394. Seem legit?

Actually, @petrdvorak could you also verify that this… works? ;) I didn't observe any difference in behavior between:

Not including a thread ID of any kind
Including a thread ID directly in the aps section (#394)
Including a thread ID as a custom property

Is it possible the thread ID needs to be in some specific format? UUID? Or am I just looking for the wrong behavior?

This should work now - I will be able to test it during the holidays, the end of the year is a bit crazy. I have recorded a rather dramatic and poorly edited video of push behavior without / with "thread-id" property. Notice that push without thread-id property go below each other, while push with that property are replaced (as long as the ID is the same for all payloads).
apns-push-thredID-lowq.zip

Very, very strange. That's not at all what I'm seeing in testing; messages just keep stacking up for me, with or without a thread-id. To eliminate some possibilities, can you tell me what specific thread ID you're using for your demo? Also, what version of iOS are you using?
Thanks kindly!

…also, did you have to modify the receiving app in any way to enable threading?

For the curious, the exact payload I'm testing with is:
{"aps":{"alert":"Thread!","sound":"default","thread-id":"thread-id"}}

This is weird, the Apple documentation is quite explicit about the thread-id attribute behavior...
My APNs payload looks like this (I still use the "custom property", as discussed earlier):
{"aps":{"alert":{"body":"Your account balance is $25,450.45.","title":"Good morning!"},"sound":"default"},"thread-id":"balance"}

I then send the notification like this:
final SimpleApnsPushNotification pushNotification = new SimpleApnsPushNotification(
    token, // <== my push token
    iosTopic, // <== my app bundle ID
    payload, // payload above
    validUntil, // <== null
    DeliveryPriority.IMMEDIATE, // <== constant
    pushMessage.getMessage().getCollapseKey() // <== maybe the collapse key?
);
final Future<PushNotificationResponse<SimpleApnsPushNotification>> sendNotificationFuture
     = apnsClient.sendNotification(pushNotification);

I don't remember doing anything different in my iOS app. I have this in my Info.plist file:
<key>UIBackgroundModes</key>
<array>
    <string>fetch</string>
    <string>remote-notification</string>
</array>

This is my simplified AppDelegate class:
import UIKit
import UserNotifications

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate {

	var window: UIWindow?

	func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
		let userNotificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
		application.registerUserNotificationSettings(userNotificationSettings);
		application.registerForRemoteNotifications()
		return true
	}

	func applicationDidBecomeActive(_ application: UIApplication) {
		application.applicationIconBadgeNumber = 0
	}

	func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
		print("Error registering to push server")
	}

	func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
		var token = ""
		for i in 0..<deviceToken.count {
			token = token + String(format: "%02.2hhx", arguments: [deviceToken[i]])
		}
		print("Push Token: \(token) <= add this in database")
	}

	func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
		print("\(userInfo)");

		let notification = UILocalNotification()
		notification.alertTitle = userInfo["title"] as! String?
		notification.alertBody = userInfo["body"] as! String?
		notification.fireDate = Date()
		application.scheduleLocalNotification(notification)
	}

	func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
		print("\(userInfo)");

		let notification = UILocalNotification()
		notification.alertTitle = userInfo["title"] as! String?
		notification.alertBody = userInfo["body"] as! String?
		notification.fireDate = Date()
		application.scheduleLocalNotification(notification)
		completionHandler(.newData);
	}

}

Ahhhh—I see. I strongly suspect this is related to the collapse-id. Will experiment a bit more and see what I can figure out. Many, many thanks for the additional details!

Waaaaaaaaait a second. @petrdvorak I'm pretty sure the behavior shown in your video is entirely attributable to using a collapse-id. Messages are getting replaced, not grouped, which is what collapse-id promises.
I've asked contributors for other push notification libraries how this has worked out for them:

https://github.com/node-apn/node-apn/issues/484
https://github.com/sideshow/apns2/pull/41

I have a couple more ideas for things to try out later (what happens if we intersperse messages from app A and app B, for example) this evening, too.

You are right. That behavior is attributed to collapse-id.
The use case for thread-id is to group several messages, e.g. in a chat conversation. That's also what Apple's documentation says.
In your example thread-id is inside the alert dictionary. However, it must be inside the aps dictionary, e.g. {"aps":{"alert":"Thread!","sound":"default"},"thread-id":"thread-id"}

Ok, sorry for the mass panic... I had a little retard moment there... but... what Apple docs says about thread-id:

Provide this key with a string value that represents the app-specific identifier for grouping notifications. The system groups notifications with the same thread identifier together in Notification Center and other system interfaces. For local notifications, this key corresponds to the threadIdentifier property of the UNNotificationContent object.

Now, this is what they say about apns-collapse-id:

Quality of Service, Store-and-Forward, and Coalesced Notifications
Apple Push Notification service includes a default Quality of Service (QoS) component that performs a store-and-forward function. If APNs attempts to deliver a notification and the destination device is offline, APNs stores the notification for a limited period of time and delivers it when the device becomes available again. This component stores only the most recent notification per device and per app. If a device is offline, sending a new notification causes the previous notification to be discarded. If a device remains offline for a long time, all stored notifications are discarded.
To allow the coalescing of similar notifications, you can include a collapse identifier with the notification request. Normally, when a device is online, each notification you send is delivered to the device. However, when the apns-collapse-id key is present in your HTTP/2 request header, APNs coalesces requests whose value for that key is the same. For example, a news service that sends the same headline twice could use the same collapse identifier value for both notification requests. APNs would then coalesce the two requests into a single notification for delivery to the device.

This seems to imply that apns-collapse-id is used by APNs internally in order not to send too many messages with the same or very similar content in a short period of time and instead, it would "coalesce the two requests into a single notification for delivery to the device".
I will fix my code, consider this fixed. Thank you for helping me with this, guys!

@florianreinhart That thread-id should be in aps directory, not in the payload root (in your example). @jchambers has it right...

@petrdvorak that's what meant, sorry about that.

@florianreinhart Thanks for dropping in!
So my understanding from this conversation is that what we have in #394 (thread-id goes in the aps object) is correct, but I still don't see any practical effect in terms of grouping notifications when they arrive on an actual phone. @florianreinhart do you?

Well, I still can't demonstrate that setting a thread ID actually does anything, but I'm very confident that we're setting the thread ID correctly. It may just be that I'm looking in the wrong places for the change in behavior. I'm going to go ahead and merge #394. We'll revise as new information becomes available.

For what it's worth, it sounds like other people on the APNs forums are also struggling to figure out what effect thread-id really has. I've filed rdar://29670386 to track the issue, too.

I was able to confirm that setting a thread-id in the payload as you have done does come through into a Notification Content app extension. Thanks for pointing out our incorrect implementation in https://github.com/sideshow/apns2/pull/41 :)
A better explanation from Apple:
"The system calls this method to deliver notifications to your Notification Content app extension. Use this method to configure the contents of your view controller or to incorporate content from a new notification. This method may be called multiple times while your view controller is visible. Specifically, it is called again when a new notification arrives whose threadIdentifier value matches the thread identifier of the notification already being displayed. The method is called on the main thread of your extension".
https://developer.apple.com/reference/usernotificationsui/unnotificationcontentextension/1648525-didreceive

:metal:
Thanks for the detailed explanation, and thanks for the indeed-much-better-explanation of what we're looking for. Hope I can return the favor some time!
In the meantime, I'll update our docs to make reference to the didReceive explanation, close the upstream bug report, and update the various forum threads.
Cheers!

No probs, thanks for finding a bug in the apns2 implementation!


config_datasets.json is not created

Deployment says ok, no errors. all completed but no config is created in the bucket.
Manually adding one and backfilling worked after adding some python modules. But i'm worried that pub/sub won't work
BQ rights seem to be ok. Any clue?

Could be a permission issue that needs to be resolved.  What user and
predefined roles were used?
On Thu, Jan 26, 2023 at 11:32 AM Paul Brekelmans @.***>
wrote:

Deployment says ok, no errors. all completed but no config is created in
the bucket.
Manually adding one and backfilling worked after adding some python
modules. But i'm worried that pub/sub won't work
BQ rights seem to be ok. Any clue?
—
Reply to this email directly, view it on GitHub
https://github.com/adswerve/google_analytics_flattener_ga4/issues/18,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADLZWNYDDMEZWEMRLOOEN33WUK7MVANCNFSM6AAAAAAUH2MYXI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

@brekelbende , can you check the logs to see if there was any errors?

This should be ok, i guess
[image: image.png]
On Thu, 26 Jan 2023 at 19:41, Nutzy @.***> wrote:

Could be a permission issue that needs to be resolved. What user and
predefined roles were used?
On Thu, Jan 26, 2023 at 11:32 AM Paul Brekelmans @.***>
wrote:

Deployment says ok, no errors. all completed but no config is created in
the bucket.
Manually adding one and backfilling worked after adding some python
modules. But i'm worried that pub/sub won't work
BQ rights seem to be ok. Any clue?
—
Reply to this email directly, view it on GitHub
https://github.com/adswerve/google_analytics_flattener_ga4/issues/18,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/ADLZWNYDDMEZWEMRLOOEN33WUK7MVANCNFSM6AAAAAAUH2MYXI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

—
Reply to this email directly, view it on GitHub
https://github.com/adswerve/google_analytics_flattener_ga4/issues/18#issuecomment-1405439709,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAUGRHXQANJXKJFMP56P54TWULAMPANCNFSM6AAAAAAUH2MYXI
.
You are receiving this because you authored the thread.Message ID:
@.***>

I have this error in the Cloud function log
File
"/layers/google.python.pip/pip/lib/python3.7/site-packages/google/cloud/_http.py",
line 484, in api_request
raise exceptions.from_http_response(response)
google.api_core.exceptions.BadRequest: 400 GET
https://bigquery.googleapis.com/bigquery/v2/projects/********/queries/b42d992b-0a7e-431e-b65c-fce80a327276?maxResults=0&location=US&prettyPrint=false:
EXECUTE IMMEDIATE sql string cannot be NULL at [2:27]
(job ID: b42d992b-0a7e-431e-b65c-fce80a327276)
 -----Query Job SQL Follows-----

|    .    |    .    |    .    |    .    |    .    |    .    |    .    |

.    |    .    |    .    |    .    |    .    |    .    |    .    |    .
|    .    |    .    |    .    |
1:
2:        EXECUTE IMMEDIATE (
3: WITH schemas AS (
4:  SELECT
5:    schema_name,
6:    LAST_VALUE(schema_name) OVER (PARTITION BY catalog_name ORDER BY
schema_name ASC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
AS last_schema
7:  FROM
8:    INFORMATION_SCHEMA.SCHEMATA
9:  where regexp_contains(schema_name,r'^analytics_\d+$')
10:), static AS (
11:  SELECT
12:    "SELECT dataset_id FROM %s.__TABLES__ where
regexp_contains(table_id,r'^events.*\d{8}$') and
((UNIX_MILLIS(current_timestamp()) - creation_time)/1000)/86400 < 30 group
by 1" AS sql,
13:    " union all " AS cmd_u,
14:    " order by 1 " AS cmd_f
15:)
16:SELECT
17:  ARRAY_TO_STRING(ARRAY_AGG(sql_command_rows),"") AS
generated_sql_statement
18:FROM (
19:  SELECT
20:    CASE WHEN schemas.schema_name != schemas.last_schema THEN
CONCAT(FORMAT(static.sql,schema_name),static.cmd_u)
21:         ELSE CONCAT(FORMAT(static.sql,schema_name),static.cmd_f)
22:     END AS sql_command_rows
23:  FROM
24:    static
25:  CROSS JOIN
26:    schemas
27:  ORDER BY
28:    schema_name ASC
29:      ) -- end of sub select
30:);  --end of dynamic SQL statement
|    .    |    .    |    .    |    .    |    .    |    .    |    .    |
.    |    .    |    .    |    .    |    .    |    .    |    .    |    .
|    .    |    .    |    .    |
Met vriendelijke groet,
Paul Brekelmans
Senior Online Marketeer | Kaliber | +316 270 77 520
On Thu, 26 Jan 2023 at 21:56, Ruslan Bergenov @.***>
wrote:

@brekelbende https://github.com/brekelbende , can you check the logs to
see if there was any errors?
—
Reply to this email directly, view it on GitHub
https://github.com/adswerve/google_analytics_flattener_ga4/issues/18#issuecomment-1405639223,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAUGRHV2BEXLQYK2YXS76ADWULQHPANCNFSM6AAAAAAUH2MYXI
.
You are receiving this because you were mentioned.Message ID:
@.***>

@brekelbende, I have seen that error before, it happens when there's no recent (within the last 30 days) GA4 data in BigQuery.
Are you exporting any GA4 properties into your GCP project's BigQuery?
In your BigQuery, do you have any datasets called analytics_{ga4_property_id} with tables called events_{date}, where table date is within the last 30 days?
If the answer is no, then the following query will fail and therefore no flattener config file will be created.
        EXECUTE IMMEDIATE (
 WITH schemas AS (
  SELECT
    schema_name,
    LAST_VALUE(schema_name) OVER (PARTITION BY catalog_name ORDER BY schema_name ASC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS last_schema
  FROM
    INFORMATION_SCHEMA.SCHEMATA
  where regexp_contains(schema_name,r'^analytics\_\d+$')
), static AS (
  SELECT
    "SELECT dataset_id FROM `%s.__TABLES__` where regexp_contains(table_id,r'^events.*\\d{8}$') and ((UNIX_MILLIS(current_timestamp()) - creation_time)/1000)/86400 < 30 group by 1" AS sql,
    " union all " AS cmd_u,
    " order by 1 " AS cmd_f
)
SELECT
  ARRAY_TO_STRING(ARRAY_AGG(sql_command_rows),"") AS generated_sql_statement
FROM (
  SELECT
    CASE WHEN schemas.schema_name != schemas.last_schema THEN CONCAT(FORMAT(static.sql,schema_name),static.cmd_u)
         ELSE CONCAT(FORMAT(static.sql,schema_name),static.cmd_f)
     END AS sql_command_rows
  FROM
    static
  CROSS JOIN
    schemas
  ORDER BY
    schema_name ASC
      ) -- end of sub select
);  --end of dynamic SQL statement

@RuslanBergenov yes, i have those datasets and events and intraday tables populated with recent data. Could gcloud locations be a thing? I build my buckets in europe-west4. My dataset is also in europe-west4.

@brekelbende, not sure if location causes it, but can't rule it out either.
Can you try the following investigation steps?

Run the above SQL query in BigQuery, in the GCP project you installed the flattener to. Does it give you the same error?

Trigger the cfconfigbuilder Cloud Function manually.  Search for logs containing the Cloud Function name {deployment-name}-cfconfigbuilder
Did the same error happen?
Was the config file built?

Can you verify that the following steps were completed before the installation?
As the installing user for [PROJECT_ID], enable the following APIs

Cloud Build API
Cloud Deployment Manager V2 API
Cloud Functions API
Identity and Access Management (IAM) API
Cloud Scheduler API (if you need to flatten intraday tables)

As the installing user for [PROJECT_ID], grant the following pre-defined IAM roles to<EMAIL_ADDRESS>(built in service account) otherwise deployment will fail with permission errors. See https://cloud.google.com/deployment-manager/docs/access-control for detailed explanation.

Logs Configuration Writer
Cloud Functions Developer
Pub/Sub Admin

Run the above SQL query in BigQuery, in the GCP project you installed
the flattener to. Does it give you the same error?
2.
Trigger the cfconfigbuilder Cloud Function manually.  Search for logs containing the Cloud Function
name {deployment-name}-cfconfigbuilder
Did the same error happen?
Was the config file built?

Same error, no config was built.

Cloud Build API
Cloud Deployment Manager V2 API
Cloud Functions API
Identity and Access Management (IAM) API
Cloud Scheduler API (if you need to flatten intraday tables)

As the installing user for [PROJECT_ID], grant the following pre-defined
IAM roles to @.*** (built in
service account) otherwise deployment will fail with permission errors. See
https://cloud.google.com/deployment-manager/docs/access-control for
detailed explanation.

Logs Configuration Writer
Cloud Functions Developer
Pub/Sub Admin

Yeah, I did all that. This query is indeed the problem. I'm trying to debug
it.

EXECUTE IMMEDIATE (
WITH schemas AS (
SELECT
schema_name,
LAST_VALUE(schema_name) OVER (PARTITION BY catalog_name ORDER BY
schema_name ASC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
AS last_schema
FROM
INFORMATION_SCHEMA.SCHEMATA
where regexp_contains(schema_name,r'^analytics_\d+$')
), static AS (
SELECT
"SELECT dataset_id FROM %s.__TABLES__ where
regexp_contains(table_id,r'^events.*\d{8}$') and
((UNIX_MILLIS(current_timestamp()) - creation_time)/1000)/86400 < 30 group
by 1" AS sql,
" union all " AS cmd_u,
" order by 1 " AS cmd_f
)
SELECT
ARRAY_TO_STRING(ARRAY_AGG(sql_command_rows),"") AS generated_sql_statement
FROM (
SELECT
CASE WHEN schemas.schema_name != schemas.last_schema THEN
CONCAT(FORMAT(static.sql,schema_name),static.cmd_u)
ELSE CONCAT(FORMAT(static.sql,schema_name),static.cmd_f)
END AS sql_command_rows
FROM
static
CROSS JOIN
schemas
ORDER BY
schema_name ASC
) -- end of sub select
); --end of dynamic SQL statement

I can run other queries on the dataset and tables. So it's weird. Must be
something small. Will try the exact table names instead of regex's.
Tommorrow.
Thanks for thinking along so far :-)
On Fri, 3 Feb 2023 at 17:51, Ruslan Bergenov @.***>
wrote:

Can you verify that the following steps were completed before the
installation?
As the installing user for [PROJECT_ID], enable the following APIs

Cloud Build API
Cloud Deployment Manager V2 API
Cloud Functions API
Identity and Access Management (IAM) API
Cloud Scheduler API (if you need to flatten intraday tables)

As the installing user for [PROJECT_ID], grant the following pre-defined
IAM roles to @.*** (built in
service account) otherwise deployment will fail with permission errors. See
https://cloud.google.com/deployment-manager/docs/access-control for
detailed explanation.

Logs Configuration Writer
Cloud Functions Developer
Pub/Sub Admin

—
Reply to this email directly, view it on GitHub
https://github.com/adswerve/google_analytics_flattener_ga4/issues/18#issuecomment-1416133027,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAUGRHTZVBIXOO7JORZNEH3WVUZRNANCNFSM6AAAAAAUH2MYXI
.
You are receiving this because you were mentioned.Message ID:
@.***>

@brekelbende, what happens when you run the very first part of the query?
  SELECT
    schema_name,
    LAST_VALUE(schema_name) OVER (PARTITION BY catalog_name ORDER BY schema_name ASC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS last_schema
  FROM
    INFORMATION_SCHEMA.SCHEMATA
  where regexp_contains(schema_name,r'^analytics\_\d+$')

@RuslanBergenov found it! It's the processing location of the query.  Under Query Settings > Advanced Settings > Automatic location selection was "checked". My dataset is in europe-west4 but automatic choose US. So it couldn't find the dataset. Is that something i can force within the code?

@brekelbende, you were correct a couple of days ago - the root cause of the issue does appear to be location.
Can you try deploying the Cloud Functions to europe-west4?
Uninstall the flattener:
gcloud deployment-manager deployments delete ga-flattener-deployment  -q
In ga_flattener.yaml, replace us-east1 location with europe-west4
Deploy the flattener again:gcloud deployment-manager deployments create ga-flattener-deployment --config ga_flattener.yaml
Does that work for you?

@brekelbende, based on this documentation, looks like you wouldn't be able to deploy to europe-west4, because it's only for Generation 2 Cloud Functions.
https://cloud.google.com/functions/docs/locations
Try deploying the Cloud Functions to to europe-west2. I'm curious about 3 things:

Does the flattener get installed?
Does the config file gets build?
Would the flattening queries run successfully?

@RuslanBergenov unfortunately, it doesn't work. It's get installed. Won't built the config.json file in the adswerve bucket. I've also set everything in the code to europe-west2 or EU regions. Still fails to execute the query from INFORMATION_SCHEMA.SCHEMATA. It only works when BQ dataset is in europe-west-2 I guess. Current client cannot host outside NL(=europe-west4) . Manually adding the config_dataset.json works fine btw.

@brekelbende, sorry to hear about the challenges you've been experiencing. Good idea to just add the config file manually. Follow the examples in the repo and README and add your actual GA4 property id in it.
Check tomorrow to see if the daily flattening job ran. You can also try running a backfill job (see README) for instructions.
Look for flat tables in BigQuery and also check cloud functions logs for any errors.
Let me know how it goes.

@brekelbende, were you able to figure out the issues you were having? Do you have any other questions?

@RuslanBergenov unfortunately no, i'm a bit tangled into GCP locations en cloud function versions. But it's only the deployment. Manually altering the config.json works fine though and the process keeps running.

@brekelbende, I will close this issue for now, but we can reopen it if you need any help on this issue.


suggestion

it is better if it can visualize robot frame

@IsabelParedes Yes,because when i write urdf file,i must know previous frame before i write joint rotation angle in order to connect next frame correctly.So,before i meet jupyterlab-urdf,I use rviz to visualize robot and write urdf .It is inconvenient because I must restart rviz after change urdf .Does jupyterlab-urdf can visualize link frame?

Hi @kassasin ! Currently, the extension doesn't support frames, but this is a great idea. I'll look into it a bit more, but I think it should be doable.


Update usage example/example to use new ref callback

ref={(alert) => this._alert = alert}

Note:
Although string refs are not deprecated, they are considered legacy, and will likely be deprecated at some point in the future. Callback refs are preferred.


Removed term 'above'

It was incorrectly indicating the Hook URL field would be above the instructions, whilst now it is below :)

:+1:

Thanks! This will go out at some point this week. :cake:

Great! Thank you!


Implement is_alive

Solves https://github.com/napalm-automation/napalm-junos/issues/82

Coverage decreased (-0.1%) to 86.337% when pulling cad2f519a0f9f3eee0ab1bb40d927349d07cce7f on mirceaulinic:IMPLEMENT-NS into f88676ac6f46cea43ee3c24d89197acabafde512 on napalm-automation:develop.

+1


Fixed typo in initial_step_size method.

See the reference in the docstring for details.

@googlebot I signed it!


Impossible to switch VSCode theme when Windows High Contrast theme is enabled

VSCode Version: 1.21.0
OS Version: Windows 10.0.16299.248

Steps to Reproduce:

Change Windows theme to High Contrast
VSCode will always fall back to High Contrast theme as well.

Does this issue occur when all extensions are disabled?: Yes
There was no issue before v1.21
I need to be able to control VSCode theme independently from Windows theme.

thanks to bot - I found the setting to disable this behavior: window.autoDetectHighContrast


Add proper param validation

Currently parameter format is defined in OpenAPI spec but is not enforced by backend

Requests and responses are actually validated by openapi validator middleware


⚠ Bofrost.de has degraded performance

In a14ad01, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1581 ms

Resolved: Bofrost.de performance has improved in b4fb1df.


Improvement for k8s.io/docs/tasks/run-application/run-stateless-application-deployment/

When Googling "Hello World k8s", this article is among the top 5 articles in the search results.
Unfortunately the article doesn't actually "Hello World" at all.  It doesn't actually let the reader see the results of their work.
I suggest completing the tutorial with steps to see something in a browser from an nginx deployment (the fruit of the labor). Otherwise the tutorial is like video of a craftsman building something and never displaying the final result.

When I search Google for “Hello World k8s”, this article isn't in the top 5 results for me.
The page could do with mentioning in a what's next section about how to expose that Deployment to the internet. If the reader wants to see something, exposing the Deployment is a good way to make that happen.
/priority backlog


Get correct version of freetds for activerecord-sqlserver-adapter.

activerecord-sqlserver-adapter depends on tiny_tds -v '2.1.2' which in turn requires FreeTDS 0.95.80 or higher.
The version of freetds-bin installed with apt-get on jessie is 0.91-6 (which is too low).
https://packages.debian.org/jessie/freetds-bin
tiny-tds docs recommend installing freetds from ftp.
https://github.com/rails-sqlserver/tiny_tds#install
Installing freetds this way lets gem install activerecord-sqlserver-adapter work.
relates to #10

This is a must, please add this one in!!!

fixed https://github.com/Azure-App-Service/ruby-template/pull/3


Is this project still active ?

It is no longer active. I would not recommend investing time into using it anymore.


Allow customizing sidebar file rows size (height)

I have a feature request about the sidebar in VS Code. The rows size can't be customized without some experimental extension called Customize UI.
I hope you can add some property to the settings of vs code that allow for changing the height of the rows in the sidebar.
Here is what I mean:

Before
After

So, what are your thoughts? 😁

+1

As professional code master, this is am amazing project. I advise to take it into consideration.