btc_cassandra_streaming.py Exception

I am getting the below exception in btc_cassandra_streaming.py  line 415.
'StackData' object has no attribute 'hash'

Sorry i was not able to reproduce. If you can give more details and the issue is still there please open another issue.

i came across this bug while merging the of this repo into our new gs-lib repo. Please use the code there, this issue should be fixed there (in https://github.com/graphsense/graphsense-lib/commit/187a1ebbf3bed8dbf5c87c41f4429015956e111b)


[webpack] packages all project folder instead of the .webpack folder

I can't get electron-forge to package a webpack build.
Whatever i do the "dir" passed to electron-packager is my project folder.
as seen in the cli source file i tried to do electron-forge package .webpack but still because of that line it's always to project folder (the folder where electron is found) which is passed to electron-packager.
So my app ends up being 400Mo and can't run because the main file is not found.
I know see in the code that it's normal to "package" the whole project folder.
With webpack it does not really make sense. Can you guide on how to make it work correctly with webpack?
Thanks

@farfromrefug this is a bug on our end, I can fix it :+1:

By default beta 29 brutally ignores everything other than .webpack and your package.json file.  And we remove the dependencies and devDependencies object from your package.json for extra safety
Your package will be nice and small now 👍

@MarshallOfSound just tested and it works great now. 2 remarks:

i still have an empty node_modules folder in my package. Not a big deal but not necessary
could you also remove the scripts section from the package.json?

i still have an empty node_modules folder in my package. Not a big deal but not necessary

Yeah, something blew up when I didn't make an empty node_modules directory there, easiest solution was to just have an empty one.  Shouldn't be an issue

could you also remove the scripts section from the package.json?

I was thinking about it, wasn't sure if there was a legitimate use case for leaving those around in a packaged app


Uncertain error without dockerfile directive

Hello! I encountered an uncertain error when I accidentally wrote context instead of dockerfile in a werf.yaml.
werf.yaml
configVersion: 1
project: dashboard
---
image: frontend
context: Dockerfile.frontend

Logs:
Version: v1.2.2+fix1
┌ Running GC for tmp data
│ /private/var/folders/wd/5jrrjzpd6dzb75n7sg8nfg480000gn/T/werf-project-data-354066578
│ /private/var/folders/wd/5jrrjzpd6dzb75n7sg8nfg480000gn/T/werf-project-data-758214449
│ /Users/m.nabokikh/.werf/service/tmp/released/projects/werf-project-data-354066578
│ /Users/m.nabokikh/.werf/service/tmp/released/projects/werf-project-data-758214449
│ /private/var/folders/wd/5jrrjzpd6dzb75n7sg8nfg480000gn/T/werf-config-render-319227034
│ /private/var/folders/wd/5jrrjzpd6dzb75n7sg8nfg480000gn/T/werf-config-render-863334975
│ /Users/m.nabokikh/.werf/service/tmp/created/werf_config_renders/werf-config-render-319227034
│ /Users/m.nabokikh/.werf/service/tmp/created/werf_config_renders/werf-config-render-863334975
└ Running GC for tmp data (0.00 seconds) FAILED

Running time 0.04 seconds
Error: unable to load werf config: tmp manager GC failed: unable to remove tmp projects dirs /private/var/folders/wd/5jrrjzpd6dzb75n7sg8nfg480000gn/T/werf-project-data-354066578, /private/var/folders/wd/5jrrjzpd6dzb75n7sg8nfg480000gn/T/werf-project-data-758214449: Status: , Code: 125

However, it would be better to see something like:
Something wrong with the configuration for building image "frontend".

This error does not relate to the dockerfile-image configuration. It is Running GC for tmp data (0.00 seconds) FAILED process that failed during build command execution. GC for tmp data removes some tmp data that has been generated during previous builds.
Seems like werf does not have a permission to remove /tmp files.

I think it is safe to transform GC error to warning and continue build process in such case.

This is my very first build, and after changing context to dockerfile everything works fine. May be there is something missing in the "quick start" guide.

Seems like werf does not have a permission to remove /tmp files.

@nabokihms Could you check this?

Yes, it looks like werf can do anything it wants with the tmp directory.

Now werf will display the following error for your configuration:

The original error in the issue related to the permissions of GC process. Werf can run GC process at the beginning of any main command (like werf-build, or werf-converge, or werf-dismiss) when there is too much tmp data accumulated.

Maybe this directory /private/var/folders/wd/5jrrjzpd6dzb75n7sg8nfg480000gn/T/werf-project-data-354066578 contains some files owned by the root user or another user. It is 99% macos-related, we have encountered this error on our test macos: https://github.com/werf/werf/runs/1559895347?check_suite_focus=true
So I will rename this issue.


ERROR using Angular 7

Hi, I use Angular CLI: 7.0.1 and Angular: 7.0.0.
When executing: ng serve -o
ERROR in src / .... module.ts (9,40): error TS2307: Cannot find module 'ng2-canvas-whiteboard/index'.
Please help.

Hi, I am sorry but the current version does not have this issue on a new ng generated app.
Can you please remove the /index in the import so it's only
import {CanvasWhiteboardModule} from 'ng2-canvas-whiteboard';
The sample module should look like:
.....
...
...
import {CanvasWhiteboardModule} from 'ng2-canvas-whiteboard';

@NgModule({
  declarations: [
    ....
  ],
  imports: [
    ....
    CanvasWhiteboardModule
  ],
  providers: [],
  bootstrap: [....]
})
export class ExampleModule {
}

Will close for inactivity, please reopen if this issue still happens.

Thanks for the help.


Added style parameter

This PR will partially fix #705.
Why partially? Because badges/poser doesn't support the fourth requested style: for-the-badge. There is already an issue for this: badges/poser#55. I will try and implement this over there as well.

@ricardoboss thanks so much for your PR! What do you think to add also the specific section on the landing page to explain the new feature?

Sounds reasonable. I will add some documentation to this PR.

@JellyBellyDev I need some help adding the style parameter to the routes. What I did does not seem to work... Can you take a look?

Hi @ricardoboss,
I tagged a new feat on https://github.com/badges/poser.
Can you update this PR? Thanks

@JellyBellyDev done

No, because I haven't updated the PUGX/poser package yet.

@JellyBellyDev do you want me to close this PR in favor of #733?

Yea! Thanks! in doing so we can work together! ;)


Please update the outdated information

For https://git-scm.com/book/gr/v2/Git-Tools-Credential-Storage

If you’re using Windows, you can install a helper called “winstore.” This is similar to the “osxkeychain” helper described above, but uses the Windows Credential Store to control sensitive information. It can be found at https://gitcredentialstore.codeplex.com.

The project "Windows Credential Store" is no longer maintained and has been replaced by Microsoft/Git-Credential-Manager-for-Windows: Secure Git credential storage for Windows..

Hey @Explorare, thanks for the info! Nevertheless, the content you refer to, is extracted from the progit/progit2 repository. Could you raise the issue there?
This repository aggregates info from several sources. To better understand to which source the content refers to, you can start by having a look at our issue template at let us know if you need any help

@pedrorijo91 Oh, sorry for this. I've read the template but still made the mistake :)
Please close this issue. Sry for bothering you.


Cargo is damaged when respawning train cars

Doesn't happen when loco is coupled because player's last loco prevents despawning.

If anyone has steps for reproducing this consistently, please let me know.

I was able to replicate this:

did a shunting load job and finished it
left the loaded wagon on the output track
traveled with the handcar until the wagons despwan (checking the log for despwan messages)
traveled back to the wagon
everything respawned fine, except the cargo is shown with 0% health on the sign

Because I traveled by handcar the coupled DE2 didn't prevent the despawn (last loco set to handcar).
I didn't find any error in the log file, just the equipment record stuff and the new order generation working.
Player_CargoDamage.log
Here are the two save files 00012 with the loaded wagon and 00015 with the damaged cargo.
RSO_CargoDamage.zip


@conda-forge-admin,please add bot automerge

@conda-forge-admin,please add bot automerge

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added bot automerge in conda-forge/s2n-feedstock#17.

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added bot automerge in conda-forge/s2n-feedstock#17.


fix describedby inconsistencies

resolves #67

@jtyoung84 , @mekhlakapoor I am experimenting with how to handle describedBy generically in one place.  I did this by creating a generic base class and doing some funky dynamic field generation.  Feedback welcome.

@jtyoung84 , @mekhlakapoor I am experimenting with how to handle describedBy generically in one place. I did this by creating a generic base class and doing some funky dynamic field generation. Feedback welcome.

A few unit tests would be cool.

@jtyoung84 , @mekhlakapoor I am experimenting with how to handle describedBy generically in one place. I did this by creating a generic base class and doing some funky dynamic field generation. Feedback welcome.

A few unit tests would be cool.

Yeah will do - mostly wanted to get a gut check for the dynamic typing approach.

@jtyoung84 , @mekhlakapoor I am experimenting with how to handle describedBy generically in one place. I did this by creating a generic base class and doing some funky dynamic field generation. Feedback welcome.

A few unit tests would be cool.

Yeah will do - mostly wanted to get a gut check for the dynamic typing approach.
Here:
https://github.com/AllenNeuralDynamics/aind-data-schema/blob/27bb22108067f6ea5e2192628787877b98aa5c3d/src/aind_data_schema/base.py#L14

I'm good with this approach


RDK-37645 : xControl Cherry 'Watch Together' Development

Reason for change: add support for cherry phase 1
Test Procedure: Verification build in https://gerrit.teamccp.com/#/q/topic:RDK-37645
Risks: Low
Signed-off-by: David Wolaver<EMAIL_ADDRESS>

APIs should follow the JSON-RPC spec https://www.jsonrpc.org/specification#response_object
Please use error codes instead of the XRE Service Manager legacy param "success"

APIs should follow the JSON-RPC spec https://www.jsonrpc.org/specification#response_object Please use error codes instead of the XRE Service Manager legacy param "success"

I've opened DELIA-57705 to address compliance.  For now, the API should remain consistent with respect to return code.  Removing the "success" field would cause a breaking change to the API.  It will have to be deprecated first and then wait at least two RDK releases before removing it.


feature request related to a problem

Is your feature request related to a problem%3F Please describe.%0AA clear and concise description of what the problem is. Ex. I'm always frustrated when [...]%0A%0ADescribe the solution you'd like%0AA clear and concise description of what you want to happen.%0A%0ADescribe alternatives you've considered%0AA clear and concise description of any alternative solutions or features you've considered.%0A%0AAdditional context%0AAdd any other context or screenshots about the feature request here.%0A

Not an issue.


"COVID test reult is not yet available" meaning

Hello everyone, I was wondering if I could get results after a COVID test even though I am negative.
Problem:
I took COVID test on 1st September, and until 3rd September still shows "test result is not yet available"
Since the clinic said that if the result is negative, they would not inform you.
I am not sure if the result is still processing or my device is too old or a negative result or something not clear.
Detailed information:
Zenfone ZE554KL, Android 8.0
CWA 1.2.1
Clinic: Dr. Sibylle Katzenstein at Bürknerstraße 11, 12047 Berlin
(Muster OEGDb/E (6.2020) )
Thank you for your answering.

Hey, when they said they won't inform you if you're negative, this is a little bit tricky.
The App shows this screen when
a) the Test Results aren't received yet
b) if you are negative and the Laboratory does not inform the App.
So I would leave the Test inside the App for 2-3 more days, if this Screen stays it is most likely you're negative.
If you feel unsafe you could contact the Laboratory that tested you 👍

b) if you are negative and the Laboratory does not inform the App.

Unfortunately there were also cases where the test was positive but the result didn't show up in the app. But maybe the situation has improved in the meantime 🤷.
Regarding the main question, I'll quote my reply to a similar issue:

Afaik negative [and positive] test results should always be shown in CWA if everything is working correctly. But unfortunately not everything seems to be working correctly currently.
Here is the FAQ entry: https://www.coronawarn.app/en/faq/#qr_test
and here the GH issue: https://github.com/corona-warn-app/cwa-documentation/issues/400

OK...@@
Firstly I will wait for some time, hopefully I could see the update in this app.
Then if it already take too long time, I will ask the clinic. :/

Hello everyone,
there are currently many open tickets regarding QR code handling.
The main issue is this one: https://github.com/corona-warn-app/cwa-documentation/issues/400
The CWA team is aware of the situation and it is currently a very high priority and is discussed as a topic in every daily meeting we have. Unfortunately, there are many parties involved to fix all related issues.
@lingfangtw I would kindly ask you to double check if this ticket here is necessary or if its better to contribute on the existing discussion.
Best regards,
SG
Corona-Warn-App Open Source Team

Please use the tickets referred by @svengabr to follow up. This issue will be closed.


Reactive support

I'm trying to access the issue tracker and Google groups as per the official page but those don't seem to work for me so I'll raise my issue here.
I was wondering if anyone has discussed adding support at least for R2DBC or, even better, having the option to schedule jobs in a reactive manner? At the moment the only way to get both R2DBC and Quartz is defining 2 datasources which is not great. An option would be to implement a R2DBCJobStoreTX class that would bridge the integration with R2DBC.
Any thoughts on this?

I think this is still relevant. As long as Quartz only supports JDBC (blocking I/O), reactive applications that use R2DBC (non-blocking I/O) for database access will need to add a JDBC-based datasource for Quartz.

Any news ?

Still relevant in my opinion.

!stalebot reopen

This is still relevant - we need r2dbc support for quartz to use ReactiveTransactionManager in WebFlux - please reopen

Why this was closed ? Of course it is still relevant if nothing was done

Any update on this?

Bumping on my side as well.


Extension global state syncing - syncing objects

Testing #109388
I have an extension with these commands:
	context.subscriptions.push(vscode.commands.registerCommand('extension.addRamacfarTest', _ => {
		context.syncedGlobalState.syncedKeys = ['ramacfar-test'];
	}));

	context.subscriptions.push(vscode.commands.registerCommand('extension.setRamacfarTest', async _ => {
		context.syncedGlobalState.update('ramacfar-test', { test: true });
	}));

When modifying and syncing this key, the synced data view shows it only as an empty object, instead of as { test: true }:

Good catch


Align site 'furniture' (navigation, footers, etc) with quarkus.io

We want the extensions catalog to integrate nicely into the main quarkus.io site, so that it feels like the same site. To do that, we need to align the visual elements.
This will be straightforward to get mostly right, but maybe harder to get fully DRY and resilient to changes on the main site.

[ ] Align design language, menus, etc
[ ] Fix width issues, covered by #5
[ ] DRYness of styling elements, content, links etc
[ ] Possible restructuring to reduce maintenance effort
[ ] Harmonize filtering logic with https://quarkus.io/guides/

Filtering on mobile (for guides, but we should copy):

I've raised #87 to cover some thorny icon issues.


Changes to generate anonymous types inside parent type's namespace

Issue #103:
Description of changes:
This PR works on first portion of #103 issue which is defining a namespace corresponding to parent type for anonymous types. As described in the issue:

For Java, this means that anonymous types(e.g. AnonymousType1) will be placed inside its parent class (e.g. Foo) in the same namespace (e.g. Foo.AnonymousType1)
For Rust, this means that anonymous types(e.g. AnonymousType1) will be placed inside its parent type module(e.g. foo).

Generated code:

Generated code for given ISL test files in Java can be found here
Generated code for given ISL test files in Rust can be found here

List of changes:

Changes to generate anonymous types as child classes in Java

Adds a new template anonymous_Type.templ which has macros to generate
anonymous types as child classes
Modifies class.templ to include anonymous types as child classes
Modifies setter methods in class.templ to include base types in the
arguments instead of AnonymousTypes
Modifies tests to remove reference to AnonymousTypes
Adds new util structure AnonymousType which will be used to render
anonymous types as chilsren and modify setter methods to include base
types

Adds changes for generating anonymous types in child modules for Rust

Adds a new anonymous_type.templ template to generate a child module
for anonymous types
Modifies struct.templ to use anonymous_type template

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Do the generated unit tests exercise this new functionality?
Yes, it does. The nested_struct.isl file contains a 2-level anonymous type/nested type for which the code generates, In Java the anonymous class into the parent class and for Rust the anonymous struct into parent struct's module.

As per the conversation in this PR and offline, it would be simpler to express sequence and scalar nested types as is instead of creating another nested class/struct for it. This will be implemented in a separate PR.
Example ISL:
type::{
   name: foo,
   fields: {
      sequence_type: { type: list, element: int },
      scalar_type: { type: string }
   }
}

Output Java:
class Foo {
   private sequence_type: ArrayList<Integer>; // current impl would treat it as `NestedTypeX`
   private scalar_type: String; // current impl would treat it as `NestedTypeY`
   ...
}


Impossible to structure runtime

I apply this patch to substrate v2.0.0:
diff --git a/primitives/io/src/lib.rs b/primitives/io/src/lib.rs
index 382a0c4b3..a3fe0544b 100644
--- a/primitives/io/src/lib.rs
+++ b/primitives/io/src/lib.rs
@@ -89,12 +89,7 @@ pub trait Storage {
                self.storage(key).map(|s| s.to_vec())
        }

-       /// Get `key` from storage, placing the value into `value_out` and return the number of
-       /// bytes that the entry in storage has beyond the offset or `None` if the storage entry
-       /// doesn't exist at all.
-       /// If `value_out` length is smaller than the returned length, only `value_out` length bytes
-       /// are copied into `value_out`.
-       fn read(&self, key: &[u8], value_out: &mut [u8], value_offset: u32) -> Option<u32> {
+       fn read_impl(&self, key: &[u8], value_out: &mut [u8], value_offset: u32) -> Option<u32> {
                self.storage(key).map(|value| {
                        let value_offset = value_offset as usize;
                        let data = &value[value_offset.min(value.len())..];
@@ -102,6 +97,16 @@ pub trait Storage {
                        value_out[..written].copy_from_slice(&data[..written]);
                        data.len() as u32
                })
+
+       }
+
+       /// Get `key` from storage, placing the value into `value_out` and return the number of
+       /// bytes that the entry in storage has beyond the offset or `None` if the storage entry
+       /// doesn't exist at all.
+       /// If `value_out` length is smaller than the returned length, only `value_out` length bytes
+       /// are copied into `value_out`.
+       fn read(&self, key: &[u8], value_out: &mut [u8], value_offset: u32) -> Option<u32> {
+               self.read_impl(key, value_out, value_offset)
        }

        /// Set `key` to `value` in the storage.

After this it does not compile:
error[E0599]: no method named `read_impl` found for reference `&&mut dyn storage::proc_macro_runtime_interface::Externalities` in the current scope
   --> primitives/io/src/lib.rs:109:8
    |
109 |         self.read_impl(key, value_out, value_offset)
    |              ^^^^^^^^^ method not found in `&&mut dyn storage::proc_macro_runtime_interface::Externalities`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0599`.
error: could not compile `sp-io`

To learn more, run the command again with --verbose.

Then I try another way:
diff --git a/primitives/io/src/lib.rs b/primitives/io/src/lib.rs
index 382a0c4b3..a3fe0544b 100644
--- a/primitives/io/src/lib.rs
+++ b/primitives/io/src/lib.rs
@@ -89,12 +89,7 @@ pub trait Storage {
                self.storage(key).map(|s| s.to_vec())
        }

-       /// Get `key` from storage, placing the value into `value_out` and return the number of
-       /// bytes that the entry in storage has beyond the offset or `None` if the storage entry
-       /// doesn't exist at all.
-       /// If `value_out` length is smaller than the returned length, only `value_out` length bytes
-       /// are copied into `value_out`.
-       fn read(&self, key: &[u8], value_out: &mut [u8], value_offset: u32) -> Option<u32> {
+       fn read_impl(&self, key: &[u8], value_out: &mut [u8], value_offset: u32) -> Option<u32> {
                self.storage(key).map(|value| {
                        let value_offset = value_offset as usize;
                        let data = &value[value_offset.min(value.len())..];
@@ -102,6 +97,16 @@ pub trait Storage {
                        value_out[..written].copy_from_slice(&data[..written]);
                        data.len() as u32
                })
+
+       }
+
+       /// Get `key` from storage, placing the value into `value_out` and return the number of
+       /// bytes that the entry in storage has beyond the offset or `None` if the storage entry
+       /// doesn't exist at all.
+       /// If `value_out` length is smaller than the returned length, only `value_out` length bytes
+       /// are copied into `value_out`.
+       fn read(&self, key: &[u8], value_out: &mut [u8], value_offset: u32) -> Option<u32> {
+               storage::read_impl(key, value_out, value_offset)
        }

        /// Set `key` to `value` in the storage.

It compiles but fails the tests:
---- storage::types::value::test::test stdout ----
thread 'storage::types::value::test::test' panicked at 'already borrowed: BorrowMutError', /home/porton/.cargo/registry/src/github.com-1ecc6299db9ec823/environmental-1.1.2/src/lib.rs:143:41

---- storage::types::map::test::test stdout ----
thread 'storage::types::map::test::test' panicked at 'already borrowed: BorrowMutError', /home/porton/.cargo/registry/src/github.com-1ecc6299db9ec823/environmental-1.1.2/src/lib.rs:143:41

---- storage::types::double_map::test::test stdout ----
thread 'storage::types::double_map::test::test' panicked at 'already borrowed: BorrowMutError', /home/porton/.cargo/registry/src/github.com-1ecc6299db9ec823/environmental-1.1.2/src/lib.rs:143:41

This example shows that there is no (at least obvious) way to extract a part of a runtime function into a separate function (what may be necessary to factor out code of two similar functions into a third function). That's bad. What to do now?

Just create a free standing function that you call from your functions?

Just create a free standing function that you call from your functions?

But what should be its type for the argument self?
Note self.read_impl(key, value_out, value_offset) in the original bug report given as an example.


2.0 refactor

Refactored my changes to flexible mink into small functions without boolean voodoo.

Paging @johnnie502 to review the front-end work in this pull request!
Paging @jose-ochoa to review the back-end work in this pull request!
Paging @PrinceMegahit to review the testing work in this pull request!
I couldn't recognize who these files were relevant to:
behat.yml


Check by Default "Show zero balances"

Are you kidding ?

INVESTORS ARE NOT DEVS ! They are NOT so smart with computers.

Thank you for your feedback.
We will make "Show zero balances" checked by default.


Pagination idea: type-specific refetching plugins

In some sense, handling pagination in a smart way is just a special case of "when you ask for data, treat certain fields in a special way because we know that the arguments are meaningful." So if we're looking at a Relay spec paginated list:
// first fetch
{
  user {
    id
    name
    friends(first: 10) {
      edges {
        cursor
        node {
          id
          name
        }
      }
      pageInfo {
        hasNextPage
      }
    }
  }
}

// new query
... same stuff
friends(first: 20)

// second fetch, doesn't fetch all 20 but uses the existing information
... same stuff
friends(first: 10, after: "lastCursor")

Notice how easy it is for us as humans to imagine what data needs to be fetched to satisfy the new query.
Here's a set of hypotheses:

The initial fetch doesn't need any up-front information about types or pagination - it can look at the query result to know what to do, as long as we inject __typename fields where necessary.
The re-fetch can determine the new query by the information in the store, which now has type annotations and the arguments from the new query
The transformation from (2) can be written as a pure function that can be injected into the apollo client and associated with certain type names

Basically, you could write a function and tell the apollo client:
"When refetching any field which refers to an object with a type matching this regular expression, give me the query you were going to fetch, and the contents of the store, and I'll give you a new query that says how to fetch the missing data."
So, for Relay pagination, you'd say:
client.registerPaginationPlugin(/.+Connection/, ({ state, id, selectionSet }) => {
  ... do work ...

  return {
    // as much of the result as can be found
    result,

    // if empty, then the cache is sufficient and result contains the data.
    // otherwise, an array of queries that need to be fetched
    missingSelectionSets,
  }
});

Ideally this will allow plugging in to different pagination systems, as long as the paginated fields have predictable type names, for example *PaginatedList or Paginated*.
If we can do this, it will achieve some really nice effects:

You don't necessarily need to use the Relay pagination spec, which can be hard to translate to some REST APIs
The store can avoid being concerned with pagination if the API above is indeed sufficient

This is just a very ambitious idea, and I'm eager to determine if this very simple model can actually handle all cases of pagination and Relay connections in particular. More analysis to come soon.
@jbaxleyiii @helfer curious what you think about this.

@stubailo I'm a big fan of the flexibility of this method. We will be using what we have of apollo-client in an app this week that has pagination. I'll report back what usage on a non relay spec server is like.
cc @johnthepink

What do you mean by this week? :P that sounds pretty soon!

I think these kinds of plugins are a great idea! The thing to keep in mind is that we might have to be more careful with garbage collection in the case where newer queries rely on the data from no longer active queries still being in the store. Somehow we'd have to know what data the plugins are extracting from the store. It might not be necessary for pagination, but you could imagine other plugins that know for example that the result of { base_amount, accrued_interest(after_years: 5) } is enough to calculate { base_amount, accrued_interest(after_years: 6) }.
Of course this is a completely fictional example, but stuff like this should remain a possibility.

BTW this issue blocks on #42

Assigning to Martijn to get his feedback!

Rather than having regex on type, we could do something similar to ESLint rules, which specify which AST nodes they are interested in: https://github.com/apollostack/eslint-plugin-graphql/blob/545fcecc8476a13c8d12291cd7fc8924a366178a/src/index.js#L25

Any updates in pagination? I'm using a custom solution, without a very good result.
Really hoping to have an Apollo solution to this.

Pagination (see bellow) is as high-order element that initialize/fetch data on mount, delete on unmount, and expose 2 props to its children:

data with the query result
addFetch to call when needing to fetch more data (I use it in react native ListView in onEndReached).

Problems:

Duplicated data: I actually have a reducer pagination in my redux store and aggregate the results of pagination fetching. This is only temporary since I destroy on unmount and trust the apollo client query to memoize results.
Performance: I'm feeling its pain and believe its because of the duplicate the data fetching redux logic (first apollo query, then I use the result and aggregate in pagination.[config.name] branch in store. I'm using immutablejs in the store.

Here is the complete gist, and bellow the main parts and some explanation.
const query = `
  query doSomeQuery(..., $first: Int!, after: String) { # --> must accept these two parameters (after needs to allow null)
    viewer {
      nest {
         myPaginated($first: Int!, after: String) {
           edges { # --> data array must be in edges
             node {
               ...
             }
           }
           pageInfo {  #  --> must have a pageInfo with at least these two fields
             hasNextPage
             endCursor
           }
         }
       }
    }
  }
`

Now I can abstract the pagination to a custom connector:
const variables = (state, ownProps) => ({
  // custom variables: will fixed after first call
});

const config = {
  name: 'myUniquePaginationName',
  query,
  path: ['viewer', 'nest', 'myPagination'], // need to now where the pagination part is so I aggregate data
  initCount: 10, // $first parameter in initial fetching
  addCount: 10, // $first parameter in adicional fetching
  variables,
};

const ComponentWithPagination = Pagination(config)(Component);

We're going to start working on pagination full-time soon, I'll take a deeper look at this then!

@stubailo is there any progress / recommendations for pagination?

Ah, sorry, not yet - we needed to do batching first because it was necessary for Galaxy. I'm not sure that the query diffing approach for pagination is the right one, I think I actually prefer something more like addFetch. @jbaxleyiii do you guys have a big paginated view in your app? It would be good to take a look at the needs there and see how it would work with different designs.

@stubailo we do! can we schedule a call?

Let's write a spec for this? Should we rely on the view frameworks to power this experience for us? If so, let's write specs for the view layers we support now

Hello,
After having recently decided to jump on the Apollo ship, I've been teaching myself Apollo. Please see http://sandbox.kāla.com/data-emulation.
Was looking the best way to go about pagination and stumbled across this. I've tried out something similar to what @deoqc has done. Do you think is it a good idea to make some sort of a wrapper for this? So that pagination (and other repetitive and often used functions like sort, filter, etc) can be quickly implemented for any data.
How are the developers going to implement pagination?
Also, what is the status for stuff like filtering, sorting and searching? Will Apollo have some support for that, or will we have to write our own stuff?
See https://github.com/graphql/graphql-relay-js/issues/20 in this context.
Thanks!

Hello again,
Here's another solution that works fairly well with RESTful APIs,
I have been able to do all sorts of things - sort, filter, sort on particular columns, text-search using this method.
Server,
import { createApolloServer } from 'meteor/apollo';
import { HTTP } from 'meteor/http';
import _ from 'lodash';
import randomstring from 'randomstring';
import numeral from 'numeral';
import cache from 'memory-cache';

// ----------------------------------------------------------------------- API Adapter

/**
* @summary Adapter, connects to the API
*/
class Adapter {

  /**
  * @summary constructor, define default stuff
  */
  constructor() {
    this.configuration = { // Declare default values here or in the resolver
      currentPage: '1', // The first query will always show the first page
    };
  }

  /**
  * @summary callApi, calls the API
  * @param {string} url, the URL
  * @returns {object}, the response
  */
  callApi(url) {
    try {
      const apiResponse = HTTP.get(url);
      const returnObject = {
        count: null,
        data: [],
      };
      _.each(apiResponse.data.results, function (row) {
        returnObject.data.push({
          id: randomstring.generate(),
          name: row.name,
          diameter: row.diameter,
          rotationPeriod: row.rotation_period,
          orbitalPeriod: row.orbital_period,
          gravity: row.gravity.replace('standard', '').trim(),
          population: (row.population === 'unknown' ? row.population : numeral(parseInt(row.population, 10)).format('0a')),
          climate: row.climate,
          terrain: row.terrain,
          surfaceWater: row.surface_water,
        });
      });
      returnObject.count = apiResponse.data.count;
      return returnObject;
    } catch (error) {
      console.log(error);
      return null;
    }
  }

  /**
  * @summary configure the API
  * @param {object} args, arguments
  * @returns {null} null, does not return anything
  */
  configure(args) {
    this.configuration.currentPage = args.currentPage;

    let metaPlanetsTotalRecords = cache.get('metaPlanetsTotalRecords');
    if (!metaPlanetsTotalRecords) {
      metaPlanetsTotalRecords = this.callApi(`http://swapi.co/api/planets/?page=${this.configuration.currentPage}`).count;
      cache.put('metaPlanetsTotalRecords', metaPlanetsTotalRecords, (60 * 60 * 1000) /* Keep this in memory of one hour */);
    }
    this.configuration.totalRecords = metaPlanetsTotalRecords;

    return this.configuration;
  }

  /**
  * @summary fetch from remote
  * @returns {null} null, does not return anything
  */
  fetch() {
    return this.callApi(`http://swapi.co/api/planets/?page=${this.configuration.currentPage}`).data;
  }
}

const API = new Adapter();

// ----------------------------------------------------------------------- Schema

const schema = [`
type Planet {
  id: String
  name: String
  diameter: String
  gravity: String
  climate: String
  terrain: String
  rotationPeriod: String
  population: String
  orbitalPeriod: String
  surfaceWater: String
}
type MetaPlanets {
  planets: [Planet]
  totalRecords: String
  currentPage: String
}
type Query {
  planets: [Planet]
  metaPlanets(currentPage: String): MetaPlanets
}
schema {
  query: Query
}
`];

// ----------------------------------------------------------------------- Resolvers

const resolvers = {
  Query: {
    planets() {
      return API.fetch();
    },
    metaPlanets(root, { currentPage = '1' } = {}) { // Declare default values here or in the Adapter
      return API.configure({ currentPage });
    },
  },
  MetaPlanets: {
    planets() {
      return API.fetch();
    },
  },
};

createApolloServer({
  graphiql: true,
  pretty: true,
  schema,
  resolvers,
});

And, in client,
import React from 'react';
import { connect } from 'react-apollo';
import { createContainer } from 'meteor/react-meteor-data';
import gql from 'graphql-tag';

import { Table } from 'meteor/sandbox:lib-duplicate';

// ----------------------------------------------------------------------- Component JSS Stylesheet

import jss, {} from 'jss';
import camelCase from 'jss-camel-case';
import vendorPrefixer from 'jss-vendor-prefixer';
import nested from 'jss-nested';
import useSheet from 'react-jss';

jss.use(vendorPrefixer());
jss.use(camelCase());
jss.use(nested());

const stylesheet = {
 // Removed for brevity
};
...

// ----------------------------------------------------------------------- Table definitions

const columns = [{
  title: 'Name',
  key: 'name',
  render: (record) => {
    return (
      {record.name}
    );
  },
}, {
  title: 'Diameter',
  key: 'diameter',
  render: (record) => {
    return (
      {record.diameter}
    );
  },
}, {
  title: 'Pop.',
  key: 'population',
  render: (record) => {
    return (
      {record.population}
    );
  },
}, {
  title: 'Gravity',
  key: 'gravity',
  render: (record) => {
    return (
      {record.gravity}
    );
  },
}, {
  title: 'Climate',
  key: 'climate',
  render: (record) => {
    return (
      {record.climate}
    );
  },
}, {
  title: 'Surface Water',
  key: 'surface_water',
  render: (record) => {
    return (
      {record.surface_water}
    );
  },
}];

// ----------------------------------------------------------------------- Component

/**
 * @summary DataEmulationPaginate
 * @returns {object} Renders a DOM Object
 */
class DataEmulationPaginate extends React.Component {

  /**
   * @summary constructor function
   * @param {object} props, component properties
   * @returns {object} null
   */
  constructor(props) {
    super(props);

    // Link functions
    this.onPageChange = this.onPageChange.bind(this);
  }

  /**
   * @summary onPageChange function, what to do on page change?
   * @returns {object} null
   */
  onPageChange(page) {
    console.log(`On page: ${page}`);
  }

  /**
   * @summary render function
   * @returns {object} Returns DOM Object
   */
  render() {

    const classes = this.props.sheet.classes;
    console.log(this.props);
    console.log(this.props.data.metaPlanets);

    return (

Paginate

    );
  }
}

// ----------------------------------------------------------------------- GraphQL Adapter

const Adapter = connect({
  mapQueriesToProps() {
    return {
      data: {
        query: gql`
          query getMetaPlanets ($currentPage: String) {
            metaPlanets(currentPage: $currentPage) {
              currentPage
              totalRecords
              planets {
                id
                name
                diameter
                rotationPeriod
                orbitalPeriod
                gravity
                population
                climate
                terrain
                surfaceWater
              }
            }
          }
        `,
        variables: {
          currentPage: '2', // Connect this to state or props, or whatever
        },
      },
    };
  },
})(DataEmulationPaginate);

// ----------------------------------------------------------------------- Container Component

const Container = createContainer(() => {
  return {};
}, Adapter);

export default useSheet(Container, stylesheet);

Here's a working example, Apollo-Paginate

Here's a working example, Apollo-Paginate

@dbx834 Server seems to be offline.

Please try again. Just checked, it works for me.

Yes, seems to be up again, thanks! :)
On di 2 aug. 2016 at 15:19, Pranav<EMAIL_ADDRESS>wrote:

Please try again. Just checked, it works for me.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/apollostack/apollo-client/issues/26#issuecomment-236901370,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AG7dpxzitWHoslo1TLY7ZLPtf8WAGnNlks5qb0PngaJpZM4H3ukx
.

We just merged a new pagination approach: https://github.com/apollostack/apollo-client/pull/472
Docs coming soon: https://github.com/apollostack/docs/pull/157


Add retries and retry_exceptions to overcome throttling

#150
This commit will add the max_retries and retry_exceptions to handle throttling errors.

LGTM - thanks for this.


Layers: new visible attribute/prop

Input<"bool">, to give the user the chance to control a layer's visibility at runtime.

Canceling. This is the same as setting mix to zero.


Can you make this work with Tensorflow 2.4.1 and above with tf.distribute.MirroredStrategy()

I almost give up that it keep posing error after error running with tf.distribute.MirroredStrategy().
ValueError: in user code:
<ipython-input-43-fa18d8117b40>:554 train_step  *
    gradients_of_generator = gen_tape.gradient(gen_loss, self.GAN.GM.trainable_variables)
C:\Users\ThuSi\AppData\Roaming\Python\Python38\site-packages\tensorflow\python\eager\backprop.py:1064 gradient  **
    flat_sources = [_handle_or_self(x) for x in flat_sources]
C:\Users\ThuSi\AppData\Roaming\Python\Python38\site-packages\tensorflow\python\eager\backprop.py:1064 <listcomp>
    flat_sources = [_handle_or_self(x) for x in flat_sources]
C:\Users\ThuSi\AppData\Roaming\Python\Python38\site-packages\tensorflow\python\eager\backprop.py:729 _handle_or_self
    return x.handle
C:\Users\ThuSi\AppData\Roaming\Python\Python38\site-packages\tensorflow\python\distribute\values.py:639 handle
    raise ValueError("`handle` is not available outside the replica context"

ValueError: `handle` is not available outside the replica context or a `tf.distribute.Strategy.update()` call.

Can you make this work with Tensorflow 2.4.1 and above with tf.distribute.MirroredStrategy()
Thanks,
Steve

Hi! I'm currently in the middle of updating this code to work with multi-GPU machines and adaptive discriminator augmentation; keep an eye out for that!

Hi, where are you on this? Do you have some idea on when the MirroredStrategy() will work?


[#5410] Improvement(iceberg-reset): Make IT IcebergRestKerberosHiveCatalogIT works in deploy mode.

What changes were proposed in this pull request?
Make IcebergRestKerberosHiveCatalogIT can run in deploy mode.
Why are the changes needed?
We need to make it work in both embedded and deploy mode.
Fix: #5410
Does this PR introduce any user-facing change?
N/A.
How was this patch tested?
Existing IT.

@FANNG1
Please help to review this PR, thanks.

Could you add the document?

Could you add the document?

The document about how to use Spark to access Iceberg rest with Kerberized Hive backend?


Login session, fixes  #113

Yo dawg, I head you like ChatMessageModels, ChatMessageInstances and ChatMessageEntities, so I've wrapped them all up in a single project...
Seriously tho, while this may look as duplication of code, it's actually really good seperation of concerns, improving api maintainability by a lot.

Reviewed together with @GijsWeterings . Ready to merge!


[Subtask] Extended Apache Ranger authorization by configuration

Describe the subtask
Currently, we are implementing AuthorizationPlugin interface class in the Ranger authorization class RangerAuthorizationPlugin,
The RangerAuthorizationPlugin supports common Ranger policy operations, for example

Create a Ranger policy on a Gravitino securable object,
Create a Ranger role on a Gravitino role entity
And more Ranger operations ...

When we need to supports a new Ranger service(HDFS, Trino, ...), we only need initial different variable of RangerHelper.ownerPrivileges and RangerHelper.privilegesMapping and RangerHelper.policySearchKeys and RangerHelper.policyPreciseFilterKeys.
To make it easier to support different Ranger authorizations, I think we can extend the Ranger authorization by configuring the file. for example:

RangerHelper read authorization-hdfs.xml file to initial RangerHelper.ownerPrivileges and privilegesMapping and policySearchKeys and policyPreciseFilterKeys to supports Ranger HDFS authorizatons.
RangerHelper read authorization-trion.xml file to supports Ranger Trino authorizations.

authorization configure file

Use  properties format
authorization-hive.properties

authorization.owner.multiple = false
authorization.owner.privileges= ACCESS_TYPE_HIVE_ALL
authorization.privileges.mapping.CREATE_SCHEMA=ACCESS_TYPE_HIVE_CREATE
authorization.privileges.mapping.CREATE_TABLE=ACCESS_TYPE_HIVE_CREATE
authorization.privileges.mapping.MODIFY_TABLE=ACCESS_TYPE_HIVE_UPDATE,ACCESS_TYPE_HIVE_ALTER,ACCESS_TYPE_HIVE_WRITE
authorization.privileges.mapping.SELECT_TABLE=ACCESS_TYPE_HIVE_READ,ACCESS_TYPE_HIVE_SELECT

Parent issue
#4615

hi @lw-yang
I think properties authorization.multiple.owner = true will support multiple users or groups, But only one of them can be supported at the same time
What's do you think?

@xunliu We can set authorization.privileges.mapping.MODIFY_TABLE=ACCESS_TYPE_HIVE_DROP,... to resolve the limitation that only the owner has the delete permission.
so in my opinion, config file for ranger that supports the 'authorization.owner.multiple' is not neccessary.  Our requirement is that Gravitino's owner permission model supports multiple owners having delete permissions.

@xunliu We can set authorization.privileges.mapping.MODIFY_TABLE=ACCESS_TYPE_HIVE_DROP,... to resolve the limitation that only the owner has the delete permission.
so in my opinion, config file for ranger that supports the 'authorization.owner.multiple' is not neccessary. Our requirement is that Gravitino's owner permission model supports multiple owners having delete permissions.

Thank you for your suggestion. I accepted.


Will you provide code for the data generation process?

We would like to reproduce your results and are wondering when the data synthesis code will be opened up.

Our main training data comes from GRIT, we only generate mask given GRIT's bounding box using SAM. I believe the code is simple and there is no need to provide it...

Hi, thank you for the interest to our work.  After discussion, due to the detailed filtering involved in our dataset processing and the extensive GPU hours required for data generation. We'll release the code to generate annotations and we're considering releasing the dataset we've processed.


Make fails on CentOS5/curl7.15 (default curl-devel)

Since https://github.com/SpiderLabs/ModSecurity/pull/881/files - 2.9.1 fails to compile on CentOS5:
make[1]: Entering directory `/usr/src/modsecurity-2.9.1/mlogc'
gcc -DHAVE_CONFIG_H -I. -I../apache2  -DLINUX -D_REENTRANT -D_GNU_SOURCE -I../apache2  -I/usr/local/apache/include -DWITH_CURL -I/opt/wwwh/libpcre/include -g -O2  -I/usr/local/apache/include  -MT mlogc-mlogc.o -MD -MP -MF .deps/mlogc-mlogc.Tpo -c -o mlogc-mlogc.o `test -f 'mlogc.c' || echo './'`mlogc.c
mlogc.c: In function ‘logc_init’:
mlogc.c:1281: error: ‘CURL_SSLVERSION_TLSv1_0’ undeclared (first use in this function)
mlogc.c:1281: error: (Each undeclared identifier is reported only once
mlogc.c:1281: error: for each function it appears in.)
mlogc.c:1284: error: ‘CURL_SSLVERSION_TLSv1_1’ undeclared (first use in this function)
mlogc.c:1287: error: ‘CURL_SSLVERSION_TLSv1_2’ undeclared (first use in this function)
make[1]: *** [mlogc-mlogc.o] Error 1
make[1]: Leaving directory `/usr/src/modsecurity-2.9.1/mlogc'
make: *** [all-recursive] Error 1

[/usr/src/modsecurity-2.9.1/mlogc]# curl --version
curl 7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5

Any thoughts please?

@lehels what version of libcurl-devel is installed on your system?

Same problem here, but I'm on Ubuntu 12.04.
dpkg -l | grep curl
ii  libcurl3   7.22.0-3ubuntu4.15
ii  libcurl3-gnutls   7.22.0-3ubuntu4.15(GnuTLS)
ii  libcurl4-openssl-dev   7.22.0-3ubuntu4.15

@lehels and @Jorilx 7.34.0 is when those constants were added. It appears the highest possible version available via repo's for CentOS 5 is curl-7.31.0-23.2.x86_64.rpm. You can attempt to install the Cent7 or Fedora rpm's. Check http://rpmfind.net/linux/rpm2html/search.php?query=libcurl for RPMs. If the RPM's don't work you'll have to compile these from scratch. It should be noted that CentOS 5 is almost a decade old at this point and is longer updated beyond maintenance updates and that will end next year.

I caught the same problem on Ubuntu 12.04 due to a super old curl.
Fortunately, only the mlogc utility seems to be affected. If you aren't using that, you can use ./configure --disable-mlogc to get the Apache module to build normally.


RM-213345 Release w_dio 5.3.5

Pull Requests included in release:

Patch changes:

Remove unused import

Requested by: @robbecker-wf
Diff Between Last Tag and Proposed Release: https://github.com/Workiva/w_dio/compare/5.3.4...Workiva:release_w_dio_5.3.5
Diff Between Last Tag and New Tag: https://github.com/Workiva/w_dio/compare/5.3.4...5.3.5
The logs for the request that created this PR can be found here
This pull request can be recreated by clicking here

Security Insights
No security relevant content was detected by automated scans.
Action Items

Review PR for security impact; comment "security review required" if needed or unsure
Verify aviary.yaml coverage of security relevant code

Questions or Comments? Reach out on Slack: #support-infosec.

+10 @Workiva/release-management-p


Documentation: install method is incomplete

The current install method described in the docs is:
## Installation

```
npm install a11y-dialog --save
```

This only works for users using Node and probably a bundler, and only if they know how to import from libraries from their own source code (fairly likely, but still).
Maybe that section could show two installation methods, with Node+bundler or loading from a CDN? Quick draft:
## Installation

### Using Node.js and a bundler (recommended)

If you’re using Node.js a bundler (Webpack, Rollup, etc.), you can install `a11y-dialog` with this command:

```sh
npm install a11y-dialog
```

Then, in your JavaScript codebase, you can import the library to run it automatically:

```js
import 'a11y-dialog';
```

### Loading from a CDN

You can load `a11y-dialog` from a third-party CDN, by adding this script tag in your HTML:

```html
<script defer<EMAIL_ADDRESS>```

If you don’t want to promote loading from a third-party CDN (for performance and/or privacy reasons), then I guess only showing the first solution might work too.

To be clear, the current install docs is incomplete because it doesn't show how to load the a11y-dialog script in a web page.
If we suppose that users already have a project setup with one or several HTML pages that load one or several JS bundles/chunks generated by a bundler, then they would still have to import "a11y-dialog"; or require("a11y-dialog"); in their codebase to make sure the script is part of their bundle and its side-effects (the instantiateDialogs function) are executed.

@fvsch You’re absolutely right. Would you like to submit a pull-request with your proposal? If not, I’ll try to do it today. :)

@HugoGiraudel I’ll be a bit busy and you know the project better, so I’ll leave it in your hands. :)


Create identifying-your-sharepoint-champions.md

Please use this template to ensure easier processing of your pull request
Category

[X ] New article

What's in this Pull Request?
Identifying influencers in your organization to help support SharePoint and Office 365 initiatives through feedback, change management support, and self-service opportunities.

Docs Build status updates of commit 24b74dc:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Community/identifying-your-sharepoint-champions.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Thanks, @eemancini!


Unable to create spaces in 6.40.0 when user exists in multiple origins

Please fill out the issue checklist below and provide ALL the requested information.

[X] I tried updating to the latest version of the CF CLI to see if it fixed my problem.
[X] I am reporting a bug that others will be able to reproduce.

Describe the bug and the command you saw an issue with
When running cf-rabbitmq-smoke-tests, it automatically creates a space. With previous versions of the cf-cli, tested up to 6.39.1, it works great. When using 6.40.0, it fails with the following error:
Creating space rmq-smoke-tests-1-SPACE-0ae293d643719c8f in org system as admin...
OK
Assigning role SpaceManager to user admin in org system / space rmq-smoke-tests-1-SPACE-0ae293d643719c8f as admin...
The user exists in multiple origins. Specify an origin for the requested user from: 'uaa', 'ldap'```

**Expected behavior**
I would expect that it would continue to allow us to create orgs and spaces as the admin user, even though we have both an admin user in the `uaa` as well as in our Active Directory LDAP tree (which is out of our control).

**To Reproduce**
Steps to reproduce the behavior; include the exact CLI commands and verbose output:
1. Have a PCF foundation with two or more origins.
2. Duplicate a user between two origins.
3. Try to create a space as that user, with cf-cli 6.40.0.

Hi @teancom could you give more details on the exact commands you are running (please flesh out the steps to reproduce your issue)? Thanks.

Sure! It looks like the command being run is:
$ cf create-space -o system rmq-smoke-tests-1-SPACE-884de97c639a73fe

These are the standard cf-rabbitmq-smoke-tests that come from https://github.com/pivotal-cf/cf-rabbitmq-smoke-tests-release.
Other than that, the only thing necessary should be having two users of the same name, in two different auth sources (origins).

Hi @teancom just want to confirm that you are not logged in with client credentials?

I believe I am, if by "client credentials" you mean "using a username and password". Here is a full manual recreation:
$ uname -a
Darwin My-Laptop 16.7.0 Darwin Kernel Version 16.7.0: Thu Jun 21 20:07:39 PDT 2018; root:xnu-3789.73.14~1/RELEASE_X86_64 x86_64 i386 MacBookPro14,3 Darwin
$ cf --version
cf version 6.40.0+07673feb9.2018-10-08
$ cf login -a api.cf.XXXXXX.com --skip-ssl-validation
API endpoint: api.cf.sXXXXXXX.com

Username> admin

Password> <INSERT PASSWORD RETRIEVED FROM VAULT FOR THE ELASTIC-RUNTIME/UAA.ADMIN_CREDENTIALS>
Authenticating...
OK

Select an org (or press enter to skip):
1. exampleorg
2. system

Org> 2
Targeted org system

Select a space (or press enter to skip):
1. autoscaling
2. DEV
3. system

Space> 3
Targeted space system

API endpoint:   https://api.cf.XXXXXX.com (API version: 2.112.0)
User:           admin
Org:            system
Space:          system
$ cf create-space test-creating-space
Creating space test-creating-space in org system as admin...
OK
Assigning role SpaceManager to user admin in org system / space test-creating-space as admin...
The user exists in multiple origins. Specify an origin for the requested user from: 'uaa', 'ldap'
FAILED

note, I have snipped a bunch of our orgs and spaces from the output for being irrelevant.

This is using PAS v2.2.8. Interestingly, as I went to recreate this bug, I was UNABLE to, using PAS v2.2.2., but with the same version of the cf-cli (6.40.0). As I mentioned in the original report, downgrading the cli to 6.39.0 makes it work with both versions.

Hi @teancom thanks, can you pls confirm -  the aforementioned workflow:

PAS v2.2.8 and CF CLI 6.40.0 - DOES NOT WORK
PAS v2.2.2 and CF CLI 6.40.0 - WORKS

PAS v2.2.2 and - PAS v2.2.8 and CF CLI 6.39.0 - WORKS

Correct, that is exactly right.


Possible to implement a power button?

From the documentation for this repo it seems the only way to switch off power to the CM3 using this firmware will be to send a sleep command. In my use case, I'd like to build a power button into the product. This requires a few things:

There should be a way to power off the CM3 indefinitely
The CM3 should be powered up based on a GPIO input (a power button being pushed)
The CM3 should be powered down based on a GPIO input (holding down the power button for about 5 seconds is an often-seen way of forcing a device to shut down)
There should be a GPIO output to indicate the current power status (to use for a power LED)
It might be nice to have some way to determine the power state of the CM3, so the firmware can switch off power once the CM3 looks to be powered off for a certain amount of time

Is it possible to implement these things using the firmware in this repo or do I need to look in to building my own?

Not the repo owner, but I have looked through the firmware previously and have talked to the developers about where they are heading.
At the moment there is no firmata command implemented for such a feature. But it should be pretty easy to build on top of this firmware as a standalone sysex command. Everything you have said should be possible.
An example of a custom command can be seen in my unofficial and now obsolete powersave implementation: https://github.com/rohfle/balena-fin-coprocessor-firmata/commit/e796b1942cdd9d0fa63669cf30945aec0ce88cc1
Basically it consisted of 3 parts:

A sysex command definition (0x0-0xF are considered to be user-defined in the firmata protocol)
The sysex command called powersaveInit which configured variables
In the while loop in main, I called  powersaveRun which would handle delays and state changes and ultimately turn the CM3 power off

@Bucknalla's implementation uses timers as he is heading towards putting the Artik into low power modes eventually. So spinning in a while loop will probably not work in the future. But good enough for now and for learning how things work.

There should be a way to power off the CM3 indefinitely

Maybe a special case for the sleep command (max value / min value)

The CM3 should be powered up based on a GPIO input (a power button being pushed)

Simple way: Run something in the main loop that checks a GPIO value
Hard way: Interrupt routine based on level change of GPIO

The CM3 should be powered down based on a GPIO input (holding down the power button for about 5 seconds is an often-seen way of forcing a device to shut down)

Simple way: Run something in main loop that checks a GPIO value, then timestamp and make sure the GPIO doesnt change until 5 seconds has passed
Hard way: Interrupt routine and a timer that is resettable if more GPIO changes occur

There should be a GPIO output to indicate the current power status (to use for a power LED)

Really simple way: On my v1.1 board the RGB LED always shows red when the power is on.
Simple way: Write to a GPIO in the main loop the state of power

It might be nice to have some way to determine the power state of the CM3, so the firmware can switch off power once the CM3 looks to be powered off for a certain amount of time

SleepyPi does this by monitoring GPIOs: https://github.com/SpellFoundry/Sleepy-Pi-Setup/blob/master/shutdowncheck.py

I used the compiler as part of Simplicity Studio to compile the firmware (didn't use the IDE). The chip is an Artik 020 (https://media.digikey.com/pdf/Data Sheets/Samsung PDFs/Artik_020_DS.pdf) and inside that the microcontroller is an EFM32 (https://www.silabs.com/documents/public/reference-manuals/efm32hg-rm.pdf) and (https://www.silabs.com/documents/public/application-notes/an0012-efm32-gpio.pdf)
Don't forget to work on a git branch so you can keep rebasing off master as @Bucknalla updates things.
Good luck!

Thanks for your guidance. I'll get to work ASAP


VSCode Typescript debugger breaks on __webpack make namespace ogjet

The vscode typescript debugger breaks on the following webpack code
// define __esModule on exports
webpack_require.r = (exports) => {
BREAKS HERE if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {**
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
}
Object.defineProperty(exports, '__esModule', { value: true });
};
This happens immediately at start up and ocasionaly while editing.
I do not know if this is a typescript issue or a vscode issue or my issue?
This code can be found at c:/dev/PROJECT DIR/webpack/runtime/make namespace object
The project uses Angular 13 but problem existed with angular 12.
The typescript version is 4.4.4 (updated Angular 13 was installed
the tsconfig module resobultion is node and the target is es6. Changing target to es5 did not work.
My tsconfig file is:
/* To learn more about this file see: https://angular.io/config/tsconfig. /
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./src",
"paths": {
"@common/": ["common/"],
"@entities/": ["common/entities/"],
"@identity/": ["common/identity/"],
"@services/": ["common/services/"],
"@iBreeder/": ["site/iBreeder/"],
"@breeder/": ["site/breeder/"],
"@public/": ["site/public/"],
"@visitor/": ["site/visitor/"],
"@search/": ["site/public/search/"],
"@styles/": ["styles/*"]
},
"outDir": "./dist/out-tsc",
"forceConsistentCasingInFileNames": true,
"strict": true,
"strictPropertyInitialization": false,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"importHelpers": true,
"target": "es6",
"module": "es2020",
"types": ["node"],
"esModuleInterop": false,
"lib": [
  "es2018",
  "dom"
],
"removeComments": true

},
"angularCompilerOptions": {
"strictInjectionParameters": true,
"strictInputAccessModifiers": true,
"strictTemplates": true,
"fullTemplateTypeCheck": true
}
}
changing esModuleInterop to true does not resolve the problem.
Thanks
Philippe Moransais

/jsDebugLogs

Thanks for your emailed logs. It looks like there's likely a debugger statement on line 10 of your vendor.js. This is not a sourcemapped location, so because smartStep is enabled (default) so we step into the next mappable location.
I recommend looking into what on that line is causing the runtime to pause.

Thanks Connor,
There was a breakpoint set in the browser, not vsCode, probably by accident.
This solved my problem. I feel bad I dis not think of this
Philippe Moransais
Sent from Mail for Windows
From: Connor Peet
Sent: Monday, November 8, 2021 3:35 PM
To: microsoft/vscode
Cc: PMoransais; Author
Subject: Re: [microsoft/vscode] VSCode Typescript debugger breaks on __webpackmake namespace ogjet (Issue #136682)
Thanks for your emailed logs. It looks like there's likely a debugger statement on line 10 of your vendor.js. This is not a sourcemapped location, so because smartStep is enabled (default) so we step into the next mappable location.
I recommend looking into what on that line is causing the runtime to pause.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.


[WASM] Flutter web throwing memory access out of bound error

Steps to reproduce
This bug is random. However, I was able to sometimes reproduce it when I have a carousel and I spend some time swiping on it.
Expected results
No errors should be there.
Actual results
Getting the following error:
main.dart.js:3304 Uncaught RuntimeError: memory access out of bounds
at canvaskit.wasm:0x3abfc
at canvaskit.wasm:0x29150
at Tb.save (canvaskit.js:115:52)
at Gv.d6 (main.dart.js:26771:53)
at B_.j6 (main.dart.js:26595:3)
at KO.jU (main.dart.js:26486:28)
at a1L.$0 (main.dart.js:26727:18)
at Object.axo (main.dart.js:1160:18)
at a1I.aj5 (main.dart.js:26715:3)
at main.dart.js:27070:27

After getting error, the web app gets stuck. Can't even refresh the web app and then after closing the tab and if I reopen, it never loads and gets the same error.
Code sample
Don't really have a code sample as it's completely random.
A similar issue is reported https://github.com/flutter/flutter/issues/150193
Screenshots or Video
No response
Logs
No response
Flutter Doctor output
[✓] Flutter (Channel stable, 3.22.1, on macOS 14.5 23F79 darwin-arm64, locale en-GB)
• Flutter version 3.22.1 on channel stable at /Users/abhishekdoshi/Desktop/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision a14f74ff3a (3 weeks ago), 2024-05-22 11:08:21 -0500
• Engine revision 55eae6864b
• Dart version 3.4.1
• DevTools version 2.34.3
[!] Android toolchain - develop for Android devices (Android SDK version 32.0.0-rc1)
• Android SDK at /Users/abhishekdoshi/Library/Android/sdk
• Platform android-34, build-tools 32.0.0-rc1
• Java binary at: /usr/bin/java
✗ Could not determine java version
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 15F31d
• CocoaPods version 1.15.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[!] Android Studio (not installed)
• Android Studio not found; download from https://developer.android.com/studio/index.html
(or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).
[✓] VS Code (version 1.90.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.90.0
[✓] Connected device (3 available)
• macOS (desktop)                 • macos                 • darwin-arm64   • macOS 14.5 23F79 darwin-arm64
• Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin         • macOS 14.5 23F79 darwin-arm64
• Chrome (web)                    • chrome                • web-javascript • Google Chrome 126.0.6478.61
[✓] Network resources
• All expected network resources are available.
! Doctor found issues in 2 categories.

Hi @AbhishekDoshi26
I see the error is not the same between yours and the given one at https://github.com/flutter/flutter/issues/150193. Instead, it looks similar to https://github.com/flutter/flutter/issues/150119 where I also see your comment there.
Do you also use webview_flutter_web in your app? And does this issue only occur when building web with wasm?
It would be more helpful if you can provide a sample code so that we can investigate it further.

Hey @huycozy !
I don’t use webview in the project. And yes, this is mainly for flutter web after I build and deploy using firebase hosting.

Thanks for the update but we still need a sample code to bring this forward. Otherwise, we can close this and follow https://github.com/flutter/flutter/issues/150119 as the error there is quite similar to this.


Support for async-http-client 2.0.3 with Netty 4

Sorry for the delay! As I said in #16, here's a patch to support async-http-client 2.0 (now released) and Netty 4.
Almost no changes were needed, except in one particular case: I didn't manage to trigger a readTimeout no matter what I tried. I think in their refactor of the library they changed how this timeout is triggered, and now just mocking the call isn't enough, but I'm not so sure.
I also started closing the connections after the tests, since Netty was complaining of having too many timers instantiated.

Oops, the new async-http-client requires Java 8. Is that OK?

Closing and re-opening to make Travis run again.

Thanks for the epic PR, Alessandro!
Going up to JDK 8 is not an issue, JDK 7 is EOL anyway, but I'll add a note to the readme. And about the readTimeout issue, I couldn't get it to work either so I'm just going to delete the method.
Thanks again!

I'm the one who should thank you, this project has been a big help! Is there anything I could do to help release 0.5.0?

I'll try to cut a release today. I ran into some issues with the testing
enviroment when updating to influx 0.13, but I hope to have it fixed today.
Thanks!
El mié., 25 may. 2016 14:07, Alessandro Andrioni<EMAIL_ADDRESS>escribió:

I'm the one who should thank you, this project has been a big help! Is
there anything I could do to help release 0.5.0?
—
You are receiving this because you modified the open/close state.
Reply to this email directly or view it on GitHub
https://github.com/paulgoldbaum/scala-influxdb-client/pull/20#issuecomment-221553855


[help] utf-8 unicode ascii encoding issue

Thank you for this marvelous DB!
I am having issues inserting or properly encoding the unicode characters into database when using the REST API. For example, I get:
Munuŋgurr —> Munuu014bgurr
or
 Ḏurrk -> u1e0eurrk
It works fine if I enter these directly into DB.
Any help would be much appreciated!

huh! in my case it was adding JSON_UNESCAPED_UNICODE to json_encode ... for PHP


fix: treat anthropic-direct API the same as bedrock in llamaindex wrapper

Add Anthropic signature to LlamaIndexLLMWrapper.  Fixes #1468.
Question for maintainers -- would it make sense to always set LlamaIndexLLMWrapper._signature for all models rather than having a series of conditionals?  i.e. (line 269):
269 | self._signature = type(self.llm).__name__.lower()

The rest of the logic in check_args to handle different param dicts can remain.

honestly that would be better - I think we can make that change in this PR as well?
would u be able to make that change? if not I'll push it too - let me know 🙂
ps: thanks for the PR and catch ❤

thanks again 🙂 ❤


In input fields country, region need to make it alphabet chars only

Which package/s are you suggesting this feature for?
Dashboard
Is your feature request related to a problem? Please describe
https://app.testlodge.com/a/26076/projects/40893/runs/757884/run?run_suite_id=1250709&selected=33254555
Describe the solution you'd like
add validation to ignore numbers, and other characters

https://gridproxy.dev.grid.tf/nodes/11


zdemo_excel1 not working in background

hi,
i  run the report on fornt and it's fine save in D:1.xls
but when i tried in background i see in sm37 that the job finished and the file is not created..
i change gc_save_file_name TYPE string VALUE '01_HelloWorld.xlsx  to  D:1.xls  ..
what's is my problem...

":" is not allowed as character by the file system.

So what i will do...
i want to save it in directory in the example is file only...

This is not related to abap2xlsx, but it is basic ABAP coding to save an xstring to file into a folder with a desired filename.
I would suggest to ask on SCN ABAP developer space a lot of people will help you with that.

i tried a directory in file system without ':'  \sap\dir\01_HelloWorld.xlsx  and not work too....

Ivan it's related to abap2xlsx i'm trying to download example of abap2xlsx, when you run ZDEMO_EXCEL1
in background where it save it in your system..?>>>>

in the temp directory on the application server.
Match your DIR_TEMP in AL11

thanks i saw it...
now i want to put it in other directory.. what should i write....

You can't save a background job stream in the frontend (you HD)

Nice.....
Ivan i change gc_save_file_name TYPE string VALUE '\sap\dir\01_HelloWorld.xlsx' and it is not working....
and when it gc_save_file_name TYPE string VALUE '01_HelloWorld.xlsx'  it save in DIR_TEMP
what i need to do if i want it in another background directory ...
Ivan why are angry...

Angry?
Check include ZDEMO_EXCEL_OUTPUTOPT_INCL
METHOD download_backend.
OPEN DATASET p_backfn FOR OUTPUT IN BINARY MODE.
p_backfn contains the full path
That it is initialized in the INITIALIZATION
p_backfn = gc_save_file_name.  " Use as default if nothing else is supplied by submit

Ivan you don't inderstand me...
I will ask other qa..
I want to save the file in /SAP/DIR/TEMP/ 01_HelloWorld.xlsx  how i can make it...>>

Change the code and adjust the p_backfn  path accordingly.
I did a test in my system and worked perfectly.
Instead of
p_backfn = gc_save_file_name. " Use as default if nothing else is supplied by submit
use
CONCATENATE '/SAP/DIR/TEMP/ ' gc_save_file_name INTO gc_save_file_name.
Those are just demo examples, the functionality you are requesting is not related to the abap2xlsx framework (generation of the excel xstring), but it is related to the implementation of your logic in order to consume the file.

The field gc_save_file_name can not be change.
I made it in another parameter and i get sy-subrc 8 ...

About my request, thats how our users work they want to put it in spesipic directory so Prinboss or websphere took the file and go on....

Dear hcolor,
for writing to the application server you always should use logical path definitions. They can be customised in transaction FILE. Please talk to your basis admin to do that. That will allow you to de-couple the actual location on the app-server from your logic. Please check SCN for examples on how to retrieve the actual path from the logical path. If you have further questions regarding writing to the app server please get advise from a senior ABAP programmer colleague.
Best regards
Gregor

No ABAP2XLSX error but incorrect usage of DEMO!reports.


Add Normalize CSS

I have just tested on Firefox (I usually use Chrome). Everything is fine except the grid. It seems like has been overflow.
Before and after I added Normalize:

So I think we should use Normalize to make the grid display nicely on all browsers.

@siggy I agree with you that we should apply small changes. It looks fine! :+1:


Adding examples using IHttpClientFactory

Integrating with a fake RESTful API
Integrated with Bunsen for testing.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
141

Relevant Lines:
141

💛  - Coveralls


Escaping Content Classes

The problem is that the syntax for "content classes" clashed with common Scala syntax, eg. scala.Option[A].

I fixed this (finally) in version 0.10.2.
scala.class[.]Option[Int] as normal content needs to be scala\.class[.]Option[Int] with the \.class to prevent expansion.
Inside inline code, the expansion is disabled:
`scala.class[.]Option[Int]`

So no escaping is needed anymore.


Explore Having a Meltano Podcast

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/968
Originally created by @dmor on 2019-09-10 16:50:12

What could we do with the podcasting format?
There are so many interesting people in the data world that we could interview...
This doesn't really need to be that focused on Meltano itself
What are some of the best podcasts in our space right now?
What's a unique angle we could take?
@emilie any ideas?

View 3 previous comments from the original issue on GitLab


how to resolve ""

jd001@uservm001:/home/jd001# backup_slack --token='here_is_token'
Saving username list to ./users.json
Saving public channels to ./channels
Saving private channels to ./private_channels
Saving direct messages to ./direct_messages
Traceback (most recent call last):
File "/usr/local/bin/backup_slack", line 9, in
load_entry_point('backup-slack==1.0.0', 'console_scripts', 'backup_slack')()
File "/home/jd001/slack/py/src/backup-slack/backup_slack.py", line 252, in main
download_dm_threads(slack, outdir=direct_messages)
File "/home/jd001/slack/py/src/backup-slack/backup_slack.py", line 102, in download_dm_threads
for thread in slack.dm_threads():
File "/home/jd001/slack/py/src/backup-slack/backup_slack.py", line 197, in dm_threads
t['username'] = self.usernames[t['user']]
KeyError: u'F1J6QHSP4'
jd001@uservm001:/home/jd001#

A quick hack to get around this is to change this to a get-with-default style of call:
t['username'] = self.usernames.get(t['user'],'???')
This fixes the problem where a username was not collected, for whatever reason. The "???" can be any value, and there will be a "???.json" user added under "direct_messages".

another soln of this issue has been implement in my fork:
https://github.com/fixbugsnow/backup-slack/blob/master/backup_slack.py#L197-L203
need the below check in "dm_threads(self)" method to make sure user exists in 'self.usernames', otherwise code aborts in the assigment stmt below with a "key error", e.g. when "t" has 'is_user_deleted' as "true" or when t['user'] has spaces in it, each of which results in "key error"s:
if t['user'] in self.usernames:
    t['username'] = self.usernames[t['user']]
    threads.append(t)

and believe it best if we implement the change in this original repo as well, for benefit of users of this repo and it's forks


Temporarily retain only one CI config

While we have a fixed CI budget we'll just run in the simplest config (Rust stable on Ubuntu).

We have caching from #33 so I'll close this.


want to add responsive nav-bar

i want to add a responsive nav-bar  made by me

please assign this to me


Add the display of the account name and address on the popup of signing

Context
Describe / explain why we should do this: motivations, context or other info. Keep it brief and simple - PM
In the quest platform I ask people to sign a message with all of the addresses on massa wallet, it opens a popup one by one for each address but in the popup you don't have info of which address is signing
User flow
Describe the user flow using user stories so the end result is super clear - PM
Add the display of the account name and address on the popup
How to
List the step-by-step to get it do if needed - PM
Add the display of the account name and address on the popup
Technical details
Give the technical insights so anyone in the team can tackle the tasks - Dev
QA testing
Does this task require some QA tests ?
If yes, explain how to validate it

Following the discussion in gChat, let's include the wallet address as it exists in the backend.
For Account name - not a priority to do now. We can tackle it in the follow up issue if it some work.

@LucasF243 I think we need to add Wallet address: [hash] in the designs.

#691


EndSession and clientId

I'm testing out new and improved EndSession functionality in beta5.
I want to use the PostLogoutRedirectUris of a Client configuration when ending the session. However the TokenValidator fails the validation since it can't find the client id.
Looking at the code it seems a bit strange (although I'm a complete newbie to oidc) that audience property of the token is used as clientId. The relevant code:
  private string GetClientIdFromJwt(string token)
        {
            try
            {
                var jwt = new JwtSecurityToken(token);
                var clientId = jwt.Audiences.FirstOrDefault();

                return clientId;
            }
            catch (Exception ex)
            {
                _logger.LogError("Malformed JWT token: {exception}", ex.ToString());
                return null;
            }
        }

I'm I completely off or could this be an actual bug?

However the TokenValidator fails the validation since it can't find the client id.

Can you elaborate? What do the logs say?

Of course
Here is what the logs say:
trce: IdentityServer4.Hosting.IdentityServerMiddleware[0]
      Invoking IdentityServer endpoint: IdentityServer4.Endpoints.EndSessionEndpoint
info: IdentityServer4.Endpoints.EndSessionEndpoint[0]
      Processing singout request
dbug: IdentityServer4.Validation.EndSessionRequestValidator[0]
      Start end session request validation
dbug: IdentityServer4.Validation.TokenValidator[0]
      Start identity token validation
fail: IdentityServer4.Validation.TokenValidator[0]
      Unknown or diabled client: http://localhost:60211/resources.
warn: IdentityServer4.Validation.EndSessionRequestValidator[0]
      Error validating id token hint.
{
        "SubjectId": "unknown",
        "Raw": {
          "id_token_hint": <removed>
        }
      }

So it appears  that audience claim value (in my case http://localhost:60211/resources) is being used to check the existence of a client (using IClientStore.)
I was expecting the client id to equal the value of the claim with type JwtClaimTypes.ClientId. (That said, I'm not quite sure what the audience claim is intended for).

That tells me that the access token is being sent, not the id token.

Yes, spot on. As you said, I was sending the access_token and not the id_token. Sending the correct token fixed my problem.
Thanks for for the help.

Where can i find that token_id? I have the same problem. I'm sending Access token but i have to send token_id.


Pretrained weights on DeepCAD dataset

Hello,
Can you please share the pretrained weights on DeepCAD dataset?
Thank you.
Regards,
Mohammad Sadil khan

Hi Mohammad,
Apologies for the slight delay in the response. Here is the pretrained DeepCAD model. It was also just uploaded to the git repo.
Point2Cyl_DeepCAD.zip
Best,
Mika

Hello,
Thank you.
Regards,
Mohammad


enable backtraces in sable

Potentially useful: https://github.com/progval/irctest/pull/276#issuecomment-2157321513

env={"RUST_BACKTRACE": "1", **os.environ}, so it doesn't remove PATH from the environment


Externalize train SVG in footer

I think we can get some benefits by not inlining this fairly large (60k, 15k gzipped) SVG in the footer of all pages.
Not sure yet if we'll notice a difference, but it certainly can't hurt imo!

Most HTML pages generated are roughly 60k gzipped, so we are making the initial HTML payload 20% to 25% smaller. The file can be loaded later, it's below the fold in just about every scenario. And because it's an external file, it can be cached by the users browser.
This should make the site a bit faster to deploy on Netlify. 6686 static pages * 15KB is roughly 100MB less content to rsync (diff + network traffic).
It will help reduce the DOM size.

UPDATE Deploy times seem unusually long today for Netlify, I don't think we can rely on the preview logs for reference.

Thanks! I'll merge and give this a try, we can always revert if there are unintended consequences!