use set equality when checking for expression equality of commutative terms (and potentially generally use sets for commutative terms)

we already have
julia> Set([X1, X2]) == Set([X1, X2])
true

julia> Set([X1, X2]) == Set([X1, Z1])
false

Set uses hashing for quick (potentially false positive) equality check in inclusion (log(n)), followed by isequal check to avoid false positive. Thus set equalities have cost of n log(n) instead of n^2 without the use of a smart datastructure.
Initially there was a worry that Set uses ==, which would have broken its use with Symbolics (where == is used to create a symbolic equation), but that does not seem to be the case.
To avoid creating a new Set at every equality check, we should probably have it as part of the structure. E.g.
@withmetadata struct SAdd{T<:QObj} <: Symbolic{T}
    dict
    _set_precomputed
    _arguments_precomputed
end

It will take a bit more memory (not much given that the objects are not copied, only referenced), but it should speed up a lot of other code.
pinging @apkille as we had been discussing this in #40

Could you show me your source that explains how Set checks equality? I'm getting the following result:
julia> Set([dagger(X1)]) == Set([dagger(X1)])
false

julia> dagger(X1) == dagger(X1)
false

julia> isequal(dagger(X1), dagger(X1))
true

julia> X1 == X1
true

Ah, the hash changes each time dagger is called:
julia> hash(X1)
0x00671145608bd477

julia> hash(X1)
0x00671145608bd477

julia> hash(dagger(X1))
0x44e2b6a69704df53

julia> hash(dagger(X1))
0xb846fec1d33c803b

I think a hash is not defined for these objects so it defaults to memory id as hash. Defining a hash function should take care of this (and they have a pretty simple standard definition in this case along the lines of hash(arguments(expr)) (but it should be the two-argument hash)).


Youtube - Could not find JS function 'gr'

[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['https://www.youtube.com/watch?v=f0N_Ix8YUjk', '--verbose']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2015.11.24
[debug] Python version 3.5.1 - Linux-4.2.5-1-ARCH-x86_64-with-arch
[debug] exe versions: ffmpeg 2.8.4, ffprobe 2.8.4, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] f0N_Ix8YUjk: Downloading webpage
[youtube] f0N_Ix8YUjk: Downloading video info webpage
[youtube] f0N_Ix8YUjk: Extracting video information
[youtube] {43} signature length 43.43, html5 player en_US-vflnrstgx
[youtube] f0N_Ix8YUjk: Downloading player https://s.ytimg.com/yts/jsbin/player-en_US-vflnrstgx/base.js
ERROR: Signature extraction failed: Traceback (most recent call last):
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/youtube.py", line 856, in _decrypt_signature
video_id, player_url, s
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/youtube.py", line 771, in _extract_signature_function
res = self._parse_sig_js(code)
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/youtube.py", line 834, in _parse_sig_js
initial_function = jsi.extract_function(funcname)
File "/usr/lib/python3.5/site-packages/youtube_dl/jsinterp.py", line 241, in extract_function
raise ExtractorError('Could not find JS function %r' % funcname)
youtube_dl.utils.ExtractorError: Could not find JS function 'gr'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
(caused by ExtractorError("Could not find JS function 'gr'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.",)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/youtube.py", line 856, in _decrypt_signature
video_id, player_url, s
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/youtube.py", line 771, in _extract_signature_function
res = self._parse_sig_js(code)
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/youtube.py", line 834, in _parse_sig_js
initial_function = jsi.extract_function(funcname)
File "/usr/lib/python3.5/site-packages/youtube_dl/jsinterp.py", line 241, in extract_function
raise ExtractorError('Could not find JS function %r' % funcname)
youtube_dl.utils.ExtractorError: Could not find JS function 'gr'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/youtube.py", line 856, in _decrypt_signature
video_id, player_url, s
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/youtube.py", line 771, in _extract_signature_function
res = self._parse_sig_js(code)
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/youtube.py", line 834, in _parse_sig_js
initial_function = jsi.extract_function(funcname)
File "/usr/lib/python3.5/site-packages/youtube_dl/jsinterp.py", line 241, in extract_function
raise ExtractorError('Could not find JS function %r' % funcname)
youtube_dl.utils.ExtractorError: Could not find JS function 'gr'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 663, in extract_info
ie_result = ie.extract(url)
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/common.py", line 290, in extract
return self._real_extract(url)
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/youtube.py", line 1410, in _real_extract
encrypted_sig, video_id, player_url, age_gate)
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/youtube.py", line 866, in _decrypt_signature
'Signature extraction failed: ' + tb, cause=e)
youtube_dl.utils.ExtractorError: Signature extraction failed: Traceback (most recent call last):
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/youtube.py", line 856, in _decrypt_signature
video_id, player_url, s
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/youtube.py", line 771, in _extract_signature_function
res = self._parse_sig_js(code)
File "/usr/lib/python3.5/site-packages/youtube_dl/extractor/youtube.py", line 834, in _parse_sig_js
initial_function = jsi.extract_function(funcname)
File "/usr/lib/python3.5/site-packages/youtube_dl/jsinterp.py", line 241, in extract_function
raise ExtractorError('Could not find JS function %r' % funcname)
youtube_dl.utils.ExtractorError: Could not find JS function 'gr'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
(caused by ExtractorError("Could not find JS function 'gr'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.",)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Your youtube-dl version is old. If you want to use an ArchLinux package that isn't old you could use youtube-dl-git. Otherwise you can manually update it or use pip

You are using an outdated version of youtube-dl. Read our FAQ if you have troubles updating.


Remove ramdisk limitation from limitations.md

Once https://github.com/kata-containers/runtime/pull/412 lands, we can remove the docker ramdisk limitation:

https://github.com/kata-containers/documentation/blob/master/Limitations.md#docker-ramdisk-not-supported

This is a good first issue as it's simply removing some text from a document ;)

@jodh-intel Lets gate this on a test being added first to check if running using a RAMDISK is supported. I am not sure if we need to add some more logic in the runtime for this besides just supporting the flag.

Agreed - this should be blocked on https://github.com/kata-containers/tests/issues/429.


cogs: Run the Broadcaster only if necessary, i.e. if tweeting is enabled

The Broadcaster uses a ridiculous amount of CPU, and if tweeting's disabled, that's just a waste since nothing uses the messages.

That part of the code doesn't get tested in the automatic tests, but it has been running on the production control node (part-time) since creating the PR and seems fine.


XRay has problems recording subsegments when  await keyword is used

I have a method with a code similar to the code below were I used await method when calling pool.query() which is a pg pool method. The subsegment that is after the pool.query() never gets recorded but the code execute correctly. It returns that actual rows without any problem.
import {Pool} from 'pg';
import format from "pg-format"

const poolConfig = {
	database: <DATABASE>
host: <HOST>,
port: <PORT>,
user: <USER>,
password: <PASSWORD>
}

pool = new Pool(poolConfig)

export const getDynamicLinkStats = async () => {
    return await AWSXRay.captureAsyncFunc('Query-creation-and-postgres-call', async
        function(subsegment){
            const textQuery = <QUERY>;

            subsegment.addAnnotation('test', '1');

            try {
                const { rows } = await pool.query(textQuery);
                subsegment.addAnnotation('test2', '2');

                return rows;
            } catch(error) {
                return [];
            } finally {
                subsegment.close();
            }
    });
};

Hi @wilson-burea,
Thank you for following up on GitHub following our external conversation. I'll include my current findings for public visibility.

This issue is more with Lambda runtimes than with X-Ray. It is a known issue wherein the X-Ray segment generated by the Lambda worker is sent before the Lambda finishes execution. I believe this is because the Lambda runtime waits for the event loop to be empty before terminating by default, which means it will process all callbacks/unresolved promises before terminating. The X-Ray segment is sent before this, meaning it cannot pick up changes in such callbacks. I've cut a ticket to Lambda to investigate this and will follow up on this ticket if it's flipped back to me.

I am investigating this issue with the Lambda and will update if they come back with anything.

In this situation you may need to use promises on the back-end and async await on the calling code. Have you tried wrapping captureAsyncFunc in a promise? Then you can use basic promise syntax to call the pool.query method (e.g. pool.query().then(...)). The caller of the getDynamicLinkStats method can use async await pattern. There's no need to use await in the back-end/implementation code.
For example, here is a captureAsyncFunc wrapped in a promise in some back-end class:
import AWSXRay = require('aws-xray-sdk-core');
export class TestAsync {
    static mockAsync(): Promise<boolean> {
        return new Promise((resolve, reject) => {
            AWSXRay.captureAsyncFunc('test-async-capture', (subsegment: AWSXRay.Subsegment | undefined) => {
                console.log('ready to capture...');
                simAsync().then((result) => {
                    console.log('capture complete...');
                    subsegment?.addMetadata('critical-event', {
                        key1: 'value1',
                        key2: 'value2'
                    })
                    subsegment?.close();
                    resolve(true);
                })
            })

            function simAsync(): Promise<boolean> {
                return new Promise((resolve, reject) => {
                    setTimeout(() => {
                      resolve(true);
                    }, 1500);
                })
            }
        })
    }
}

The implementation above executes the captureAsyncFunc properly.
I only care about the benefits of async await in the main handler code. There it is convenient to use a synchronous pattern and return the response when complete.
import AWSXRay = require('aws-xray-sdk-core');
import { TestAsync } from './lib/test-async';
const AWS = AWSXRay.captureAWS(require('aws-sdk'));

export const handler = async (event: any) => {
    console.log('received event :: ', event);
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!')
    };

   // call the back-end method which will execute and complete the
  // AWSXRay.captureFuncAsync call before returning
    await TestAsync.mockAsync();

    return response;
}

Thank you for the workaround @AdonousTech, I tested it in Lambda and verified the trace contains the expected data. @wilson-burea Have you considered adding a promise wrapper similar to the one Matt proposed around your third party async calls?

Hi @wilson-burea,
Are you still experiencing this issue? I tried this sample code, although I was getting ECONNREFUSED errors since I didn't have a postgres database set up, so I used a simulated async query function instead. I'm using node 12.x and aws-xray-sdk 3.0.0 in my example.
var AWSXRay = require('aws-xray-sdk-core');
const pg = require('pg');

var pool = new pg.Pool();

exports.handler = async (event, context) => {
    return getDynamicLinkStats();
};

const getDynamicLinkStats = async () => {
    return await AWSXRay.captureAsyncFunc('Query-creation-and-postgres-call',
        async function(subsegment) {
            const textQuery = '';

            subsegment.addAnnotation('test', '1');

            try {
                // const { rows } = await pool.query(textQuery);  // giving me errors
                const rows = await fakeHandleQuery(textQuery);
                subsegment.addAnnotation('test2', '2');
                subsegment.close();
                return rows;
            } catch(error) {
                console.log('got error: ', error);
                subsegment.close(error);
                return [];
            }
    });
};

async function fakeHandleQuery(event) {
  let promise = new Promise((resolve, reject) => {
    setTimeout(() => resolve("done!"), 1000);
  });

  let result = await promise;
  return result;
}

It's possible that using cls-hooked helped resolve this issue with async/await. Please let me know if you're still encountering this issue.


[Suggestion] URL Tests can optionally check for presence of a specified string

In order to make the URL tests more helpful for ensuring a service is online, it could optionally check for the presence of a string that if the URL works, but the string is not found, it will still consider the test as failed. It could perhaps be a different status to differentiate between the URL not loading, and the string not having been found.
Another tool we use has something similar, and I have attached a screenshot. This is a tool called Pingdom which regularly checks websites, and one of the optional features is to check for a string when it looks at the response from the page.

Interesting idea

It's done on my fork. Pending a pull request but not sure how to handle this with my previous pull request. Should I branch from my branch or start from master?

Awesome! Ideally, start from master, but if you want to branch from your roles branch that works as well but I won't be able to merge it until the other branch is, then I imagine there we be merge conflicts


can't create folder,  " nix_qt5/bin": File exists

Issue description
On nixpkgs-unstable, if you call nix-shell -A wireshark ~/nixpkgs twice, then you should see
mkdir: impossible de créer le répertoire « /home/teto/wireshark/__nix_qt5__/bin »: File exists (aka "can't create directory")
Fix might have to do with pkgs/development/libraries/qt-5/qtbase-setup-hook.sh"
Technical details
nixos-version=18.03.git.b20fbd0 (Impala)
nix version: nix-env (Nix) 1.11.15
Nixpkgs version: "18.03.git.b20fbd05e3"
sandboxing disabled

Yeah, that is quite annoying.

I've tried running a preUnpack hook to remove the folder but the error appears before the hook is run :'(


A few questions about DBResult

Hey there,
I had a few questions about DBResult.
It's unfortunate that it's not an actual Result, because then you don't get the nice combinator methods. I was working on some code with @petehunt today, and I was assuming we could use unwrap_or(), for example, but that doesn't exist.
Is there some specific reason why it's not DbResult<Option<T>, E>, for example? that'd still get you the Some/None distinction, yet inherit all the goodies. I haven't spent a ton of time with this library yet though, so I might be missing something important!

There is no good reason, other than my own ignorance when I was learning rust for the first time while writing this library!  I've been wanting to see this improved for a while, but haven't prioritized it.  Now that I know it's causing pain for others I'm much more incentivized to get it into a better place, and will probably have time in the next couple days to patch a few things up in this library (really also want to implement rocksdb prefix seek functionality), but if you want it asap feel free to send a PR!

Great! I don't think it's a huge deal right this moment, but I might send you a PR tomorrow if I have some time :) you know the codebase better than I.

+1 for prefix seek! :)

Oh, and for reference: http://doc.rust-lang.org/book/error-handling.html

https://github.com/spacejam/rust-rocksdb/pull/32


Add callbacks.cr

Callbacks is an expressive callbacks module.

Noticed a typo: childrens -> children.


firehose connection loadbalance

Fixes https://github.com/graphprotocol/graph-node/issues/3879

Oh and lets bump the default to 20.


Add links to specific bids-example in the specification

I just realized that the EEG page links to some specific examples from the BIDS example repo:
https://bids-specification.readthedocs.io/en/stable/04-modality-specific-files/03-electroencephalography.html
I wonder if it would not be a good thing to generalize to other modalities too.
Any thoughts on this?

I think that's a good idea. For some modalities it'll be easier to find a good place (e.g., separate pages like ieeg) for these links than for others (MRI modalities are all on a big page), but should all be doable. Some modalities have huge amounts of examples (MRI) so it'll be a good opportunity to identify the most helpful 3 and link to them.

OK will start with the easier ones...
And will most likely getting started on this when tackling the MRI page... :stuck_out_tongue_closed_eyes:


Next event text unreadable on second monitor

When the "next event" menu bar item is visible the item shows no text (or transparent text) on my second monitor
Main monitor (blurred the text)

Secondary monitor

That's a known issue. No plans to fix it at the moment.

#187


Improve Android build

Edit: Keeping just the updated, consolidated text. If this PR gets merged, I can update the docs.
Overall note: All this proposal is based on the assumption that the Android build is only used for generating the export templates as reliably as possible. Moreover, I believe that makes the Android build handier. If in some future tools-enabled Android builds were needed because of a widespread desire of using Godot under Android netbooks or so, some things would need to be changed.
Android/build component versions

Upgrade Android plugin for Gradle to 2.1.0
Downgrade NDK platform to 14 to match minSdkVersion.

Smarter build and packaging of the Godot export template
SCons phase
When the SCons phase of the Android build is done the generated .so file is moved to the directory relevant for the Gradle phase to pick it for the combination of arch and build type (release or debug). For instance, platform/android/java/libs/debug/armeabi-v7a.
Moving is performed instead of copying or symlinking to avoid polluting the bin directory with intermediate files, because the final binaries for Android are the APKs. The only scenario (and is a theoretical one) in which the .so would be kept at bin is that of building for an arch unknown to Android. And in that case, the SCons script would print a warning message.
Notes:

ARMv7 both with or without NEON will be copied to the same armeabi-v7a dir (the newest wins).
Both debug and debug_release targets will get copied to the same debug dir (the newest wins). Release is unambiguous.

Gradle phase
Because of all that is done at the SCons level, Gradle will be able to generate both debug and release APKs containing libraries for x86, ARMv6 and/or ARMv7. In the case of the debug APK it can contain the handy release_debug or a full debug build if needed.
Furthermore, Gradle will generate the export template APKs with their correct naming (android_debug.apk and android_release.apk) and at the correct location at the top-level bin directory.
Also the Gradle script disables explicitly singing and zip-aligning of the APKs to save time since those operations must be done at export time then the final game APK is generated.

If people find this work useful I'll start working on the TO-DOs (especially docs) ASAP.

Does this supersedes (or is related) to #4729? @volzhs might want to have a look.

What I did is supporting target sdk 23.
Some of @RandomShaper's changes was done during I fixing the issue.

Yes, I think our PRs overlap in tweaking certain version numbers and API levels. Nonetheless, I think they could be nicely merged
@volzhs please tell me if you could take advantage of the last Android plugin for Gradle (2.1) so we both use the same.
On merging I think my 'checkReleaseBuilds false' should disappear in favor of your better handling of lints.

I just merged @volzhs's PR, so as expected there are now merge conflicts. Could you rebase yours on top of the current master branch?

@RandomShaper I'm not sure what kind of advantage I can take with gradle 2.1.
But I compiled with supporting android api 23 and gradle 2.1 and tested it api 19 and 23 phone.
It works fine. :)

Please copy ARMv6 one too, then I will be able to test GLES on some of 3 year old devices :)
(p.s. Android 4.0)

3 years doesn't seem too old to exclude them. Could you name one device?
I'm curious about OpenGL ES 2.0 powered ARMv6 devices (thus with VFP),

This is specialized device, I currently did not integrate hardware GL
libraries there yet,
but it does have SGX5 hardware in SoC.
As for example device I think the most common is RaspberryPi,
as I see, but I think there are others still used.
On Thu, Jun 9, 2016 at 2:34 AM, Pedro J. Estébanez<EMAIL_ADDRESS>
wrote:

3 years doesn't seem too old to exclude them. Could you name one device?
I'm curious about OpenGL ES 2.0 powered ARMv6 devices (thus with VFP),
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/pull/5077#issuecomment-224762663,
or mute the thread
https://github.com/notifications/unsubscribe/AAAX0_wccLrgpF7FrgpN130I_5iOL5zIks5qJ1GSgaJpZM4IvbuA
.

Actually there was a lot of devices armv6 + gles2 made in 2011, with some
made even in 2013,
but I have what I have, it is 1.2GHz single-core armv6 SoC, 512M RAM, used
as kind of street set top box
now retargeted for some other usage.
Not that it is very important, it just have ported Android 4.0 there (was
2.3 originally),
so it would be fun to test if Godot will run there.
On Thu, Jun 9, 2016 at 3:27 AM, Sergey Lapin<EMAIL_ADDRESS>wrote:

This is specialized device, I currently did not integrate hardware GL
libraries there yet,
but it does have SGX5 hardware in SoC.
As for example device I think the most common is RaspberryPi,
as I see, but I think there are others still used.
On Thu, Jun 9, 2016 at 2:34 AM, Pedro J. Estébanez <
<EMAIL_ADDRESS>wrote:

3 years doesn't seem too old to exclude them. Could you name one device?
I'm curious about OpenGL ES 2.0 powered ARMv6 devices (thus with VFP),
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/pull/5077#issuecomment-224762663,
or mute the thread
https://github.com/notifications/unsubscribe/AAAX0_wccLrgpF7FrgpN130I_5iOL5zIks5qJ1GSgaJpZM4IvbuA
.

Well, unless somebody founds errors (technical or logical) about all these, I think I've completed this task.

@RandomShaper Would you be able to squash together all commits, or at least group them in related chunks to keep only a few of them? You have a pretty good practice regarding making small and well described commits, but 18 commits in the end for a relatively small overall patch is a bit too much compared to other commits in this repo: https://patch-diff.githubusercontent.com/raw/godotengine/godot/pull/5077.patch :)

I've added a couple of ignores corresponding to directories the old Android Eclipse-based dev tools generated.
And I've put everything together in a single commit.

Thanks!
Typically a git log contains a title (first line), and a description (all the contents that comes after a newline), so it could be:
Make Android build smarter (SCons + Gradle)

With an intricate system of tubes and heat exchangers, this commit achieves a higher
efficiency in the frying of French (or freedom) fries, using the waste heat as an external
power source to trigger nightly builds of Godot binaries.

Have a look now. I think I've almost got the workflow. :)

That's perfect, thanks! :)

@RandomShaper I have a problem building templates for android. When I do changes to the c++ side, they're not reflected when I run the resulting app.
Even though scons compiles the libgodot_android.so and it seems allright from what I can tell... :/
Could that be related to this PR?
(Changes to the Java code work as expected btw)

Yeah. Some people is having issues.
Please tell me the complete command you used for building so I can check
whether I missed some case.
Anyway, I'm on my honeymoon so I won't be able to do it before a few days.
El 12/7/2016 9:22 a. m., "Andreas Haas"<EMAIL_ADDRESS>escribió:

@RandomShaper https://github.com/RandomShaper I have a problem building
templates for android. When I do changes to the c++ side, they're not
reflected when I run the resulting app.
Even though scons compiles the libgodot_android.so and it seems allright
from what I can tell... :/
Could that be related to this PR?
(Changes to the Java code work as expected btw)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/pull/5077#issuecomment-232062888,
or mute the thread
https://github.com/notifications/unsubscribe/ALQCtuQjPp2HwG0De41iQpiToyaludtzks5qU6M8gaJpZM4IvbuA
.


Could not read block error in pgbench -s 300 -i

$ ./target/release/zenith pg start main
Starting new postgres main on timeline d8c0d244bb09847bcfd4a46b6cacafcc ...
Extracting base backup to create postgres instance: path=/data/zenith-data/pgdatadirs/tenants/b435cc0bbb411e9cd022744df5ec69f7/main port=55432
Starting postgres node at 'host=<IP_ADDRESS> port=55432 user=zenith_admin dbname=postgres'
~/git-sandbox/neon (lsm-mapping2)$ PGPORT=55432 PGUSER=zenith_admin ~/pgsql.master/bin/pgbench -s300 -i  postgres
dropping old tables...
NOTICE:  table "pgbench_accounts" does not exist, skipping
NOTICE:  table "pgbench_branches" does not exist, skipping
NOTICE:  table "pgbench_history" does not exist, skipping
NOTICE:  table "pgbench_tellers" does not exist, skipping
creating tables...
generating data (client-side)...
30000000 of 30000000 tuples (100%) done (elapsed 25.98 s, remaining 0.00 s)4 s)
vacuuming...
pgbench: fatal: query failed: ERROR:  could not read block 491803 in rel 1663/12990/16396.0 from page server at lsn 0/CE11C138
DETAIL:  page server returned error: WAL redo process closed its stderr unexpectedly
CONTEXT:  while scanning block 491803 of relation "public.pgbench_accounts"
pgbench: query was: vacuum analyze pgbench_accounts

In the pageserver log:
2022-05-03T09:42:27.899035Z ERROR pagestream{timeline=d8c0d244bb09847bcfd4a46b6cacafcc tenant=b435cc0bbb411e9cd022744df5ec69f7}:get_page{rel=1663/12990/16396 blkno=491803 req_lsn=0/CE163A90}
: wal-redo-postgres: 2022-05-03 12:42:27.899 EEST [3160036] FATAL:  Inmem storage overflow
2022-05-03 12:42:27.899 EEST [3160036] CONTEXT:  WAL redo at 0/CE0FE7D0 for Heap2/VISIBLE: cutoff xid 0 flags 0x03

2022-05-03T09:42:27.899044Z ERROR pagestream{timeline=d8c0d244bb09847bcfd4a46b6cacafcc tenant=b435cc0bbb411e9cd022744df5ec69f7}:get_page{rel=1663/12990/16396 blkno=491803 req_lsn=0/CE163A90}
: wal-redo-postgres: ---------------------------------------
seccomp: bad syscall 11
---------------------------------------

2022-05-03T09:42:27.899777Z ERROR pagestream{timeline=d8c0d244bb09847bcfd4a46b6cacafcc tenant=b435cc0bbb411e9cd022744df5ec69f7}:get_page{rel=1663/12990/16396 blkno=491803 req_lsn=0/CE163A90}
: error applying 2 WAL records to reconstruct page image at LSN 0/CE163B78
2022-05-03T09:42:27.900544Z ERROR pagestream{timeline=d8c0d244bb09847bcfd4a46b6cacafcc tenant=b435cc0bbb411e9cd022744df5ec69f7}:get_page{rel=1663/12990/16396 blkno=491803 req_lsn=0/CE163A90}
: wal-redo-postgres exited with code exit status: 1
2022-05-03T09:42:27.900624Z ERROR pagestream{timeline=d8c0d244bb09847bcfd4a46b6cacafcc tenant=b435cc0bbb411e9cd022744df5ec69f7}: error reading relation or page version: WAL redo process clos
ed its stderr unexpectedly

Here's what happens:

Redoing the Heap2/VISIBLE record calls XLogRecordPageWithFreeSpace(rnode, blkno, space); (see heap_xlog_visible function), which calls XLogReadBufferExtended
XLogReadBufferExtended does this:

	lastblock = smgrnblocks(smgr, forknum);

	if (blkno < lastblock)
	{
		/* page exists in file */
		buffer = ReadBufferWithoutRelcache(rnode, forknum, blkno,
										   mode, NULL);
	}
	else
	{
		/* hm, page doesn't exist in file */
		if (mode == RBM_NORMAL)
		{
			log_invalid_page(rnode, forknum, blkno, false);
			return InvalidBuffer;
		}
		if (mode == RBM_NORMAL_NO_LOG)
			return InvalidBuffer;
		/* OK to extend the file */
		/* we do this in recovery only - no rel-extension lock needed */
		Assert(InRecovery);
		buffer = InvalidBuffer;
		do
		{
			if (buffer != InvalidBuffer)
			{
				if (mode == RBM_ZERO_AND_LOCK || mode == RBM_ZERO_AND_CLEANUP_LOCK)
					LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
				ReleaseBuffer(buffer);
			}
			buffer = ReadBufferWithoutRelcache(rnode, forknum,
											   P_NEW, mode, NULL);
		}
		while (BufferGetBlockNumber(buffer) < blkno);
		/* Handle the corner case that P_NEW returns non-consecutive pages */
		if (BufferGetBlockNumber(buffer) != blkno)
		{
			if (mode == RBM_ZERO_AND_LOCK || mode == RBM_ZERO_AND_CLEANUP_LOCK)
				LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
			ReleaseBuffer(buffer);
			buffer = ReadBufferWithoutRelcache(rnode, forknum, blkno,
											   mode, NULL);
		}
	}

So in a nutshell, it calls ReadBufferWithoutRelcache(P_NEW) in a loop, to extend the relation up to the modified block. If the block number is larger than MAX_PAGES in inmem_smgr.c, you get the error.
This started to happen with commit 62449d60683e93f8f54b5c79fdcb89b74853d695, which reduced MAX_PAGES from 128 to 32. But the bug is not new, it would've happened with a larger pgbench scale even before that.


misssing Chinese translation docs: content/en/blog/_posts/2022-08-25-pod-security/index.md

This is a Feature Report
Problem:
misssing Chinese translation docs:
content/en/blog/_posts/2022-08-25-pod-security/index.md
URL： https://kubernetes.io/blog/2022/08/25/pod-security-admission-stable/
Proposed Solution:
add Chinese translation docs in website Kubernetes Blog
Comments
/language zh
/assign

/accept

/triage accepted

Are you still working on this? @sarazqy
This issue has been open for a long time.


Activating Open Collective

Hi, I'm making updates for Open Collective. Either you or a supporter signed this repo up for Open Collective. This pull request adds backers and sponsors from your Open Collective https://opencollective.com/svgr ❤
It adds two badges at the top to show the latest number of backers and sponsors. It also adds placeholders so that the avatar/logo of new backers/sponsors can automatically be shown without having to update your README.md. [more info]. See how it looks on this repo.
We have also added a postinstall script to let people know after npm|yarn install that you are welcoming donations (optional). [More info]
You can also add a "Donate" button to your website and automatically show your backers and sponsors there with our widgets. Have a look here: https://opencollective.com/widgets
P.S: As with any pull request, feel free to comment or suggest changes. The only thing "required" are the placeholders on the README because we believe it's important to acknowledge the people in your community that are contributing (financially or with code!).
Thank you for your great contribution to the open source community. You are awesome! 🙌
And welcome to the open collective community! 😊
Come chat with us in the #opensource channel on https://slack.opencollective.com - great place to ask questions and share best practices with other open source sustainers!

I left in your "Donate to our Collective" button at the top, but I am not sure if you want to keep it with the backer and sponsor buttons and badges.


Long term back up for Azure PostgreSQL?

Hello,
In the postgreSQL backup document, we know for PostgreSQL build in backup retention time, the longest time is 35 days.
Do you have any plan to provider the strategy for long term backup?  Maybe more than half a year, like this.
Thanks

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 9664ac97-ad76-df45-3833-c927b098ab95
Version Independent ID: 5f7c02b5-5454-509c-5681-8a4c1cdbb62b
Content: Backup and restore - Azure Database for PostgreSQL - Single Server
Content Source: articles/postgresql/concepts-backup.md
Service: postgresql
GitHub Login: @rachel-msft
Microsoft Alias: raagyema

@yqxiaxia We are checking this and will get back to you.

@yqxiaxia For more retention period you can use the Pg_dump to create and keep the dump files.
For giving the your feedback to Product Team you can post your feedback here :
https://feedback.azure.com/forums/597976-azure-database-for-postgresql
They will analyze the feedback and provide direct response.

@yqxiaxia Please let us know if you need any further help or we will close this thread by EOD.

Hi,
Get your information, thanks, please close it.
BRs,
Xia
On Wed, 20 May 2020 at 00:34, NavtejSaini-MSFT<EMAIL_ADDRESS>wrote:

@yqxiaxia https://github.com/yqxiaxia Please let us know if you need
any further help or we will close this thread by EOD.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-docs/issues/54843#issuecomment-630937020,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHEMWLSYH3XM6T4IPHRQIYLRSKYKXANCNFSM4NASAN4Q
.

--
Yuqing Xia
Consultant
Email<EMAIL_ADDRESS>Telephone<PHONE_NUMBER>2
[image: ThoughtWorks]
http://www.thoughtworks.com/?utm_campaign=yuqing-xia-signature&utm_medium=email&utm_source=thoughtworks-email-signature-generator


Fix internal string mode checkbox

CR gets converted to LF when checked (at least on iOS)

Also doesn't work in Chrome OS X

Still broken on iOS since input event doesn't fire on checkboxes or radio buttons. See https://caniuse.com/#feat=input-event (number 4), and webkit bug https://bugs.webkit.org/show_bug.cgi?id=149398

Finally fixed in f6524f7


[BUG] .AutoRefresh() not working as expected.

Please have a look at my SO question:
https://stackoverflow.com/questions/60552423/reactiveui-iobservable-transform-does-not-forward-notifications
Describe the bug
It seems like
sl2.Connect()
               .AutoRefresh(x => x.Bar)
                .Transform(x => x.Bar.Baz)

is not working than expected.
Steps To Reproduce
See full code at:
https://github.com/BerndGit/ReactivUI_Test_GH
Output vs. expected behavior
    ===  ===
    CHANGE from Subscribe
    === Start ===
    sl2:
    Hello
    World
    Out
    There
    transformed:
    Hello
    World
    Out
    There
    === Send to Space ===
    sl2:
    Hello
    Space
    Out
    There
    transformed:
    Hello
    World      <--- I would have hoped to have 'Space' here
    Out
    There
    === Add !!!! ===
    CHANGE from Event Handler   <-- I would have hoped that event handlers are triggered at World->Space
    CHANGE from Subscribe       <-- I would have hoped that event handlers are triggered at World->Space
    sl2:
    Hello
    Space
    Out
    There
    !!!!!!
    transformed:
    Hello
    World    <--- I would have hoped to have 'Space' here
    Out
    There
    !!!!!!
    ===  ===
    Finish

Environment

OS:       Windows 10

Additional context

CLOSED.  Problem was on user (my side).   needed to use  .Transform(x => x.Bar.Baz,true)


Disables push to dockerhub

Since we're still waiting on dockerhub credentials, this will unblock the github binary
releases for now.

I now have the docker hub credentials, so I'll quickly get a PR in for adding the secure creds into the .travis.yaml
https://docs.travis-ci.com/user/environment-variables/#Defining-encrypted-variables-in-.travis.yml

Docker creds are now set so we can close this PR.


Basic API that collects data from power to fly website

I have created a basic flask api. As of now I have only scraped data from power to fly website though I am planning to add couple more website here. Also, I have added readme so it will be easy for you all to access the api.
Can you all review it?
Partially solves #1

@anjalisoni3655
For now I will go with Heroku but later if time permits I will give it a go with Linode. Guess we have a sponsor prize for best use of it and ofcourse the free credits 🙈

@anjalisoni3655
For now I will go with Heroku but later if time permits I will give it a go with Linode. Guess we have a sponsor prize for best use of it and ofcourse the free credits 🙈

Yah, definitely.


ID example of service usage should use an int

System Health details
n/a
Checklist

[X] I have enabled debug logging for my installation.
[X] I have filled out the issue template to the best of my ability.
[X] This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
[X] This issue is not a duplicate issue of currently previous issues..

Describe the issue
In the example parameters for the service, the example for the ID field is: spool_123. But the IDs in spoolman are just numbers. So, better put 123 as example.
Reproduction steps
use the service
Debug logs
none

Diagnostics dump
No response

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


Please add support for arm/v7 to run on Raspberry Pi

Is your feature request related to a problem?
Would love to run this on raspberry pi! However getting the following while running the docker command on the pi:
latest: Pulling from neosmemo/memos docker: no matching manifest for linux/arm/v7 in the manifest list entries.
Describe the solution you'd like
Build images that support arm.
Additional context
No response

I don't know why there aren't prebuilds. I have a feeling arm32 is supported less and less in favor of 64 flavors :/ Good news is this one is easily crossbuilt and it doesn't look like any 32 bit incompatible packages are used. At least I didn't note any limitations during (very short) usage on a pi 2.
I roughly followed https://www.docker.com/blog/multi-arch-images/ for docker buildx in the cloned git repository folder, preceeded by a sudo apt install qemu qemu-user-static for the last two versions. Takes a bit but worked so far.
If you have a linux machine or VM, it's really just a couple of lines to paste. Didn't do the pushing to docker hub part but saved to a tar instead (docker save [ID] > memos.tar), transferred to the pi and loaded it (docker load < memos.tar).
Hope that helps!

I don't know why there aren't ...

did this for a couple of my own images a while ago,
setup + publishing is basically this:
install https://github.com/docker/buildx
# containers needed for various architectures
docker run -it --rm --privileged tonistiigi/binfmt --install all

docker buildx create --name main
docker buildx use main
docker buildx inspect --bootstrap

docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t mgschwandtner/memos-unofficial-testing:0.8.3 --push .

docker buildx rm

(basically the same as in the blog post)
published v0.8.3 on docker hub for testing purposes
since my pi apparently just broke, i sadly can't test it ...

Wahou, super to find a ARM (or multi-arch) compatifiblity.
Personaly I have an issue using @m-gschwandtner image.
=> ERROR pushing mgschwandtner/memos-unofficial-testing:0.8.3 with docker                                                                                1.1s

ERROR: failed to solve: server message: insufficient_scope: authorization failed
it is a system error or a Docker.com ?
Thanks

If you need arm/v7, I can push my 0.9.1 build to docker hub. Runs fine on a Pi2B.

Maybe dont know how to do it well...
My console output :
---
profile
mode: prod
port: 5230
dsn: /var/opt/memos/memos_prod.db
version: 0.9.1
---

███╗   ███╗███████╗███╗   ███╗ ██████╗ ███████╗
████╗ ████║██╔════╝████╗ ████║██╔═══██╗██╔════╝
██╔████╔██║█████╗  ██╔████╔██║██║   ██║███████╗
██║╚██╔╝██║██╔══╝  ██║╚██╔╝██║██║   ██║╚════██║
██║ ╚═╝ ██║███████╗██║ ╚═╝ ██║╚██████╔╝███████║
╚═╝     ╚═╝╚══════╝╚═╝     ╚═╝ ╚═════╝ ╚══════╝

Version 0.9.1 has started at :5230
error: no such table: activity
failed to create activity
github.com/usememos/memos/server.(*Server).Run
	/backend-build/server/server.go:103
main.run
	/backend-build/bin/server/main.go:48
main.execute
	/backend-build/bin/server/main.go:65
main.main
	/backend-build/bin/server/main.go:74
runtime.main
	/usr/local/go/src/runtime/proc.go:250
runtime.goexit
	/usr/local/go/src/runtime/asm_arm.s:831

PS : I discover buildx, thanks

Hm. What dir are you mapping to the database folder inside the container? Is it empty/is the database it contains valid and does the user you’re running the container as have the all access permissions? I‘d try running as default user with a completely empty folder mapped to the db path and try to work it out from there ;)

I dont mapped anything,
just following short notice on hub.docker.com ;)

I run as root

docker run -v memos-db raisinbear/memos-unofficial-arm

still learning docker (I will search how to mapping works)
... thanks

Ah, maybe there's the issue. I'm refering to the argument of the -v part here (taken from the repository front page):
docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:latest
The part before the : is the directory on your host file system you want to use to persistently store the database. So this "maps" part of the file system structure visible to you inside the container. By doing so, your database will not get erased like the rest of the local data inside the container if you remove it, for e.g. updating to a newer version. The other part is specific to the file system hierarchy inside the container and for memos needs to be /var/opt/memos.

The -v option, mapping my ~/.memos/ directory to the docker...
... dont works : less or more, same error !
I check permissions, all is fine.
I will try again in a few days
Tanks again

@bonnebulle please build with release branch instead of main.

Thanks for the remark @boojack, that's on me. I didn't switch branches before building. Just rebuilt and pushed images based on the 0.9.1-release. However, I'm not sure that is @bonnebulle's issue, since the previous (main-)build runs perfectly fine on my raspberry. I don't know what their architecture is, so I also pushed an arm/v6 image. I suppose the error would be different for an architecture mismatch, though.

Thanks @boojack and @raisinbear ...
Like edited up, I was not running buildx ... so Memos cant works. Yes, I say, am learning :))

I didn't switch branches before building. Just rebuilt and pushed images based on the 0.9.1-release.

I just re.do the process for the 0.10.2 version (switching to the right branch) : it's works !!
Thanks @raisinbear and @boojack  for the work :)

Glad to hear @bonnebulle! :)

使用当前最新镜像 raisinbear/memos-unofficial-arm:latest (0.12.2) 在树莓派3b上部署后，显示的发布时间不对。
首页显示为1年后，详情页显示为 2024/07/24 00:16:48
使用 neosmemo/memos 镜像在linux服务器上部署正常。

使用当前最新镜像 raisinbear/memos-unofficial-arm:latest (0.12.2) 在树莓派3b上部署后，显示的发布时间不对。 首页显示为1年后，详情页显示为 2024/07/24 00:16:48
使用 neosmemo/memos 镜像在linux服务器上部署正常。

To be honest, I'm not even using an armv7 device anymore. I just kept up pushing the recent releases either way. Just for testing, I booted an old pi3b a
nd for me it seems to work:

I remember there was an issue I had to fix that screwed with timezones in docker on raspbian a while ago, something to do with libseccomp if I'm not mistaken. I don't know if that still exists. Other than that, I'm sorry I have no idea what could be going on if system time zone is correct and the problem also exists with a fresh database 😐

@joywqy I found that the latest version of memos v0.13.0 official image has started to support armv7, I will try again tonight.


Add Support for Notify

Could someone please add it, as its a required by paysafecard.

Please explain this "function"

Paysafecards sends a callback to the okUrl, it should execute getSerialNumbers and if it aint captured, executeDebit. This gateway is missing support, due to the lack of support of callbacks by omnipay until recently.

Use "completePurchase" also for okUrl. This should work.


Package request: magika

Project description
Magika is a tool to detect common file content types, using deep learning.
Metadata

homepage URL: https://google.github.io/magika/
source URL: https://github.com/google/magika
license: apache-2.0
platforms: Linux

Add a :+1: reaction to issues you find important.

https://github.com/NixOS/nixpkgs/pull/291462

Oh, I did not notice this issue was created. Lucky coincidence
Thanks for linking PR and issue together

#91462 is now merged (thank you!), I think this can be closed?


Bug: VectorTile and LayerStyle classes has a memory leak.

We can this fix by transitioning to std::unique_ptr.

Memory leak was fixed.


The mark is successful: the task fails. If the data is processed correctly in the background, it takes a long time to rerun, and it is good to mark the success directly.(标记成功：任务失败，如果后台把数据处理正确了，重跑又需要很长时间，直接标记成功就好)

I can fix it, do you have any plans about it

Close by #4267, since Force Task Success has introduced in dev branch.


Linked packages create pnpm-lock.yaml conflicts in monorepos

Affected Packages
I'm not sure 😬 I am not a CI expert -- this is as much a cry for help as it is a bug report!
Problem
I have a monorepo with two packages being managed by pnpm. package-1 and package-2 are linked, and package-2 depends upon package-1.
When package-1 receives a version bump, package-2's version is also bumped. This is what I want. However, because package-2's dependency upon package-1 is also bumped, the lockfile in the root of the monorepo becomes out of date, meaning the release action from merging the changeset PR fails (because pnpm i --frozen-lockfile fails).
Right now, I'm working around this by explicitly running pnpm i --no-frozen-lockfile in my CI, but this is not ideal -- it means I immediately have to open a PR to update the lockfile every time I publish changes through the changeset action.
What's the suggested path here?
Proposed solution

I believe this is also what I’m getting.

Version Packages PR
Subsequent workflow failure due to lockfile out of date
Manual fix to lockfile

It doesn’t seem to me that this problem should be specific to linked packages, though I do have two linked packages, so maybe I’m wrong. But it looks to me like pnpm-lock would have needed an update regardless.
I think this can possibly be solved by changing the version specifier for local package dependencies:
"dependencies": {
- "@other/monorepo-package": "1.2.3",
+ "@other/monorepo-package": "workspace:*"
 }

but it does seem like the PR generation has a bug with pnpm.

Here’s a better way to fix, I think. Haven’t tried it yet but I believe this should work: https://github.com/arethetypeswrong/arethetypeswrong.github.io/commit/2bc5cdd5ad42a89c031cd1435307c3663ef529ae


Documentation question: implicit cast

What does 'c' refer to below?

It refers to any variable you might happen to use.


Encode scrolling status into tree

Requires https://github.com/flutter/engine/pull/4647.
Instead of firing scrolling events, we will encode the current scroll status into the tree. This will make implementing a11y scrolling for iOS a lot easier (flutter/flutter#11983).

Can we document this in more detail? I don't see anywhere where I would go to read up on what the protocol is for sending scroll progress over the wire to the engine.


how to add popup in marker

I wrote a plugin that helps with this if you want some ideas: https://github.com/johnpryan/flutter_map/issues/590

thank you @rorystephenson


Application Default Credentials (ADC) has been loaded automatically even I use API Key auth.

When I'm using a API Key authentication on Google AI Gemini API, the library still load my ADC automatically.
This might lead some issues. (Maybe) I'm not sure.

Here is my test code:
async Task Main()
{
	var model = new GenerativeModel(apiKey: Util.GetPassword("GEMINI_API_KEY"), model: Model.GeminiPro);

	var prompt = "I love Taipei. Give me a 15 words summary about it.";

	model.Uncapsulate().Dump();

	var response = await model.GenerateContent(prompt);

	response.Dump();
}

LINQPad Query: https://share.linqpad.net/ol86v9he.linq

Yes, the application default credentials (ADC) are currently loaded in the default constructor. However, there is no AccessToken requested when using an API key. In case that you're envVar GOOGLE_ACCESS_TOKEN it gets loaded.
It's a bit of a small culprit given that Google AI supports both API key and OAuth/ADC whereas Vertex AI works with OAuth/ADC only.
In general, I thought that the three constructors should handle it sufficiently. Following your suggestion to introduce a GoogleAI type it shall be even more clear. For future releases, the currently public constructor accepting apiKey should be internal and closing access to it. This means that the expected way would be as you suggested.
using Mscc.GenerativeAI;
// Google AI with an API key
var googleAI = new GoogleAI(apiKey: "your API key");
var model = googleAI.GenerativeModel(model: Model.GeminiPro);

// Original approach, still valid. Is going to disappear...
// var model = new GenerativeModel(apiKey: "your API key", model: Model.GeminiPro);

Sorry, although it has been implemented originally the other way I'm getting more and more accustomed to the newer approach of using the GoogleAI type to create the model object instead of public constructor.
What's your thought?

Using this approach would open the doors to introduce an interface IGenerativeAI which is implemented by both VertexAI and GoogleAI classes. This should streamline the use of Gemini across both API endpoints.

The interface IGenerativeAI has been added in release 0.9.1

Sorry, although it has been implemented originally the other way I'm getting more and more accustomed to the newer approach of using the GoogleAI type to create the model object instead of public constructor.

Support for newer approach is absolutely fine for me. There is no need to keep "backward-compatibility". It because there are almost no one using this library. It probably only less than 10 people. ha .. 😅


Cppms patch

Final review for DS race condition fix. Only change is to the CCActiveState::Rebind method to fix the logging message to say "Rebind" instead of "Modified"

Codecov Report

Merging #637 (63f31d9) into development (25e11cd) will increase coverage by 0.02%.
The diff coverage is n/a.

@@               Coverage Diff               @@
##           development     #637      +/-   ##
===============================================
+ Coverage        90.39%   90.42%   +0.02%
===============================================
  Files              248      229      -19
  Lines            13280    12276    -1004
===============================================
- Hits             12005    11100     -905
+ Misses            1275     1176      -99

Impacted Files
Coverage Δ

...ativeServices/src/manager/states/CCActiveState.cpp
77.52% <ø> (+6.61%)
:arrow_up:

compendium/LogService/src/LogService.cpp
0.00% <0.00%> (-100.00%)
:arrow_down:

...endium/ServiceComponent/src/ComponentException.cpp
0.00% <0.00%> (-100.00%)
:arrow_down:

...m/ServiceComponent/src/ServiceComponentRuntime.cpp
0.00% <0.00%> (-100.00%)
:arrow_down:

...iveServices/src/metadata/MetadataParserFactory.hpp
66.66% <0.00%> (-13.34%)
:arrow_down:

...ork/include/cppmicroservices/detail/CounterLatch.h
87.09% <0.00%> (-6.46%)
:arrow_down:

...pendium/tools/SCRCodeGen/ManifestParserFactory.hpp
83.33% <0.00%> (-5.56%)
:arrow_down:

...mework/src/service/ServiceReferenceBasePrivate.cpp
89.78% <0.00%> (-2.98%)
:arrow_down:

framework/src/service/ServiceRegistry.cpp
90.72% <0.00%> (-2.58%)
:arrow_down:

...arativeServices/src/metadata/ReferenceMetadata.cpp
88.23% <0.00%> (-2.47%)
:arrow_down:

... and 100 more


Get the point coordinates in custom tooltip function

When we use the custom tooltip function, we get x and y coordinates calculated given the the height and the width of the built-in tooltip system. Would it be possible to get the points x/y coordinates in the graph in order to be able to display easily a really custom tooltip?
For instance, I want mine to display always at the top of the point. Having coordinates calculated for the tooltip to be on the left is annoying and makes it pretty much impossible to calc the point position.
Thanks

I don't think this is too hard to add. I'd be happy to look at a PR for it.

:+1: Yes, it would be really great to have such an option, because its a pain to position custom tooltips :)

Relative is better. I think that's what you are asking. You also have to consider where the chart is, to populate the tool tip at one point. I always try to get tooltips to be relative to the viewport. If you restrict it to show up at the top, you may run into issues when that chart is aligned to the top of the viewport. Then relative to eachother, so they don't bump into eachother, when mousing over data that is side-by-side. Lots of math. :)

Fixed in #3472 see the new caretX and caretY properties


HttpApiClient does not use provided api_url

I try to initiate http client: client = HttpApiClient(api_url='https://custom-url.com')
but it doesn't use https://custom-url.com, it uses PROD env, how can I provide my custom api url?

Hi @skinderis there is some out of date docs around that.
Check the docs around the envinronment here https://github.com/sammchardy/python-binance-chain#environments
from binance_chain.environment import BinanceEnvironment

# create custom environment
my_env = BinanceEnvironment(api_url='https://custom-url.com', wss_url="<wss_url>", hrp="<hrp>")
client = HttpApiClient(env=my_env)

Yeah, I managed to handle it. Just wanted to point it out as some people might get lost here. Thanks!


Unbound breakpoint when debugging Electron renderer process in TypeScript

Issue Type: Bug
When debugging an Electron app written in TypeScript, I am not able to debug the renderer process because the breakpoints are unbound.
The problem only happens with the preview JavaScript debugger, i.e., if I turn off debug.javascript.usePreview, the breakpoints are hit.
Also, the problem is intermittent. After following https://github.com/microsoft/vscode/issues/102493 and enabling tracing, the breakpoints were suddenly hit. Until they weren't anymore.
I get the same behaviour on Linux with Node versions 15.6 - 16.1, and on Windows with Node version 12.19.
I came across the problem while writing a tutorial how to set up Visual Studio Code to debug Electron applications written in TypeScript. This may serve as a minimal example to reproduce the issue.
How to reproduce:
Follow the steps on https://github.com/abartho/electron-typescript-vscode/#electron-typescript-vscode
Trace file:
vscode-debugadapter-f591828d.json.gz
VS Code version: Code 1.56.0 (cfa2e218100323074ac1948c885448fdf4de2a7f, 2021-05-04T21:58:14.757Z)
OS version: Linux x64 4.4.0-31-generic

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz (4 x 2499)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offopengl: enabled_onrasterization: disabled_softwareskia_renderer: enabled_onvideo_decode: disabled_softwarevulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
1, 0, 1

Memory (System)
7.54GB (0.43GB free)

Process Argv
--no-sandbox --unity-launch

Screen Reader
no

VM
0%

DESKTOP_SESSION
cinnamon

XDG_CURRENT_DESKTOP
X-Cinnamon

XDG_SESSION_DESKTOP
cinnamon

XDG_SESSION_TYPE
undefined

Extensions (18)

Extension
Author (truncated)
Version

namespace
adr
1.1.2

github-markdown-preview
bie
0.0.2

markdown-checkbox
bie
0.1.3

markdown-emoji
bie
0.1.0

markdown-preview-github-styles
bie
0.1.6

markdown-yaml-preamble
bie
0.0.4

xml
Dot
2.3.2

json-tools
eri
1.0.2

dotnet-test-explorer
for
0.5.4

csharpextensions
jch
1.3.0

language-haskell
jus
2.6.0

docomment
k--
0.1.2

vscode-docker
ms-
1.10.0

csharp
ms-
1.23.9

debugger-for-chrome
msj
4.12.12

classynaming
ref
1.1.1

partial-diff
ryu
1.3.0

haskelly
UCL
0.5.5

@connor4312 do we know under what situation does /json/version fail while /json/list succeeds ? AFAIK, they are both responded by the same server https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/devtools_http_handler.cc;l=572-606.

We did the requests in serial, so it's possible that /json/list came up while we were trying to make a request to /json/version.
This probably happens with browsers too, but usually we take care of launching ourselves and we use the remote-debugging-pipe in most instances.


VSCode - missing ide.talon functionality + re-evaluate

The following are not yet implemented for VSCode.

Evaluate whether ide.py/ide.talon experiment still make sense. It did help jumpstart the implementation of VSCode, at least.

ide_perfect
ide_toggle_tools

#only some of these have an analog in vscode
ide_extract_variable
ide_extract_field
ide_extract_constant
ide_extract_parameter
ide_extract_interface
ide_extract_method
ide_refactor_move

ide_fix_imports
ide_go_implementation
ide_go_usage
ide_go_type
ide_go_test
ide_find_class
ide_find_in_path
ide_create_template
ide_run_menu
ide_run_again

#requires a macro plugin of some sort
ide_toggle_recording
ide_change_recording
ide_play_recording

#not a thing
ide_go_next_method
ide_go_last_method

#requires a plugin of some sort
ide_clippings

ide_copy_reference
ide_copy_pretty

#require a plugin of some sort
ide_go_task
ide_go_browser_task
ide_switch_task
ide_clear_task

ide_configure_servers

#maybe git should be broken out elsewhere
ide_git_pull
ide_git_commit
ide_git_push
ide_git_log
ide_git_browse
ide_git_get
ide_git_pull_request
ide_git_list_requests
ide_git_annotate
ide_git_menu

ide_toggle_events

ide_toggle_structure
ide_toggle_database
ide_toggle_database_changes
ide_toggle_make

ide_toggle_to_do

#docker would be a plugin
ide_toggle_docker

ide_toggle_favorites
ide_toggle_last

ide_toggle_pinned
ide_toggle_docked

ide_toggle_floating
ide_toggle_windowed
ide_toggle_split

#most of these have analogs
ide_toggle_tool_buttons
ide_toggle_toolbar
ide_toggle_navigation_bar
ide_toggle_power_save
ide_toggle_lone_numbers
ide_toggle_gutter_icons
ide_toggle_parameters

ide_change_scheme
ide_toggle_documentation
ide_toggle_definition
ide_pop_type
ide_pop_parameters

ide_go_breakpoints

ide_toggle_method_breakpoint

ide_run_test
ide_run_test_again
ide_debug_test

ide_step_smart
ide_step_to_line
ide_continue

#these aren't a thing for VSCode
ide_resize_window_right
ide_resize_window_left
ide_resize_window_up
ide_resize_window_down

Some outside perspective: for me, ide.talon has made learning the vscode commands much more difficult to learn. You have to learn the ide.talon commands and how the actions actually map to vscode functions, which isn't always obvious.

@brxck Thanks. Was your issue more the use of actions, rather than e.g. shortcuts directly for commands?
e.g.,
action(user.ide_replace_confirm_all):
  # ,editor.action.replaceAll
  key(cmd-enter)

...

confirm that: user.ide_replace_confirm_all()

vs
replace all: key(cmd-enter)

I’m not sure this change would help with this too much. (Some of the action names will be renamed/relocated either way).
We’ve got three options for cross-platform support at the moment:

implement the actions entirely in .py, separate .talon for the grammar
implement the actions in separate .talon files, separate .talon for the grammar
Maintain the same grammar in each platform-specific .talon file

#3 reduces the obfuscation, but is a bit klunky. #2 was the recommendation early on, so here we are. 😱
Thoughts?

To put it simply, it's harder to learn when the command and the result aren't colocated. Of course that's not really easily remedied if you want to implement an abstract set of commands... I wonder if the help module could do that sort of thing eventually? Display what the action maps to in the current context, ex:
refactor: user.ide_refactor()

could become
refactor: key(ctrl-shift-r)

I think that would solve the problem I bring up here entirely.

As far as cross-platform support goes: I started working on this for myself today, I wonder what you think of it?
I'm mapping to the command ids and activating them using the command palette, which has a couple benefits:

This should be entirely across platform
Will play nice no matter the keyboard mapping
Allows using commands which aren't mapped to keyboard shortcuts
Has the added benefit of making the command results really explicit, if you don't have all of VSCode's chorded keyboard shortcuts memorized

By inserting text with the clipboard, it functions just as quickly as the keyboard shortcuts. In my experience, the command palette is never even visible. The only problem I've run into is with contextual commands. If you try to use one outside of its context it will stick in the command palette which reads "No available commands." Doesn't happen often, but not ideal.

I'll poke around on the help suggestion, I think that's a great idea.
Re: your vscode re-write
Yeah, I've been using the command palette for more stuff recently, so I agree that's likely a better way to go wherever possible.
(So much is common between the IDEs that I don't want to give up on ide.talon just yet, but I'm close)

@brxck I'm liking your approach more.
I think some combo of
(1) modularizing ide.talon, and moving to ide-specific files for things outside the new modules.
(2) your version of of VSCode support
is likely the best approach.
For (1), I've done this:

[Line commands] (https://github.com/knausj85/knausj_talon/commit/4a8997cc21d5fcfa9be890fe4c702e5de9d7bd52)
[Snippet support] (https://github.com/knausj85/knausj_talon/commit/1e4eea598e795c77da960da4e0880baddd4fa2f7)
[Window split refactor] (https://github.com/knausj85/knausj_talon/commit/7cf99123a487f644c6f96fd50ee6c4de83e9ac18#diff-dd3eba92c4f851e14a7ba3546afdef08)
[Tab refactor] (https://github.com/knausj85/knausj_talon/commit/de57d6cbada5a7d54aef1ba453144c5fade26cf0#diff-1cb75bcf8379b9e19c2a98ecb2596f66)

The last pieces I'm thinking about are:

git (maybe some common implementation between ide & commandline?)
debug/breakpoint stuff.

I think this approach is probably a more reasonable now that we have tags.

Awesome. Modularizing using tags is a really great idea.
VSCode's git commands are pretty extensive, it could be possible to combine those... but sharing CLI commands could be complicated by the integrated terminal.

Notes to self
The following can probably be broken out of ide.talon in a useful way via tags.

Search/replace, at least for the basics?

find (everywhere | all): user.ide_find_everywhere()
(search | find) file: user.ide_find_file()
(search | find) path: user.ide_find_in_path()

replace it: user.ide_replace_local()
replace (everywhere | all): user.ide_replace_everywhere()
[replace] confirm that: user.ide_replace_confirm_current()
[replace] confirm all: user.ide_replace_confirm_all()
toggle [find by] case : user.ide_find_match_by_case()
toggle [find by] word : user.ide_find_match_by_word()
toggle [find by] expression : user.ide_find_match_by_regex()

breakpoints/debugging stuff

go breakpoints: user.ide_go_breakpoints()
toggle [line] breakpoint: user.ide_toggle_breakpoint()
toggle method breakpoint: user.ide_toggle_method_breakpoint()
run test: user.ide_run_test()
run test again: user.ide_run_test_again()
debug test: user.ide_debug_test()
step over: user.ide_step_over()
step into: user.ide_step_into()
step out: user.ide_step_out()
step smart: user.ide_step_smart()
step to line: user.ide_step_to_line()
continue: user.ide_continue()

git stuff(???)

macro stuff

toggle recording: user.ide_toggle_recording()
change (recording | recordings): user.ide_change_recording()
play recording: user.ide_play_recording()

-folding stuff
expand deep: user.ide_expand_deep()
expand all: user.ide_expand_all()
expand that: user.ide_expand_region()
collapse deep: user.ide_collapse_deep()
collapse all: user.ide_collapse_all()
collapse that: user.ide_collapse_region()

Also, code.toggle_comment should replace ide_toggle_comment. Should take a moment to re-assess what's in Talon's code namespace
once the above is done, jetbrains and vscode should probably go their separate ways (i.e., ide.talon is no more)

@brxck - FWIW, I moved over to your implementation for VSCode, including the majority of your grammar for vscode. Thanks for sharing that, I think it's much better.


Ability to customize the height and width of the selected tab indicator in a TabBar

The indicator for a selected tab within a TabBar is not customizable beyond color. More control over the height and width would be great. Example cases would include making a thicker indicator and an indicator that's equal to the width of the actual tab text.
Related Stack Overflow posting:
https://stackoverflow.com/questions/44272440/how-can-i-customize-the-tabbar-indicator-width-and-height/44273493#44273493

Thanks for the bug!  @HansMuller mentioned it should be straightforward to make it possible to pass a https://docs.flutter.io/flutter/widgets/PreferredSize-class.html to the TabBar constructor and allow you to provide any arbitrary indicator.

No problem. I tab the bandwidth to work on this.

Unfinished PR here: https://github.com/flutter/flutter/pull/7553/files

I could add TabBar properties indicatorWeight (default 2) indicatorHorizontalMargin (default 0).  If you defined tabs with Tab widgets, then setting indicatorHorizontalMargin to 12 would make the tab indicators the same witdh as each tab's text. If you wanted thicker tab indicators, you could set indicatorWeight too.
Let me know if this sounds reasonable.

That works with my use case.

You can adjust the spacing between the tabs -> labelPadding: EdgeInsets.symmetric (horizontal: 5).


Opening files from DB does not work properly

Well, it works... cannot reproduce the failure and therefore close this issue


feat(HTTPRouteMatcher): implement http method filter

What type of PR is this?
/kind feature
/kind api-change

What this PR does / why we need it:
This PR adds a HTTPMatcher to allow match one or more specific HTTP methods.
If multiple are defined it is defined as logical OR.
Which issue(s) this PR fixes:

Fixes #624
Does this PR introduce a user-facing change?:

HTTPRoute now supports matching based on HTTP methods.

/cc @bowei @hbagdi @youngnick

Thanks! Will leave LGTM for someone else.
/approve

@secustor Thank you for your contribution!
/lgtm


instanceof in equals()

The instanceof expressions should not take place in equals() method.
You should use this.getClass().equals(that.getClass()); instead. (or even ==)
The instanceof approach results in a bug:
When B extends A and we have objects A a and B b:
a.equals(b) returns true
b.equals(a) returns false
As you can see this behavior breaks one of the equals() principles: symmetry
That's because a.equals(b) checks instanceof A for b and b is acutally an A. So it's true.
After that the rest of equals body checks only the fields present in A class.
Backwards: a instanceof B returns false, which is obvious.

Did you test it? How?
Lombok does it exactly right: It allows instances of different subclasses to be equal if you wish and to never be equal if you wish. The symmetry is maintained when you use it right.
That's why canEqual is needed, see this lengthy paper.
I guess, this should be documented better as at the moment, I can't find an explanation there. But note that the doc is already pretty long.


dark theme problem in linux

Hello
Thanks for Ramme! it's very nice
I have a problem with dark theme in ArchLinux
when I select dark theme (with ctrl+d) and window isn't  maximized , every thing is ok! but when i maximize window then color of some parts will turn to white  and it is hard to read comment and ...
please see the screenshot :)

Thanks for reporting this @alireza-amirsamimi. Do can you try to find the selector of that element?
It's possible to get the developer tools if you run the master

How can I find the selector ?
what do you mean "run the master"
Please guide me simpler :)
do you want run program from terminal or send you special error report or log or ...
and I forgot to say that. every time I run ramme , I get this error
A JavaScript error occurred in the main process
Uncaught Exception:
Error: connect ECONNREFUSED <IP_ADDRESS>:443
at Object.exports._errnoException (util.js:1008:11)
at exports._exceptionWithHostPort (util.js:1031:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1080:14)

Yes, this is an error with the update function. I'm going to do a rewrite of Ramme and get that one fixed. Ramme isn't supposed to run in fullscreen mode, but I'll take a look at it myself at some time

Ramme is not supposed to be maximized and the directive is already present in the starting config. This is an Electron issue since their documentation states that this function is not implemented yet on Linux along some other features as well.