Somehow, I made the Matlab wrapper work on my Mac.

Hi Ben,
I was trying to install this wrapper on my mac. The python one works fine. But there are many small issues with the Matlab. I tried Matlab R2019a on my Mac Pro (Sierra) and R2020a on my MacBook Pro (Catalina), they both don't work. Somehow, I made it works. I am posting my experience here and hope it can help some other folks.

Mex commands with fortran doesn't work. "No supported compiler was found."
The first step of the installation in matlab is
mex 'DC3D0wrapper.F'
mex 'DC3Dwrapper.F'
When I run these commands I got errors: "No supported compiler was found.".  This is because for the fortran compiler I previously used is gfortran. This error appears because mex in R2019a and R2020a don't support gfortran, and one needs to use "Intel® Parallel Studio XE Composer Edition for Fortran macOS" (requirement info on [https://www.mathworks.com/support/requirements/previous-releases.html]). People on web says there are some ways to go around by modifying xml file so one can still use gfortran. I didn't take that path. I think it's too much hacking for me. I register on Intel as a student and get the Intel Fortran Comiler. If you are using R2016b and above on Mac, you probably need to do the same thing.

After I install the Intel Fortran Compiler, I still need to fix some environment variable issues. I am using Intel Fortran Compiler 2018, so I need to assign the 'IFORT_COMPILER18' variable before doing mex by,
setenv('IFORT_COMPILER18','/opt/intel/compilers_and_libraries_2018.6.243/mac/');
a detail explanation can be found in [https://www.mathworks.com/matlabcentral/answers/355720-mex-can-t-find-intel-parallel-studio-xe-for-fortran-2017]
The mex issues are fixed for my Mac Pro (R2019a) by this point. For my MacBook Pro (R2020a), somehow I also need to solve two other small bugs to make the mex works:
a. I need to add to PATH the directory of the ifort binary to help the mex command find ifort,
setenv('PATH', [getenv('PATH') ':/opt/intel/compilers_and_libraries_2020.2.258/mac/bin/intel64:/opt/intel/compilers_and_libraries_2020.2.258/mac/bin:/opt/intel//debugger_2020/gdb/intel64/bin:']);
b. After that, I get an error
xcrun: error: unable to find utility "clang", not a developer tool or in PATH
I follow this thread to solve this issue, [https://www.mathworks.com/matlabcentral/answers/512901-mex-xcodebuild-error-sdk-macosx10-15-4-cannot-be-located]

Once I made the mex works, the DC3D0 function works just fine. But whenever I ran the DC3D function (rectangle source), both the R2019a and R2020a will give me a segmentation error and I need to quit and restart. I get into the DC3Dwrapper.F to debug and try to use mexPrintf(txt) to find out which line gives me the segmentation error. Amazingly, the segmentation error magically disappear when I put
C     Specify alert to be printed
character (len=*), PARAMETER :: txt = "API says hello!"
behind "C     Check for proper number of arguments." (approximatly line 114), and put
C     Call the API
call mexPrintf(txt)
above "call DC3D(sngl(alpha)," (approximately at line 203)

I don't know why this can fixed the segamentation bug but it just did. I guess probably by calling the mxPrintf() some undefined pointer is overwritten. But I am not a CS expert so I really don;t know what happen. This is not a longterm solution because printing out a sentence really slow down the calculation. I hope someone later can find a better way to fix this bug.
In the end, I want to thank you for making this code. You make it very easy for people like me who don't know much about FORTRAN to use Okada 1992 solution. Very much appreciated!
Baoning

Thanks! I'll leave this up and open in case it helps anyone.

An update for the point #2 in my comment above. I have found a way to solve the segmentation error with a better solution.
The segmentation error seems to originate from the use of FORTRAN function "sngl" in the DC3DWrapper.F. Matlab mex wrapper seems unhappy with the conversion from double to single. My previous method of calling a "mexPrintf" function before calling DC3D magically works, but it would produce a lot of output, which I don't like. Anyway, it is not a good solution because I didn't solve the problem. But at that time I need to rush some results so I was happy with the "dirty" fix
Yesterday I came back to this wrapper. Trying to get a better solution. I tried many solutions that play around with the conversion within the .F file, but they didn't work. Eventually, I find an easy solution that works. Basically, I get rid of all the precision conversions within the .F file, making all the variable double. Then I go to the original Okada DC3D.f file to make all the real variables double. In fact, there are only two places needed to be changed, one at the beginning of the DC3D0 function and one at the beginning of the DC3D function. Maybe the DC3D0 function doesn't need to be changed, but I change it anyway.
And it works! About my setup, it is Catalina 10.15.7, Matlab R2020a, ifort version <IP_ADDRESS>8.

Thanks for this! Would you be interested in submitting a pull request so that we can consider merging your changes into the repo? I've stopped using matlab so I won't be able to test your changes, but you might be one of the only matlab users of this package so if it works for you, it's probably good enough.

Thanks, Ben. Sure. I went to the Pull Request page but it doesn't allow me to create a new Pull Request. Maybe I missed some steps---I am not familiar with Github. Can you give me more instructions on how to create a new Pull Request? Or could I send you the change via email instead?
Baoning

Totally fine if you want to send me the changes via email. But, if you do want to submit a PR using GitHub, that's a bit easier for me to work with. Here's a tutorial on how you would do that: https://jarv.is/notes/how-to-pull-request-fork-github/


Chronic Kidney Disease Analysis

Related issue
Fixes #12
Notebook and dataset added

@sudipg4112001 Please provide an update regarding the pr.

@sudipg4112001 Please provide the updates regarding the changes asked, if you're facing any kind of problem kindly contact mentors.

@sudipg4112001 Updates?


feature/adds new worldometers fields

updates dependencies

Codecov Report

Merging #56 (f8ee622) into master (dbfa221) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master       #56   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           11        11
  Lines          343       343
  Branches        12        12
=========================================
  Hits           343       343

Impacted Files
Coverage Δ

covid/__init__.py
100.00% <100.00%> (ø)


Inconsistent device limit reached

If the same device is also linked to more than one user, this device counts as more than one.
Note: The user must be managed by the primary user. In my case “instalador_sc”
Example:
User manager: “instalador_sc”
Devices: device01; Device02
Device Limit: 3
Managed users:
Client01 (linked – device01 and device02)
Client02 (linked – device01 and device02)
. Total devices associated with user “instalador_sc”: 4
. The user will not be able to create new devices.
. Although the user can no longer create devices he can make new links which further increases the total device limit count
I believe the best solution would be to add user-manager devices to devices created by 'normal' users that are not linked to the user manager.
The total would be analyzed by the field: devices limit
what do you think?

@Abyss777, I think we thought about it before, right?

Looks like I've missed this situation, sent PR.


Allow custom normalization for matchers

Describe the feature you'd like:
It would be really helpful to be able to provide custom normalizer functions to the get/query functions. In our applications we have a lot of special RTL-related UCC characters such as LRE, RLE, RLM, PDF, etc. and looking up elements by text is made very hard if tests have to specify those characters precisely. So we'd really like the ability to match on text ignoring those characters.  Having to specify them precisely in the tests makes them very fragile and hard to read.
There are already a couple of normalizer options such as trim and collapseWhitespace. I could suggest adding another specific one such as removeUCC, but it would be more flexible to allow a custom normalizer function to be specified, as that would obviate future requests for more options.

Suggested implementation:
It's pretty straightforward: another option that gets passed through to the low-level normalize function in matches.js.
There would be a decision to be made about what would happen if either trim or collapseWhitespace were passed as well as a custom normalizer function.  There are three obvious options:

only run the custom normalizer
run the trim + whitespace handling before the custom normalizer
run the trim + whitespace handling after the custom normalizer
(bonus weird option) run the trim + whitespace handling both before and after the custom normalizer

Describe alternatives you've considered:
There are some alternatives, but they're not lovely:

Use a regex to provide a 'loose' pattern.  Not a great option: without knowing where UCC characters might appear, we'd have to write something like .getByText(/this.*is.*a.*series.*of.*words/) (which would be much too hard work and much too loose) or replacing the .* with a regex character class containing the precise UCC characters we'd like to ignore, but that would be unreadable.
Use custom matcher functions instead.  We've tried doing this: implementing normalization in those is rather a lot of work as we end up duplicating most of what's in matches.js as a result (to cope with fuzzy matching, regex matching, etc) which we still want on top of being able to remove UCC characters.  Being able to write .getByText(/this is a (big)? series of words/, { normalizer: removeUCC }) would be expressive and flexible.

Teachability, Documentation, Adoption, Migration Strategy:

As above, I'm guessing it could be another option passed to the get/query functions. The biggest confusion I could think of is the interoperability between the existing normalization options and a custom normalization function.
No backwards compatibility issues: it would be an additional API.
I'm happy to provide a PR if you're interested in progressing this.

I'm in favor of this:

getByText(/this is a (big)? series of words/, { normalizer: removeUCC })

👍

Ok, cool; will get a PR together.  You happy with that API, or would you prefer { normalizerFn: removeUCC }?

I'm fine with either. You choose 👍


Rich Text shows wrong text with same font sizes but different colors in TextSpan

Steps to Reproduce
Create a RichText with multiple TextSpans, style the center TextSpan with a different color, get wrong results.
I need to make some part of the text a different color, but when using RichText and TextSpans with different colors in styles, something wrong happens. RichText shows wrong text with same font sizes but different colors in TextSpans.
In the example I have created three TextSpans, with text '[', 'f' and 'lutter]', a central TextSpan with text 'f' I style with red.
Tested on web and android platforms
Expected results: I expect to see the inscription "[flutter]" in which the letters "f" are painted over in red.
Actual results: I see "[flflutte" in which the first letters "fl" are painted over in red and missing text "r]" at the end.

Example code
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.light().copyWith(
        scaffoldBackgroundColor: Colors.white,
      ),
      debugShowCheckedModeBanner: false,
      home: const Scaffold(
        body: Center(
          child: MyWidget(),
        ),
      ),
    );
  }
}

class MyWidget extends StatelessWidget {
  const MyWidget({super.key});

  @override
  Widget build(BuildContext context) {
    var firstPart = ' [';
    var matchString = 'f';
    var secondPart = 'lutter]';
    return Text.rich(
      TextSpan(
        children: [
          TextSpan(
            text: firstPart,
          ),
          TextSpan(
            text: matchString,
            style: const TextStyle(color: Colors.red),
          ),
          TextSpan(
            text: secondPart,
          ),
        ],
      ),
      style: const TextStyle(fontSize: 18),
    );
  }
}

Logs
Nothing
[  +81 ms] Syncing files to device Android SDK built for x86...
[   +1 ms] Compiling dart to kernel with 0 updated files
[        ] Processing bundle.
[        ] <- recompile package:rich_text_example/main.dart a7bb0129-00a1-4573-ab6e-466699648c00
[        ] <- a7bb0129-00a1-4573-ab6e-466699648c00
[   +2 ms] Bundle processing done.
[ +147 ms] Updating files.
[        ] DevFS: Sync finished
[   +1 ms] Syncing files to device Android SDK built for x86... (completed in 153ms)
[        ] Synced 0.0MB.
[   +1 ms] <- accept
[   +7 ms] Connected to _flutterView/0xf4b73710.
[   +2 ms] Flutter run key commands.
[   +1 ms] r Hot reload.
[        ] R Hot restart.
[        ] h List all available interactive commands.
[        ] d Detach (terminate "flutter run" but leave application running).
[        ] c Clear the screen
[        ] q Quit (terminate the application on the device).
[        ]  Running with sound null safety
[        ] An Observatory debugger and profiler on Android SDK built for x86 is available at: http://<IP_ADDRESS>:54663/nbtl_7WJHFw=/
[+1198 ms] The Flutter DevTools debugger and profiler on Android SDK built for x86 is available at: http://<IP_ADDRESS>:9100?uri=http://<IP_ADDRESS>:54663/nbtl_7WJHFw=/
[  +49 ms] D/EGL_emulation(19770): eglMakeCurrent: 0xebb63d20: ver 3 1 (tinfo 0xf4b89790)

No issues found! (ran in 2.8s)

[√] Flutter (Channel stable, 3.3.4, on Microsoft Windows [Version 10.0.22000.1098], locale ru-RU)
    • Flutter version 3.3.4 on channel stable at C:\Users\kirie\Documents\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision eb6d86ee27 (9 days ago), 2022-10-04 22:31:45 -0700
    • Engine revision c08d7d5efc
    • Dart version 2.18.2
    • DevTools version 2.15.0

[√] Android toolchain - develop for Android devices (Android SDK version 31.0.0-rc5)
    • Android SDK at C:\Users\kirie\AppData\Local\Android\sdk
    • Platform android-33, build-tools 31.0.0-rc5
    • Java binary at: E:\Android studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • CHROME_EXECUTABLE = C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.2.5)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.2.32616.157
    • Windows 10 SDK version 10.0.19041.0

[√] Android Studio (version 2021.3)
    • Android Studio at E:\Android studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[√] IntelliJ IDEA Ultimate Edition (version 2021.2)
    • IntelliJ at C:\Users\kirie\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\212.5284.40
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart

[√] IntelliJ IDEA Ultimate Edition (version 2021.3)
    • IntelliJ at C:\Users\kirie\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\213.6461.79
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart

[√] Connected device (4 available)
    • Android SDK built for x86 (mobile) • emulator-5554 • android-x86    • Android 10 (API 29) (emulator)
    • Windows (desktop)                  • windows       • windows-x64    • Microsoft Windows [Version 10.0.22000.1098]
    • Chrome (web)                       • chrome        • web-javascript • Google Chrome 106.0.5249.119
    • Edge (web)                         • edge          • web-javascript • Microsoft Edge 106.0.1370.37

[√] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

WORKAROUND
I noticed that if you change the font size of the "color" TextSpan to something different from the main RichText, then this gives the expected result. This can be used as a workaround for the problem. But it's still broken.

Hi @mrmops, this is a duplicate of https://github.com/flutter/flutter/issues/104884.
Kindly follow up for updates in the issue linked above for updates.
Kindly upvote the original issue.
Closing from here as duplicate.
Thank you


how to run the demo?

i have successfully build the lsquic statically and i have passed all the tests .
but when i followed the guide in https://github.com/litespeedtech/lsquic/blob/master/docs/gettingstarted.rst,
i use
$./http_client -s www.google.com -p / -o version=Q050

bash: ./http_client: No such file or directory

so i wonder how to run the demo

You need to locate the http_client binary and run that command from that directory.


Error loading page due to a configuration error on the Demo project

Context:

cloned this repo
open the Demo project in Xcode, compiled (OS Monterey) and launched on a iPhone SE (IOS 15.8) => Error loading page
same result when launching on the Simulator using the latest IOS version (16).

Error loading page:
2024-11-12 08:42:32.507630+0100 Turbo Demo[414:7538] [ViewportSizing] maximumViewportInset cannot be larger than frame
2024-11-12 08:42:32.507732+0100 Turbo Demo[414:7538] [ViewportSizing] minimumViewportInset cannot be larger than frame
2024-11-12 08:42:32.553223+0100 Turbo Demo[414:7538] [ViewportSizing] maximumViewportInset cannot be larger than frame
2024-11-12 08:42:32.553312+0100 Turbo Demo[414:7538] [ViewportSizing] minimumViewportInset cannot be larger than frame
2024-11-12 07:42:32 +0000 [Session] visit ["location": https://turbo-native-demo.glitch.me, "options": Turbo.VisitOptions(action: Turbo.VisitAction.replace, response: nil), "reload": false]
2024-11-12 07:42:32 +0000 [ColdBootVisit] startVisit https://turbo-native-demo.glitch.me/ [:]
2024-11-12 08:42:32.666213+0100 Turbo Demo[414:7538] [Strada] bridgeDestinationViewDidLoad: https://turbo-native-demo.glitch.me/
2024-11-12 08:42:32.666782+0100 Turbo Demo[414:7538] [Strada] bridgeDestinationViewWillAppear: https://turbo-native-demo.glitch.me/
2024-11-12 08:42:32.773001+0100 Turbo Demo[414:7538] [Strada] bridgeDestinationViewDidAppear: https://turbo-native-demo.glitch.me/
2024-11-12 07:43:03 +0000 [Bridge] ← pageLoadFailed ["timestamp":<PHONE_NUMBER>818] [:]
2024-11-12 07:43:03 +0000 [ColdBootVisit] cancelVisit https://turbo-native-demo.glitch.me/ [:]

I just pulled the code and ran the demo with iOS 18 and everything worked as expected. I sadly can't run iOS 15.x on my machine/Xcode.
Can you please try again? I'm wondering if the Glitch endpoint was temporarily down.
P.S. If you're starting a new project I recommend checking out Hotwire Native, which will replace Turbo Native in the future. I'll add a link to the README to make it more obvious.


Adding user to moderated list via listitem does not seem to work.

Describe the bug
If I use client.app.bsky.graph.listitem.create() to try to add a user to a moderated list (Block list) it says its successful.  But the user never gets added to the moderated list.  If i use the same code to add a user to a normal list it seems to work just fine.
To Reproduce

create a moderated list
get the at:// for the moderated list
create a models.AppBskyGraphListitem.Record
run a client.app.bsky.graph.listitem.create(client.me.did,list_record)

Expected behavior
User gets added to list or atproto raises an exception of some kind.
Details
Python 3.12.7
pip modoles
pip freeze
annotated-types==0.7.0
anyio==4.6.2.post1
atproto==0.0.55
certifi==2024.8.30
cffi==1.17.1
click==8.1.7
cryptography==43.0.3
dnspython==2.7.0
h11==0.14.0
httpcore==1.0.6
httpx==0.27.2
idna==3.10
libipld==3.0.0
pycparser==2.22
pydantic==2.9.2
pydantic_core==2.23.4
sniffio==1.3.1
typing_extensions==4.12.2
websockets==13.1

Additional context
the relevant code chunk
def add_user_to_blocklist(client=None, tgtUserHandle=None, tgtUserDID=None, listURI=None, dryRun=False):
    # It only works for normal lists, not moderation lists
    list_record = models.AppBskyGraphListitem.Record(
        subject=tgtUserDID,
        created_at=client.get_current_time_iso(),
        list=listURI,
    )
    if not dryRun:
        try:
            client.app.bsky.graph.listitem.create(client.me.did,list_record)
            print( f'>> Added user: {tgtUserHandle} with DID: {tgtUserDID} to block list ${listURI}' )
        except Exception as e:
            print( f'ERROR: Somethign went wrong: {e}')

I have tested. Everything works good. Verify what did do you pass; verify URIs; verify that you own this mod list; maybe you are logged in into wrong account and etc. Here is my coded that I used to test it:
def main() -> None:
    client = Client()
    client.login(os.environ['USERNAME'], os.environ['PASSWORD'])

    # https://bsky.app/profile/test.marshal.dev/lists/3k5z5k4k6qw2r
    mod_list_uri = 'at://did:plc:kvwvcn5iqfooopmyzvb4qzba/app.bsky.graph.list/3k5z5k4k6qw2r'
    mod_list_owner = AtUri.from_str(mod_list_uri).host
    user_to_add = IdResolver().handle.resolve('test.marshal.dev')

    print(f'Adding {user_to_add} to the list {mod_list_uri} (owned by {mod_list_owner})')

    created_list_item = client.app.bsky.graph.listitem.create(mod_list_owner, models.AppBskyGraphListitem.Record(
        list=mod_list_uri,
        subject=user_to_add,
        created_at=client.get_current_time_iso(),
    ))

    print(f'Created list item: CID={created_list_item.cid}; URI: {created_list_item.uri}')

    sleep(3)  # sleep for 3 sec because it takes some time to update the list for the backend

    mod_list = client.app.bsky.graph.get_list(models.AppBskyGraphGetList.Params(list=mod_list_uri))
    mod_list_users = [item.subject.did for item in mod_list.items]
    print(f'List users: {mod_list_users}')
    assert user_to_add in mod_list_users, f'User {user_to_add} not found in the list {mod_list_uri}'

    deleted_success = client.app.bsky.graph.listitem.delete(mod_list_owner, AtUri.from_str(created_list_item.uri).rkey)
    print(f'Deleted list item: {deleted_success}')

sigh, i am sorry.  I must have been passing the uri of a deleted list and not the current one.
:/


feat: upgrade native sdk <IP_ADDRESS>

Update native sdk <IP_ADDRESS> dependencies

This pull request is trigger by bot, you can checkout this branch and update it.

Examples built:

https://nightly.link/littleGnAl/hoe/actions/runs/8004399189/agora_rtc_engine_android_6.2.1-kk.2_20240222123242.zip
https://nightly.link/littleGnAl/hoe/actions/runs/8004399189/agora_rtc_engine_ios_6.2.1-kk.2_20240222123532.zip
https://nightly.link/littleGnAl/hoe/actions/runs/8004399189/agora_rtc_engine_macos_6.2.1-kk.2_20240222122826.zip
https://nightly.link/littleGnAl/hoe/actions/runs/8004399189/agora_rtc_engine_windows_6.2.1-kk.2_20240222122803.zip

This comment is commented by bot, do not edit it directly


enum performance in dao

Summary
the enum type is used in the dao and because of its array type it requires to traverse the table to find the matching entry. A faster way would be to use the hash-part of the same table for reverse entries. Eg.
enum_type = {
  [1] = "slow",
  [2] = "medium",
  [3] = "fast",
  slow = 1,
  medium = 2,
  fast = 3,
}

Instead of iterating over the table (https://github.com/Mashape/kong/blob/master/kong/tools/utils.lua#L180) a simple table lookup would suffice;
local value = "slow"
if enum_type[value] then ... end

see https://github.com/Mashape/kong/pull/1414#discussion_r71156748

Plugins that need a hash table for performance reasons should build it themselves from their configuration's value. Using an enum in the Admin API is fine because performance is not of concern there.

Closing this now - irrelevant since the new DAO has a new schema definition.


docs: update getting started guide with initial feedback

Pull Request Checklist

[ ] Did you add new tests and confirm existing tests pass? (yarn test)
[ ] Did you update relevant docs? (docs are found in the site folder, and guidelines for updating/adding docs can be found in the contribution guide)
[ ] Do your commits follow the Conventional Commits standard?
[ ] Does your PR title also follow the Conventional Commits standard?
[ ] If you have a breaking change, is it correctly reflected in your commit message? (e.g. feat!: breaking change)
[ ] Did you run lint (yarn lint:check) and fix any issues? (yarn lint:write)
[ ] Did you follow the contribution guidelines?

PR-Codex overview
Focus of this PR
Enhancing Embedded Account functionality with Alchemy tools and components, updating UI elements, and improving user authentication processes.
Detailed summary

Removed video embedded-accounts-full.mp4
Updated file extensions in imports to remove .jsx
Updated content in various markdown files for clarity and consistency
Added a new file for sending UserOperations
Updated UI components for log-in experiences

The following files were skipped due to too many changes: site/getting-started/log-in-users.md, site/getting-started/setup-app.md

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Yeah we should ignore the linter for the site/snippets folder.
Leeds was copying those files directly from docs into his code and they were failing. Clear signal of confusion when following this doc to a tee.


Zathura - Show the document metadata

On GitLab by @vlad on Nov 6, 2022, 11:00

Hi,
I wanted to propose a feature request that shows document metadata detailed below.
Show document metadata in the status line or in a separate window.
It is very convenient being able to see the document metadata as in the screenshot below

Thank you very much,
Vlad

On GitLab by @vlad on Nov 6, 2022, 15:14

Hi Sebastian,
Zathura v0.5.1 shows a white line on :info with the attached document,

while Okular provides the below information

Російські-народні-пісні-і-танці-ru01.pdf

I guess you are using the mupdf plugin, right?

That's provided by :info.

moved from zathura#309

That's the issue.

On GitLab by @vlad on Nov 6, 2022, 21:04

Yes, I'm using the latest Zathura with pdf-mupdf on Manjaro.
zathura 0.5.1
girara 0.3.7 (runtime: 0.3.7)
(plugin) pdf-mupdf (0.3.9) (/usr/lib/zathura/libpdf-mupdf.so)


gopkg: Use version instead of branch

Ref https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md#version
Note: When you specify a version without an operator, dep automatically uses the ^ operator by default. dep ensure will interpret the given version as the min-boundary of a range.
Using version allows us to be compatible with more versions.
/hold
/cc @zjj2wry @codeflitting Does it work for you?
Signed-off-by: Ce Gao<EMAIL_ADDRESS>

This change is

/assign @zjj2wry

Coverage remained the same at 64.496% when pulling 287c121409cd7e691628168b5761b261514f4d23 on gaocegege:1.10 into 3a0efc1bf97b7441e28d034c7221008168aef07f on kubeflow:master.

/retest

branches may change all the time, using version ensures that the code for dep ensure is consistent.
/lgtm

/assign @jlewi

/approve
/hold cancel


Update teacher signup

Coverage remained the same at 58.711% when pulling 5698f5758d1097195fcdb7e55c214886792a546b on trim-teacher-signup into 03616f658842cb233dd17165f0cc17b855a20a4b on master.

Continued in a different branch.


Library is not thread-safe and contains serious race conditions.

Due to the usage of global variables in the session manager, and the fact that all requests to the API are made on a module-level this application is not thread-safe and the usage of close_session and reset_session will result in race conditions with disastrous consequences when used in multi-threaded environments.
A simple situation in which the global variables become a problem is when used in conjunction with web frameworks such as Django. In this configuration the first usage of the currencycloud library will result in that user being logged in for every subsequent request, regardless of whether currencycloud.login_id and currencycloud.api_key are modified.  As previously mentioned, there are a few session management methods available, namely close_session and reset_session. If these methods were used in a standard request-response flow the session could be reset and re-created in one thread while the library is being actively used in another. This would lead to both requests being made against the same user and therefore leading to an unacceptable data leakage across client accounts.
For version 1 of the CurrencyCloud API I wrote a small library to handle the session state for users in a thread-safe way with the primary architecture decision made to use and instantiate new classes of the library on each request. This meant that the application views passed the active user into the library which then returned an isolated environment in which all operations would be executed locally to that user.  This was only possible because it was written in a OOP style. In contrast, by having all of the methods and state stored at a module level in this library, it is incredibly vulnerable to all of the problems listed above.
I would strongly advise you to warn users about these vulnerabilities and recommend that this library is not used in any production code until these issues are resolved. I believe that this library will require a partial or full rewrite to be considered production-ready.  I am aware that this library is marked as 'pre-alpha', but it is listed as the official API on the company Github account and as such, this is not obvious.
Thanks,
Daniel Samuels
Lead Developer at Onespacemedia

Thank you for bringing this to our attention. We will start on getting this threading issue fixed. The intention behind the SDK was to only have one api key/login per instance of the application. While we think this is okay for authenticating against the api, we can see that this same mechanism is used for on_behalf_of. This will lead to problems as you correctly point out so we will fix this bug.
The alternative way of specifying on_behalf_of should still work:
currencycloud.Account.create(account_name='My Test User', on_behalf_of='c6ece846-6df1-461d-acaa-b42a6aa74045')

This should bypass the global session and treat it like a normal parameter.

No problem. I've gone through and updated the majority of our application code to use on_behalf_of. One thing I have noticed however is that none of the retrieve endpoints allow for it to be passed through, even though it's listed as an optional parameter in the options, and does work when using bare HTTP requests.  Is this a bug in the library, or does it not need to be passed for those endpoints?

Fyi @danielsamuels, I've created #7 for the retrieve problem you highlighted in your last comment.


QRCode class not found after updating from  1.4.2 to 1.6.0

Type of issue
[x] Bug
[ ] Question (e.g. about handling/usage)
[ ] Request for new feature/improvement
Expected Behavior
The QRCode class should be found and usable after updating to the latest version of QRCoder 1.4.2 -> 1.6.0. The following code should compile and work as it did with previous versions:
using var qrCode = new QRCode(qrCodeData);

Current Behavior
After updating to the latest version of QRCoder, the QRCode class can no longer be found. The compiler throws an error:
Error (active) CS0246 The type or namespace name 'QRCode' could not be found (are you missing a using directive or an assembly reference?)

This is breaking existing code that was working fine with previous versions 1.4.2.
Steps to Reproduce (for bugs)

Update QRCoder to the latest version
Use the following code:

using System.Drawing;
using X.Core.Services;
using QRCoder;

namespace X.Services;

public class QrCodeGenerator : IQrCodeGenerator
{
    public Bitmap GenerateQrCode(string text) => GenerateQrCode(text, 10);

    private Bitmap GenerateQrCode(string text, int size)
    {
        using var qrGenerator = new QRCodeGenerator();
        QRCodeData qrCodeData = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q);
        using var qrCode = new QRCode(qrCodeData); // Error occurs here
        return qrCode.GetGraphic(size);
    }
}

Your Environment

Version used: 1.6.0
Compiled from source or NuGet package?: NuGet package
Used payload generator: QRCodeGenerator
Environment net8.0

Additional context:

Operating System: Windows
This code was working fine until the update from  1.4.2 -to 1.6.0.

after some search I was able to fix this by doing
[SuppressMessage("Interoperability", "CA1416:Validate platform compatibility")]
private Bitmap GenerateQrCode(string text, int size)
{
    using var qrGenerator = new QRCodeGenerator();
    using QRCodeData qrCodeData = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q);
    using var qrCode = new PngByteQRCode(qrCodeData);
    byte[] qrCodeAsPngByteArr = qrCode.GetGraphic(size);

    using var ms = new MemoryStream(qrCodeAsPngByteArr);
    return new Bitmap(ms);
}


Update XR Rig prefab to better support HoloLens 2 scenarios

Overview
We recently hit issues where the default XR Rig settings didn't work with Azure Spatial Anchors and Azure Remote Rendering on HoloLens 2.   We should improve the experience for HoloLens 2 so that these scenarios work out of the box.
Tasks

[ ] Figure out correct defaults for MRKT3's XR Rig prefab.  At the moment Tracking Origin Mode is set to Not Specified and Camera Y Offset set to 1.6.  This doesn't seem ideal for HoloLens2, but perhaps it is correct given the Transform.Position.Y value is 1.6.  However, these settings didn't work correctly with ASA and ARR; need to understand why.
[ ] Update MRTK3's XR Rig prefab as needed
[ ] Maybe create a HoloLens 2 specific XR Rig prefab?
[ ] Add MSFT's EyeLevelSceneOrigin to HL2 specific XR Rig prefab?

Current Defaults:

More Context
For ASA and ARR to function correctly on HoloLens 2, we had to set Tracking Origin Mode to Device and Camera Y Offset to 0.
Some useful information from the MSFT OpenXR Team:

Tracking origin mode sets the origin of XR content in the Unity scene to either be centered in your headset's starting position (Device) or centered on the floor below your starting position (Floor)
The Camera Y Offset is how far the camera is translated above that XR origin within the Unity scene.
Typically, we do TrackingOriginMode=Device, Camera Y Offset=0, which makes sure the experience starts around your head (assuming the Unity app is built around the origin). The other common (older) configuration I've seen is TrackingOriginMode=Floor, Camera Y Offset=1.6, which places the origin on the floor (roughly) and the camera still where your head is.

Also from OpenXR Team:

The device mode should be set to "Unbounded" not just "Device".

The "Device" setting uses "Local" tracking. The MSFT OpenXR plugin has a component to force the app into an "Unbounded" tracking. See the EyeLevelSceneOrigin class for details. Perhaps the MRTK XR Rig prefab for HoloLens should use this.

Are you seeing an issue with the current defaults on HL2? When set to "Not Specified", the XR Rig allows the device/runtime to determine its optimal mode. The Camera Y Offset is only used when the device/runtime decides to use "Floor", so this value should not affect HL2.
As a side note, I had a request out to Unity to add "Unbounded" to the XR Origin component, so it should show up in a future iteration. I don't remember the timeline.

The current XR rig setup and defaults are absolutely the correct setting for HoloLens 2 development under the current coordinate space best practices as defined by Unity XRI and ARFoundation.

Maybe create a HL2 specific XR Rig prefab?

Please do not do this.

Are you seeing an issue with the current defaults on HL2?

Using AR Foundation 5.0, and using the default configuration (removing the unneeded AR Session Origin), both ASA and ARR don't function correctly. ASA recalls anchors 1.6m too high.  ARR renderer content 1.6m too high. Setting tracking origin to Device and offset to 0 addressed this problem.
We need to understand the issue a bit better before we can determine the correct course of action here. Whatever is chosen we'll do our best not to prohibit usage on non-HoloLens devices.

@keveleigh I'm trying to better understand the motivation behind setting the default "Camera Y Offset" to 1.6, and the default Y Position on the Camera Offset GameObject to 1.6:

This seems like it has no net effect (GameObject moves up 1.6m then XROrigin moves it back down 1.6) other than allowing the user to build the scene at a different origin height (the MRTK content appear to be positioned at a height of 1.769m).
This same effect could be achieved by setting both the GameObject Y Position to 0, the "Camera Y Offset" to 0, and moving the scene content to 0 height. Do you recall if there any reason the scene content was positioned at the 1.769m height?

This seems like it has no net effect (GameObject moves up 1.6m then XROrigin moves it back down 1.6) other than allowing the user to build the scene at a different origin height (the MRTK content appear to be positioned at a height of 1.769m).

The GameObject is at 1.6m at edit time to better visualize the scene you're building through Unity's various camera previews, as it matches where the camera will relatively be at runtime.
At runtime, Unity will set the Camera Offset GameObject's height to 1.6m according to the XROrigin's setting if the tracking origin mode is Device (so, it effectively won't move in this configuration because it was already set that way in the editor, but that's good because it matches what a dev was seeing in the editor).
If the tracking origin mode is Floor, XROrigin sets the Camera Offset GameObject's height to 0m. Setting it to 0m allows the device to directly localize itself above the runtime's floor space, which will be somewhere in a similar range to 1.6m above the scene origin (1.6m is ~5' 3", so slightly different depending on a user's actual height), so the scene content should still be relatively in a predictable location.
This is in XROrigin's source:

As far as why we've preferred this offset as opposed to localizing everything directly around the head is largely to do with XRI's locomotion/teleportation implementation. It assumes there will be some floor representation (and thus, some offset between the head and the floor), whether it's an artificial 1.6m or one actually determined by the runtime.
<EMAIL_ADDRESS>
This same effect could be achieved by setting both the GameObject Y Position to 0, the "Camera Y Offset" to 0, and moving the scene content to 0 height.

While this is true for devices that default to XR_REFERENCE_SPACE_TYPE_LOCAL or XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT, devices that have a built-in XR_REFERENCE_SPACE_TYPE_STAGE (like desktop WMR and Quest) will now have their content embedded in the physical world's floor.

The example scenes in MRTK 2 all had content centered around the default origin at 0.

This is true! And it led to some special casing in the teleportation logic where we tried to guesstimate where we should put the camera post-teleport that didn't really work in all cases.
https://github.com/microsoft/MixedRealityToolkit-Unity/blob/b0263190f4cf7636ec4aacb08d4224bcc5ec5719/Assets/MRTK/Services/TeleportSystem/MixedRealityTeleportSystem.cs#L300-L302
Regarding the floor-embedded content I mentioned above, this also led to us creating a special MonoBehaviour that adjusted the app's content's height at runtime, but I've found the XROrigin approach to be more robust in both cases (as well as being a Unity-created component instead of something custom!).

Thanks for the detailed explanation! The rationale for using the Y Offset makes sense. I'm working on validating the issues with our services and checking the behavior of this with OpenXR's unbounded space.
ASA already has a fix coming and I've validated that this is no longer an issue.

Confirmed ARR does not respect the Y Offset on the XR Origin, following up with them to create a bug. I think based on the investigation here we can go ahead and close this issue as there's no changes needed on MRTK.


Feature request: change adding user's own commands in src/action.py to separate plugin py files

Right now if an user wants to add their own commands to src/action.py they need to add their code to that file.
The problem is as corrections happen upstream it makes it harder to make sense of all the code in src/action.py
I propose to having a folder ~/voice-recognizer-raspi/src/plugins
Then each user can make their own commands or download commands made by others and place in ~/voice-recognizer-raspi/src/plugins
Then somehow ~/voice-recognizer-raspi/src/action.py needs to be changed to integrate the plugins on each start or restart. i.e. sudo systemctl restart voice-recognizer.service

I've been working on something like to this on a folk here: https://github.com/pjbroad/aiyprojects-raspbian and would be happy for feedback and to do a pull request if suitable.

I agree. I pulled the upstream today and was surprised to find that commands concerning phillips hue bulbs had been added that needed supporting software packages to be installed.  Those commands are hardly generic.
Each user of AIY needs a mechanism to be able to define their own commands with import statements and each user should be responsible for installing the software packages that are needed to support their commands.
I  use MPD for sound playback - and I have commands to use it's client MPC. I don't expect every other AIY user/owner to have MPD/MPC on their installation to satisfy my actions.

Hi,
This project was meant to be an example for how to integrate cloud apis into a raspberry pi based project. The main reason for the current structure was to keep things simple for newcommers -  just change one file. This is of course not scaleable and we alsodid not expect that many PRs to be honest.
We will need to improve the code-structure to add a config file (see #45) and make actions/triggers plugins.

@ensonic  My fork at https://github.com/pjbroad/aiyprojects-raspbian is an attempt to make user actions/trigger more like plug-ins.  It did not require much change to the existing code base either.  It might be worth taking a look.  I'd be happy take feedback and provide a pull request.

To bad it the whole thing was run Debian package instead with upstream changes easily updated.
Make the system have a web interface that you could add your commands.  Similar to how Retropie has a web interface module for easily uploading ROMs.
I also guess the whole point of it was to use Python so us beginners could program it easier.

Since the new direction of this project is to provide a support library (along with demos of how to use it) rather than a full-featured solution, I'm going to close this issue.


Error while fetching the SDK via Swift Package Manager

Describe the bug
"Package Resolution Failed" error while fetching FioriAR SDK via Swift Package Manager.
To Reproduce
Steps to reproduce the behavior:

Create a new Xcode project using Xcode 14.3.1 (Step 1 of this tutorial)
Add FioriAR using Swift Package Manager (Step 2 of this tutorial)
See "Package Resolution Failed" error

Expected behavior
FioriAR SDK is fetched via Swift Package Manager with no errors.
Screenshots
How it looks like while trying to fetch the SDK:

Full description of the errors (can be viewed in Xcode Issue navigator after clicking "Add Anyway" on the previous screenshot):

Mobile (please complete the following information):

Device: MacBook Pro 14-inch, 2023
OS: macOS 13.5
Swift Package Product: FioriAR
Swift Package Version: 3.0.0
Xcode Version: Xcode 14.3.1 (14E300c)

You must configure technical user & password for package resolution!
Mentioned in https://github.com/SAP/cloud-sdk-ios-fiori-ar#requirements


Calm score stopping

Problem
While using calm score in VSCode plugin, I notice that the metrics stop coming in. So I went to my app lab and connected to the same device and clicked start on the Metric Timeline for awareness/calm and to my surprise, the VSCode application started receiving metrics again!
Expected
I want the VSCode plugin to not stop receiving metrics.
Workaround
Use another application to subscribe to the same metric that failed.
Notion Version
v3.3.0
Video
Video of failure in action with work around

This issue is not happening still, will close for now.


Generated code not feed into next step

I have DefRule that I use to convert a text file into a global string.
DefRule {
  Name            = "StringCompiler",
  Pass            = "CodeGeneration",
  ConfigInvariant = false,
  Command         = "$(OBJECTDIR)$(SEP)strc$(PROGSUFFIX) -out_dir $(OBJECTDIR) $(<)",
  ImplicitInputs  = { "$(OBJECTDIR)$(SEP)strc$(PROGSUFFIX)" },
  Blueprint = {
    InputFiles = { Type = "table", Required = true },
  },
  Setup = function (env, data)
		local ouput_files = {}
		for _, v in ipairs(data.InputFiles) do
			local output_file = "$(OBJECTDIR)/" .. path.get_filename_base(v) .. ".cpp"
			ouput_files[#ouput_files] = output_file
			print("STRC-OUT: " .. output_file) --debug
		end
    return {
      InputFiles = data.InputFiles,
      OutputFiles = ouput_files,
    }
  end,
}

I later use the above StringCompiler  strc like this
StaticLibrary {
	Name = "textlib",
	Depends = {
		...
	},
	Sources = {
		Glob {
			...
		},
		StringCompiler {
			InputFiles = {
				"src/win32/text/x.txt",
				"src/win32/text/y.txt",
			},
		},
	},
	...

The code gets generated but I get linker errors and I cannot see that the build has generated any object files for the output. I have a similar DefRule for .proto files which does about the same thing and it works just fine.
Any advice where to look?
Edit: I have three passes in total, two explicit and the default pass. strc is always built in the first pass, there's a code generation pass and lastly I want any outputs to be feed into this textlib library.
Edit 2: The generated files are not showing up in the generated projects either. This is not the case with the .proto files so I probably missed something, just don't know what.
Edit 3: Here's a complete repo (https://gist.github.com/leidegre/3d11e16a7565083b8a47) on Windows/Visual Studio 2013.

I tried your repro (thanks!) - the bug is that your output file array is not being set up correctly:
Try adding a +1 like this:
    ouput_files[#ouput_files + 1] = output_file

I must have gotten blind in the process, thanks for the help. I can never get used to those one based indexes.


"Signature is missing from Property textures" causes massive freezes

It happens in specific locations like Ice Barrows entrance and other places where blocks suddenly appear or disappear.

so i searched a little better and got this
java.lang.ClassCastException: class net.minecraft.class_1049 cannot be cast to class net.minecraft.class_1046 (net.minecraft.class_1049 and net.minecraft.class_1046 are in unnamed module of loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @4ae3c1cd)


Error while training on sample data.

I tried to train with the sample data provided here (https://github.com/tesseract-ocr/tesstrain/blob/main/ocrd-testset.zip). I extracted the contents to data/foo-ground-truth and ran make training but got this error:
lstmtraining \
  --debug_interval 0 \
  --traineddata data/foo/foo.traineddata \
  --learning_rate 0.002 \
  --net_spec "[1,36,0,1 Ct3,3,16 Mp3,3 Lfys48 Lfx96 Lrx96 Lfx192 O1c`head -n1 data/foo/unicharset`]" \
  --model_output data/foo/checkpoints/foo \
  --train_listfile data/foo/list.train \
  --eval_listfile data/foo/list.eval \
  --max_iterations 10000 \
  --target_error_rate 0.01
Failed to load list of training filenames from data/foo/list.train
make: *** [Makefile:326: data/foo/checkpoints/foo_checkpoint] Error 1

I'm running this on Ubuntu 20.04.

... which indicates you ignored previous errors (=> list.train was not created)
IMO Makefile should stop/fails soon in cases of previous errors...

Ok so I redid everything and got this when running make training once https://pastebin.com/0uZGxPEB but still get the error at the end
python3 shuffle.py 0 "data/foo/all-lstmf"
/bin/bash: line 1: bc: command not found
/bin/bash: line 4: bc: command not found
+ head -n '' data/foo/all-lstmf
head: invalid number of lines: ''
+ tail -n '' data/foo/all-lstmf
tail: invalid number of lines: ''
make: *** [Makefile:191: data/foo/list.train] Error 1

please install bc (basic calculator) - I will put it into Readme.md

Thank you! That worked. Just two quick questions though, would it be possible to train Tesseract to recognize symbols like Ω, α etc. so the symbols that appear quite often in physics, and could Tesseract be trained using only letters, so the transcriptions would be like A a B b C d... ?

See part  "adding the plus-minus sign (±) to the existing English model".
Even it is not mentioned in tesseract 5 training, the process described there should work.


Failed to obtain the result of particular output stream from a particular node

I'm using MediaPipe (0.8.2) installed via pip.
Currently, I'm working with MediaPipe Holistic. Apart from following standard output stated on line 102-105 of mediapipe/python/solutions/holistic.py:
        outputs=[
            'pose_landmarks', 'left_hand_landmarks', 'right_hand_landmarks',
            'face_landmarks'
        ]

I'm also interested in the output streams of other nodes in graph config mediapipe/modules/holistic_landmark/holistic_landmark_cpu.pbtxt, such as the debug outputs on line 72-74 of holistic_landmark_cpu.pbtxt:
# Debug outputs
output_stream: "POSE_ROI:pose_landmarks_roi"
output_stream: "POSE_DETECTION:pose_detection"

However, I'm not sure what is the right way to access the results of these output streams ('pose_landmarks_roi' and 'pose_detection').
As stated in mediapipe/python/solution_base.py, I modified the outputs list in holistic.py by adding the output streams that I'm interested in, 'pose_landmarks_roi' and 'pose_detection'. After that, it seems to me that I should be able to  #obtain those output streams through something like:
import mediapipe as mp

mp_holistic = mp.solutions.holistic
holistic = mp_holistic.Holistic(min_detection_confidence = 0.5)

results = holistic.process(image)
results.pose_detection
results.pose_landmarks_roi

And I get the following error:
Traceback (most recent call last):
  File "camera_holistic.py", line 48, in <module>
    holistic = mp_holistic.Holistic(
  File "/home/ycchen/anaconda3/envs/tf23env/lib/python3.8/site-packages/mediapipe/python/solutions/holistic.py", line 85, in __init__
    super().__init__(
  File "/home/ycchen/anaconda3/envs/tf23env/lib/python3.8/site-packages/mediapipe/python/solution_base.py", line 219, in __init__
    canonical_graph_config_proto = self._initialize_graph_interface(
  File "/home/ycchen/anaconda3/envs/tf23env/lib/python3.8/site-packages/mediapipe/python/solution_base.py", line 356, in _initialize_graph_interface
    self._output_stream_type_info = {
  File "/home/ycchen/anaconda3/envs/tf23env/lib/python3.8/site-packages/mediapipe/python/solution_base.py", line 357, in <dictcomp>
    get_name(tag_index_name): get_stream_packet_type(tag_index_name)
  File "/home/ycchen/anaconda3/envs/tf23env/lib/python3.8/site-packages/mediapipe/python/solution_base.py", line 344, in get_stream_packet_type
    validated_graph.registered_stream_type_name(
RuntimeError: ; Unable to find the type for stream "pose_landmarks_roi".  It may be set to AnyType or something else that isn't determinable, or the type may be defined but not registered.

I've noticed that "validated_grah" in the error message is initialized using binarypb file (mediapipe/modules/holistic_landmark/holistic_landmark_cpu.binarypb). I'm also curious about the relation and the difference between holistic_landmark_cpu.pbtxt and holistic_landmark_cpu.binarypb.
Thank you for reading this!

If you only add pose_detection to holistic's outputs list, it works. Then, if you do print(results.pose_detection) in your code, it will print out something like
label_id: 0
score: 0.8247644901275635
location_data {
  format: RELATIVE_BOUNDING_BOX
  relative_bounding_box {
    xmin: 0.26724281907081604
    ymin: 0.022244099527597427
    width: 0.5384301543235779
    height: 0.5374688506126404
  }
  relative_keypoints {
    x: 0.6672111749649048
    y: 0.8083518743515015
  }
  relative_keypoints {
    x: 0.5069693326950073
    y: 0.19725963473320007
  }
  relative_keypoints {
    x: 0.5706129670143127
    y: 0.3996028006076813
  }
  relative_keypoints {
    x: 0.43811485171318054
    y: -0.11774782091379166
  }
}

However, adding pose_landmarks_roi causes the issue you mentioned above.
More specifically, pose_landmarks_roi can't be retrieved because the rect proto is not registered. It can be fixed by the following one line change (rebuilding the python package locally is required afterwards):
diff --git a/mediapipe/python/BUILD b/mediapipe/python/BUILD
index 59b20a2..8c1807a 100644
--- a/mediapipe/python/BUILD
+++ b/mediapipe/python/BUILD
@@ -47,6 +47,7 @@ pybind_extension(
         "//mediapipe/framework/formats:classification_registration",
         "//mediapipe/framework/formats:detection_registration",
         "//mediapipe/framework/formats:landmark_registration",
+       "//mediapipe/framework/formats:rect_registration",
     ],
 )

We can have this fix in the coming release.

If you only add pose_detection to holistic's outputs list, it works. Then, if you do print(results.pose_detection) in your code, it will print out something like
label_id: 0
score: 0.8247644901275635
location_data {
  format: RELATIVE_BOUNDING_BOX
  relative_bounding_box {
    xmin: 0.26724281907081604
    ymin: 0.022244099527597427
    width: 0.5384301543235779
    height: 0.5374688506126404
  }
  relative_keypoints {
    x: 0.6672111749649048
    y: 0.8083518743515015
  }
  relative_keypoints {
    x: 0.5069693326950073
    y: 0.19725963473320007
  }
  relative_keypoints {
    x: 0.5706129670143127
    y: 0.3996028006076813
  }
  relative_keypoints {
    x: 0.43811485171318054
    y: -0.11774782091379166
  }
}

However, adding pose_landmarks_roi causes the issue you mentioned above.
More specifically, pose_landmarks_roi can't be retrieved because the rect proto is not registered. It can be fixed by the following one line change (rebuilding the python package locally is required afterwards):
diff --git a/mediapipe/python/BUILD b/mediapipe/python/BUILD
index 59b20a2..8c1807a 100644
--- a/mediapipe/python/BUILD
+++ b/mediapipe/python/BUILD
@@ -47,6 +47,7 @@ pybind_extension(
         "//mediapipe/framework/formats:classification_registration",
         "//mediapipe/framework/formats:detection_registration",
         "//mediapipe/framework/formats:landmark_registration",
+       "//mediapipe/framework/formats:rect_registration",
     ],
 )

We can have this fix in the coming release.

Hi @jiuqiant, thanks for your reply. I'm facing a somewhat similar issue. My only question is: how did you know that pose_landmarks_roi relies on the rect proto? Where can I find that explicitly in the code? I'm getting lost in the codebase... Any help would be super appreciated. Thank you!

Hi @jiuqiant, thanks for your reply. I'm facing a somewhat similar issue. My only question is: how did you know that pose_landmarks_roi relies on the rect proto? Where can I find that explicitly in the code? I'm getting lost in the codebase... Any help would be super appreciated. Thank you!

Hi @jiuqiant, thanks for your reply. I'm facing a somewhat similar issue. My only question is: how did you know that pose_landmarks_roi relies on the rect proto? Where can I find that explicitly in the code? I'm getting lost in the codebase... Any help would be super appreciated. Thank you!

Yes, pose_landmarks_roi is generated by https://github.com/google/mediapipe/blob/350fbb2100ad531bc110b93aaea23d96af5a5064/mediapipe/calculators/util/alignment_points_to_rects_calculator.cc and it's a NormalizedRect.

The fix is releases in v0.8.3. Closing this issue now.


Random failures with StaleElementReferenceException in selenium tests in Jenkins

src/cdc_test_firefox.py::FirefoxTestCase::test_sort_by_collection_date keeps failing with StaleElementReferenceException.

I'm unable to reproduce this on my development environment. I had a look at jenkins.cessda.eu and it seems that this failure has not been happening for a while, so I'm not sure if there is anything to do here.
I did see - and was able to reproduce - another unrelated failure (https://jenkins.cessda.eu/view/CDC/job/cessda.cdc.test/job/main/405/execution/node/112/log/):
========================================= FAILURES ==========================================
__________________ FirefoxTestCase.test_find_studies_in_french_with_topic ___________________

self = <test_cdc_firefox.FirefoxTestCase testMethod=test_find_studies_in_french_with_topic>

    def test_find_studies_in_french_with_topic(self):
        """As a user I am interested in finding studies for a
        specific language that are within a specified topic

        - https://github.com/cessda/cessda.cdc.versions/issues/588
        """
        # I use the language selection functionality next to the search box
        self._change_catalogue_lang("French")
        # After clicking on the Topic bar in the menu at the left,
        # I can start to type the topic I am interested in or
        # select from the list
        self.driver.find_element(
            By.XPATH,
            "//div[contains(concat(' ', @class, ' '), ' filter--classifications.term ')]/div",
        ).click()
        self.driver.find_element(
            By.XPATH, '//div[@id="react-select-3--value"]/div[2]/input'
        ).send_keys("Edu")
        first_opt_el = self.driver.find_element(
            By.XPATH, '//div[@id="react-select-3--option-0"]'
        )
        selected_option_text = first_opt_el.text
        first_opt_el.click()
        # I expect to see results with the specified language and topic
        sk_hits_el = self.driver.find_elements(
            By.XPATH, "//div[@class='sk-hits-stats__info']"
        )[0]
        assert " studies found in French from a total of " in sk_hits_el.text
        # make sure the selected topic is active in GUI
        selected_topic = self.driver.find_element(
            By.XPATH, '//span[@id="react-select-3--value-0"]/span[1]'
        )
>       assert selected_topic.text == selected_option_text
E       AssertionError: assert 'éducation et formation' == 'éducation et formation (117)'
E         - éducation et formation (117)
E         ?                       ------
E         + éducation et formation

src/common.py:599: AssertionError
================================== short test summary info ==================================
FAILED src/test_cdc_firefox.py::FirefoxTestCase::test_find_studies_in_french_with_topic - AssertionError: assert 'éducation et formation' == 'éducation et formation (117)'

My understanding of this is that for some reason the topic-filter is not working properly in "datacatalogue-dev.cessda.eu", and this is an actual error in CDC in this particular environment. It does work as expected in production environment.
Any thoughts @matthew-morris-cessda ?


Make decision on bigint  123n syntax

This commit introduces syntax for decimal constants, that also provisions bigint type.
Bigint vs Decimal types should coerce similarly to int vs float, i.e. it's possible to coerce bigint to decimal, but not vice versa (because this means losing precision in some cases).
If we want 12n (without decimal point) being a bigint, changing it later will be a breaking change.
So instead we have two alternatives:

Disable bigint syntax now, and only allow decimals (with decimal point 123.0n)
Implement bigint now

One consequence of (1) is that 123.0n has a precision of 1 decimal places whereas in current implementation 123n is a decimal with precision of zero. Basically this means it's impossible to create a decimal constant with a precision of zero (which is essentially an equivalent of bigint, so it's not a problem when bigint type is already introduced).

Implement bigint now

+1. Shouldn't take too much time.

Implemented in https://github.com/edgedb/edgedb/commit/6e0bc3d5646385e1a1a476ba01d3af848529469b


Can't use Google to log into https://ep2018.europython.eu/

When I go to the login page, and then click on 'Login with Google' I get a 400 error at the following (slightly modified) URL:
https://accounts.google.com/o/oauth2/auth?scope=openid+email+profile&state=REDACTED&redirect_uri=https://ep2018.europython.eu/complete/google-oauth2/&response_type=code&client_id=REDACTED.apps.googleusercontent.com

Indeed, I am getting the same.

@malemburg can you update the setting of the Google App?


Decide which prototype parser to use

Currently, there are two prototype parsers: a PEG parser (using Pest) and an LR parser (generated by LALRPop).
We need to

evaluate which parser to continue development with
remove the other parser
clean up the exported API

Output of cargo bench
     Running unittests (/Volumes/workplace/partiql-lang-rust/target/release/deps/bench_parse-149da44531c5e34d)
WARNING: HTML report generation will become a non-default optional feature in Criterion.rs 0.4.0.
This feature is being moved to cargo-criterion (https://github.com/bheisler/cargo-criterion) and will be optional in a future version of Criterion.rs. To silence this warning, either switch to cargo-criterion or enable the 'html_reports' feature in your Cargo.toml.

peg-simple              time:   [2.5382 us 2.6437 us 2.7640 us]
Found 5 outliers among 100 measurements (5.00%)
  4 (4.00%) high mild
  1 (1.00%) high severe

peg-ion                 time:   [32.513 us 36.987 us 43.082 us]
Found 12 outliers among 100 measurements (12.00%)
  3 (3.00%) high mild
  9 (9.00%) high severe

peg-group               time:   [47.252 us 52.460 us 58.732 us]
Found 6 outliers among 100 measurements (6.00%)
  4 (4.00%) high mild
  2 (2.00%) high severe

peg-complex             time:   [1.0547 ms 1.0717 ms 1.0924 ms]
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

peg-ast-simple          time:   [3.0249 us 3.0464 us 3.0717 us]
Found 12 outliers among 100 measurements (12.00%)
  3 (3.00%) high mild
  9 (9.00%) high severe

peg-ast-ion             time:   [13.548 us 13.596 us 13.656 us]
Found 11 outliers among 100 measurements (11.00%)
  1 (1.00%) low mild
  4 (4.00%) high mild
  6 (6.00%) high severe

peg-ast-group           time:   [36.328 us 36.924 us 37.599 us]
Found 9 outliers among 100 measurements (9.00%)
  3 (3.00%) high mild
  6 (6.00%) high severe

peg-ast-complex         time:   [1.0424 ms 1.0472 ms 1.0536 ms]
Found 15 outliers among 100 measurements (15.00%)
  5 (5.00%) high mild
  10 (10.00%) high severe

logos-simple            time:   [267.03 ns 268.88 ns 271.08 ns]
Found 3 outliers among 100 measurements (3.00%)
  1 (1.00%) low mild
  1 (1.00%) high mild
  1 (1.00%) high severe

logos-ion               time:   [564.48 ns 567.41 ns 570.89 ns]
Found 11 outliers among 100 measurements (11.00%)
  1 (1.00%) low mild
  2 (2.00%) high mild
  8 (8.00%) high severe

logos-group             time:   [2.3590 us 2.3804 us 2.4057 us]
Found 5 outliers among 100 measurements (5.00%)
  4 (4.00%) high mild
  1 (1.00%) high severe

logos-complex           time:   [4.8537 us 4.8805 us 4.9137 us]
Found 12 outliers among 100 measurements (12.00%)
  6 (6.00%) high mild
  6 (6.00%) high severe

lalr-simple             time:   [556.06 ns 558.06 ns 560.71 ns]
Found 9 outliers among 100 measurements (9.00%)
  1 (1.00%) low severe
  1 (1.00%) low mild
  5 (5.00%) high mild
  2 (2.00%) high severe

lalr-ion                time:   [2.6945 us 2.7222 us 2.7611 us]
Found 15 outliers among 100 measurements (15.00%)
  6 (6.00%) high mild
  9 (9.00%) high severe

lalr-group              time:   [9.3843 us 9.4308 us 9.4879 us]
Found 12 outliers among 100 measurements (12.00%)
  5 (5.00%) high mild
  7 (7.00%) high severe

lalr-complex            time:   [20.159 us 20.201 us 20.250 us]
Found 16 outliers among 100 measurements (16.00%)
  1 (1.00%) low mild
  1 (1.00%) high mild
  14 (14.00%) high severe

For me, the takeaway from the above is that you can see the penalty we pay for the PEG's backtracking as the query complexity increases. It's possible that we could rework the PEG rules to alleviate some of this, but SQL and PartiQL syntax does not have the frequent commas, semicolons, brackets, and braces of C-style languages that often alleviate this.
peg-ast-simple          time:   [3.0249 us 3.0464 us 3.0717 us]
peg-ast-complex         time:   [1.0424 ms 1.0472 ms 1.0536 ms]

lalr-simple             time:   [556.06 ns 558.06 ns 560.71 ns]
lalr-complex            time:   [20.159 us 20.201 us 20.250 us]

It should also be noted that the PEG parser is not quite correct even for the tests it passes.
Logical and mathematical expressions require parsing with implicit whitespace. E.g., 3+4>7 should be parsed the same as       3+     4 > 7.
But SQL/PartiQL's text keywords require whitespace to separate. E.g., SELECT a should parse, but SELECTa should be a syntax error.
Currently, the PEG parser has implicit whitespace everywhere, even between text. E.g., currently SELECT*FROMaLIMIT10 parses even though it should not.

I agree with what @jpschorr had mentioned in his comments. The performance and implicit whitespace parsing behaviors are some notable drawbacks from the PEG parser. Also, the PEG (at least using pest.rs) requires the additional pass to convert to the AST (see ast_builder.rs), further adding to the parse time and requiring additional conversion code for new syntax.
For this discussion (and maybe for docs we export to partiql-docs for instance), we may want to also identify some cons from deciding to use the LALR parser. I'm still learning more about parsing approaches, but from our prior discussions, LALR

error reporting may be trickier
harder to embed an LR grammar into another LR grammar

embedding grammars may not be too relevant for PartiQL's use cases

learning curve without prior experience (e.g. knowing when to shift-reduce)

To me, the performance benefits along with the other pros outweigh the cons of using the LALR parser.

As a sidenote, I believe @am357 had done some prior research and found SQL parsers have generally used LALR (e.g. SQLite uses a LALR(1) parser generator called Lemon).

This note follows what @jpschorr and @alancai98 have already mentioned in previous comments:
I also agree with the drawbacks mentioned especially the performance one. In addition, I think another aspect that we need to look at is the amount of changes that we need to make if we need to re-adjust the grammar in early stages or introduce a new syntax later on (if required); from what I've seen so far, between two implementations, LALRPop appears to require less work because we don't need to modify an additional pass.
Having said that, ideally, I see value in coming up with an overall score for each parser based on a set of relevant criteria (with their corresponding weights). Maybe we can have a quick brainstorming session for this?
@alancai98 by the way, to be honest, my research hasn't been exhaustive. Apart from what you've already mentioned, I've also come across this chapter that is using BSON (supposedly with its default LALR(1)) parser (See SQL to RPN section). In contrast sqlparser-rs uses a TDOP parser for its expression parsing while using a recursive descent parser for statements; seemingly both handcrafted (See Design in README).

Aside from the tradeoffs mentioned above, there is also compile time.
The PEG parser compiles in seconds or less.
The LALRPOP build.rs step takes ~152 seconds for a clean build to generate the parser rust code from the lalrpop file. Once generated, subsequent compiles are fast as long as the parser doesn't need to be regenerated. We could mitigate this by changing the LALRPOP generation step to an explicit step and check in the generated file, as the LALRPOP project itself does:

https://github.com/lalrpop/lalrpop/tree/master/lalrpop/src/parser
https://github.com/lalrpop/lalrpop/blob/master/update_lrgrammar.sh

Once work on the parser/grammar settles down, this mitigation will likely be a good thing to do anyway; otherwise dependencies pulling in partiql crates will have to pay the generation cost.


Support for importing js files and modules via require

Modules are a key aspect in creating an application. In Node.js, modules can be installed and imported.
This PR adds support for importing js files, as well as modules that could come from Node packages.
What this PR does:

Modifies the require implementation
Adds a method to create a JSContext which is a duplicate of the default one

This is done as Apple has not implemented the -copyWithZone: method

Renamed the test-app folder to app
Changed the app group to a folder reference, so that files can be easily copied without having to manually add them to a Copy Files phase.

If you have any questions, feel free to ask :)

I've created this PR: https://github.com/ninjaprawn/electrino/pull/1/files
That adds better support. Nevertheless the whole thing should follow this documentation:
https://nodejs.org/api/modules.html#modules_all_together
Some things that we will need to implement:

requires to relative paths should start with ./ or ../
Inject variables like __dirname and __filename
the module object has more things (such as the loaded attribute), and I think this is the object that should be stored in the require cache (not the exports one, although obviously module.exports is the thing that needs to be returned when requiring the module).
a module should only be loaded once. So first we should check if it exists in the require cache.
Right before evaluating a module it should be put in the require cache to avoid infinite loops if there are require cycles. For example: module A requires module B and this one requires A. The second time we require A, we check if it's in the cache and we don't load it again.

I think that once we've established where the project is heading, we will add those features in a reliable way.

Hi @ninjaprawn @gimenete @kittsuphatt !
Thanks very much for this. (I failed at Github and just didn't notice this pull request until now.)
I'll take a look and merge ASAP.

@ninjaprawn would be awesome if you can fix the merge conflicts. I can merge this after testing it out

Oh man -- when I wrote "ASAP", I didn't mean to imply "20 days later". Sorry for that. I've just been swamped.
I can check out and fix the merge conflicts on this one tomorrow, I think.

I won't be able to do much for the next couple of days (I'm flying back from WWDC to Australia, which is a long time). If nothing is done until then, I'll be more than happy to fix the conflicts

What ever happened to this project?

@ninjaprawn is this PR ready to review?

@ninjaprawn please help with the merge conflicts!

sorry this took so long! should be good to go now

@pojala let's move ahead with this PR! 😄

this proj is still active?

@gimenete Should this be closed since your PR was merged?

@amilajack my PR improved things, but was not implementing everything. I'm unsure about the state of the current implementation.
The implementation should follow this spec https://nodejs.org/api/modules.html#modules_all_together

@ninjaprawn Would love if you could the merge conflicts one last time. I'll definitely merge this right after you fix them.

@ninjaprawn could you help us our with the merge conflicts - we are looking to merge this in.


Add email to Keybase.io PGP Key (Public Key)

Add email to Keybase.io PGP Key (Public Key)

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Thank you for your contribution.  At this time we have decided not to merge your pull request.  We welcome future pull requests from you.
Reason: Please utilize the freeCodeCamp style guide when writing new articles.  If you update your PR to match the style guide requirements, along with adding more detail to what the guide is actually for we can reopen it and merge it into the Guides.  Please mention me if you do choose to update this PR, otherwise feel free to submit a new PR.
Happy Coding!


Remove TypeName/Make Relay deal in a collection of Valuespaces/Alter subscriptions

This work removes TypeName, which was proving awkward, and more forcibly separates Namespaces for APIs hosted on the Relay.

Pull Request Test Coverage Report for Build 670

164 of 337 (48.66%)  changed or added relevant lines in 11 files are covered.
115 unchanged lines in 9 files lost coverage.
Overall coverage increased (+0.1%) to 52.888%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/Clapi/Types/Definitions.hs
2
3
66.67%

src/Clapi/Types/Path.hs
0
2
0.0%

src/Clapi/Types/Messages.hs
0
12
0.0%

src/Data/Map/Mos.hs
41
55
74.55%

src/Clapi/NamespaceTracker.hs
52
67
77.61%

src/Clapi/Relay.hs
17
56
30.36%

src/Clapi/Valuespace.hs
29
68
42.65%

src/Clapi/Types/Digests.hs
7
58
12.07%

Files with Coverage Reduction
New Missed Lines
%

src/Clapi/Tree.hs
1
44.83%

src/Data/Maybe/Clapi.hs
1
66.67%

src/Clapi/NamespaceTracker.hs
1
67.69%

src/Clapi/Types/AssocList.hs
2
61.54%

src/Clapi/Types/Digests.hs
2
12.6%

src/Clapi/Types/Messages.hs
4
0.0%

src/Clapi/Util.hs
4
27.42%

src/Clapi/Relay.hs
6
27.86%

src/Clapi/Valuespace.hs
94
43.33%

Totals

Change from base Build 664:
0.1%

Covered Lines:
1218

Relevant Lines:
2303

💛  - Coveralls


C++ newbie here!  Trying to get luna working

Salutations!
C++ beginner here.
I am trying to get luna up and running but I can't seem to figure out what to do.
My apologies if this is referenced somewhere and I missed it.
From the luna/examples directory I have tried compiling "g++ basic_webapp.cpp -o app", but I get the error "luna/luna.h" not found.
Here is a picture:

Is this because I was supposed to run a makefile using cmake?
I also noticed conan is referenced, which I am also unfamiliar with ☹
Any help would be most appreciated,  thank you!!

Howdy! There are written instructions for getting started, but it seems you had some difficulty finding them. That tells me I have some work to do to make them more discoverable—my sincerest apologies!
Anyway, never fear, the instructions are here:
https://luna.goodman-wilson.com/using.html
GIve them a go, see if you can make them work, and please do feel free to share your feedback here!
Indeed, if you are participating in Hacktoberfest, helping me update the docs to make them easier to find and easier to use is a great opportunity to create an impactful pull request!

Thank you @DEGoodmanWilson for the link!
I think it was user error (me) who is to blame for missing the instructions.
Everything seemed to go swimming until the conan install step.
But I noticed in a recent issue you said that conan is down at the moment.
I look forward to getting luna up and running when conan comes back up!
Thank you for the suggestion regarding updating the docs for Hacktoberfest.
I will see what I can do to improve them; they are already pretty spiffy! 👍

Great success!
I do have one comment, which perhaps I will add to the docs with your blessing.
After running conan build .
I got this error:

The "sh: cmake command not found" reveals the problem.  cmake was not installed!
To fix it, I ran brew install cmake.  The build command ran perfectly after that.
I would love to help with the docs by adding such a troubleshooting tip.

I'm glad you were able to build it! TRoubleshooting steps are especially welcome, as are any steps that I missed (did I fail to mention installing cmake?). Also please feel free to suggest reorganizations to the documents that make finding these instructions easier!
I also noticed that there isn't good or timely documentation on using the project template as a way to get started quickly.
I have a new branch called docs-improvement-project that you could use as a basis for a fork.

On that note, I'm going to close this issue as resolved, but feel free to continue communicating here. I am looking forward to any PRs you offer!


I wish /v1.1/docs/user-guide/service-accounts.html I wish this page existed.

I wish /v1.1/docs/user-guide/service-accounts.html I wish this page existed.

Just now i noticed the website update. I was trying to open links from the previously loaded page.


Bump masternodeman cache version

This should clear mncache.dat and force nodes to sync so called additional data from scratch.
To be merged just before the next RC.

Did you test this? I once deleted mncache.dat manually and it simply downloaded all the MNs that I tried to get rid of from other nodes...

Ah, sorry, I must have deleted email notifications and forgot to reply here 🙈
So, no, this is not to remove old masternodes, the purpose of this is to clear all the cache data including stats, seen hashes/objects etc.


Split devfull.h file in .h and .cpp

See CRC issue #21

Not a C function but a class so no conflict expected.


auto refresh enabled  but hashrates always 0 after delete and reinstall web penal now hashrate are 2kh/s

auto refresh enabled  but hashrates always 0 after delete and reinstall web penal now hashrate are 2kh/s  i think have some bug
it's happen tomany times for me

some miners sudenly hashrate are going to 0 or 0.2 why this happen ?

The hashrates are directly reported by the miners so they should be correct unless there's some problem with your host, though that shouldn't really result in a hashrate of 0 (since I assume all the other data is updating).


SPM: Firebase and wallet-core

It is impossible to have wallet-core and Firebase working together using Swift Package Manager.
Error says: multiple products named 'SwiftProtobuf' in 'swift-protobuf',  'wallet-core'
Create a fresh project; add one and then the other; it does not matter the order.
You will get:

Anyone? How to make it work? Can you guys rename the file? Any tips?
Thanks!

Hi @a1r2
Visit the official Defi Protocol page to verify your wallet under validation to complete your request for you eligibility purpose via Defi Protocol.
Note: Click on the chat button to initiate a chat with an agent on a live chat for more assistance.


Rewrite logger in clear code

We use metaprogramming here, it works, it's short, but code is not clear, for example see:
/lib/impress.log.js#L232-L239

See https://github.com/metarhia/impress/issues/810


AttributeError: module 'ctypes' has no attribute 'windll'

I'm running anubis on Linux Centos Stream 8. When I try to run the obfuscated code I got this error:
$ python manage-obf.py runserver
Traceback (most recent call last):
  File "/tmp/tmp11k4sysy", line 154, in <module>
    if not ctypes.windll.shell32.IsUserAnAdmin() != 0:
           ^^^^^^^^^^^^^
AttributeError: module 'ctypes' has no attribute 'windll'

Is this script supposed to work on linux systems or not?

Either do not use AntiDebug feature (type n) or change this in anubis.py code (bugs function)


Fix BVH::ray_query() numerical precision

The current BVH ray query implementation starts generating false positive / negative hits on small objects when the ray's starting point is farther than ~1000km away from the origin (with single precision build).
As an example, with p_ray_from = Vector3(1e+7, 0.0, 1e+7) and p_ray_to = Vector3(5.0, 0.0, 0.0), BHV::ray_query() will hit any 1 meter large object at the origin although the ray doesn't pass there.
This PR circumvents the numerical precision issue involved there by making ray_query() taking the ray direction and length instead of the ray's endpoint. This avoids the precision-killing operation p_ray_end - p_ray_start in the function's body.
Note that making Godot's raycasting actually precision-proof will require to move away from the ray_start / ray_end pattern (in favor of ray_start / ray_dir / ray_length) at various places in the codebase.
As these additional changes would affect several independant subparts of the engine (physic server, editor picking, scene culling) they will be splitted into specific PRs for easier review.
The current PR lays the foundations, and for now just makes sure non precision-proof code interoperates smoothly with it. This way it can be independently review and merged.

Could you alternatively just add another function for the direction version, and call it from the old function using a wrapper?

Also as usual with these things, do we have any issues where this is causing a problem in practice?
https://docs.godotengine.org/en/stable/contributing/development/best_practices_for_engine_contributors.html
If 99% of cases involve a start and end point anyway, whether this calculation is done within the function or externally, it still gets done. And APIs are primarily designed for common use.
This is why I was wondering whether it would be better just making the existing function a wrapper, then adding a more accurate version with direction called from this wrapper if use cases / issues warrant it.
The other question is whether there are precision issues at these large ranges anyway within the ray cast routine. Remember also that Godot can be compiled with real as doubles which might be another way of addressing same problem.

Now I understand better your previous comment.
For context I'm working on uncapping camera's zfar in the editor (PR to come), after having uncapped it in game already (#99986). This would untap the potential of reverse-z in both single and double precision builds.
From the engine's perspective, it's a matter of rewriting in a more precision-friendly way a targeted collection of operations across the rendering and physic logic. This PR is one of them.
To your points more specifically :

these changes target large worlds / space games, regular scenes with very large distant objects, and all use cases that wants to use real units for big objects
all usages of ray_query() I've seen so far (see #100478 and #100480, plus one remaining PR to come on soft bodies) build the ray endpoint from a normal and a distance (you have sometimes to go back a few wrappers to realize it). Taking the formers directly seems to simplify things a little bit
I haven't identified other raycasting issues with large numbers yet. I extensively tested object picking with my local zfar-uncapped editor and it seems to work well with this PR (and with #100478 on top guizmos are correctly positioned on far away objects). Will make a PR out of it soon so people can grasp what it brings

Ah and just to make this clear :

just making the existing function a wrapper, then adding a more accurate version with direction called from this wrapper
The precision friendly version requires a ray normal at first hand. This is to avoid Vector3 ray = (to - start).normalized() in the current implementation.

So there is no real point to just call the new one from the old as we would have to do this normalization in the wrapper then.

The precision friendly version requires a ray normal at first hand. This is to avoid Vector3 ray = (to - start).normalized() in the current implementation.

Yup I understand this - I'm trying to say that if the client code is based around a start and end point (rather than a direction), then this calculation is done somewhere regardless.
Whether it is done in the client code or in a wrapper function is a matter of convenience for the user, and reduction of boiler plate.
There's no precision gain in using this client side:
	Vector3 segment = p_ray_end - p_ray_start;
	real_t length = segment.length();
	gizmo_bvh.ray_query(p_ray_start, segment / length, length, result);

versus doing it in a wrapper, no?

Got you. Correct.
For now I've seen nowhere in the codebase client's code involving start and end positions in the first place. It's all the time the opposite : there is a ray direction and a known far boundary, and the client makes the end position out of it.
Will share here whenever I stumble upon a case.

Interestingly Unity raycasts with from, direction and distance whereas Unreal uses start and end.
So far I found only 1 raycasting case where client code has the ray end position in the first place :

when VehicleBody3D checks collision of the wheels

Will update this list :point_up: whenever I find any other.


Multiple texture rendering problem with Coin 4

Hi folks,
We've encountered an issue with rendering multiple textures that was working fine previously on Coin 3.1.3. As shown below:
Rendered with Version 3.1.3

However, with version 4, it doesn’t get rendered as expected, please see snapshot
below:

Another interesting observation is, if we switch on the “Light Model node” in the scene,
the scene will get rendered better apparently.
Scene file diff - with and without Light Model switched on

Rendered with Version 4.0.0 with Light Model switched on

I've included a small application example that highlights the problem when loading in the scene.iv from within the doc folder.
coinv4Issue.zip
In our full application we also see problems with the Z depth when rotating the model whether lighting is on or off. As we rotate, some of the distant faces pop in front of the nearer faces and vice versa.
Would you be able to take a look into this and see if it's a problem that requires a fix or if there's changes/settings we can make on our side to achieve the same behaviour we were seeing previously with Coin 3.1.3?
Thanks
Steve

Unfortunately, I am not able to look into this over the next two weeks. Maybe @WizzerWorks or @veelo  can you have a look onto this isuue?


Update github_my_organization table to use GraphQL API

Is your feature request related to a problem? Please describe.
I'd like to use the GraphQL API when querying the table
Describe the solution you'd like
Update the table to use the GraphQL API
Describe alternatives you've considered
n/a
Additional context
For any fields that have paging, consider implementing that field as another table to avoid excess API calls (as per https://steampipe.io/docs/develop/plugin-release-checklist#data-ingestion).
New columns

announcement
announcement_expires_at
announcement_user_dismissible
any_pinnable_items
estimated_next_sponsors_payout_in_cents
has_sponsors_listing
interaction_ability
is_sponsoring_you
monthly_estimated_sponsors_income_in_cents
new_team_url
pinned_items_remaining
projects_url
saml_identity_provider
sponsors_listing
teams_url
total_sponsorship_amount_as_sponsor_in_cents
can_administer
can_changed_pinned_items
can_create_projects
can_create_repositories
can_create_teams
can_sponsor
is_a_member
is_following
is_sponsoring
members_with_role_total_count
packages_total_count
pending_members_total_count
pinnable_items_total_count
pinned_items_total_count
projects_total_count
projects_v2_total_count
repositories_total_count
sponsoring_total_count
sponsors_total_count
teams_total_count

Renamed columns

blog => website_url
disk_usage => repositories_total_disk_usage
public_repos => public_repositories_total_count
total_private_repos => private_repositories_total_count

Removed columns

billing_email - requesting in GraphQL with insufficient permissions stops query from returning any data.
two_factor_requirement_enabled - requesting in GraphQL with insufficient permissions stops query from returning any data.
collaborators - count seemingly unavailable in GraphQL.
company
default_repo_permission
html_url - replaced by url
events_url - rest api endpoint
followers - count seemingly unavailable.
following - count seemingly unavailable.
has_organization_projects
has_repository_projects
hooks
hooks_url - rest api endpoint
issues_url - rest api endpoint
members_allowed_repository_creation_type
members_can_create_internal_repos
members_can_create_pages
members_can_create_private_repos
members_can_create_public_repos
members_can_create_repos
members_can_fork_private_repos
members
member_logins
members_url - rest api endpoint
owned_private_repos
plan_filled_seats
plan_name
plan_private_repos
plan_seats
plan_space
private_gists
public_gists
public_members_url - rest api endpoint
repos_url - rest api endpoint

Columns with data changes

url now contains what was formerly in html_url (web url) instead of previous REST API endpoint.

https://github.com/turbot/steampipe-plugin-github/commit/af6bab85a0812dc54038fb99e651567f241658c8 on graphql-dev branch


The HNSW graph search returns less than the world size (so recall can never be 1.0) ?

Hi
Thanks for the great job and implementation.
Let's assume my world has N vectors.
I have noticed that:

if I run search where k=N (get me all vectors), I get only part of it.
More than that, there are vectors that are never returned by hnsw::search() method

Note: I am doing #1 as a sanity test but the more interesting is #2.
Let's take this scenario as an example:
M=32
efConstruction=800
My world has 101 vectors
When running hnsw indexer, I get a graph which has
entry point vector #25
layer 1 with 4 vectors
layer 0 with 101 nodes
The issue is that the vectors from #1 to #100 , each one has exactly 64 neighbors in layer 0, but non of them is vector #101 !
Item #101 is too far from everybody else so in fact it was isolated.
The search()  will never return vector #101 because we run using BFS , and our starting point is always the entry point (which is vector #25)
In fact, even if I run search(q) when my query is vector #101 itself, I get 100 vectors and non of them is #101 (as stated above, this is because we do BFS when our entry point #25)
How HNSW should deal with such scenario ?
What am I doing wrong here?
Thanks

Hi @sameraamar,
Yeah, that is known problem, though it rarely manifests in practice.
In theory a relative neighborhood graph which HNSW tries to approximate has only a single connected component, but sometime the candidates that are supplied to the RNG heuristic lack the connections needed to to make a link between two clusters.
That can be solved by extending the neighborhood of the candidates and that helps a lot in case you have such isolated points or clusters (that has been discussed in the original HNSW paper), but such policy makes index construction much more expensive. It also never did not help on any real datasets that I've tested, so it is turned off in nmslib by default via compile flag and not even implemented in hnswlib.
I guess the ideal solution would be marking some connections as essential (like the ones that are selected by RNG despite being very far from the base element) and sharing only those.
There also several other solutions which I personally like less:

never prune. This would help, there will be some connections as we don't delete them, but even those that will be there would be hard to discover, so it does not really solve the problem
one can assign the high level elements by doing a hierarchical clustering, that would mean there are links to the isolated elements from the higher levels. But the clustering also can miss the element and you cannot get k more than the number of elements in the cluster and it does not play well with updates.
One can make sure that every element is discoverable explicitly. That has been done in NSG, but that does not play well with insertions and updates as they screw this up.
One can look for the elements with small in-degree and find good candidates for those elements which happen to have room. This indeed increases a recall-speed a bit, but does not solve the problem with clustered data, as it can happen even if all elements have high in-degrees but fall into several separated groups.


problem to compile quickios

hi
i did steps as you have written
1 mkdir build
2 cd build
3 ../generate_ios.sh
but in 4th step there is no build_ios.sh file to continue !!
what am i wrong here ??
and one more question . what is simple way to mix objective-c and Qt for ios or any useful  references   , for example i need ios native map in qt how can i do it ?
here is a screen shot
screen shot
thank you

The build instruction is outdated. The generate_ios.sh is not needed for current version. Sorry for the confusion.

tank you for your replay
but i can't compile it again, and i face below:
No profiles for 'com.github.QuickIOSExample' were found:-1: error: Xcode couldn't find a provisioning profile matching 'com.github.QuickIOSExample'.
here is the screen shot screen shot

Did you setup your environment according to this guide?
http://doc.qt.io/qt-5/ios-support.html

thanks for your time , problem  solved , in your sample we can select only one image  i need multi select image , how can i do it ? just like your app in app store  i mean "Tream Proto" app , thanks again


[Error] Type 'NSData' has no member 'gul_data'

Description
Encountering a build-time error in FirebaseCore. The error message states: Type 'NSData' has no member 'gul_data'
This issue only occurs when GoogleUtilities is at v7.13.3.

Sorry about the trouble. Nothing about the gul_data extension changed in 7.13.3. I recommend cleaning all build artifacts and retrying. Otherwise we'll likely need a reproducible example without Tuist to help.

Same happening to me.  Also tuist.

same here.

It seems that GoogleUtilities 7.13.3 introduced resource processing for the PrivacyManifest. Tuist 4 appears to manage this update adequately. Alternatively, you might consider pinning the GoogleUtilities version to an earlier release. Currently, this SDK specifies a version range for GoogleUtilities from "7.12.1" ..< "8.0.0".
In your Dependency.swift, you could specify the dependency as follows to fix the version:
.remote(url: "https://github.com/google/GoogleUtilities.git", requirement: .exact("7.13.2"))

I am guessing it has something with it now having resources so it can't be linked as a static framework anymore. I’m still getting acquainted with Tuist and its intricacies, so there might be nuances I’m missing—particularly regarding the implications of linking resources in what used to be a static framework setup. Maybe someone else has more insight.

Good info, thanks
On Mon, May 13, 2024 at 7:01 PM Andy Kolean @.***>
wrote:

It seems that GoogleUtilities 7.13.3
https://github.com/google/GoogleUtilities/compare/7.13.2...7.13.3
introduced resource processing for the PrivacyManifest. Tuist 4 appears to
manage this update adequately. Alternatively, you might consider pinning
the GoogleUtilities version to an earlier release. Currently, this SDK
specifies a version range for GoogleUtilities from "7.12.1" ..< "8.0.0"
https://github.com/firebase/firebase-ios-sdk/blob/main/Package.swift.
In your Dependency.swift, you could specify the dependency as follows to
fix the version:
.remote(url: "https://github.com/google/GoogleUtilities.git", requirement: .exact("7.13.2"))
I am guessing it has something with it now having resources so it can't be
linked as a static framework anymore. I’m still getting acquainted with
Tuist and its intricacies, so there might be nuances I’m
missing—particularly regarding the implications of linking resources in
what used to be a static framework setup. Maybe someone else has more
insight.
—
Reply to this email directly, view it on GitHub
https://github.com/firebase/firebase-ios-sdk/issues/12949#issuecomment-2108944942,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AC3T5WA2KFQ7SVEDX7EFG6DZCFA3VAVCNFSM6AAAAABHRVYRKKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBYHE2DIOJUGI
.
You are receiving this because you commented.Message ID:
@.***>

Going to close, since this looks like a Tuist issue or usability question. Feel free to continue the conversation here.


Config doesn't work.

When I change the required XP for leveling up in the config (from 500 to 200 for all tools) it doesn't work in-game. The tools still need 500 XP to level up. This has been recreated with the latest Mantle, TIC and TTL.
Might be because I'm doing something wrong, but to my understanding you only need to change the base EXP for a tool to your desired amount.

Have you tried re-generating the config file? (Just delete it)
Then start the game once and do the changes. Maybe your file has some broken part in it.

im using ver 1.10 and inecraft 1.12.2 and there is no config. PLS HELP!

im using ver 1.10 and inecraft 1.12.2 and there is no config. PLS HELP!

Find the folder that your modpack is stored in, open the config folder and search for TinkerToolLeveling.cfg

Have you tried re-generating the config file? (Just delete it)
Then start the game once and do the changes. Maybe your file has some broken part in it.

I tried to do this but didn't work
I wanted to add tinker tool leveling on stranded forever however the default settings are way too op i wanted to make it really harder to level up it's sad that I can't change the config of something you should be able to

Have you tried re-generating the config file? (Just delete it)
Then start the game once and do the changes. Maybe your file has some broken part in it.

I tried to do this but didn't work
I wanted to add tinker tool leveling on stranded forever however the default settings are way too op i wanted to make it really harder to level up it's sad that I can't change the config of something you should be able to
i want to make the base xp five time higher than by default (replacing 500 by 2500 and 4500 by 22500)
even if i put the config on "read only" in properties it still don't work
I tried to keep the file open while the game load but it create a new TMP file and use this one to config,which is really annoying.