gfortran 11 ARM-darwin (Apple M1) build failure

We are seeing an openblas build failure (in Homebrew: https://github.com/Homebrew/homebrew-core/pull/74843#issuecomment-832845395) with the latest gcc/gfortran 11.1 port to Apple M1 (ARM-darwin). The failure is:
2021-05-04T22:06:45.3605470Z ranlib ../../../libopenblasp-r0.3.15.a
2021-05-04T22:06:45.3606170Z make[1]: warning: -jN forced in submake: disabling jobserver mode.
2021-05-04T22:06:45.3606690Z perl ./gensymbol osx arm64 _ 0 0  0 0 0 0 "" "" 1 0 1 1 1 1 > osx.def
2021-05-04T22:06:45.3611100Z gfortran -O2 -Wall -frecursive -fno-optimize-sibling-calls -fopenmp -fPIC -march=armv8.3-a  -all_load -headerpad_max_install_names -install_name "/private/tmp/openblas-20210504-81004-e68xc6/OpenBLAS-0.3.15/exports/../libopenblas.0.dylib" -dynamiclib -o ../libopenblasp-r0.3.15.dylib ../libopenblasp-r0.3.15.a -Wl,-exported_symbols_list,osx.def  -L/opt/homebrew/Cellar/gcc/11.1.0/lib/gcc/11/gcc/aarch64-apple-darwin20/11.1.0 -L/opt/homebrew/Cellar/gcc/11.1.0/lib/gcc/11/gcc/aarch64-apple-darwin20/11.1.0/../../.. -Wl,-rpath,,loader_path -Wl,-rpath,/opt/homebrew/Cellar/gcc/11.1.0/lib/gcc/11/gcc/aarch64-apple-darwin20/11.1.0 -Wl,-rpath,/opt/homebrew/Cellar/gcc/11.1.0/lib/gcc/11/gcc/aarch64-apple-darwin20/11.1.0/../../.. -L/opt/homebrew/Cellar/gcc/11.1.0/lib/gcc/11/gcc/aarch64-apple-darwin20/11.1.0 -L/opt/homebrew/Cellar/gcc/11.1.0/lib/gcc/11/gcc/aarch64-apple-darwin20/11.1.0/../../.. -Wl,-rpath,,loader_path -Wl,-rpath,/opt/homebrew/Cellar/gcc/11.1.0/lib/gcc/11/gcc/aarch64-apple-darwin20/11.1.0 -Wl,-rpath,/opt/homebrew/Cellar/gcc/11.1.0/lib/gcc/11/gcc/aarch64-apple-darwin20/11.1.0/../../..  -lgfortran -lgomp -lm -lSystem -lgfortran -lgomp -lm -lSystem
2021-05-04T22:06:45.3615250Z ld: file not found: loader_path
2021-05-04T22:06:45.3615640Z collect2: error: ld returned 1 exit status
2021-05-04T22:06:45.3616290Z make[1]: *** [libopenblasp-r0.3.15.dylib] Error 1
2021-05-04T22:06:45.3616750Z make: *** [shared] Error 2

The compiler appears otherwise functional, so I think it's specific to OpenBLAS. The problem is the -Wl,-rpath,,loader_path argument that is passed (twice), and I do not understand where it comes from.
The compiler driver itself can, in some circumstances, pass -Wl,-rpath,@loader_path which is a valid option. But somehow it seems that this @ gets mangled into a , making the whole thing invalid.
I haven't managed, however, to find where in OpenBLAS build machinery, this could be happening. Can someone point me in the right direction.

The only place I can see is this:
https://github.com/xianyi/OpenBLAS/blob/5f998efd7b4edbeef7d68f282e5581145640eff4/f_check#L273
which is using @ as a special character for its weird parsing of arguments. I'm not sure how or why it gets triggered (are we passing a -rpath with no -Wl in the first place?) but in our case it will definitely screw up the existing @

If that's the case, a possible patch is:
diff --git a/f_check b/f_check
index 2c0d7fcb..20990e05 100644
--- a/f_check
+++ b/f_check
@@ -314,11 +314,11 @@ if ($link ne "") {

     $link =~ s/\-Y\sP\,/\-Y/g;

-    $link =~ s/\-R\s*/\-rpath\@/g;
+    $link =~ s/\-R\s*/\-rpath#/g;

-    $link =~ s/\-rpath\s+/\-rpath\@/g;
+    $link =~ s/\-rpath\s+/\-rpath#/g;

-    $link =~ s/\-rpath-link\s+/\-rpath-link\@/g;
+    $link =~ s/\-rpath-link\s+/\-rpath-link#/g;

     @flags = split(/[\s\,\n]/, $link);
     # remove leading and trailing quotes from each flag.
@@ -344,13 +344,13 @@ if ($link ne "") {
        }

-       if ($flags =~ /^\-rpath\@/) {
-           $flags =~ s/\@/\,/g;
+       if ($flags =~ /^\-rpath#/) {
+           $flags =~ s/#/\,/g;
            $linker_L .= "-Wl,". $flags . " " ;
        }

-       if ($flags =~ /^\-rpath-link\@/) {
-           $flags =~ s/\@/\,/g;
+       if ($flags =~ /^\-rpath-link#/) {
+           $flags =~ s/#/\,/g;
            $linker_L .= "-Wl,". $flags . " " ;
        }
        if ($flags =~ /-lgomp/ && $ENV{"CC"} =~ /clang/) {

unless # needs escaping into \# in Perl regexps?

Probably sufficient to remove (or enclose in an if $vendor = OPEN64) the https://github.com/xianyi/OpenBLAS/blob/f497bb949bf262d3a97d33958f43945384428043/f_check#L347-L355
(which git blame tells me were put in 8 years ago to fix some problem with Open64).
I do not recall encountering this with the M1 in the gcc compile farm - not sure right now which compiler version that has/had installed

Thanks, @martin-frbg. I've tried applying the patch you suggest (i.e. just removing those two if blocks). Do you know why we're hitting this now but not previously?

No idea actually - maybe something changed in the default arguments used by gfortran in 11.1 ? What f_check does here is parse verbose output from building a small test program, so something in the behaviour of the compiler seems to have changed.

Yes, in the latest version of GCC M1 port, the driver will pass -Wl,-rpath,@loader in some cases (I don't think it did that previously).

I was not sure if the @ was used as a placeholder, or if it had a specific meaning in perl regex... something else will probably be needed as a substitute (unless enclosing all the naughty code in "if not open64" is sufficient as a workaround)

The gccfarm machine (still) has gcc-10 from homebrew (10.2.1 alias Homebrew GCC 10.2.0_4)

@martin-frbg yes, because we can't ship GCC 11.1.0 in Homebrew until we fix this openblas failure :)

Heh. So now I have the added superpower of halting compiler deployment ? Hopefully #3223 fixes it without new side effects.

Has this been resolved? Seems to be getting similar error.
perl ./gensymbol osx arm64 _ 0 0  0 0 0 0 "" "" 1 0 1 1 1 1 > osx.def
gfortran -O2 -Wall -frecursive -fno-optimize-sibling-calls -fPIC -march=armv8-a  -all_load -headerpad_max_install_names -install_name "/Users/siddharthg/Github-dev/kaldi/tools/OpenBLAS/exports/../libopenblas.0.dylib" -dynamiclib -o ../libopenblas_armv8-r0.3.13.dylib ../libopenblas_armv8-r0.3.13.a -Wl,-exported_symbols_list,osx.def  -L/opt/homebrew/Cellar/gcc/11.3.0_2/bin/../lib/gcc/11/gcc/aarch64-apple-darwin21/11 -L/opt/homebrew/Cellar/gcc/11.3.0_2/bin/../lib/gcc/11/gcc -L/opt/homebrew/Cellar/gcc/11.3.0_2/bin/../lib/gcc/11/gcc/aarch64-apple-darwin21/11/../../.. -Wl,-rpath,,loader_path -Wl,-rpath,/opt/homebrew/Cellar/gcc/11.3.0_2/lib/gcc/11/gcc/aarch64-apple-darwin21/11 -Wl,-rpath,/opt/homebrew/Cellar/gcc/11.3.0_2/lib/gcc/11/gcc -Wl,-rpath,/opt/homebrew/Cellar/gcc/11.3.0_2/lib/gcc/11  -lgfortran -lemutls_w -lquadmath -lemutls_w -lSystem
ld: file not found: loader_path
collect2: error: ld returned 1 exit status
make[1]: *** [libopenblas_armv8-r0.3.13.dylib] Error 1
make: *** [shared] Error 2

Has this been resolved? Seems to be getting similar error.
make[1]: *** [libopenblas_armv8- r0.3.13 .dylib] Error 1

Looks like you are trying to build an outdated version that is even older than the one the problem was originally seen with. Fix went into 0.3.16, current version is 0.3.20

Fix went into 0.3.16, current version is 0.3.20

How can I install version 0.3.20?

Still getting the same error, the script to install looks like the following now:
#!/usr/bin/env bash

OPENBLAS_VERSION=0.3.20
MACOSX_DEPLOYMENT_TARGET=11.0
WGET=${WGET:-wget}

set -e

if ! command -v gfortran 2>/dev/null; then
  echo "$0: gfortran is not installed.  Please install it, e.g. by:"
  echo " apt-get install gfortran"
  echo "(if on Debian or Ubuntu), or:"
  echo " yum install gcc-gfortran"
  echo "(if on RedHat/CentOS).  On a Mac, if brew is installed, it's:"
  echo " brew install gfortran"
  exit 1
fi

tarball=OpenBLAS-$OPENBLAS_VERSION.tar.gz

rm -rf xianyi-OpenBLAS-* OpenBLAS OpenBLAS-*.tar.gz

if [ -d "$DOWNLOAD_DIR" ]; then
  cp -p "$DOWNLOAD_DIR/$tarball" .
else
  url=$($WGET -qO- "https://api.github.com/repos/xianyi/OpenBLAS/releases/tags/v${OPENBLAS_VERSION}" | python -c 'import sys,json;print(json.load(sys.stdin)["tarball_url"])')
  test -n "$url"
  $WGET -t3 -nv -O $tarball "$url"
fi

tar xzf $tarball
mv xianyi-OpenBLAS-* OpenBLAS

make PREFIX=$(pwd)/OpenBLAS/install USE_LOCKING=1 USE_THREAD=0 -C OpenBLAS all install
if [ $? -eq 0 ]; then
   echo "OpenBLAS is installed successfully."
   rm $tarball
fi

strange. maybe export the MACOSX_DEPLOYMENT_TARGET, or try putting it on the command line before the make (as MACOSX_DEPLOYMENT_TARGET=11.0 make PREFIX=... (this problem has come up before, and so far the solution worked. less sure now if it is a bug or a feature, seeing that we have a default deployment target in Makefile.system that has been updated a few times in the past already)

Thanks a lot! I am on version 12.4 so setting MACOSX_DEPLOYMENT_TARGET=12.4 worked!

Confusing that 11.0 was not sufficient. I was just about to make that the new default, but if it needs to match whatever latest version one has installed now there seems to be little point.

In the installation script, cant we take the value of the version from the client system using sw_vers -productVersion and then pass it to MACOSX_DEPLOYMENT_TARGET?

You're telling me - I'm not a Mac user so no idea how the version mismatch comes about (or whether sw_vers and deployment target always have to be the same)

whether sw_vers and deployment target always have to be the same

Ah. yeah, that's the confusion! I have been Linux throughout, only now have started with Mac. Hope someone from MacOS community may shed a concrete light.


[FEATURE] shape construction from std span and initializer_list

via constructors or make/factory function (to avoid std::vector style () vs {} construction ambiguities)

this can be bolted onto of_size

(this is useful for unit tests)

OK std::span can have a static size so we now the # of dimensions of the result.
BUT the size of an initializer_list is not so we need to force it ?

OK std::span can have a static size so we now the # of dimensions of the result.
BUT the size of an initializer_list is not so we need to force it ?

huh neither span nor initializer_list have a static size? (except if you mean in a constexpr context)
so yes, you have to assert that the size matches

std::span<T,N> is a thing actually.
Assert that it matches with what ?
in the case of of_size({x,y,z]); ?
Or it means we need of_size(_3D, {x,y,z])`

std::span<T,N> is a thing actually.

oh right :D

Assert that it matches with what ?

that the runtime size matches the static size

in the case of of_size({x,y,z]); ? Or it means we need of_size(_3D, {x,y,z])`
yes you'd need the type

a constructor or
or member static factory
free func with a template parameter


Pinterest video 404: Not Found

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting that yt-dlp is broken on a supported site
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
UK
Provide a description that is worded well enough to be understood
I tried to download pinterest video, but it throws 404 not found error.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', 'https://pinterest.com/pin/dive-into-serenity-blue-lagoon-pedi-nails-for-a-tranquil-and-refreshing-spa-experience-video-in-2024--2885187256207927/']
[debug] Encodings: locale cp1251, fs utf-8, pref cp1251, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp-master-builds [6f9e65374] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.07.04, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.3, sqlite3-3.35.5, urllib3-2.2.2, websockets-13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1830 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-master-builds/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp-master-builds
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp-master-builds)
[PinterestCollection] Extracting URL: https://pinterest.com/pin/dive-into-serenity-blue-lagoon-pedi-nails-for-a-tranquil-and-refreshing-spa-experience-video-in-2024--2885187256207927/
[PinterestCollection] dive-into-serenity-blue-lagoon-pedi-nails-for-a-tranquil-and-refreshing-spa-experience-video-in-2024--2885187256207927: Download Board JSON metadata
ERROR: [PinterestCollection] dive-into-serenity-blue-lagoon-pedi-nails-for-a-tranquil-and-refreshing-spa-experience-video-in-2024--2885187256207927: Unable to download JSON metadata: HTTP Error 404: Not Found (caused by <HTTPError 404: Not Found>)
  File "yt_dlp\extractor\common.py", line 740, in extract
  File "yt_dlp\extractor\pinterest.py", line 214, in _real_extract
  File "yt_dlp\extractor\pinterest.py", line 24, in _call_api
  File "yt_dlp\extractor\common.py", line 1139, in download_content
  File "yt_dlp\extractor\common.py", line 1099, in download_handle
  File "yt_dlp\extractor\common.py", line 960, in _download_webpage_handle
  File "yt_dlp\extractor\common.py", line 909, in _request_webpage

  File "yt_dlp\extractor\common.py", line 896, in _request_webpage
  File "yt_dlp\YoutubeDL.py", line 4165, in urlopen
  File "yt_dlp\networking\common.py", line 117, in send
  File "yt_dlp\networking\_helper.py", line 208, in wrapper
  File "yt_dlp\networking\common.py", line 340, in send
  File "yt_dlp\networking\_requests.py", line 365, in _send
yt_dlp.networking.exceptions.HTTPError: HTTP Error 404: Not Found

Video URL: https://pinterest.com/pin/dive-into-serenity-blue-lagoon-pedi-nails-for-a-tranquil-and-refreshing-spa-experience-video-in-2024--2885187256207927

looks like we just need to extend the extractor's _VALID_URL to match this type of URL:
diff --git a/yt_dlp/extractor/pinterest.py b/yt_dlp/extractor/pinterest.py
index 07f249498..53a19aadc 100644
--- a/yt_dlp/extractor/pinterest.py
+++ b/yt_dlp/extractor/pinterest.py
@@ -109,7 +109,7 @@ def _extract_video(self, data, extract_formats=True):

 class PinterestIE(PinterestBaseIE):
-    _VALID_URL = rf'{PinterestBaseIE._VALID_URL_BASE}/pin/(?P<id>\d+)'
+    _VALID_URL = rf'{PinterestBaseIE._VALID_URL_BASE}/pin/(?:[\w-]+--)?(?P<id>\d+)'
     _TESTS = [{
         # formats found in data['videos']
         'url': 'https://www.pinterest.com/pin/664281013778109217/',

as a workaround for now, you can change the URL to https://pinterest.com/pin/2885187256207927/ (remove the slug and only leave the numeric ID behind)

Hi, Thanks for the pointer.
Since this was a small fix, have raised a PR for the same. #10867


Authors like last_name d'Acier fail to render

Coeur d' acier is the confirmed (known in person) way to spelling it
See also Passerin d' Entrèves

https://sfg.taxonworks.org/people/209774

See also #3597

Duplicate of https://github.com/SpeciesFileGroup/taxonworks/issues/4132


can not assign save flag to false

I try to assign save flag to false but unsuccess, I have investigated and found that below code make stuck
if (!options.save)      {options.save      = makeDefault('save');}
option.save always set to true.
Please take time to fix this bug.
Thanks

I have found pull requested fix this bug. But I install from npm so the bug still exists.
Thanks.

need publish new version to npmjs repo


[fix][broker] Fix potential exception cause the policy service init fail.

Motivation
We find that sometimes we can't get the topic policy all the time. After dumping the broker file, we find the namespace value in policyCacheInitMap  is false, but the reader was created successfully.

I suspect that there may be some exceptions that occurs in the refreshTopicPoliciesCache.
Modifications
Move the refreshTopicPoliciesCache to the thenAccept block so we can catch any exceptions.
Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks


Review of Planning Committee & Hub applications

I think this issue can be closed since it is similar to #20 ?


NEON: implement aes intrinsics

Hi all, this is Eric from Andes Technology Corporation. This PR includes 4 initial implementations of AES intrinsics.

Based on the previous comments (https://github.com/simd-everywhere/simde/pull/1093#pullrequestreview-1701300915), it appears that three functions (simde_x_aes_shift_rows , simde_x_aes_inv_shift_rows, and simde_x_aes_coef_mult_lookup) are redundantly implemented in both Neon and x86.
However, I found that the arrangement and shifting result of the matrix are not the same. For example, in the case of simde_x_aes_shift_rows(), NEON's implementation transforms the matrix from A to B, whereas x86's implementations transform the matrix from C to D. I thought that they could not be reused.
simde_x_aes_shift_rows()

          A                                         B
|  15  14  13  12  |                      |  11    6   1  12  |
|  11  10   9   8  |        NEON          |   7    2  13   8  |
|   7   6   5   4  |    ------------>     |   3   14   9   4  |
|   3   2   1   0  |                      |  15   10   5   0  |

          C                                          D
|   0   1   2   3  |                       |   0   1   2   3  |
|   4   5   6   7  |          x86          |   5   6   7   4  |
|   8   9  10  11  |    ------------>      |  10  11   8   9  |
|  12  13  14  15  |                       |  15  12  13  14  |

@lin72h , any thoughts?

@lin72h , any thoughts?

I just amazed by the progress you guys made, I'm not very family with the AES instructions between the 2 architecture. Sorry can't give any suggestion

Thank you @yyctw !


Page not found of the Windows Admin Center Preview link

The page does not available.

For info about Windows Admin Center Preview releases, see Windows Insider Preview releases.

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

ID: 9509faf3-2ec5-daa3-51a4-d050f04debec
Version Independent ID: b70c774f-8962-0e48-8294-645c03530f40
Content: Windows Admin Center Frequently Asked Questions
Content Source: WindowsServerDocs/manage/windows-admin-center/understand/faq.md
Product: windows-server
Technology: manage
GitHub Login: @nwashburn-ms
Microsoft Alias: niwashbu

Sent a PR #4071

(similar: ref. #4058 )

#please-close (ref. commit https://github.com/MicrosoftDocs/windowsserverdocs/commit/5b4100c6528b7acf8cf51a2b5448d5db9204d5e0)


Board disconnect event

It would be great if there was some way to tell if the board has stopped responding. Be it due to failure, power, disconnect, etc. I don't need to know why, just that it's no longer connected. Similar to https://github.com/rwaldron/johnny-five/issues/1037.

I'm travelling right now—can you take a run at this? After this: https://github.com/rwaldron/particle-io/blob/master/lib/particle.js#L310-L317, I think you'd add:
state.socket.on("close", function() {
  particle.emit("disconnect");
});

...But that's a completely untested guess.

I'll take a look. Thanks for the direction.

Any status on this?  I've tried the .on('close',...) and I'm not getting a message when I pull the plug.  Does the REPL option matter in the ctor?  I'm setting repl: false.


Unable to assign roles

I'm sure this isn't an issue with the app itself but I am unable to assign roles to users in either of the Azure management portal.  I am using the Azure services with my MSDN subscription.  Is RBAC only available with an enterprise subscription?

I think I figured it out.  I had configured an active directory with the B2C directory preview and assigned the example application to that directory.  Also once I navigated that B2C directory the portal thinks applications configured under non B2C directories have the same attributres so they do not the User management tabs until you refresh the browser.

Hi, I got the same issue. Looks like its a bug on chrome browser. I can see user management tab on all other browsers and not in chrome. As you suggested, the refresh trick worked.

I just tried with chrome Version 56.0.2924.76 (64-bit) on https://manage.windowsazure.com and that seems to work now.


CreateHandle() Error when running fprint on raspberry Pi 2 with Digital Persona u4500

Hi Ephraim,
First of all, thank you for porting the fprint library to nodejs and node-red!
As part of my never ending quest to automate my home I am trying to set up a Digital Persona u.are.u 4500 fingerprint reader on a Raspberry Pi 2 running Raspbian Jessie. However I've run into a problem and I don't know how to solve it. Whenever I try to the code and try to enroll/verify a fingerprint I receive the following error:
pi@raspberrypi:~/node_modules/node-fprint/test $ node verify.js Found: Digital Persona U.are.U 4000/4000B/4500 enroll your finger! You will need swipe your finger 1 times. stage 1/1 uru4000:info [init_run_state] Versions 0010 and 0115
----presents finger on reader----
FATAL ERROR: v8::HandleScope::CreateHandle() Cannot create a handle without a HandleScope Aborted
Do you have any idea what is causing this exception and/or how to solve it?
Kind regards,
Marcel
node-fprint: 0.0.6
node-red-contrib-fprint: 0.0.4
Nodejs: 4.4.3-1
Raspbian Jessie Lite,  March 2016
Kernel version: 4.4

Hey,
thanks for your detailed feedback. node-fprint is build against nodejs 0.12 and I've never tested it against any newer versions of nodejs.
So, this is most probably a problem with compatibility to your nodejs version.
I'll try to fix it in the next days but cannot promise anything.

Hi,
Thanks for our quick response!
After some digging around I found the following thread:
https://github.com/nodejs/nan/issues/440
There they were encountering a similar problem, which they solved by replacing
Nan::HandleScope();
with
Nan::HandleScope scope;.
I've rebuild from the supplied source code with this change and this solved the error message apparently. It also fixes the node-red implementation of fprint!
pi@raspberrypi:~/node_modules/node-fprint/test $ node verify.js
Found: Digital Persona U.are.U 4000/4000B/4500
enroll your finger! You will need swipe your finger 1 times.
stage 1/1
uru4000:info [init_run_state] Versions 0010 and 0115
enroll-completed

fingerprint size: 870
now your finger will be verified. Please swipe your finger once again.
uru4000:info [init_run_state] Versions 0010 and 0115
verfiy-succeeded
MATCHED.
libusb: error [handle_events] hotplug pipe read error -1 != 8
node: pthread_mutex_lock.c:151: __pthread_mutex_lock: Assertion '((mutex)->__data.__kind & 127) == PTHREAD_MUTEX_ERRORCHECK_NP' failed.
Aborted

(the error messages at the end seem to originate from libusb, don't know if they are important)
I've made a pull request with the suggested changes.
Cheers,
Marcel

pull request accepted. version 0.0.7 released with this change.


Issue with setProgress in AsyncTask

With that code i have my work done successfully but snackbar stuck on 0% and dont dismiss
@Override
        protected void onPreExecute(){
            snackProgressBarManager.show(determinateType, SnackProgressBarManager.LENGTH_INDEFINITE);
        }
        @Override
        protected Void doInBackground(Void... voids) {
                //some work
                i++;
                musicFile.setAlbum(album);
                musicFile.setArtist(artist);
                musicFile.setRealPath(data);
                musicFile.setTitle(title);
                musicFile.progress= i/count * 100;//there is double and progress really changed in any iterations
                publishProgress(musicFile);

            }

            cursor.close();
            return null;
        }

        @Override
        protected void onProgressUpdate(MusicFile... progress) {
            snackProgressBarManager.setProgress((int) progress[0].progress);
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            snackProgressBarManager.dismissAll();
        }

And with that code all work fine !!!
@Override
        protected void onPreExecute(){
            snackProgressBarManager.show(determinateType, SnackProgressBarManager.LENGTH_INDEFINITE);
        }

        @Override
        protected Void doInBackground(Void... voids) {
                //some work
                i++;
                musicFile.setAlbum(album);
                musicFile.setArtist(artist);
                musicFile.setRealPath(data);
                musicFile.setTitle(title);

                musicFile.progress= i/count * 100;//there is double and progress really changed in any iterations
try {
                    Thread.sleep(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                publishProgress(musicFile);

            }

            cursor.close();
            return null;
        }

        @Override
        protected void onProgressUpdate(MusicFile... progress) {
            snackProgressBarManager.setProgress((int) progress[0].progress);
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            snackProgressBarManager.dismissAll();
        }

i just add sleep for 1 ms and it's worked! i think that is bug , if i wront pls tell me

Instead of passing the musicFile as progress, try passing directly i into the progress. I think as you read and write to musicFile at the same time, there is concurrent error. Also, there is no need to perform the % calculation. It is already built-in. Use this.
@Override
protected void onPreExecute(){
    determinateType.setProgressMax(count);
    snackProgressBarManager.show(determinateType, SnackProgressBarManager.LENGTH_INDEFINITE);
}

@Override
protected Void doInBackground(Void... voids) {
    // other codes here
    musicFile.progress= i/count * 100;
    publishProgress(i);
}

@Override
protected void onProgressUpdate(Integer... progress) {
    snackProgressBarManager.setProgress(progress[0]);
}

ok, I did as you said
@Override         protected void onProgressUpdate(Integer... progress) {             snackProgressBarManager.setProgress(progress[0]);         }
and now i see as SnackBarProgress stuck on 0% and onPostExecute it dismiss!
all work nice but percentage not change

It is very possible that your doInBackground task are completed within a few milliseconds. The updates are too fast that the progressBar is unable to respond. In this case, the Thread.sleep() provides the time required for UI updates. You should check your log and see how long does the whole operation takes. If it takes only a few millis, it does not make sense to update using a determinate type progress bar. This is a fundamental question on your UI design. It might be better to use indeterminate progress bar.

maybe problem in version of my newer kotlin runtime version?

No, I don't think so. I am replicating your code in my own app and the snackProgressBar is stuck at 0% as well, if I'm updating the UI too fast.
As mentioned, how long does each loop of doInBackground needs? If you are updating the UI a few times every 1 ms, then the UI may not respond. UI seems to update correctly if the interval is more than 1 ms.
You can do a simple experiment. Put a ProgressBar in your layout. Update that ProgressBar instead of snackProgressBar. Check if the progressBar is updating, without the sleep().

Is your problem solved? I'm closing this soon.


The script contains outdated/non-existing packages and is missing recently released free packages

The script contains outdated/non-existing packages and is missing recently released free packages
This issue is based on this discussion:

Originally posted by dafunks January 18, 2022
I always find myself checking back here to see if any updates have happened with new games or software. No updates for a few years now. Any plans to add anything?
Thanks for the work so far as its given a lot to my account.

I don't think this script will get updated, but you can use this tool made available by SteamDB in the meantime: https://steamdb.info/freepackages/


2.2.x

Fixes https://github.com/twitter/secureheaders/issues/155
Replaces https://github.com/twitter/secureheaders/pull/174
/cc @nchelluri

Nice!


function to substitute text in buffer without side effects

Is your feature request related something that is currently hard to do? Please describe.
It is difficult to substitute all matches of a pattern with a replacement text inside the current buffer without side effects.

For example, consider this text in a buffer:
pat pat PAT
pat pat PAT
pat pat PAT

The cursor is on line 2 column 5, and this substitution is executed:
:%s/pat/rep/g

The cursor is now on line 3 column 1:
$ vim -es -Nu NONE -i NONE +"pu=repeat(['pat pat PAT'], 3)" +'norm! 2Gw' +'set vbs=1|echo getpos(".")|qa!'

[0, 2, 5, 0]
    ^  ^

$ vim -es -Nu NONE -i NONE +"pu=repeat(['pat pat PAT'], 3)" +'norm! 2Gw' +'%s/pat/rep/g' +'set vbs=1|echo getpos(".")|qa!'

[0, 3, 1, 0]
    ^  ^

In a script, to preserve the cursor position and the view, winsaveview() and winrestview() must be invoked:
let view = winsaveview()
%s/pat/rep/g
call winrestview(view)

A substitution also adds an entry in the jumplist:
$ vim -es -Nu NONE -i NONE +"pu=repeat(['pat pat PAT'], 3)" +'set vbs=1|jumps|qa!'

 jump line  col file/text
   1     4    0

$ vim -es -Nu NONE -i NONE +"pu=repeat(['pat pat PAT'], 3)" +'%s/pat/rep/g' +'set vbs=1|jumps|qa!'

 jump line  col file/text
   2     4    0
   1     3    0 rep rep PAT

In a script, to preserve the jumplist, :keepjumps must be invoked:
keepjumps %s/pat/rep/g
^^^^^^^^^

A substitution also alters the change marks:
$ vim -es -Nu NONE -i NONE +"pu=repeat(['pat pat PAT'], 3)" +'norm! 2Gwyiw' +'set vbs=1|marks|qa!' 2>&1 | grep '\[\|\]'

 [      2    4 pat pat PAT
 ]      2    6 pat pat PAT

$ vim -es -Nu NONE -i NONE +"pu=repeat(['pat pat PAT'], 3)" +'norm! 2Gwyiw' +'%s/pat/rep/g' +'set vbs=1|marks|qa!' 2>&1 | grep '\[\|\]'

 [      1    0 rep rep PAT
 ]      4    0

In a script, to preserve the change marks, :lockmarks must be invoked (requires 8.1.2302):
lockmarks %s/pat/rep/g
^^^^^^^^^

A substitution also alters the search register:
$ vim -es -Nu NONE -i NONE +"pu=repeat(['pat pat PAT'], 3)" +'/foo' +'set vbs=1|echo @/|qa!'

foo

$ vim -es -Nu NONE -i NONE +"pu=repeat(['pat pat PAT'], 3)" +'/foo' +'%s/pat/rep/g' +'set vbs=1|echo @/|qa!'

pat

In a script, to preserve the search register, :keeppatterns must be invoked:
keeppatterns %s/pat/rep/g
^^^^^^^^^^^^

If the number of changed lines is greater than &report, then a message is written on the command-line.  In a script, to prevent a message from being displayed, :silent must be invoked:
silent %s/pat/rep/g
^^^^^^

And the e flag must be used to avoid E486 when the pattern is not found:
silent %s/pat/rep/ge
                   ^

If the user has set 'gdefault', then the meaning of the g flag is reversed.
# 'gdefault' is *not* set
$ vim -es -Nu NONE -i NONE +"pu=repeat(['pat pat PAT'], 3)" +'set nogdefault' +'%s/pat/rep/g' +'%p|qa!'
rep rep PAT
rep rep PAT
rep rep PAT

# 'gdefault' *is* set
$ vim -es -Nu NONE -i NONE +"pu=repeat(['pat pat PAT'], 3)" +'set gdefault' +'%s/pat/rep/g' +'%p|qa!'
rep pat PAT
rep pat PAT
rep pat PAT

In a script, to be sure all matches are replaced, the value of the option must be inspected:
execute '%s/pat/rep/'..(&gdefault ? '' : 'g')

All in all, if you combine everything, the interactive command:
%s/pat/rep/g

Becomes this in a script which tries to have as fewer side effects as possible and be reliable:
let view = winsaveview()
silent execute 'keepjumps keeppatterns lockmarks %s/pat/rep/e'..(&gdefault ? '' : 'g')
call winrestview(view)

Describe the solution you'd like
A subbufline() function which would take 5 arguments:
{lnum}, {end}, {pat}, {sub}, {flags}

The {pat}, {sub}, {flags} arguments would be interpreted as in substitute(), while the {lnum} and {end} arguments would be interpreted as the first and last line of a range of lines in the buffer where the substitution should occur.  It would have none of the side effects described earlier.
In a script, %s/pat/rep/g could then be re-written like this:
call subbufline(1, '$', 'pat', 'rep', 'g')

Describe alternatives you've considered
I've considered writing a custom function which would avoid all the side effects documented earlier, then use the latter whenever I need to do a substitution in a buffer.  Somewhat similar to maktaba#buffer#Substitute().
But it would create a dependency in each plugin I would write.
Besides, it would create a difference between the context where the function is called, and the one where the substitution is executed.  This would make it hard to refer to a script-local or function-local variable in the pattern or replacement arguments, if in the end the substitution is not executed in the context of the current script/function but in the context of another function defined in another script.

I've also considered using a combination of setline()+getline()+map()+substitute():
call getline(1, '$')->map('substitute(v:val, "pat", "rep", "g")')->setline(1)

But it's less readable than:
call subbufline(1, '$', 'pat', 'rep', 'g')

And it's much slower than :s:
mv /tmp/version8.txt{,.bak}; vim -Nu NONE +'h version8' +'saveas /tmp/version8.txt|qa!'; for i in {1..10}; do vim -es -Nu NONE -i NONE +"let time = reltime()|%s/pat/rep/g|0pu=matchstr(reltimestr(reltime(time)), '.*\..\{,3}').' seconds to run :s'" +'1p|qa!' /tmp/version8.txt; done

0.010 seconds to run :s
0.009 seconds to run :s
0.009 seconds to run :s
0.012 seconds to run :s
0.009 seconds to run :s
0.008 seconds to run :s
0.008 seconds to run :s
0.008 seconds to run :s
0.008 seconds to run :s
0.011 seconds to run :s

# average: 0.009 seconds

mv /tmp/version8.txt{,.bak}; vim -Nu NONE +'h version8' +'saveas /tmp/version8.txt|qa!'; for i in {1..10}; do vim -es -Nu NONE -i NONE +"let time = reltime()|call getline(1, '$')->map('substitute(v:val, \"pat\", \"rep\", \"g\")')->setline(1)|0pu=matchstr(reltimestr(reltime(time)), '.*\..\{,3}').' seconds to run getline()->...'" +'1p|qa!' /tmp/version8.txt; done

0.129 seconds to run getline()->...
0.123 seconds to run getline()->...
0.123 seconds to run getline()->...
0.128 seconds to run getline()->...
0.130 seconds to run getline()->...
0.162 seconds to run getline()->...
0.154 seconds to run getline()->...
0.161 seconds to run getline()->...
0.128 seconds to run getline()->...
0.123 seconds to run getline()->...

# average: 0.136 seconds

That's 15 times slower.

Another problem with using setline() is that it deletes all text-properties in that line. :substitute on the other hand will readjust the text-properties.
There's already setbufline(), getbufline(), appendbufline() and deletebufline().
Wouldn't substitutebufline() or just subbufline() be better?

Ah yes you're right, setline() does not preserve text properties.
I guess you could install a callback with listener_add() to update the properties, but I don't know much about it, and it may be too costly if the substitution is made often and/or on a big buffer.

And yes, the name subbufline() is more consistent with the existing buffer functions; I updated the OP to use it instead of buf_substitute() (which I originally used to make a parallel with substitute(), like win_execute() and execute()).

To fit in with getbufline() and setbufline() the first argument should specify the buffer.
Then we have six arguments, that's a bit much.  Might still be the best way.
subbufline({buf}, {start}, {end}, {pat}, {sub}, {flags})
Perhaps we can use substitute() but make the first argument a list to specify the lines?
It won't return the result then, that is inconsistent.

subbufline() would be even more useful now in Vim9.
Starting from 8.2.2784, the replacement field of a substitution command is compiled when it's an expression evaluated with the \= syntax.
So, this works now:
vim9script
def Replace()
    setline(1, 'aaa')
    var rep = 'bbb'
    s/aaa/\=rep/
enddef
Replace()

Just like it did in Vim script legacy:
fu Replace()
    call setline(1, 'aaa')
    let rep = 'bbb'
    s/aaa/\=rep/
endfu
call Replace()

But if some other part of our substitution command needs to be dynamic, like the range or the pattern, then we need :exe:
fu Replace()
    call setline(1, 'aaa')
    let pat = 'aaa'
    let rep = 'bbb'
    exe 's/' .. pat .. '/\=rep/'
endfu
call Replace()

But this doesn't work in Vim9:
vim9script
def Replace()
    setline(1, 'aaa')
    var pat = 'aaa'
    var rep = 'bbb'
    exe 's/' .. pat .. '/\=rep/'
enddef
Replace()

E121: Undefined variable: rep

That's because :exe suppresses the compilation of \=rep.  :exe is compiled, but not the command it executes.  So, when :exe is executed at runtime, Vim can't find rep on the stack.
With subbufline(), there would be no such issue, because we could use a simple lambda (which is compiled):
subbufline(buf, lnum1, lnum2, pat, (_) => rep, flags)
                                   ^--------^

And this would make the code much more readable than :exe:

:exe makes us lose syntax highlighting in the literal parts of the command
:exe might require to nest a quote inside a string, which can be tricky
:exe makes it difficult to determine what's literal and what's evaluated (and when it's evaluated)

And it would work no matter which part of the command needs to be dynamic: range, pattern, replacement, flags...

Actually, there would be no need for a lambda in this simple case:
subbufline(buf, lnum1, lnum2, pat, rep, flags)

The lambda is for when we refer to a capturing group or the whole match:
subbufline(buf, lnum1, lnum2, pat, (m) => m[1], flags)
                                   ^---------^

have you tried using getline()/map()/setline() with a compiled argument to map()?

I did, and it's still much slower than a regular :s command.
Test for a :s command:
#!/bin/bash

cat <<'EOF' >/tmp/test.vim
  vim9script
  def Substitute()
    :%s/pat/rep/g
  enddef
  defcompile
  var time = reltime()
  Substitute()
  :0put =reltime(time)->reltimestr()->matchstr('.*\..\{,3}') .. ' seconds to run :s'
  :1p
  qa!
EOF

vim -Nu NONE +'h version8 | saveas! /tmp/version8.txt | qa!'
for i in {1..10}; do
  vim -es -N -u NONE -U NONE -i NONE -S /tmp/test.vim /tmp/version8.txt
done

Results:
0.017 seconds to run :s
0.017 seconds to run :s
0.016 seconds to run :s
0.017 seconds to run :s
0.016 seconds to run :s
0.017 seconds to run :s
0.017 seconds to run :s
0.016 seconds to run :s
0.016 seconds to run :s
0.016 seconds to run :s

Average: 17ms.
Test for getline() + map() + substitute() + setline():
#!/bin/bash

cat <<'EOF' >/tmp/test.vim
  vim9script
  def Substitute()
    getline(1, '$')
      ->map((_, v) => substitute(v, 'pat', 'rep', 'g'))
      ->setline(1)
  enddef
  defcompile
  var time = reltime()
  Substitute()
  :0put =reltime(time)->reltimestr()->matchstr('.*\..\{,3}') .. ' seconds to run map()'
  :1p
  qa!
EOF

vim -Nu NONE +'h version8 | saveas! /tmp/version8.txt | qa!'
for i in {1..10}; do
  vim -es -N -u NONE -U NONE -i NONE -S /tmp/test.vim /tmp/version8.txt
done

Results:
0.188 seconds to run map()
0.188 seconds to run map()
0.187 seconds to run map()
0.190 seconds to run map()
0.188 seconds to run map()
0.186 seconds to run map()
0.186 seconds to run map()
0.185 seconds to run map()
0.188 seconds to run map()
0.186 seconds to run map()

Average: 187ms.
That's 11 times slower.
I still don't know how to profile the C code, but I tried to use gprof(1).  Here's the reports I get:

for the first test
for the second test

When I made tests, Vim was compiled without optimizations (-O0).  I rerun the tests with optimizations (-O2).
For :s:
:%s/pat/rep/g

The results are:
0.011 seconds to run :s
0.010 seconds to run :s
0.011 seconds to run :s
0.010 seconds to run :s
0.010 seconds to run :s
0.009 seconds to run :s
0.010 seconds to run :s
0.009 seconds to run :s
0.010 seconds to run :s
0.009 seconds to run :s

Average: 10ms.
For map() with a reference to a :def function:
def Rep(_, v: string): string
  return substitute(v, 'pat', 'rep', 'g')
enddef
def Substitute()
  getline(1, '$')
    ->map(Rep)
    ->setline(1)
enddef

The results are:
0.158 seconds to run map()
0.157 seconds to run map()
0.152 seconds to run map()
0.156 seconds to run map()
0.159 seconds to run map()
0.155 seconds to run map()
0.155 seconds to run map()
0.155 seconds to run map()
0.156 seconds to run map()
0.160 seconds to run map()

Average: 156ms.
For map() with a lambda:
def Substitute()
  getline(1, '$')
    ->map((_, v) => substitute(v, 'pat', 'rep', 'g'))
    ->setline(1)
enddef

The results are:
0.125 seconds to run :s
0.133 seconds to run :s
0.131 seconds to run :s
0.125 seconds to run :s
0.124 seconds to run :s
0.125 seconds to run :s
0.128 seconds to run :s
0.126 seconds to run :s
0.132 seconds to run :s
0.131 seconds to run :s

Average: 128ms.
It's still 13 times slower.
I'm a bit surprised that a lambda is faster than a function reference, since both the lambda and the Rep() function are compiled.  I guess there is a cost to look up a function by name.

[...]

Test for getline() + map() + substitute() + setline():
#!/bin/bash

cat <<'EOF' >/tmp/test.vim
  vim9script
  def Substitute()
    getline(1, '$')
      ->map((_, v) => substitute(v, 'pat', 'rep', 'g'))
      ->setline(1)
  enddef
  defcompile
  var time = reltime()
  Substitute()
  :0put =reltime(time)->reltimestr()->matchstr('.*\..\{,3}') .. ' seconds to run map()'
  :1p
  qa!
EOF

vim -Nu NONE +'h version8 | saveas! /tmp/version8.txt | qa!'
for i in {1..10}; do
  vim -es -N -u NONE -U NONE -i NONE -S /tmp/test.vim /tmp/version8.txt
done

Results:
0.188 seconds to run map()
0.188 seconds to run map()
0.187 seconds to run map()
0.190 seconds to run map()
0.188 seconds to run map()
0.186 seconds to run map()
0.186 seconds to run map()
0.185 seconds to run map()
0.188 seconds to run map()
0.186 seconds to run map()

Average: 187ms.
That's 11 times slower.

The main overhead here is likely that map() has to call the function for
every line.  Try using a for loop and replacing one line at a time.
Sketch (didn't try it):
for lnum in range(1, line('$'))
   getline(lnum)->subsitute('pat', 'rep', 'g')->setline(lnum)
endfor

--
Birthdays are healthy.  The more you have them, the longer you live.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Ah yes, I forgot that :for loops could be much faster than map().  Here, it's a bit faster (around 10%), but still much slower than :s:
#!/bin/bash

cat <<'EOF' >/tmp/test.vim
  vim9script
  def Substitute()
    for lnum in range(1, line('$'))
      getline(lnum)->substitute('pat', 'rep', 'g')->setline(lnum)
    endfor
  enddef
  defcompile
  var time = reltime()
  Substitute()
  :0put =reltime(time)->reltimestr()->matchstr('.*\..\{,3}') .. ' seconds to run Substitute()'
  :1p
  qa!
EOF

vim -Nu NONE +'h version8 | saveas! /tmp/version8.txt | qa!'
for i in {1..10}; do
  vim -es -N -u NONE -U NONE -i NONE -S /tmp/test.vim /tmp/version8.txt
done

Results:
0.112 seconds to run Substitute()
0.112 seconds to run Substitute()
0.121 seconds to run Substitute()
0.113 seconds to run Substitute()
0.111 seconds to run Substitute()
0.114 seconds to run Substitute()
0.114 seconds to run Substitute()
0.110 seconds to run Substitute()
0.112 seconds to run Substitute()
0.112 seconds to run Substitute()

Average: 113 ms.

Ah yes, I forgot that :for loops could be much faster than map().  Here, it's a bit faster (around 10%), but still much slower than :s:
#!/bin/bash

cat <<'EOF' >/tmp/test.vim
  vim9script
  def Substitute()
    for lnum in range(1, line('$'))
      getline(lnum)->substitute('pat', 'rep', 'g')->setline(lnum)
    endfor
  enddef
  defcompile
  var time = reltime()
  Substitute()
  :0put =reltime(time)->reltimestr()->matchstr('.*\..\{,3}') .. ' seconds to run Substitute()'
  :1p
  qa!
EOF

vim -Nu NONE +'h version8 | saveas! /tmp/version8.txt | qa!'
for i in {1..10}; do
  vim -es -N -u NONE -U NONE -i NONE -S /tmp/test.vim /tmp/version8.txt
done

Results:
0.112 seconds to run Substitute()
0.112 seconds to run Substitute()
0.121 seconds to run Substitute()
0.113 seconds to run Substitute()
0.111 seconds to run Substitute()
0.114 seconds to run Substitute()
0.114 seconds to run Substitute()
0.110 seconds to run Substitute()
0.112 seconds to run Substitute()
0.112 seconds to run Substitute()

Average: 113 ms.

That's disappointing.  It requires doing profiling to see where most
time is spent.  Could be compiling the regexp.
--
hundred-and-one symptoms of being an internet addict:
136. You decide to stay in a low-paying job teaching just for the
free Internet access.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Here are the 10 most costly function calls extracted from the full log:
Flat profile:

Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total
 time   seconds   seconds    calls   s/call   s/call  name
 13.24      0.27     0.27        1     0.27     1.57  exec_instructions
  6.86      0.41     0.14        1     0.14     0.24  readfile
  5.88      0.53     0.12  1588710     0.00     0.00  nfa_regcomp
  5.88      0.65     0.12 64464905     0.00     0.00  utfc_ptr2len
  4.90      0.75     0.10  1588706     0.00     0.00  u_savecommon
  4.41      0.84     0.09  3177420     0.00     0.00  post2nfa
  3.43      0.91     0.07  5621920     0.00     0.00  vim_strchr
  2.94      0.97     0.06 23884934     0.00     0.00  lalloc
  2.94      1.03     0.06 14298376     0.00     0.00  clear_tv
  2.70      1.09     0.06  1588710     0.00     0.00  vim_regcomp


method put

catch method put

If you want a new NPM version with your patch included, please send another PR to bump the package version, so that our devops pipeline could be able to publish a new version for you.
Thank you very much for your fix!


Fixed In-World-Chat

Added @ajbura's fix for a timeline-loading race condition https://github.com/vector-im/hydrogen-web/pull/844

Looks good on staging, nice work @ajbura!


Bubble card not showing up???

Installed via HACS, cache cleared, rebooted etc, but bubble card not showing?
Any ideas?

Not OP but I am having similar issue, installed version 2.0.0beta2

Bubble pop up was removed a few version before this one to improve the stability and to makes updates easier, you now have to replace this in all your pop-ups:
- type: custom:bubble-pop-up

By this:
- type: custom:bubble-card
   card_type: pop-up

Thanks! that's fixed it.

Hi folks - No errors, but will do some digging.... Thanks for the replies.

Hi, any news about that issue? Can I close this?

Hello Guys, I seem to have the same problem. I installed bubble card today. Restarted HA, reinstalled bubble Card, tried different browsers but no luck... It doesn't show up in the search bar of the "Add Card" button. If i try adding the card manually:
- type: custom:bubble-card
  card_type: pop-up

I get this error:
No card type configured

Im not sure if it is related but in my case the blur work but then the card is not showing up
When i go to the edit mode i notice difference in those card that not show up it has a little x as shown in the screen shot it is like the card did not load up nicely


[Question] Is gRPC client stub threadsafe in Python?

We are using Go for our gRPC server and Python for the clients. Can a client stub created at startup be safely shared across threads/processes?

Yes.
Retitling issue to reflect that we should make this clear in gRPC Python's documentation.

Is there anything that needs to be configured to achieve this? I'm running into a problem with grpc 1.7.0 for python where concurrent access to a grpc stub causes all processes to hang

@dvaldivia: no, that's weird and strange and shouldn't be happening. Are you able to share with us a demonstration (code to run and description of environment in which to run it) of that problem?

@nathanielmanistaatgoogle yes, I created a sample project with https://github.com/dvaldivia/grpc-celery-fork-bug also I raised issue #13464


HAWQ-51. Support Kerberos for libyarn

codes about supporting Kerberos for libyarn, please review.

Code is almost good except the space issue. +1


Item: Dark Matter Shears

A pair of Dark Matter Shears are a pair of shears made of Dark Matter

Textures merged in https://github.com/pahimar/Equivalent-Exchange/pull/54


VersionInfo class is not created

Hello,
I can not access VersionInfo class, because it is not packed into the assembly. I checked this with ILSpy. The compile time version info from  however is properly included and visible when I checked the properties of the DLL.
This is the test project and configuration that I used:
VersionInfoGeneratorTest.csproj
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <InformationalVersion>@@GitTag@@-@@GitRevShort@@-@@GitBranch@@</InformationalVersion>
    <VersionInfoClassNamespaceGlobal>true</VersionInfoClassNamespaceGlobal>
    <VersionInfoClassModifiers>internal static</VersionInfoClassModifiers>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="VersionInfoGenerator" Version="2.0.2" PrivateAssets="all" />
  </ItemGroup>
</Project>

AccessVersionInfo.cs
namespace VersionInfoGeneratorTest
{
    public class AccessVersionInfo
    {
        public AccessVersionInfo ()
        {
            //?! there is no class named VersionInfo...
           VersionInfo.
        }
    }
}

Do you know whats the issue here?
Best regards
Philipp

Hey there!
Seems to work for me with the provided csproj:

What IDE and OS do you use? Source Generator support was introduced in some Visual Studio 2019 update. Not sure when Jetbrains Rider added support for it. Older versions won't be able to see the generated class.
If you're on the latest version of Visual Studio 2019, try this:

Clean the solution/project
Restart Visual Studio
Rebuild the solution/project and see if the class shows up
If nothing works, try building from the command line using the dotnet runtime: dotnet build

What IDE and OS do you use? Source Generator support was introduced in some Visual Studio 2019 update. Not sure when Jetbrains Rider added support for it. Older versions won't be able to see the generated class.

My bad. I installed the latest VS2019 update and it works. Thank you for your fast help!

Happy to help! I'll add it to the README because I'm sure other people will encounter this issue.


Footer rendered differently in v3

Hi,
I just noticed that the footer is rendered differently when moving from version 2.9.0 to 3.0.0
Version V2.9.0

Version V3.0.0

Those screenshots were from Acrobat, in the Edge browser the footer looks even worse:

I think the inline styling is ignored. Or the stylesheet is now applied later and also to the header and footer
I could not find any logging on the header/footer generation using the -v and --debug options.
I'm using the (undocumented) --header-url and --footer-url to link to the files
full command
& ".\azuredevops-export-wiki.exe" -v -o export.pdf --debug --css .\devopswikistyle.css --header-url .\page-header.html --footer-url .\page-footer.html -b -m
Code:
<!DOCTYPE html>

Document generated on:

                Page  of

Most likely a css thing - the footer has not changed. Are you using the same parameters for both converters?

Yes, I specifically downloaded v2.9.0 to retest and verify the results.
I'll test tomorrow if the stylesheet is now global to the document, which I thought it wasn't (hence the online styling). If it is, that's actually an improvement.

Not sure, let me know what you find out
Get Outlook for iOShttps://aka.ms/o0ukef

From: Jeroen @.>
Sent: Thursday, June 3, 2021 11:29:26 PM
To: MaxMelcher/AzureDevOps.WikiPDFExport @.>
Cc: Max Melcher @.>; Comment @.>
Subject: Re: [MaxMelcher/AzureDevOps.WikiPDFExport] Footer rendered differently in v3 (#66)
Yes, I specifically downloaded v2.9.0 to retest and verify the results.
I'll test tomorrow if the stylesheet is now global to the document, which I thought it wasn't (hence the online styling). If it is, that's actually an improvement.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/MaxMelcher/AzureDevOps.WikiPDFExport/issues/66#issuecomment-854193006, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAH3LNZ5LGT5HUIVQIWP5L3TQ7X3NANCNFSM46A5ERTQ.

Just tested this by adding a class to my header/footer and put the styling (font color) for this class in the css file that gets passed in.
The result is as I expected:

The styling is applied in v3.0.0
The styling not applied in v2.9.0

This concludes that the passed in stylesheet is now global to the whole document. I would consider this a feature, not a bug. But maybe good to mention this and/or update the example header/footer files.

Thats nice - let's update the docs and css then
Get Outlook for iOShttps://aka.ms/o0ukef

From: Jeroen @.>
Sent: Friday, June 4, 2021 11:52:47 AM
To: MaxMelcher/AzureDevOps.WikiPDFExport @.>
Cc: Max Melcher @.>; Comment @.>
Subject: Re: [MaxMelcher/AzureDevOps.WikiPDFExport] Footer rendered differently in v3 (#66)
Just tested this by adding a class to my header/footer and put the styling (font color) for this class in the css file that gets passed in.
The result is as I expected:

The styling is applied in v3.0.0
The styling not applied in v2.9.0

This concludes that the passed in stylesheet is now global to the whole document. I would consider this a feature, not a bug. But maybe good to mention this and/or update the example header/footer files.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/MaxMelcher/AzureDevOps.WikiPDFExport/issues/66#issuecomment-854543184, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAH3LN7E4IW5VAIKEFBCMZTTRCO67ANCNFSM46A5ERTQ.

I'm getting inconsistent results when trying to make the bottom table 100% width again. Not sure about the total generated HTML. Is there a way to output that? The --debug gives the pages, but does not include the header/footer.
Moving inline styles to class on the same attribute does not give the same results. Which leads me to believe some other inline styling is added?

I fixed my own document now. The only thing I can't seem to figure out is why all table cells have 0 padding. (this is throughout the document. The v2.9.0 html output had the stylesheet in the header. The v3.0.0 just has bare HTML. If you add the style sheet, the browser shows the tables with some padding, but this is not reflected in the PDF.

can we close this?

yeah, I think so. I still have some issues with the layouting, but will try with the newer version and extended logging.


Undefined control sequence with tinytex

If I try to render the template locally on a Mac with:
quarto use template quarto-journals/acm
cd article
quarto install tinytex
quarto render article.qmd --to acm-pdf

I get:
compilation failed- error
Undefined control sequence.
l.182 \acmPrice
               {15.00}

Even though it appears tinytex is installing the acmart package:
updating existing packages
finding package for acmart.cls
> 1 package to install
> installing acmart (1 of 1)
  This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex)
   restricted \write18 enabled.
  entering extended mode

It does work if I instead install a full MacTex installation, which is what I'm doing for now.
Full logs

❯ quarto render article.qmd --to acm-pdf
pandoc
  to: latex
  output-file: article.tex
  template: _extensions/quarto-journals/acm/acmarttemplate.tex
  standalone: true
  pdf-engine: xelatex
  variables:
    graphics: true
    tables: true
  default-image-extension: pdf
  cite-method: natbib

metadata
  block-headings: true
  knitr:
    opts_chunk:
      echo: false
  colorlinks: true
  urlcolor: red
  biblio-style: te.bst
  documentclass: acmart
  header-includes:
    - |
      \definecolor{mypink}{RGB}{219, 48, 122}
  bibliography:
    - bibliography.bib
  title: The Name of the Title Is Hope
  short-title: Hope
  author:
    - name: Ben Trovato
      email<EMAIL_ADDRESS>      orcid: 1234-5678-9012
    - name: G.K.M. Tobin
      email<EMAIL_ADDRESS>      affiliation:
        name: Institute for Clarity in Documentation
        address: P.O. Box 1212
        city: Dublin
        state: Ohio
        country: USA
        postal-code: 43017-6221
    - name: Lars Thørväld
      email<EMAIL_ADDRESS>      affiliation:
        name: The Thørväld Group
        address: 1 Thørväld Circle
        city: Hekla
        country: Iceland
    - name: Valerie Béranger
      affiliation:
        name: Inria Paris-Rocquencourt
        city: Rocquencourt
        country: France
    - name: Aparna Patel
      affiliation:
        name: Rajiv Gandhi University
        address: Rono-Hills
        city: Doimukh
        state: Arunachal Pradesh
        country: India
    - name: Huifen Chan
      affiliation:
        name: Tsinghua University
        address: 30 Shuangqing Rd
        city: Haidian Qu
        state: Beijing Shi
        country: China
    - name: Charles Palmer
      affiliation:
        name: Palmer Research Laboratories
        address: 8600 Datapoint Drive
        city: San Antonio
        state: Texas
        country: USA
        postal-code: 78829
      email<EMAIL_ADDRESS>    - name: John Smith
      affiliation:
        name: The Thørväld Group
        address: 1 Thørväld Circle
        city: Hekla
        country: Iceland
      email<EMAIL_ADDRESS>    - name: Julius P. Kumquat
      affiliation:
        name: The Kumquat Consortium
        city: New York
        country: USA
      email<EMAIL_ADDRESS>  acm-metadata:
    final: true
    copyright-year: 2018
    acm-year: 2018
    copyright: acmcopyright
    doi: XXXXXXX.XXXXXXX
    conference-acronym: Conference acronym 'XX
    conference-name: |
      Make sure to enter the correct
      conference title from your rights confirmation emai
    conference-date: 'June 03--05, 2018'
    conference-location: 'Woodstock, NY'
    price: '15.00'
    isbn: 978-1-4503-XXXX-X/18/06
    shortauthors: Trovato et al.
    ccs: |
      \begin{CCSXML}
      <ccs2012>
       <concept>
        <concept_id>10010520.10010553.10010562</concept_id>
        <concept_desc>Computer systems organization~Embedded systems</concept_desc>
        <concept_significance>500</concept_significance>
       </concept>
       <concept>
        <concept_id>10010520.10010575.10010755</concept_id>
        <concept_desc>Computer systems organization~Redundancy</concept_desc>
        <concept_significance>300</concept_significance>
       </concept>
       <concept>
        <concept_id>10010520.10010553.10010554</concept_id>
        <concept_desc>Computer systems organization~Robotics</concept_desc>
        <concept_significance>100</concept_significance>
       </concept>
       <concept>
        <concept_id>10003033.10003083.10003095</concept_id>
        <concept_desc>Networks~Network reliability</concept_desc>
        <concept_significance>100</concept_significance>
       </concept>
      </ccs2012>
      \end{CCSXML}

      \ccsdesc[500]{Computer systems organization~Embedded systems}
      \ccsdesc[300]{Computer systems organization~Redundancy}
      \ccsdesc{Computer systems organization~Robotics}
      \ccsdesc[100]{Networks~Network reliability}
    keywords:
      - datasets
      - neural networks
      - gaze detection
      - text tagging
  abstract: |
    A clear and well-documented \LaTeX\ document is presented as an
    article formatted for publication by ACM in a conference proceedings
    or journal publication. Based on the "acmart" document class, this
    article presents and explains many of the common variations, as well
    as many of the formatting elements an author may use in the
    preparation of the documentation of their work.

running xelatex - 1
  This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex)
   restricted \write18 enabled.
  entering extended mode

updating tlmgr

updating existing packages
finding package for acmart.cls
> 1 package to install
> installing acmart (1 of 1)
  This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex)
   restricted \write18 enabled.
  entering extended mode

finding package for manyfoot.sty
> 1 package to install
> installing ncctools (1 of 1)
  This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex)
   restricted \write18 enabled.
  entering extended mode

compilation failed- error
Undefined control sequence.
l.182 \acmPrice
               {15.00}

A colleague of mine reproduced this just now, so I think it's not just limited to my computer.

Thanks for reporting this!
The issue is that the most recent version of the acmart class removed acmPrice (your full installation of tex is likely providing an older version of the template):
https://github.com/borisveytsman/acmart/blob/049003167a3d4b78502ced539dfb8eb59aef6ffc/README#L17
There is something a bit more complicated in play here as we are attempting to include a static version of the class, but it isn't being used properly (due to the way we have the extension configured). I'll take a closer look and get a fix prepared that is general in this repo later today.
In the meantime, if you'd like you can remove \acmPrice{$acm-metadata.price$} from the template partial located in _extensions/quarto-journals/acm/partials/_acmart_preamble.tex to just get up and running if you'd like.


temperature-sensor certificate verify failure

Please provide us with the following information:

This issue is for a: (mark with an x)
- [ x] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce

Deploy temperature-sensor, container runs but no events arrive at the IoT Hub.
pi@raspberrypi:~ $ sudo docker ps
CONTAINER ID        IMAGE                                                                      COMMAND                   CREATED             STATUS              PORTS                                                                  NAMES
91a32a145411        mcr.microsoft.com/azureiotedge-hub:1.0                                     "/bin/sh -c 'echo "$…"   3 days ago          Up About an hour    <IP_ADDRESS>:443->443/tcp, <IP_ADDRESS>:5671->5671/tcp, <IP_ADDRESS>:8883->8883/tcp   edgeHub
8c1694be51b4        ttseeedcr.azurecr.io/azureiotedge-seeed-temperature-sensor:1.0.2-arm32v7   "python3 -u ./main.py"    4 days ago          Up About an hour                                                                           temperature-sensor
ec43df49c982        microsoft/azureiotedge-agent:1.0.0-preview022-linux-arm32v7                "/usr/bin/dotnet Mic…"    4 days ago          Up About an hour                                                                           edgeAgent
pi@raspberrypi:~ $

Any log messages given by the failure
edgeHub log:

2019-02-26 08:47:03.877 +00:00 [WRN] - TLS handshake failed., System.IO.IOException: Channel is closed, 69dce510
2019-02-26 08:47:50.659 +00:00 [WRN] - TLS handshake failed., System.IO.IOException: Channel is closed, 37cb8141
2019-02-26 08:48:54.306 +00:00 [WRN] - TLS handshake failed., System.IO.IOException: Channel is closed, 3c99e613
2019-02-26 08:51:02.307 +00:00 [WRN] - TLS handshake failed., System.IO.IOException: Channel is closed, 5659f679
2019-02-26 08:52:36.404 +00:00 [INF] - Reauthenticating connected clients
2019-02-26 08:52:55.537 +00:00 [INF] - Exiting connected state
2019-02-26 08:52:55.540 +00:00 [INF] - Entering unreachable state
2019-02-26 08:52:56.029 +00:00 [INF] - Entering connected state
2019-02-26 08:55:21.298 +00:00 [WRN] - TLS handshake failed., System.IO.IOException: Channel is closed, 0c4e493a

temperature-sensor log:
Error: Time:Tue Feb 26 08:44:02 2019 File:/usr/sdk/src/c/c-utility/adapters/socketio_berkeley.c Func:wait_for_connection Line:385 Failure: connect failure 111.
Error: Time:Tue Feb 26 08:44:02 2019 File:/usr/sdk/src/c/c-utility/adapters/socketio_berkeley.c Func:socketio_open Line:769 wait_for_connection failed
Error: Time:Tue Feb 26 08:44:02 2019 File:/usr/sdk/src/c/c-utility/adapters/tlsio_openssl.c Func:on_underlying_io_open_complete Line:760 Invalid tlsio_state. Expected state is TLSIO_STATE_OPENING_UNDERLYING_IO.
Error: Time:Tue Feb 26 08:44:02 2019 File:/usr/sdk/src/c/c-utility/adapters/tlsio_openssl.c Func:tlsio_openssl_open Line:1258 Failed opening the underlying I/O.
Error: Time:Tue Feb 26 08:44:02 2019 File:/usr/sdk/src/c/umqtt/src/mqtt_client.c Func:mqtt_client_connect Line:1000 Error: io_open failed
Error: Time:Tue Feb 26 08:44:02 2019 File:/usr/sdk/src/c/iothub_client/src/iothubtransport_mqtt_common.c Func:SendMqttConnectMsg Line:2122 failure connecting to address raspberrypi.
Sending message: 3, Body: {"timeCreated": "2019-02-26 08:44:03.930331", "machine": {"pressure": 1031.142827161509, "temperature": 21.193549685186007}, "ambient": {"humidity": 37.98350231217907, "temperature": 21.193549685186007}, "id": {"int":<PHONE_NUMBER>3368547115704163784748906476}}
Sending message: 4, Body: {"timeCreated": "2019-02-26 08:44:08.954609", "machine": {"pressure": 1031.1056742449916, "temperature": 21.203708364773775}, "ambient": {"humidity": 37.43827245405641, "temperature": 21.203708364773775}, "id": {"int":<PHONE_NUMBER>71103402045226109145346141105}}
Sending message: 5, Body: {"timeCreated": "2019-02-26 08:44:13.979483", "machine": {"pressure": 1031.205995246968, "temperature": 21.19862902483437}, "ambient": {"humidity": 37.2451880206323, "temperature": 21.19862902483437}, "id": {"int":<PHONE_NUMBER>2852709408976605549884189746}}
Sending message: 6, Body: {"timeCreated": "2019-02-26 08:44:19.000761", "machine": {"pressure": 1031.1688427783474, "temperature": 21.208787705004216}, "ambient": {"humidity": 37.07473304573379, "temperature": 21.208787705004216}, "id": {"int":<PHONE_NUMBER>49390105969928582859248955295}}
Error: Time:Tue Feb 26 08:44:19 2019 File:/usr/sdk/src/c/c-utility/adapters/tlsio_openssl.c Func:send_handshake_bytes Line:673 error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
Sending message: 7, Body: {"timeCreated": "2019-02-26 08:44:24.021232", "machine": {"pressure": 1031.178747114484, "temperature": 21.19862902483437}, "ambient": {"humidity": 36.949824741601944, "temperature": 21.19862902483437}, "id": {"int":<PHONE_NUMBER>65634630368362613026475715813}}
Expected/desired behavior

Certificate verification succesfull, messages are arriving at the Azure IoT Hub.

OS and Version?

Windows 10 Pro 1809

Versions

mcr.microsoft.com/azureiotedge-agent:1.0
mcr.microsoft.com/azureiotedge-hub:1.0

Mention any other details that might be useful
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.0",
"createOptions": "{"HostConfig":{"PortBindings":{"5671/tcp":[{"HostPort":"5671"}], "8883/tcp":[{"HostPort":"8883"}],"443/tcp":[{"HostPort":"443"}]}}}"
},
"env": {
"OptimizeForPerformance": {
"value": "false"
}
}
}
},
connect.log
edgeAgent.log
edgeHub.log
temperature-sensor.log

Thanks! We'll be in touch soon.

experiencing the same issue. it also affects the 3-speech-recognizer tutorial for me.
the 2-image-classifier tutorial does not have this issue for me.


Release get-python-version action as a proper action

PR #26 adds a composite action to grab the last N minor Python releases. This could be quite re-usable (indeed, it's used in both the cookiecutter and the cookie CI itself). Therefore, releasing it as a proper action would be nice and modular.

Closed by https://github.com/MDAnalysis/get-latest-python-version/pull/1


Issue with electricity and habitats upgrades.

Hi!
There is a issue when you select "Fill all habitats with workers". Electricity is 0/0 and cannot be changed by destroying or building any type of buildings.
Also i noticed that added workers have "_home": 0, instead of habitat ID. I guess that might cause some issues.
Another issue is that every time a change is made all habitats are upgrading themselves infinitly.
The only thing i found is that in a modified save file, line "upgrade" looks like:
"upgrade": "",
While in normal save file it is:
"upgrade": null,
I hope that helps and i hope you would manage to fix that.

Hi,
i habe to admit i haven't played in a while so it might be behind. Could you provide me with the following:

Your Game Version
The unmodified save file
The modified save file

I assume the Problem only occurs when using "Fill all habitats with workers", or are you also experiencing trouble anywhere else?

Hi,
Game version: 1.49.446
Saves (they are over 25MB :/ ):
https://file.io/Wf0MSmXntv4Z
The issue with endless upgrades of Lvl6 habitats occurs every time, no matter what you modify.
in original save it is:
"upgrade"= null,
in modified it is:
"upgrade"= "",
The issue with 0/0 electricity occur only after selecting "Fill all habitats with workers".
I hope this helps.

Thank you @Leo-13th for providing the data.
I could reproduce the issues on my end and created a series of PRs to fix them:

#82 fixes the habitats endlessly updating
#84 fixes the issue with the electricity grid
#83 Adds support for the latest game version, specifically the upgradeManager, which i see in the save but does not actually appear to be in the game yet?

This CI run should contain all the fixes. Could you check the resulting artifact to confirm that it fixes the issue on your side? If yes i can close the issue and create a release with the fixes.

Everything works fine so far.
I will let you know if something will occur in the future.

Yeah, i may not be actively playing InfraSpace right now, but if something breaks again and i have time i will fix it.
New version 1.1.2 should be released shortly.


Show Notes ⚡📻 11/30 @ Downtown

Stand up

Last week - Let's make stuff: Shout out to @kevinpagtakhan & @arunkhanna00 for getting the ball rolling on our community page with this Pull Request: https://github.com/gr2m/github-community-list/pull/1 @gr2m and @machikoyasuda wrote a Reverse Proxy to hit the GitHub API using free-for-open-source tools like Now and Request Bin and styled it some more.

How are we fetching Markdown files from GitHub's API, parsing it and displaying it dynamically? Check out the Network tab in your browser console:

ProTip: 📓 Add yourself to the list: https://github.com/fullstackla/pairing-meetup/blob/master/community/README.md

How should we improve this page? How can we open source and share this project so other meetup groups can make pages like this of themselves?

Meetup News: There's a new every-other-Thursday meetup brewing in Westlake Village by our Fullstack pals @smeads, @cdransf & @learningnerd: https://www.meetup.com/LearnToCodeLA/events/235521573/

ProTip: Have you joined our http://exercism.io/teams/dtla-pair-programming/ group yet? Have you set it as your homepage yet?

📅 Fullstack Winter Break: https://github.com/fullstackla/pairing-meetup/issues/122

Open source picks!

https://github.com/gr2m/selsa
Maps https://github.com/onsen-club/map
More fancier maps https://cityhubla.github.io/lacity_exploration_12/#13.08/34.1389/-118.2547

Where to start:

Completely new to coding? Start by pairing on Exercism puzzles.
First Timers Only: New to contributing to applications/projects: https://github.com/fullstackla/pairing-meetup/issues/127 https://github.com/fullstackla/pairing-meetup/issues/125 https://github.com/fullstackla/pairing-meetup/issues/127 https://github.com/fullstackla/pairing-meetup/issues/125 https://github.com/fullstackla/pairing-meetup/issues/130 https://github.com/exercism/exercism.io/issues/3228#issuecomment-257933565
I want to try Go: https://github.com/fullstackla/pairing-meetup/issues/1
I am itching to work on a group project but I don't have ideas or friends to start one with: https://github.com/fullstackla/pairing-meetup/issues/134 https://github.com/fullstackla/pairing-meetup/issues/125 https://github.com/fullstackla/pairing-meetup/issues/126

Contributors + stuff you want to work on:

Attendees: https://www.meetup.com/la-fullstack/events/235303964/

miss you all :wave: Have a great time tonight ;)

Regarding no. 4, I have a small React app here. The demo is here. This app shows the timelines/Yes RSVPs of some of the meet up groups around the area. It's nothing serious. I built it to learn about React.
The repo is a gigantic mess but if there's enough interest, I'll try to clean it up a little bit. Maybe add an actual README, etc.
I'm not going to be able to attend the meet up tonight though, so have fun y'all.

https://github.com/dcmoore/resilient-integration-workshop/commit/b7251a8cd600eac4c6d7fd170a0877a78ad06153


[BUG] OPT, GPT-neo accuracy dropped when using kernel injection

Describe the bug
I'm conducting experiments with opt-1.3B, and gpt-neo2.7b on wikitext2, with the official example from huggingface and deepspeed.
What I observed is that the accuracy and ppl are dropped significantly. BUT, somehow the generated tokens are almost the same. Which is super strange. So far I haven't got time and resource to test other models.
without deepspeed I get ppl= 29.76
with deepspeed I get ppl= 9190.3371
### Tasks
- [ OPT-1.3B inference ]
- [ gpt-neo2.7b inference ]

To Reproduce
Steps to reproduce the behavior:

Simple inference script to reproduce:
https://raw.githubusercontent.com/huggingface/transformers/main/examples/pytorch/language-modeling/run_clm.py

and add deepspeed init in-place:
ds_engine = deepspeed.init_inference(
model, mp_size=world_size,
dtype=torch.float,
# max_out_tokens=4096,
replace_with_kernel_inject=True,
replace_method="auto"
)
model = ds_engine.module
output is the ppl and accuracy summury, so it should be easy to spot.

What packages are required and their versions:
transformer==4.28.1
datasets==2.11.0
evaluate==0.4.0
pytorch==1.12.0
no accelerator is used when running

How to run the script

python run_clm.py
--model_name_or_path ../resource_opt13b
--dataset_name wikitext
--dataset_config_name wikitext-2-raw-v1
--per_device_eval_batch_size 1
--do_eval
--output_dir ./tmp
”../resource_opt13b“ can be replaced by huggingface model name 'e.g. opt-1.3b', I downloaded it and loaded it offline

...

Expected behavior
I expect the accuracy and ppl would be the same or at least similar.
ds_report output
Please run ds_report to give us details about your setup.
DeepSpeed C++/CUDA extension op report
NOTE: Ops not installed will be just-in-time (JIT) compiled at
runtime if needed. Op compatibility means that your system
meet the required dependencies to JIT install the op.
JIT compiled ops requires ninja
ninja .................. [OKAY]
op name ................ installed .. compatible
[WARNING]  async_io requires the dev libaio .so object and headers but these were not found.
[WARNING]  If libaio is already installed (perhaps from source), try setting the CFLAGS and LDFLAGS environment variables to where it can be found.
async_io ............... [NO] ....... [NO]
cpu_adagrad ............ [NO] ....... [OKAY]
cpu_adam ............... [NO] ....... [OKAY]
fused_adam ............. [NO] ....... [OKAY]
fused_lamb ............. [NO] ....... [OKAY]
quantizer .............. [NO] ....... [OKAY]
random_ltd ............. [NO] ....... [OKAY]
[WARNING]  please install triton==1.0.0 if you want to use sparse attention
sparse_attn ............ [NO] ....... [NO]
spatial_inference ...... [NO] ....... [OKAY]
transformer ............ [NO] ....... [OKAY]
stochastic_transformer . [NO] ....... [OKAY]
transformer_inference .. [NO] ....... [OKAY]
utils .................. [NO] ....... [OKAY]
DeepSpeed general environment info:
torch install path ............... ['/xxxxx/deepspeed/lib/python3.7/site-packages/torch']
torch version .................... 1.12.0
deepspeed install path ........... ['/xxxxx/deepspeed/lib/python3.7/site-packages/deepspeed']
deepspeed info ................... 0.9.1, unknown, unknown
torch cuda version ............... 11.6
torch hip version ................ None
nvcc version ..................... 11.2
deepspeed wheel compiled w. ...... torch 1.12, cuda 11.6
Screenshots
If applicable, add screenshots to help explain your problem.
System info (please complete the following information):

OS: [e.g. Ubuntu 18.04]
GPU count and types: one machines with x8 V100 but I only specified 1 when running
Python version = 3.7

Docker context
Are you using a specific docker image that you can share? None
Additional context
Add any other context about the problem here. None

Here is my benchmark for several model I tested, experiments are done on V100:
BLOOM 1.7b | 18.992 / 18.979 |
BLOOM 560M | 26.012 / 26.043 |
GPT-neo 1.3B | 15.402 / 238.091 |
llama 1.7b | 8.995 / 8.895 |
OPT 1.3B | 29.760 / 9181.997 |

numbers on the left of "/" are ppl generated using naive huggingface (pytorch)
numbers on the right of "/" are ppl generated using Deepspeed.
Seems to me the BLOOM and llama are fine while GPT and OPT are not.
Is it possible that some number causes boundary issue in kernel implementation?


Deal errors overlap, making them hard to read in the histogram

Small fix requested to decrease width of each histogram bar label and/or increase width between each bar so each error label is more readable.

This is still definitely a thing, but the histogram has been commented out of the dashboard for now. Going to move this to P3 since we have the error drilldown table for the time being.


Add Eloquence

Hey @RomainLanz Can you fix the merge conflict and send this again

Added via commit  05b26d8


Log that project ID and version in app's config files are ignored.

The plugin uses the user's command line/pom.xml  values for project ID and version.  If those aren't specified, it uses the Cloud SDK default project for the project ID and the time of deployment as the version.

LGTM


Add matioCpp conversions

@traversaro @GiulioRomualdi, if you are still ok with this, I would proceed with the merge

Can you add something in the changlog?

Can you add something to the changelog?

I did :wink:

Ops sorry @S-Dafarra fell free to merge it!


copy pull secret to backup namespace

Signed-off-by: Ray Harris<EMAIL_ADDRESS>

/hold
need approval to merge after code freeze

/lgtm

/lgtm

I have also validated these changes on the cluster and they appear to be working.

/unhold
Received approval from release manager. This is for issue https://github.com/stolostron/backlog/issues/21788


training files missing for training finegrained reward models

Hello, thanks for the great work and making this repo easy to follow and replicate your work.
In trying to run the commands used for training the reward models from scratch, e.g. bash tasks/qa_feedback/reward_modeling/train_fact_rm.sh, I get the error FileNotFoundError: Unable to find '/home/ec2-user/FineGrainedRLHF/./tasks/qa_feedback/data/F-ERR_sentence/train.json' at /home/ec2-user/FineGrainedRLHF and indeed the repo doesn't contain these JSON files.
I think these files are missing and need to be added to the repo. Thank you!

Hi, you'll need to run bash tasks/qa_feedback/reward_modeling/create_rm_train_files.sh to create reward model training files first.

that worked, thank you!
FYI the training script asks for a wandb api key, which I think should be made optional.


New footer bar overlapping SEND button with long payload

Your description here

New footer bar overlapping SEND button with long payload. Impossible to send message.
Screen resolution 1920x1080
Expected outcome
The footer bar should not hide the send button
Actual outcome
What happened?
Versions
App: <IP_ADDRESS>5-stable
Chrome: 54.0.2840.71
Platform: Windows (10)
Steps to reproduce

put a long json payload in the payload form

Hi,
Thank you for the issue report. It's a duplicate of #837.
The issue is fixed and when I'll finish with #830 I'll release the update.


Thread 'main' panicked at 'index out of bounds: the len is 0 but the index is 0'

I can reproduce this crash most times (but not always) with the following steps:

create a large media file in  (in my case, a 1.5GB mp4)
run cat file.mp4
press Control+C *multiple times) to cancel the cat command

Of course it doesn't make much sense to do this, I was just testing stuff. And if the error occurs here, it might also occur in other cases.
2018-06-18 07:14:34 ERROR - "file.mp4" is not a valid cache file, deleting
thread '<unnamed>' panicked at 'index out of bounds: the len is 0 but the index is 0', src/catfs/error.rs:56:30
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
   1: std::sys_common::backtrace::print
   2: std::panicking::default_hook::{{closure}}
   3: std::panicking::default_hook
   4: std::panicking::rust_panic_with_hook
   5: std::panicking::begin_panic
   6: std::panicking::begin_panic_fmt
   7: rust_begin_unwind
   8: core::panicking::panic_fmt
   9: core::panicking::panic_bounds_check
  10: <catfs::catfs::error::RError<E>>::from
  11: catfs::catfs::file::Handle::copy
  12: <F as threadpool::FnBox>::call_box
thread '<unnamed>' panicked at 'index out of bounds: the len is 0 but the index is 0', src/catfs/error.rs:56:30
stack backtrace:
   0:     0x560f168c7f6b - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::h79684051ac41db78
   1:     0x560f168cddce - std::sys_common::backtrace::print::h9921892c7d251199
   2:     0x560f168c1bc0 - std::panicking::default_hook::{{closure}}::hb1ef6f271daa5072
   3:     0x560f168c16f6 - std::panicking::default_hook::h2b67894d489b9efc
   4:     0x560f168c200b - std::panicking::rust_panic_with_hook::h41c9d3408267e857
   5:     0x560f168c1e5e - std::panicking::begin_panic::h831f3212b8c92f84
   6:     0x560f168c1dca - std::panicking::begin_panic_fmt::h6b11c1b1e86a67d8
   7:     0x560f168c1d62 - rust_begin_unwind
   8:     0x560f168e5190 - core::panicking::panic_fmt::h53107fe7defdc8ff
   9:     0x560f168e5133 - core::panicking::panic_bounds_check::h085a39af45a0b18e
  10:     0x560f167c93b7 - <catfs::catfs::error::RError<E>>::from::h27d490962b8b7e54
  11:     0x560f167b0836 - <catfs::catfs::file::Handle as core::ops::drop::Drop>::drop::h1938f76c4e2338fe
  12:     0x560f167aa27b - core::ptr::drop_in_place::h67e4fafbf0527b3c
  13:     0x560f167aa37b - core::ptr::drop_in_place::h945f3a163c1a7185
  14:     0x560f167aa147 - <F as threadpool::FnBox>::call_box::h5aefb8f0e430b8fc
  15:     0x560f168bda13 - std::sys_common::backtrace::__rust_begin_short_backtrace::heceb445b827e0f72
  16:     0x560f168dbc6e - __rust_maybe_catch_panic
  17:     0x560f168bad72 - <F as alloc::boxed::FnBox<A>>::call_box::h283e02a755a98629
  18:     0x560f168caf57 - std::sys_common::thread::start_thread::hbfbd91005df9c030
  19:     0x560f168c2588 - std::sys::unix::thread::Thread::new::thread_start::h8f1e91b7a8bfa5fb
  20:     0x7f97c456d6da - start_thread
  21:     0x7f97c407e88e - __clone
  22:                0x0 - <unknown>
thread panicked while panicking. aborting.

SSHFS version 2.8
FUSE library version: 2.9.7
fusermount version: 2.9.7
using FUSE kernel interface version 7.19
catfs 0.8.0
cargo 0.26.0
Ubuntu 18.04
Linux 4.15.0-23-generic

Could you retest with the latest master?

Still happening on latest master

What is the backtrace?


Nothing is visible, no rendering!?

Hi,
I used the code of SimpleBrowser Demo (runs fine) and expand to a kind of SimpleTabbedBrowser (because the TabbedBrowser Demo is much complicate for my little project - I only need the view...).
But now nothing is rendering.
What's wrong?
TestWebView.zip

The Sender parameter in TWVBrowserBase.OnAfterCreated is the TWVBrowserBase instance and not a TWVWindowParent.
Don't set focus on a hidden control.
Please, use our forum for questions.


File Sharing with user

Is your feature request related to a problem? Please describe.
Currently file share api takes an user address as input but does not do anything with it. it just stores the address in the sharing info.
Describe the solution you'd like
There should be two different apis.

File share api, which shares a file globally
Some sort of DH encryption over sharing info with the user public key.

#84 is related to this.


Swift Package Manager support - Package Resolution Failed

Hello. I am trying to use OCMock via Swift Package Manager. I am on XCode Version 13.0 beta (13A5154h).
At first, SPM is able to recognize the URL https://github.com/erikdoe/ocmock.git as an available Swift Package.
Here is the full screenshot. I highlighted the parts pertaining to OCMock, and not my project.

This might be related to #496. To be honest, I haven't had a chance to look into that yet, but hopefully I can spend some time on OCMock next week.

Versions 3.9.x can now be resolved by Swift Package Manager.
Unfortunately, this still doesn't mean you can use OCMock as a dependency that way. The problem first mentioned in the following comment over a year ago still exists: https://github.com/erikdoe/ocmock/pull/379#issuecomment-614610432
In summary:

OCMock does not use automatic reference counting (ARC).
It's unlikely that Swift Package Manager will add support for building without ARC (see https://forums.swift.org/t/support-for-disabling-arc/27998/4).
This means OCMock must be built with a compiler flag that Swift Package manager considers unsafe.
But there are severe restrictions on how packages built with unsafe flags can be used. (see https://forums.swift.org/t/confused-by-unsafe-flags-being-disallowed-in-dependencies/27359/19 and https://forums.swift.org/t/override-for-unsafeflags-in-swift-package-manager/45273)

In a different issue @paulb777 mentioned that it is possible to use dependencies with unsafe flags by referencing the commit hash, and there seems to be (code for that)[https://github.com/apple/swift-package-manager/blob/df81b0ee306580e13f776124c613114f11d3569a/Sources/Workspace/Workspace.swift#L1023-L1026), but I wasn't able to get this to work. Even when I add OCMock by commit hash I get the error message that "the package product 'OCMock' cannot be used as a dependency of this target because it uses unsafe build flags."
It might be an option to distribute OCMock as a binary framework, but given the amount of time I've already invested with trying to support Swift Package Manager, this is nowhere near the top of my list of things to work on.

I'll shorten the title of this issue (because it's not only about resolution any more), and pin it.

About this issue, this works when you use the revision in the swiftpm.
Basically just take the commit from the tag and add ocmock like this:
.package(name: "OCMock", url: "https://github.com/erikdoe/ocmock.git", .revision("8d134a78bb2cb9e7a0f05ecbd5880bb05cd02863"))

I can confirm this works as @MapaX says. To use OCMock in an Xcode project, create e.g. an OCMockWrapper folder with a Package.swift file that references a specific OCMock commit such as the following:
// swift-tools-version:5.3

import PackageDescription

let package = Package(
    name: "OCMockWrapper",
    products: [
        .library(name: "OCMockWrapper", targets: ["OCMockWrapper"])
    ],
    dependencies: [
        .package(name: "OCMock", url: "https://github.com/erikdoe/ocmock.git", .revision("afd2c6924e8a36cb872bc475248b978f743c6050"))
    ],
    targets: [
        .target(name: "OCMockWrapper", dependencies: [
            .product(name: "OCMock", package: "OCMock")
        ])
    ]
)

You’ll need a dummy source file in OCMockWrapper/Sources/OCMockWrapper/ and a header at OCMockWrapper/Sources/OCMockWrapper/include/OCMockWrapper.h. Its content is not important; I used #import <OCMock/OCMock.h>.
Then drag the top-level OCMockWrapper folder into your project and add its product to your target.
We’ve been using it this way for a while and it works well. The only downside is that if you use OCMock from other packages of your own in addition to the wrapper, they have to agree on the commit hash, but that hasn’t been a problem for us to ensure.


Make the Python wrappers installable without path munging

Nice  :smiley:

This was great! Thanks! Please update https://github.com/dmlc/xgboost/wiki/Using-XGBoost-in-Python accordingly.
Since we are talking about installable part. Could you do a bit further effort to make something like make Rpack in the Makefile, to make  a tar ball that can be used to pip installed?
I think this should not be hard from the current state.
Thanks

Sure I'll have a look.


Add clean kernel shutdown on exit

Closes #19.
cc: @rgbkrk @jdfreder

Nice new avatar @captainsafia !  Thanks for the PR~!

Awesome.
We'll probably want to make sure we can close if the kernel is dead too. There's a way to handle the timeout with Rx though there may be an easier pattern.

@jdfreder Thanks!

@rgbkrk I opened #26.


[WIP] chore(e2e): automate E2E scenario with use of Operator for installation refactored

Description
automate E2E scenario with use of Operator for installation refactored
Which issue(s) does this PR fix
RHIDP-5227
PR acceptance criteria
Please make sure that the following steps are complete:

[ ] GitHub Actions are completed and successful
[ ] Unit Tests are updated and passing
[ ] E2E Tests are updated and passing
[ ] Documentation is updated if necessary (requirement for new features)
[ ] Add a screenshot if the change is UX/UI related

How to test changes / Special notes to the reviewer

/test e2e-tests

/test images

/test e2e-tests
/test images

/test e2e-tests
/test images

/test e2e-tests
/test images

/test e2e-tests
/test images

/test all

/test all

/test all

/test all

/retest

/test all

/test all

/test all

/test all

/test all

/test all

/retest

/retest

/retest


Position on VBScript support in Edge compatibility mode is unclear

I am looking to clarify the position on whether applications that use VBScript will continue to work in compatibility mode but have been struggling to get a clear picture.
Can the documentation be updated to answer the following questions:

Will compatibility-mode on Edge support running scripts in VBScript?
Will this continue to work in Windows 11?

Thanks!

@kemalsangrar Hello!  Microsoft Edge IE mode will be supported at least through 2029.  Additionally, Microsoft will give one year of notice before retiring the IE mode experience when the time comes.   More information here: https://techcommunity.microsoft.com/t5/windows-it-pro-blog/internet-explorer-11-desktop-app-retirement-faq/ba-p/2366549
For more information about, VBScript, I would suggest reaching out to the VBScript team.  Thanks!


The props cannot be deleted. After the software is closed, they can be thrown to the ground indefinitely

After the software is closed, items can be repeatedly dropped on the ground, instead of the normal game. Items dropped on the ground will disappear.Deleting in the software will still refresh repeatedly. I have reopened the game several times but still can't solve it
https://user-images.githubusercontent.com/92638461/198832000-26bc1e17-30ff-4eff-9919-4622ed248ead.mp4

Freezer -> Unfreeze Inventory


Lint error: Package not included in Android

Hi,
while building app after added silicompressor as a dependency I am getting error like:
...isoparser-1.0.6.jar: Invalid package reference in library; not included in Android: java.awt.image. Referenced from com.googlecode.mp4parser.authoring.tracks.mjpeg.OneJpegPerIframe.
...isoparser-1.0.6.jar: Invalid package reference in library; not included in Android: javax.imageio. Referenced from com.googlecode.mp4parser.authoring.tracks.mjpeg.OneJpegPerIframe.

As a workaround isoparser (which is a dependency for silicompressor) can be added to lint.xml like:
<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <issue id="InvalidPackage">
        <ignore regexp=".*isoparser.*" />
    </issue>
</lint>

@sergii-frost thanks very much for your feedback. I'm sure this will be of help to other users.
Please what version of android are you running and what is your minSdkVersion for your app?


AWS SDK for Rust

Switch to the official AWS SDK for Rust: https://aws.amazon.com/sdk-for-rust/

Closed by #36


Please stop renaming things

Please, for the love of god

Can you please rephrase your request and issue title so it's actionable? Otherwise you might like to open a discussion instead, though you'll need to provide more specific information.

@sgammon may I ask you to please give us more details? This way we could improve the next versions of detekt and incorporate your valuable feedback. Thank you!
BR

@schalkms I posted this in a pretty upset state as you might imagine, Detekt had just broken again during an update.
I realize you guys are OSS maintainers, it is a thankless job, I am one too.
I will summarize my request in clear terms in a new issue and tag it here.

Detekt had just broken again during an update

@sgammon Which update?
We're renaming things on main and releasing from the 1.23.x branch to prevent scenarios like this one exactly.


Failed to fetch an output packet. Ubuntu 20.04

After building the necessary libraries, running the scene gives warning errors:
Failed to fetch an output packet, rendering the input image
UnityEngine.Debug:LogWarning(Object)
DefaultGraphOnGPU:RenderOutput(Texture2D, Color32[]) (at Assets/Mediapipe/Examples/Scripts/DefaultGraphOnGPU.cs:19)
d__10:MoveNext() (at Assets/Mediapipe/Examples/Scripts/Director.cs:67)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at /home/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:197)
Any idea how to fix this?

Please tell me

the resolution and FPS of your camera.
which files do you put under Assets/SDK/Models.

And if you modified the BUILD file, will you also paste your BUILD file contents?

This patch may be helpful.
C/third_party/mediapipe_debug.patch
diff --git a/mediapipe/framework/calculator_graph.cc b/mediapipe/framework/calculator_graph.cc
index 702497f..ae2b250 100644
--- a/mediapipe/framework/calculator_graph.cc
+++ b/mediapipe/framework/calculator_graph.cc
@@ -934,6 +934,7 @@ void CalculatorGraph::RecordError(const ::mediapipe::Status& error) {
   {
     absl::MutexLock lock(&error_mutex_);
     errors_.push_back(error);
+    LOG(INFO) << error;
     has_error_ = true;
     scheduler_.SetHasError(true);
     for (const auto& stream : graph_output_streams_) {

C/WORKSPACE
...
# mediapipe
http_archive(
  name = "com_google_mediapipe",
  sha256 = "67f4b98f837ef74f72014d25d3ede23d06518104cd9160f6e5938df4f6adf906",
  strip_prefix = "mediapipe-0.7.9",
  patches = [
      "@//third_party:mediapipe_debug.patch", # add this line
      "@//third_party:mediapipe_model_path.diff",
  ],
  patch_args = [
      "-p1",
  ],
  urls = ["https://github.com/google/mediapipe/archive/v0.7.9.tar.gz"],
)
...

With this, if you build libs and run the scene, some error logs must be output under Logs/Mediapipe.

Ahhh i am sorry. i forgot to place the models! after cloning the git thrice i just forgot.
it works perfectly!

Well, it is not convenient to put model files manually, so I'll change the build process probably.


update for 2024.2.*

I'm gonna close this because it looks like it still requires a bit of work. But thanks for giving it a go.
See progress on the new release in https://github.com/tommilata/intelliroutes/issues/22.


Home page main block padding issue

Home page main block have some padding issue in the mobile view.

@nasirkhan We've fixed this now :)


The out param for BrokeredMessage was incorrect

BrokeredMessage out was incorrectly "out byte[] paraName"

Hi @MaxByrneAB, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. Real humans will now evaluate your PR.

TTYL, MSBOT;

@MaxByrneAB : Thanks for your contribution to the Azure documentation! The author, @christopheranderson, has been notified to review your proposed change.

@MaxByrneAB thanks for finding and fixing this reference bug. #sign-off

#sign-off


Add some dApps to browser's predefined list

Description the task
Add some dApps to browser's predefined list:

[x] Phala App: https://app.phala.network/
[x] Zenlink: https://dex.zenlink.pro/#/swap
[x] Avault: https://www.avault.network/vault
[x] Panorama Swap: https://panoramaswap.app/
[x] Taiga/Tapio: https://app.taigaprotocol.io/assets

@Quangdm-cdm Please add some new dApp below:

https://astr.domains/
https://astr.domains/buy
https://tfalpha.xyz/
https://event.tfalpha.xyz/

Version test: v0.2.4(117)
Validation pass.