No host specified in URI file:/// and No virtual method isEngagementSignalsApiAvailable Error on opening a webpage

[x] I have read the Getting Started section
[x] I have already searched for the same problem

Environment

Technology
Version

Flutter version
3.16.7

Plugin version
^6.0.0

Android version
All

iOS version

macOS version

Xcode version

Google Chrome version

Device information:
Comes in all android devices
Description
I have got below 2 Errors in this plugin and it's increase the crash rates on of my application.
Error 1:
This is regarding that in your plugin may be you are using any catch image in wrong way so when i open any page in web it's shows me NetworkImage Invalid argument(s): No host specified in URI file:/// issue.
Error 2:
This Error comes when I am open a page using  MyChromeSafariBrowser function.
code:
MyChromeSafariBrowser().open(
                          url: WebUri(url),
                          settings: ChromeSafariBrowserSettings(
                            shareState: CustomTabsShareState.SHARE_STATE_OFF,
                            barCollapsingEnabled: true,
                            packageName: 'com.android.chrome'
                          ),
                        );

Stacktrace/Logcat
Error 1:
======== Exception caught by image resource service ================================================
The following ArgumentError was thrown resolving an image codec:
Invalid argument(s): No host specified in URI file:///

When the exception was thrown, this was the stack:
#0      _HttpClient._openUrl (dart:_http/http_impl.dart:2752:9)
#1      _HttpClient.getUrl (dart:_http/http_impl.dart:2628:48)
#2      NetworkImage._loadAsync (package:flutter/src/painting/_network_image_io.dart:104:59)
#3      NetworkImage.loadImage (package:flutter/src/painting/_network_image_io.dart:66:14)
#4      ImageProvider.resolveStreamForKey.<anonymous closure> (package:flutter/src/painting/image_provider.dart:520:39)
#5      ImageCache.putIfAbsent (package:flutter/src/painting/image_cache.dart:377:22)
#6      ImageProvider.resolveStreamForKey (package:flutter/src/painting/image_provider.dart:517:81)
#7      ScrollAwareImageProvider.resolveStreamForKey (package:flutter/src/widgets/scroll_aware_image_provider.dart:104:19)
#8      ImageProvider.resolve.<anonymous closure> (package:flutter/src/painting/image_provider.dart:366:9)
#9      ImageProvider._createErrorHandlerAndKey.<anonymous closure> (package:flutter/src/painting/image_provider.dart:479:24)
#10     SynchronousFuture.then (package:flutter/src/foundation/synchronous_future.dart:43:39)
#11     ImageProvider._createErrorHandlerAndKey (package:flutter/src/painting/image_provider.dart:476:9)
#12     ImageProvider.resolve (package:flutter/src/painting/image_provider.dart:363:5)
#13     _ImageState._resolveImage (package:flutter/src/widgets/image.dart:1110:16)
#14     _ImageState.didChangeDependencies (package:flutter/src/widgets/image.dart:1060:5)
#15     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5631:13)
#16     Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)
#17     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2895:19)
#18     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:984:21)
#19     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:457:5)
#20     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1325:15)
#21     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1255:9)
#22     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1113:5)
#23     _invoke (dart:ui/hooks.dart:312:13)
#24     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:383:5)
#25     _drawFrame (dart:ui/hooks.dart:283:31)
Image provider: NetworkImage("", scale: 1.0)
Image key: NetworkImage("", scale: 1.0)
====================================================================================================

Error 2:
D/CustomTabsActivity(18347): Custom Tabs Engagement Signals API not supported
D/CustomTabsActivity(18347): java.lang.NoSuchMethodError: No virtual method isEngagementSignalsApiAvailable(Landroid/os/Bundle;)Z in class Landroidx/browser/customtabs/CustomTabsSession; or its super classes (declaration of 'androidx.browser.customtabs.CustomTabsSession' appears in /data/app/~~tATxK04CBNS15AQv44F9bQ==/com.univest.capp.uat-mm1A3Yzxpht4KvcdrJV3Vw==/base.apk)
D/CustomTabsActivity(18347): 	at com.pichillilorenzo.flutter_inappwebview_android.chrome_custom_tabs.ChromeCustomTabsActivity.customTabsConnected(ChromeCustomTabsActivity.java:224)
D/CustomTabsActivity(18347): 	at com.pichillilorenzo.flutter_inappwebview_android.chrome_custom_tabs.ChromeCustomTabsActivity$1.onCustomTabsConnected(ChromeCustomTabsActivity.java:117)
D/CustomTabsActivity(18347): 	at com.pichillilorenzo.flutter_inappwebview_android.chrome_custom_tabs.CustomTabActivityHelper.onServiceConnected(CustomTabActivityHelper.java:152)
D/CustomTabsActivity(18347): 	at com.pichillilorenzo.flutter_inappwebview_android.chrome_custom_tabs.ServiceConnection.onCustomTabsServiceConnected(ServiceConnection.java:24)
D/CustomTabsActivity(18347): 	at androidx.browser.customtabs.CustomTabsServiceConnection.onServiceConnected(CustomTabsServiceConnection.java:57)
D/CustomTabsActivity(18347): 	at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:2198)
D/CustomTabsActivity(18347): 	at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:2231)
D/CustomTabsActivity(18347): 	at android.os.Handler.handleCallback(Handler.java:958)
D/CustomTabsActivity(18347): 	at android.os.Handler.dispatchMessage(Handler.java:99)
D/CustomTabsActivity(18347): 	at android.os.Looper.loopOnce(Looper.java:205)
D/CustomTabsActivity(18347): 	at android.os.Looper.loop(Looper.java:294)
D/CustomTabsActivity(18347): 	at android.app.ActivityThread.main(ActivityThread.java:8177)
D/CustomTabsActivity(18347): 	at java.lang.reflect.Method.invoke(Native Method)
D/CustomTabsActivity(18347): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
D/CustomTabsActivity(18347): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
[AndroidChromeSafariBrowser] (android) AndroidChromeSafariBrowser ID<PHONE_NUMBER>1222022812269671639021252245188122 calling "onServiceConnected" using {}
D/SessionLifecycleClient(18347): Sending lifecycle 2 to service

I have search the issue but i am not get any proper solution.


UserListFilter project added

A javaScript based project User List Filter is added.

Fetched random user data from "https://randomuser.me/api/".
Process the data and create "li" items.
From any search items(Like :- name, city, or country) from the Input box rearrange the related results.

@LazySukanta Resolve the merge conflicts!


Update to 1.19.3 or 1.20 when it released and add the ability to get curtain places with elytra

Update to 1.19.3 or 1.20 when it released and add the ability to get curtain places with elytra when elytra is equipped and have fireworks in inventory
Katz#3694
Developer Notes (leave this blank)
Difficulty: __
Estimated Time Required: __
Once development starts.

Literally already done on Marvion's branch and my fork on Marvion's branch

Is your fork 1.19.3? It appears to be missing e958ae27473beb441660f8d413aa4b2dc33de333

Literally already done on Marvion's branch and my fork on Marvion's branch

There is no Update 1.20... I only play the newest update. if you can show me how i can update altoclef, i will do it myself
PS: Sorry for my Bad english.


errorConnectionError

When using the following config:
var config = {
    user: 'cam',
    password: 'password',
    server: 'LP1721',
    database: 'HelloWorld'
}
sql.connect(config, function(err) {
    // ... error checks

    console.log('error' + err);

});

I get the error:
errorConnectionError: Failed to connect to LP1721:1433 - connect ECONNREFUSED

I also get the error when trying . or (local) or localhost as the server:
errorConnectionError: Failed to connect to .:1433 - connect ECONNREFUSED

errorConnectionError: Failed to connect to localhost:1433 - connect ECONNREFUSED

errorConnectionError: Failed to connect to (local):1433 - connect ECONNREFUSED

The user and password is correct! As is the database name.
Any ideas what the issue is? Could the port be causing the problem?
When connecting via .NET I use:
<add name="ConnString" connectionString="Password=password;Persist Security Info=True;User ID=cam;Initial Catalog=HelloWorld; Data Source=LP1721"/>

Which works fine! So I can't see any issues with the actual connection details I am using.
Thanks

Am I missing something? Do I need anything extra?

It was because I didn't TCP/IP enabled in the SQL Server Configuration Manager


Fields allow the usage of the comma in decimal numbers. But decimals are ignored if the dot is not used

Either force the user to use dots, or automatically replace commas with dot before saving.

Fixed in 2.2: abbb1f689b0454eeb7cfb54769bdae54dfba932a


New package: ComplexOperations v0.1.0

Registering package: ComplexOperations
Repository: https://github.com/mhmodzoka/ComplexOperations.jl
Created by: @mhmodzoka
Version: v0.1.0
Commit: b65780994baafa838cf11420931f1d600e2c521a
Git reference: HEAD

@mhmodzoka please see the message above.  Once you fix the automerge issues you can register again the new revision without changing the version number and this pull request will be automatically updated.
[noblock]


Inner Exp Mod Failing to Load

Whenever I apply the InnerExp mod, I get a notification saying the mod failed to load, and it does not apply. Everything else seems to work, except this one. Thank you!

Hi, can you share your log.txt file please?


Feature/theme model changes

Context

Updates to the theme model to flag that something is an outlier. And other simplifications.
Also realised that the keywords are related to the labels - so can just calculate them from the label. A label uniquely identifies a topic (for a given question). The labels are the Name from the BERTopic outputs (https://maartengr.github.io/BERTopic/index.html).
Changes proposed in this pull request

Add a Boolean field to the Theme model to flag if something is an outlier (currently identified by a label starting with -1).
Calculate keywords based on the label.
Override save() in the Theme model - to save is_outlier and keywords based on label.
As keywords are related to the label, and the summary (not yet calculated, needs LLM methods) is one-to-one to the label, can make uniqueness constraint simpler.
Don't need to address existing data in the database (as we've not got much data/any data on server, and nothing live).
Subsequent simplifications to ML pipeline functions.

Guidance to review

I'm not convinced this is the best way to identify outliers - would welcome opinions @duncanjbrown and @KevinEtchells.
Some other possibilities that I thought of:

Use @property in a similar way to calculate fields for is_outlier and keywords - but you can't filter in querysets on properties.
Assigning "No theme" under the label for outliers (but that doesn't solve the keywords issue). We can't have blank themes in the Answer when it's an outlier - as there will be blanks before the theme is assigned.
Just calculate the keywords from the labels in the views.
Calculate if it's an outlier in the views by using startswith(-1)
I thought GeneratedField could work (https://docs.djangoproject.com/en/5.0/ref/models/fields/#generatedfield) - but couldn't figure out which functions to use to calculate the new fields.

Link to JIRA ticket

N/A
Things to check

[X] I have added any new ENV vars in all deployed environments and updated the .env.example and .env.test files in the repo

Thanks @nmenezes0. So I think (and please correct me if I'm wrong) for the filtering: the select-box would just show the themes where is_outlier=False. And when filtering by "No theme" (or perhaps "Outliers") only questions with a theme where is_outlier=True would be displayed. If so, that makes sense to me.
As to your question about whether a different approach may be better. From my perspective, your "No theme" option feels like the simplest approach, But that's just looking at it from a frontend perspective and not taking into account any challenges/nuances around the keywords. So your approach here sounds like it may be the best one overall, and happy with that. Will let @duncanjbrown take a look.


Support columnspecs for DataTable

@hhaensel can you merge it. I'll also add this docs that I'm working on :D


[condalock] try modernize lock creation script and repair lock generation

Description

Complete overhaul of the conda lock file generation: now we are using mamba and Mambaforge, and all stuff is getting installed, and env created with mamba. Day/night improvement in performance - lock file gets generated in less than 2 minutes, pip installs in seconds etc.

Closes #3147

Before you get started

[x] ☝ Create an issue to discuss what you are going to do

Checklist
It is the responsibility of the author to make sure the pull request is ready to review. The icons indicate whether the item will be subject to the 🛠 Technical or 🧪 Scientific review.

[x] 🛠 This pull request has a descriptive title
[x] 🛠 All checks below this pull request were successful

I'll have to do the same for Core too...

wonderful, cheers @bouweandela :beer:


Changing to matplotlib-base instead.

Checklist

[ ] Used a fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin please rerender

@ocefpaf We discussed some time ago that our build is failing b/c obspy still depends on an older version of proj. If that is still the case, is it fixable by making a build for that older version of proj?

If that is still the case

Yep.

is it fixable by making a build for that older version of proj?

Probably, but we would need to build all the dependencies here that uses the old proj. It may be easy if that is just a few or quite hard if we dive into stuff like gdal.


Yocto/Kas Build Error: No package 'wpe-webkit-1.0' found

Hello, I have tried following the instructions to add meta-webkit to my kas build, and got the following error:
ERROR: cog-0.10.1-r0 do_configure: Execution of '/home/chris/renew/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/cog/0.10.1-r0/temp/run.do_configure.743723' failed with exit code 1:
-- The C compiler identification is GNU 11.1.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/chris/renew/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/cog/0.10.1-r0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found PkgConfig: /home/chris/renew/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/cog/0.10.1-r0/recipe-sysroot-native/usr/bin/pkg-config (found version "0.29.2")
-- Checking for module 'gio-2.0>=2.44'
--   Found gio-2.0, version 2.68.3
-- Checking for module 'libsoup-2.4'
--   Found libsoup-2.4, version 2.72.0
-- Checking for module 'wpe-webkit-1.0>=2.23.91'
--   No package 'wpe-webkit-1.0' found
CMake Error at /home/chris/renew/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/cog/0.10.1-r0/recipe-sysroot-native/usr/share/cmake-3.20/Modules/FindPkgConfig.cmake:556 (message):
  A required package was not found
Call Stack (most recent call first):
  /home/chris/renew/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/cog/0.10.1-r0/recipe-sysroot-native/usr/share/cmake-3.20/Modules/FindPkgConfig.cmake:778 (_pkg_check_modules_internal)
  CMakeLists.txt:122 (pkg_check_modules)

Part of my config is as follows:
repos:
  meta-kas:

  poky:
    url: "https://git.yoctoproject.org/git/poky"
    refspec: d49e7dde842de0840cc445282d2017451278a604
    layers:
      meta:
      meta-poky:
      meta-yocto-bsp:

  meta-openembedded:
    url: "https://github.com/openembedded/meta-openembedded.git"
    refspec: 8fbcfb9f023e0eab7f122eb19607a1c757b0d245
    layers:
      meta-oe:
      meta-python:
      meta-networking:
      meta-filesystems:
      meta-webserver:
      meta-perl:

  meta-security:
    url: "https://git.yoctoproject.org/git/meta-security"
    refspec: 5050d1267ad41288c903086030594f8702bfa039

  meta-webkit:
    url: "https://github.com/Igalia/meta-webkit.git"
    refspec: 6afa4fe73105a18b579c23221234cc4bd1d39755

    # gtk webkit
    DISTRO_FEATURES_append = " opengl x11"
    IMAGE_INSTALL_append = " webkitgtk-bin cog"
    PACKAGECONFIG_pn-cog = "webkitgtk"

I am using branch main for meta-webkit. I have seen issue #88 but I am not sure how it applies or if it applies to this issue. Any help is appreciated! Thank you!

WebKitGTK support was removed from cog. If you want a WebKitGTK browser you can build MiniBrowser maybe.
If you want to keep using Cog, you need to add wpewebkit to your image.

Done!


Add header dependencies to Makefiles

For smarter rebuilds.
This needs testing in more environments, like Linux and WSL

I can confirm this works on linux. However, I have some concerns about build time. A Full build on my system on the current repository takes 6 seconds less than this build. Additionally, make on this PR takes about twice the time to process files before execution than the current repository (this time a makes a huge difference when using diff.py). Is there any way to make including dependency files optional?

I've added a DISABLE_DEPS makefile variable that will ignore all extra processing related to the header dependencies if it is set to anything. This includes the compiler generating the .d file, the post-processing step to fix the path separators, and the include statement that uses the .d files. diff.py still needs to be changed to use it.

Looks good! If you add DISABLE_DEPS=1 to the makeflags in diff_settings.py it's good with me!

I got so focused on handling the 800 or so makefiles for the libraries and rels that I forgot about main.dol. Should probably give that a quick review before merging


Missing function giblorb_unload_chunk

The function giblorb_unload_chunk appears to be missing from the DLL (I'm using the 1.51 binary download provided here).  The function does exist in gi_blorb.c.
This is on MinGW, if it matters.  I can build against Windows Glk just fine, in general, but when I use giblorb_unload_chunk, I get a link error.  I suspect it's just missing from Glk.def but I don't have Visual Studio so I can't test adding it and rebuilding.

giblorb_load_image_info is missing, too.

Fixed by 302c895be72e47b97d75016a0b918fbfd3b5e62d.


Install from source

The readme says that I should run
git clone https://github.com/SignalK/signalk-server-node.git
cd signalk-server-node
npm install

to install from source. However, if I do so the packages @signalk/stream and @signalk/server-admin-ui are installed from the npm repository and not from the local files in ./packages. How do I fix this problem?

Run npm link in both directories under packages/  and npm link @signalk/stream and @signalk/server-admin-ui. If you think documenting or automating this is worth the effort a PR would be very welcome.

Thank you for your fast reply! Sorry for the dumb question, but it's the first time I'm confronted with JavaScript and node.js.


always remove options

For better or for worse, processStatement is only run in class bodes and InsSeq nodes, not in the middle of blocks. Should this always be the case or this is intentional?
Motivation

Test plan

See included automated tests.

closing in favor of https://github.com/sorbet/sorbet/pull/2104


Boot 32-bit ISO

BEFORE SUBMITTING YOUR ISSUE, PLEASE LOOK AT THE PINNED ISSUES AND USE THE SEARCH FUNCTION TO MAKE SURE IT IS NOT ALREADY REPORTED. ALWAYS COMMENT ON AN EXISTING ISSUE INSTEAD OF MAKING A NEW ONE.
Describe the issue
I have been trying to create a VM from the bootable ISO (namely, this one found here. The ISO is an older 32-bit Ubuntu host. What happens when I try to create a VM with the ISO is that it creates but fails to boot into it.

Checking boot options yield:

Where I have tried each option and none boot into the guest.
Configuration

UTM Version:  4.4.5
macOS Version: 14.2.1
Mac Chip (Intel, M1, ...): M1 Pro

Crash log
If the app crashed, you need a crash log. To get your crash log, open Console.app, go to Crash Reports, and find the latest entry for either UTM, QEMU, QEMUHelper, or qemu-*. Right click and choose Reveal in Finder. Attach the report here.
Debug log
debug.log
Upload VM
config.plist.zip
UPDATE: I tried creating a 32-bit Ubuntu VM with a downloaded ISO and that gave the same error sequence as described above, so likely not solely an issue with that particular bootable ISO.

You are using UEFI, which is 64bit if you are using a 64bit VM configuration (default), and if you are using 32bit you run into the issue of most distros not supporting 32bit UEFI. You should disable UEFI boot if you aren't using a distro that supports 32bit UEFI or if you're using a 64bit VM configuration.

Thanks for that tip. Changing that setting allowed it to get to a different screen where it says the display has not been registered, yet. I will try to look into that issue soon.


HDD Disk stop/start during reboot Sonoma 14.4 and newer, including 14.5 beta

Hi!
My very similar build:
MB: Gigabyte Z490 VISION G (BIOS F22)
CPU: Intel® Core™ i5-10600, 3.3-4.8 GHz
Memory: Corsair Vengeance LPX 32 Gb (4 x 8 Gb) 2800 MHz DDR4
Video: Sapphire Nitro+ Radeon RX 590 (8Gb) + Intel UHD 630
Monitor: BENQ-BL2711U + LG TV 42LF650V
SSD: NVMe M.2 PCIe 4.0 Netac, 1.0 Tb
SSD: Kingston A400 SSD, 240.1 Gb + Transcend SSD220 SSD, 240.1 Gb + Samsung SSD 870 EVO 250.1 Gb
HDD: WDC WD20PURZ-85AKKY0 2.0 Tb X 2
WiFi+Bluetooth: Fenvi FV-T919 BCM94360CD (Apple Broadcom BCM4360 WMA + BCM2046B1) (OCLP for Sonoma)
macOS version: Sonoma 14.3.1
Problems and solutions

I was only able to get working LAN and WiFi by setting Kernel --> Quirks ---> DisableIoMapper = YES

Starting from version Sonoma macOS 14.4, if I restart the computer, the power to the HDD hard drives is turns off. Then, during the BIOS POST, power is turned on to the disks and they spin up one by one. This means longer reboot time, increased disk wear, and simply incorrect behavior. I couldn't solve this problem, so I'm staying with the version Sonoma macOS 14.3.1.

Hi. I haven't been using this system in quite some time. As far as the disk issues are concerned, you could try disabling NVMeFixuf.kext and see if this changes anything

Hi. I haven't been using this system in quite some time. As far as the disk issues are concerned, you could try disabling NVMeFixuf.kext and see if this changes anything

Unfortunately, this does not change the behavior of the system...


Document ingress host policy rules required for new nodes to join the cluster

When applying host policies on ingress of the master node, it is possible to prevent new nodes from joining the cluster. We should document the minimal rules required to prevent that and always allow new nodes to join.

[ ] Reproduce problem (with #12591 or with GKE's --resize)
[ ] Double check that only access to the master node is required for a new node to join.
[ ] Iterate on the minimal ingress host policy required for the master node.

New nodes will likely appear as world before Cilium manages them.
Maybe possible to match on their IP? (Should be in node CIDR and shouldn't yet map to remote-node ID since these nodes are not yet managed by Cilium.)
Find out which ports are required to be open.

[ ] Submit PR to update documentation with example.

Needs to be backported to 1.8.

@pchaigno Hi. I'd like to tackle this issue and have a question. How to check whether new node is rejected to join? Can we get any message that specifies "Failed to join new node"? My consideration to add minimal config is,

Startup single node cluster with vagrant.
Start a new node to join an existing cluster. And check any message that specifies "Failed to join".
Add any ingress network policy to reserved:host with CIDR, and port.
Restart the overall cluster with new policy created at 3. And check the message had eliminated.
Add the policy to the document.

Is my consideration correct? Thanks!

Can we get any message that specifies "Failed to join new node"?

You could check for the following on each node:
$ cilium status | grep "Cluster health"
Cluster health:         2/2 reachable   (2021-03-22T09:52:21Z)

In general, cilium status should tell you if the cluster and current node are healthy and how many nodes have successfully joined the cluster.

Is my consideration correct?

You will need to add a host policy before adding a new node to the cluster. You can use examples/policies/host/lock-down-dev-vms.yaml for that. It's meant to be a very restrictive host policy, allowing only the strict minimum. It currently doesn't account for new nodes joining the cluster so that should fail.

@pchaigno I found that this problem won't be reproduced with cilium-agent on Pod on VM. After I applied   examples/policies/host/lock-down-dev-vms.yaml on single VM k8s, I started to join k8s2, then we can see this result.
vagrant@k8s1:~/go/src/github.com/cilium/cilium$ k exec -n kube-system cilium-lq4j5 -- cilium status
KVStore:                Ok   Disabled
Kubernetes:             Ok   1.20 (v1.20.1) [linux/amd64]
Kubernetes APIs:        ["cilium/v2::CiliumClusterwideNetworkPolicy", "cilium/v2::CiliumEndpoint", "cilium/v2::CiliumNetworkPolicy", "cilium/v2::CiliumNode", "core/v1::Namespace", "core/v1::Node", "core/v1::Pods", "core/v1::Service", "discovery/v1beta1::EndpointSlice", "networking.k8s.io/v1::NetworkPolicy"]
KubeProxyReplacement:   Probe
Cilium:                 Ok      OK
NodeMonitor:            Listening for events on 2 CPUs with 64x4096 of shared memory
Cilium health daemon:   Ok
IPAM:                   IPv4: 3/255 allocated from <IP_ADDRESS>/24,
BandwidthManager:       Disabled
Host Routing:           Legacy
Masquerading:           IPTables
Controller Status:      22/22 healthy
Proxy Status:           OK, ip <IP_ADDRESS>, 0 redirects active on ports 10000-20000
Hubble:                 Ok              Current/Max Flows: 1276/4096 (31.15%), Flows/s: 1.76   Metrics: Disabled
Cluster health:         2/2 reachable   (2021-03-25T14:10:03Z)

Key point is KVStore is disabled, I think. The reason we succeded to join new node is we can reach to cilium-agent's on memory status, right? I think that this issue is originated from etcd accecibility. WDYT?
This is the complete sequence to reproduce this.
# exec on host
NWORKERS=0 K8S=1 ./contrib/vagrant/start.sh

# exec on k8s1
# disable vm cilium, and enable on-Pod cilium agent
sudo systemctl stop cilium
kubectl create -f https://raw.githubusercontent.com/cilium/cilium/v1.9/install/kubernetes/quick-install.yaml
# apply lockdown policy
kubectl apply -f ./examples/policies/host/lock-down-dev-vms.yaml

# exec on host
NWORKERS=1 K8S=1 ./contrib/vagrant/start.sh k8s2

# exec on k8s2
kubectl -n kube-system get pods -l k8s-app=cilium
k exec -n kube-system ${POD_NAME} -- cilium status

@Shikugawa Thanks a lot for looking into this and documenting the steps you took to reproduce! :pray:
It wasn't clear to me why you couldn't reproduce in the development VM so I had a look. It turns out the host policy I pointed you to already allows connections from the node CIDR in an attempt to support enable-remote-node-identity=false. https://github.com/cilium/cilium/pull/15577 will fix it by splitting it into two policies depending on the value of enable-remote-node-identity.
Could you try reproducing again in the dev. VMs with examples/policies/host/lock-down-dev-vms-remote-node.yaml?
For GKE, I think it's actually expected that we can't reproduce. The kube-apiserver is external to the nodes so a new node can contact it and register itself even if all existing nodes are enforcing host policies. Once registered, the new node can talk to existing nodes.


inject a breadcrumbs in the dashboardToolbar

After playing for a couple of time with the DashboardToolbar and trying to split it between the app and the dashboard module, I'm proposing a simpler solution:
DashboardToolbar can take as a property a component that would be used for the title. It's an optional property and if the component is not present, it's just replaced by a regular title with the name of the dashboard.
Like that I'm able to inject a simple Breadcrumbs so we can navigate from a dashboard to the project.
Note that the link won't work until #697 is merged.
Perhaps later, the breadcrumbs would be more sophisticated. For example, we could list the different dashboards in the Breadcrumbs so we can navigate from one dashboard to another without passing first by the project view. This is just an idea, I'm not really sure it's interesting.
Signed-off-by: Augustin Husson<EMAIL_ADDRESS>

i like this approach, much simpler!


[feature request]NodePool Governance Capability: pool-coordinator supports share pool scope data in the nodepool

What would you like to be added:
As described in proposal: https://github.com/openyurtio/openyurt/pull/804, Yurthub needs to add the following features:

Leader yurthub start to list/watch pool scope data(endpoints, endpointslice) from cloud kube-apiserver, and store the response into pool-coordinator
When all of pool scope data is synced, Leader yurthub should update a mark(like a lease) into pool-coordinator in order to specify that clients(like kube-proxy, coredns) can list/watch pool scope data from pool-coordinator instead of cloud kube-apiserver.
Yurthub should switch requests of list/watch the pool-scope data between pool-coordinator and cloud kube-apiserver in terms of the status of pool-coordinator.

Notes: For details, please refer to the proposal: https://github.com/openyurtio/openyurt/pull/804
Why is this needed:
As mentioned in the proposal(https://github.com/openyurtio/openyurt/pull/804), the network traffic between cloud-edge will be reduced for more than 90%, because the pool-scope data is shared in nodePool.
others
/kind feature

Hi，I want to take over this work.
/assign

This work is almost finished, including:

add a client to send objs in response to etcd in pool-coordinator.
add a reverse proxy to re-direct requests to apiserver in pool-coordinator when the node cannot reach the cloud.

Some problems still unsolved:

cannot cache secret, which is used when using InClusterConfig to setup pod.
unit tests have not been revised
resource gc in pool-coordinator. Considering that when an edge component uses GET request to get a resource, this resource will be cached into the pool-coordinator, but when to delete it?
support node-scope and pool-scope cache at the same time

For ReverseProxy, the processing logic of request from edge side is something like:
switch{
case cloud.IsHealthy:
   if poolCoordinator.IsHealthy && ! LeaderYurthub && IsPoolScopeResource(req.Resource) {
    fallthrough
  }
  if err := cloud.Handle(req); err != nil {
    fallthrough
  }
case poolCoordinator.IsHealthy:
  if err := poolCoordinator.Handle(req); err != nil {
    fallthrough
  }
default:
  localCache.Handle(req)
}

So I need a way to determine whether this yurthub is leader yurthub.
What do you think? @rambohe-ch

For ReverseProxy, the processing logic of request from edge side is something like:
switch{
case cloud.IsHealthy:
   if poolCoordinator.IsHealthy && ! LeaderYurthub && IsPoolScopeResource(req.Resource) {
    fallthrough
  }
  if err := cloud.Handle(req); err != nil {
    fallthrough
  }
case poolCoordinator.IsHealthy:
  if err := poolCoordinator.Handle(req); err != nil {
    fallthrough
  }
default:
  localCache.Handle(req)
}

So I need a way to determine whether this yurthub is leader yurthub. What do you think? @rambohe-ch

@Congrool please wait me for a little time.

/reopen
This feature is not completely implemented. So we need to reopen it.

I'll submit pr of pool-coordinator cache implementation. But I think we need to rebase the pool-coordinator-dev on #882 first.
@rambohe-ch What do you think?

I'll submit pr of pool-coordinator cache implementation. But I think we need to rebase the pool-coordinator-dev on #882 first.
@rambohe-ch What do you think?

@Congrool agree with you.

/close


Add agrandir wide-medium

What does this PR do and why?
Provide a description of what this PR does. Link to any relevant GitHub issues, Notion tasks or Discord discussions.
Screenshots or screen recordings
If applicable, provide screenshots or screen recordings to demonstrate the changes.
Acceptance checklist

[ ] I have evaluated the Approval Guidelines for this PR.
[ ] (if relevant) I have tested this PR in all supported browsers.
[ ] (if relevant) I have tested this PR in dark mode and light mode (if applicable).

Current dependencies on/for this PR:

main

PR #3354   👈

This comment was auto-generated by Graphite.

@tomquirk queued this pull request to merge with Graphite.

@tomquirk merged this pull request with Graphite.


Feature request: add Git colour change

In local, when I edited any file version controlled by Git that file will change colour in Tree View. I wonder whether it's possible to add that feature to remote-ftp?
By the way, this project is really nice, thanks for you guys' great work!

+1

This would be awesome. Also, Git-diff showing each changed line would be even better.

Unfortunately I don't think this would be possible, but I'd loved to be proved wrong as it is a great idea.

+1

See #650


Jenkinsfile: sec-ci-libs version pinning

High Level Description
This PR adjust project's Jenkinsfiles in order to support the new way in which sec-ci-lib is called.
In order to enable other teams to reuse sec-ci-lib, both slack channel and slack token ID must be passed as the parameter. This also requires a new approach on versioning sec-ci-lib libs - see the discussion in https://github.com/mesosphere/sec-ci-libs/pull/5 for more details.
Related Issues

INCIDENT-156 Changes to seclibs blocked merges to dcos/dcos, dcos-enterprise, master, 1.10 and 1.9

Related PRs
sec-ci-libs PR that introduces the breaking change: https://github.com/mesosphere/sec-ci-libs/pull/5
DC/OS EE PR: https://github.com/mesosphere/dcos-enterprise/pull/1646

@mesosphere-mergebot label ready for review

@karlkfi @orsenthil Could you please have a look?
@orsenthil Could you please assign this PR to me and add milestone 1.10.2?

This doesn't quite match the JIRA, I think:
1. dcos/dcos
2. dcos-enterprise 1.9, and 1.10

got blocked.

but this is for dcos/dcos 1.10, right? If I am right, please make sure that JIRA and GitHub are in sync.

but this is for dcos/dcos 1.10, right?
I have fixed the description of the Jira.


[Sample] 1 - show interfaces switchport

The command "show interfaces switchport" is in scope.


Feature request

Problem Statement: In this busy running world everyone is so busy from the start of the day until we hit the bed. If we take up a case like every day we will go for supermart for bringing up things we will make so fast for checking out things and when we come to our body or face products mainly facewash which we will pick up randomly and use them which leads unknowingly dermal problems so I want to develop a software/ model which can recognize the skin type of the people and recommends the facewash based on skin type.
Solution: We will build a Neural Network model(CNN) architecture that classifies the skin types. we will use predefined or URL-based face products which are dedicated to specific types of skin so we can recommend these products to users after classifying the skin type.
Techologies/ Software used : TensorFlow, OpenCV.
Idea of Approach:  We want to collect the data from the internet of different skin types and we want to use OpenCV haar cascade classifier/ ROI(Region Of Interest) haar cascade classifier for detecting the faces or we will use Region Of Interest for cropping the images manually. We may use the data augmentation for increasing the training data when we have low resources for data then we will create a model which classifies the skin type and we will build a recommendation system.
Additional Context: There are around four different skin types 1.Normal skin 2. Oily skin 3. Dry skin 4. Combination Skin
We need at least 100 pictures of each kind of skin type so we can make multiply them using data augmentation techniques.
Prior information is that at least we can work on two different skin types as we go on can further we can upgrade to further skin types.

Ok so you can work on it , try thinking a good name to this implementation so that i can create a new folder and you can add your implementation inside that

Face Products Recommender system is the name of the project
And I want a discussion form so that it's helpful for others to contribute
and discuss about project
On Sat, Jun 19, 2021, 3:00 PM AKSHITA GUPTA @.***>
wrote:

Ok so you can work on it , try thinking a good name to this implementation
so that i can create a new folder and you can add your implementation
inside that
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/akshitagupta15june/Face-X/issues/915#issuecomment-864381868,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUANWKY7LJYLAJYUVYAVAULTTRPSRANCNFSM4664APUA
.

Ok so you can work on it , try thinking a good name to this implementation so that i can create a new folder and you can add your implementation inside that

We can name this project as Face Product Recommender system and I want you to create a discussion form so that others can have active contributions

yeah sure will do the same here is the link of project folder where you can add your implementation by creating a new folder https://github.com/akshitagupta15june/Face-X/tree/master/Face-Product-Recommendation-System


chore: Prepare release 1.1.0

chore: Prepare release 1.1.0
Description :memo:

Purpose: Prepare release 1.1.0
Approach: Bump version and Changelog

Type of change

[x] new release

Updates

Bump versions on all csproj files
Created CHANGELOG.md on repo root

Once approved, I will proceed with the Nuget package build and merge.
Test plan :test_tube:

None

Author to check :eyeglasses:

[ ] Project and all contained modules builds successfully
[ ] Self-/dev-tested
[ ] Unit/UI/Automation/Integration tests provided where applicable
[ ] Code is written to standards
[ ] Appropriate documentation written (code comments, internal docs)

Reviewer to check :heavy_check_mark:

[ ] Project and all contained modules builds successfully
[ ] Change has been dev-/reviewer-tested, where possible
[ ] Unit/UI/Automation/Integration tests provided where applicable
[ ] Code is written to standards
[ ] Appropriate documentation written (code comments, internal docs)

Thanks!
I see an issue with CI:
error NETSDK1139: The target platform identifier android was not recognized. [D:\a\raygun4blazor\raygun4blazor\src\Raygun.Samples.Blazor.Maui\Raygun.Samples.Blazor.Maui.csproj::TargetFramework=net8.0-android]

I don't think this would stop the release, but I will check tomorrow any case.

@miquelbeltran There's something failing - Build & test check. was this already broken or broke in this branch? If always broken you can merge otherwise please fix it up in this branch if it's related

Packages have been published! 🎉 tomorrow I will research why GitHub CI complained about the MAUI Sample android config


App Center don't restores from public NuGet feeds

Hi
I have added the NuGet.config file as you mentioned in the document and push that in the github and trying to build my application by AppCenter. But I have faced the NuGet restore issue.

Please find my Github repository as below,
https://github.com/GanesanRengasamy/UWPSample.git
Please help me to resolve this NuGet restore issue
Thanks,
Ganesan R.

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

ID: be2ace35-a6ef-349a-e009-ca55e3778602
Version Independent ID: 85a92e95-828a-54f8-b7e7-4f86b8e76abc
Content: Configure a C# UWP app in App Center - Visual Studio App Center
Content Source: docs/build/windows/uwp/first-build.md
Service: vs-appcenter
GitHub Login: @siminapasat
Microsoft Alias: siminap

Hi,
I have added the new test app again in appcenter and again link my Github repository and trigger the build from appcenter now the NuGet packages has been restored successfully from public NuGet feeds.
Thanks,
Ganesan R.

@GanesanRengasamy The comments feature of our documentation is intended to enable customers to suggest changes to the docs or ask clarifying questions about the docs.
App Center support is provided directly from within the App Center portal. Any time you need help, just click the blue chat button in the lower-right corner of any page and our dedicated support team will respond. For additional information, see the App Center Help Center.


More lenient roll behavior

[ ] Basic numbers (~roll 10 = ~roll 1d10)
[ ] Default d6 roll if no args present (~roll = ~roll 1d6)

Relevant: Should rewrite the dice roll command to use d20.js which makes the first one much easier. It also supports roll modifiers which would get rid of a thing I have on my whiteboard.

fixed ages ago in b97841ec7ad230d10e2881a43acd0ff8f7fc8f3f


Themoji iOS App

I'd like to add Themoji - A unique way to communicate with people around the world.
I can't decide what category to put it in, or if there should be an emoji category (I think it should 😄)

Probbably "misc" for now 😉

Thanks 🚀

github needs big emojis
🚀 🚀 🚀

np :)

Absolutely 👍


I have got error message : Error! (range [0, 40], offset 33)  'J': quality score outside of set range

tools/NGmerge -1 ../gutplus337/trimmed/BPAAA0013/BPAAA0013_trim_R1.fastq.gz -2 ../gutplus337/trimmed/BPAAA0013/BPAAA0013_trim_R2.fastq.gz -o BPAAA0013.fastq.gz -n 30
Error! (range [0, 40], offset 33)  'J': quality score outside of set range.
Input fastq file was trimmed using trimmomatic.
Please, help me.

This would be better submitted as an Issue, not a Pull request.  Or even better, before submitting, search existing Issues to see if it has been addressed before.
In this case, it was addressed in #4.  Try -u41.


Unexpected rank given after completing song

Describe the bug
After completing a song with the specified score in the screenshots below (single-digit "greats" and a single "good"), the SDG (Single Digit Greats) rank was given, instead of the expected MF (Miss Flag) rank.
To Reproduce
Steps to reproduce the behavior:

Achieve single-digit "greats" and a single "good" in a song.

Expected behavior
Since there was 1 "good" hit and my combo was broken, I expected the given rank to be MF, instead of SDG, since I believe MF is a worse rank than SDG, and the worse rank should be given.
Screenshots
Showing my hits and given rank:

Showing that the combo was broken:

Desktop (please complete the following information):

OS: Windows 10 Home Single Language
Version 1909 Build 18363.900
64bit

Additional context
The version of Etterna that I have at the time of posting this is 0.69.1

this is technically intended behavior; the highest achieved grade rank is intended to be doled out (colloquially most people talking about your score would use the format "sdg 1cb", even if they led with the cb count it's still not not an sdg because of the cb), however mf's or missflags aren't really supposed to be given for any single combo breakers but are anyway
if the lowest rank were given there would have to be specific case handling for making mfc's not give pfc's, or just regular fc's instead, which would be silly

the relevant code is here  and follows what mina lays out above https://github.com/etternagame/etterna/blob/ad135f144aff93b7979e68200574f0c7a1b6cbc2/Themes/Til Death/Scripts/ClearType.lua#L124-L148


Lk86/fix fast ledger conflicts

Simple PR to resolve conflicts with @psteckler 's fast ledger changes, in the least invasive way possible.
Additionally, the .jpg files from a recent commit were offending my git repo locally and I found it very difficult to commit the needed changes without also adding these files to git lfs. They should otherwise function identically and should not have an impact on the goal of reducing conflicts.

!ci-build-me


Optimize queries that compare a tag value to an empty string

The behavior for querying tag values with an empty string was originally
fixed in #6283, but it also added a performance problem when the
cardinality of the tag was high. Since a call to Union() or Reject()
would happen for every series key and it would be called N times for N
cardinality, the comparisons against a blank string were unnecessarily
slow with large memory allocations.
This optimizes these queries so it doesn't use those methods anymore.
Those methods are still useful and used when combining AND and OR
clauses, but they aren't useful when finding the series ids for a single
clause. These methods were unnecessary anyway because the series ids for
the tags were unique anyway and didn't have to be merged as a set.
Fixes #7243.

The 32bit/ubuntu:14.04 image seems to be missing from Docker Hub. It looks like images for 16.04 were pushed 15 hours ago (as I am writing this) and I don't see any tags for 14.04 anymore.

:+1:

@jsternberg #7243 isn't listed on the CHANGELOG that I can see. Is this part of 1.0? Looks like from the merge.

@beckettsean did you check the changelog in the 1.0 branch? It hasn't hit master yet.

This should now be in master.

Thanks, @jsternberg, I didn't even think about that. My apologies!


Reproducing issue from 1526

What was wrong?
#1526 has an issue. Buried in the latest fix is a bug that will be even harder to track it down and see what's going on.  I want to see if we can find a different solution.
How was it fixed?
Checking to see if the builtin asynccontextmanager will solve it.
To-Do

[ ] Clean up commit history

[ ] Add entry to the release notes

Cute Animal Picture

Damn, still happens with the builtin version.
Hunting this down sucks, but at least we can reproduce it reliably right now. I really don't want to be stuck with this landmine when it happens occasionally and no one remembers how to reproduce it anymore.


[Bug] video would not play despite public ID given

Bug Report
Describe the bug
Currently, I have a convex database and I saved the public ID of the video in the database without issue. Now, when it's time to fetch that video with the other autogenerated ID to get the public one I get this:

Steps To Reproduce the error

create a new video page
Query the video as such:

export default function VideoPage({
  params: { id },
}: {
  params: { id: string };
}) {
  const video = useQuery(api.videos.getById, { id: id as Id<"video"> });
  return (
    <div>
    </div>
  );
}

Import the component and pass the publicId prop:

<CldVideoPlayer
        width="720"
        height="1280"
        src={video?.cldPublicId!}
        transformation={{
          streaming_profile: "hd",
        }}
        sourceTypes={["hls"]}
      />

Expected behaviour
A thumbnail would show to indicate video is ready
Your environment

OS: Windows 11 23H2 (22361.3085)
Node version: 20
Npm version: pnpm v8.15.0
Browser name and version: Brave v121

hey @monstajoe2002 the code you show looks pretty standard. can you try hardcoding the ID to see if the player works without the dynamic part? do you see any console errors?

Nevermind, I did an early return on the publicId and got the video. I also tried hardcoding it and it actually worked. Thanks 👍


Add prefix "data" to angular directives

Add prefix "data" to angular directives in order to generate a valid HTML

LGTM


Storage API has poor perfomance with 3GB+ Files

OS: Alpine (Docker)
Node.js version: 8
"@google-cloud/storage": "^2.3.1",

I have a small app that connects our internal video library to google storage, since these are video files they tend to be in the low GB's 1-10GB, anything over 3GB seems to time out, and my gsutil with a 2GB write-through test has clocked in at 760mbits, so in theory my 6GB file should finish in just over a minute
"(node:19) UnhandledPromiseRejectionWarning: FetchError: network timeout at:"
Here is my file upload function
`const p2Gcloud = async (post) => {
const bucketName = post.bucket
const file = post.filePath
res = await storage.bucket(bucketName).upload(file, {
        resumable: false,
        predefinedAcl: "publicRead",
        gzip: false,
        metadata: {
            metadata: {
                recordID: post.recordID,
                fileName: post.fileName
            },
        cacheControl: 'public, max-age=31536000'
        }
    })`

Greetings!  We just pushed a fix for this issue yesterday.  Can you try this with 2.4.2 and see if you have the same issues?

@JustinBeckwith Perfect, just tried it with a few files and it's working like a charm!
Thanks so much, while I have you, not that i'm running into speed issues anymore but is there anything else i should consider if speed is my #1 Concern?


[Feature Request] Testing thumbnail as option (slow requests)

Checklist

[x] I'm reporting a feature request
[x] I've verified that I'm running yt-dlp version 2021.08.10
[x] I've searched the bugtracker for similar feature requests including closed ones

Description

I have moved from youtube-dl to yt-dlp because of age restriction and have the problem that many requests (json output) take 5x longer. The requests took ~2 seconds before, but now they take more than 10 seconds. I suspect that the delay comes from the thumbnail tests because with -v it takes most of the time there. --no-write-thumbnail doesn't solve the problem.
I would like a command to disable the thumbnail test - for example --no-test-thumbnail  or an option to enable it (default disabled).
# time youtube-dl -v -4 -J li8kit-GsYM > /tmp/video.json
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'-4', u'-J', u'li8kit-GsYM']
[debug] Encodings: locale UTF-8, fs UTF-8, out None, pref UTF-8
[debug] youtube-dl version 2021.06.06
[debug] Python version 2.7.13 (CPython) - Linux-4.9.182-xxxx-std-ipv6-64-x86_64-with-Debian-7
[debug] exe versions: avconv 3.2.15-0, avprobe 3.2.15-0, ffmpeg N-48007-g62f8d27ef1-static, ffprobe 3.2.15-0
[debug] Proxy map: {}
[debug] Default format spec: bestvideo+bestaudio/best

real    0m2,217s
user    0m0,992s
sys     0m0,088s

#time yt-dlp -v -4 --no-write-thumbnail -J li8kit-GsYM > /tmp/video.json
[debug] Command-line config: ['-v', '-4', '--no-write-thumbnail', '-J', 'li8kit-GsYM']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] yt-dlp version 2021.08.10
[debug] Python version 3.9.4 (CPython 64bit) - Linux-4.9.182-xxxx-std-ipv6-64-x86_64-with-glibc2.24
[debug] exe versions: avconv 3.2.15-0, avprobe 3.2.15-0, ffmpeg N-48007-g62f8d27ef1-static, ffprobe 3.2.15-0
[debug] Optional libraries: mutagen, pycryptodome, sqlite, websockets
[debug] Proxy map: {}
[debug] [youtube] Extracting URL: li8kit-GsYM
[youtube] li8kit-GsYM: Downloading webpage
[youtube] li8kit-GsYM: Downloading android player API JSON
[debug] Sort order given by extractor: quality, height, fps, source
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, height, fps, source, res, vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, id
[debug] Testing thumbnail 41
[debug] Unable to connect to thumbnail 41 URL "https://i.ytimg.com/vi_webp/li8kit-GsYM/maxresdefault.webp" - HTTP Error 404: Not Found. Skipping...
[debug] Testing thumbnail 40
[debug] Unable to connect to thumbnail 40 URL "https://i.ytimg.com/vi/li8kit-GsYM/maxresdefault.jpg" - HTTP Error 404: Not Found. Skipping...
[debug] Testing thumbnail 39
[debug] Unable to connect to thumbnail 39 URL "https://i.ytimg.com/vi_webp/li8kit-GsYM/hq720.webp" - HTTP Error 404: Not Found. Skipping...
[debug] Testing thumbnail 38
[debug] Unable to connect to thumbnail 38 URL "https://i.ytimg.com/vi/li8kit-GsYM/hq720.jpg" - HTTP Error 404: Not Found. Skipping...
[debug] Testing thumbnail 37
[debug] Unable to connect to thumbnail 37 URL "https://i.ytimg.com/vi_webp/li8kit-GsYM/sddefault.webp" - HTTP Error 404: Not Found. Skipping...
[debug] Testing thumbnail 36
[debug] Unable to connect to thumbnail 36 URL "https://i.ytimg.com/vi/li8kit-GsYM/sddefault.jpg" - HTTP Error 404: Not Found. Skipping...
[debug] Testing thumbnail 35
[debug] Unable to connect to thumbnail 35 URL "https://i.ytimg.com/vi_webp/li8kit-GsYM/sd1.webp" - HTTP Error 404: Not Found. Skipping...
[debug] Testing thumbnail 34
[debug] Unable to connect to thumbnail 34 URL "https://i.ytimg.com/vi/li8kit-GsYM/sd1.jpg" - HTTP Error 404: Not Found. Skipping...
[debug] Testing thumbnail 33
[debug] Unable to connect to thumbnail 33 URL "https://i.ytimg.com/vi_webp/li8kit-GsYM/sd2.webp" - HTTP Error 404: Not Found. Skipping...
[debug] Testing thumbnail 32
[debug] Unable to connect to thumbnail 32 URL "https://i.ytimg.com/vi/li8kit-GsYM/sd2.jpg" - HTTP Error 404: Not Found. Skipping...
[debug] Testing thumbnail 31
[debug] Unable to connect to thumbnail 31 URL "https://i.ytimg.com/vi_webp/li8kit-GsYM/sd3.webp" - HTTP Error 404: Not Found. Skipping...
[debug] Testing thumbnail 30
[debug] Unable to connect to thumbnail 30 URL "https://i.ytimg.com/vi/li8kit-GsYM/sd3.jpg" - HTTP Error 404: Not Found. Skipping...
[debug] Default format spec: bestvideo*+bestaudio/best
[info] li8kit-GsYM: Downloading 1 format(s): 18

real    0m11,300s
user    0m1,368s
sys     0m0,120s

I am aware of the issue with slow requests. I haven't yet decided whether to disable the checks by default. In the mean time, you can use --no-check-formats to disable it

Thanks! --no-check-formats allowed me to reduce the time to 3-4 seconds. I think it makes sense to disable by default. The remaining small delay of 1-2 seconds is probably due to Python 3 because youtube-dl was also slower with Python 3 than with Python 2.

Limiting the youtube player_client to use only web can also potentially speed up the run - but be aware that the you may get throttled by youtube without the android client


Want access to close handler along with default ContainerTemplate

I wanted to have an access to "close" property/handle via ContainerTemplate method. However, once I do that, there is no way for me to use the default ContainerTemplate of zoid and I ended up re-implementing the ContainerTemplate (by referring paypal example shared by you).
If you could provide a cleaner way to access "close" handler without the need to re-defining ContainerTemplate, it would be great.

Can you elaborate a little on what you're hoping to do? Are you trying to extend the functionality of the existing container template?

Not really. I just want access to "close" handle, but do not want to redefine the containerTemplate.
If there is a way to access "close" handle(r) without re-redifning the containerTemplate, I could use that. But I did not find a way to achieve it.

Sure -- but can you describe the use-case? The close handler is exposed to props, and when you're initializing the component -- so what you're trying to do may already be possible.

The current use case is like the following:

I am currently using React for my website
I have zoid creation/definition in common place
So when I navigate to a different page, I am trying to close the previous instance and use the new one (to avoid issue related to can't add zoid with same tag something)

Zoid should automatically close the component when react unmounts the current page. Is that not working as expected?

zoid creation/definition in common place

Are you calling zoid.create multiple times for the same component? Ideally that should be avoided

I think zoid.create was called multiple times and to overcome this issue, I had opted for closing the previous instance and re-opening the new instance approach (using close handler).


Problem building Project

Hi @DanielMartensson thanks for the library you provided.
I am working making a charger to communicate with BMS using J1939.
Here I could not build the project.
I follow the instructions you given.
I made new project empty in CubeIDE>>then I renamed the source folder and then copy and paste in project folder.
But when I build project it shows some kind of fatal errors.
I copied the main.text file into the main.c that is my project main file.
following the code I copied
Please check it and let me know.
Waiting....
/*

Main.c

Created on: 16 juli 2021

 Author: Daniel Mårtensson

*/
#include <stdio.h>
/* Include Open SAE J1939 */
#include "Open_SAE_J1939/Open_SAE_J1939.h"
/* Include ISO 11783 */
#include "ISO_11783/ISO_11783-7_Application_Layer/Application_Layer.h"
void Callback_Function_Send(uint32_t ID, uint8_t DLC, uint8_t data[]) {
/* Apply your transmit layer here, e.g:
* uint32_t TxMailbox;
* static CAN_HandleTypeDef can_handler;
* This function transmit ID, DLC and data[] as the CAN-message.
* HardWareLayerCAN_TX(&can_handler, ID, DLC, data, &TxMailbox);
*
* You can use TCP/IP, USB, CAN etc. as hardware layers for SAE J1939
*/
}
void Callback_Function_Read(uint32_t* ID, uint8_t data[], bool* is_new_data) {
/* Apply your receive layer here, e.g:
* CAN_RxHeaderTypeDef rxHeader = {0};
* static CAN_HandleTypeDef can_handler;
* This function read CAN RX and give the data to ID and data[] as the CAN-message.
* if (HardWareLayerCAN_RX(can_handler, &rxHeader, ID, data) == STATUS_OK){
*	*is_new_data = true;
* }
*
* You can use TCP/IP, USB, CAN etc. as hardware layers for SAE J1939
*/
}
/* This function reads the CAN traffic /
void Callback_Function_Traffic(uint32_t ID, uint8_t DLC, uint8_t data[], bool is_TX) {
/ Print if it is TX or RX */
printf("%s\t", is_TX ? "TX" : "RX");
/* Print ID as hex */
printf("%08X\t", ID);

/* Print the data */
uint8_t i;
for (i = 0U; i < DLC; i++) {
	printf("%X\t", data[i]);
}

/* Print the non-data */
for (i = DLC; i < 8U; i++) {
	printf("%X\t", 0U);
}

/* New line */
printf("\n");

}
int main() {
/* Create our J1939 structure */
J1939 j1939 = { 0 };

/*
 * Callbacks can be used if you want to pass a specific CAN-function into the hardware layer.
 * All you need to do is to enable INTERNAL_CALLLBACK inside hardware.h
 * If you don't want to have the traffic callback, just set the argument as NULL.
 * If you don't want any callback at all, you can write your own hardware layer by selecting a specific procesor choice at hardware.h
 */
CAN_Set_Callback_Functions(Callback_Function_Send, Callback_Function_Read, Callback_Function_Traffic);

/* Load your ECU information */
Open_SAE_J1939_Startup_ECU(&j1939);

/* SAE J1939 process */
bool run = true;
while (run) {
	/* Read incoming messages */
	Open_SAE_J1939_Listen_For_Messages(&j1939);

	/* Your application code here */

}

/* Save your ECU information */
Open_SAE_J1939_Closedown_ECU(&j1939);

return 0;

}

What error did you get ?

Hi
Thanks for your reply @DanielMartensson .
Please see the attached screen short for the same.

@Navjot0005 Ah, I see. You have forgot the .c and .h files.

where are those files placed???

@DanielMartensson I am able to build the code now.
Can you please tell me where shall I give the identifier id dlc means where I get I make a frame so that it can catch associated information.
and after sending the frame where shall I get the msg how it will parse??
Please help me for this.

@DanielMartensson I am able to build the code now. Can you please tell me where shall I give the identifier id dlc means where I get I make a frame so that it can catch associated information. and after sending the frame where shall I get the msg how it will parse?? Please help me for this.

@Navjot0005
The ID is defined in your protocol, same as the DLC. You don't need to focus on that.
Give your ECU:s two different address e.g 0x20 and 0x21. Then you can communicate with each other.
Make sure you are calling the read messages function all the time.

@DanielMartensson In example I check there are four folders Named as 1. "Hardware", 2. "ISO11783", 3. Open_SAE_J1939, 4. SAE_J1939.
Now please tell me which folder name shall I open and use ???
And why files placed in these four folders are in .txt format??

@DanielMartensson In example I check there are four folders Named as 1. "Hardware", 2. "ISO11783", 3. Open_SAE_J1939, 4. SAE_J1939.
Now please tell me which folder name shall I open and use ??? And why files placed in these four folders are in .txt format??

@Navjot0005
The .txt files are just examples you just copy and paste and run.
Try to run this example.
https://github.com/DanielMartensson/Open-SAE-J1939/blob/main/Src/Examples/SAE J1939/ECU Identification.txt

@DanielMartensson  shall I copy this file into main.c??
What this example for ??
Please tell If I flash in the board what it will do??

@DanielMartensson shall I copy this file into main.c?? What this example for ?? Please tell If I flash in the board what it will do??

Do a offline simulation first. With a regular Windows compiler or so.
Then run make sure you understand how to use Open SAE J1939.
After you understand how to use Open SAE J1939, copy over your code to your STM32.

@DanielMartensson OK...Do I need to activate processor in hardware.h file??
Got it.. Can you please tell which simulator shall I use on PC??

@DanielMartensson OK...Do I need to activate processor in hardware.h file?? Got it.. Can you please tell which simulator shall I use on PC??

You can use Visual Studio, Eclipse, JetBrains etc. GCC-compiler or MSVC.
When you are running Open SAE J1939, just use internal in hardware.h

@DanielMartensson Can I simulate in CUBEIDE???

@DanielMartensson Can I simulate in CUBEIDE???

Yes, but it's much easier if you doing that in Windows.

@DanielMartensson  ok....
Do I need STM32F board for simulation???
Or will it work without any controller board??

@DanielMartensson ok.... Do I need STM32F board for simulation??? Or will it work without any controller board??

Try to make it work without a controller first. Learn how to use the library.

@DanielMartensson ok.... Do I need STM32F board for simulation??? Or will it work without any controller board??

Try to make it work without a controller first. Learn how to use the library.

@DanielMartensson any document I can refer to how to simulate the example code and uses of library??

@DanielMartensson ok.... Do I need STM32F board for simulation??? Or will it work without any controller board??

Try to make it work without a controller first. Learn how to use the library.

@DanielMartensson any document I can refer to how to simulate the example code and uses of library??

Just copy the .txt files into your main.c and press run.

@DanielMartensson I run the

@DanielMartensson In example I check there are four folders Named as 1. "Hardware", 2. "ISO11783", 3. Open_SAE_J1939, 4. SAE_J1939.
Now please tell me which folder name shall I open and use ??? And why files placed in these four folders are in .txt format??

@Navjot0005 The .txt files are just examples you just copy and paste and run.
Try to run this example. https://github.com/DanielMartensson/Open-SAE-J1939/blob/main/Src/Examples/SAE J1939/ECU Identification.txt

@DanielMartensson I tried this example and build it.
Now when I run the code I am getting a window pop up saying that connect ST-Link first..

@DanielMartensson I run the

@DanielMartensson In example I check there are four folders Named as 1. "Hardware", 2. "ISO11783", 3. Open_SAE_J1939, 4. SAE_J1939.
Now please tell me which folder name shall I open and use ??? And why files placed in these four folders are in .txt format??

@Navjot0005 The .txt files are just examples you just copy and paste and run.
Try to run this example. https://github.com/DanielMartensson/Open-SAE-J1939/blob/main/Src/Examples/SAE J1939/ECU Identification.txt

@DanielMartensson I tried this example and build it. Now when I run the code I am getting a window pop up saying that connect ST-Link first..

Use Visual studio. Don't use ST, microcontroller etc right now. First run the Open SAE J1939 on Windows.

@DanielMartensson Ok. Let me try with Visual Studio and will get back to you soon.
Thanks so much for the help. It really appreciated.!!!

@DanielMartensson Ok. Let me try with Visual Studio and will get back to you soon. Thanks so much for the help. It really appreciated.!!!

I recommend visual studio community. Not Visual Studio Code.

@DanielMartensson Is it a simulation software??
Any link or video for software??
Because when I googled it shows Visual Studio Code..

@DanielMartensson Is it a simulation software?? Any link or video for software?? Because when I googled it shows Visual Studio Code..

Visual Studio Community has been here for over 20 years.
Use Visual Studio Community. It's from Microsoft.

@DanielMartensson ok..I have downloaded the VS community installer. So now shall I open project in VS community??

Yes. Open the project file


refactor(transformers): deprecate path-mapping AST transformer

Summary

Deprecate path-mapping AST transformer and add a warning log to instruct users to use an alternative one, like https://github.com/LeDDGroup/typescript-transform-paths which is better and we don't have to maintain.
Test plan

Green CI
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information
N.A.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.003%) to 94.159%

Totals

Change from base Build<PHONE_NUMBER>:
0.003%

Covered Lines:
1167

Relevant Lines:
1194

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.003%) to 94.159%

Totals

Change from base Build<PHONE_NUMBER>:
0.003%

Covered Lines:
1167

Relevant Lines:
1194

💛  - Coveralls


AWS auth v4: fixed query param value URI-encoding

It seems AWS servers do not validate the signature according the published spec: "Signature Calculations for the Authorization Header: Transferring Payload in a Single Chunk (AWS Signature Version 4)"  : "Task 1: Create a Canonical Request”
When AWS servers validate the signature (CanonicalQueryString inside the CanonicalRequest)
they seem to check if a query parameter value is already encoded and don’t encode if it is,
which is nowhere mentioned neither in the spec nor in its examples.
Added a check to be consistent with AWS behavior while still waiting for response/confirmation from AWS.

[approve ci autest]

Cherry-picked to 7.1.x


Initial configuration - Passing volume and seek in open()

Hi,
Omxplayer always plays at the highest volume = 1.0.
Calling following does not do the job.
omx.open(path, options);
omx.setVolume(0.5);
omx.setPosition(120);

I would welcome if options would contain = {volume: XX, position: XX}.
Is there any workaround or solution to setup volume and seek when song starts playing? :)
Thank you.

The startAt option does what you want, position wise. As for an initial volume, I'd be happy to accept a pull request.
For detecting when a song starts playing (assuming silence before the song starts) check ffmpeg.


bump version dependency on stellar anchor tests

Preview is available here:http://stellar-anchor-tests-pr65.previews.kube001.services.stellar-ops.com/


What about .NET 7?

Maybe I've overseen something and it isn't a problem, or I've forgot something, but what about support for .NET 7?
I'd love to use MetroLog in my MAUI project but it is absolutely necessary for my project to be in .NET 7 and for now I couldn't get MetroLog to work.
If it does work in .NET  7 and you have any idea what might be the problem or else I'd love to hear it.

all .net6 projects are compatible with .net7 ones


Type checker errors

https://paste.ubuntu.com/p/nYFVm6ZYCx/
I used pyright

Turns out to be a bug in pyright, to be fixed in the next version. We should rerun it once it's fixed for a less noisy output and see if it reports anything else significant.

Wow, thanks so so much for looking into this. Yes, let's definitely rerun after the bug is fixed.

The pyright bug is fixed in 1.1.128. Here's what it looks like:
$ pyright 2>&1  | pastebinit
https://paste.ubuntu.com/p/vYjnJRZrmJ/
$ mypy . 2>&1  | pastebinit
https://paste.ubuntu.com/p/vxSD5G3HTq/

Argument 2 to "sum" has incompatible type "timedelta"; expected "float"

This seems to be a mypy bug to me. pyright doesn't have the issue.
Also, # type: ignore is another way to silence type checker errors at a line level vs function level.
pyright doesn't understand no_type_check.

Updated pull request has 0 type errors on pyright and doesn't introduce any more type errors for mypy vs baseline.

https://github.com/mwhittaker/quoracle/pull/6


updated destination path

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign vinaykumar01
You can assign the PR to them by writing /assign @vinaykumar01 in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: mderazon
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [mderazon]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: mderazon
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [mderazon]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: mderazon
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [mderazon]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


ci: add tags to AWS instances

The new terraform runners support an extended lists of tags to get a greater precision on the stats we can extract from AWS cost center.
This pull request includes:

[ ] adequate testing for the new functionality or fixed issue
[ ] adequate documentation informing people about the change such as

[ ] submit a PR for the guides repository if this PR changed any behavior described there: https://www.osbuild.org/guides/

Added the correct SHA (same as in other repos).


Support for x86

Hi,
thanks for all the work that has been made !
Do you have a binary that is supported by i686 32-bit ?
Best regards

dotNet used, do not support x86 32 bit.

like @Saentist said, the app is written in .net which only supports a few 32bit architectures such as: arm 32bit, muscl-arm 32bit
what's the cpu architecture of your device? best bet would be arm v7 or newer.

thanks for the answer !


Issue #599 - Support for TypeScript 1.3

@EisenbergEffect this PR solves two issues. the typescript 1.3 was closed and the binding optimization is feature. for these two reasons, i recommend this PR be closed


Cargo prisma generate is broken on Tauri example

Following the example here: https://github.com/Brendonovich/prisma-client-rust/tree/4f9ef9d38ca732162accff72b2eb684d2f120bab/examples/tauri
Steps to reproduce

Pull down repo
Navigate to examples/tauri
Run installer. I ran pnpm install
Run cd src-tauri && cargo prisma generate from instructions
💣

warning: /Users/<user>/_dev/tt/prisma-client-rust/crates/cli/Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
(in the `prisma-client-rust-generator` dependency)
warning: /Users/<user>/_dev/tt/prisma-client-rust/tests/issues/issue-417/Cargo.toml: `default-features` is ignored for prisma-client-rust, since `default-features` was not specified for `workspace.dependencies.prisma-client-rust`, this could become a hard error in the future
warning: /Users/<user>/_dev/tt/prisma-client-rust/crates/generator/Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
(in the `prisma-client-rust-sdk` dependency)
warning: /Users/<user>/_dev/tt/prisma-client-rust/prisma-cli/Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
(in the `prisma-client-rust-cli` dependency)
warning: skipping duplicate package `test-macros` found at `/Users/<user>/.cargo/git/checkouts/prisma-engines-8e1416dd0e571d11/7585285/libs/test-macros`
warning: skipping duplicate package `test-setup` found at `/Users/<user>/.cargo/git/checkouts/prisma-engines-8e1416dd0e571d11/7585285/libs/test-setup`
   Compiling ahash v0.7.6
   Compiling serde_json v1.0.96
   Compiling rustix v0.37.18
   Compiling pest v2.6.0
   Compiling idna v0.3.0
   Compiling generic-array v0.14.7
   Compiling atty v0.2.14
   Compiling typenum v1.16.0
   Compiling chrono v0.4.31
   Compiling crossbeam-utils v0.8.15
   Compiling indoc v2.0.5
   Compiling itertools v0.10.5
error[E0635]: unknown feature `stdsimd`
  --> /Users/<user>/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.7.6/src/lib.rs:33:42
   |
33 | #![cfg_attr(feature = "stdsimd", feature(stdsimd))]
   |                                          ^^^^^^^

   Compiling colored v2.0.0
For more information about this error, try `rustc --explain E0635`.
error: could not compile `ahash` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...

Are you using Rust nightly?
Just followed your reproduction and it worked fine for me using:
➜ rustc -vV
rustc 1.79.0 (129f3b996 2024-06-10)
binary: rustc
commit-hash: 129f3b9964af4d4a709d1383930ade12dfe7c081
commit-date: 2024-06-10
host: aarch64-apple-darwin
release: 1.79.0
LLVM version: 18.1.7

If that is the problem you can refer to the existing conversations around it here #241

Ah this was resolved in discord as a rust nightly problem


Example for account authentication

Hi, I am trying to use flow-py-sdk on a python backend to authenticate the user account. This is the official example I am following but it assumes the backend also use the js/node version of the client: https://docs.onflow.org/fcl/reference/proving-authentication/#proving-user-authentication-using-user-signature
Could you please provide some hints on how to translate that in using flow-py-sdk? Or is it possible at all?

Hi, sorry for not being clear. So the idea is that the backend will generate an authentication code which will send to the frontend. Then the frontend will take the authentication code and sign it: 'const CompositeSignatures = await fcl.currentUser().signUserMessage(AuthCodeMessage)'. This CompositeSignatures will then be passed to the backend so the backend can verify that message (as a way to prove the user actually own that account). The js version is like this:
fcl.verifyUserSignature(
AuthCodeMessage,
CompositeSignatures
)
So I am wondering how we can do that with your python module. Did your example already achieve this? Also, can the backend verify a signed message off-chain?

My problem is I am not that familiar with fcl.verifyUserSignature, I will have to look into that.
The example I put in the PR is an off-chain verification. From what I understand from your description, when the signed AuthCodeMessage is returned to the backend, you can use verifier.verify_user_message(message, signature) to verify it. This does assume that you know the public key of the user/account.
If you want to use an accounts public key (that you don't have) you can get it from the chain. However if you are already calling the chain to get the public keys, you might as well just use a script to send the message on-chain and verify it there. I will add that example tomorrow, or later today.

Great! Examples will be great! I am not familiar with flow, could you show both how to get the public key, and run verification script on chain? I guess the difference is that if we can do off chain verification it means we can do it more often and faster, while on chain verification will be convenient for one-time verification.
Thanks a lot!
Another minor suggestion, maybe change verifier.verify_user_message to verifier.verify_user_signature to keep consistent with the name in JS?

@oeway I checked out what fcl.verifyUserSignature user signature does.
It basically calls a cadence script that gets the public keys of the account and uses them to verify all of the signatures (because accounts can have multiple keys).
My goal now is to make a method in the flow-py-sdk that is directly compatible with the result of fcl.currentUser().signUserMessage(AuthCodeMessage) and does essentially the same thing. I will include an example.

Hi, that sounds great! Looking forward to your example!

Should be good now, let me know if anything is unclear or if you have problems using it.

@janezpodhostnik Is there a way to only verify the user signature on-chain for the first time and later use the cached key to do verification off-chain? I am trying to use flow signature as a replacement for JWT token, so I would like to make it faster to verify the signature off-chain.

Hey Guys
I stuck with the similar issue
in node js version
there is an existing helper function
import { AppUtils } from "@onflow/fcl" const isValid = await AppUtils.verifyAccountProof(     appIdentifier,     accountProofData   )
Wondering what is the equivalent version in python SDK?


8051: Decompiling the simplest code.

Below is an example of C function in the “Hello World” style for 8051:
typedef unsigned short word;

word xdata _buf[0x100];

void Fn1()
{
  word i;

  for( i=0; i<0x100; i++ )
  {
    _buf[i] = 0;
  }
}

After compiling it with Keil and decompiling with Ghidra it looks like:
void FUN_CODE_0000(void)
{
 char cVar1;
 byte bVar2;
 undefined *puVar3;

 bVar2 = 0;
 cVar1 = 0;
 while ((cVar1 == '\0') << 7 < '\0') {
   puVar3 = (undefined *)CONCAT11(cVar1 << 1 | CARRY1(bVar2,bVar2),bVar2 * '\x02');
   *puVar3 = 0;
   puVar3[1] = 0;
   bVar2 = bVar2 + 1;
   if (bVar2 == 0) {
     cVar1 = cVar1 + '\x01';
   }
 }
 return;
}

Disassembly listing:
                             //
                             // CODE
                             // CODE: CODE:0000-CODE:0025
                             //
                             **************************************************************
                             *                          FUNCTION                          *
                             **************************************************************
                             void __stdcall FUN_CODE_0000(void)
             void              <VOID>         <RETURN>
                             FUN_CODE_0000
       CODE:0000 e4              CLR        A
       CODE:0001 fd              MOV        R5,A
       CODE:0002 fc              MOV        R4,A
                             LAB_CODE_0003                                   XREF[1]:     CODE:0023(j)
       CODE:0003 c3              CLR        CY
       CODE:0004 ec              MOV        A,R4
       CODE:0005 94 01           SUBB       A,#0x1
       CODE:0007 50 1c           JNC        LAB_CODE_0025
       CODE:0009 ed              MOV        A,R5
       CODE:000a 25 e0           ADD        A,A
       CODE:000c ff              MOV        R7,A
       CODE:000d ec              MOV        A,R4
       CODE:000e 33              RLC        A
       CODE:000f fe              MOV        R6,A
       CODE:0010 74 00           MOV        A,#0x0
       CODE:0012 2f              ADD        A,R7
       CODE:0013 f5 82           MOV        DPL,A
       CODE:0015 74 00           MOV        A,#0x0
       CODE:0017 3e              ADDC       A,R6
       CODE:0018 f5 83           MOV        DPH,A
       CODE:001a e4              CLR        A
       CODE:001b f0              MOVX       @DPTR,A
       CODE:001c a3              INC        DPTR
       CODE:001d f0              MOVX       @DPTR,A
       CODE:001e 0d              INC        R5
       CODE:001f ed              MOV        A,R5
       CODE:0020 70 01           JNZ        LAB_CODE_0023
       CODE:0022 0c              INC        R4
                             LAB_CODE_0023                                   XREF[1]:     CODE:0020(j)
       CODE:0023 80 de           SJMP       LAB_CODE_0003
                             LAB_CODE_0025                                   XREF[1]:     CODE:0007(j)
       CODE:0025 22              RET

Could anyone suggest me how to make it readable? Or is it not possible at the current stage of development process?
Zipped binary file.

Below is an example of C function in the “Hello World” style for 8051:
typedef unsigned short word;

word xdata _buf[0x100];

void Fn1()
{
  word i;

  for( i=0; i<0x100; i++ )
  {
    _buf[i] = 0;
  }
}

After compiling it with Keil and decompiling with Ghidra it looks like:
void FUN_CODE_0000(void)
{
 char cVar1;
 byte bVar2;
 undefined *puVar3;

 bVar2 = 0;
 cVar1 = 0;
 while ((cVar1 == '\0') << 7 < '\0') {
   puVar3 = (undefined *)CONCAT11(cVar1 << 1 | CARRY1(bVar2,bVar2),bVar2 * '\x02');
   *puVar3 = 0;
   puVar3[1] = 0;
   bVar2 = bVar2 + 1;
   if (bVar2 == 0) {
     cVar1 = cVar1 + '\x01';
   }
 }
 return;
}

Could anyone suggest me how to make it readable? Or is it not possible at the current stage of development process?

What does the disassembly look like? There is likely some optimization going on there.

The above example with switched off optimization:
(I think "optimization" concept for Keil compiler is not the same as for Ghidra.)
#pragma ot(0)

typedef unsigned short word;

word xdata _buf[0x100];

void Fn1()
{
  word i;

  for( i=0; i<0x100; i++ )
  {
    _buf[i] = 0;
  }
}

After decompiling now it looks like:
void FUN_CODE_0000(void)
{
  undefined *puVar1;

  DAT_EXTMEM_0200 = '\0';
  DAT_EXTMEM_0201 = 0;
  while ((DAT_EXTMEM_0200 == '\0') << 7 < '\0') {
    puVar1 = (undefined *)
             CONCAT11(DAT_EXTMEM_0200 << 1 | CARRY1(DAT_EXTMEM_0201,DAT_EXTMEM_0201),
                      DAT_EXTMEM_0201 * '\x02');
    *puVar1 = 0;
    puVar1[1] = 0;
    DAT_EXTMEM_0201 = DAT_EXTMEM_0201 + 1;
    if (DAT_EXTMEM_0201 == 0) {
      DAT_EXTMEM_0200 = DAT_EXTMEM_0200 + '\x01';
    }
  }
  return;
}

Disassembly listing:
                             //
                             // CODE
                             // CODE: CODE:0000-CODE:0044
                             //
                             **************************************************************
                             *                          FUNCTION                          *
                             **************************************************************
                             void __stdcall FUN_CODE_0000(void)
             void              <VOID>         <RETURN>
                             FUN_CODE_0000
       CODE:0000 90 02 00        MOV        DPTR,#0x200
       CODE:0003 e4              CLR        A
       CODE:0004 f0              MOVX       @DPTR=>DAT_EXTMEM_0200,A
       CODE:0005 a3              INC        DPTR
       CODE:0006 e4              CLR        A
       CODE:0007 f0              MOVX       @DPTR=>DAT_EXTMEM_0201,A
                             LAB_CODE_0008                                   XREF[1]:     CODE:0042(j)
       CODE:0008 90 02 00        MOV        DPTR,#0x200
       CODE:000b e0              MOVX       A,@DPTR=>DAT_EXTMEM_0200
       CODE:000c fe              MOV        R6,A
       CODE:000d a3              INC        DPTR
       CODE:000e e0              MOVX       A,@DPTR=>DAT_EXTMEM_0201
       CODE:000f ff              MOV        R7,A
       CODE:0010 c3              CLR        CY
       CODE:0011 ee              MOV        A,R6
       CODE:0012 94 01           SUBB       A,#0x1
       CODE:0014 50 2e           JNC        LAB_CODE_0044
       CODE:0016 90 02 00        MOV        DPTR,#0x200
       CODE:0019 e0              MOVX       A,@DPTR=>DAT_EXTMEM_0200
       CODE:001a fe              MOV        R6,A
       CODE:001b a3              INC        DPTR
       CODE:001c e0              MOVX       A,@DPTR=>DAT_EXTMEM_0201
       CODE:001d ff              MOV        R7,A
       CODE:001e ef              MOV        A,R7
       CODE:001f 25 e0           ADD        A,A
       CODE:0021 ff              MOV        R7,A
       CODE:0022 ee              MOV        A,R6
       CODE:0023 33              RLC        A
       CODE:0024 fe              MOV        R6,A
       CODE:0025 74 00           MOV        A,#0x0
       CODE:0027 2f              ADD        A,R7
       CODE:0028 f5 82           MOV        DPL,A
       CODE:002a 74 00           MOV        A,#0x0
       CODE:002c 3e              ADDC       A,R6
       CODE:002d f5 83           MOV        DPH,A
       CODE:002f e4              CLR        A
       CODE:0030 f0              MOVX       @DPTR,A
       CODE:0031 a3              INC        DPTR
       CODE:0032 e4              CLR        A
       CODE:0033 f0              MOVX       @DPTR,A
       CODE:0034 90 02 01        MOV        DPTR,#0x201
       CODE:0037 e0              MOVX       A,@DPTR=>DAT_EXTMEM_0201
       CODE:0038 04              INC        A
       CODE:0039 f0              MOVX       @DPTR=>DAT_EXTMEM_0201,A
       CODE:003a 70 06           JNZ        LAB_CODE_0042
       CODE:003c 90 02 00        MOV        DPTR,#0x200
       CODE:003f e0              MOVX       A,@DPTR=>DAT_EXTMEM_0200
       CODE:0040 04              INC        A
       CODE:0041 f0              MOVX       @DPTR=>DAT_EXTMEM_0200,A
                             LAB_CODE_0042                                   XREF[1]:     CODE:003a(j)
       CODE:0042 80 c4           SJMP       LAB_CODE_0008
                             LAB_CODE_0044                                   XREF[1]:     CODE:0014(j)
       CODE:0044 22              RET

Zipped binary file.

The above example with switched off optimization:
(I think "optimization" concept for Keil compiler is not the same as for Ghidra.)

I did intend to mean optimization by the Keil compiler. A lot of optimization happens behind the scenes with c and c++ compilers.
Defining puVar1 as a short* may help with decompilation. I'm not familiar with the 8051 processor, but from a quick glance at the instruction set it appears to only operate on bytes. When no debug information is available Ghidra attempts to determine the datatype from the opcode. However, since these instructions are only on bytes it will determine every datatype to be a signed/unsigned byte or a pointer to one.
I'm curious to see what it would look like if you compile the c code with _buf as an unsigned char.

Without any "words" now :smile:.
Keil C source:
typedef unsigned char byte;

byte xdata _buf[0x80];

void Fn1()
{
  byte i;

  for( i=0; i<0x80; i++ )
  {
    _buf[i] = 0;
  }
}

Ghidra decompilation result:
void Fn1(void)
{
  byte *local_R6R7_1;

  local_R6R7_1._1_1_ = 0;
  while ((0x80 < 0x80U - ((((byte)local_R6R7_1 < 0x80) << 7) >> 7)) << 7 < '\0') {
    *(undefined *)(ushort)(byte)local_R6R7_1 = 0;
    local_R6R7_1._1_1_ = (byte)local_R6R7_1 + 1;
  }
  return;
}

Disassembly listing:
                             //
                             // CODE
                             // CODE: CODE:0000-CODE:001b
                             //
                             **************************************************************
                             *                          FUNCTION                          *
                             **************************************************************
                             void __stdcall Fn1(void)
             void              <VOID>         <RETURN>
             byte *            R6R7:2         local_R6R7_1                            XREF[1]:     CODE:0001(W)
                             Fn1
       CODE:0000 e4              CLR        A
       CODE:0001 ff              MOV        local_R6R7_1,A
                             LAB_CODE_0002                                   XREF[1]:     CODE:0019(j)
       CODE:0002 ef              MOV        A,local_R6R7_1
       CODE:0003 c3              CLR        CY
       CODE:0004 94 80           SUBB       A,#0x80
       CODE:0006 74 80           MOV        A,#0x80
       CODE:0008 94 80           SUBB       A,#0x80
       CODE:000a 50 0f           JNC        LAB_CODE_001b
       CODE:000c 74 00           MOV        A,#0x0
       CODE:000e 2f              ADD        A,local_R6R7_1
       CODE:000f f5 82           MOV        DPL,A
       CODE:0011 e4              CLR        A
       CODE:0012 34 00           ADDC       A,#0x0
       CODE:0014 f5 83           MOV        DPH,A
       CODE:0016 e4              CLR        A
       CODE:0017 f0              MOVX       @DPTR,A
       CODE:0018 0f              INC        local_R6R7_1
       CODE:0019 80 e7           SJMP       LAB_CODE_0002
                             LAB_CODE_001b                                   XREF[1]:     CODE:000a(j)
       CODE:001b 22              RET

Ok, so I think the decompilation could be cleaned up a bit either by changing PSW to a context register and the following to its bits:
@define CY 		"PSW[7,1]"
@define AC  	"PSW[6,1]"
@define N   	"PSW[5,1]"
@define RS1  	"PSW[4,1]"
@define RS0  	"PSW[3,1]"
@define OV		"PSW[2,1]"
@define Z  		"PSW[1,1]"

or by ensuring that the above do not appear in code. The right and left shifting that you are seeing is from checking if a carry has occurred..


Failed to read boxes

I am trying to use the tool and just run the tutorial setup.
However when running make training i get an error
Failed to read boxes from data/foo-ground-truth/alexis_ruhe01_1852_0018_022.tif

This also happens with my custom setup text
As a note i am running this in WSL on Windows 10. And it is tesseract command which is generating the issue

any update to ^^, run into similar issue
make training
+ tesseract data/foo-ground-truth/fontane_irrungen_1888_0258_008.tif data/foo-ground-truth/fontane_irrungen_1888_0258_008 --psm 13 lstm.train
Failed to read boxes from data/foo-ground-truth/fontane_irrungen_1888_0258_008.tif
Error during processing.
make: *** [data/foo-ground-truth/fontane_irrungen_1888_0258_008.lstmf] Error 1

tesseract build version 5.1.0-32-gf36c0, macOS

same here
make training MODEL_NAME=tha2               [🐍 train1tesseract]
PYTHONIOENCODING=utf-8 python3 generate_line_box.py -i "data/tha2-ground-truth/8-th.png" -t "data/tha2-ground-truth/8-th.gt.txt" > "data/tha2-ground-truth/8-th.box"
+ tesseract data/tha2-ground-truth/8-th.png data/tha2-ground-truth/8-th --psm 13 lstm.train
PYTHONIOENCODING=utf-8 python3 generate_line_box.py -i "data/tha2-ground-truth/5-th.png" -t "data/tha2-ground-truth/5-th.gt.txt" > "data/tha2-ground-truth/5-th.box"
+ tesseract data/tha2-ground-truth/5-th.png data/tha2-ground-truth/5-th --psm 13 lstm.train
+ tesseract data/tha2-ground-truth/3-th.png data/tha2-ground-truth/3-th --psm 13 lstm.train
Failed to read boxes from data/tha2-ground-truth/3-th.png
Error during processing.
make: *** [data/tha2-ground-truth/3-th.lstmf] Error 1

it works with your sample data (ocrd) and also works with some of my images. But it doesn't work with '3-th' image that flagged error here.
tesseract 5.1.0-72-gb8b6 , leptonica-1.82.0 , libgif 5.2.1 : libjpeg 9e : libpng 1.6.37 : libtiff 4.4.0 : zlib 1.2.11 : libwebp 1.2.2 : libopenjp2 2.5.0 ,  Found SSE4.1  Found libarchive 3.6.1 zlib/1.2.11 liblzma/5.2.5 bz2lib/1.0.8 liblz4/1.9.3 libzstd/1.5.2  Found libcurl/7.77.0 SecureTransport (LibreSSL/2.8.3) zlib/1.2.11 nghttp2/1.42.0

I have had the same issue.
I have started the 'make' with
make GROUND_TRUTH_DIR=<myGTDir> MODEL_NAME=<mymodelname> lists
The image which creates the error:

According Box-File:
boxfile.zip
Full error message on console:
PYTHONIOENCODING=utf-8 python3 generate_line_box.py -i "/home/tessadmin/tesstrain/data/cyrillicEvalPartly/train/OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001.bin.png" -t "/home/tessadmin/tesstrain/data/cyrillicEvalPartly/train/OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001.gt.txt" > "/home/tessadmin/tesstrain/data/cyrillicEvalPartly/train/OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001.box"
+ tesseract /home/tessadmin/tesstrain/data/cyrillicEvalPartly/train/OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001.bin.png /home/tessadmin/tesstrain/data/cyrillicEvalPartly/train/OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001 --psm 13 lstm.train
Failed to read boxes from /home/tessadmin/tesstrain/data/cyrillicEvalPartly/train/OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001.bin.png
Error during processing.
make: *** [Makefile:225: /home/tessadmin/tesstrain/data/cyrillicEvalPartly/train/OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001.lstmf] Error 1

I have had the same issue. I have started the 'make' with make GROUND_TRUTH_DIR=<myGTDir> MODEL_NAME=<mymodelname> lists
The image which creates the error:
According Box-File: boxfile.zip
Full error message on console:
PYTHONIOENCODING=utf-8 python3 generate_line_box.py -i "/home/tessadmin/tesstrain/data/cyrillicEvalPartly/train/OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001.bin.png" -t "/home/tessadmin/tesstrain/data/cyrillicEvalPartly/train/OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001.gt.txt" > "/home/tessadmin/tesstrain/data/cyrillicEvalPartly/train/OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001.box"
+ tesseract /home/tessadmin/tesstrain/data/cyrillicEvalPartly/train/OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001.bin.png /home/tessadmin/tesstrain/data/cyrillicEvalPartly/train/OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001 --psm 13 lstm.train
Failed to read boxes from /home/tessadmin/tesstrain/data/cyrillicEvalPartly/train/OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001.bin.png
Error during processing.
make: *** [Makefile:225: /home/tessadmin/tesstrain/data/cyrillicEvalPartly/train/OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001.lstmf] Error 1

hey , I managed to solve my issue by inspecting the grountruth .txt file. What's in your OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001.gt.txt file?

hey , I managed to solve my issue by inspecting the grountruth .txt file. What's in your OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001.gt.txt file?

Many thanks - looks like you are right. My GT file is empty (has a 12 bytes, but no (visible) text).
See this file here:
OCR-D-SEG-LINE-CCS-IMG-BL-4792_007818296_00769_TR-5_TR-5_line0001.gt.txt.zip

Problem is that e.g. https://github.com/tesseract-ocr/tesstrain/blob/main/generate_line_box.py print output to stdout and therefore Makefile creates box file even there are no data.
@kba, @stweil : Is there any tool processing box data from stdout?
IMO this functionality should be rewritten, so box file is directly and only in case of real data.

@zdenop I am trying to understand. So the GT text file is bogus, but not to the extent that generate_line_box.py would raise an exception and thus cause non-zero exit value, correct? And you want to prevent empty output, correct?
In that case, I would suggest simply changing the Python script to exit with non-zero if the condition (if line) cannot be met.

I already started to write my tools to replace some makefile functionality. I have following function that handle empy files correctly:
import pathlib
import unicodedata
from PIL import Image

red = '\033[91m'
reset = '\033[0m'

def generate_line_box(gt_txt, image_path, output_path):
    """Creates tesseract box files for given (line) image text pairs"""
    lines=pathlib.Path(gt_txt).read_text(encoding='utf-8').splitlines()
    if  len(lines) != 1:
        print(f"{red}Invalid gt_txt file: {gt_txt}{reset}")
        return False
    line = unicodedata.normalize('NFC', lines[0].strip())
    if not line:
        print(f"{red}Can not normalize line in gt_txt file: {blue}{gt_txt}{reset}")
        return False
    with Image.open(image_path) as image:
        width, height = image.size
    with open(output_path, 'w', encoding='utf-8') as out_file:
        for i in range(1, len(line)):
            char = line[i]
            prev_char = line[i-1]
            if unicodedata.combining(char):
                out_file.write(f"{prev_char + char} 0 0 {width} {height} 0\n")
            elif not unicodedata.combining(prev_char):
                out_file.write(f"{prev_char} 0 0 {width} {height} 0\n")
        if not unicodedata.combining(line[-1]):
            out_file.write(f"{line[-1]} 0 0 {width} {height} 0\n")
        out_file.write(f"\t 0 0 {width} {height} 0\n")
    return True