Values don't fit in the 'System information' window

In the System Information window, many values don't fit in the GUI.
Here is an example for the Memory tab:

Select Options > change Max. size unit to EB.

What? NO!
Disabling a feature (show bytes) is not a solution. Making the fields/columns a few pixels wider does fix this problem.

Disabling a feature (show bytes) is not a solution

Is there a benefit to showing very large values as bytes?

Making the fields/columns a few pixels wider does fix this problem.

The problem is the window is already at the maximum size for displays with 640x480 resolution. So changing the window size to accommodate byte values would prevent users with those resolutions from seeing any values at all.
Task Manager applications have to be usable in cases where you're up shit creek and things go wrong or running on older hardware which has issues with display resolutions.
I also use these windows during the Windows setup which doesn't have a graphics driver and runs with very low resolutions (Press Shift+F10 to open command prompt during the setup and execute ProcessHacker.exe from a USB drive)

The reason I use bytes is because I can visually immediately see size proportions. 100 numbers that all have varying post-fixes (e.g., GB, MB) all look the same size at a glance.
Could you make it such that when you increase the size of the System Information windows, the room for the digits also increases (i.e., that it can use the extra space) when needed? This is how I always create my own user interfaces. That way, a small screen (640x480) simply uses what it has, and a larger screen (800x600) can fit all the numbers.


High Priority - Verify a Transaction

In the current code, the Verify method is always returning true instead of checking the validity of the transaction.
This is necessary to achieve the goal of making a relay node.

I am working on this issue


Add larger human bam

This PR:

adds a new human bam that contains more reads.
Adds the pileupcalled_bedfile column to the reference sheet.
Adds an extra individual to human_design_bam_eager3.tsv

This looks good, but we should also add the new human sample to the samplesheet_multilane_multilib.tsv.


Add support for dojo/domReady!

Preprocessing the content allows us to use a peerDependency (domready) to make sure modules are loaded when the page is "ready".

Thanks!


Implement runner for apache spark

The goal here is fairly straightforward and the introductory materials mostly live here: https://beam.apache.org/documentation/runners/spark/. They indicate, however, that there will likely be (at least?) two different spark runners to accommodate different spark cluster deployments. I'm going to try to capture what I've learned so far, as the devil is really in the (fairly obscure) details here and familiarity with spark isn't quite sufficient to make things legible in lieu of some heavy iteration.
Rationale for multiple spark runners
Roughly, spark clusters can run with in 'stand alone' mode with spark master listening on port 7077 (this is what the apache-beam documentation writers seem to greatly prefer) or as via spark-submit (which is how YARN and MESOS orchestrated clusters do their thing and so is probably valuable).
Beam jobserver route
In the case of the port 7077 job submissions, apache beam has a pretty convenient docker image which serves as the intermediary between a python process which describes/returns the beam pipeline and the cluster to which it is connected via port 7077 on the cluster's master. Here, any runner we'd implement probably needs little (nothing?) more than these two implementation specific parameters:

This isn't the way to work with EMR, as EMR is YARN backed. A different strategy is necessary.
Beam stuff-everything-into-a-jar-and-pray-your-workers-have-docker-permissions route
As stated, EMR orchestrates spark via YARN. Yarn wants to see spark-submit being used and doesn't care what happens on port 7077 (it isn't listening). That's fine. Actually, apache-beam has some tooling for this:

What happens when this is run is that a jar file pops out at the specified path. This jar file is exactly the kind of thing YARN wants to consume. EMR "steps" are totally capable of running a spark-submit pointing out to some location on S3 and, in fact, this is how things are designed.
There's a bit of a wrinkle here, unfortunately. As it turns out, regardless of the SDK one chooses (EXTERNAL, PROCESS, or - of course - DOCKER), beam jobs specified in python will absolutely, positively, 100% try to spawn docker containers to actually run the code. This is somewhat surprising, as the SDK docs here would seem to indicate that PROCESS ought to use a compiled boot binary. Well, I compiled that binary and included it in the EMR bootstrap step and it absolutely still attempts to run everything via docker (😢).
OK, so why is this a problem?
Well, as it turns out EMR does not grant the hadoop user appropriate permissions to spawn docker containers and there's not really an obvious workaround via AWS' standard customization path of providing a bootstrap script (short of hacking the expected permissions in the various files which the docker group grants access to which seems bad and kind of dangerous).

Having unravelled this mysterious bad behavior, I stumbled across a relevant issue which seems to be current:
https://issues.apache.org/jira/browse/BEAM-11378
https://github.com/apache/beam/issues/20568
Here's a taste of the bootstrap script that I was attempting to modify permissions with. newgrp is a dead end in bootstrap and will cause your cluster to hang for potentially hours without ANY useful debugging information:

Is there any workaround?
Yeah, I think so though I've not proven them out yet.

Bake a custom AMI that adjusts worker permissions so that bootstrap doesn't have to.
Use a custom docker image for EMR and accept that we're going to run Docker in Docker (in Docker) 🤮

This is somewhat surprising, as the SDK docs here would seem to indicate that PROCESS ought to use a compiled boot binary. Well, I compiled that binary and included it in the EMR bootstrap step and it absolutely still attempts to run everything via docker (😢).

Can this be ticketed or asked somewhere? Sounds like a pretty incredible bug if so

I'm thinking it might be appropriate to add some detail to the issue mentioned above that already deals with docker perms on the beam repo (https://github.com/apache/beam/issues/20568).

OK, so @ranchodeluxe's pushback here was so sensible and my understanding of what on earth was going wrong so inchoate that I went back to double check use of the PROCESS SDK. To make a long story short: I believe he was right, that I was missing something, and that there's a path to EMR Serverless running spark jobs to back Beam pipelines.
Slightly longer story:
Bugged by the above comment, I went to Beam source built by gradle and attempted to make sense of if/when boot attempts to summon containers to execute workloads. There's quite a bit going on here, but it appears to be the case that boot is constructed as the entrypoint to docker for standard DOCKER SDK harness environments. This suggested that if the appropriate settings are available wherever boot is built and invoked, we should expect things to run.
The next matter is how to best approach environment construction. The most recent Beam release advertises Spark support up to 3.2.1 but I've spent a bit of time digging around and it appears that people have used it with later versions. 3.3.0, at least, seems fine (if this seems like it shouldn't matter, rest assured that at least when dealing with spark minor versions demand respect). The reason that this turns out to be useful is that the earliest EMR Serverless version that allows container customization is 6.9.0. EMR Serverless 6.9.0 is pinned to Spark 3.3.0.
OK, so this relatively minimal image is built and then pushed up to ECR:
FROM public.ecr.aws/emr-serverless/spark/emr-6.9.0:latest

USER root

# Install development tools and dependencies
RUN yum update -y && \
    yum install git golang -y && \
    yum clean all

RUN pip3 install 'urllib3<1.27,>=1.25.4' boto3 apache-beam[aws]

# Build the binary to boot beam processes
RUN cd /mnt && git clone --branch v2.51.0 --single-branch https://github.com/apache/beam.git
RUN cd /mnt/beam && ./gradlew :sdks:python:container:build
RUN cd /mnt/beam && cp sdks/python/container/build/target/launcher/linux_amd64/boot /home/hadoop/boot
RUN rm -rf /mnt/beam

USER hadoop:hadoop

With that container in place, a few permissions need to be set (VPC settings for internet access but also a trust policy for EMR-Serverless principal's to access ECR data). Also, any special runtime permissions will need to be added to an execution role at this point - the default in the console may well be fine for accessing S3 on the owner's account.  Here's that:
import logging

import apache_beam as beam
from apache_beam.options.pipeline_options import PipelineOptions

def run():
    options = PipelineOptions([
    ])
    with beam.Pipeline(options=options) as p:
        (p
         | 'ReadFromText' >> beam.io.ReadFromText('s3://nzimmerman-testing/texts/mobydick.txt')
         | 'SplitWords' >> beam.FlatMap(lambda x: x.split())
         | 'CountWords' >> beam.combiners.Count.PerElement()
         | 'FormatResults' >> beam.Map(lambda word_count: f"{word_count[0]}: {word_count[1]}")
         | 'WriteToText' >> beam.io.WriteToText('s3://nzimmerman-testing/beam/output2')
        )

if __name__ == "__main__":
    logging.getLogger().setLevel(logging.INFO)
    run()

From there, running the beam job is just a matter of referring to the boot binary, telling it the correct runner (not the portable runner!), and submitting the location (in this case on s3) of the beam pipeline (here's what that looks like in the console):

@moradology this is awesome, and also I love that you have your own copy of Moby Dick stored on s3 😃

Good news/bad news after further exploration. Bad first, I suppose:
Bad
I've come to the conclusion that EMR-Serverless is a non-starter. This absolutely sucks because serverless is just about the best option available for running a spark cluster with relatively little effort put into getting the infrastructure right. Spark just runs there and it generally does so faster and cheaper than a naively, manually provisioned cluster on EMR classic.
 The process SDK-harness works and it is not too bad (just yum install git and golang) to build the boot binary in a custom image but the expectations baked into the SparkRunner are where things get ugly: Beam wants to spin up a job server to translate pipeline work for spark to use but to do this it expects to have access to the scheduler. However, unlike other contexts where spark runs, the spark master is not exposed on 7077 for job submission. Environment variable that are characteristic of the issue:

Digging further, the spark-defaults contained within EMR-serverless docker images lists spark-master as: custom:emr-serverless. It is possible that there's something which could be done inside the beam job runner itself that would allow it to work nicely with this custom scheduler (yarn and mesos both work, for instance) but the inner workings of the emr-serverless spark scheduler are basically a mystery.
Good
As for good news:

In the process of trying to figure out what can be done with serverless, I wrote some infra code and customized a docker image for EMR-serverless (with GDAL built in). Perhaps that will someday be useful if the difficulty above can find resolution: https://github.com/moradology/bEaMR-Serverless (forgive the corny name, especially given that it doesn't actually run beam reliably)

EMR classic runs on yarn so it is much closer to the anticipated SparkRunner scenario. I avoided going down this path because I wasn't familiar with the difficulties already mentioned and because EMR classic is expensive, heavy, and requires quite a bit of configuration. These things make the convenience of pangeo-forge-runner a bit less obvious. Still, there is plausibly a path forward here, should that still be desirable. Here's a bootstrap script that would be suitable for at least getting started with running beam jobs via the process sdk-harness:

#!/bin/bash
set -ex

# Update and install necessary packages
sudo yum update -y
sudo yum install -y git golang

# Clone the specific branch of Apache Beam
git clone --branch v2.51.0 --single-branch https://github.com/apache/beam.git

# Build the Beam Python SDK container
cd beam
./gradlew :sdks:python:container:build

# Copy the boot binary to the Hadoop home
cp sdks/python/container/build/target/launcher/linux_amd64/boot /home/hadoop/boot
sudo chmod +x /home/hadoop/boot

# Clean up
cd ..
rm -rf beam

This is super helpful and interesting work, thanks so much for the summary @moradology. And I like the repo name!

OK, so I read a bunch of Beam source and I'm starting to think that there is a path to running pipelines on EMR-Serverless (which is kind of the holy grail for doing this kind of work on AWS). It will require providing a new (non-portable, non-job-server-dependent) implementation of beam's runner class rather than using any of the off-the-shelf solutions they provide. A sketch of the relevant lines of work:

First, take a look at this example pyspark job's initialization (which works on emr-serverless): https://github.com/aws-samples/emr-serverless-samples/blob/main/examples/pyspark/extreme_weather.py#L48
Compare it to the DaskRunner initialization which mercifully subclasses a local runner implementation: https://github.com/apache/beam/blob/master/sdks/python/apache_beam/runners/dask/dask_runner.py#L172-L181
They're very similar. The actual initialization of the job is 100% compatible if we follow a similar path.

The next question relates to AST transformation. That, too, is far less involved than one might suppose. There really aren't that many translations necessary to get basic batch pipelines off the ground. It appears to literally just be these guys:

TRANSLATIONS = {
    _Create: Create,
    apache_beam.ParDo: ParDo,
    apache_beam.Map: Map,
    _GroupByKeyOnly: GroupByKey,
    _Flatten: Flatten,
}

https://github.com/apache/beam/blob/master/sdks/python/apache_beam/runners/dask/transform_evaluator.py

Going to go ahead and close this as we've deployed the pyspark runner and done a number of jobs on it - can track feature additions/bugs there


ADAP-395: Implement native materialized view DDL

resolves https://github.com/dbt-labs/dbt-core/issues/6911
Description
Replace all stubs with actual Redshift DDL for materialized views.
Checklist

[x] I have read the contributing guide and understand what's expected of me
[x] I have signed the CLA
[x] I have run this code in development and it appears to resolve the stated issue
[x] This PR includes tests, or tests are not required/relevant for this PR
[x] I have opened an issue to add/update docs, or docs changes are not required/relevant for this PR
[ ] I have run changie new to create a changelog entry

@mikealfare macro drop_relation_if_exists which we call on the materialziation calls drop materialized_viiew... instead of drop materialized view ... due to macro drop_relation calling for relation.type

@mikealfare macro drop_relation_if_exists which we call on the materialziation calls drop materialized_viiew... instead of drop materialized view ... due to macro drop_relation calling for relation.type
should we change the string from RelationType to materialized view from matieralized_view?

Oof. I don't know if I want to put a space in that. I'm not sure where else it gets used. But I'm also not too keen on updating drop_relation() to account for mapping _ to ' '. Let's ask around first.

@mikealfare macro drop_relation_if_exists which we call on the materialziation calls drop materialized_viiew... instead of drop materialized view ... due to macro drop_relation calling for relation.type
should we change the string from RelationType to materialized view from matieralized_view?

Oof. I don't know if I want to put a space in that. I'm not sure where else it gets used. But I'm also not too keen on updating drop_relation() to account for mapping _ to ' '. Let's ask around first.

From quick glance at core code looks like relation.type almost acts as a string replacement for whatever the set type is in general or used to assert what the type should be.


Added ToEuler methods to Matrix and Quaternion

This adds a ToEuler method to both Matrix and Quaternion that returns a Vector3 with the x-axis, y-axis, and z-axis rotations required to create the rotation.
This uses the same rotational order as the yaw-pitch-roll functions which is "rotates about y-axis (yaw), then x-axis (pitch), then z-axis (roll)"
Also added overloads of the CreateFromYawPitchRoll methods for both Matrix and Quaternion that takes the angles as a Vector3 in the same order.

Updates to test suite are in this PR


Adding in ability to specify offline directory.

This needs further review (it's late here and I wanted to push so I don't forget it) however I thought @mykmelez you might be interested in looking at it.
The idea is to add support for the service worker to cache all the RESOURCES files with a prefix. This is useful to filter out all the code that browsers that don't support service worker need/have.
This is a similar concept we are using on our site but will also allow for neater stylesheets also - the idea was to reduce that initial resources load down as much as possible to get the finite functional set to read the site. This resource files actually cause network thrashing on mobile devices which will mostly not be an issue with http/2 however changing content to be lighter should always benefit the user.

I'd be interested in seeing an example of this! It would help me understand the use case better. Is the code for your site available?

So the code for my current work is available here: https://www.cyber-ami.com/offline-worker.js (I'm not sure on the rights to reuse for this) however this is replacing index.html files with index.sw.html such that non service worker browser gets: https://www.cyber-ami.com/index.html and service worker loads: https://www.cyber-ami.com/index.sw.html
The principle is the same in my solution proposed here however using a directory should be easier to manage.

Aha, thanks! That raises another question!
Is there something specific about the way that the service worker loads files that causes the network thrashing? I would have thought that you'd want to serve the "lighter" version of the site for all mobile devices, regardless of whether or not they support service workers, since any issue with network thrashing would happen regardless of whether the site was being loaded by a service worker or by a mobile browser that doesn't support them. Is it because the service worker retrieves all the files used by the site, which is a superset of the files that are used by the first page of the site?

Is it because the service worker retrieves all the files used by the site, which is a superset of the files that are used by the first page of the site?

Initially this was the case however I managed to hack ogliner output so that it only contains the files we care about and lazily push files in afterwards.
For example on a slow 2G connection oghliner starts installing the service worker and creates 10 open connections to the site which blocks the current interaction of the site as I as the user get locked out from using any more connections. Our site on a 2G connection was taking 5-10 seconds to download which lead to 10 seconds of broken interface to the user.
Reducing the number of files helped but also we get other advantages from loading custom HTML for service worker like for example:

cut out critical CSS as that has loaded
I preload the fonts and don't swap them out with JavaScript on DOM load (This causes a notable flicker on non service worker clients that I wanted to prevent) so the HTML has an extra class in to use our custom font rather than depend on JS to add that in.
Shims are all removed as they are not needed or flex hacks using Modernizr

I would have thought that you'd want to serve the "lighter" version of the site for all mobile devices

Ideally yes we would however we also want to support older browsers and I don't really want to do anything more on the server for checking for browser strings to serve the correct HTML.

Ideally yes we would, however we also want to support older browsers and I don't really want to do anything more on the server for checking for browser strings to serve the correct HTML.

Ah, that makes sense. You're using "supports service workers" as a simple way to distinguish between "modern browsers," which have both service workers and a variety of other modern features, and "other browsers," some of which may have other modern features, but which you lump together with older browsers for simplicity.
So you generate two sets of HTML files, one for modern browsers and one for other browsers. Both sets of files reference the same URLs, so that it's easier to reuse code between the two versions of the site. And the service worker dynamically rewrites the URLs that it loads to point to the service worker-specific files.
There's one thing that confuses me about using this technique to reduce network thrashing. The first time the site loads, it will load the non-service-worker versions of the files (for those that are loaded during page load, anyway), since the service worker won't have been installed/activated yet.
When the service worker gets installed and starts caching resources, if it requests a different set of URLs than the ones that the page has already loaded, then I would expect that to increase network usage, since the service worker will cause all of those resources to be retrieved anew. Whereas if it was requesting the same set of URLs as the ones that the page has already loaded, then presumably it would retrieve some of those from the browser's memory/disk caches.
Hmm, except I just remembered that the service worker adds a parameter to each URL to bypass/bust the browser caches, so that it always retrieves the resources anew. I wonder if we should stop doing that (at least the first time a site is loaded, i.e. on the initial install of a service worker), given that it can effectively double network usage. That might address the network thrashing issue.
Regardless, the other use case is to serve a different version of the site to modern browsers. For that use case, I have two questions:

Is it ok that modern web browsers will load the non-service worker version of the site the first time the site is loaded?
Presumably you'd want them to get the same version on first-load that they get on subsequent loads, if there's meaningful difference in the functionality of the two versions. I'm not sure how to accomplish that with dynamic URL rewriting in the service worker, however, since at least some of the site (if not most/all of it) will load before the service worker gets activated.
I suppose index.html could be a "shell" that first installs the service worker and then loads the site once it knows that the service worker is activated and will be intercepting requests. But that would probably slow down first load too much.
Is a single option that modifies all URLs fine-grained enough for this use case?
Presumably many resources are still the same between the two versions of the site (f.e. images), even if the HTML files and some other resources are different. If the service worker rewrites the URLs for all resources, then there needs to be two copies of them on the server, even for the ones that don't differ.
It looks like the service worker on your site currently only rewrites the URLs for HTML files, whereas prefixResourceDirectory would rewrite the URLs for all resources. Which seems like it'd make you copy a bunch of files that don't actually differ between the two versions.

There's one thing that confuses me about using this technique to reduce network thrashing.

The size of the files are much smaller after removing the fat for much older browsers we can actually cut even more also.
So we end up cutting the number of packets needed to get all the HTML causing the network blocking but also the number of secondary requests.

Hmm, except I just remembered that the service worker adds a parameter to each URL to bypass/bust the browser caches

Yup I couldn't find a sensible way to turn that off. I'm also not that familiar with when a browser decides to bust it's own cache. Not loading resources for IE CSS fixes seemed sensible on second load even if just from a browser memory perspective.

Is it ok that modern web browsers will load the non-service worker version of the site the first time the site is loaded?

No, the intention is just to cut out cruft not add any new features. The functionality should be exactly the same in offline mode.
The shell behaviour you describe is something I have been experimenting with though to give SPA feel and reduce even further the HTML downloaded. Even this behaviour is built in a way that just loads after the page renders for non sw browsers.

Is a single option that modifies all URLs fine-grained enough for this use case?

It would be for us as the duplication of storing a few mb of files is not an issue. However I can see how that would be an issue for others (This is why I wanted the discussion regarding this sample code - thanks!).
We would however benefit from dialling down our cssnext settings to only be browsers that support service worker which would get us further reduced CSS size.
Perhaps a glob based file check to flip between using prefixResourceDirectory and not would be much more flexible?

No, the intention is just to cut out cruft not add any new features. The functionality should be exactly the same in offline mode.

Hmm, I'm not sure how to guarantee that first load is the same as second load for a browser that supports service workers. At the very least, the initial HTML page will be the non-service worker version (i.e. /index.html).
Perhaps that page could check if the browser supports service workers and, if so, immediately redirect to the service worker version of the page (i.e. /sw/index.html or index.sw.html), before the service worker is even registered, possibly even before the page loads, f.e. in a script within the  section of the page.

Perhaps a glob based file check to flip between using prefixResourceDirectory and not would be much more flexible?

Hmm, yes, I think that would be more flexible, although then I think you'd need two options: a glob/globset to specify the set of paths to match, and the prefix the prepend to paths that match.
I wonder how much trouble it would be to rewrite the paths in the service worker version of the page to include the sw/ subdirectory. Then the service worker wouldn't have to transform any paths at all.
Alternately, if the paths are all relative, and the user gets directed to the service worker version of the page on first load, then perhaps you could avoid rewriting paths entirely. For example, if /sw/index.html contains a reference to style/index.css, and the service worker at /sw/offline-worker.js fetches that relative URL, then it should fetch the file at /sw/style/index.css, without having to explicitly rewrite the URL.

Hmm, I'm not sure how to guarantee that first load is the same as second load for a browser that supports service workers. At the very least, the initial HTML page will be the non-service worker version (i.e. /index.html).

This is down to the implementer to get right they should only transform code for performance.

Perhaps that page could check if the browser supports service workers and, if so, immediately redirect to the service worker version of the page

I'm using it as a cut the mustard test but also 'has cache loaded' improvements. So redirecting those users would have a negative impact as they would load a page without CSS in the <head> at all including critical CSS.
I'm thinking renaming extensions based upon a glob is the least confusing when we are starting to talk about limiting the extensions due to the relative path rewriting. Perhaps worth experimenting with both.
I'm going to be offline for about a week but will pick up the examples when I get back.

Hmm, I'm not sure how to guarantee that first load is the same as second load for a browser that supports service workers.

The Stack Overflow thread Use Service Worker to intercept requests on the first load of my site? suggests an approach.

@mykmelez I would have to have a play about with using that solution. When I used it I was getting tonnes of broken cache requests. If it would work that way it would solve a lot of the issues we had regarding loading the content twice and the cache busting issues etc.
I'm back from holiday now so I can give this a whole heap more focus :D.

This appears to have stalled, so I'll close it. But please reopen it if you continue working on it!


Built demo, but after a splash on the device it throws to desktop

Problem
The problem is this. I was able to compile the debug APK of your demo and install it on the device (Huawei P30, supports GMS), but when I run the demo, a boot splash appears and then throws it on the desktop. It absolutely also throws out my game when I embed a plugin into it. Checkbox Custom build is checked and prepared, checkbox Appodeal is checked, the plugin is in its place (in the android/plugins folder: Appodeal.gdap + Appodeal-2.0.0-debug.aar and -release in the appodeal folder). If I disable the Appodeal plugin checkbox, then my game works and the APK itself takes up 20 MB less (but of course, because Appodeal.aar is now ignored).
Tools versions
At first I couldn’t even build the APK properly, but this was a problem with the tools versions for Godot. I updated to the following versions:
Godot Engine v3.5.3.stable.official.6c814135b
Min SDK 21
Max SDK 33 (default)
OpenJDK 17.0.2 2022-01-18
Gradle wrapper 7.2.1 (as indicated in config.gradle, didn't change anything)
Android SDK 33.0.3
Android NDK 23.2.8568313 (as indicated in config.gradle, I updated to this version)
Android Debug Bridge version 1.0.41 (Version 30.0.4-6686687)
Are these the correct versions? Or do I need even newer ones?
Logs
I can’t figure out exactly what the error is. I can’t show the logs, adb logcat produces a lot of all sorts of information, even with a filter by package name (adb logcat | findstr "org.godotengine.godotappodealdemoproject") or by exceptions (adb logcat | findstr " E " - sorry, that's all for now I know how to use adb manually through the terminal, except for adb install), I don’t understand what the error is related to.
I can only guess that there was an error during Admob initialization, judging by this logcat block:
02-13 22:32:42.108  2803  2803 E AndroidRuntime: FATAL EXCEPTION: main
02-13 22:32:42.108  2803  2803 E AndroidRuntime: Process: org.godotengine.godotappodealdemoproject, PID: 2803
02-13 22:32:42.108  2803  2803 E AndroidRuntime: java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider: java.lang.IllegalStateException:
02-13 22:32:42.108  2803  2803 E AndroidRuntime:
02-13 22:32:42.108  2803  2803 E AndroidRuntime: ******************************************************************************
02-13 22:32:42.108  2803  2803 E AndroidRuntime: * The Google Mobile Ads SDK was initialized incorrectly. AdMob publishers    *
02-13 22:32:42.108  2803  2803 E AndroidRuntime: * should follow the instructions here:                                       *
02-13 22:32:42.108  2803  2803 E AndroidRuntime: * https://googlemobileadssdk.page.link/admob-android-update-manifest         *
02-13 22:32:42.108  2803  2803 E AndroidRuntime: * to add a valid App ID inside the AndroidManifest.                          *
02-13 22:32:42.108  2803  2803 E AndroidRuntime: * Google Ad Manager publishers should follow instructions here:              *
02-13 22:32:42.108  2803  2803 E AndroidRuntime: * https://googlemobileadssdk.page.link/ad-manager-android-update-manifest.   *
02-13 22:32:42.108  2803  2803 E AndroidRuntime: ******************************************************************************
02-13 22:32:42.108  2803  2803 E AndroidRuntime:
02-13 22:32:42.108  2803  2803 E AndroidRuntime:
02-13 22:32:42.108  2803  2803 E AndroidRuntime:        at android.app.ActivityThread.installProvider(ActivityThread.java:8173)
02-13 22:32:42.108  2803  2803 E AndroidRuntime:        at android.app.ActivityThread.installContentProviders(ActivityThread.java:7709)
02-13 22:32:42.108  2803  2803 E AndroidRuntime:        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7573)
02-13 22:32:42.108  2803  2803 E AndroidRuntime:        at android.app.ActivityThread.access$2600(ActivityThread.java:260)
02-13 22:32:42.108  2803  2803 E AndroidRuntime:        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2435)
02-13 22:32:42.108  2803  2803 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:110)
02-13 22:32:42.108  2803  2803 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:219)
02-13 22:32:42.108  2803  2803 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:8668)
02-13 22:32:42.108  2803  2803 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
02-13 22:32:42.108  2803  2803 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
02-13 22:32:42.108  2803  2803 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
02-13 22:32:42.108  2803  2803 E AndroidRuntime: Caused by: java.lang.IllegalStateException:
02-13 22:32:42.108  2803  2803 E AndroidRuntime:
02-13 22:32:42.108  2803  2803 E AndroidRuntime: ******************************************************************************
02-13 22:32:42.108  2803  2803 E AndroidRuntime: * The Google Mobile Ads SDK was initialized incorrectly. AdMob publishers    *
02-13 22:32:42.108  2803  2803 E AndroidRuntime: * should follow the instructions here:                                       *
02-13 22:32:42.108  2803  2803 E AndroidRuntime: * https://googlemobileadssdk.page.link/admob-android-update-manifest         *
02-13 22:32:42.108  2803  2803 E AndroidRuntime: * to add a valid App ID inside the AndroidManifest.                          *
02-13 22:32:42.108  2803  2803 E AndroidRuntime: * Google Ad Manager publishers should follow instructions here:              *
02-13 22:32:42.108  2803  2803 E AndroidRuntime: * https://googlemobileadssdk.page.link/ad-manager-android-update-manifest.   *
02-13 22:32:42.108  2803  2803 E AndroidRuntime: ******************************************************************************
02-13 22:32:42.108  2803  2803 E AndroidRuntime:
02-13 22:32:42.108  2803  2803 E AndroidRuntime:
02-13 22:32:42.108  2803  2803 E AndroidRuntime:        at com.google.android.gms.ads.internal.client.zzek.attachInfo(com.google.android.gms:play-services-ads-lite@@22.3.0:26)
02-13 22:32:42.108  2803  2803 E AndroidRuntime:        at com.google.android.gms.ads.MobileAdsInitProvider.attachInfo(com.google.android.gms:play-services-ads-lite@@22.3.0:1)
02-13 22:32:42.108  2803  2803 E AndroidRuntime:        at android.app.ActivityThread.installProvider(ActivityThread.java:8168)
02-13 22:32:42.108  2803  2803 E AndroidRuntime:        ... 10 more

By the way, the only thing I definitely did NOT do was point 5 of your instructions from the godot-appodeal-editor-plugin repository, because I can't create an AdMob for myself in my country.
5. Open the /android/build/AndroidManifest.xml file in a text editor and add
the GAD App Id as per instruction.
Disabling network
So I want to not use this network. If I understand correctly, Appodeal allows you to disable the AdMob network and not use it. But I don't understand how to disable it in the plugin. Is this possible? Commenting out the line in the manifest <uses-permission android:name="com.google.android.gms.permission.AD_ID" /> didn't help... And I’m not sure that the builder together with Godot doesn't ignore my attempts to do it comment out.
If this is the error, can I disable google admob network? Before compiling in the manifest (but I don’t know how to do it correctly), because in gdscript the functions Appodeal.disable_network(AppodealNetwork.ADMOB) and/or Appodeal.disable_network(AppodealNetwork.ADMOB_MEDIATION) don't solve the problem. Also throws it away.
I don’t understand how to manually connect the Appodeal SDK according to the official documentation. Everywhere it says "download the SDK", but there is not a single download link anywhere. Therefore I would like to use a plugin.
Now I'd like to simply build your demo so that it works on the device.

This crash happens because of the missing AdMob App ID. There are several ways you can fix this. The simplest solution is to add a random AdMob App ID of a valid format. Disabling the network can't help, because you need to remove the dependencies from the app, not just tell Appodeal SDK not to use this network which this method does. If you want to remove the AdMob SDK from your build, you need to find an Appodeal.gdap file in the plugin's content and replace this line with separate deps, similar to what you can see here. Alternatively, you can download needed libs and add them as local deps.


[Documentation] Add documentation on how the OSM height strings are converted to Overture height values

Description
Add documentation on how we convert OpenStreetMap Height strings to Overture values
Testing
None - documentation
Documentation Website
visible here

Please feel free to merge when you want - I don't have permission to merge in this repo.


Updating java docs

Hi @petarTxFusion I just committed a few changes as I tasked myself to test the code. However, the package isn't published by the looks so I couldn't go any further.


Question on BLoc and LocText

I am confused about how to use BLoc and LocText. Currently I am using LocProxy to localize bound properties, but I have gotten the impression that I should be able to use BLoc instead.
Currently I have this:
<lex:LocProxy Name="TitleProxy" Source="{Binding CurrentState.Title}" />
<TextBlock Text="{Binding ElementName=TitleProxy, Path=Result}" Style="{DynamicResource PageTitle}"/>
Where I think I should be able to do this:
<TextBlock Text="{lex:LocText  CurrentState.Title}" Style="{DynamicResource PageTitle}"/>
The latter, however, seems to be looking for a key called "CurrentState.Title" instead of translating the value of the property.
What is the proper use of BLoc?
The documentation is unfortunately rather lacking on this, and LocText as well.

I've tried looking into this and personally found nothing of use on how to use BLoc.  I will say, however, if you're doing a lot of translations on your page, I've found the locproxy approach can be slow.  Had an application with about 24 controls on it, with 2 translations each (48 total) using loc proxy.  The page took on average 260ms to load (there were other issues too.  Lots of other issues)
I've since shifted to doing translations using dependency properties.
        public static readonly DependencyProperty nameProperty =
            DependencyProperty.Register(
                "name", typeof( string ), typeof( TestControl), new PropertyMetadata( UpdateName ) );

        public string name
        {
            get => ( string ) GetValue( nameProperty );
            set => SetValue( nameProperty, value );
        }

        public TestControl()
        {
            InitializeComponent();
        }

        private static void UpdateName(
            DependencyObject d,
            DependencyPropertyChangedEventArgs e )
        {
            if( d is TestControl )
            {
                var test = view.Template.FindName( "CommandName", view ) as TextBlock;

                var culture = LocalizeDictionary.CurrentCulture;

                var result = $"{LocalizeDictionary.Instance.GetLocalizedObject( d.GetValue( nameProperty )?.ToString(), d, culture ) ?? d.GetValue( nameProperty )}";

                if( test != null )
                    test.Text = result;
            }
        }

        private void TestControl_OnLoaded(
            object sender,
            RoutedEventArgs e )
        {
            // have to do this or we don't get a value in there.
            UpdateName();
            LocalizeDictionary.Instance.PropertyChanged += InstanceOnPropertyChanged;
        }

        private void InstanceOnPropertyChanged(
            object sender,
            PropertyChangedEventArgs e )
        {
            UpdateName();
        }

        private void TestControl_OnUnloaded(
            object sender,
            RoutedEventArgs e )
        {
            LocalizeDictionary.Instance.PropertyChanged -= InstanceOnPropertyChanged;
        }

I'm fully aware the code is messy and needs tidying, but it's Friday afternoon.  Performing localisations in this way I've found has improved our page loading dramatically.  Although I cannot for the life of me figure out why the locproxy option is so much slower.

The whole difference of BLoc and Loc is that Loc uses the base class "MarkupExtension" much like {x:Type} and BLoc uses a Binding instead but it does not evaluate the Value of the Path but instead uses the Path as the key.
Afaik there is no build in support for Binding Keys so most devs i know using this lib created an own Implementation:
public class ResConverter : IValueConverter
{
	public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
	{
		return Res.DefaultConverter.Convert(new[] {Thread.CurrentThread.CurrentUICulture, value}, targetType,
			parameter, culture);
	}

	public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
	{
		return Res.DefaultConverter.ConvertBack(value, new[] {targetType},
			parameter, culture);
	}
}

/// <summary>
///     Resolves localized string based on <see cref="KeyPath" />.
///     ATTENTION! Don't override <see cref="Res.Converter" />, don't clear <see cref="Res.Bindings" />, because binding 0
///     always bound to
///     culture, 1 - bound to <see cref="KeyPath" />.
/// </summary>
[MarkupExtensionReturnType(typeof(string))]
public sealed class Res : MultiBinding
{
	[ProvidesContext]
	public static readonly IMultiValueConverter DefaultConverter = new CultureKeyConverter();

	[ProvidesContext] private static readonly Binding CultureBinding =
		new Binding(nameof(LocalizeDictionary.Culture)) {Source = LocalizeDictionary.Instance};

	private readonly Binding _keyBinding;

	private Binding _localCultureBinding;

	private Res(IMultiValueConverter converter, BindingBase cultureBinding)
	{
		Converter = converter;
		Bindings.Add(cultureBinding);

		_keyBinding = new Binding();
		Bindings.Add(_keyBinding);
	}

	public Res()
		: this(DefaultConverter, CultureBinding)
	{
	}

	public Res(string path)
		: this(DefaultConverter, CultureBinding)
	{
		KeyPath = path;
	}

	private void BindCulture(string path, object source)
	{
		if (!string.IsNullOrWhiteSpace(path) && source != null)
		{
			Bindings.Remove(CultureBinding);

			_localCultureBinding = new Binding(path) {Source = source};
			Bindings.Insert(0, _localCultureBinding);
		}
		else
		{
			if (_localCultureBinding != null)
			{
				Bindings.Remove(_localCultureBinding);
				Bindings.Insert(0, CultureBinding);
			}
		}
	}

	/// <summary>
	///     Path on datacontext for key, that should be resolved to localized string.
	/// </summary>
	public string KeyPath
	{
		[UsedImplicitly] get { return _keyBinding.Path.Path; }
		set { _keyBinding.Path = new PropertyPath(value); }
	}
}

usage:
<TextBlock Text={res:Res ViewModel.Property.LocKey} />

The intention is to use BLoc for example in Multibinding scenarios see #186
I have on the roadmap to really rework the documentation and I will take care of this topic an close it here.


Add option to pass a number of samples

Codecov Report

Merging #15 (dafb62f) into main (af5e62a) will not change coverage.
The diff coverage is 50.00%.

@@           Coverage Diff           @@
##             main      #15   +/-   ##
=======================================
  Coverage   92.75%   92.75%
=======================================
  Files          17       17
  Lines        1408     1408
=======================================
  Hits         1306     1306
  Misses        102      102

Flag
Coverage Δ

unittests
92.75% <50.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

gpax/utils.py
75.51% <50.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Assignment one

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
Adding queries as assignment-one requested by using SQLite.
What did you learn from the changes you have made?
I learned how to use basic query syntax to complete the tasks in assignment 1.
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
I thought about rounding when displaying results.
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
n/a
How were these changes tested?
n/a
A reference to a related issue in your repository (if applicable)
n/a
Checklist

[x] I can confirm that my changes are working as intended

wrong pull request


update to improve compatibility with new api

Related to bug #311. Pull request #315 only attempted to fix sendMessage, this includes 3 more services.
Functions updated:

addUserToGroup
changeGroupImage
sendMessage
setTitle

Changes made:

Remove message_batch[0]
Change https://www.facebook.com/ajax/mercury/send_messages.php to https://www.facebook.com/messaging/send/

The unit testing currently produces 30 passes and 5 failures for me.

Login As Page:

should send text message object (user)
should send sticker message object (user)
should send basic string (user)
should get a list of online users

Login:
5) should get a list of online users

The errors indicate:

The URL for getOnlineUsers, https://www.facebook.com/ajax/chat/buddy_list.php, also returns a 404. I haven't been able to find the new URL and/or formatting for this.
Things in Login As Page that send messages are not sent with an error saying "This person isn't receiving messages from you right now." (this may just be an issue with my test users/pages)

changeThreadEmoji() is also broken, but changeThreadColour() is still working.
If I find any other broken functions I'll post them too.

Thanks, this is awesome.
In the past, sometimes pages use an older version of the service, it seems.  Is there any chance the pages tests pass with no changes?
GetOnlineUsers is a known issue and the api function probably has to be deprecated https://github.com/Schmavery/facebook-chat-api/issues/278

Kurimizumi, changeThreadEmoji is working for me. I'm not sure what problems you're having with it.
I just checked, my changes didn't break the Login As Page tests. They didn't fix any of them, either: the same 4 tests fail with or without my changes here (again, that's with my test setup, which may be the issue).

I think we need update a readme too for inform others which version to use if some function dont work

Thanks again @Mini-Geek, I'll push an update to npm when I get home today.

Awesome, glad I could help! Also, I figured out that for a page to message someone, they have to message the page first. So I messaged my page as my test user, and disabled the two "should get a list of online users" tests, and now I get no failures when I run the test.
So it all appears good to me! (or, as good as it can with that known broken API)


[5.7] throw InvalidArgumentException for invalid orderBy direction

Currently If $direction is a typo (ex. 'as', 'aesc'), that means orderBy('desc'), laravel does not inform you that only 'asc' and 'desc' are allowed.
This PR solves this problem.

This PR will break any application if the user doesn't pass a lowercase value for $direction parameter (e.g. ASC).

This PR will break any application if the user doesn't pass a lowercase value for $direction parameter (e.g. ASC).

thanks for the catch, a fix is pushed ...

Won't you already get an SQL error?


Rebuild 1.0.7 with React / ReactDOM 16.1.1.

Fix TypeError: Cannot read property 'getBoundingClientRect' of null arised from D&D involved in moveTab().

closes #1


Poke Ball custom definitions file

Is your feature request related to a problem? Please describe.
Definitions allow for 1-25, from Pokeball to Beast Ball, but isn't customizable.
Describe the solution you'd like
A. Allow for manual modification of the Pokeball definitions under the 'Pokeball ID Reference' tab.
B. Change drop-down menu for Pokeballs to a text box for custom inputs.
C. Write a custom script for the program that identifies a custom Pokeball ID text file and have it implement it upon startup.
Describe alternatives you've considered
One solution I've found is to generate the trainer, then edit manually in the 'trainers' text file, but this would be a time consuming process for many trainers.

Added in commit 90d6ba265dd1b4d7c553628b873a1e884721bfd6

Added in commit 90d6ba265dd1b4d7c553628b873a1e884721bfd6


Missing browser.wait() function in typings in 4.0.9

I am using typescript 2.0.3 and protractor 4.0.9. When I import browser like:
import {ExpectedConditions, browser} from "protractor"
I have no browser.wait(ExpectedConditions.presenceOf(locator));
The method does not exist, thus there are compile errors.
If I usebrowser.driver.wait(ExpectedConditions.presenceOf(locator));
then I get:
Type 'Function' is not assignable to type '(driver: WebDriver) => {}'.
According to API I should be able to use browser.wait(ExpectedCondtions.presenceOf(locator)).then()
I am not
Bug report

Node Version: ``
Protractor Version: 4.0.9
Angular Version: ``
Browser(s): ``
Operating System and Version ``
Your protractor configuration file
A relevant example test
Output from running the test
Steps to reproduce the bug
The URL you are running your tests against (if relevant)

Feature Request

Reasons for adopting new feature
Is this a breaking change? (How will this affect existing functionality)

@types/selenium-webdriver sets the wait to
wait<T>(condition: webdriver.promise.Promise<T>|webdriver.until.Condition<T>|
  ((driver: WebDriver)=>T), timeout?: number, opt_message?: string):
  webdriver.promise.Promise<T>;

browser.wait appears to not match.
wait:
      (condition: wdpromise.Promise<any>|until.Condition<any>|Function,
       opt_timeout?: number, opt_message?: string) => wdpromise.Promise<any>;

Since ExpectedCondition returns a Function, the easy fix is to just add Function to the @types/selenium-webdriver.

Closed with https://github.com/DefinitelyTyped/DefinitelyTyped/pull/12457

Looks like, the similar issue has appeared again. The code below
async isOpened(url: string = null): Promise<boolean> {
        try {
            const timeout = await PageObject.getPageTimeout();
            return await browser.wait(EC.or(EC.urlIs(this.url), EC.urlContains(url)), timeout, 'Page is not opened.');
        } catch (e) {
            console.log(e);
        }
    }

after running tsc --alwaysStrict produces the error message Type '{}' is not assignable to type 'boolean' for the line return await browser.wait(EC.or(EC.urlIs(this.url), EC.urlContains(url)), timeout, 'Page is not opened.');
The version of Node version is 8.8.1, Protractor is 5.2.0, and Typescript is 2.6.1


feat: add classname and style

https://github.com/YYsuni/react18-json-view/issues/22

Hi～
Is there any plan to deliver a new version with this feature?

Sorry for the ignore, I have released a new canary version with the feature of splitting large arrays.

Oh, you mean the latest version, I will


Why does the speed of kubelet running pause container have slowed down?

Today I raise a 2 minions cluster and create a 50 replica redis-controller-master rc, the rc take about 10 minutes to launch, that's much longer than one week ago ( about 50 seconds).
I see the kubelet's log and found it take 10 seconds to pulled a pause images and another 10 seconds to start it:

And after all the pause containers has started, it only takes several seconds to started all the redis containers:

I thought the behavior of starting redis containers is reasonable and that about pause container is unreasonable, why it?

After that, I try to use the --pod-infra-container-image=my_pause (my_pause is the image I change the tag the google's pause) to startup the kubelet, then everything is ok.

I'm wonder what's wrong is it.

I assume it's a networking issue. You may have the local cache for redis but not for pause.

I do not think so, because:
1 I can see the "gcr.io/google_containers/pause:0.8.0" image is already on the slaves by typing "docker images"
2 I have done the test for many times and all of them show the same result.
@dalanlan

To be honest the pic format is not so friendly. Would you mind turning to a textual one? Will TAL later.

Sorry, the textual log is below.
When use the "gcr.io/google_containers/pause:0.8.0" image, we can see that  it take 10 seconds to pulled a pause images and another 10 seconds to start it:
"
I0803 10:57:59.596895  106231 server.go:594] Event(api.ObjectReference{Kind:"Pod", Namespace:"default", Name:"redis-master-c0isu", UID:"6be3ac42-398b-11e5-92b     9-28e0d488c694", APIVersion:"v1", ResourceVersion:"49", FieldPath:"implicitly required container POD"}): reason: 'pulled' Pod container image "gcr.io/google_c     ontainers/pause:0.8.0" already present on machine
I0803 10:58:09.599311  106231 server.go:594] Event(api.ObjectReference{Kind:"Pod", Namespace:"default", Name:"redis-master-gvm6v", UID:"6be3b932-398b-11e5-92b     9-28e0d488c694", APIVersion:"v1", ResourceVersion:"53", FieldPath:"implicitly required container POD"}): reason: 'pulled' Pod container image "gcr.io/google_c     ontainers/pause:0.8.0" already present on machine
I0803 10:58:19.599945  106231 server.go:594] Event(api.ObjectReference{Kind:"Pod", Namespace:"default", Name:"redis-master-ks0o6", UID:"6be3ef07-398b-11e5-92b     9-28e0d488c694", APIVersion:"v1", ResourceVersion:"61", FieldPath:"implicitly required container POD"}): reason: 'pulled' Pod container image "gcr.io/google_c     ontainers/pause:0.8.0" already present on machine
I0803 10:58:29.601360  106231 server.go:594] Event(api.ObjectReference{Kind:"Pod", Namespace:"default", Name:"redis-master-9qi8e", UID:"6be417c2-398b-11e5-92b     9-28e0d488c694", APIVersion:"v1", ResourceVersion:"72", FieldPath:"implicitly required container POD"}): reason: 'pulled' Pod container image "gcr.io/google_c     ontainers/pause:0.8.0" already present on machine
I0803 10:58:39.603383  106231 server.go:594] Event(api.ObjectReference{Kind:"Pod", Namespace:"default", Name:"redis-master-wt09t", UID:"6be44f11-398b-11e5-92b     9-28e0d488c694", APIVersion:"v1", ResourceVersion:"82", FieldPath:"implicitly required container POD"}): reason: 'pulled' Pod container image "gcr.io/google_c     ontainers/pause:0.8.0" already present on machine
"
When use the image I have renamed, we can see that the time spending on pulling and starting is decreased, the log is below:
"
I0803 11:14:00.847648  114738 server.go:594] Event(api.ObjectReference{Kind:"Pod", Namespace:"default", Name:"redis-master-omb7h", UID:"af222d9c-398d-11e5-bb2b    -28e0d488c694", APIVersion:"v1", ResourceVersion:"51", FieldPath:"implicitly required container POD"}): reason: 'pulled' Pod container image "my_pause" already     present on machine
I0803 11:14:00.943898  114738 server.go:594] Event(api.ObjectReference{Kind:"Pod", Namespace:"default", Name:"redis-master-b8olv", UID:"af225faf-398d-11e5-bb2b    -28e0d488c694", APIVersion:"v1", ResourceVersion:"68", FieldPath:"implicitly required container POD"}): reason: 'pulled' Pod container image "my_pause" already     present on machine
I0803 11:14:01.512471  114738 server.go:594] Event(api.ObjectReference{Kind:"Pod", Namespace:"default", Name:"redis-master-8tnoh", UID:"af2269d4-398d-11e5-bb2b    -28e0d488c694", APIVersion:"v1", ResourceVersion:"74", FieldPath:"implicitly required container POD"}): reason: 'pulled' Pod container image "my_pause" already     present on machine
"

Ic. Sorry about my previous misunderstanding.
Yet i was wondering what troubled you that much since we cannot tell the exact difference between "10 seconds" and "several seconds".
No err logs seems all right to me, i'm afraid.

Oh, I found some interesting thing that may help.
When I typed "docker inspect gcr.io/google_containers/pause:0.8.0", it took about 10 seconds to return message.
But when I typed "docker inspect my_pause", it returned the message immediately.
Now I know this issue may does not matter with kubernetes, but I really want to know what make this happen.
@dalanlan

Now I opened a new issue under the Docker, because I thought it was more likely the issue of Docker.
https://github.com/docker/docker/issues/15245

Uhh, i'll bet if you try docker inspect <container_id> instead of docker inspect <container_name>, you would get the result faster. (some stuff related to param parse, maybe)
You may read through the src code of docker, from where docker/api/client/inspect.go locates, if it might interest you.

Thank you, when I type docker inspect

I'm wrong.The kubernetes can not only set the "pod-infra-container-image" by name, but also set it by id, and that's my jury solution to this issue.


Update Gene Sets File Format to reflect simplified design

The following statements are no longer true:

When new gene sets are being added to a data collection on the portal, validation MUST detect gene_set_name collisions with current gene sets in the collection, display an error message, and fail the upload.
gene_set_name and gene_set_description are presented to users viewing data collections in the portal.

Gene sets are now added to a collection as a dataset property.

Closing. Per the 2022 Q1 plan, the design would embed gene sets in datasets.


palemoon: 27.9.1 -> 27.9.2

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/palemoon/versions.
These checks were done:

built on NixOS
/nix/store/5kg07d9qryxy21ikixc0273ngbm3zl3v-palemoon-27.9.2/bin/palemoon passed the binary check.
1 of 1 passed binary check by having a zero exit code.
1 of 1 passed binary check by having the new version present in output.
found 27.9.2 with grep in /nix/store/5kg07d9qryxy21ikixc0273ngbm3zl3v-palemoon-27.9.2
directory tree listing: https://gist.github.com/97521481792d6df556c4536742a77bb4
du listing: https://gist.github.com/7f246d760956bb748d5e09cfd1193a6b

meta.description for palemoon is: '"A web browser"'.
cc @rnhmjoj @AndersonTorres for testing.

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: palemoon
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Failure on aarch64-linux (full log)
Attempted: palemoon
Partial log (click to expand)
 3:51.55 /build/palemoon-src/nsprpub/lib/libc/src/plvrsion.c:88:17: warning: variable 'dummy' set but not used [-Wunused-but-set-variable]
 3:51.55      const char *dummy;
 3:51.55                  ^
 4:17.40 make[3]: *** [/build/palemoon-src/config/recurse.mk:37: export] Error 2
 4:17.40 make[2]: *** [/build/palemoon-src/config/rules.mk:541: default] Error 2
 4:17.41 make[1]: *** [/build/palemoon-src/client.mk:399: realbuild] Error 2
 4:17.41 make: *** [client.mk:171: build] Error 2
 4:17.45 38 compiler warnings present.
builder for '/nix/store/lqkkyfgj7irgs1fv65ifm5nb7s53a31f-palemoon-27.9.2.drv' failed with exit code 2
error: build of '/nix/store/lqkkyfgj7irgs1fv65ifm5nb7s53a31f-palemoon-27.9.2.drv' failed

Success on x86_64-linux (full log)
Attempted: palemoon
Partial log (click to expand)
patching script interpreter paths in /nix/store/5kg07d9qryxy21ikixc0273ngbm3zl3v-palemoon-27.9.2
/nix/store/5kg07d9qryxy21ikixc0273ngbm3zl3v-palemoon-27.9.2/lib/palemoon-27.9.2/run-mozilla.sh: interpreter directive changed from "/bin/sh" to "/nix/store/xn5gv3lpfy91yvfy9b0i7klfcxh9xskz-bash-4.4-p19/bin/sh"
/nix/store/5kg07d9qryxy21ikixc0273ngbm3zl3v-palemoon-27.9.2/lib/palemoon-devel-27.9.2/sdk/bin/xpt.py: interpreter directive changed from "/usr/bin/env python" to "/nix/store/l9j2jsc9flrbmpf799nw9wdq59gpwms8-python-2.7.14/bin/python"
/nix/store/5kg07d9qryxy21ikixc0273ngbm3zl3v-palemoon-27.9.2/lib/palemoon-devel-27.9.2/sdk/bin/header.py: interpreter directive changed from "/usr/bin/env python" to "/nix/store/l9j2jsc9flrbmpf799nw9wdq59gpwms8-python-2.7.14/bin/python"
/nix/store/5kg07d9qryxy21ikixc0273ngbm3zl3v-palemoon-27.9.2/lib/palemoon-devel-27.9.2/sdk/bin/nspr-config: interpreter directive changed from "/bin/sh" to "/nix/store/xn5gv3lpfy91yvfy9b0i7klfcxh9xskz-bash-4.4-p19/bin/sh"
/nix/store/5kg07d9qryxy21ikixc0273ngbm3zl3v-palemoon-27.9.2/lib/palemoon-devel-27.9.2/sdk/bin/xpidl.py: interpreter directive changed from "/usr/bin/env python" to "/nix/store/l9j2jsc9flrbmpf799nw9wdq59gpwms8-python-2.7.14/bin/python"
/nix/store/5kg07d9qryxy21ikixc0273ngbm3zl3v-palemoon-27.9.2/lib/palemoon-devel-27.9.2/sdk/bin/run-mozilla.sh: interpreter directive changed from "/bin/sh" to "/nix/store/xn5gv3lpfy91yvfy9b0i7klfcxh9xskz-bash-4.4-p19/bin/sh"
/nix/store/5kg07d9qryxy21ikixc0273ngbm3zl3v-palemoon-27.9.2/lib/palemoon-devel-27.9.2/sdk/bin/typelib.py: interpreter directive changed from "/usr/bin/env python" to "/nix/store/l9j2jsc9flrbmpf799nw9wdq59gpwms8-python-2.7.14/bin/python"
checking for references to /build in /nix/store/5kg07d9qryxy21ikixc0273ngbm3zl3v-palemoon-27.9.2...
/nix/store/5kg07d9qryxy21ikixc0273ngbm3zl3v-palemoon-27.9.2


data in kg is not indexed

We have a new field in knowledge_graph.<semantic_type>[] data which is any arbitrary object. This pull request will ensure that data is never indexed.
Or thats what I think this pull request does. Any other place to change it @jasonslepicka ?

@saggu I don't think you need to change it anywhere else, unless the mappings you're using are under version control in this repository.  i restarted the travis build and it passed.  that failure was unrelated.

Ok, I'll merge this pull request


Ensure tests work in CI

:tada: This issue has been resolved in version 1.1.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Random number data type when reading

Hi,
I am storing map[string]interface{} mapped to object datatype. When reading numbers I randomly get float or int. For example stored int64(0) is read as float64(0) and vice versa.
Which version of Elastic are you using?
[ ] elastic.v6 (for Elasticsearch 6.x)
[x ] elastic.v5 (for Elasticsearch 5.x)
[ ] elastic.v3 (for Elasticsearch 2.x)
[ ] elastic.v2 (for Elasticsearch 1.x)
Please describe the expected behavior
stored float will be always returned as float and stored int will be always returned as int.
Please describe the actual behavior
I am storing map[string]interface as as an object datatype to ES. With following dynamic template mapped to all fields in the map.
"mapping": {
  'type": "keyword",
  "ignore_above": 256
},

When I store following into the map:
tagsMap := map[string]interface{}{}
tagsMap["1dot0_float"] = float64(1.0)
tagsMap["1dot1_float"] = float64(1.1)
tagsMap["0_float"] = float64(0)

tagsMap["1_int"] = int64(1)
tagsMap["0_int"] = int64(0)

When reading the 1_int/0_int is sometimes int and sometimes float (type is determided by fmt.Printf("%s ->>> type %s\n", k, reflect.TypeOf(v))). 0_float and 1do0_float is also radomly int64 or float64

I am closing this it seems that the type of the interface when reading is always float64. I will open a separate issue.


Espeen Front-end Mobile Doc

Use the wiki of the repository to add a doc:

[x] Add a Home Page: Briefly describe the project and include two links:

One to the Technical Documentation.
One to the User Documentation.

[x] Technical Documentation: Write detailed technical documentation for developers. This should include:

Installation instructions.
Explanation of the architecture.
Information on how to contribute (branching strategy, commit format, etc.).

[ ] User Documentation (optional for MVP): Provide instructions and information for end-users.

User doc isn't necessary so i've prepared the pages but not filled it for now, we will see for the final product


Improve the traceback of errors

Currently, for the jobs.py script, there is no mechanism to print the Exceptions to the user. When an exception occurs, the script currently only returns an exit code.
A proposed solution is to:

Import the traceback module: This allows capturing and printing the full traceback.
Modify the try-except block to print the full traceback when an error occurs. Here's a suggested code snippet:

except Exception as e:
    print(f"An error occurred: {e}")
    traceback.print_exc()  # This prints the full traceback
    sys.exit(1)

Just add this code snippet where currently the code is just a broad exception:
except:
    pass

Hope this can help!

Thanks for reporting this issue. Feel free to create a PR.
The backend api has changed a bit and I just updated the script to use the latest fast MASST REST API.
This might also fix an issue that you may have experienced.


People aren't removed from caches when they go down to 0 potatoes given / recieved

resulting in

:military_medal: 9: @williewillus has given 0x :tinypotato:

There are two ways to fix this:

Check for zero potatoes in reaction_remove and remove the entry from the caches
Filter out people with zero potatoes when printing

Method 1 is probably better but method 2 is easier...

oops sorry i pinged you willie


API currently down?

Hi there, I run an iOS app that uses the Met's API and as of today none of my API calls are working. My calls are also failing on Postman. Is the API currently down? I haven't been able to find any information about the status online. Any information would be greatly appreciated. Thanks!

Thanks @jsteigelman, yes the API is currently down and will not be back up today, unfortunately.

Got it, thanks so much for letting me know and for the quick response!


Fix grains variable to work for host

Before it wasn't working because the definition wasn't there. I tested with a custom grain now and it is applied. It's still a string only, I will see if I can make it a list later.

var.grains is supposed to contain the grain definition, of any type.
This will break many use cases as:
https://github.com/uyuni-project/sumaform/blob/master/modules/libvirt/controller/main.tf#L29
Can you share the main.tf you are using? I bet the problem is actually there.

I was using something like:
module "12sp4" {
  source = "./modules/libvirt/host"
  base_configuration = "${module.base.configuration}"
  count = 3
  name = "12sp4"
  image = "sles12sp4"
  grains = qam
}

I wanted to have some custom salt states triggered according to the grain. It probably was the wrong way to define the grain. Can you give me an example for the right one? We had some errors related to it and with changing the definition like the one in the PR it worked. But if it's deliberate (and since you say it is I believe it) then we were using it wrong.
btw this is for a SLE project for QAM that I was helping with, not SUMA

I will close this actually and we can discuss the proper way to use the custom grains in the host module, but the PR isn't needed

grains = "grainname: grainvalue"

Thanks very much, didn't realise it was a dict. I will pass it on to QAM and we see how it will work for them.


Issue/6428 add config option for timezone aware datetimes on the api iso6

Description
Part of https://github.com/inmanta/inmanta-core/issues/6428
Self Check:
Strike through any lines that are not applicable (~~line~~) then check the box

[ ] Attached issue to pull request
[ ] Changelog entry
[ ] Type annotations are present
[ ] Code is clear and sufficiently documented
[ ] No (preventable) type errors (check using make mypy or make mypy-diff)
[ ] Sufficient test cases (reproduces the bug/tests the requested feature)
[ ] Correct, in line with design
[ ] End user documentation is included or an issue is created for end-user documentation (add ref to issue here: )
[ ] If this PR fixes a race condition in the test suite, also push the fix to the relevant stable branche(s) (see test-fixes for more info)

Most of the test fixes involve using the parse_timestamp that was moved to resourceservice to util

I tried the suggestion to change resource_action_update from method to typedmethod but I couldn't properly type the return value (which is required I think?).
Instead I only changed the messages argument type from list to List[model.LogLine] which I think is enough ?

all datetime objects are timezone aware -> https://github.com/inmanta/inmanta-core/blob/25805f6b3b22870796bfab88411983b479f20ee5/src/inmanta/data/model.py#L66
if we serialize datetime's internally (i.e. towards the DB) (which is rare), we add the timezone to the timestamp explicitly (and it is always UTC) -> https://github.com/inmanta/inmanta-core/blob/c829ede9c3ecd589aba4bd75a2e2adbb993b575d/src/inmanta/util.py#L454
if we serialize with the intent of passing the api boundary, we may or may not explicitly mention the timezone (controlled by the option) -> https://github.com/inmanta/inmanta-core/blob/c829ede9c3ecd589aba4bd75a2e2adbb993b575d/src/inmanta/util.py#L465
if we parse date-times and they have no explicit timezone, we assume UTC -> https://github.com/inmanta/inmanta-core/blob/c829ede9c3ecd589aba4bd75a2e2adbb993b575d/src/inmanta/util.py#L411

Processing this pull request

Merged into branches iso6 in 86f1466c4900b2ff220a31d836203607270a8c40


EmbeddedKafkaBroker is not destroy between test class when spring-test context changes

Hi,
I have found a bit of an insidious issue where the EmbeddedKafkaBroker is not properly destroy and as such does not release its port. This is issue is found in JUnit5 tests having a spring context. It can be reproduce in this small project:
spring-kafka.zip. Launching a ./gradlew build will launch two test classes, with the second one failing because of a java.net.BindException: Address already in use.
What happens is that one of the test class configures the spring cache while the other does not (with @AutoConfigureCache). Having this additional configuration forces a refresh of the spring-test context when starting the second test class and thus call a second time EmbeddedKafkaContextCustomizer#customizeContext. However after the first test ended the EmbeddedKafkaBroker bean was not destroy because it was cached.
I am not certain whether this should be an issue in spring-test or in spring-kafka, since having a DisposableBean bean not being destroyed before refreshing the cache is a bit insidious and error-prone.
As a temporary solution I destroy the bean manually in an @AfterAll:
  @AfterAll
  static void afterAll(@Autowired ApplicationContext applicationContext) {
    EmbeddedKafkaBroker embeddedKafkaBroker = applicationContext.getBean(EmbeddedKafkaBroker.class);
    embeddedKafkaBroker.destroy();
  }

Simply add @DirtiesContext to the test class and the context will be destroyed - just destroying the broker is not enough, you want all listener containers to shut down too.

I usually prefer not to use @DirtiesContext whenever possible. If it is necessary here, then so be it.

Understood, the problem with "live" components, such as listener containers, we need to shut them down - otherwise, with large test suites, you end up with a lot of unecessary memory and/or cpu use.


Cleanup

Fixes some formatting issues (standardize indentation, line > 100 chars, delete commented out code, etc).
Also changes the versions in the pom.xml files related to the integration test so that the integration test will build.

LGTM. Thanks!.


Cast two's complement int when talking to Trinamic board.

Right now, the code is filled with spots that add<PHONE_NUMBER> to get the signed int to an int, but this is error prone. It should also only be done inside of SPI_write() so that the operation is done only once.

done.


Update API docs default version

Currently the API docs link the nightly docs by default.
This leads to folks trying to use unreleased APIs and classes.
We should default to the latest stable release and make nightly an option.

Closed with driftyco/ionic@f4fac225fa3a9151565a1e3c3ccb334405b6a57f


remove rescan_height and do the wallet rescan from the genesis #189;

Close #189

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 2 (50.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.02%) to 64.656%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

core/src/oracle_state.rs
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.02%

Covered Lines:
1983

Relevant Lines:
3067

💛  - Coveralls


Emails are sent in Polish language instead of English

What I'm trying to achieve
Emails language should be English.
Currently its Polish.
Steps to reproduce the problem

Create Order Or register any new user.
Emails sent are in Polish Langusge.

What I expected to happen
Emails language should be English.
Screenshots

https://prnt.sc/u4bs1y
System information
Operating system: Mac

@IKarbowiak @maarcingebala Hi Guys, could you please see whats wrong here?
Is there any configuration changes?
setting LANGUAGE_CODE = "en" is 'en' by default


Gap first slide (issue #2808)

I'm looking for a solution to the problem as described in #2808. Because that ticket is closed, I'm not sure whether my posts can be seen. Anyway, this is what I'm trying to accomplish: I would like the first slide to be on the left, and then show a part of the [third or fourth] slide, like in many contemporary apps. I don't want to use center mode, because this is confusing to my users: the slider is only containing a small number of slides. Maybe I'm looking at it the wrong way, but I really can't find a solution to this seeingly simple problem.
Here are two examples (Airbnb and Spotify) of what I'm trying to accomplish, both sliders are non-infinite like I want them to be. The Spotify slider has no 'stops' (number of slides to scroll), so the behavior of the Airbnb slider is more like that of Slick.

you need to recalculate width with variableWith: true;
let's say if ur container max-width has 1000px and u want to show 3 slides and 1 preview so total is 4 slides. Then set the width of slides odd numbers. For example, if you set 250px, the slides will not have preview because 250 x 4 = 1000, Slides will be filled fully to it's container. So increase it to 310px, i.e 310 x 4 = 1240, which exceed to it's container. There you can have 3 slides with 1 preview.
Check this example.

Here's updated one with padding. https://codepen.io/thihathit/pen/MVWBXm

I have a similar problem, I had been using centermode with a vertical slick slider uptil now, which worked perfectly, but when I changed it to horizontal I see a empty gap before the first slide.
While I understand the reasoning behind using centermode with infinite only, I have been keeping it ON so that user can scroll to the last slide, i:e the last slide in my list gets the slick-active and slick-current classes, I have certain additional meta data that has been embedded in the li which I use based on slick-current,  I want to have a similar behaviour on horizontal mode too.
If I do centermode false then since I am showing 3 slides at a time, the slick next gets disabled once I reach the last 3 slides, so user cannot use the next button to activate the last two slides.

Here's updated one with padding. https://codepen.io/thihathit/pen/MVWBXm

I really appreciate this reply for nebie like me. If you know the infomation about that code in react, please let me know. This is what I've been looking for!
I need to make the left gap of the first slide to be narrow than others. and also
the right gap of the last slide to be narrow than others too.


Issue with mongodb example

Describe the bug
I am trying to kickstart a project with stepzen mongodb, everything else seems to work good except when i try to query from stepzen it doesn't work

Hello @Ayoseun could you give more details about what isn't working? Please share the error message you're seeing in your terminal or in the response of a GraphQL request.

I get the error "Http connector error"
On Tue, Jul 5, 2022, 10:15 AM Roy Derks @.***> wrote:

Hello @Ayoseun https://github.com/Ayoseun could you give more details
about what isn't working? Please share the error message you're seeing in
your terminal or in the response of a GraphQL request.
—
Reply to this email directly, view it on GitHub
https://github.com/stepzen-dev/examples/issues/35#issuecomment-1174821515,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALP2YPNHAX5ZKHM245EM54LVSP4LBANCNFSM52KX5KMQ
.
You are receiving this because you were mentioned.Message ID:
@.***>


Create webpage for simulation

Create a webpage for a simulation automatically as part of post.py. Resolves #24.

@chengzhuzhang I would like to discuss sometime if PACE integration can help in this regard.

@sarats Thank you for following this! I understand this issue particularly targets automatically creating webpages including analysis results. Integration with PACE will enable inclusion of performance and run es3m info. That would be really nice, and could be a final goal. Happy to talk more on this.

My goal for zppy has always been to free model runners from all the tedious tasks that come along with running, analyzing, documenting simulations. I think we have made great progress, but we still a number of tedious tasks.
One of them is creating a Confluence page documenting the simulation: listing all the simulation details, jobs and creating links to all the analysis figures. So I like the idea of a more coherent web design. In addition to being more aesthetically pleasing, it could also alleviate some manual labor.
@wlin7 has also developed a very nice integrated viewer for E3SM Diags that allows for easy comparison of simulations. I'd like to see it integrated somehow.
Lots of ideas we could consider, but we should proceed carefully and thoughtfully. I don't want zppy to become overly complicated or rigid.


When engines are set to lazy load, unit tests fail to run.

QUnit tests are failing to run with a lazy-loaded engine. If lazy loading is turned off, tests are working as expected.
Here is the error, with URLs removed (let me know if I need to explicitly provide them):
Source: 	TypeError: Cannot read property 'subject' of undefined
    at _default.teardownSubject (...)
    at http://...
    at initializePromise (...)
    at new Promise (...)
    at nextStep (...)
    at _default.invokeSteps (...)
    at http://...
    at tryCatch (...)
    at invokeCallback (...)
    at http://...

Have you tried by loading the engine assets with a <script> in your tests/index.html?

@siva-sundar Because your solution to this issue is similar to Issue https://github.com/ember-engines/ember-engines/issues/388, can you be more precise here too?
@MelSumner Did Siva's solution work for you?

For more context on why this is happening, please see https://github.com/ember-engines/ember-engines/pull/453#issuecomment-317035825.

Also related: issue for adding documentation for this https://github.com/ember-engines/ember-engines/issues/496


app crash on start - TypeError: Cannot read properties of null (reading 'replace')

yes i created

now i'm using heroku but i get 404 not found on login/register


this is not MergeRequest build.

in gitlabci find a error
$ export GITLAB_API="https://gitlab.hutaojie.com/api/v4"
$ pwd
/Users/dual/builds/bb28ea26/0/group_runners_test/test_project
$ reviewdog -reporter=gitlab-mr-commit
this is not MergeRequest build.
Job succeeded
how to fix it

You can fix it by starting this stage on MR

Please reopen it with more detail information if the problem is not fixed.

Please reopen it with more detail information if the problem is not fixed.

@haya14busa Hi, I still have this problem, I don't know if it's because I didn't merge .gitlab-ci.yml and .reviewdog.yml into the repo in advance


Unauthorized

I use my data from the suno webpage i.e., email, sess_2fB... and the token after "jwt": eyJ...
After save information I try to generate and get Suno AI Music song generation submission failed：Unauthorized
I suppose the solution is easy but I am not able to find it.

Unauthorized

Setting information should be filled in with cookie, not jwt tokens


Some errors leaking through without being wrapped by a specific type

When passing undefined or null to .findById in objection, I'm seeing the following error:
Error: undefined was passed to findById
    at assertIdNotUndefined (/Users/me/Dev/personal/playground/todos/api/express/node_modules/objection/lib/utils/assert.js:18:11)

Would be nice if this was caught by a NotFoundError
Note: Using a .throwIfNotFound call mitigates when null is passed into .findById, but not undefined.
Using PostgreSQL

That error doesn't come from the DB. Objection throws it before the query is executed.

So it's an ORM error. Do you have a recommendation on how to handle it? Would be nice if it was typed.

It's a programming error if you pass an undefined value. You should handle it by fixing the bug.

Good advice. Thanks.


[Feature] Support custom worker threads number for iceberg

What type of PR is this：

[ ] bug
[ ] feature
[x] enhancement
[ ] others

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

we can set iceberg.worker.num-threads for  ThreadPools.getWorkerPool() below
public CloseableIterable<FileScanTask> planFiles(TableOperations ops, Snapshot snapshot, Expression rowFilter, boolean ignoreResiduals, boolean caseSensitive, boolean colStats) {
        ManifestGroup manifestGroup = (new ManifestGroup(ops.io(), snapshot.dataManifests(), snapshot.deleteManifests())).caseSensitive(caseSensitive).select(colStats ? SCAN_WITH_STATS_COLUMNS : SCAN_COLUMNS).filterData(rowFilter).specsById(ops.current().specsById()).ignoreDeleted();
        if (ignoreResiduals) {
            manifestGroup = manifestGroup.ignoreResiduals();
        }

        if (PLAN_SCANS_WITH_WORKER_POOL && snapshot.dataManifests().size() > 1) {
            manifestGroup = manifestGroup.planWith(ThreadPools.getWorkerPool());
        }

        return manifestGroup.planFiles();
    }

[FE PR Coverage check]
:disappointed: fail : 4 / 6 (66.67%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/external/iceberg/IcebergUtil.java
2
4
50.00%

:large_blue_circle:
com/starrocks/common/Config.java
2
2
100.00%

[FE PR Coverage check]
:disappointed: fail : 4 / 6 (66.67%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/external/iceberg/IcebergUtil.java
2
4
50.00%

:large_blue_circle:
com/starrocks/common/Config.java
2
2
100.00%

[FE PR Coverage check]
:disappointed: fail : 5 / 8 (62.50%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/external/iceberg/IcebergUtil.java
3
6
50.00%

:large_blue_circle:
com/starrocks/common/Config.java
2
2
100.00%

[FE PR Coverage check]
:disappointed: fail : 7 / 10 (70.00%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/external/iceberg/IcebergRepository.java
4
7
57.14%

:large_blue_circle:
com/starrocks/common/Config.java
2
2
100.00%

:large_blue_circle:
com/starrocks/server/GlobalStateMgr.java
1
1
100.00%


[Exchange Format] Language Import Selection

When I import a model exchange file
And this file contains translations
For instance :
<element identifier="id-56020" xsi:type="Equipment">
			<name xml:lang="de">Hausalarmanlage</name>
			<name xml:lang="en">Home Alarm System</name>
			<name xml:lang="fr">Système d'alarme domestique</name>
			<name xml:lang="es">Sistema de alarma de casa</name>
			<name xml:lang="nl">Thuisalarmsysteem</name>
</element>

I would like to be able to select the language I am willing to import
Even cooler (and desirable) : I can change the language whenever I want
The file I import is the ArchiSurance OpenGroup

Even cooler (and desirable) : I can change the language whenever I want

Archi doesn't support several languages at the same time for a model (in fact there is no notion of lang in Archi). So this can't be done.

I would like to be able to select the language I am willing to import

It seems we both know someone who faces this issue. I was not even aware this could happen andam also interrested by such additional feature.

The file I import is the ArchiSurance OpenGroup

Could you provide exact link to download it as the one I downloaded doesn't contains several languages.

It might be possible but it would have to be an option, and the import dialog would have to be a wizard with that option, the importer would have to look for strings that match the chosen language code, and if found, use that.
Re-exporting the lang would not be possible in Archi because:

Archi doesn't support several languages at the same time for a model (in fact there is no notion of lang in Archi).

Actually...this is already implemented when importing. The importer uses the Locale language code of the host machine and chooses the matching string if there is one. I just tested it by setting my Archi to "fr" and it used the French string.
String getChildElementText(Element parentElement, String childElementName, boolean normalise) {
    //Check for localised element according to the system's locale
    String code = Locale.getDefault().getLanguage();
    if(code == null) {
        code = "en"; //$NON-NLS-1$
    }

    for(Element childElement : parentElement.getChildren(childElementName, ARCHIMATE3_NAMESPACE)) {
        String lang = childElement.getAttributeValue(ATTRIBUTE_LANG, Namespace.XML_NAMESPACE);
        if(code.equals(lang)) {
            return normalise ? childElement.getTextNormalize() : childElement.getText();
        }
    }

    // Default to first element found
    Element element = parentElement.getChild(childElementName, ARCHIMATE3_NAMESPACE);
    return element == null ? null : normalise ? element.getTextNormalize() : element.getText();
}

The file I import is the ArchiSurance OpenGroup

Could you provide exact link to download it as the one I downloaded doesn't contains several languages.

This is the file:
ArchiSurance 3.1.txt

Actually...this is already implemented when importing. The importer uses the Locale language code of the host machine and chooses the matching string if there is one. I just tested it by setting my Archi to "fr" and it used the French string.
String getChildElementText(Element parentElement, String childElementName, boolean normalise) {
    //Check for localised element according to the system's locale
    String code = Locale.getDefault().getLanguage();
    if(code == null) {
        code = "en"; //$NON-NLS-1$
    }

    for(Element childElement : parentElement.getChildren(childElementName, ARCHIMATE3_NAMESPACE)) {
        String lang = childElement.getAttributeValue(ATTRIBUTE_LANG, Namespace.XML_NAMESPACE);
        if(code.equals(lang)) {
            return normalise ? childElement.getTextNormalize() : childElement.getText();
        }
    }

    // Default to first element found
    Element element = parentElement.getChild(childElementName, ARCHIMATE3_NAMESPACE);
    return element == null ? null : normalise ? element.getTextNormalize() : element.getText();
}

That is also what I thought ... but it seems that the collegue who tested it has its computer in US local ... well I think there is some --language fr  argument somewhere then

Add this to the Archi.ini file (after the -vmargs line):
-Duser.language=fr

Shall we close this one?


Read configuration options from pyproject.toml

The pre-commit hook currently ignores configuration options in pyproject.toml. This PR adds the config option to load the configuration.

@xhochy I tried this before and, to my surprise, I got the following error messages:

Hook configuration:
- repo: https://github.com/Quantco/pre-commit-mirrors-docformatter
  rev: 1.5.0
  hooks:
    - id: docformatter-conda
      args:
        - --config pyproject.toml

It seems like docformatter assumes that the arguments are files (?). If I use two distinct args for --config and pyproject.toml, it doesn't throw an error but it doesn't read the config either. Do you think that we can fix this by applying the following change to our conda hook?
entry: docformatter
args: ["-i"]


Floating point rounding

I'll preface this by saying I know there's been some discussion about this already, and by saying that my version is not the latest, so this may already be fixed. Right now, you can do:
auto j = json::parse(R"({"x":1.5})");
int x = j.at("x");

With no complaint. Is this intentional? I thought that json checks to see if precision is lost before converting to an integer.

The library behaves just like C++, meaning it interprets your code just like
auto x = 1.5;
int y = x;

We do store 1.5 as double internally, so we try to keep its precision. But if you decide to store it as an int, there is nothing JSON or the library will do about it.

Hmm, if I compile with -Wfloat-conversion will a warning be raised? If you're busy I'll test this myself and get back to you; right now I'm using your library through our build system and it's a bit convoluted for me to see what the situation is with that flag.

So I checked, and compiling with -Wfloat-conversion does not cause any warning, at least when json is included via -isystem, possibly it would be different with -I but I'm not sure. I don't really understand the rationale for this; these types of narrowing conversions happening quietly is rather widely regarded as a bad thing, that's why there's warnings and even why newer forms of initialization often disallow them. Obviously it's a breaking change but I think that version 3 should see this changed.

You can check for the type with is_number_float() and avoid conversions to integers. But whether the library should drop a warning would be something I like to discuss.

FYI: This is the currently used conversion code: https://github.com/nlohmann/json/blob/develop/src/json.hpp#L1084

Another way to approach this problem, which you may be philosophically against, is to allow more arguments/control to the parsing of the json in the first place. Whether or not to throw when you try to extract negative to unsigned, or floating point to integer, could be controlled via optional arguments to parse/serialize functions, as well as other things like Nan/Infty parsing.
I think that with sane defaults this will not affect the usability of the library (I wouldn't really care whether implicit conversion or throwing is the default, Nan probably shouldn't be), but it will make it more easily usable for more people, and the C++ approach is generally to allow as much customization as possible.

Hi, I'm disappointed that this has been closed without further discussion. I don't think that mimicking C++ behavior that itself is a more-or-less-widely-acknowledged Bad Thing (tm) that was inherited from C, is a good basis for a design decision. Silently throwing away user information is something that no good C++ library should do; it violates fail fast and makes debugging harder. There's two consistent positions here, IMHO:

Not allow conversions directly to integer at all. That means a statement like int x = j.at("x"); either doesn't compile, or (would depend on the C++ implementation details) would extract a double from the json that would then in C++ (as opposed to in library) implicitly convert to int. This way at least narrowing conversions would catch it. This is the most consistent in some sense with the spirit of json itself; json doesn't really do integers at all, it's number type is floating point, plain and simple. And you offload the problem into C++/user space, minimizing the number of choices the json library has to make.
Allow extraction as an integer, but throw if rounding is occurring. Note also that negative numbers have the same issue. Extracting a value of -1 into unsigned just silently wraps around.

Either of these approaches I think is fine. Both of them at least are no less type safe than C++. Currently, this library is more type unsafe than C++ with typical warnings on. Those warnings were added as people realized all the issues with C playing fast and loose with typing. We can't change this for backwards compatibility reasons but new libraries should strive to be more type safe than C++, not less.

I agree here that the current behaviour wrt. to integer/float precision is not nice.
But the proposed solutions of @quicknir have the following flaws:
1.) According to http://json.org the numbers in a JSON document have an unspecified precision. So it is not possible to treat all numbers as a double as this breaks large 64bit integer values. And we don't have long double on all platforms.
2.) For that to work you would have to pass in the target type as at does not know that.
The unwanted rounding also happens already at parsing the JSON document, see https://github.com/nlohmann/json/issues/647.

Yes, precisely, it is unspecified, so a conforming implementation can use whatever precision it wants. Since javascript does not even have integers, people should definitely not be storing enormous integers in json and depending on their implementation to be able to handle it. double lets us store, IIRC, a 53 bit signed integer or something like that, with no loss of precision. After that, it will fail gracefully (i.e. lose significance but be approximately correct). I don't see anything unreasonable.

You don't need to pass in the target type. If you can assign the result of at (which I assume is an instance of json) to an integer, that means that the result of at simply implements conversion operators to integer, float, etc. In the conversion to integer operator of whatever the result of at is, you can check the stored value and throw if necessary.

After that, it will fail gracefully (i.e. lose significance but be approximately correct). I don't see anything unreasonable about this state of affairs.

And that is something I would like to avoid. IMHO keeping only 53bits of an large integer is equally bad than rounding 1.5 to 1.

According to 1 we land at get_arithmetic_value later on. And the static cast in that function silences the compiler warning. So you are correct, sorry for the confusion.

And that is something I would like to avoid. IMHO keeping only 53bits of an large integer is equally bad than rounding 1.5 to 1.

I don't think this statement is true because in real programs getting a rounding error from a float to an int is so much more likely than deciding to store a bunch of data that happens to be between 53 and 64 bits. There are use cases though, e.g. nanoseconds past epoch for representing time points.
At any rate I do prefer solution 2, and it seems like your concern regarding it has been assuaged, so maybe we can try to build some consensus in that direction?

What's wrong with checking for the type of the stored number with j.is_number_float()? Then you can be sure that the number is stored as a double, and double x = j; will involve no rounding. The same with j.is_number_integer() and int64_t and j.is_number_unsigned() and uint64_t.

I have been using the code for only a week before finding out about this behaviour the hard way. In my view there is nothing wrong, but a few lines of documentation in README.md would definitely have helped. May I kindly suggest something like the attached patch?
777.txt


Adding some gitignore cleaup

Adding some folders that have been bothering me for a while

Thanks, this was bothering me too


Updated plugin documentation to be more readable.

Grammar fixes and the like.

@allcontributors please add @BCGST for docs

Thank you for the contribution.


Join Release - Edit cart - Image overlays on the verbiage

Expected behavior
The image does not cover up any of the wording on the cart page.
Actual behavior
The BBOK image is covering up the B in Business Blast Off Kit
Steps to reproduce behavior
Click to Edit my cart. And below you can see that the image is squishing the verbiage and covering it up.

Adjusted column padding

check done


Add strict option

This commit also contains code style updates, documentation improvements
and a rename to ssn-validator.
Refs: https://github.com/seegno/is-valid-ssn/issues/1

@franciscocardoso this should have been broken into multiple commits.

Missing .babelrc?


Cannot change ordering of query

Hello I cannot change the order in which my results are ordered and this is very important. changes asc to desc and vice versa does not affect the query at all.
		//grab all of the user's orders
		$tempOrderslist = Orders::query()
		->where('userUID', '=', $user->UID)
		->orderBy('orderDate', 'asc');//'desc' or 'asc' THIS CHANGES NOTHING
		->take(40)
		->get();

orderDate is formatted as follows: 2022-05-13T09:01:44.076+00:00


Removing extra space after the backslash

Fix for https://github.com/MicrosoftDocs/azure-docs/issues/34817

@shef : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off

@msrini-MSFT: I'm sorry - only the author of this article, @KumudD, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

#sign-off

Only Microsoft employees can sign off on PRs. Your PR will be routed for review.


Escape quotes in argument to redshift-vacuum

JIRA: N/A, oncall.
Overview: Turns out we weren't actually surrounding our table names with double quotes after all - Golang's os.Args requires double quotes to be escaped. (A simple way to verify this is to write a dummy program and test out how it parses your string arguments by using flags.Parse() or printing out os.Args[1:]).
Testing: Discovered as part of https://github.com/Clever/redshift-vacuum/pull/8
Roll Out:

[ ] Remember to deploy both s3-to-redshift and s3-to-redshift-fast

Assuming tested and working, LGTM. Nice find!