python-arango is not working without pip-install installation

Hello!
I am uisng python-arango for benchmarking arangodb and elasticsearch. python-arango is not installed on the target machine but I am importing it in the following way:
# avoid using 'pip install arango-python' command
arango_path = os.getcwd() + "/../iresearch.deps/python-arango"
if arango_path not in sys.path:
    sys.path.insert(0, arango_path)

I followed the discussion in this issue and found following PR which broke our existing testing pipeline with this error message:
alexey@c4:/home/jenkins/workspace/arangodb-ANY-benchmarks-client/arangosearch-benchmarks$ python3 ./Benchmarks.py ../args.json arango
/usr/lib/python3/dist-packages/requests/__init__.py:78: RequestsDependencyWarning: urllib3 (1.26.14) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({0}) or chardet ({1}) doesn't match a supported "
Traceback (most recent call last):
  File "/home/jenkins/workspace/arangodb-ANY-benchmarks-client/arangosearch-benchmarks/./Benchmarks.py", line 182, in <module>
    main()
  File "/home/jenkins/workspace/arangodb-ANY-benchmarks-client/arangosearch-benchmarks/./Benchmarks.py", line 128, in main
    ArangoInstance.prepare_environment(environment_config["arango"], engines["arango"]["endpoints"])
  File "/home/jenkins/workspace/arangodb-ANY-benchmarks-client/arangosearch-benchmarks/Arango.py", line 169, in prepare_environment
    remove_all_views(db)
  File "/home/jenkins/workspace/arangodb-ANY-benchmarks-client/arangosearch-benchmarks/Arango.py", line 109, in remove_all_views
    for view in db.views():
  File "/home/jenkins/workspace/arangodb-ANY-benchmarks-client/arangosearch-benchmarks/../iresearch.deps/python-arango/arango/database.py", line 2092, in views
    request = Request(method="get", endpoint="/_api/view")
  File "/home/jenkins/workspace/arangodb-ANY-benchmarks-client/arangosearch-benchmarks/../iresearch.deps/python-arango/arango/request.py", line 128, in __init__
    self.headers: Headers = normalize_headers(headers, driver_flags)
  File "/home/jenkins/workspace/arangodb-ANY-benchmarks-client/arangosearch-benchmarks/../iresearch.deps/python-arango/arango/request.py", line 12, in normalize_headers
    driver_header = generate_driver_header(driver_flags)
  File "/home/jenkins/workspace/arangodb-ANY-benchmarks-client/arangosearch-benchmarks/../iresearch.deps/python-arango/arango/request.py", line 31, in generate_driver_header
    driver_version: str = ".".join(version(name).split(".")[:3])  # Only keep semver
  File "/usr/lib/python3.9/importlib/metadata.py", line 569, in version
    return distribution(distribution_name).version
  File "/usr/lib/python3.9/importlib/metadata.py", line 542, in distribution
    return Distribution.from_name(distribution_name)
  File "/usr/lib/python3.9/importlib/metadata.py", line 196, in from_name
    raise PackageNotFoundError(name)
importlib.metadata.PackageNotFoundError: python-arango

Also I found the reason of the error above: https://github.com/python/cpython/issues/94113
The problem is that importlib.metadata can't work with modules which are not installed using pip. From issue above I read that it is fixed for python 3.10 and above. But I use python 3.9.
So I have 2 questions:

In readme for python-arango it is stated that supported version of python is 3.8+. But we see that for this specific case it is not working. Is it a breaking change for python 3.8 compatibility?

The last question is about version retrieving. Is it possible to do it not in runtime? I think this is quite unnecessary overheading.

Thanks in advance!

hi @alexbakharew , did you get it to work. Even am facing the same issue.
ModuleNotFoundError: No module named 'importlib.metadata'. Tried importing import_metadata manually. But could not do so. Any workaround?

I reverted the commit with importlib.metadata in latest release 7.5.7. The issue should be resolved now.

thanks much @joowani . Shall test it with latest version again then.


Placeholder fix

This is my two cents for issue #11.

Thanks for the contribution!
But before merging this, can you please fix the tests? TravisCI is unfortunately complaining... :-/

@taavs any update on this?

Sorry about the delay. I forgot to add the src/picker.js file in the first commit. Should be all good now.

Great! Thanks 👍


Generalize existing data structures

The current implementation relies on concrete datatypes, namely the RpoDigest, for their definitions. This forces conversion to from RpoDigests in node/client implementation, which operate primarily over protobuf messages.
Making the structure generic would remove the need of lots of conversion code, which is mostly boiler plate, and could have a small performance benefit (in cases the compiler would emit code for the conversion, which may be happening since these types are usually on different crates)

Another issue that we have, is the mix of the types Word and RpoDigest that could be alleviate by having generic structures.

The lack of generics is starting to introduce bugs, and I would claim it may cause security vulnerabilities too. This is because we are storing values into the trees encoded as Words, and then we need unsafe/unchecked APIs to decode these values. These unsafe APIs either call unwrap or leave unchecked data. We really should look into making these structures into something proper.


[ServiceBus] CorrelationFilter Property Added

…nFilterProperty Added
Related command

Description

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

This is fix for : https://github.com/Azure/azure-cli/issues/25183

I have added CorrelationFilterProperty In 'az Servicebus topic subscription rule' cmdlets. Could someone look into this and review it?
Thanks!

Need code owner @zhoxing-ms's approval


How is emotional impact of words highlighted?

Hi @bfelbo,
On the demo page, there is a section that shows the impact of words on the emoji predictions. How to calculate that?

It's a bit hacky so I wouldn't recommend using it in production. We do the predictions w/o each word and see how much the distribution over predicted emojis change.

@bfelbo I see. So if I understand it correctly, is this how it's done?

Say we have a sentence "I loved the application" and we run deepmoji to get top 5 predictions
Then, we remove one word at a time and see the predictions
The words whose removal changed the top 5 predictions are the important ones

If so, how do you give that score in the screenshot above? The importance reflected by the darker and lighter shades of purple.

Exactly. The shading is simply an interval over the difference. It was picked manually by trying out a couple of sentences and seeing what seemed to make sense.
Note that you can run all the predictions in a single batch, which will make this pretty fast even for long sentences.

I'm closing this for now as it's not related to the functionality of the repo, but to the demo. Hope my response was helpful!

It was. Thanks a lot.


hugo changes are not being pulled in any more

Debugging log incoming here in a little bit; please hold.

It appears that we've hit a size limit on the size of the pulumi-hugo build, as evidenced by the difference between the following logs:

https://github.com/pulumi/docs/actions/runs/3421982071/jobs/5698824099#step:7:13 (build finished)
https://github.com/pulumi/docs/actions/runs/3422407711/jobs/5699780011#step:7:13 (error appears)

We've narrowed it down to the appearance of multiple animated gifs in both blogs and the newest Pulumi Challenge.
Recommendations:

@susanev opened the following PR to start addressing the problem: https://github.com/pulumi/pulumi-hugo/pull/2203
We should consider converting all animations to SVG instead of GIF to save on space.
We should consider what we might be able to remove from the site to make it more compact.

the problem with our gifs, is a lof of them use very large images so even if we convert them to svg they are still going to be large because the images get embedded into our svgs. we will more than likely want to consider some standards for gif and svg creation. or consider hosting of these things elsewhere.

some of these gifs should prolly be videos hosted on youtube to be honest.

Are any of them terminal-based, @susanev? We could re-record those with asciinema, which can be hosted elsewhere. It might be worthwhile to consider a CDN that points to a separate storage system, to be honest, as the site gets bigger and needs to be more available (unless we're already doing that?).

reduces all the image sizes in @sean1588's list
https://github.com/pulumi/pulumi-hugo/pull/2204

So, as it turns out it should be straight forward to convert animated .gif into animated .webp.
Here is the command I used to

convert to webp format
reduced the image width to 900px

🌈✨ ❯ wget https://www.pulumi.com/blog/ill-just-update-my-bucket-object-what-could-go-wrong/atomic-deployment.gif
🌈✨ ❯ ffmpeg -i atomic-deployment.gif -vf "fps=10,scale=900:-1:flags=lanczos" -vcodec libwebp -lossless 0 -compression_level 6 -q:v 50 -loop 0 -preset picture -an -vsync 0 atomic-deployment.webp
🌈✨ ❯ ls -lh
total 50M
-rw-r--r-- 1 aureq users  45M Nov 10 08:47 atomic-deployment.gif
-rw-r--r-- 1 aureq users 4.7M Nov 10 17:09 atomic-deployment.webp

It took about 41 seconds to convert the 45M file.
@susanev I'll open a PR

Here is the script I created and used to convert the files in pulumi/pulumi-hugo#2211
#!/bin/bash

find ./default -type f -name "*.gif" -size +1M | while read SRC; do

    BASE_SRC="$(basename $SRC)"
    DST="$(echo $SRC | sed 's/\.gif/.webp/')"
    BASE_DST="$(basename $DST)"

    if [ ! -f "$DST" ]; then
        rm -f "$DST"
        ffmpeg -i "$SRC" -vf "fps=10,scale=min'(900,iw)':-2:flags=lanczos" -vcodec libwebp -lossless 0 -compression_level 6 -q:v 50 -loop 0 -final_delay 500 -preset picture -an -vsync drop "$DST" </dev/null >/dev/null 2>/dev/null
        if [ "$?" -ne 0 ]; then
            echo "ffmpeg failed. stopping at $SRC"
            exit 1
        fi
    else
        echo "$DST already exists. skipping."
    fi

    if [ -s "$SRC" -a -s "$DST" ]; then

        SRC_SIZE="$(ls -l "$SRC" | awk '{print $5}')"
        DST_SIZE="$(ls -l "$DST" | awk '{print $5}')"

        if [ "$SRC_SIZE" -gt "$DST_SIZE" ]; then
            # conversion and conversion were good enough so the new image
            # is smaller than the original. We can update our docs accordingly.

            # search for files that are referencing the original image
            # and replace all references.
            grep -rl "$BASE_SRC" ./default | while read DOC; do
                sed -i "s/$BASE_SRC/$BASE_DST/g" $DOC
                if [ "$?" -ne 0 ]; then
                    echo "failed to update $DOC"
                    exit 1
                else
                    git add "$DOC"
                fi
            done

            # remove original image file
            git rm "$SRC"
            git add "$DST"

        else
            # we keep the original file and just issue a notice.
            # we remove the new file since it's no use for us.
            rm -f "$DST"
            echo "$SRC cannot be optimized further"
        fi
    else
        echo "Can't find $SRC or $DST"
        echo "something went wrong"
        exit 1
    fi
done

considering this resolved, as @aureq reduced a large amount of the gif sizes. so we have a lot more room now.


Remove note on lack of RequestInterface support

It looks like support for \Psr\Http\Message\RequestInterface was added, but the old notice about lack of support is still there.

Good catch, thank you @dabernathy89 !


Subtitle/audio stream confirmation output is English only

The replacement code for pycountry has support for English and French, but we currently only output English.
It'd probably be a good idea to add a field for German as well and output it based on the user's locale, since that is now a supported language.

There's a few other instances of English-only support in the skill too.  I've marked them with XXXLANG.

I really wish we could just import pycountry.. this is just adding to the translation nightmare, especially when we start supporting more languages..

Anyway, requests that use these just fail for German, btw.  We need to either a) catch unsupported languages and use English by default, or b) someone needs to add a 6th column to the dictionary for German.

Here is the dict with a sixth column with German
https://github.com/digiltd/kodi-voice/blob/356046dd095011885a555e5cf7d1ea10a3f9f21c/kodi_voice/ISO-639-2_utf-8.txt
Not sure how to go about integrating it into kodi.py though, but hopefully it should help.

Already done :)  But thanks!

69d2c42459975dd8091f263ea9eb5ae16f8d3add should address this.  I tested locally by setting language=de but it'd be nice if someone else gave it a go.

If anyone wants to test, it's on the test pypi server, so you can do something like pip install --upgrade --force-reinstall -i https://testpypi.python.org/pypi kodi-voice

Seems it's working.  Will be in the next Kodi-Voice release.


PAKKA GUI creates archives with unchosen flags

I tried the last 2 versions of PAKKA GUI on the site (by clicking "Browse PAKKA builds," in settings) and trying to create an archive with, for example, a file and the following options:
force
longpath
store windate
store file hash, default
method 1
VSS
Use ADS
force zfs
force Windows
Removing the checkmark to make a backup
An error is shown indicating that only one hash file method should be chosen.
Trying to remove some of the options listed above the file is created but in backup mode (a choice I had disabled from the interface).
Also I noticed that it uses the built-in version of zpaqfranz, wouldn't it be better to be able to select a path to use a chosen version (or in the same folder) so as to avoid cases where the development of the two projects are not close?

Current PAKKA need a lot of work 😄

Also I noticed that it uses the built-in version of zpaqfranz, wouldn't it be better to be able to select a path to use a chosen version (or in the same folder) so as to avoid cases where the development of the two projects are not close?

In fact no
No because newer zpaqfranz.exe (64 bit) does have an autoupdate
Then, sooner or later, even PAKKA will autoupdate zpaqfranz, if needed
I had virtually zero feedback for 10 years on PAKKA, now it seems some users are there
I will see if I can improve a little
Thanks for the reports

I was trying PAKKA for convenience, to store backups of all files on a disk but due to the problems described I finally preferred to proceed via console.

PAKKA is, in fact, an EXTRACTER. It is born to make mysql dump's restoring easier
I do not work very much on creating an archive.
The idea is to have a GUI interface for versioned backups, something that is not normally there for other programs.
With PAKKA you can add data to a file as you go with a minimal amount of clicks (at least, if and when I finish it)

I know that backups are not a primarily suitable use but I have not found any other program that can store deduplicated backups with versions as if they were differential and you can quickly remove a previous version to regain space (from what I understand you can use the -repack command that copies already compressed blocks so effectively you can quickly remove a single version for example).

In the latest versions it is possible to delete added versions, clearly this causes all data added after the time of "cutting" to be lost.
It is not possible to quickly resume space in a deduplicated archive (without heavy processing)
You can remove a single, or many, versions
However, only the LAST ones

For now, however, I have noticed a problem for this use and a concern. The problem is the lack of symbolic file archiving and the question is whether using archiving via VSS chooses all files (I knew that by default VSS excludes Outlook files https://learn.microsoft.com/en-us/windows/win32/vss/excluding-files-from-shadow-copies?redirectedfrom=MSDN)

Symlinks are not supported at all, I started to implement a tar-like mechanism, but Windows is so messy and undocumented that I let it go

Edit: Also, I noticed that the -windate option doesn't store creation dates, so it could be another issue in that use case
Actually it should. However, it is an option that I personally never use, so I do not check its functionality
If you have any repeatable examples please propose them, and I will correct any errors

I tried the last 2 versions of PAKKA GUI on the site (by clicking "Browse PAKKA builds," in settings) and trying to create an archive with, for example, a file and the following options: force longpath store windate store file hash, default method 1 VSS Use ADS force zfs force Windows Removing the checkmark to make a backup
An error is shown indicating that only one hash file method should be chosen. Trying to remove some of the options listed above the file is created but in backup mode (a choice I had disabled from the interface).
Can you  please explain better what do you want to do?
Thanks

In the latest versions it is possible to delete added versions, clearly this causes all data added after the time of "cutting" to be lost. It is not possible to quickly resume space in a deduplicated archive (without heavy processing) You can remove a single, or many, versions However, only the LAST ones

So assuming an input.zpaq archive with 3 versions to which I want to remove version 2 I cannot proceed by doing:
zpaqfranz x input.zpaq -repack output.zpaq -until 1
zpaqfranz x input.zpaq -repack output.zpaq -until 3
Therefore copying only the blocks referenced by versions 1 and 3 into "output.zpaq" ?

Actually it should. However, it is an option that I personally never use, so I do not check its functionality If you have any repeatable examples please propose them, and I will correct any errors

You can try to archive the following folder (after zip extract)
Creation Date 1-1-2016.zip
with the following command:
zpaqfranz -method 1 -verbose -utf -windate -force -forcezfs -forcewindows -filelist -longpath a test.zpaq ".\Creation Date 1-1-2016"
Both the file and the folder should have:
creation date: 1/1/2016 1:1:1
modified date: 1/1/2020 1:2:3
But by extracting the archive (e.g. with PAKKA) only the modified dates are preserved.

In the latest versions it is possible to delete added versions, clearly this causes all data added after the time of "cutting" to be lost. It is not possible to quickly resume space in a deduplicated archive (without heavy processing) You can remove a single, or many, versions However, only the LAST ones

So assuming an input.zpaq archive with 3 versions to which I want to remove version 2 I cannot (...)

If you want to QUICKLY (aka: almost in no time) drop versions you can (from 59.4h) use the new crop command
C:\zpaqfranz>zpaqfranz crop vers.zpaq
zpaqfranz v59.4h-JIT-GUI-L,HW BLAKE3,SHA1/2,SFX64 v55.1,(2024-05-08)
franz:-hw

vers.zpaq:
4 versions, 72 files, 2.343.688 bytes (2.23 MB)
---------------------------------------------------------------------------
<  Ver  > <  date  > < time > <    version size    > < Offset (w/out encr)>
V00000001 2024-05-05 19:21:52 [               2.551] @                2.551
V00000002 2024-05-05 19:22:05 [               2.604] @                5.155
V00000003 2024-05-05 19:22:17 [           2.329.993] @            2.335.148
V00000004 2024-05-05 19:22:30 [               8.540] @            2.343.688
no -kill, this is just a dry run

You can crop the archive, for example, at version 2.
This will discard versions 3 and 4, and the file will become (in the example) 5.155 bytes long
You CANNOT delete version 3, keeping 1, 2 and 4
The crop command is used to delete versions added by mistake (sometimes it happens) or to delete old copies that are useless
Translation
Typical scenario: first version of a fileserver is 100GB large
Later versions are each 1GB large, and let's say there are 50
The archive is now 100+50 *1 = 150GB
For some reason I have no interest in keeping the last 20 versions. I crop/drop them, and the archive will be 100+30 * 1 = 130GB.
Then I launch an update, and it will go back to being aligned with the current data
Maybe this will become "drop" instead of "crop".
More accurate

On -windate:
zpaqfranz l z:\thearchive.zpaq -windate

will show creation dates (if ever)
Checking for bugs in progress...

I tried the last 2 versions of PAKKA GUI on the site (by clicking "Browse PAKKA builds," in settings) and trying to create an archive with, for example, a file and the following options: force longpath store windate store file hash, default method 1 VSS Use ADS force zfs force Windows Removing the checkmark to make a backup
An error is shown indicating that only one hash file method should be chosen. Trying to remove some of the options listed above the file is created but in backup mode (a choice I had disabled from the interface).
Can you  please explain better what do you want to do?
Thanks

I was indicating that PAKKA does not seem to properly consider the options chosen by GUI for compression, in many cases despite not having chosen it or having just removed the checkmark on multipart backup mode, I have noticed that it still creates the archive that way.
I then proceeded via command line.
I would like to archive all the files contained in a drive, say Z:\ of size about 1TB, as if it were a full backup.
Later re-do the same operation with the same file.zpaq as if they were differential backups (thanks to deduplication).
Sooner or later, though, too much space would be consumed, so I would like to remove versions to free up space.
Basically this is what you do with a backup system but with deduplication, which unfortunately I have not found straightforward programs for such work on Windows.

zpaqfranz a test.zpaq ".\Creation Date 1-1-2016" -windate -force -longpath

Then
Z:\>zpaqfranz l test.zpaq -windate
zpaqfranz v59.4h-JIT-GUI-L,HW BLAKE3,SHA1/2,SFX64 v55.1,(2024-05-08)
franz:-windate -hw

test.zpaq:
1 versions, 1 files, 1.258 bytes (1.23 KB)

- 2020-01-01 01:02:03 (C) 2016-01-01 01:01:01                  94 A     Z:/Creation Date 1-1-2016/Test datestamps.txt

                   94 (94.00  B) of 94 (94.00  B) in 1 files shown
                1.258 compressed  Ratio 13.383 <<test.zpaq>>
0.016 seconds (000:00:00) (all OK)

And then
Z:\>zpaqfranz x test.zpaq -windate -longpath -to z:\restored
zpaqfranz v59.4h-JIT-GUI-L,HW BLAKE3,SHA1/2,SFX64 v55.1,(2024-05-08)
franz:-to                   <<z:/restored>>
franz:-windate -hw -longpath
INFO: setting Windows' long filenames

test.zpaq:
1 versions, 1 files, 1.258 bytes (1.23 KB)
Extract 94 bytes (94.00  B) in 1 files (0 folders) / 32 T

Files to be worked 1  => founded 1 => OK 1
0.032 seconds (000:00:00) (all OK)

If I understand you want FOLDER date creation too, not only FILE date creation
Is it right?

(...)
Just a bug (one of many, or better "an options"

I then proceeded via command line. I would like to archive all the files contained in a drive, say Z:\ of size about 1TB, as if it were a full backup. Later re-do the same operation with the same file.zpaq as if they were differential backups (thanks to deduplication). Sooner or later, though, too much space would be consumed, so I would like to remove versions to free up space.
Basically this is what you do with a backup system but with deduplication, which unfortunately I have not found straightforward programs for such work on Windows.

Simply, you can't
The data will stay "forever" inside the archive
One method is to use the -freeze switch, that is, archiving backups that become too large to start over again

This seems OK to me

Folder's timestamp require a bit of heuristics

This seems OK to me
Folder's timestamp require a bit of heuristics

Yes, sorry I edited as soon as I noticed.
Probably neither PAKKA nor the first extraction attempt added -windate also to extract.

(...) Just a bug (one of many, or better "an options"

I then proceeded via command line. I would like to archive all the files contained in a drive, say Z:\ of size about 1TB, as if it were a full backup. Later re-do the same operation with the same file.zpaq as if they were differential backups (thanks to deduplication). Sooner or later, though, too much space would be consumed, so I would like to remove versions to free up space.
Basically this is what you do with a backup system but with deduplication, which unfortunately I have not found straightforward programs for such work on Windows.

Simply, you can't The data will stay "forever" inside the archive One method is to use the -freeze switch, that is, archiving backups that become too large to start over again

Would it be possible to use the new drop/crop command to remove early versions instead of late versions?
In the described use case of backup chains, this might be enough.

Would it be possible to use the new drop/crop command to remove early versions instead of late versions? In the described use case of backup chains, this might be enough.

No, it is not
You have to repack
But, in reality, it is never done
I, at least, don't do it
When an archive gets too big, I move it to external media (like USB HD) and at the next run it will be recreated automatically
I checked the issue of the date of creation of the folders.
It is simply not an information stored in the standard zpaq format.
zpaqfranz uses an extended block of data, in which it stores the hashes of the files and with --windate--just the date.
But the folders are devoid of information about the hashes, and therefore also of the date of creation
I could actually create a handle on this date as well, moving it out of the hash block
It is a doable job, however, it is not trivial
For now, I'd say let's just gloss over it, assuming there are no other requests from other users

OK, please try the attached pre-release with -windate This will restore on folders too
59_4i.zip
IF folders does exists
Translation This will include the folder
zpaqfranz a test "Creation Date 1-1-2016"

This does not
zpaqfranz a test "Creation Date 1-1-2016\*"

In first case TWO objects will be stored
2020-01-01 01:02:03 (C) 2016-01-01 01:01:01 0 D Creation Date 1-1-2016/ 2020-01-01 01:02:03 (C) 2016-01-01 01:01:01 94 A Creation Date 1-1-2016/Test datestamps.txt
In the second just the file
- 2020-01-01 01:02:03 94 A Creation Date 1-1-2016/Test datestamps.txt
I will not write a heuristic to automagically solve this situation, which is too complex and lacks real utility Short version: add folders and not files to the archive, if you want folders to be "touched"

I confirm that it works even with the creation date of the folder IF I don't add -longpath

(...) Just a bug (one of many, or better "an options"

I then proceeded via command line. I would like to archive all the files contained in a drive, say Z:\ of size about 1TB, as if it were a full backup. Later re-do the same operation with the same file.zpaq as if they were differential backups (thanks to deduplication). Sooner or later, though, too much space would be consumed, so I would like to remove versions to free up space.
Basically this is what you do with a backup system but with deduplication, which unfortunately I have not found straightforward programs for such work on Windows.

Simply, you can't The data will stay "forever" inside the archive One method is to use the -freeze switch, that is, archiving backups that become too large to start over again

In case anyone are looking for a solution for the use case I described, I ended up having to use the NTFS data deduplication feature (which is usually only present on Windows server editions but there are workarounds for other editions) into a VHDX file container to support mount as well.
So it can preserve symlinks, hardlinks, junction points, datestamps, and the flexibility to add and remove files like any folder.
Hopefully, someday the new ReFS filesystem will be fully supported by client versions of Windows and you can just use that, due to the recent additions of deduplication and post-compression.
But of course the best for cross-OS compatibility is an open source archive and tool like zpaqfranz :)

In this case I use truecrypt/veracrypt virtual disks, with zpaqfranz (without compression, aka -m0) for backup
In the case of server I make a sector-level image (-image), but it requires zero (f) free sectors

I considered using veracrypt but unfortunately it does not have a storage system that allows you to reclaim unused space if you later delete files in the container.
Whereas by creating a dynamically sized VHDX you can either manually and precisely automatically expand it to the chosen size or reclaim the space no longer actually used in the container via Optimize-VHD function (better to defrag the free space first so that it is contiguous).

This will f*up the deduplication, due to moved blocks
I use veracrypt+zpaqfranz from years
It just works

Are you referring to the Optimize-VHD command ?
I ran several days of testing with NTFS deduplication (appropriate commands) + Bitlocker + Defrag all inside a VHDX container.
and so far it worked, files remained readable and hash matched.
It all started after I read this article:
https://www.deploymentresearch.com/beyond-zip-how-to-store-183-gb-of-vms-in-a-19-gb-file-using-powershell/

I work with .vmdk and zpaq from 10 years
😄
No need for such complexity
zpaq with -key
That's all
On zfs systems it is even better

But, based on the previous conversation, you can't reclaim space from a zpaq archive by removing files from previous versions (except the latest one), right?
I ended to use this system because it is the only one I have found that also allows you to delete any files effectively reducing the space used and with deduplication features (which is well integrated for Windows, unlike ZFS).

It is possible to purge zpaq (with a bit of effort)... but... why?
It is zpaq's best feature for disaster recovery. Space occupancy is typically minimal, becoming significant after months or hundreds of versions
Deleting data from a backup is THE NO-NO

PS Windows' deduplication is crap
ZFS just about as crap, but better than Windows
The main use is quite counterintuitive, i.e., it serves to minimize WRITING during operation checks of backups, i.e., extraction of the entire contents of an archive

It is possible to purge zpaq (with a bit of effort)... but... why? It is zpaq's best feature for disaster recovery. Space occupancy is typically minimal, becoming significant after months or hundreds of versions Deleting data from a backup is THE NO-NO

In my case, I wanted to reduce the space of some full HDD backups, accumulated for years.
Since there will surely be several files and equal portions left over the years through deduplication I could save space.
But I intend to continue with full backups still for years in the future and already currently I had almost run out of space in the HDDs in which I store them.
So sooner or later I would have to remove the older backups.
Or of course you can always buy more space but I did not want to proceed in that direction since it concerns a personal and not a work situation anyway.

Deleting old data is not a practice I recommend; I have all the individual files since 1993.
Deduplication doesn't make much sense as a space-saving methodology, it makes a lot more sense for different versions, i.e. snapshots
Incidentally you can quickly estimate the amount of duplicate files (files, not parts of files) with the sum command and the -quick switch (ad hoc)

I tried compression before but a lot of time was wasted for almost no space saved since almost all files are non-compressible (like video).
Since it is very likely that in the various backup chains there were repeated all those files several times then the biggest space savings I achieved is through deduplication.
Many times, however, it happens, again to cite the example of videos, that there are also many clips clipped from a longer video. So they are still non-compressible (because of the work of the video encoders) but fully contained in the longer video.
Another case where with deduplication ( partial data) gets a savings in used space.
Unfortunately, I found no other way.
And even with deduplication it is very likely that in a couple of years at this rate of backups I will run out of space and will have to remove older backups.

Video cannot be deduplicated very well
You'll have to buy more hardware, or delete something

Video cannot be deduplicated very well You'll have to buy more hardware, or delete something

Yes, that's what I'm saying. In my use case unfortunately I have no alternatives.
And I don't plan on buying more space anymore so I will have to remove older files in the future.
For this reason I have already worked to find a storage system that will allow me to do this when I have almost 0 MB left free.


Can be compatible with IE browser?Version 8.0

In IE8 below I found a lot of mistakes

ie8 hava array mistakes ....  is support IE?


Wrong warrior's guild requirement

The bot currently requires you to have at least 65 attack and 65 strength to access warrior's guild content. This is different from the ingame requirement of a combined 130 attack/strength (or 99 in either one of them).
For example, my minion has 66 attack and 64 strength, with which I should be able to buy "potato with cheese", but I'm unable to.

I mentioned this in testing, and it's currently just intended if you have 65+/65+ only. Not a big deal since you'll want to train both of them regardless.

resolved


notification history: allow using formatter other than content.format

Contributing guidelines

[X] I have read CONTRIBUTING.md
[X] I have read CODE_OF_CONDUCT.md

Module(s)
mini.notify
Description
I have custom notification formatter that returns only message but would like to still use the default formatter to display notification history.
If necessary I can prepare PR.

Thanks for the suggestion!
I think having config.content.format being universally applied to all instances of showing notifications (whether in floating window or in show_history()) is a more straightforward design.
There are already several approaches to customize this behavior:

Write custom wrapper that temporarily sets config.content.format to what you'd like to see being used when showing history. Here is an example of showing raw message:_G.my_show_notifications = function()
  local cur_format = MiniNotify.config.content.format
  MiniNotify.config.content.format = function(notif) return notif.msg end
  MiniNotify.show_history()
  MiniNotify.config.content.format = cur_format
end

Use get_all() to get all notifications and process them as you'd like (would require creating/showing a special buffer).

Closing as not planned.

Thank you! Switching formatters perfectly does what I want.


when tile is selected, perform call to /tile endpoint to get tile status

such as raw_product downloaded or l2a product exists, tile product status will be used to determine if a new job is added when the "Start All" button is pressed

This relates to #12
s2d2_api should be enhanced to manage tiles and derivative products. Tiles can be queried for their status and which products exist. This would allow smarter submission of jobs and allow multiple people to work on the same area without repeating downloads or processing. Downloads are less of an issue because they are unique, processed products are not unique in that they have the property of the date when they were generated so it is possible to have many duplicates of the same higher level product unintentionally.


[DOC] Feedback on example Docker code

What do you want to do?

[x] Request a change to existing documentation
[ ] Add new documentation
[ ] Report a technical problem with the documentation
[ ] Other

Tell us about your request. Provide a summary of the request and all versions that are affected.
Customer feedback on 06/20/2023:
I get this error when running the docker snippet under "Working with plugins"
Exception in thread "main" javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
What other resources are available? Provide links to related issues, POCs, steps for testing, etc.
Here is the section with the issue: https://opensearch.org/docs/latest/install-and-configure/install-opensearch/docker#working-with-plugins

Hi @peterzhuamazon - do you mind taking a look at this code snippet and testing? Thank you.


Add support /sys/devices/system/node/nodeN/meminfo

I stumbled across this PR while investigating for #565. If the approach used in #569 is accepted, it would seem like a similar approach may be needed here as well

@khunafin are you planning to update this PR? If not I am willing to help with this work.


[5.7] Increase breakpoint for XL viewport

Rationale: Optimize content and sidebar spacing for MacBook screens scaled for more content to not have the extra white space/padding on those screens.
Risk: Low
Risk Detail: The change only increases the width of the XL breakpoint.
Reward: High
Reward Details: Users will have a better reading experience on a 16inch MacBook Pro scaled for more content.
Original PR: https://github.com/apple/swift-docc-render/pull/163
Issue: rdar://91308558
Code Reviewed By: @dobromir-hristov @biamx3
Testing Details: Manually tested in the browser

@swift-ci test

@swift-ci test

@swift-ci test


need help, not able to open the json in local browser

My sandbox is run in vagrant , I can open the json file with "curl http://localhost:5554/rest_api.json" command ,that means the server run in vagrant is fine , but I am  not able to open the json in local browser ,seems it is the network problem , anyone got the same issue ?

Did you edit the REST port in core.yaml? If so, you likely need to edit the Vagrantfile. By default the REST port is forwarded to port 5000 outside of Vagrant. https://github.com/hyperledger/fabric/blob/master/devenv/Vagrantfile#L37


fix: use correct host in URL construction

From #17324
This catches us often in tasks, defaulting to localhost.

I did some code spelunking to see if this was relatively easy to make "standard", and here's the path:

construct a request-like object when called via get_request via pyramid.scripting.prepare(registry=registry)
as we don't pass a request (how could we? it doesn't exist yet!), only a registry to prepare()
it in turn calls _make_request with a path of / and registry
inside webob.request.BaseRequest.blank, where a call to environ_from_url(path='/') will return http://localhost:80/ from this logic
It doesn't look like there's an opportunity to inject a domain setting from the registry along that path.

I experimented with crafting a dummy request object by pulling the domain from the settings, but since we don't have a full URL handy, it doesn't work well.
Going to proceed with these changes for now.


No Live URL

The theme does not have any Live URL :(

Hi @tfsojon
I just update my own blog with "Top Hat" theme so you can see a live view on https://www.nohat.dev
I have updated the README.md file to include the link


Design SDS Heatmap initial API

DoD:

Complete an initial list of SDS Heatmap API for stakeholders to review
Produce a document that describes the anatomy of how data flows in the Heatmap components

Brainstorming doc:
https://docs.google.com/document/d/1Fh7JKXvuBPFscNeUPDzM9fyWSKu51nkn0-R1fxhr2EE/edit?usp=sharing

Final design doc:
https://docs.google.com/document/d/1WhRS71voSSVDt_x0d9r5fUKXQvi-X3uFyOnqXLzESjc/edit#


Error installing RDS

Our RDS implementation doesn't support Aurora (yet). This is a duplicate of #1121 I think?

but we should not be failing, just ignore it :/

but we should not be failing, just ignore it :/

Oh right, we probably should just drop those values from the parameter_group_family_enum even if we have to maintain our own enum for this.


[python] Early version of the generic profiler

This profiler:

Uses time tool to extract perf and memory usage
Uses SqllitDict to keep track of profile k/v data.
Designed to allow custom profilers extract stack info in the future

Based on this design: https://docs.google.com/document/d/1OQBzqXCNdviXM8ixT59WYn8nIXcRUSEwDJtV97Yb7Ik/
A simple test for the prfile:
python main.py python tests/objects.py
Issue and/or context:
Changes:
Notes for Reviewer:

Codecov Report
Patch coverage has no change and project coverage change: -11.55 :warning:

Comparison is base (04a4af3) 65.36% compared to head (18773e4) 53.82%.

:exclamation: Current head 18773e4 differs from pull request most recent head 1036895. Consider uploading reports for the commit 1036895 to get more accurate results

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1290       +/-   ##
===========================================
- Coverage   65.36%   53.82%   -11.55%
===========================================
  Files          96       66       -30
  Lines        7720     5327     -2393
===========================================
- Hits         5046     2867     -2179
+ Misses       2674     2460      -214

Flag
Coverage Δ

python
?

r
53.82% <ø> (+0.06%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
see 31 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

@beroy did you mean to add this to the data viz sprint, or some other sprint? Thanks!

@dsadgat I don't think. @atolopko-czi  what do you suggest?

@dsadgat I don't think. @atolopko-czi what do you suggest?

right, not part of data viz sprint (already removed, seemingly)

@atolopko-czi @beroy

Finally, I would just check with the greater TileDB-SOMA team that everyone is okay with merging this to the repo, as opposed to e.g. placing it in a new repo entirely.

I'm OK with it being in the profiler directory -- this is sufficient decomposition IMO.

@atolopko-czi this ticket seems impossible to remove from our sprint. Is there an ETA on completion?

this ticket seems impossible to remove from our sprint. Is there an ETA on completion?

@dsadgat It's near the finish line.


d2l-pager-load-more not accessible/focusable in d2l-list with grid attribute

Currently you cannot access the d2l-pager-load-more via keyboard navigation when it's being used in association with a d2l-list that has the grid attribute.
The only work-around for this is if there are other focusable components after the list & load-more button. In that case, you can tab to that, then reverse tab into the d2l-pager-load-more component. This isn't much a workaround though, since you'd need to have a design with this in mind, which isn't always possible.

Thanks for raising this Chris. We should be able to make a fix for this.

Thanks Dave! I've noticed that there's an instance in which this issue doesn't occur, which is when the last item in the list isn't focusable due to not having a href. I'm not sure if that's related to the problem or not, but I figure I'd mention it in case it's relevant.

I've created DE51137 if you want to follow along!

Thanks Stacey!

This should be fixed for core version 2.67.4!  @ChrisLabattD2L let us know if you still see any issues!

Just tested it quickly, and it's no longer an issue, thanks 😄


ovs: Ignore ovs-port always

At containerize nmstate we cannot run "systemctl openvswitch status" so
even with a openvswitch running at host it will appear as non running
but the ovs information will arrive from NM dbus interface. This breaks
nmstatectl show since ovs-port is not part of nmstate and is not
included in the schema. This change just ignore ovs-port even if
openvswitch appear as not running.
Signed-off-by: Quique Llorente<EMAIL_ADDRESS>

@cathay4t this was a backport, #1426 was not merged yet as the solution is probably to just drop the whole ovs capability check here.


Inconsistent timeout events

I couldn't create a consistent example to reproduce the issue, but sometimes (once to 2-3 runs) the code fails to emit a timeout event when using an invalid URL (e.g. example.test). However, it emits the event every time when using nowhere.com.
const { ClientRequestInterceptor } = require('@mswjs/interceptors/ClientRequest')
const http = require('http');

const interceptor = new ClientRequestInterceptor({
  name: 'my-interceptor',
})
interceptor.apply();
interceptor.on('request', async ({ request }) => {
  await new Promise(r => setTimeout(r, 1000));
  request.respondWith(new Response('hello'))
});

http.get('http://example.text/', { timeout: 10 }, res => {
  res.on('data', () => { })
  res.on('end', () => {
    console.log(1)
    http.get('http://example.text/', { timeout: 10 }, res => {
      res.on('data', () => { })
      res.on('end', () => {
        console.log(1)
      })
    })
      .on('timeout', () => console.log('timeout'))
      .on('error', e => {
        console.log(e)
      })
  })
})
  .on('timeout', () => console.log('timeout'))
  .on('error', e => {
    console.log(e)
  })

logs:
15:27:50:202 [http] constructing the interceptor...
15:27:50:219 [http:apply] applying the interceptor...
15:27:50:219 [http] retrieved global instance: undefined
15:27:50:219 [http:apply] no running instance found, setting up a new instance...
15:27:50:220 [http:setup] native "http" module patched!
15:27:50:220 [http:setup] native "https" module patched!
15:27:50:220 [http] set global instance! http
15:27:50:220 [http:on] adding "request" event listener:
15:27:50:221 [http normalizeClientRequestArgs] arguments ["http://example.text/",null]
15:27:50:221 [http normalizeClientRequestArgs] using default protocol: http:
15:27:50:221 [http normalizeClientRequestArgs] first argument is a location string: http://example.text/
15:27:50:221 [http normalizeClientRequestArgs] created a url: "http://example.text/"
15:27:50:222 [http normalizeClientRequestArgs] request options from url: {"method":"GET","protocol":"http:","hostname":"example.text","host":"example.text","path":"/"}
15:27:50:222 [http normalizeClientRequestArgs] request options not provided, deriving from the url "http://example.text/"
15:27:50:222 [http normalizeClientRequestArgs] resolved request options: {"method":"GET","protocol":"http:","hostname":"example.text","host":"example.text","path":"/"}
15:27:50:222 [http normalizeClientRequestArgs] resolved fallback agent: {"_events":{},"_eventsCount":2,"defaultPort":80,"protocol":"http:","options":{"noDelay":true,"path":null},"requests":{},"sockets":{},"freeSockets":{},"keepAliveMsecs":1000,"keepAlive":false,"maxSockets":null,"maxFreeSockets":256,"scheduling":"lifo","maxTotalSockets":null,"totalSocketCount":0}
15:27:50:222 [http normalizeClientRequestArgs] has no default agent, setting the default agent for "http:"
15:27:50:222 [http normalizeClientRequestArgs] successfully resolved url: http://example.text/
15:27:50:223 [http normalizeClientRequestArgs] successfully resolved options: {"method":"GET","protocol":"http:","hostname":"example.text","host":"example.text","path":"/","agent":{"_events":{},"_eventsCount":2,"defaultPort":80,"protocol":"http:","options":{"noDelay":true,"path":null},"requests":{},"sockets":{},"freeSockets":{},"keepAliveMsecs":1000,"keepAlive":false,"maxSockets":null,"maxFreeSockets":256,"scheduling":"lifo","maxTotalSockets":null,"totalSocketCount":0},"_defaultAgent":{"_events":{},"_eventsCount":2,"defaultPort":80,"protocol":"http:","options":{"keepAlive":true,"scheduling":"lifo","timeout":5000,"noDelay":true,"path":null},"requests":{},"sockets":{},"freeSockets":{},"keepAliveMsecs":1000,"keepAlive":true,"maxSockets":null,"maxFreeSockets":256,"scheduling":"lifo","maxTotalSockets":null,"totalSocketCount":0}}
15:27:50:223 [http normalizeClientRequestArgs] successfully resolved callback: res => {
  res.on('data', () => { })
  res.on('end', () => {
    console.log(1)
    http.get('http://example.text/', { timeout: 10 }, res => {
      res.on('data', () => { })
      res.on('end', () => {
        console.log(1)
      })
    })
      .on('timeout', () => console.log('timeout'))
      .on('error', e => {
        console.log(e)
      })
  })
}
15:27:50:228 [http:request GET http://example.text/] constructing ClientRequest using options: {"url":"http://example.text/","requestOptions":{"method":"GET","protocol":"http:","hostname":"example.text","host":"example.text","path":"/","agent":{"_events":{},"_eventsCount":2,"defaultPort":80,"protocol":"http:","options":{"noDelay":true,"path":null},"requests":{},"sockets":{"example.text:80:":[{"connecting":true,"_hadError":false,"_parent":null,"_host":"example.text","_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":null,"ended":false,"endEmitted":false,"reading":false,"constructed":true,"sync":true,"needReadable":false,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":6,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null}]},"freeSockets":{},"keepAliveMsecs":1000,"keepAlive":false,"maxSockets":null,"maxFreeSockets":256,"scheduling":"lifo","maxTotalSockets":null,"totalSocketCount":1},"_defaultAgent":{"_events":{},"_eventsCount":2,"defaultPort":80,"protocol":"http:","options":{"keepAlive":true,"scheduling":"lifo","timeout":5000,"noDelay":true,"path":null},"requests":{},"sockets":{},"freeSockets":{},"keepAliveMsecs":1000,"keepAlive":true,"maxSockets":null,"maxFreeSockets":256,"scheduling":"lifo","maxTotalSockets":null,"totalSocketCount":0}}}
15:27:50:229 [http:request GET http://example.text/] end []
15:27:50:229 [utils getUrlByRequestOptions] arguments []
15:27:50:230 [utils getUrlByRequestOptions] normalized args [null,null,null]
15:27:50:230 [http:request GET http://example.text/] normalized arguments: {"chunk":null,"encoding":null,"callback":null}
15:27:50:245 [http:request GET http://example.text/] emitting the "request" event for 2 listener(s)...
15:27:50:248 [http:request GET http://example.text/] emit: socket
15:27:50:250 [http:request GET http://example.text/] emit: error
15:27:50:250 [http:request GET http://example.text/] error:
 {"errno":-3008,"code":"ENOTFOUND","syscall":"getaddrinfo","hostname":"example.text"}
15:27:50:251 [http:request GET http://example.text/] captured the first error: {"errno":-3008,"code":"ENOTFOUND","syscall":"getaddrinfo","hostname":"example.text"}
15:27:50:252 [http:request GET http://example.text/] emit: close
15:27:51:254 [http:request GET http://example.text/] all "request" listeners done!
15:27:51:255 [http:request GET http://example.text/] event.respondWith called with: {}
15:27:51:256 [http:request GET http://example.text/] the listeners promise awaited!
15:27:51:256 [http:request GET http://example.text/] received mocked response: 200
15:27:51:264 [http:request GET http://example.text/] responding with a mocked response... {}
15:27:51:265 [http:request GET http://example.text/] emit: finish
15:27:51:265 [http:request GET http://example.text/] mocked response headers ready: {}
15:27:51:266 [http:request GET http://example.text/] emit: response
15:27:51:266 [http:request GET http://example.text/] found "response" event, cloning the response...
15:27:51:269 [http:request GET http://example.text/] emit: response-internal
15:27:51:269 [http:request GET http://example.text/] response successfully cloned, emitting "response" event...
15:27:51:270 [http:request GET http://example.text/] 200  (MOCKED)
15:27:51:270 [http:request GET http://example.text/] emitting the custom "response" event...
15:27:51:270 [http:request GET http://example.text/] request (mock) is completed
15:27:51:276 [http:request GET http://example.text/] finished response stream!
15:27:51:277 [http:request GET http://example.text/] finalizing response...
15:27:51:278 [http:request GET http://example.text/] request complete!
1
15:27:51:279 [http normalizeClientRequestArgs] arguments ["http://example.text/",{"timeout":10},null]
15:27:51:280 [http normalizeClientRequestArgs] using default protocol: http:
15:27:51:280 [http normalizeClientRequestArgs] first argument is a location string: http://example.text/
15:27:51:280 [http normalizeClientRequestArgs] created a url: "http://example.text/"
15:27:51:280 [http normalizeClientRequestArgs] request options from url: {"method":"GET","protocol":"http:","hostname":"example.text","host":"example.text","path":"/"}
15:27:51:280 [http normalizeClientRequestArgs] has custom RequestOptions! {"timeout":10}
15:27:51:280 [http normalizeClientRequestArgs] derived RequestOptions from the URL: {"method":"GET","protocol":"http:","hostname":"example.text","host":"example.text","path":"/"}
15:27:51:281 [http normalizeClientRequestArgs] cloning RequestOptions...
15:27:51:281 [cloneObject] cloning object: {"timeout":10}
15:27:51:281 [cloneObject] analyzing key-value pair: timeout 10
15:27:51:281 [cloneObject] is plain object? 10
15:27:51:281 [cloneObject] checking the object constructor: Number
15:27:51:281 [cloneObject] is plain object? {"timeout":10}
15:27:51:281 [cloneObject] checking the object constructor: Object
15:27:51:281 [http normalizeClientRequestArgs] successfully cloned RequestOptions! {"timeout":10}
15:27:51:281 [http normalizeClientRequestArgs] resolved request options: {"method":"GET","protocol":"http:","hostname":"example.text","host":"example.text","path":"/","timeout":10}
15:27:51:281 [http normalizeClientRequestArgs] resolved fallback agent: {"_events":{},"_eventsCount":2,"defaultPort":80,"protocol":"http:","options":{"noDelay":true,"path":null},"requests":{},"sockets":{},"freeSockets":{},"keepAliveMsecs":1000,"keepAlive":false,"maxSockets":null,"maxFreeSockets":256,"scheduling":"lifo","maxTotalSockets":null,"totalSocketCount":0}
15:27:51:282 [http normalizeClientRequestArgs] has no default agent, setting the default agent for "http:"
15:27:51:282 [http normalizeClientRequestArgs] successfully resolved url: http://example.text/
15:27:51:282 [http normalizeClientRequestArgs] successfully resolved options: {"method":"GET","protocol":"http:","hostname":"example.text","host":"example.text","path":"/","timeout":10,"agent":{"_events":{},"_eventsCount":2,"defaultPort":80,"protocol":"http:","options":{"noDelay":true,"path":null},"requests":{},"sockets":{},"freeSockets":{},"keepAliveMsecs":1000,"keepAlive":false,"maxSockets":null,"maxFreeSockets":256,"scheduling":"lifo","maxTotalSockets":null,"totalSocketCount":0},"_defaultAgent":{"_events":{},"_eventsCount":2,"defaultPort":80,"protocol":"http:","options":{"keepAlive":true,"scheduling":"lifo","timeout":5000,"noDelay":true,"path":null},"requests":{},"sockets":{},"freeSockets":{},"keepAliveMsecs":1000,"keepAlive":true,"maxSockets":null,"maxFreeSockets":256,"scheduling":"lifo","maxTotalSockets":null,"totalSocketCount":0}}
15:27:51:282 [http normalizeClientRequestArgs] successfully resolved callback: res => {
      res.on('data', () => { })
      res.on('end', () => {
        console.log(1)
      })
    }
15:27:51:283 [http:request GET http://example.text/] constructing ClientRequest using options: {"url":"http://example.text/","requestOptions":{"method":"GET","protocol":"http:","hostname":"example.text","host":"example.text","path":"/","timeout":10,"agent":{"_events":{},"_eventsCount":2,"defaultPort":80,"protocol":"http:","options":{"noDelay":true,"path":null},"requests":{},"sockets":{"example.text:80:":[{"connecting":true,"_hadError":false,"_parent":null,"_host":"example.text","_closeAfterHandlingError":false,"_readableState":{"objectMode":false,"highWaterMark":16384,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":null,"ended":false,"endEmitted":false,"reading":false,"constructed":true,"sync":true,"needReadable":false,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":6,"_writableState":{"objectMode":false,"highWaterMark":16384,"finalCalled":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"destroyed":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"corked":0,"sync":true,"bufferProcessing":false,"writecb":null,"writelen":0,"afterWriteTickInfo":null,"buffered":[],"bufferedIndex":0,"allBuffers":true,"allNoop":true,"pendingcb":0,"constructed":true,"prefinished":false,"errorEmitted":false,"emitClose":false,"autoDestroy":true,"errored":null,"closed":false,"closeEmitted":false},"allowHalfOpen":false,"_sockname":null,"_pendingData":null,"_pendingEncoding":"","server":null,"_server":null,"timeout":10}]},"freeSockets":{},"keepAliveMsecs":1000,"keepAlive":false,"maxSockets":null,"maxFreeSockets":256,"scheduling":"lifo","maxTotalSockets":null,"totalSocketCount":1},"_defaultAgent":{"_events":{},"_eventsCount":2,"defaultPort":80,"protocol":"http:","options":{"keepAlive":true,"scheduling":"lifo","timeout":5000,"noDelay":true,"path":null},"requests":{},"sockets":{},"freeSockets":{},"keepAliveMsecs":1000,"keepAlive":true,"maxSockets":null,"maxFreeSockets":256,"scheduling":"lifo","maxTotalSockets":null,"totalSocketCount":0}}}
15:27:51:284 [http:request GET http://example.text/] end []
15:27:51:284 [utils getUrlByRequestOptions] arguments []
15:27:51:284 [utils getUrlByRequestOptions] normalized args [null,null,null]
15:27:51:284 [http:request GET http://example.text/] normalized arguments: {"chunk":null,"encoding":null,"callback":null}
15:27:51:285 [http:request GET http://example.text/] emitting the "request" event for 2 listener(s)...
15:27:51:286 [http:request GET http://example.text/] emit: socket
15:27:51:291 [http:request GET http://example.text/] emit: error
15:27:51:291 [http:request GET http://example.text/] error:
 {"errno":-3008,"code":"ENOTFOUND","syscall":"getaddrinfo","hostname":"example.text"}
15:27:51:291 [http:request GET http://example.text/] captured the first error: {"errno":-3008,"code":"ENOTFOUND","syscall":"getaddrinfo","hostname":"example.text"}
15:27:51:291 [http:request GET http://example.text/] emit: close
15:27:52:288 [http:request GET http://example.text/] all "request" listeners done!
15:27:52:288 [http:request GET http://example.text/] event.respondWith called with: {}
15:27:52:289 [http:request GET http://example.text/] the listeners promise awaited!
15:27:52:289 [http:request GET http://example.text/] received mocked response: 200
15:27:52:292 [http:request GET http://example.text/] responding with a mocked response... {}
15:27:52:293 [http:request GET http://example.text/] emit: finish
15:27:52:293 [http:request GET http://example.text/] mocked response headers ready: {}
15:27:52:294 [http:request GET http://example.text/] emit: response
15:27:52:294 [http:request GET http://example.text/] found "response" event, cloning the response...
15:27:52:295 [http:request GET http://example.text/] emit: response-internal
15:27:52:296 [http:request GET http://example.text/] response successfully cloned, emitting "response" event...
15:27:52:296 [http:request GET http://example.text/] 200  (MOCKED)
15:27:52:296 [http:request GET http://example.text/] emitting the custom "response" event...
15:27:52:297 [http:request GET http://example.text/] request (mock) is completed
15:27:52:299 [http:request GET http://example.text/] finished response stream!
15:27:52:299 [http:request GET http://example.text/] finalizing response...
15:27:52:300 [http:request GET http://example.text/] request complete!
1

I discovered that by wrapping the second call with setImmediate, the likelihood of missing the timeout event significantly increases.
const { ClientRequestInterceptor } = require('@mswjs/interceptors/ClientRequest')
const http = require('http');

const interceptor = new ClientRequestInterceptor({
  name: 'my-interceptor',
})
interceptor.apply();
interceptor.on('request', async ({ request }) => {
  await new Promise(r => setTimeout(r, 1000));
  request.respondWith(new Response('hello'))
});

http.get('http://example.text/', res => {
  res.on('data', () => { })
  res.on('end', () => {
    console.log(1)
    setImmediate(() => {
      http.get('http://example.text/', { timeout: 10 }, res => {
        res.on('data', () => { })
        res.on('end', () => {
          console.log(1)
        })
      })
        .on('timeout', () => console.log('timeout'))
        .on('error', e => {
          console.log(e)
        })
    })
  })
})
  .on('timeout', () => console.log('timeout'))
  .on('error', e => {
    console.log(e)
  })

Our tests are no longer inconsistent. I will reopen if found otherwise.


feat(hybrid) allow port mappings in hybrid mode

This adds port mapping support from $GOJIRA_PORTS (-pp/--port) to hybrid mode.
e.g., this will now map control plane ports to the host in hybrid mode:
gojira hybrid up \
  -pp 8000:8000 \
  -pp 8001:8001 \
  -pp 8002:8002 \
  -pp 8003:8003 \
  -pp 8004:8004 \
  -pp 8443:8443 \
  -pp 8444:8444 \
  -pp 8445:8445

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Browser-level cookies API

We need a way to fetch, add and remove cookies from browser:
const cookies = await browser.cookies();
await browser.deleteCookie(cookies[0])
await browser.addCookie(cookies[0]);

When the #85 is implemented, the cookies will belong to the browser context. This will nicely explain cookie scoping: different pages from the same browser context share cookies, whereas pages from different browser contexts don't.
And once we have cookies on browser / browserContext, we can remove page's cookies api.

bumppp

beautiful feature, bump

This is a key feature we’d like to have, is it only a matter of creating the node interface of does it require work in chrome proper as well? If the former, I’d be happy to help.
Thanks,
Francisco

This is a key feature we’d like to have

@tolmasky Would you mind sharing your usecase?

is it only a matter of creating the node interface of does it require work in chrome proper as well?

This does require Chromium patch. Cookies are stored per browser context, so we need a way to query browser context for cookies without any page.

Sure, we use Puppeteer for testing, and many actions require log in. If we go through the manual steps of logging in it makes the tests way slower. So instead, we just fetch(/login), grab the cookie from that, and implant it into the browser. Right now, we're just putting it into a random page (which I guess then propagates it to everything else in the context?). I suppose this is fine -- its just very confusing whether a page is logged in, or a context is logged in. If we instead were just doing await login(context) it would be a lot clearer what's going on.

Found a work around. https://stackoverflow.com/questions/46631333/how-to-recreate-a-page-with-all-of-the-cookies

We use another workaround that might help others here: https://gist.github.com/jeroenvisser101/636030fe66ea929b63a33f5cb3a711ad
It uses the Network.setCookies and Network.getAllCookies CDP commands.

2020 still waiting on that :(


I use same parameters but error appears and disappears without clear reason.
My code
Engine:
I tried to change these parameters:

driver

fast_executemany=False/True
 `driver = "ODBC Driver 17 for SQL Server"
  server = 'server'
  username = os.getenv('MSSQL_USER')
  password = os.getenv('MSSQL_PASSWORD')
  database = 'db'

  odbc_str = f'DRIVER={driver};SERVER={server};PORT=1433;UID={username};DATABASE={database};PWD={password}'
  connect_str = f'mssql+pyodbc:///?odbc_connect={urllib.parse.quote_plus(odbc_str)}'

  engine = sqlalchemy.create_engine(connect_str, fast_executemany=False)`

Inject into MS SQL:
I tried to change these parameters:

if_exists='replace'/'append',

index=False/True

schema='randata'/no schema
        `df.to_sql(sql_table_name,
        general.get_engine(),
        if_exists='replace',
        index=False,
        dtype=db_schemas.MS1_MS8_SCHEMA_MAPPING,
        schema='data')`

Could you please help to resolve this?
Thank you.
Daria

10060 - connection timed out
Intermittent network problem. You may want to check for packet loss. Run a script that simply connects and disconnects repeatedly to the server and see if you can reproduce the same error that way.

I think I found the solution. I'm using Anaconda and though I installed pyodbc 4.0.30 with conda package manager, under the hood it is 4.0.0-unsupported. (Very poor job from Anaconda to be honest)
I removed pyodbc from conda and installed 4.0.30 using pip and that seems to solve the issue.
Closing the issue as it seems no longer the case.


replace Math.random()

the library currently uses Math.random() in a few places. this makes it hard to define expected behaviour for tests.

fixed with  acef18e


fix: 🐛 Fixes moveNewHandle for click-move-click interaction

cosmetic change to trigger publish messed up in previous PR. Nothing to see here.

:tada: This PR is included in version 4.14.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Tor browser will not load?

Is it just me, or is the tor browser no longer loading with this new version?
XPCOMGlueLoad error for file /usr/local/bin/Browser/libmozgtk.so:
libgtk-3.so.0: cannot open shared object file: No such file or directory
Couldn't load XPCOM.
Might I be doing something wrong?

Probably related to https://github.com/jessfraz/dockerfiles/pull/406.
Haven't had the chance to test the PR yet.
On Sat, Sep 8, 2018 at 9:37 PM matt812<EMAIL_ADDRESS>wrote:

Is it just me, or is the tor browser no longer loading with this new
version?
XPCOMGlueLoad error for file /usr/local/bin/Browser/libmozgtk.so:
libgtk-3.so.0: cannot open shared object file: No such file or directory
Couldn't load XPCOM.
Might I be doing something wrong?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jessfraz/dockerfiles/issues/409, or mute the thread
https://github.com/notifications/unsubscribe-auth/AGBuMoiwd8djCAcX1Q-a2ZgKgWiArpw_ks5uZByBgaJpZM4WgAU8
.

Fixed via #406.


Prep benchmarks script for CTS revamp

This PR preps some of the flame graph processing for the new ClimaTimeSteppers revamp.

bors r+


com.parse.ParseRequest$ParseRequestException: bad json response

Here is someone else reported this earlier
It looks like I am facing the same issue as above with the newer version of
Parse API 'com.parse:parse-android:1.13.0'
Downgrading to Parse API 'com.parse:parse-android:1.12.0' doesn't work for me either. I get error in
.server("http://<IP_ADDRESS>:1337/parse")  in below code.  saying can not resolve method server(java.lang.string)
Parse.initialize(new Parse.Configuration.Builder(getApplicationContext())
					.applicationId("NjTVO3LsUaJ9QW8MEUDUSs3aYhqmAWq1ErCy9fBp")
					.clientKey(null)
					.server("http://<IP_ADDRESS>:1337/parse")
					.build()
	);

Here is my gradle file :
buildscript {
repositories {
    maven { url 'https://maven.fabric.io/public' }
}

dependencies {
    classpath 'io.fabric.tools:gradle:1.+'
}

}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

repositories {
jcenter()
maven { url 'https://maven.fabric.io/public' }
}

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
    applicationId "com.buddyreminder.app"
    minSdkVersion 16
    targetSdkVersion 23
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
    debug {
        debuggable true
    }
}
}

dependencies {
compile 'com.android.support:support-v4:23.0.0'
compile 'com.android.support:appcompat-v7:23.0.0'
//compile files('libs/Parse-1.13.0.jar')
compile 'com.parse:parse-android:1.13.0'
compile 'com.parse.bolts:bolts-android:1.+'
compile files('libs/simmetrics_jar_v1_6_2_d07_02_07.jar')
compile('com.digits.sdk.android:digits:1.9.3@aar') {
    transitive = true;
}

}

Is this an issue related to Parse Server? Is your app making any requests to Parse Server that are failing? Use Parse Network Interceptors to find out. If your app isn't making any requests, then try the Android SDK repo.

yes its an issue related to parse server.
I am making this request  :
ParseCloud.callFunctionInBackground("SaveNewData", newDataObj,
new FunctionCallback() {
@Override
public void done(String result,
com.parse.ParseException e) {
if (e == null) {
Log.d("New Data Saved : ", result);
newDataDialog.dismiss();
}else{
Log.e("Error:", e.getMessage());
if(!Utility.checkInternetConnection(getActivity())){
saveNewDataEventually();
newReminderDialog.dismiss();
Toast.makeText(currentActivity.getApplicationContext(), R.string.data_sent_network_error, Toast.LENGTH_LONG).show();
}
}
}
});

Can you provide your cloud code?

I got same issue and I fixed it by adding "/" to the end of server.
"http://<IP_ADDRESS>:1337/parse" -> "http://<IP_ADDRESS>:1337/parse/"
Hope it will help you

Yes, That resolved this issue.

I just encountered the same issue, perhaps the wiki guide should be updated?

I updated the wiki this morning to include the trailing slash.

👍🏻 thanks a lot

wow thank you guys, I was pulling my remaining hair out on this one!!

It works.


[WIP] UI upload interface

Sorry 🤐  bad PR target

good luck in your hackathon man haha

Thanks! And thanks for open-sourcing this repo -- super useful since I've never used streamlit 🙏


Detect encoder calibration problems (like obstructions)

We can start the encoder calibration with a short initial move to resolve the direction. Then once we start the fwd/rev scan we can simply have a window of allowed encoder values as we scan. If the window is violated, the calibration fails.

The Encoder CPR code that was just implemented should correctly error out on obstruction too.

True! That means:
Done by #114 .


ls does not follow symlinks if symlink argument(s) are terminated by slash

Ubuntu 14.04 LTS Linux Kernel:
[root@vz1 ~] # ls -laF /var/lock
lrwxrwxrwx 1 root root 9 Jun 28  2015 /var/lock -> /run/lock/
[root@vz1 ~] # ls -laF /var/lock/
total 0
drwxrwxrwt  2 root root  40 Feb 23 02:58 ./
drwxr-xr-x 19 root root 620 Jun 18 16:23 ../
[root@vz1 ~] #

Ubuntu 14.04 LTS with WSL 14367:
[root@xeon1 ~] # ls -laF /var/lock
lrwxrwxrwx 1 root root 9 Mar 23 21:41 /var/lock -> /run/lock/
[root@xeon1 ~] # ls -laF /var/lock/
lrwxrwxrwx 1 root root 9 Mar 23 21:41 /var/lock/ -> /run/lock/
[root@xeon1 ~] #

Thank you for reporting.  There was an issue with trailing slash handling that has been fixed internally and will be an Insider build soon.  Keep an eye out for our release notes.

Fixed in 14371


List source files explicitly

The cmake file currently uses aux_source_directory. The documentation for this says:

It is tempting to use this command to avoid writing the list of source files for a library or executable target. While this seems to work, there is no way for CMake to generate a build system that knows when a new source file has been added. Normally the generated build system knows when it needs to rerun CMake because the CMakeLists.txt file is modified to add a new source. When the source is just added to the directory without modifying this file, one would have to manually rerun CMake to generate a build system incorporating the new file.

Therefore, please do not use this command and instead list source files (see PR).

Thanks, done!

Thanks!

The problem isn't actually fixed. Source files should be in the same directory or subdirectories of the file
containing CMakeLists.txt and identified by relative paths. The ${PROJECT_SOURCE_DIR}/ParaDEM/ breaks generation on my machine. See #19 for an example of how to do this correctly.

Sorry, it was my mistake. Done!

It seems fixed now, though I'd still recommend replacing, e.g. ${PROJECT_SOURCE_DIR}/src/flowdir/main.cpp with src/flowdir/main.cpp. As far as I'm aware, they should do the same thing, but one gives a less cluttered looking CMakeLists.txt. Feel free to correct me if I'm mistaken.

Thansk. Done!


[GITLAB] Aggregate review comments and shoot in 1 as generally the MR review works in Gitlab

Hello Guys,
First of all Thanks to everyone involved in making my life easy by integrating this tool with Gitlab specifically @okotek and @idavidov. It's working in a good manner so far sometimes it fails but it revives again.
I am back again as I am not sure if it's an issue or an improvement that maybe we can incorporate in the PR-AGENT or if you guys can guide me on how to enable it (if it already exists).
Whenever the PR-Agent does the code reviews it generates a comment and shoots an email for every comment which is pretty annoying for everyone to receive a huge amount of email every time causing the lack of usefulness of this tool.
Can we somehow enable a way to aggregate all comments in one i.e. the way normal reviews work in GitLab is you are capable of submitting your reviews until you are done with your reviews and release it in one shoot?
Can we make PR-Agent as well more efficient to do the same? Please shoot me if you have any questions I am happy to assist and answer.
Image for reference:

I think it's happening as I used the inline code comments and for each comment, I am receiving an email. Can I follow some review methodology that will not comment but mark every review comment as a review?

@mrT23 could you please help me here?

We did implement this in GitHub and BitBucket, it's on our list for GitLab as well, but it's not a top priority, and we could use community support for this. I'll update this issue when we'll have news.


Create Blog "Multicore-enabling the N-queens problem using OpenCilk"

See https://web.archive.org/web/20081228000829/http://www.cilk.com/multicore-blog/bid/6381/Multicore-enabling-the-N-Queens-Problem-Using-Cilk

This filled with technical raw material, and it's less of a story than most posts in the blog pipeline. It documents various approaches to N-queens and includes an intriguing comment from someone who shared his own bit-vector code. Could be interesting to connect with #166 (blog about my favorite bit tricks). That commenter has his own blog where he posted his code at https://therandombit.blogspot.com/2008/09/n-queens-implmented-with-bits.html


Allow --geometry option for launching at a different size.

Although I don't mind resizing/going fullscreen, it would be really cool if I could launch tinyterm with something like:
tinyterm --geometry=140x40
Or in the spirit of simplicity, maybe you could just have a tinyterm --medium that was a little bigger, the default seems really tiny on higher-res screens.

This can be solved by configuring the window manager to manage the size of windows. See for example Openbox#Window snapping or even use a tiling window manager.

Thanks! I ended up forking the project and adding it to the config.h.
On Sat, Jun 6, 2015, 1:54 AM Jakub Klinkovský<EMAIL_ADDRESS>wrote:

This can be solved by configuring the window manager to manage the size of
windows. See for example Openbox#Window snapping
https://wiki.archlinux.org/index.php/Openbox#Window_snapping or even
use a tiling window manager
https://en.wikipedia.org/wiki/Tiling_window_manager.
—
Reply to this email directly or view it on GitHub
https://github.com/lahwaacz/tinyterm/issues/5#issuecomment-109553859.


Could not find libroot.so

Setup HyClone prefix
Setting up filesystem at /home/diver/.hprefix...
HyClone owner UID: 1000
HyClone owner GID: 1000
Installing package: coreutils-9.3-2-x86_64
Installing package: zlib-1.2.13-2-x86_64
Installing package: libsolv-0.3.0_haiku_2014_12_22-4-x86_64
Installing package: icu66-66.1-3-x86_64
Installing package: haiku-r1~beta4_hrev56948-1-x86_64
Installing package: openssl-1.1.1t-1-x86_64
Installing package: readline-8.1.002-1-x86_64
Installing package: gcc_syslibs-11.2.0_2021_07_28-8-x86_64
Installing package: zstd-1.5.2-3-x86_64
Installing package: libiconv-1.17-3-x86_64
Installing package: gawk-5.1.1-1-x86_64
Installing package: ncurses6-6.3-2-x86_64
Installing package: bash-5.1.016-1-x86_64
Installing package: gettext_libintl-0.21.1-3-x86_64
Could not find libroot.so at "/home/diver/hyclone/build/lib/libroot.so"
HyClone may not work correctly without the correct custom libroot.so
terminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error'
  what():  filesystem error: cannot copy file: No such file or directory [/home/diver/hyclone/build/lib/libroot.so] [/home/diver/.hprefix/boot/system/lib/libroot.so]
./build_hprefix.sh: line 121: 17411 Aborted                 (core dumped) $SCRIPT_DIR/build/hyclone_server/hyclone_server

It seems that you've installed hyclone_server to the default system prefix (/bin/hyclone_server) instead of using cmake -DCMAKE_INSTALL_PREFIX=. right?
This is a bug in hyclone_server as it has not been tested for the case of installing to the default system prefix. However, a temporary workaround would be to add -DCMAKE_INSTALL_PREFIX=. to install hyclone_server to <hyclone-source-directory>/build/bin/hyclone_server.

This is strange as CMAKE_INSTALL_PREFIX should have changed the installation directory.
Can you try cmake .. -DCMAKE_INSTALL_PREFIX=. instead?
Currently I'm working on a fix for build_hprefix.sh to select the installed instance of hyclone_server instead of the one from the build directory.


Add some way of sharing a visualization

Hey @lhorie
I've been thinking about this too, and I got a little stuck right now.
Well, let me first ask, have you set up a server to pick your stats file from? I have on my todo list a task to encode the file & ignored paths in the URL, but I can only make that work if I can fetch the file again and know it's URL.
Without the server idk... I could setup a public server, but I'd have to save people's data which has some other considerations. Do you have any ideas?

One way would be to have some sort of querystring param ?url=http://something/stats.json that fetches the file, but admittedly, having to set up a server just for this is a bit of a hassle.
Alternatively, this project could be on npm, and there could be some way of feeding a stats file url directly from CLI. Then, people could just npm install bonsai, and share a CLI command like bonsai /path/to/stats.json that would then launch a local server running the web app with the file preloaded.

So we do have something like this. Head over to https://pinterest.github.io/bonsai/build-options.html and checkout the REACT_APP_STATS_URL field.
You can grab Bonsai from npm with 'npm install bonsai-analyzer' and then set that param and do a build. As long as the file is accessible should be good to go, including using file:// urls and no server. All the usual rules apply with that though.

Closing this out because we've got bookmarkable urls now! It'll only work when a server is setup, but it gets things moving.
You can test it by jumping straight into the first chunk in the example data: https://pinterest.github.io/bonsai/analyze/#filename=%2Fbonsai%2Fexample.json&chunk=0
(might need a reload for the service worker to catch up)


Issue #43

I would add a comment by the code for "doxygen" formatting. Even if it seems redundant

A nice and simple change, I would however add documentation that specifies how someone would revert this change back to the original functionality if it was ever wanted.


[Bug]: source build fails to transform path alias of dependency's dependency

Version
System:
    OS: macOS 13.2.1
    CPU: (16) x64 Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
    Memory: 520.72 MB / 32.00 GB
    Shell: 5.8.1 - /bin/zsh
  Browsers:
    Chrome: 126.0.6478.63
    Safari: 16.3
  npmPackages:
    @modern-js/app-tools: ^2.54.2 => 2.54.2
    @modern-js/runtime: ^2.54.2 => 2.54.2
    @modern-js/tsconfig: ^2.54.2 => 2.54.2

Details
Say there is a monorepo

apps/app is the application
app depends on dep
dep depends on dep2

Now with source build enabled, app can transform path aliases of dep. However, it cannot transform path aliases of dep2.
For example,
the same line import { Person } from '@/decorator'; could be transformed when it is in dep, but cannot be transformed when it is in dep2
Reproduce link
https://github.com/yf-yang/modernjs-monorepo-example/tree/resolve-dep-bug
Reproduce Steps
pnpm i
cd apps/app
pnpm dev

An error would be thrown, telling that @/decorator fails to be resolved.
By commenting out the foo2 call in dep/src/foo.ts, the error goes away. Note that dep/src/foo.ts also imports from @/decorator.
Can you confirm if this is a modern.js bug or a rspack bug?

Transfered to Rsbuild repo

Get, conditional exports without subpath will be supported in next version


implement a simple public_key call for the keychain (no hd wallets yet)

the public_key must be returned in one of these formats:

hex
base64
base58
wif (with optional params: --prefix, --compression, --version from this page.)

For wif (wallet import format) you shall use the following default option values:
--prefix      = ''
--version     = 0x80
--compression = 0x01

--hd option will return a hierachical deterministic public key derived from either saved public key [un]encrypted private key.
Another option to implement is --derive. This will return a public key derived from private key rather than returning the saved public key from wallet storage (derived during the creation of the key pair).
If this option is selected and the private key is encrypted such request will prompt user for password.
Once hierarchical deterministic wallets are ready, the --derive option will similarly derive the public key directly from private key rather than from saved public key in the wallet storage.

[x] hex format
[ ] base64 format
[ ] wif format according to http://learnmeabitcoin.com/glossary/wif
[ ] --compression option for wif format
[ ] --version option for wif format
[ ] --prefix option for wif format
[ ] --hd option
[ ] --derive option

Is it necessary to implement base64 and wif format, considering that we abandoned from the wif format in the array-core?
Also what about hd and derive options? Are these options related to this issue?


Unable to Send Transaction - Too Many Parameters

Trying to send Eth in a transaction (my first) and receive the following error after clicking Generate Transaction:
"Whoops. There was an error. Too many params, want 1 got 2"
Using Chromium Version 49.0.2623.108 built on Debian stretch/sid, running on Debian stretch/sid (64-bit)

+1

It the underlying geth node that logs this error. This wallet merely displays it. But the transactions seem to fail.

I just followed the transaction flow in the debug window till the endpoint ( https://rpc.myetherwallet.com/api.php ) and it seems to work now.
Was something changed on the API-endpoint ? Everything up to the POST of the signed transaction seems to work without any problem client side.
I can't see if anything was changed server-side.

Oh shoot. I forgot to respond here (we also received like 10 emails)
We updated MyEtherWallet.com @ 5am when our geth node went down and in doing so broke the Chrome Extension. We fixed this new issue with the CX yesterday. It was a problem that happens in the relay (I believe).
Should be resolved.

We've also added the api.php here so it can be tracked in the future.
https://github.com/kvhnuke/etherwallet/tree/mercury/php_json_relay

Thanks for the update.
Unfortunately, I'm seeing a "Gas limit too low" message now.

Gosh dang it. Lemme check on it. Can you post the address that you're getting the error from, or (if you don't want to publicly) email me it at<EMAIL_ADDRESS>

Sorry, I deleted the "Gas Limit too Low" comment just a few seconds ago, as I actually found the messaging in the Help/FAQ. Let me actually help myself by reading those pages, and I'll let you know if it still fails.
Thanks for your patience so far.

Ha! Good to hear. I'm here if you need me, keep me posted.

I think i'm all fixed.
I was, in short, trying to buy DAO tokens, which is sending to a contract. Therefore, needed more gas. I see a green transaction successfully submitted message, so all looks fine.
Thanks for your help. I'll close this issue.


Sorry, I don't understand your words

/approve

Sorry, I don't understand your words
lgtm other than a nit.  -> 除了一处小问题外，Looks good to me.

/lgtm


click.redditmail.com

Domain
https://click.redditmail.com
Link
https://click.redditmail.com/CL0/https:%2F%2Fwww.reddit.com%2Fr%2FAmd%2Fcomments%2Fug2qvs%2Fjust_recreaed_the_amds_wraith_max_am4_cooler_in%2F%3F$deep_link=true%26correlation_id=426ca147-8727-492f-99c9-80bbf8715e5a%26post_fullname=t3_ug2qvs%26post_index=1%26ref=email_digest%26ref_campaign=email_digest%26ref_source=email%26utm_content=post_body/1/01000180827f032b-0ec4a85e-e249-4715-9617-4fb46f5ba3cc-000000/z_3Y0bCpZYu2ynaruOHnOchkq8yPmrH5Tv1FF_lsjNo=247
Version
0.0.0
What browsers are you seeing the problem on?
Firefox
What OS are you seeing the problem on?
Windows
(Optional) Anything else?
It looks like a basic redirect, all the information is there in the link.

It's a redirect, not a link shortener, so it will literally redirect before fastforward can

It's blocked by most tracking/privacy lists, and fastforward redirects some redirects, so that's not a good answer.

but it will literally be redirected by the thing before fastforward can redirect it

Not always. Not if you have tools that block the DNS lookup.

Not always. Not if you have tools that block the DNS lookup.

Exactly, however I just made a Redirector rule for my purposes.

ok 🍍


Adjust to new design spec

Adjust the app to the new design specs. The changes include:

Navigation bar in onboarding now has an icon
New icons in onboarding
Change button radii
Change fuel type selection to radio buttons
Adjustments to list items and hamburger menu

@telip007 You can ignore the changes in regards to the user email and logout for now.


Update LoginFormNarrow.js

Corrected small dumb typo reported by a user: corrected Github to GitHub.
<If necessary, assign reviewers that know the area or changes well. Feel free to tag any additional reviewers you see fit.>
Details

Fixed Issues

Fixes https://github.com/Expensify/Expensify/issues/149077
Tests

Tested On

[ ] Web
[ ] Mobile Web
[ ] Desktop
[ ] iOS
[ ] Android

Screenshots

Web

Mobile Web

Desktop

iOS

Android

Change looks pretty straightforward so I would say it probably doesn't need to be tested at all. 🤷

Change looks pretty straightforward so I would say it probably doesn't need to be tested at all. 🤷

@stephanieelliott looks good but you need to follow the instructions in this comment before we can merge

@stephanieelliott looks good but you need to follow the instructions in this comment before we can merge

Alright. It seems the CLA Assistant is saying @stephanieelliott needs to sign the CLA ? 😕

Alright. It seems the CLA Assistant is saying @stephanieelliott needs to sign the CLA ? 😕

I have read the CLA Document and I hereby sign the CLA

I have read the CLA Document and I hereby sign the CLA

recheck

recheck

Not sure why this E2E test keeps failing. We may need to merge master.

Not sure why this E2E test keeps failing. We may need to merge master.


Refactor Dex#getEffect + Dex#getEffectInner back to one method

Not ideal from a static typing POV - I don't think this @ts-ignores PureEffect/Effect any more than the original code did, but its still not very pretty.

This pull request introduces 1 alert when merging f400aa54b18d5824ac2059c2f223eb2d7197e4a3 into 675497307e60832e86dbf91371a706371aa9b71e - view on LGTM.com
new alerts:

1 for Useless conditional

Comment posted by LGTM.com

LGTM's right about the alert, btw. :p


(openssl.light) set path variable in install

Description
Added a Install-ChocolateyPath to add a path entry for the openssl bin directory
Motivation and Context
fixes #773
How Has this Been Tested?
windows 7 testing using choco install -fdv .\openssl.light.nuspec
Screenshot (if appropriate, usually isn't needed):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Migrated package (a package have been migrated from another repository)

Checklist:

[x] My code follows the code style of this repository.
[ ] My change requires a change to documentation (this mean usually the notes in the description of a package).
[ ] I have updated the documentation accordingly (this mean usually the notes in the description of a package).
[x] All files is up to date with the latest Contributing Guidelines
[x] The added/modified package passed install/uninstall in the chocolatey test environment.
[x] The changes only affect a single package (not including meta package).

@majkinetor made the change you suggested and @AdmiringWorm made the changes you suggested as well. Let me know if you have any further feedback.

The changes looks good to me, I just need to test it out with a custom path first, and then it can be merged.

@chrisevett everything works great, thanks for your contribution


Mismatch between 'CreateMetricRequest' and 'MetricsServiceV2Api.create_metric'

@bjwatson, @tbetbetbe PTAL.  Needs to have #1888 merged here;  after that, reproduce via:
$ git clone git@github.com:GoogleCloudPlatform/gcloud
$ cd gcloud
$ tox -e system-tests --notest
$ .tox/system-tests/bin/python

and then:
>>> from google.logging.v2.metrics_service_v2_api import MetricsServiceV2Api
>>> from gcloud.logging._gax import _MetricssAPI
>>> from gcloud.logging import Client
>>> client = Client()
>>> client._metrics_api = _MetricssAPI(MetricsServiceV2Api())
>>> metric = client.metric('gcloud-issue-xxxx-metric', 'logName=gcloud-issue-xxxx')
>>> metric.exists()
False
>>> metric.create()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/tseaver/projects/agendaless/Google/src/gcloud-python/gcloud/logging/metric.py", line 113, in create
    self.project, self.name, self.filter_, self.description)
  File "/home/tseaver/projects/agendaless/Google/src/gcloud-python/gcloud/logging/_gax.py", line 322, in metric_create
    self._gax_api.create_log_metric(parent, metric_pb, options)
  File "/home/tseaver/projects/agendaless/Google/src/gcloud-python/.tox/py27/lib/python2.7/site-packages/google/logging/v2/metrics_service_v2_api.py", line 302, in create_log_metric
    metric=metric)
  File "/home/tseaver/projects/agendaless/Google/src/gcloud-python/.tox/py27/lib/python2.7/site-packages/google/protobuf/internal/python_message.py", line 496, in init
    field = _GetFieldByName(message_descriptor, field_name)
  File "/home/tseaver/projects/agendaless/Google/src/gcloud-python/.tox/py27/lib/python2.7/site-packages/google/protobuf/internal/python_message.py", line 560, in _GetFieldByName
    (message_descriptor.name, field_name))
ValueError: Protocol message CreateLogMetricRequest has no "parent" field.

Clearly similar to #1890.

Seems to also be fixed by https://github.com/GoogleCloudPlatform/gcloud-python/pull/1904

Via #1904.


ISPN-13482 WrappedByteArray logging entire values

hexDump() should respect the HEX_DUMP_LIMIT

https://issues.redhat.com/browse/ISPN-13482

LGTM

Merged.

Pushed to 13.0.x too

if a PR for 12.1 is required: https://github.com/infinispan/infinispan/pull/9666


⚠ Spryr has degraded performance

In 735343d, Spryr (https://spryr.com) experienced degraded performance:

HTTP code: 200
Response time: 3418 ms

Resolved: Spryr performance has improved in 2dade17 after 11 minutes.


Search: Convert hardcoded tree actions to configurable commands

When you take a look at the controller in https://github.com/Microsoft/vscode/blob/master/src/vs/workbench/parts/search/browser/searchResultsView.ts#L222 there are a bunch of hardcoded keybindings associated for certain actions. We should avoid this and rather introduce commands that the user can associate keybindings with.
As part of https://github.com/Microsoft/vscode/issues/11517 I introduced a new service IListService that every tree is registering to. This service tracks focus of the tree and enables a listFocus context key whenever the tree has focus. As part of the register method you can pass over additional context keys that you want to have set for your domain (e.g. searchFocus). E.g. the "Open Editors View" is doing that here.
I suggest to write new commands that are enabled in the context for the domain (e.g. searchFocus) and remove the hardcoded keybinding handling in the tree controller. When doing so I would pick short and descriptive command Ids (e.g. search.something over workbench.action.search.something).
If you need to overwrite a certain keybinding that already exists from the list service (e.g. Space should do something else than toggling), you can give your command a higher weight (see for example how the explorer is overriding Enter to do something else on macOS).

@roblourens FYI, Hope I am not duplicating the effort here :)


Do not automatically mark meetings as templates (when duplicating or creating based on a template).

.../committees/...
Problem
When you duplicate an meeting or create it based on an meeting template (manually as well as via CSV import), the duplicated meeting gets also marked as a meeting template (star icon is active).
This is how it should be
Meetings that are duplicated or created based on a template will not automatically be marked as a template.

Re-opening since we will likely have to change the payloads in the client to actually get the correct object.

The default will be false to set as template, so, since we do not plan to make this configurable in the client according to @emanuelschuetze, nothing has to be changed in the client.