86b1uje03

This PR includes significant updates and new features across several files:
Schema Migration:

[x] Added Prisma schema with models for User, Activity, MentorFeedback, Report, and Mentorship.
[x] Introduced new enums Role and FeedbackStatus.
[x] Applied schema changes to the database.

Testing Setup:

[x] Added initial test cases for User model operations including create, retrieve, update, and delete functionalities.

Enviornment File

[x] Stored connection strings in the .env file.

the conflicts have been resolved.


Add English common names to AICamera

Right now, when you use the AICamera / Suggestions flow in offline mode, there are no common names in the app. This is a suboptimal experience, since it makes it a lot harder (especially for casual users) to pick a correct identification.
We should minimally add common names in English to the AICamera.
In Seek we do this by pre-loading common names into the app in files generated before we publish a release. We then load these common names into Realm, as per this code.
Not clear on how we want to do this in the iNat Next app, so may be worth some discussion.

First step on this as discussed in iteration meeting is to fetch the first 500 common names using no filters via the species_count API


Auth support for SOCKS5

Current using: https://github.com/cooolinx/docker-socks5, which UDP is supported. (tested with SSTap)
Can go-tun2socks  support socks5's auth? (with user, pass)

Just viewed the source code. not find any usage of proxyPassword :
$ ./tun2socks.exe -h
Usage of C:\Users\Administrator\Downloads\p2p_socks5\02\tun2socks.exe:
  -applog
        Enable app logging (V2Ray and SOCKS5 handler)
  -delayICMP int
        Delay ICMP packets for a short period of time, in milliseconds (default 10)
  -disableDNSCache
        Disable DNS cache (SOCKS5 and Shadowsocks handler)
  -dnsServer string
        DNS resolvers for TUN interface (only take effect on Windows) (default "<IP_ADDRESS>,<IP_ADDRESS>")
  -gateway string
        The gateway adrress of your default network, set this to enable dynamic routing, and root/admin privileges may also required for using dynamic routing (V2Ray only)
  -proxyCipher string
        Cipher used for Shadowsocks proxy, available ciphers: AEAD_AES_128_GCM AEAD_AES_192_GCM AEAD_AES_256_GCM AEAD_CHACHA20_POLY1305 AES-128-CFB AES-128-CTR AES-192-CFB AES-192-CTR AES-256-CFB AES-256-CTR CHACHA20-IETF XCHACHA20 (default "AEAD_CHACHA20_POLY1305")
  -proxyPassword string
        Password used for Shadowsocks proxy
  -proxyServer string
        Proxy server address (host:port) for socks and Shadowsocks proxies (default "<IP_ADDRESS>:1087")
  -proxyType string
        Proxy handler type: socks, shadowsocks, v2ray (default "socks")
  -sniffingType string
        Enable domain sniffing for specific kind of traffic in v2ray (default "http,tls")
  -tunAddr string
        TUN interface address (default "<IP_ADDRESS>")
  -tunGw string
        TUN interface gateway (default "<IP_ADDRESS>")
  -tunMask string
        TUN interface netmask, as for IPv6, it's the prefixlen (default "<IP_ADDRESS>")
  -tunName string
        TUN interface name (default "tun1")
  -udpTimeout duration
        Set timeout for UDP proxy connections in socks and Shadowsocks (default 1m0s)
  -vconfig string
        Config file for v2ray, in JSON format, and note that routing in v2ray could not violate routes in the routing table (default "config.json")

ref:  #57
https://github.com/eycorsican/go-tun2socks/issues/57


Do not use canonical location for checkouts

In #6780, we switched to using the canonical location of a package for the checkouts paths, but that can lead to mixing up checkouts storage when there has been a legitimate change to locations that isn't reflected in the canonical location (most prominently switching from SSH to HTTPS or vice versa). Because of that, we should undo that change.
rdar://116534183

@swift-ci please test

I missed this test, need to update:
[1614/1614] Testing CommandsTests.TestToolTests/testList
Test Suite 'Selected tests' started at 2023-10-13 20:08:41.286Test Suite 'RepositoryManagerTests' started at 2023-10-13 20:08:41.288Test Case 'RepositoryManagerTests.testCanonicalLocation' started at 2023-10-13 20:08:41.288/home/build-user/swiftpm/Tests/SourceControlTests/RepositoryManagerTests.swift:336: error: RepositoryManagerTests.testCanonicalLocation : XCTAssertEqual failed: ("foo-b1347716") is not equal to ("foo-926b93f1") -/home/build-user/swiftpm/Tests/SourceControlTests/RepositoryManagerTests.swift:336: error: RepositoryManagerTests.testCanonicalLocation : XCTAssertEqual failed: ("foo-4171dede") is not equal to ("foo-926b93f1") -/home/build-user/swiftpm/Tests/SourceControlTests/RepositoryManagerTests.swift:336: error: RepositoryManagerTests.testCanonicalLocation : XCTAssertEqual failed: ("foo-9e3a7536") is not equal to ("foo-926b93f1") -Test Case 'RepositoryManagerTests.testCanonicalLocation' failed (0.004 seconds)Test Suite 'RepositoryManagerTests' failed at 2023-10-13 20:08:41.292Executed 1 test, with 3 failures (0 unexpected) in 0.004 (0.004) secondsTest Suite 'Selected tests' failed at 2023-10-13 20:08:41.292Executed 1 test, with 3 failures (0 unexpected) in 0.004 (0.004) seconds

Hm, I think the only way to handle this is to delete the test, but that doesn't seem entirely right to me since we do want to preserve that "http://scm.com/org/foo" and "http://scm.com/org/foo.git" would get the same storage location, but right now with the changes from this PR, they don't.

Hm, I think the only way to handle this is to delete the test, but that doesn't seem entirely right to me since we do want to preserve that "http://scm.com/org/foo" and "http://scm.com/org/foo.git" would get the same storage location, but right now with the changes from this PR, they don't.

that would require using something similar but different from CanonicalLocation, eg something that removes the .git suffix

@swift-ci please test

@swift-ci please test windows

WorkspaceTests.testDeterministicURLPreference expects that http and https locations are considered the same, I am not sure that is a reasonable expectation?

Ah the issue here is that I am changing what equality of CanonicalPackageLocation does without realizing it. In the common case, we don't want the scheme to affect equality.

@swift-ci please test


fixed problem with generating video more than once.

Fixed problem when generating a video more than once return error:
“test.m4v” couldn’t be moved to “Documents” because an item with the same name already exists."
Problem was in FileManager.default.contentsOfDirectory method which return an array of URLs with prefix private/.
And this condition always failed:
if newFileURLs.contains(newPath) {
try FileManager.default.removeItem(at: newPath)
}

@SaliienkoAleksandr Thanks for pointing this out. I won't be accepting the merge request because I already have a working method that handles deletion correctly. I'd just forgotten to update this part of an "if" statement, so I will fix it and push a new version.


CheckResult annotation on checkBoxPrompt

The checkBoxPromt function has a @CheckResult annotation, unless all the other builder methods.
As the function mutates the builder, this is not necessary and leads to false positives.

Resolved in rc4


Add Janifa Nowfal to Contributors list

The tutorial is very helpful and easy for beginners...I had gone through
several blogs and videos, but I couldn't understand even what really the
fork or clone (etc.) actually does...
And now, its clear..
Happy today....First open source contribution.....
Thank you..
On Thu, Apr 12, 2018 at 11:22 PM, Roshan Jossey<EMAIL_ADDRESS>wrote:

I'm quite elated about your pull request. I wanna evolve this project to
addresses various problems faced by first-time contributors. I'd love to
learn about your journey in open source community, the problems, pain
points you had etc.
Could you explain how you felt when you went through the tutorial, made a
pull request and learned that I merged it?
We’ve recently added Facebook share and tweet feature to our web app.
Could you please go to https://roshanjossey.github.
io/first-contributions/#social-share and share your first contribution to
open source? Also, check out projects with easy issues while you’re there.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Roshanjossey/first-contributions/pull/3911#issuecomment-380890565,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AaY_dpCHKmHI83sQU53_-EidYmy6zPW5ks5tn5RCgaJpZM4TSN2A
.

Hai,
If my name is not there in Contributors.md, what it means?
Do I need to follow the steps again?
On Thu 12 Apr, 2018, 11:44 PM Janifa Nowfal<EMAIL_ADDRESS>wrote:

The tutorial is very helpful and easy for beginners...I had gone through
several blogs and videos, but I couldn't understand even what really the
fork or clone (etc.) actually does...
And now, its clear..
Happy today....First open source contribution.....
Thank you..
On Thu, Apr 12, 2018 at 11:22 PM, Roshan Jossey<EMAIL_ADDRESS>wrote:

I'm quite elated about your pull request. I wanna evolve this project to
addresses various problems faced by first-time contributors. I'd love to
learn about your journey in open source community, the problems, pain
points you had etc.
Could you explain how you felt when you went through the tutorial, made a
pull request and learned that I merged it?
We’ve recently added Facebook share and tweet feature to our web app.
Could you please go to
https://roshanjossey.github.io/first-contributions/#social-share and
share your first contribution to open source? Also, check out projects with
easy issues while you’re there.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Roshanjossey/first-contributions/pull/3911#issuecomment-380890565,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AaY_dpCHKmHI83sQU53_-EidYmy6zPW5ks5tn5RCgaJpZM4TSN2A
.

@JanifaMNowfal, I see your name in the Contributors file
https://github.com/Roshanjossey/first-contributions/blame/master/Contributors.md#L3468
I’d urge you to continue contributing to other open source projects.
We also have a slack team to help/mentor people trying to contribute to open source projects.
You can join the team by going to https://goo.gl/PM1Jdh

Okay, Thank you.
On Sat 14 Jul, 2018, 11:20 PM Roshan Jossey<EMAIL_ADDRESS>wrote:

@JanifaMNowfal https://github.com/JanifaMNowfal, I see your name in the
Contributors file
https://github.com/Roshanjossey/first-contributions/blame/master/Contributors.md#L3468
I’d urge you to continue contributing to other open source projects.
We also have a slack team to help/mentor people trying to contribute to
open source projects.
You can join the team by going to https://goo.gl/PM1Jdh
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Roshanjossey/first-contributions/pull/3911#issuecomment-405039195,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AaY_dnGsINFXdU4WPPdU9qt7s6RwnY2Xks5uGi9mgaJpZM4TSN2A
.


feat(turborepo): Use Github log prefixes when running on Github Actions

Description

use grouped logging and github-style prefixes when we detect we're running in github actions

Testing Instructions

new integration test

Quick feedback here: While this makes a lot of sense, this caused massive head-scratching on our side, because failed tasks do not expand by default.
We couldn't figure out for a while why the CI failed without meaningful output.

@boennemann can you file an issue for that? I'm not sure, but I think this is a solvable problem since the logs will be buffered (for grouping), so we should be able to not add the Github Actions start/end markers for failed tasks

@mehulkar @boennemann https://github.com/vercel/turbo/pull/5435 should move the error inside the correct group and tag it, which I think will cause GH Actions to highlight it

I've just noticed this new feature, and I love it!!! Thank you @gsoltis!


adding uws domain to jetbrains licenses

@Echirivella First stage of verification passed, official domain is uws.ac.uk as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

Thanks @philipto

@Echirivella Thank you for your patience while waiting for a review and processing your request. Pull request merged. Thank you!


glyphicons-halflings-regular.woff2 Failed to load resource: the server responded with a status of 404 (Not Found)

Hello,
I use this CSS: http://pingendo.github.io/pingendo-bootstrap/themes/default/bootstrap.css
And there are not working fonts:
http://pingendo.github.io/pingendo-bootstrap/themes/fonts/glyphicons-halflings-regular.woff2 Failed to load resource: the server responded with a status of 404 (Not Found)
http://pingendo.github.io/pingendo-bootstrap/themes/fonts/glyphicons-halflings-regular.woff Failed to load resource: the server responded with a status of 404 (Not Found)
http://pingendo.github.io/pingendo-bootstrap/themes/fonts/glyphicons-halflings-regular.ttf Failed to load resource: the server responded with a status of 404 (Not Found)
Is it bug or may I upload CSS into my website and load fonts from my side too?
Thank you.

Same error. They aren't include in the theme. Must be fixed.

We should remove Glyphicons at all in favour of Font-awesome

I agree with this because Font Awesome is a bigger library that Glyphicons. But, there are some place that Font Awesome don't work with Bootstrap, for example, the controls of the Carousel.

i also got same issue, please help me if anybody have solution, i spent whole day on this issue

@Pingendo What's up with this?

@Pingendo Me too. It worked when using a FTP mut on my Mamp it doesn't.

@GeorgeMajor You can do this in HTML:
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css" rel="stylesheet">

Had the same issue I was using local file. got rid of it and replaced it with cdn works fine now. Hope this helps someone, Happy coding

how to find that path to replace above given code to slove this error

Create new fonts folder inside root project and then add fonts
it will be work

Create new fonts folder inside root project and then add fonts
it will be work

Thank you! After that, I watched at my bootstrap.min.css file and saw "../fonts/" and knew I need to create the folder 1 folder back. Thank you!!

Create new fonts folder inside root project and then add fonts
it will be work

Thank you! After that, I watched at my bootstrap.min.css file and saw "../fonts/" and knew I need to create the folder 1 folder back. Thank you!!


Gtest port fails install when one of the configuration is set to VCPKG_BUILD_TYPE

Gtest port fails install when one of the configuration is set to VCPKG_BUILD_TYPE.
If building only Release configuration (set(VCPKG_BUILD_TYPE release)), the debug libraries fails rename because these files does not exist. gtest/portfile.cmake#L55-L77
CMake Error at C:/vcpkg/ports/gtest/portfile.cmake:62 (file):
  file RENAME failed to rename

    C:/vcpkg/packages/gtest_x86-windows/debug/lib/gtest.dll

  to

    C:/vcpkg/packages/gtest_x86-windows/debug/bin/gtest.dll

  because: File exists

Call Stack (most recent call first):
  C:/vcpkg/scripts/ports.cmake:72 (include)

Error: Building package gtest:x86-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `.\vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
  Package: gtest:x86-windows
  Vcpkg version: 0.0.100-2017-12-09-4567fa570916b0398ac0a65645e2074a4c8f0fd9

Additionally, attach any relevant sections from the log files above.

set(VCPKG_TARGET_ARCHITECTURE x86)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)
set(VCPKG_BUILD_TYPE release)

@ras0219-msft @alexkaratarakis Do you have any good ideas to resolve this issue?

This problem can be resolved by conditional branching with VCPKG_BUILD_TYPE. (looks it not smart to me.)
What do you think?
if(VCPKG_BUILD_TYPE STREQUAL release)
    # VCPKG_BUILD_TYPE is release
    file(MAKE_DIRECTORY ...)
    file(RENAME ...)
elseif(VCPKG_BUILD_TYPE STREQUAL debug)
    # VCPKG_BUILD_TYPE is debug
    file(MAKE_DIRECTORY ...)
    file(RENAME ...)
else()
    # VCPKG_BUILD_TYPE is not set
    file(MAKE_DIRECTORY ...)
    file(RENAME ...)
    file(MAKE_DIRECTORY ...)
    file(RENAME ...)
endif()

if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/gtest.lib)
    if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
        file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin/)
        file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gtest.dll ${CURRENT_PACKAGES_DIR}/bin/gtest.dll)
        file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gtest_main.dll ${CURRENT_PACKAGES_DIR}/bin/gtest_main.dll)
        file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gmock.dll ${CURRENT_PACKAGES_DIR}/bin/gmock.dll)
        file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gmock_main.dll ${CURRENT_PACKAGES_DIR}/bin/gmock_main.dll)
    endif()
    file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link)
    file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gtest.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gtest.lib)
    file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gtest_main.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gtest_main.lib)
    file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gmock.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gmock.lib)
    file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gmock_main.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gmock_main.lib)
endif()
if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/gtest.lib)
    if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
        file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin/)
        file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gtest.dll)
        file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest_main.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gtest_main.dll)
        file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gmock.dll)
        file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock_main.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gmock_main.dll)
    endif()
    file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
    file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gtestd.lib)
    file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest_main.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gtest_maind.lib)
    file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gmockd.lib)
    file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock_main.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gmock_maind.lib)
endif()

I sent a draft pull request (#2359) to fix this problem.
Please review it. What do you think?

Thanks for the PR, it's great!


Don't include scoverage dependencies in POM

See scoverage/sbt-coverage#153.

👍 Looks good to me so long as Travis agrees.


CHK-6522: Update composer version number to 2.2.6

@benzeghers-bold cold you please create a separate JIRA ticket for this release?


the training of I-frame and P-frame

After the training of I-frame and P-frame, when the training of I-frame is completed, the pre-trained model of I-frame is loaded during the training of P-frame, then will the encoder and decoder of I-frame continue to train and learn at this time?

No, I-frame is fixed. We just  P-frame entropy model during P-frame training.


Feature: add a method for binding shared virtual addressing

Description
Add fpgaBindSVA() to allocate and bind PASIDs to FPGA ports. Shared virtual addressing requires hardware support, both in the CPU and on the FPGA.
fpgaBindSVA() depends on /dev/dfl-pci-sva from the dfl-pci driver. IOVA-based pinned DMA remains available with older drivers and hardware that does not support PASID.
OPAE behavior is unchanged when fpgaBindSVA() is not called.
Collateral (docs, reports, design examples, case IDs):

[ ] Document Update Required? (Specify FIM/AFU/Scripts)

Tests added:
Tests run:

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

3 of 38 (7.89%)  changed or added relevant lines in 3 files are covered.
15 unchanged lines in 4 files lost coverage.
Overall coverage decreased (-0.2%) to 71.808%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

libraries/libopae-c/api-shell.c
0
6
0.0%

libraries/plugins/vfio/opae_vfio.c
1
30
3.33%

Files with Coverage Reduction
New Missed Lines
%

libraries/plugins/xfpga/open.c
1
74.68%

libraries/plugins/uio/opae_uio.c
4
90.18%

libraries/plugins/vfio/opae_vfio.c
4
82.64%

libraries/plugins/xfpga/mmio.c
6
82.87%

Totals

Change from base Build<PHONE_NUMBER>:
-0.2%

Covered Lines:
15744

Relevant Lines:
21925

💛  - Coveralls

@rweight and @matthew-gerlach - These are the user space changes that go along with the dfl-pci driver updates.
Note that the changes here will work with old drivers. They won't find /dev/dfl-pci-sva and will be fine with that.

@tswhison - Thanks for going through this. I'll come back to it once the low-level device mechanism is set with @rweight. The general framework here will remain, but the details down inside opae_vfio.c are in flux.

@tswhison - I'm confused by the failed test at opae-sdk/tests/opae-v/test_opae_vfio_c.cpp:3246. I think I didn't change anything relevant.
I think the test causes vfio_fpgaDestroyEventHandle() to close fd 0. Seems like a bad idea.

@tswhison - I still think that opae-sdk/tests/opae-v/test_opae_vfio_c.cpp:3246 is a broken test since it closes fd 0. I exposed that bug by causing another test to do the same thing. My case is fixed in the latest commit by adding flags for pasid so that when the handle is initialized to 0 it doesn't look like there's a file open.

Thanks for pointing this out.  I will submit a fix.


ppwater: Watch yismxplusc.blogspot.com

ppwater requests the watch of the watch_keyword yismxplusc\.blogspot\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

yismxplusc\.blogspot\.com has been seen in 3 true positives, 0 false positives, and 0 NAAs.

Approved by rene in Charcoal HQ


AMLII-1647 Added duration to Flare's stream-logs

What does this PR do?
This PR adjusts the --with-stream-logs flag from a bool to duration so that it would accept a duration and attach a stream-logs for that duration to the flare
Motivation
The motivation behind this change is to provide users with more flexibility when using the flare command. By allowing users to adjust the duration of the the stream log output, they can easily save troubleshoot or send it to our support for troubleshooting
Additional Notes
Describe how to test/QA your changes

Run:

datad-agent flare -L 10s

or
datad-agent flare --with-stream-logs 10s

Check to see if negative number also throw errors:
datad-agent flare -L -10s

Logs should be output in the same agent log directory

and attached to the flare

/merge


get rid of --net=host

split out from issue #8
despite managing udp port 65001 and opening a tcp port, still seems not enough ... when running container with --net=host, then no issue ...
let's see whether anybody else has solved this (I seem to see a few containers out there, where only udp port is opened, but haven't tried those.

Confirmed connections:
random port (tcp) --> 8003 @ <IP_ADDRESS> (Silicondust server, assuming program guide, other info?)
65001 (udp) discovery, (tcp) control, but haven't observed that.
5002, 5004 (udp)
80 (tcp?)--> webpages (not sure whether this is inbound or outbound, i.e. tuner responds via port 80 to dvr engine vs. the other way around)
5000 (udp) LIRC for IR on HD Homerun
if port=port_number specified in conf file, it will listen on/use that port (looks like tcp only), i.e. for this project 59090 and seems to be using it during recording (and LiveTV stream buffering), e.g.:
tcp        0 449424 <IP_ADDRESS>:59090      <IP_ADDRESS>:61557      ESTABLISHED 0          80782420   20663/hdhomerun_rec
other forums' entries:
5353 (udp) using mDNS - not observed yet
554 (udp)
When opening all of the above ports (without net=host) then discovery of tuner already fails ...
only sending a discovery request to docker ip:
Recording: sending discover using local ip <IP_ADDRESS> (I assume, it essentially sends to localhost)
response is then received:
Recording: discover response from XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX http://<IP_ADDRESS>:59090 <--- DVR ID
when net=host, then it's sending a discovery request to the host IP (e.g. <IP_ADDRESS>)
Recording: sending discover using local ip <IP_ADDRESS>
response is then received:
Recording: discover response from XXXXXXXX http://<IP_ADDRESS>:80 <---- Tuner ID
but not sure from which port this discovery request originates (might be a random port) .. have to catch it in flagranti
macvlanmight be the only alternative to net=host

seems to me that the engine evaluates what networks are available, sends a request to localhost to "find itself" and then goes and looks for a tuner --> might require that it "presents" as an IP device on the same network


add Iterable .watch extension

extension on Iterable<Listenable> {
  void watch(BuildContext context) => Listenable.merge(this).watch(context);
}

I like the general idea you're proposing and I see how it can potentially improve code readability by removing the repetitive .watch() calls.
The proposed implementation, though, not as much.
Using Listenable.merge() there will result in a new subscription creation on each build and disposal before the next one. That's because an instance of the listenable changes each build.
Another problem with the proposed implementation is that it's impossible to retrieve the current state of such mass-watched listenables from the method result.
I believe it would be better to have such API defined on a record instead so that the specific types of each listenable in the list are known and can be used for determining the value to be returned. Something similar to how (future1, future2).wait is defined.
I'll look into adding this after I'm done with introducing side effects into context_plus.
Thanks for a good idea!

The day has come! Mass-watching is now available in context_watch 5.1.0 and context_plus 4.1.0!
You can combine up to 4 observables (or observable Refs) into a record and call .watch(), .watchOnly() or .watchEffect() on them.


[Review only] GH-87 Add support for ackOnError

This PR will need to be merged (and probably slightly adjusted) after #91 as it modifies the way in which commits are processed (and the algorithm would beed to be slightly adapted to match the asynchronous model introduced by #91, esp. wrt. how batches are committed).
But we can still validated the approach.

Closed in favour of https://github.com/spring-projects/spring-kafka/pull/107


Does a ToBorrowed trait make sense?

From the perspective of symmetry it might make sense to have a trait like that:
trait ToBorrowed {
    type Borrowed<'a>;

    fn to_borrowed<'a>(&'a self) -> Self::Borrowed<'a>;
}

This would allow code like that:
use std::borrow::Cow;
use std::sync::atomic::{AtomicU64, Ordering};

use bounded_static::ToBorrowed; // Yeah, I know that this conflicts with the crate name :p

#[derive(ToBorrowed)]
enum Data<'a> {
    Blob(Cow<'a, [u8]>),
    Text(Cow<'a, str>),
}

#[derive(ToBorrowed)]
struct EnrichedData<'a> {
    id: u32,
    data: Data<'a>
}

fn main() {
    let data = Data::Blob(Cow::Owned(vec![1, 2, 3]));
    process(data.to_borrowed()); // Does not actually clone the content of `Data`
    process(data.to_borrowed()); // Can be called twice without cloning `Data`
}

fn process(data: Data<'_>) { // Takes ownership of `Data`, but not of its content
    static COUNTER: AtomicU64 = AtomicU64::new(0);
    let id = COUNTER.fetch_add(1, Ordering::Relaxed);
    let enriched_data = EnrichedData {
        id,
        data, // Would not work with `&Data<'_>`
    };
    process_enriched(enriched_data);
}

fn process_enriched(enriched_data: EnrichedData<'_>) {
    drop(enriched_data)
}

Does that makes sense? Did you consider adding something like that? Are you aware of any crate providing this?

I think the borrowme crate may provide this functionality?  I haven’t used that crate personally but I recall when it was announced there were some cases it couldn’t handle which this crate can, I don’t know if that has been fixed.
As to adding similar functionality to this crate, I’m not opposed to the idea and indeed I think this crate is poorly named anyway and so is hard to discover.  So perhaps some rebranding or a fork is required.
do you have a specific use case in mind and is this something you’d be keen to work on?

I do decoding/encoding. All involved structs and enums contain only Copy types or Cow-like types.
The decoders are zero-copy, so they take &'a [u8] and return something like Foo<'a>. If the user needs to get rid of the 'a they can use to_static and get a Foo<'static> thanks to your crate. Everything is fine.
But what about the encoders? Ideally they don't take the ownership of the data because they only need to read it. An encoder would look like this:
// library code
pub fn encode_status<'a>(status: &Status<'a>, out: &mut [u8]) -> usize {
    todo!()
}

And then it can be used like this:
// user code
let status: Status<'static> = todo!();
let written_bytes = encode_status(&status, out);

But this strategy prevents me from doing other reasonable things, for example this:
// library code
enum Response<'a> {
    Status(Status<'a>)
    Data(Data<'a>)
}

pub fn encode_status<'a>(status: &Status<'a>, out: &mut [u8]) -> usize {
    let response = Response::Status(status); // Doesn't work because &Status<'a> is not Status<'a>
    encode_response(&response, write_buffer);
}

pub fn encode_data<'a>(data: &Data<'a>, out: &mut [u8]) -> usize {
    let response = Response::Data(data); // Doesn't work because &Data<'a> is not Data<'a>
    encode_response(&response, out);
}

pub fn encode_response<'a>(respose: &Response<'a>, out: &mut [u8]) -> usize {
    todo!()
}

How can this be solved? The first step is to get rid of the &:
// library code
pub fn encode_status<'a>(status: Status<'a>, out: &mut [u8]) -> usize {
    let response = Response::Status(status); // Yeah, it works
    encode_response(response, out);
}

pub fn encode_data<'a>(data: Data<'a>, out: &mut [u8]) -> usize {
    let response = Response::Data(data); // Yeah, it works
    encode_response(response, out);
}

pub fn encode_response<'a>(respose: Response<'a>, out: &mut [u8]) -> usize {
    todo!()
}

But the user should be able to decide whether they transfer ownership of the data to the encoder or not. For this I want to have a utility similar to to_static:
// user code
let status: Status<'static> = todo!();
// Not a real clone, more like a copy and the user keeps the ownership
let written_bytes = encode_status(status.to_borrowed(), out);
// The user transfers the ownership
let written_bytes = encode_status(status, out);

I think the borrowme crate may provide this functionality?

Thanks! I'll have a look. My first impression: It creates many additional types that would clutter the API.

and is this something you’d be keen to work on?

You mean by contributing? Sure. If we can resolve the naming issues and you can convince me that my idea is sane.

I created the repo https://github.com/jakoschiko/cowabunga for outlining my idea. I had some initial problems with lifetimes but it seems to work now. What do you think?

Thanks @jakoschiko - just a quick note to say that i'll try to dig into your repo this weekend and give you some thoughts.

Thanks! Some relevant questions:

Why has bounded-static multiple traits? What are the pros?
Why has the associated type Static the bound 'static? That might be problematic for exotic cases like Cow<'a, [&'b Foo]>.

@jakoschiko apologies for the delay, i've been focusing on a release of another project.

Why has bounded-static multiple traits? What are the pros?

I don't recall there being a major reason, I suppose you may have a type where you want to support either of to_static(&self) or into_static(self) but not both, but I can't think of any real world examples.  Is there any advantage in combining them?

Why has the associated type Static the bound 'static?

That's really the whole point of this library, ensuring the type is bound by 'static.  Without it you effectively just have ToOwned.    See https://github.com/fujiapple852/bounded-static#how-does-this-differ-from-the-toowned-trait

That might be problematic for exotic cases like Cow<'a, [&'b Foo]>

I think that is desirable; for Cow<'a, T> to be Cow<'a, T>: 'static then it follows that T: 'static.
In your example the reference &'b cannot be made static for all lifetimes 'b.  Aside: the fact that it ?Sized is ok.
The derive macro specifically checks for this case: https://github.com/fujiapple852/bounded-static/blob/master/bounded-static-derive/src/common.rs#L31

apologies for the delay, i've been focusing on a release of another project.

No problem, take your time. This issue doesn't block me in any way.

Why has bounded-static multiple traits? What are the pros?

I don't recall there being a major reason, I suppose you may have a type where you want to support either of to_static(&self) or into_static(self) but not both, but I can't think of any real world examples. Is there any advantage in combining them?

Not sure yet. When I created my repo, providing and implementing only the single trait Cowabunga made it easier for me to understand what I was actually doing. It helped me that there is a similarity between the Cowabunga trait and Cow struct.

Why has the associated type Static the bound 'static?

That's really the whole point of this library, ensuring the type is bound by 'static. Without it you effectively just have ToOwned. See https://github.com/fujiapple852/bounded-static#how-does-this-differ-from-the-toowned-trait

I can't follow your arguments. I don't want to use std::borrow::ToOwned because it requires that I provide two different types (like str and String). Instead I want an abstraction that simply allows me to convert all (deeply nested) Cow values inside my type to Owned (this is currently possible with your crate) and Borrowed (this is what I proposed in this issue). IMO the 'static bound is unnecessarily restrictive for that.
Imagine you have a type that contains a Cow and a completely unrelated other reference:
struct FooBar<'foo, 'bar> {
    foo: Cow<'foo, str>,
    bar: &'bar str,
}

Then I don't see why this should not be allowed:
impl<'foo, 'bar> Cowabunga for FooBar<'foo, 'bar> {
    type Owned = FooBar<'static, 'bar>; // We can keep 'bar here because Owned does not require 'static

    type Borrowed<'b> = FooBar<'b, 'bar>
    where
        Self: 'b;

    fn to_borrowed<'b>(&'b self) -> Self::Borrowed<'b> {
        FooBar {
            foo: cowabunga::to_borrowed(&self.foo),
            bar: self.bar,
        }
    }

    fn to_owned(&self) -> Self::Owned {
        FooBar {
            foo: cowabunga::to_owned(&self.foo),
            bar: self.bar,
        }
    }

    fn into_owned(self) -> Self::Owned {
        FooBar {
            foo: cowabunga::into_owned(self.foo),
            bar: self.bar,
        }
    }
}

Hi again @jakoschiko (and happy holidays!),
I think there are two separate goals here; one is to provide "a way to convert a type to a form that is bound by the 'static lifetime, if possible" and the other is to provide "an abstraction that allows conversion of any deeply nested Cow values to the Owned variant" (to paraphrase your comment).
This crate is designed to provide a solution to meet the first goal, and as a (very useful!) side effect it also provides a solution to meet the second goal, but only in conjunction with the first.
What you need is a solution to meet the second goal in isolation.  That makes sense and is perfectly valid, but would seem to be at odds with the core purpose of the bounded-static crate as it would not ensure that types were indeed "bounded by the 'static lifetime".  My original use care for creating this crate was the need to pass some highly nested Cow structure to thread::spawn, which requires the 'static bound.
Given this it would seem that a separate abstraction (or crate, such as Cowabunga) is warranted.

Thanks for your analysis!
To be honest, even after thinking about it for a while I can't see the relevant differences between these goals. They sound different, but I don't understand the practical implications. I think the best way forward for me is to fork your repository and refactor it for my purpose. Then we can see if it's worth to be published as a separate crate. I'll close this issue because it probably don't make sense to add something like this to this crate here. Thanks again for your feedback.


bayeslite test_logging.py fails with AssertionError

Synced to 367a679523cba8df2d9555c1fcddba7a58cf411a.
>       assert 1 == len(slowstub.calls)
E       assert 1 == 0
E        +  where 0 = len([])
E        +    where [] = <test_loggers.StubCallable instance at 0x7fdaad5b47e8>.calls

tests/test_loggers.py:130: AssertionError

To replicate:
(1) cd into an empty directory.
(2) git clone git@github.com:probcomp/bayeslite.git
(3) Make a file called Dockerfile.fail with this.
FROM ubuntu:trusty
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev libboost-random1.55-dev
RUN pip install numpy cython
RUN pip install pytest pexpect pandas requests bayeslite-apsw
RUN pip install crosscat
COPY bayeslite /var/build/bayeslite
RUN apt-get install -y libxft-dev libpng-dev
RUN pip install matplotlib
WORKDIR /var/build/bayeslite
RUN ./check.sh

(4) docker pull ubuntu:trusty
(5) docker build -t bayeslitefail -f Dockerfile.fail .

I've now seen this succeed on trusty (14.04) and fail on wily (15.10), so it's not deterministic, and it's not Ubuntu-version-dependent.
Here's the Dockerfile for wily:

FROM ubuntu:wily
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev libboost-random-dev libxft-dev libpng-dev python-numpy
RUN pip install cython pytest pexpect pandas requests bayeslite-apsw matplotlib crosscat
COPY bayeslite /var/build/bayeslite
WORKDIR /var/build/bayeslite
RUN ./check.sh

I might have fixed this in 3b8d8c4. Would love confirmation.

We now have a docker-based test that shows that this is fixed.
https://probcomp-4.csail.mit.edu/job/bayeslite-docker-runtests/


API service

Hi!
I'm currently serving an API of cases, lockdowns, etc. and want to use this data as my source.
My current source is from wikipedia but the page structure keeps on updating, so the API keeps on breaking. Your source might be a good one! Can I use it? I'll add your repo to the source list.
Another question, are the coordinates in your csv the locations of the hospitals or the place of residence of patients? Also, looks like DOH stopped updating status field?
Thank you!

Hey, sorry for the late reply, didn't see this.

I would be happy if you use it!
Coordinates are for hospitals
Yes, DOH stopped updating status field on march 19

Hey, sorry for the late reply, didn't see this.

I would be happy if you use it!
Coordinates are for hospitals
Yes, DOH stopped updating status field on march 19

Thank you :)


[terra-time-input] Remove placeholder

Summary

This PR
Removes placeholder from the input.
Adds format to be displayed under the time-input.
A part of #1193
Deployment Link

https://terra-framew-remove-pla-jmtcda.herokuapp.com/components/terra-time-input/time-input/time-input
Testing

Additional Details

Time Input:

12-hour

time input:

Thank you for contributing to Terra.
@cerner/terra

Tested: PR #1235
Part 2 of 3 for issue #1193
Reviewed:

Removes placeholders
- Add Date Format Mask as description text below TimeInput

Fix with Followup Issues:

Enhancement: #1246 - Add TimeInputField subcomponent
Enhancement: [add issue #] Enhance keyboard navigation, today/now shortcut, focus styling
Enhancement: [add issue #] Enhance accessibility to announce the output when full date value is selected

Verified by @neilpfeiffer, Ready to Merge

Pass

UX Review

Should these tests be updated to test accessibility now as well? https://github.com/cerner/terra-framework/blob/main/packages/terra-time-input/tests/wdio/time-input-twelve-hour-spec.js#L5

Yes, updated the tests here https://github.com/cerner/terra-framework/pull/1235/commits/df91b795a6bb0aaddb26f731b6723e62e74be4d5


Palette editor

ability to edit cartridge palette directly from the Sprite Editor

added Palette Editor with RGB sliders and copy/paste buttons

also, removed -- pal: metadata definition because all the palette data saves to the cartridge now
done in .27

one more thing, RGB values are in normal order in VRAM now, were BGR

Ahh. I was going to ask about how that worked with the palette metadata. Is there a way to set a pre-defined palette now without setting each color in the editor?


Find Misses ?:$Extend$RmMetadata$Txf...

In seeking to find out why external drive is failing to disconnect, I searched for t:\ with SI. It showed nothing open with that prefix. Using Process Explorer, the usual 4 files that have the prefix shown in the title of this post were found. Images attached.
I feel it is a bug to not find/show such files.
SI version 3.0.6806, Win 11 x64 patched up.

Does System Informer have administrative privileges and have you selected the  Enable kernel-mode driver option in the General settings? The main window contains a + symbol when the driver and user have admin.
The system process (PID 4) is protected and without both of those being true it cannot enumerate those processes. Also the System Informer kernel driver is disabled by default while the Process Explorer kernel driver is enabled by default.

if you have Taskmgr running, close it before trying to eject the drive.

I apologize for ghosting my submission. I was in Admin mode, but I did not have the kernel-mode driver selected. Enabling that caused the expected behavior to materialize.
Thanks for the comment, and kudos for releasing such an AMAZING utility!!


How to add ellipse feature in VectorSource?

I'm using VectorLayer and VectorSource to show features on my map.
I'm successful in showing the point, circle, mutiLingString, and MultiPolygon.
But I don't know how to show an ellipse on my map.

There is no ellipse geometry, but it can be represented as a polygon https://codesandbox.io/s/ellipse-0qyuqu?file=/main.js


Decouple tabs from panels.  When a tab is clicked, if a matching pane…

…l isn't found, set is-active on the tab, skip panel logic, and fire the event as normal.

Thank you, @gallagher-stem. This LGTM :)

LGTM but shouldn't merge until after 1.1 is tagged and released. Changes, especially JS, this late become problematic if not thoroughly tested.

Any update about this one? I'm using this patch in production for more then month and didn't have any problems.

Hello there! We're currently doing some housecleaning on the repository to prepare for the big changes to v2, and part of this is to close the mdl-1.1 and mdl-1.2 branches, and move all 1.1 and 1.2 PRs to the mdl-1.x branch. Since it's not possible to target PRs at a new branch, we're closing this PR and asking you to reopen against mdl-1.x if you think it's still valid.
Thank you!


Fatal Python error: Py_Initialize: Unable to get the locale encoding

Copying text from inside an emulator is hard, so here's a screenshot.

Here are the logs Citra provides.
From what I can tell, this line is most likely returning NULL which causes the interpreter to output the Unable to get the locale encoding error. Hence there's an issue with importing the encodings module.
OSError: [Error 108] Socket operation on non-socket is a strange one. I have to investigate into this one as I'm not sure what's exactly causing it.
As encodings is the first non-builtin module that gets imported, this might also affect any other modules so just stubbing this out or hacking some solution isn't an option.

This has been resolved in one of the most recent commits. The interpreter starts fine now and runs Python scripts without any issues.


ValueAtPercentile() 4.5X on-cpu time optimization: remove expensive condition checks and re-use computation on hotpaths

Summary of optimizations

Benchmark
Baseline ns/op
Comparison ns/op
% Improvement
Improvement factor

BenchmarkHistogramValueAtPercentile-8
31896
7569
76.27%
4.2

BenchmarkHistogramValueAtPercentileGivenPercentileSlice-8
159894
33900
78.80%
4.7

Detail of analysis/changes
Looking at the baseline CPU time by function in the following manner:
go test -bench=BenchmarkHistogramValueAtPercentile -test.cpuprofile=BenchmarkHistogramValueAtPercentile-Baseline.txt -test.benchtime=10s
pprof -web -lines BenchmarkHistogramValueAtPercentile-Baseline.txt

We can observe that the iterator nextCountAtIdx() is the responsible for the majority of the CPU time. ( Even after improving the percentile calculation on the latest release as showcased in #46 ).

Doing the same analysis by line of code as follow:
go test -bench=BenchmarkHistogramValueAtPercentile -test.cpuprofile=BenchmarkHistogramValueAtPercentile-Baseline.txt -test.benchtime=10s
pprof -web -lines BenchmarkHistogramValueAtPercentile-Baseline.txt

We can observe that the top consuming LOC are:

condition on hdr.go#L626 taking ~11% of cpu-time: if i.countToIdx >= i.h.totalCount . Notice that we're doing a more restrictive check at hdr.go#L340 if total >= countAtPercentile {, meaning we can completely avoid this condition check.

condition on hdr.go#L631 taking ~11% of cpu-time: if i.subBucketIdx >= i.h.subBucketCount {

condition on hdr.go#L636 taking ~7% of cpu-time: if i.bucketIdx >= i.h.bucketCount { . Given at max ( percentile 100 ) we will be at the limit of bucketCount we can completely avoid this duplicate check.

return of getCountAtIdx on hdr.go#L643 taking ~19% of cpu-time: return true . Notice that the function is not inlined. We can move away from up to O(N+M) calls to getCountAtIdx to O(1) call of the new optimized method that we've introduced named getValueFromIdxUpToCount.

Looking further at hotspots we can also check that getCountAtIndex is also a good candidate for optimization (on hdr.go#L640  takes 13% CPU time).

Even though we can't remove this call, we can reduce the amount of duplicate computation within it -- specifically on the inner calls to the calculation of bucketBaseIdx that don't change during the time we iterate on each bucket sub-buckets. With that in mind, we've introduced getCountAtIndexGivenBucketBaseIdxand only calculate the bucketBaseIdx on the iteration that change bucket ( meaning no wasted computation on sub-bucket flows ).
Impact of the above optimizations
Following up on all the we've moved from a baseline of:
(base) fco@fcos-Air hdrhistogram-go % go test -bench=BenchmarkHistogramValueAtPercentile -test.benchtime=10s
goos: darwin
goarch: arm64
pkg: github.com/HdrHistogram/hdrhistogram-go
BenchmarkHistogramValueAtPercentile-8                             352322             31896 ns/op               0 B/op          0 allocs/op
BenchmarkHistogramValueAtPercentileGivenPercentileSlice-8          83769            159894 ns/op               0 B/op          0 allocs/op
BenchmarkHistogramValueAtPercentilesGivenPercentileSlice-8        244653             53997 ns/op             248 B/op          4 allocs/op
PASS
ok      github.com/HdrHistogram/hdrhistogram-go 40.829s

to the new optimized ValueAtPercentile / ValueAtPercentileGivenPercentileSlice:
(base) fco@fcos-Air hdrhistogram-go % go test -bench=BenchmarkHistogramValueAtPercentile  -test.benchtime=10s
goos: darwin
goarch: arm64
pkg: github.com/HdrHistogram/hdrhistogram-go
BenchmarkHistogramValueAtPercentile-8                            1671085              7569 ns/op               0 B/op          0 allocs/op
BenchmarkHistogramValueAtPercentileGivenPercentileSlice-8         335668             33900 ns/op               0 B/op          0 allocs/op
BenchmarkHistogramValueAtPercentilesGivenPercentileSlice-8        229405             51147 ns/op             248 B/op          4 allocs/op
PASS
ok      github.com/HdrHistogram/hdrhistogram-go 45.063s

Codecov Report

Merging #48 (8e01ef1) into master (7a2c58a) will increase coverage by 0.39%.
The diff coverage is 96.00%.

@@            Coverage Diff             @@
##           master      #48      +/-   ##
==========================================
+ Coverage   76.91%   77.30%   +0.39%
==========================================
  Files           6        6
  Lines         693      705      +12
==========================================
+ Hits          533      545      +12
  Misses         95       95
  Partials       65       65

Impacted Files
Coverage Δ

hdr.go
90.33% <96.00%> (+0.40%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7a2c58a...8e01ef1. Read the comment docs.


feat: first cut layout

This is a first cut to global layout, with pastel colors.

great! let's go to lunch!


first draft for pymc3, chapter 1 mostly done

Hi there, is this a port to pymc3?

Seems like that's your commit @CamDavidsonPilon "CamDavidsonPilon committed on Feb 23, 2014" ;)

lawl I didn't even notice :)
@bmservilha, BMH was ported to PyMC3 a few months ago: you can see the pymc3 notebooks side by side with the pymc2 ones.


Tests for package functions completed

Welcome to Codecov :tada:
Once merged to your default branch, Codecov will compare your coverage reports and display the results in this comment.
Thanks for integrating Codecov - We've got you covered :open_umbrella:


WIP: New UI + Locales

(Should've done locales in a separate PR but we're running out of time)
This PR implements the new UI which was user tested a few weeks back. It also adds basic support for various non-english locales.
UI TODO

[x] Move to single-screen style layout (i.e. no bottom nav bar)
[x] New robot registration wizard flow and look
[x] Add screen for editing robots
[x] Recalibration
[x] Renaming
[x] Deleting
[x] Nicer robots list w/ pictures and coloured backgrounds etc
[x] State-dependent pictures (i.e. light on/off)
[x] Start robot registration wizard w/ entry in robot list rather than FAB
[x] Interact with toggle robots directly from list
[x] Interact with range robots directly from list
[ ] Reorder robots list (Not being done)
[x] Change to edit mode from main screen
[x] Add further options to the ... button on the main screen
[x] Embed QR scanner in layout

Locales TODO

[x] Add strings.xml file for zh
[x] Add strings.xml file for ja
[x] Add strings.xml file for sv
[x] Add strings.xml file for de-DE
[x] Add strings.xml file for hu
[x] Add strings.xml file for pl
[x] Add strings.xml file for pt
[x] Complete translations

The locales are mostly there thanks to Han, I just forgot some of the strings which needed to be translated.

This is done far as I can tell from the app side but we'll see how well it plays tomorrow (code is ugly; there will be bugs).


L2 rev

changed diagrams for l2-fabric paper

Can one of the admins verify this patch?

Can one of the admins verify this patch?


Issue 184 integrate benchmark with dask

Resolve #184
Integrated dask for multiprocessing
Updated run_benchmark script to accept as input btb.benchmark.challenges as input and btb.benchmark.tuners tunables in order to run targeted benchmarks.

Codecov Report

Merging #186 into master will increase coverage by 0.11%.
The diff coverage is 72%.

@@            Coverage Diff            @@
##           master    #186      +/-   ##
=========================================
+ Coverage   93.59%   93.7%   +0.11%
=========================================
  Files          42      41       -1
  Lines        1139    1112      -27
=========================================
- Hits         1066    1042      -24
+ Misses         73      70       -3

Impacted Files
Coverage Δ

btb/benchmark/tuners/__init__.py
75% <ø> (-8.34%)
:arrow_down:

btb/benchmark/__init__.py
84.9% <72%> (-7.78%)
:arrow_down:

btb/benchmark/tuners/hyperopt.py

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b679b41...7b4af0d. Read the comment docs.


RTL support

Hi
Im in the phase of starting to learn react native and also use nativebase as its template.
My main question here is the support of RTL layouts for multi culture apps.
Does nativeBase support RTL and is there any guide regarding this matter?

We don't have RTL at the moment but that's on our roadmap.

Can you give me an approximate date for the feature to be shipped?
On Feb 15, 2017 15:12, "Kumar Sanket (aka Sanket Sahu)" <
<EMAIL_ADDRESS>wrote:

We don't have RTL at the moment but that's on our roadmap.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/GeekyAnts/NativeBase/issues/518#issuecomment-279989594,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADkHzzJF2ibNV6tSnRmhdUc-ew6MgkrDks5rcuSygaJpZM4MBl0A
.

Not any time soon. It will take at least 4 to 6 weeks. We have a lot of things on our list but we are trying our level best to push forward as soon as possible.

Tnx kumar for your prompt reply. Actually im intending to learn react
native and it takes at least 2 months. Im planning to recode one of my
products using react since then. So, I need the RTL feature for at least 3
months from now. I know giving an answer is not easy for this question but
i only need a probability.
Tnx
On Feb 15, 2017 16:03, "Kumar Sanket (aka Sanket Sahu)" <
<EMAIL_ADDRESS>wrote:

Not any time soon. It will take at least 4 to 6 weeks. We have a lot of
things on our list but we are trying our level best to push forward as soon
as possible.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/GeekyAnts/NativeBase/issues/518#issuecomment-279999258,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADkHz5hh1CtjSV-rCP5Xa8dJmGt36FZuks5rcvCpgaJpZM4MBl0A
.

https://checkout.stripe.com/v3/ZQdHTgQQb08RG01SxL4MA.html?distinct_id=da

@sanketsahusoft are you any news about RTL support?

Hello.
Any chance about RTL support?
Thanks.

Any chance to contribute ? Maybe the only way works for now...

Yes, we'll be happy to accept PR's for RTL support.

+1

any updates about the RTL support ?

Any RTL updates ?

any update?

+1

what is not working in RTL?

+1

+1

+1

+1

+1

+1

+1

low priority :|

I'm putting some of the RTL issues with this UI Toolkit, for those who are interested
One of the issues I've been encounter was icons,
arrow-back is pointing forward in case of RTL, it can be easily fixed by setting another pack of NBIcons.json with every forward to back and vice versa, every right to left and vice versa, and then in src/icon/index put something like this:
...
import { Platform, I18nManager } from "react-native";
...
import icLTR from "./NBIcons.json";
import icRTL from "./NBIcons-rtl.json";
...
class Icon extends Component {
    ...
    getName() {
        ...
        const ic = I18nManager.isRTL ? icRTL : icLTR;
        ...
    }

    getIconName() {
        const ic = I18nManager.isRTL ? icRTL : icLTR;
        ...
    }
}

and that's it, now in case of rtl all icons will read their true icon names through NBIcons-rtl.json instead of NBIcons.json ... I'll create a PR for it later.
Another issue I've been encountered so far is with tabs, it seems that in normal and advanced tab cases both tab indicator and tab's text active highlight are wrong and instead of showing active for the first tab they're showing the last tab(wrong) ... why? I have no idea yet, in case of Scrollable tabs things are much funnier, the tab indicator is at it's right place and will show the first tab (correct) but the tab highlight is at the last tab (wrong) and the scroll goes to the last tab(wrong)!
the buttons are acting exactly vice versa clicking on the last tab will show the first page and clicking on the first tab will show the last page.
Tab issue 1 Tab issue 2 Tab issue 3
The other issue is the drawer at first it comes from the left to right but then it correct itself and animate it from right to left, however randomly it might encounter some issue in which the drawer button won't show the drawer ... you can open the drawer by swiping from right to left but it won't close itself when clicking a menu
Another issue which is the most funny of all is segments ... I'm putting some screenshots for you so you can understand it
Segment issue 1 Segment issue 2
Another issue is picker, well maybe just a style issue? perhaps?
Picker issue
Radio button like the image are always off
Radio issue
Deck swiper have issues as well ... if you swipe the first card the third card will suddenly appear for a sec then it will disappear and second card will appear ...
Style issues in List Separator (probably padding or margin)
List Separator issue
Style issues in check boxes...
CheckBox issue
Everything else seems to work just fine ...
Sorry for the long message

+1

any updates about the RTL support ?

+1 for RTL support

+1

+1

+1

+1

@SupriyaKalghatgi you may need to change the priority now 💯

I really need RTL support. please add this feature in the new update.

+1

+1

As I did in my project I included an rtl file beside my main style, playin with flex easily makes it RTL.
I just don't know how to do it the best way and contribute

+1

+1

1+

i am still facing the tab issue in RTL
any workaround for it ?

@FadiAboMsalam  As a workaround you can use react-native-tab-view.
Aslo it has some issue in reversing swipe, but it works and usable. (better than native base tabs)

+1

still no rtl support!
I got hit in the face after developing an app when I changed the layout to rtl, thought it was mandatory to be supported in such library

trying a fast fix, so far it's working good with no issues
just override the container style like this

when changing to rtl it will change flex-start to flex-end automaticlly

waiting for it !

any update?

+1

+100 xD ... is there a guide line that we can follow either to contribute to this project to add RTL support or even to add it locally to our APPs ... I need this feature

+1 for RTL support Thanks in advance

+1 for RTL support

+1 for RTL support

I changed my TABs like this to work correctly:
import { Platform, I18nManager } from 'react-native';
....
<Tabs>
data.map((node,index)=>{
     return (
          <Tab key={index} heading={......}>
               <MyComponent {...props} itemToShowId = {
                  I18nManager.isRTL
                    ? Platform.OS === 'android'
                      ? data[data.length - 1 - index].id
                      : node.id
                    : node.id
                }
          </Tab>
     )
}
</Tabs>

May it is useful for you.

I had problem with native base tabs when I did forceRtl. Everything works but only native base doesn't show anything on initial load .
So I had a temporary solution
@ https://stackoverflow.com/questions/58736619/nativebase-tabs-issue-for-force-rtl-fix/58736621#58736621

Still, no one did it? Can I make a PR with a fix for it?

+1

Getting to end of 2020 for an issue that was raised in early 2017!
P L E A S E - how long would it take to convert some of these to RTL ?  (You can specific donation for RTL, if it's a big deal)
BTW, I love the work that goes into this library <3

Hi @Lampent , we will be grateful if you create PR for the same.
Thanks

I changed my TABs like this to work correctly:
import { Platform, I18nManager } from 'react-native';
....
<Tabs>
data.map((node,index)=>{
     return (
          <Tab key={index} heading={......}>
               <MyComponent {...props} itemToShowId = {
                  I18nManager.isRTL
                    ? Platform.OS === 'android'
                      ? data[data.length - 1 - index].id
                      : node.id
                    : node.id
                }
          </Tab>
     )
}
</Tabs>

May it is useful for you.

Hello, can you please share the complete code of this example

any update on RTL?

Tabs +1

any update on RTL?

Please add RTL support!

I switched to React Native Paper

Please add RTL support!

+1

We don't have RTL at the moment but that's on our roadmap.

I think your roadmap got broken because you said this on 2017 pal 😉😏😐

+💯

+1 Would love it to have RTL support.

+1

For those still waiting for this to arrive.
I actually got this working with i18n-next. It works well. Just use:
textAlign = 'left'

in NativeBase's Heading and Text components, so that they automatically right-align themselves when in Right mode.

hmmm...

Any updates ?! I guess we won't have RTL support. :(

I think RTL will never be implemented to this project you need all to find some walk around for this feature


feat(storage): use FixedLengthFilterKeyExtractor for fixed type

I hereby agree to the terms of the Singularity Data, Inc. Contributor License Agreement.
What's changed and what's your intention?
PLEASE DO NOT LEAVE THIS EMPTY !!!
#4640
Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] All checks passed in ./risedev check (or alias, ./risedev c)

Documentation
If your pull request contains user-facing changes, please specify the types of the changes, and create a release note. Otherwise, please feel free to remove this section.
Types of user-facing changes
Please keep the types that apply to your changes, and remove those that do not apply.

Installation and deployment
Connector (sources & sinks)
SQL commands, functions, and operators
RisingWave cluster configuration changes
Other (please specify in the release note below)

Release note
Please create a release note for your changes. In the release note, focus on the impact on users, and mention the environment or conditions where the impact may occur.
Refer to a related PR or issue link (optional)

cc @hzxa21


really check requiredKernelConfig

Motivation for this change
I want the system.requiredKernelConfig to check the final config rather than a structured config that can be ignored during the kernel configuration generation.
I have several follow up PRs. Here is a meta issue with what I intent to accomplish: https://github.com/NixOS/nixpkgs/issues/69014
The lib.kernel.loadConfig function is a translation to nix of https://github.com/NixOS/nixpkgs/blob/e598c4001fda0088506cdc12bf8053705c46676d/pkgs/os-specific/linux/kernel/generate-config.pl#L124.
Hopefully we can replace the perl part with the nix one afterwards.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @

@fpletz you looked interested :p

I think we have to be careful about moving computations that are currently done in builder (like generate-config.pl) to Nix because NixOS evaluation is already very slow.

at first, I had moved the check to a check-config.pl but I was not sure how to integrate with nixos/modules/system/boot/kernel.nix (I believe it's an IFD situation ? frowned upon) so I translated it to nix.
Maybe we could disable these checks by default ? nixpkgs currently doesn't run the check  I believe because of:
assertions = if config.boot.kernelPackages.kernel ? features then []
so that wouldn't change much

I've added a commit that kinda reverts to the current behavior, i.e., it only runs the check when the kernel is built with no features set, aka when built with linuxManualConfig. This way, the extra penalty should only concern few people.
Another aspect (regardless of the implementation) is that I wanted a way to decouple the check from the build. For instance in nixops, I want to check if guest kernels have VIRTIO without rebuilding their kernels.

still care. For reference, a new project appeared a few days ago to fix kernel configs https://bitbucket.org/easelab/configfix/src/master/

If this PR is not accepted, should system.requiredKernelConfig be removed then?
It is used across nixpkgs but has no effect and that is confusing

And, ... I might be wrong, but it looks like IFD in the present form of Nix-implementation (because of builtins.readFile), but  bash/perl/whatsoever-implemenation will not be IFD (just like configchecking of webservers are done)


Remove large spaces between string.

Feature ✅
Description
Given a string of words with lots of spaces between the words , remove all the unnecessary spaces.
Example
input:  I______live_____on_____earth
// Underscore( _ ) here are actually white spaces i used underscore to reprensent white space because Github is also omitting
// the extra spaces between the input string mentioned above ;) Just seen real world example of this question while writing it.
output: I live on earth
Checklist:

[x] I have read the project guidelines.
[x] I have checked all the existing projects, before submitting a new project issue.
[x] This issue will be meaningful for the project.
[x] I will contribute more in future

Contributors are supposed to mention their coding language while asking for assignment

I would like to Code this in C++ too..

Can you assign me this . I can code it in C++

@shivangigoel1302 want to try other language?

I would like to work on this task using Java , kindly assign the task.

@pratik-choudhari can you please assign this to me in python.

hii,can you please assign to me for c?
Thank you

@SaloniK17 You have been assigned to 2 issues which is the contribution limit for this repository.


Previous/next navigation on test messages should loop around at end

If these are the correct actions, then verified.

I have gotten accessibility feedback before though that next/previous should not loop around. @meganrogge

Yes, it's not a good accessibility practice. If it's necessary, we should add an aria alert with the index of count when navigating

Or maybe better to not loop in screen reader mode

I think looping is kind of nice, Kai mentioned in a 1:1 that it didn't match the behavior of Problems navigation (which also loops.) Sounds like we should remove the loop in both cases for screen reader mode.


Fix typos

Hello,
This PR will fix :

2 typos in src/BaseComponent.php
1 typo in src/Config/BaseConfig.php

Cheers! :robot:

@ondrajodas any idea why the checks are not ready yet?

Merged in related PR. I'm closing

@pgrimaud thanks a lot for your effort and this PR! 🎉


Update documentation to state that python dicts preserve insertion order

Since Python 3.7 dicts must preserve insertion order in all implementations (in Python 3.6 it was only an implementation detail in CPython). Thus I think it would make sense to state this in the loop section of the docs which currently states the following:

Note, however, that Python dicts are not ordered; so you might want to either pass a sorted list of tuples [...]

I think it would be helpful to state that since 3.7 these measures are not necessarily needed anymore.
This also works towards https://github.com/pallets/meta/issues/26

This statement basically still applies though, since it's about sorted order, not insertion order. Maybe the following: "Python dicts preserve insertion order, which may not be the order you expect. If order matters, you can sort data.items() or use the dictsort filter."

I would be happy to take on this issue... if I do multiple docs issues, would you want a combined PR or separate PRs?

Separate prs for separate fixes please.


Seamless title bar

Describe the solution you'd like
I have noticed that many applications are now utilizing a "seamless" title bar where the window decorations are embedded into the frame.  I know there are already implementations on changing the title bar and also hiding it, but is there any desire to create a similar title bar for MacVim.  I have provided an example from Typora below:
Seamless:

Classic:

I'd like this.

Implemented in #888.


Localstorage issue on private mode in Safari

Hi,
I'm running the latest version of Satellizer and I'm having problems when trying to set the token as LocalStorage is not available.
Does Satellizer have any fallback or solution for that?
Thanks

Since there is no fallback to cookies, Satellizer won't work with Safari in private mode.


zlint: init at 3.4.0

Description of changes
This adds zlint which is a linter for certificates.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

@azahi that is a lot more than I know about! Would you want to be added in the maintainers maybe?

The build currently fails due to a hash mismatch, could you please fix that. Otherwise I think we're good.

Would you want to be added in the maintainers maybe?

That's not necessary.

@azahi the hash mismatch is inconsistent.
I got fetchFromGitHub to generate both. I believe the leaveDotGit renders the derivation non-reproducible.

$ nix-build /nix/store/axhgyqdmpr9h3x4s0b4fsnnaa2kni1hz-source.drv --check
checking outputs of '/nix/store/axhgyqdmpr9h3x4s0b4fsnnaa2kni1hz-source.drv'...
exporting https://github.com/zmap/zlint.git (rev v3.4.0) into /nix/store/fp5p9nmpjn3k61df75dr37zrv3vnman9-source
Initialized empty Git repository in /nix/store/fp5p9nmpjn3k61df75dr37zrv3vnman9-source/.git/
remote: Enumerating objects: 1431, done.
remote: Counting objects: 100% (1431/1431), done.
remote: Compressing objects: 100% (1003/1003), done.
remote: Total 1431 (delta 652), reused 1039 (delta 422), pack-reused 0
Receiving objects: 100% (1431/1431), 2.00 MiB | 2.65 MiB/s, done.
Resolving deltas: 100% (652/652), done.
From https://github.com/zmap/zlint
 * tag               v3.4.0     -> FETCH_HEAD
Switched to a new branch 'fetchgit'
Enumerating objects: 1430, done.
Counting objects: 100% (1430/1430), done.
Compressing objects: 100% (1424/1424), done.
Writing objects: 100% (1430/1430), done.
Total 1430 (delta 623), reused 764 (delta 0), pack-reused 0
Enumerating objects: 1430, done.
Nothing new to pack.
/nix/store/fp5p9nmpjn3k61df75dr37zrv3vnman9-source
$ nix-build /nix/store/axhgyqdmpr9h3x4s0b4fsnnaa2kni1hz-source.drv --check
checking outputs of '/nix/store/axhgyqdmpr9h3x4s0b4fsnnaa2kni1hz-source.drv'...
exporting https://github.com/zmap/zlint.git (rev v3.4.0) into /nix/store/fp5p9nmpjn3k61df75dr37zrv3vnman9-source
Initialized empty Git repository in /nix/store/fp5p9nmpjn3k61df75dr37zrv3vnman9-source/.git/
remote: Enumerating objects: 1431, done.
remote: Counting objects: 100% (1431/1431), done.
remote: Compressing objects: 100% (1003/1003), done.
remote: Total 1431 (delta 652), reused 1040 (delta 422), pack-reused 0
Receiving objects: 100% (1431/1431), 2.00 MiB | 3.90 MiB/s, done.
Resolving deltas: 100% (652/652), done.
From https://github.com/zmap/zlint
 * tag               v3.4.0     -> FETCH_HEAD
Switched to a new branch 'fetchgit'
Enumerating objects: 1430, done.
Counting objects: 100% (1430/1430), done.
Compressing objects: 100% (1424/1424), done.
Writing objects: 100% (1430/1430), done.
Total 1430 (delta 623), reused 764 (delta 0), pack-reused 0
Enumerating objects: 1430, done.
Nothing new to pack.
error: hash mismatch in fixed-output derivation '/nix/store/axhgyqdmpr9h3x4s0b4fsnnaa2kni1hz-source.drv':
         specified: sha256-1T8WAWsivSEB2xVEM+GpWJuD3DGXPa9uNpuN6/ABsns=
            got:    sha256-se8Z31dBhoarqouFkVjOPIG86K5G/VabIKT9V6RgRKM=


Run CI on Windows

Previously, we didn't test lsif-java on Windows resulting in bugs like
https://github.com/sourcegraph/lsif-java/issues/422. This commit adds a
build matrix to our CI job and fixes path escaping logic so that it
should work correctly on Windows.
Test plan
See new CI job for Windows.

Superseded by #436 which is opened from origin instead of my fork.


[WIP] More flexible plugin architecture

This is a prototype for a more flexible plugin architecture.
The goals of the refactoring are:

Enabling plugins to be added to a compiled dronecore "core" without having to recompile everything.
Remove some of the autogenerated (magic) code which is hard to understand.

What changes:

Instead of including the plugin folders and compiling them in the plugins are added using add_subdirectory. Each plugin contains then it's own add_library and creates a dronecore_pluginname.so.
The API changes from:device.action().takeoff();

toauto action = std::make_shared<Action>(&device);
action.takeoff();

(action is now specific to the device which is not entirely obvious).

I would appreciate feedback, tips, opinions.

Coverage increased (+0.9%) to 17.892% when pulling 9d590ec348fc56830f05f8464aba49bdf8b68b44 on dynamic-plugins into 353e4fd04406df2acfbe4273657bbc774e300e84 on develop.

Hi Julian

So is add_subdirectory  to add the plugins required to build the core and later use the plugins with it? Better for the core not to have to know what plugins exist.

If not, what does this do for you?

So you're creating a new action and providing it a reference to the associated device? It automatically gets destroyed when the action goes out of scope?

it is possible for an action to be called on a device that no longer exists?
Presumably if you have a swarm of devices to manage you'd have to create them each unique "action" items?
I don't really have much to say about this. It seems a little more complicated, but I suspect developers would get used to it as long as it is completely consistent.

@hamishwillee: Let me try to share my opinion, @julianoes can correct me if necessary :-).

So is add_subdirectory to add the plugins required to build the core and later use the plugins with it? Better for the core not to have to know what plugins exist.

The core does not need the plugins to build, but the plugins need the core. I usually see it like this: you have the root CMakeLists.txt that sets the global environment stuff (some variables, some platform-specific things). Then you have your different components (executables, libraries) in their own folder, each with their own CMakeLists.txt. The root CMakeLists.txt add_subdirectory as "let's now build this component based on its own CMakeLists.txt and whatever I defined myself".
In our case, each plugin is becoming a component (a library, to be specific). And core is another library (it should probably have its own CMakeLists.txt, btw). And they are all linked by the integration_tests_runner executable (lines 272 and following). The gRPC server will also link them.
Now, what I think makes the whole thing a bit confusing is that the plugins are actually needing some files of the core (e.g. action uses includes from include, core and libs/include, that are included in line 96 of the root CMakeLists.txt).

@julianoes
everything looks good to me other than point which @hamishwillee brought up

1.So is add_subdirectory to add the plugins required to build the core and later use the plugins with it? Better for the core not to have to know what plugins exist.
•If not, what does this do for you?

@JonasVautherin That would make perfect sense, except for the fact that the CMakeLists I referred to is the core, depending on the plugins. As per https://github.com/dronecore/DroneCore/pull/188#issuecomment-348895571

@hamishwillee: I am not sure I understand your last point. There is no "core" CMakeLists.txt (core/CMakeLists.txt) right now. There is a "root" one (CMakeLists.txt at the root of the repo), and there are CMakeLists.txt for each plugin (plugins/<plugin-name>/CMakeLists.txt).
We should move some stuff from the root CMakeLists.txt into a newly-created core one, indeed. But it is perfectly normal to have the root CMakeLists.txt include (add_subdirectory) the different components we want to build in the project (here the core library and the plugins). This doesn't show a dependence between them. What does show a weird dependency, though, is the include_directories. If we have files that are required by both core and the plugins, then they should probably go in their own library.
Does that make it clearer on your side, or am I off-topic?

@JonasVautherin Agree. But the concern here is the top CMakeLists.txt should be aware of plugins that exists and their directory path should be added.
In this case still there is dependency on plugins to build core.

@avinash-palleti: Oh, you mean that some add_subdirectory lines are missing for some plugins? I thought the other plugins were not finished yet, but I guess they will be added later.

@julianoes one more concern, Have you thought about gRPC ?
I think one should recompile gRPC_Server alone to add or remove plugins with this architecture unlike where user need to recompile everything in current architecture.

@avinash-palleti: Oh, you mean that some add_subdirectory lines are missing for some plugins? I thought the other plugins were not finished yet, but I guess they will be added later.

@JonasVautherin Had offline discussion with @shakthi-prashanth-m , it is clear now :) Thanks

Even earlier, action was specific to device isn't it ?
We get action from device itself => device().action().takeoff(). I am not quite clear about this.

Thanks for the review/comments!

@hamishwillee:

So is add_subdirectory to add the plugins required to build the core and later use the plugins with it? Better for the core not to have to know what plugins exist.

You're right. The core (libdronecore.so) library should not know about which plugins are there. However, the integration tests need these libraries and therefore we need to add/specify which plugins to include.

So you're creating a new action and providing it a reference to the associated device? It automatically gets destroyed when the action goes out of scope?

Correct.

it is possible for an action to be called on a device that no longer exists?

Until now, we never delete a device but it is a good point to keep in mind.

Presumably if you have a swarm of devices to manage you'd have to create them each unique "action" items?

Unfortunately, yes, that's how it would work. On the upside however, it will be closer to how the gRPC interface will look like.

I don't really have much to say about this. It seems a little more complicated, but I suspect developers would get used to it as long as it is completely consistent.

It removes a bunch of the cmake automagic, so it also gets less complicated, at least to add a plugin.

@JonasVautherin:
Now, what I think makes the whole thing a bit confusing is that the plugins are actually needing some files of the core (e.g. action uses includes from include, core and libs/include, that are included in line 96 of the root CMakeLists.txt).

Yes, that's ugly. We definitely need to move the core into its own folder and it needs to be its own library. The question is how to get the includes from that library in the plugins since they need it.

Coverage decreased (-17.0%) to 0.0% when pulling 1ea72d633d09fcc20ac69acd7aed752786c919b0 on dynamic-plugins into 353e4fd04406df2acfbe4273657bbc774e300e84 on develop.

Thanks for explanations @julianoes . FWIW this is a lot clearer, particularly now you split out core. The client/user side code is not significantly more complicated.
It would be nice if you could still access the plugins from the device. It doesn't matter in our simple examples, but I can imagine an architecture where we have a "management" class for each vehicle in a  swarm, and each would have to manage multiple plugins as well as the device.

Coverage decreased (-17.0%) to 0.0% when pulling 66642c4a56bbcb1d3890f6097caedcddb6ca0927 on dynamic-plugins into 353e4fd04406df2acfbe4273657bbc774e300e84 on develop.

Coverage decreased (-17.0%) to 0.0% when pulling 66642c4a56bbcb1d3890f6097caedcddb6ca0927 on dynamic-plugins into 353e4fd04406df2acfbe4273657bbc774e300e84 on develop.

@julianoes Feels like I am getting a new coveralls scan every time someone adds a comment? Misconfiguration?

@julianoes Feels like I am getting a new coveralls scan every time someone adds a comment? Misconfiguration?

I'm pretty sure it's every time CI runs. I guess we could disable the comments and just have the status at the bottom.

It would be nice if you could still access the plugins from the device. It doesn't matter in our simple examples, but I can imagine an architecture where we have a "management" class for each vehicle in a swarm, and each would have to manage multiple plugins as well as the device. I'm probably just over-complicating the problem.

I don't know how we could do this without losing compile team safety.
Basically, we can't have:
dc.device().action().takeoff();

This is because when we compile the core which includes Device we don't know Action.
One way to "automatically" connect some of the device state such as init() enable() etc. to a device would be by using something like:
auto telemetry = std::make_shared<Telemetry>();
dc.device().register_plugin(reinterpret_cast<PluginBase *>(telemetry.get()));

We could maybe hide the ugly cast and make it:
dc.device().register_plugin(telemetry->get_base());`

Do you have other suggestions, ideas?

So how would you then access a registered Telemetry module? And what happens if someone accesses a module that is not registered?
My feeling is that this sort of approach could be added later if the issues I am envisaging proved to be real problems.

Do you have other suggestions, ideas?

Automatic run-time registration of plugins based on presence of config files (or just .so) in a specified relative location to the core?

It would be nice if you could still access the plugins from the device.

Thinking about it, I believe it is very fine (actually even better) the way it is proposed in this PR:
auto action = std::make_shared<Action>(&device);

For multiple reasons:

Dependency inversion: this way we can test action by passing a mock of device.
Out-of-process plugins: actually also because of dependency inversion :-). With this way of constructing the plugin, we could have a device implementation for in-process plugins (the way it is now), but we could also create another device implementation that actually sends the data over gRPC from the plugin to the core. Sounds like a nice way to abstract away the "in-process vs out-of-process" question.

Then for a swarm situation, I don't see a problem with this construct (as opposed to the previous one).

Automatic run-time registration of plugins based on presence of config files (or just .so) in a specified relative location to the core?

Good idea, but I think this does not belong to the core. Could be done in dronecore_server, if we go for the "in-process" version. And for customers using the DroneCore libraries only (i.e. libdronecore.so and the corresponding libplugins.so), it's their problem.

@JonasVautherin
Thinking about it, I believe it is very fine (actually even better) the way it is proposed in this PR:
auto action = std::make_shared<Action>(&device);

I agree and it might also be matching the gRPC interface when you use an action message and specifiy the device as an argument.

@julianoes FYI, docs updates will be potentially quite significant. Hope to get onto that next week: https://github.com/dronecore/docs/issues/87


Docker Backend added

Good day, first of all, thanks for your work.
Here as backend for docker. For this backend the list of hosts are treated as docker images.
Usage:
testinfra --connection=docker --hosts=centos,alpine:3.1 test.py

I've been thinking about putting docker_host parameter in backend init to command line parameters, but its occur that all the parameters are defined in plugin.py. You possibly should think about providing backend specific parameters in backend code, not in one central file.

Hi thanks for your feedback !
Indeed, I consider a docker backend is a "must have" for testinfra. After thinking about the implementation I will be happy to merge it.

Moved docker-py to optional requirements as it's done for paramiko

Another issue is that docker-py doesn't seem to provide a way go get stdout and stderr separately
I opened https://github.com/docker/docker-py/issues/704

I wonder if https://github.com/d11wtq/dockerpty can be help meanwhile.

Yes, docker-py is rather user-unfriendly. I'll look into dockerpty.

Hey I've opened #13 with an implementation using the docker native client. Let me see if it works for you. Thanks

Can one of the admins verify this patch?

The docker backend was merged from #13
Thanks for your contribution.


Not working with Sphero Bolt

I'm trying to connect with the Sphero Bolt but when I try and run the example program I get the following error:
/Volumes/Promise Pegasus/Miscellaneous/Programming/Sphero/sphero.js/lib/adaptors/ble.js:45
var uuid = peripheralId.split(":").join("").toLowerCase();
It looks like it's something to do with the Bluetooth connection, however I have installed installed the NodeJS serialport module and sphero serialport as documented.
I did have some problems pairing via Bluetooth though. I can't seem to see or connect to the Bolt through the Bluetooth configuration panel but when I connect through SpheroEdu I can then see the device connected fine. I still can't see anything in /dev though. Although the Sphero documentation does say that the Bolt uses Bluetooth Classic.
Are you able to help?
Cheers,
Dino

Hello,
I've got the same question. But I'm unclear on why this is different from the BB-8 as in  this part of the documentation.
But I'm not able to discover my Bolt using noble.
Regards,
Ogier


Updating dockerfile so it builds again

Ah I haven't been building locally and instead using the GitHub actions, so I missed this upgrade to jdk17/gradle url change. Will merge.


update rule: react-a11y-anchors - add HTML Code Sniffer checks

From HTML Code Sniffer SC 4.1.2: Name, Role, Value (Level A) (
SC 4.1.2: Name, Role, Value (Level A)) (https://squizlabs.github.io/HTML_CodeSniffer/Standards/WCAG2/4_1_2)
• http://www.w3.org/TR/WCAG20-TECHS/H91
• Anchor element found with an ID but without a href or link text.
• Anchor element found with a name attribute but without a href or link text
• Anchor element found with no link content and no name and/or ID attribute
• Anchor element with no href, but with an ID and text. This breaks the intended role of an "A" element being a link. It will usually be around text inside another parent element (such as a heading); the ID should be moved up for the same effect.
• Link with text, but no href or ID. This means it does not have an accessibility API "value"
Link with a href attribute, but without link text. This means it does not have an accessibility API "name".
Notes:
"Links with the same HREF should have the same link text." You could keep as a static variable across all the files a map from link to link text and enforce this across files.

☠  It's time! ☠
Per #876, this repository is no longer accepting feature pull requests. TSLint is being deprecated and we recommend you switch to https://typescript-eslint.io.
Thanks for open sourcing with us, everyone!


Re-direct print statements to log file

There are some functions we've written that come with their own print statements ("Loading XXX file!", etc), and I think it would be nice to redirect some of those outputs to individual logger files in a clean way (i.e. without having to re-write all of our functions to take a logging object as a parameter).
I just learned that if you don't specify a log file it will just print to stdout so maybe we can have a PR that just replaces every instance of print with logger.info (or warning, error, etc).
Then anytime we run a function, if no log file is specified, it will retain its previous behaviour (printing to stdout), and if we do specify one, then it will print to a log file. not sure how this interacts with @hmacdope logging.FileLogger class.
i.e. in #192 I've improved run_docking_oe.py to use a logger. but the run_docking_oe function (imported from asapdiscovery.docking.docking) that is called inside mp_func has its own print statements which are not captured.

Generally using logger.info is better than using  specificlogger.info() so I would support this.

I tried to implement some of these changes in #192 but I can't get it to behave correctly.

What exactly is going wrong?

So you can only change the root logger configuration 1 time, which means you have to specify a name and then use getLogger if you want different functions to all write to the same log file. I think the implementation I've made now seems to be working well.

If your happy with a modified implementation lets roll with that. I can review as well on the PR.

Added you as a reviewer!

Ta! Reviewing now.


Implement a mev-boost circuit breaker

Description
One suggestion is https://hackmd.io/@ralexstokes/BJn9N6Thc but discussions are continuing about the best approach. Just logging this so we ensure we have something and don't forget it.

duplicate of #6058


question

Hello, can I get 19 rounds of the CRAFT cipher's related-tweakey impossible differential key recovery attack by applying your code named main? Out of which 10 rounds are differentiators

Hi,
Thank you for your interest in our work!
I have prepared a brief manual for my code. You can view it by running the following command:
python3 idkr.py --help

We did not report a 19-round related-tweak impossible-differential attack on CRAFT in our EUROCRYPT 2023 paper.
However, if you would like to generate a 19-round attack, you can try a command like this:
python3 idkr.py -Rb 3 -R1 6 -R2 7 -Rf 3 -of 0

I encourage you to first read our paper and understand the logic behind the tool before using it. Additionally, please refer to the CRAFT specification and note that its differential behavior depends on the starting round. Applying a related-tweakey attack on CRAFT is not very attractive, as the design does not claim any security in the related-key setting. However, related-tweak attacks do make sense. Please note that in the related-tweakey setting, multiple keys are used, while in the related-key setting, the key is fixed.
I am always open and happy to answer any questions or comments regarding my papers, and I would be delighted to help you with your queries. I appreciate all questions, but I’d be especially glad to discuss more advanced topics that show you've already taken the time to explore our paper. Thanks for your understanding :-)

Thank you very much for your reply! Please allow me to explain my situation, my teacher and I are now very interested in the impossible differential attack on the correlation-tweaky version of the CRAFT cipher, our team published a Chinese paper about it in 2023 (see attached), which has a 19 rounds impossible differential attack on CRAFT, which is a 10-rounds differential, which adds 5 rounds at the top, the 4 rounds added at the bottom. But this result was derived by hand, and now my teacher wants me to reproduce this process with your code for even higher rounds, and we would like to help us reproduce it with your code for this paper in 2023, but I am having a lot of problems with this process, such as whether the 10-round differentiator is equal to 5+5 or 6+4, etc., or what the colors of the output image represent as we images are black and white and so on, if you are interested, you can learn more about our paper, we will be grateful if you can help us through your code, looking forward to your reply!

大论文 -最终版.pdf

Regarding the distinguisher, it can even be a 13-round distinguisher: 6 + 7 rounds.
For the key recovery, it can be 3 rounds before the distinguisher and 3 rounds after it.
As I explained before, to derive an attack based on this decomposition, you can use the following command:
python3 idkr.py -Rb 3 -R1 6 -R2 7 -Rf 3 -of 0

Note that the tool may find a single-tweak attack even if you allow the difference to occur in the tweak. This is because, in some cases, the time complexities of single-tweak and related-tweak attacks are almost the same.
For the interpretation of our shapes and colors, please refer to the paper.
Running my tool takes only a few seconds on a regular laptop. So, feel free to run it for other decomposition of the block cipher to understand which one yields a better attack.
Good luck!

Thank you very much for your reply reply, I have another question, it is for 19 rounds of CRAFT's related-tweakey impossible differential attack, using the idea of intermediate state differentials offset with handle value differentials to increase the number of rounds of the attack and reduce the complexity, can this idea be applied to your code? Looking forward to your reply!

Dear Professor, first of all I apologize for my last expression error, your reply reminded me, actually our team's aim is to do craft's related-tweak's impossible differential attack, so I want to implement it with the help of your code tool, but I saw that you only have related-tweakey version in your code, I want to ask can I change it based on your code to I would like to ask if it is possible to change the code based on your code to the related-tweak version? I would like to ask if it is possible to change the code based on your code to fit the related-tweak version, i.e. to fix the key, where is the key input location in your code? Looking forward to your reply!

Yes, you can use the code to find related-tweak ID attacks. The related-tweakey version of my code for CRAFT injects a difference in the tweak while keeping the difference in the key at zero. Therefore, it can identify related-tweak ID attacks.
If you run the related-tweakey version of my code and it still returns a single-tweak attack, it may be because related-tweak attacks are not always superior to single-tweak attacks. However, you can give it a try.

Dear Professor, First of all, thank you for your reply, according to your reply, now my understanding is that your code about craft's related-tweakey is actually essentially related-tweak code, so if I run the command “python3 idkr.py -Rb 3 -R1 6 -R2 7 - Rf 3 -of 0”, its result (both pdf and complexity) is actually the result of related-tweak? In addition, another question is how to understand your following sentence, why it returns single-tweak, and I would like to know what kind of attack is reacted by the pdf and complexity obtained after executing the command? --- “it still returns a single-tweak attack, it may be because related-tweak attacks are not always superior to single-tweak attacks “
Looking forward to your reply!

Dear Professor, thank you for your last reply, I have another question: what is the meaning of “offset” in the input parameter of your code, how does it affect the attack process, and what kind of result will different parameters lead to?
I look forward to your reply!

Dear Professor, thank you for your last reply, I have another question: what is the meaning of “offset” in the input parameter of your code, how does it affect the attack process, and what kind of result will different parameters lead to?
I look forward to your reply!

Refer to the paper!


Filtering from Image to Name causes flickering

When you switch context going between or within views, or from Name to Image in the Processes View, or in the Container view, the screen flashes the "nothing here" circle before filtering by images.
I noticed this in VERSION b89e9ecON

I am not seeing this. I get a brief blank (modulo controls) canvas, but no "nothing here" circle.

@davkal has anybody managed to reproduce this?

has anybody managed to reproduce this?

@fbarl could you give this a try?

Yup, I was able to reproduce it multiple times when switching from BY NAME to BY IMAGE view of processes. It really happens in a blink of an eye, but I managed to catch a screenshot before the topology is rendered:

@davkal I can take a look into it this afternoon.

Hmm... After doing some more testing, I couldn't reproduce the problem on dev nor production.
The problem appears for me only locally after resetting scope (e.g. by loading a report) while keeping the Scope UI running without refreshing the page. Only then I'm able to reproduce it by clicking on the BY IMAGE view that pops up under PROCESSES (as on the screenshot above), but according to api_topologies.go, that view shouldn't even be there:
APITopologyDesc{
	id:          processesID,
	renderer:    render.FilterUnconnected(render.ProcessWithContainerNameRenderer),
	Name:        "Processes",
	Rank:        1,
	Options:     unconnectedFilter,
	HideIfEmpty: true,
},
APITopologyDesc{
	id:          processesByNameID,
	parent:      processesID,
	renderer:    render.FilterUnconnected(render.ProcessNameRenderer),
	Name:        "by name",
	Options:     unconnectedFilter,
	HideIfEmpty: true,
},
APITopologyDesc{
	id:       containersID,
	renderer: render.ContainerWithImageNameRenderer,
	Name:     "Containers",
	Rank:     2,
	Options:  containerFilters,
},
APITopologyDesc{
	id:       containersByHostnameID,
	parent:   containersID,
	renderer: render.ContainerHostnameRenderer,
	Name:     "by DNS name",
	Options:  containerFilters,
},
APITopologyDesc{
	id:       containersByImageID,
	parent:   containersID,
	renderer: render.ContainerImageRenderer,
	Name:     "by image",
	Options:  containerFilters,
},

In fact, the newly added view points to the same topology as BY IMAGE view under CONTAINERS, which is supposedly a bug on its own - @davkal, I wonder if it's been referenced by an existing issue.
Since the "nothing here" bug seems to appear now only under those circumstances, I think it's safe to say it will be gone once we fix this extra view issue.

Indeed there should be no 'by image' view under processes. And I cannot see one in my testing.
-> closing