Additional api protocol conformances

Motivation
The generated code from this tool offers a very good starting point for integrating an API into a larger project. One challenge that I've run into when using this tool is testability and mocking. While it is possible to write mocks by hand I have found it very useful to use code generation tools (e.g. Sourcery) to do most of the heavy lifting. To enable behavior like this it is often necessary to annotate the client/server source in some way. This change offers a way to let the APIProtocol declaration have a conformance to one or more user-defined protocols to achieve this.
Modifications

Added an option to the generate command to list protocols that the user wishes the API to conform to
Added entry to the config-file to list protocols that the user wishes the API to conform to
Added protocol conformance of user-defined protocols to the APIProtocol
Added test to verify correct behavior

Result
The generate command and config file will get an extra option (additionalAPIProtocols) for the user to list additional protocols they wish that the APIProtocol type conforms to.
Test Plan

Added a reference test that generates an empty API with conformance to an additional example protocol
Modified existing config file test to include this change

@peterringset thanks for putting up this patch and your interest in the project!
We've heard of folks wanting this before (e.g. https://github.com/apple/swift-openapi-generator/issues/573, https://github.com/apple/swift-openapi-generator/issues/383).
While I'm not against it, I'd like to understand the motivation more. Unlike the issue that asked to attach user-defined macros, IIUC this PR would allow users only to declare a protocol conformance on the generated protocol APIProtocol. Some questions:
What's the developer experience when the protocol doesn't exist? Presumably the generated code just fails to compile but we need to make sure this surfaces well, because that conformance is now in a derived source file.
What's next for the adopter? Are we relying on them having to go and provide the protocol witnesses to actually conform to the protocol? If this is the case then does this bring much value? It seems like it will just separate the conformance from the conformance declaration in user code, which might actually be more confusing?
Potentially this is mainly focused on protocols that rely only on default implementations so declaring conformance is enough?

Hi! Thanks for the quick feedback. I'll write my replies one by one below:

What's the developer experience when the protocol doesn't exist? Presumably the generated code just fails to compile but we need to make sure this surfaces well, because that conformance is now in a derived source file.

Yes, that's true. My initial thought would be that this is something that the developer opts in to, and it's hopefully not something that they would unintentionally add to their code generation. With that in mind I hope that all developers adopting this will understand how to use this option and declare the necessary protocol(s) in a different file that's available in the generated code's scope. I don't know if there's anything more that could/should be done? Maybe adding some comments to document what's happening?

What's next for the adopter? Are we relying on them having to go and provide the protocol witnesses to actually conform to the protocol? If this is the case then does this bring much value? It seems like it will just separate the conformance from the conformance declaration in user code, which might actually be more confusing?

This usage would in most cases mean that the protocol(s) to be added already exists somehow in the package that we're generating code in. In my particular case it's necessary for APIProtocol to inherit from the custom protocols (AutoMockable in my case with Sourcery) for the mocks generation to work properly. I.e. protocol APIProtocol: Sendable, AutoMockable { ... works, but extension APIProtocol: AutoMockable { ... does not work, since protocols cannot declare inheritance to other protocols like that. This allows me to generate a mock for APIProtocol, and not for Client.
Another use case could be that the custom protocol requirements exactly match the APIProtocols signatures, such that APIProtocol is already implementing the protocol by just declaring conformance. Although, this could also be solved other ways.

Potentially this is mainly focused on protocols that rely only on default implementations so declaring conformance is enough?

Yep, I think that is the most common use-case for a feature like this. The Sourcery use-case for instance has an empty protocol AutoMockable that works kind of like an annotation, and allows Sourcery to perform the mock generation for protocols that inherit from AutoMockable.

Hi @peterringset,
yeah this is an interesting situation. I'm also not necessarily against landing this PR, but I'd like to explore how much this really helps compared to:
public typealias AutoMockableAPIProtocol = APIProtocol & AutoMockable

and then using AutoMockableAPIProtocol in your codebase, which has the advantage of not mixing the generated code from the two separate tools? Or would Sourcery not generate the code if the conformance is declared in the typealias?

@czechboy0 No, unfortunately Sourcery doesn't pick up the AutoMockableAPIProtocol typealias as an eligible type for mocks. AFAIK it only cares about protocols directly inheriting AutoMockable, so composition will also not work in this particular case.

I see. From briefly skimming its sources, I wonder if support for inspecting typealiases could be added, something around https://github.com/krzysztofzablocki/Sourcery/blob/8acc3bf2ba1828e5f1126c1acc23a9e79561652d/Templates/Templates/AutoMockable.stencil#L335C10-L335C55 ?


Update how-to-connect-configure-ad-ds-connector-account.md

Small update under the Permissions Summary table to state the obvious need to have read permissions as well. Customer/Support might only look at this table and decide to apply Write permissions only, which is not enough and will generate an error in AADConnect.

@NuAlex : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


python311Packages.censys: 2.2.7 -> 2.2.8

Diff: https://github.com/censys/censys-python/compare/refs/tags/v2.2.7...v2.2.8
Changelog: https://github.com/censys/censys-python/releases/tag/v2.2.8
Description of changes

Things done

Built on platform(s)

[ ] 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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.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

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 261991 run on x86_64-linux 1

6 packages built:

python310Packages.censys
python310Packages.censys.dist
python311Packages.censys
python311Packages.censys.dist
theharvester
theharvester.dist


slack icon, dollar icon

Wanted to throw those two suggestions in for the next round...
thx

I'm pretty sure this project is dead.


Add some testing guidance and a PR template with a reference to it.

@redhat-cop/mdt
resolves #109

@etsauer This might just be how it renders, but the PR template seems to be missing references to resolves and related to
https://github.com/etsauer/mdt-quickstart/blob/pr-testing-guidance/.github/pull_request_template.md


Calcite is too aggressive in simplifying a having filter on multi-value dimensions

Affected Version
Druid 0.16.0 (and prob earlier)
Description
With this dataset (as fs):
{"time":"2019-08-14T00:00:00.000Z","srcGroups":["x","y","z"],"dstGroups":["a","b","c","d"]}
{"time":"2019-08-14T00:00:00.000Z","srcGroups":["x","y","z"],"dstGroups":["a","c","d"]}
{"time":"2019-08-14T00:00:00.000Z","srcGroups":["x","y","z"],"dstGroups":["a","g"]}

Doing this query:
SELECT
  "dstGroups",
  COUNT(*) AS "Count"
FROM "fs"
GROUP BY 1
HAVING "dstGroups" = 'a'
ORDER BY "Count" DESC

Yields:

Which is not what is expected.
The plan is:
{
  "queryType": "topN",
  "dataSource": {
    "type": "table",
    "name": "fs"
  },
  "virtualColumns": [],
  "dimension": {
    "type": "default",
    "dimension": "dstGroups",
    "outputName": "d0",
    "outputType": "STRING"
  },
  "metric": {
    "type": "numeric",
    "metric": "a0"
  },
  "threshold": 100,
  "intervals": {
    "type": "intervals",
    "intervals": [
      "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z"
    ]
  },
  "filter": {
    "type": "selector",
    "dimension": "dstGroups",
    "value": "a",
    "extractionFn": null
  },
  "granularity": {
    "type": "all"
  },
  "aggregations": [
    {
      "type": "count",
      "name": "a0"
    }
  ],
  "postAggregations": [],
  "descending": false
}

This is because Calcite converted the HAVING on a grouping key into a WHERE, which given Druid multi-value semantics is not correct to do.
A workaround is to prevent Calcite from simplifying the HAVING filter by complicating the HAVING into something that can not be simplified as easily.
SELECT
  "dstGroups",
  COUNT(*) AS "Count"
FROM "fs"
GROUP BY 1
HAVING "dstGroups" = 'a' OR "Count" < 0
ORDER BY "Count" DESC

Which yields:

Is there any progress or triage on this issue?


Add the mrkdwn_in property to format on attachment fields.

By default attachment fields will not be formatted.
To enable it, set mrkdwn_in property on attachments.
See also https://api.slack.com/docs/formatting#message_formatting .

@hfm that's great, thanks

thanks!

This is now available in v2.8.0 from Rubygems


Shift-tab tooltip for scaladoc/javadoc/parameters hint

Python kernel shows docstring tooltip on shift-tab, which is very useful for finding information on function and parameters:

It is possible to support something like this for scala kernel?
If somebody can point me in the right direction, I can try to implement it myself.
Thanks.

Should now "just" be a matter of implementing this method well.
Although last time I checked, it seemed to be no easy task to get the javadoc of symbols this way... Maybe scalameta and / or LSP stuff could help here, cc @olafurpg.

@alexarchambault we have the pieces to implement this but there's no ready solution for it yet. I'll be working on it in the coming weeks and can publish a module with an API to go from a symbol to its docstring, which works for both Scala and Java. Do you have access to the Scala compiler symbol and do you have access to the sources.jar of the classpath?

We're using Ammonite, so we have an instance of an ammonite.interp.Interpreter, which itself has a CompilerLifecycleManager, which can give us the current compiler instance.
Note that we receive requests as plain text, with an index at which the user would like more details.
Ammonite adds source JARs along standard JARs in the classpath (for now).
One particularity of Ammonite is that some sources and their classes don't originate from JARs, but only live in memory. (These correspond to the code the user entered. Although there may be similar stuff in sbt projects or other that LSP should handle...)

The way I imagine the API will look like is roughly like this
trait Docstrings {
  def addSourceJar(jar: Path): Unit
  def addVirtualFile(filename: String, code: String): Unit
  def docstring(symbol: String): Option[String]
}

I would ideally like the implementation of addSourceJar to not rely on persistent caching but I'm not sure yet if that will be too slow.
In addition, you will need a way to produce the correct symbol string format according to the spec here

Scala symbols https://scalameta.org/docs/semanticdb/specification.html#scala-symbol
Java symbols https://scalameta.org/docs/semanticdb/specification.html#java-symbol

We already have an implementation in Scalameta that does this for scala-compiler nsc.Global.Symbol.
In the meantime, you can prototype this functionality by showing the signature of the compiler symbol with symbol.info.toString.

How is tooltip string rendered? We might be able to provide html markup with hyperlinks but I haven't looked into it in depth.

Per the Jupyter spec, tooltips can be text, HTML (even with images and JS), markdown, ...


gherkin-c: Fix test failures due to changed JSON serialization format

Summary
Fix tests failing due to changes to the JSON output format of pickles, ast and the source.
Details

Updated the ast printer
Updated the pickle printer
Updated the source printer
Updated the error message format
QuickFix: Use the same name for Scenario and Scenario Outline when printing tokens
Fixed a bug where the ordering of location data in pickles of scenarios with examples was wrong

Motivation and Context
This is one of the changes required to get gherkin-c to build without failures again. In my opinion it makes sense to fix the tests in two sets of changes, this one and #552. By merging this PR first it will be easier to verify that #552 (which touches a lot of code) does indeed not cause regressions and makes all tests pass again.
How Has This Been Tested?
Using the changes in #555 it is possible to run all tests instead of stopping after the first failure as running make does. When doing so one can see that there are now only three tests of the "good" test data set (incomplete_scenario_outline, rule, scenario_outline) and two of the tests in the "bad" test data set (multiple_parser_errors, unexpected_eof) which fail.
For both "bad" test cases as well as the rule and scenario_outline test cases failure is expected until #552 is merged. incomplete_scenario_outline however shows a real bug that incidentally also got fixed in #552. That bug has been around since at least v5.1.0, yet it wasn't caught because the reference pickles were also incorrect.
Types of changes

[x] Bug fix (non-breaking change which fixes an issue).
[ ] New feature (non-breaking change which adds functionality).
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected).

Checklist:

[ ] I've added tests for my code.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

@brasmusson can I ask you to review this?

Hi @Corristo,
Thanks for this PR and sorry for not responding earlier. We don't currently have a maintainer of the C implementation - it used to be @brasmusson, but I'm not sure we can count on him as much as we used to.
We're also looking to reduce the number of Gherkin implementations we have to maintain and we're aiming for a consolidation approach based on protocol buffers.
What are you using gherkin-c for?

@aslakhellesoy
I'm trying to improve cucumber-cpp by providing a means to have the test-executable itself read the feature files (or maybe pre-compiling the feature files into test executables, not settled on the exact details yet) instead of using the ruby cucumber server to run the tests.
There are several reasons for that. First of all, it was very painful for me as a C++ developer with no ruby experience to get cucumber-cpp working. In particular, getting it to work in a Windows docker container took me almost 4 days, mostly due to issues with ruby itself. And secondly, the last version of cucumber-ruby I was able to get cucumber-cpp working with is 2.0.0, so of course you can't use recent gherkin features with cucumber-cpp right now either.
In order to allow easier adoption of cucumber-cpp for new teams and developers I'd like it to become self-contained. In particular, it shouldn't have mandatory dependencies on other executables like gherkin-go or a cucumber server implementation which could be incompatible. With gherkin-c I can just link the library in statically and don't even need to deserialize json or protobuf generated by e.g. gherkin-go, but can use the data structures provided by gherkin-c directly.


Using riffed for deserialization of binary data

Hello!  I'm currently using riffed to try and deserialize messages coming in from a kafka stream.  I've created a models.ex with:
defmodule Models do
  use Riffed.Struct, common_types: [:Location, ...],
    event_types:[:Event, ...]
end

My thrift files are compiled from the instructions provided on this github.
My function for converting binary -> Thrift struct (is copied from @scohen here
def to_thrift(record_binary, struct_definition) do

    try do
      with({:ok, memory_buffer_transport} <- :thrift_memory_buffer.new(record_binary),
           {:ok, binary_protocol} <- :thrift_binary_protocol.new(memory_buffer_transport),
           {_, {:ok, record}} <- :thrift_protocol.read(binary_protocol, struct_definition)) do

        {:ok, Models.to_elixir(record, struct_definition)}
      end

    rescue e ->
      IO.inspect e
        {:error, :cant_decode}
    end
  end

I'm looking at my logs and I keep seeing something like:
%FunctionClauseError{args: nil, arity: 2, clauses: nil, function: :skip,
 kind: nil, module: :thrift_protocol}

Has anyone run into this kind of error and if so what is the workaround?  Thanks!

got this working


The bot's Microsoft App Id or Microsoft App Password is incorrect.

Sample information

Sample type: QnABot
Sample language: dotnetcore
Sample name: csharp_dotnetcore\11.qnamaker

Describe the bug
When leaving "MicrosoftAppId" & "MicrosoftAppPassword" empty (in appsettings.json), running the bot locally and open the bot emulator (v4), I have no problem and the bot is working well.
However, when I add "MicrosoftAppId" & "MicrosoftAppPassword" I get "The bot's Microsoft App Id or Microsoft App Password is incorrect.". This happen locally and in the cloud. In the cloud I get this error: "There was an error sending this message to your bot: HTTP status code GatewayTimeout".
To Reproduce
Steps to reproduce the behavior:

open QnABot sample.
add all the values in the appsettings.json
run the bot locally.
open chatbot emulator, fill the local gost link and the MicrosoftAppId & MicrosoftAppPassword fields.

Expected behavior
working :D espically locally.
Screenshots
appsettings.json:

locally:
1.

2.

cloud:
1.

2.

Additional context
I actully had it all working a few weeks ago, then when I tried to recreate everything in the cloud (again) this keep giving me problems.
To generate the id and pass i used this command:
az ad app create --subscription "XXX" --display-name "MM-ChatBot-WAbot" --password "XXX" --available-to-other-tenants
PS I have the same problem with the echobot.
[bug]

Funny enough I solved this a few seconds after I gave up and post in here.
The problem was that altough i created id and pass with the command:
az ad app create --subscription "XXX" --display-name "MM-ChatBot-WAbot" --password "XXX" --available-to-other-tenants
and altough i got an output from this command it seems like it did not really created anything.
I asked my manger which have adamin rights in the spesific subscription to run the same command himself and that solved my problem (altough he got the same ID and gave same password as i did).


Onboarding Review: update banners with new designs

Here are the banners. They are very similar to the previous ones but adapted to be more visually similar to the other assets that we have.


Well-known port calculation on endpoint locators [5040]

This PR enables automatic calculation of the port when receiving a value of 0 on the endpoint custom locators.
Signed-off-by: Miguel Company<EMAIL_ADDRESS>

Build status:

Linux
Mac
Windows

Build status:

Linux
Mac
Windows

Build status:

Linux
Mac
Windows

Build status:

Linux
Mac
Windows


[Data Outage]: WPC QPF 6hr

According to airflow logs the last successful download was 15-Apr-2024 at 11:00 UTC
No files present at source: https://ftp.wpc.ncep.noaa.gov/pqpf/
Related page does show technical difficulties banner:
https://www.wpc.ncep.noaa.gov/#page=ovw
Please note: Due to technical difficulties, outdated versions of some of our products are being displayed. We are actively working to restore service.
I used the web form to inquire about the status of the files: https://www.wpc.ncep.noaa.gov/mail_webmaster/

Source data restored
CC @FHanbali


Fix the parallelization for PHP 7.1

Context
Behat uses the Symfony dependency injection component. So, every single decorator has a priority.
In the case of PHP 7. Behat, fails to load the class on time and is not executed the expected method.
Fix
By providing a value for the priority tag attribute you can influence the order in which middlewares/commands are added.
Thanks
@johnnie502

Testing file changes were not found.
Paging @BKorenek to review the back-end work in this pull request!
Paging @ramsey-medology to review the testing work in this pull request!


No Device Detected using Pyrealsense2 but detected on librealsense commands

Required Info

Camera Model
D455

Firmware Version
SDK 2.0

Operating System & Version
WSL2 - Ubuntu 22.04LTS

Kernel Version (Linux Only)
<IP_ADDRESS>

Platform
PC

SDK Version
2.0

Language
NA

Segment
NA

Issue Description
I have librealsense installed following these instructions (https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md).
I am trying to be able to access the camera using example python scripts using pyrealsense2. I'm try to run python-tutorial-1-depth.py but it returns with "No device connected":

I'm wondering if there is more to installing the library than just pip install pyrealsense2.
Commands like rs-depth, rs-enumerate-devices, ect. work, so the device is detected and accessible, which makes me think that librealsense is working but not connected to pyrealsense2 correctly / I did not install pyrealsense2 properly.

Any suggested would be greatly appreciated!
Also, probably irrelevant but I'm not able to run realsense-viewer as it says "command not found."

Hi @SereneFeng  Which Python 3 version are you using, please?  At the time of writing this, pip install pyrealsense2 supports Python 3.7 to 3.11 on a PC.  If you are using Python 3.6 or a version newer than 3.11 then the pyreasense2 wrapper will have to be built from source code instead.
To install examples and tools that use graphics, including realsense-viewer, you should use the CMake flag -DBUILD_GRAPHICAL_EXAMPLES=TRUE instead of setting it to false like the instruction page suggests.

Hi @nutsintheshell  The RealSense ZR300 model is very old and is not compatible with the RealSense SDK 2.0 and so would not be detectable by it.  The pyrealsense2 wrapper would therefore also not work with it.
The original 1.0 SDK, now known as Legacy Librealsense, is compatible with it.
https://github.com/IntelRealSense/librealsense/tree/v1.12.1
The 1.0 SDK is compatible with the original pyrealsense instead of pyrealsense2.
https://github.com/toinsson/pyrealsense

Hi @nutsintheshell The RealSense ZR300 model is very old and is not compatible with the RealSense SDK 2.0 and so would not be detectable by it. The pyrealsense2 wrapper would therefore also not work with it.
The original 1.0 SDK, now known as Legacy Librealsense, is compatible with it.
https://github.com/IntelRealSense/librealsense/tree/v1.12.1
The 1.0 SDK is compatible with the original pyrealsense instead of pyrealsense2.
https://github.com/toinsson/pyrealsense

thanks for your reply. But another error occurred.
Building wheels for collected packages: pyrealsense
Building wheel for pyrealsense (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [13 lines of output]
cc1plus: warning: command-line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
In file included from /home/jishengyin/anaconda3/envs/dexteleop/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h:1948,
from /home/jishengyin/anaconda3/envs/dexteleop/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
from /home/jishengyin/anaconda3/envs/dexteleop/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h:5,
from pyrealsense/rsutilwrapper.cpp:1272:
/home/jishengyin/anaconda3/envs/dexteleop/lib/python3.8/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
17 | #warning "Using deprecated NumPy API, disable it with "
|  ^~~~~~~
pyrealsense/rsutilwrapper.cpp:1278:10: fatal error: rs.h: No such file or directory
1278 | #include "rs.h"
|          ^~~~~~
compilation terminated.
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pyrealsense
Running setup.py clean for pyrealsense
Failed to build pyrealsense
ERROR: Could not build wheels for pyrealsense, which is required to install pyproject.toml-based projects
could you please tell me how to deal with it

@nutsintheshell  It is difficult to say what the problem may be, as the original pyrealsense wrapper's PyPi repository has not been updated since September 2017.  At that time, the latest supported Python 3 version was 3.6.1 rather than the 3.8 that you are using.
https://pypi.org/project/pyrealsense/
With the current pyrealsense2 wrapper, if a particular Python 3 version is not supported by pip install then the wrapper can be built from source code instead and the wrapper will work with the newer Python version.  This may also be the case with the original pyrealsense wrapper.

Hi @SereneFeng Which Python 3 version are you using, please? At the time of writing this, pip install pyrealsense2 supports Python 3.7 to 3.11 on a PC. If you are using Python 3.6 or a version newer than 3.11 then the pyreasense2 wrapper will have to be built from source code instead.
To install examples and tools that use graphics, including realsense-viewer, you should use the CMake flag -DBUILD_GRAPHICAL_EXAMPLES=TRUE instead of setting it to false like the instruction page suggests.

Hi, even in my case where python version is 3.8.10, gives me the same error. When I run the python-tutorial-1-depth.py, get the following error.
realsense2.py:30: SyntaxWarning: "is" with a literal. Did you mean "=="?
if y%20 is 19:
No device connected

Hi @KaushalkumarPatel  Do you also experience problems if you use the pyrealsense2 wrapper's test script at the link below, please?
https://github.com/IntelRealSense/librealsense/tree/master/wrappers/python#streaming-using-rspipeline

Hi @KaushalkumarPatel Do you also experience problems if you use the pyrealsense2 wrapper's test script at the link below, please?
https://github.com/IntelRealSense/librealsense/tree/master/wrappers/python#streaming-using-rspipeline

yes, exact same error which I mentioned in my previous comment.

@KaushalkumarPatel  Does the problem continue if you unplug the camera, plug it back in and run your script again?

@KaushalkumarPatel Does the problem continue if you unplug the camera, plug it back in and run your script again?

I am using D435 to detect the 3D object using yolov8 and ROS noetic. But the problem is when I launch the rs_camera.launch and my py script which is yolo node to detect the object in ros msg format in which I imported pyrealsense2 as a module, it gives me error from my py script from line pipeline.start(config) says that RuntimeError: No device connected
But when I launch only the py script without the pyrealsense2 module than everything works fine. I need this pyrealsense2 to detect the distance. and also need to launch rs_camera.launch because to listen the camera and depth topics.

The librealsense SDK operates under rules called the Multi-Streaming Model that dictates that only one application at a time can access the same camera sensor.  So if a ROS node was launched first then another process that is launched secondly afterwards may be unable to access the sensor because the first process already has a claim on it.  Until the claim is released, the other process cannot access the sensor.
https://github.com/IntelRealSense/librealsense/blob/master/doc/rs400_support.md#multi-streaming-model
You can detect distance from within the RealSense ROS wrapper instead of using the pyrealsense2 wrapper by using the SDK's provided Python node script show_center_depth.py
https://github.com/IntelRealSense/realsense-ros/blob/ros1-legacy/realsense2_camera/scripts/show_center_depth.py

OK. Thanks for the link. I understood.

Hi @KaushalkumarPatel  Do you require further assistance with this case, please?  Thanks!

Hi,
Thanks for the msg. Everything is working now. Thanks for the help.

That's great to hear, @KaushalkumarPatel - thanks very much for the update!

Hi @MartyG-RealSense ,
I have one more question. I detected the object and also calculated the distance from camera. Now I am into calculating the roll, pitch angles of the Bounding Box wrt Camera. Is there any resources for D345 ?

@KaushalkumarPatel  The RealSense project in Python language at the link below sounds like what you are seeking
https://github.com/monkeyrom/pointcloud_by_open3D

Hi @KaushalkumarPatel  Do you require further assistance with this case, please?  Thanks!

Case closed due to no further comments received.


Unlocking Joystick inputs applies incorrect defaults

In our setup, when we restore the joystick settings, the scroll wheel will be tied to two devices, which is not correct.
We should get the current mapping, save it, lock out, and then unlock and restore the prior mapping.

@Poofjunior I forgot about this one, but its been a bit of a pain recently if I forgot to manually remap these after each scan. If you have more free time from other projects later in the week, this would be a good one to dig into.

All right I'm calling this one done!


Child app link still private

Could you share a working link please?

Could you share a working link please?

hey hi @utkarshdubey  made the requested link public !
now child-app is submodule inside this repository, no need to go anywhere else !
happy coding :)


SVLEN should be Integer and not String for VCF files nstd167 (HG002) and nstd137 (CHM1_CHM13)

It should be:
##INFO=<ID=SVLEN,Number=.,Type=Integer,Description="Difference in length between REF and ALT alleles">
instead of:
##INFO=<ID=SVLEN,Number=.,Type=String,Description="Difference in length between REF and ALT alleles">
otherwise it raises an error with StructuralVariantAnnotation.

Please include the error msg and the code line you're referring to.

Fixed in https://github.com/GooglingTheCancerGenome/notebooks/commit/021a9b060b278c06982173adb388b8c46af1e8c4


'bosh start' and 'bosh start --force' both fail

My attempt to start all jobs fail with the error. Please help me how I can restore all jobs after 'bosh upload release' and then 'bosh deploy.'
$ bosh start
Acting as user 'admin' on deployment 'cf' on 'my-bosh'
You are about to start all jobs

Detecting deployment changes
----------------------------
Releases
No changes

Compilation
No changes

Update
No changes

Resource pools
small_z1
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
small_z2
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
medium_z1
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
medium_z2
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
large_z1
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
large_z2
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
runner_z1
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
runner_z2
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
router_z1
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
router_z2
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
small_errand
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
xlarge_errand
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4

Disk pools
No changes

Networks
No changes

Jobs
No changes

Properties
No changes

Cannot perform job management when other deployment changes are present. Please use `--force' to override.
{noformat}

{noformat}
$ bosh start --force
Acting as user 'admin' on deployment 'cf' on 'my-bosh'
You are about to start all jobs

Detecting deployment changes
----------------------------
Releases
No changes

Compilation
No changes

Update
No changes

Resource pools
small_z1
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
small_z2
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
medium_z1
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
medium_z2
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
large_z1
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
large_z2
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
runner_z1
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
runner_z2
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
router_z1
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
router_z2
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
small_errand
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4
xlarge_errand
  stemcell
    version type changed: String -> Float
      - 3215.4
      + 3215.4

Disk pools
No changes

Networks
No changes

Jobs
No changes

Properties
No changes

Start all jobs? (type 'yes' to continue): yes

Performing `start all jobs'...

Director task 129
  Started preparing deployment > Preparing deployment. Done (00:00:02)

  Started preparing package compilation > Finding packages to compile. Done (00:00:01)

  Started updating job consul_z2 > consul_z2/0 (-b362-4b91-9f31-463bd0206de2) (canary). Failed: `consul_z2/0 (-b362-4b91-9f31-463bd0206de2)' is not running after update. Review logs for failed jobs: consul_agent (00:10:10)

Error 400007: `consul_z2/0 (-b362-4b91-9f31-463bd0206de2)' is not running after update. Review logs for failed jobs: consul_agent

@joshnn you can try to follow http://bosh.io/docs/tips.html#failed-job to figure out some more information why the consul job is failing.

Hi, what I see on my end with bosh instances --ps is:
{noformat}
consul_z2/0 (-b362-4b91-9f31-463bd0206de2)*                     | failing | n/a | small_z2  | <IP_ADDRESS> |
|   consul_agent                                                             | unknown |     |           |
|   metron_agent                                                             | running |     |           |
{noformat}
What I found in consul_agent/consul_agent.stdout.log is agent repeating Graceful leave with an interval of about 60 seconds that end up error 400007.
How can I tell what causes Graceful leave on consul_z2/0?

solved this issue already?
because we face the same issue

@ramonskie: might want to check if you have configured the correct number of consul agents. Perhaps look for agent-client.is-last-node.result in your logs to verify your values, and also double check that you have correctly configured your list of consul.agent.servers.lan.

i experienced a similar error recently. if you look at some similar situations that pivotal cloud foundry customers have encountered. talking with the engineers that work on cloud foundry and consul, they recommend:

stopping the monit job in each consul VM monit stop consul_agent
removing all the consul data under rm -rf /var/vcap/store/consul_agent/*
after all VMs cleared of consul agent data, starting monit in each one

then it all came back for me.

@jbayer It's work for me. But did we have any root cause of this consul agent failed?

consul can fail often. see here for failure recovery documentation: https://github.com/cloudfoundry-incubator/consul-release#failure-recovery

Closing - these particular errors are release-specific, and the previous comments recommend useful links for resolving these issues and more.


Gradesheet Filtering not working

It looks like something that was recently pushed broke filtering on the grade sheet for an assignment.
Message me if you need any more info on it.

There is a base option to grade a single submission that will correctly filter the table. It might be possible to duplicate that functionality for all filtering.

the lecture and section fields where not marked as searchable but on the dev site it seems to be working after including them.

Looks to be working again.  Thanks @Searay-330 .


improve creation of notes/cards

erasure also of derrived words from the questions
add something like "_ _ _ _   _ _ " to every question - maybe it should be configurable

change all 'something' to 'sth' etc.

improve removal of words from questions (put it in a separate class/module):

array with irregular forms
some heuristics for plurals, etc.
fuzzy search - to support for removal of phrasal verbs from for example "He hold her up."
case insensitive
take the "/" character as an alternative of two/more possibilities

to think - maybe some sort of cards asking about the difference berween words? (maybe something from longman dictionary?)

add pronounciation to cards - play the sound file when the 'enter' key is pressed


Update npm packages

Update packages

Fix (most) vulnerabilities reported by npm audit
This was done automatically, using the npm audit fix command.
Please note: There's two vulnerabilities left, however they couldn't be fixed automatically and may thus benefit from being handled separately.

/botio test

Thank you for the maintenance!


tutorials

I find the tutorials very well laid out and useful

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

ID: c598765c-1c4d-bf43-f5c6-a894f3af37ea
Version Independent ID: 3b77a3ea-1d26-a462-05c5-40bb61919c97
Content: Build a Visual Basic .NET Standard class library in Visual Studio 2017 - .NET Core
Content Source: docs/core/tutorials/vb-library-with-visual-studio.md
Product: dotnet-core
GitHub Login: @rpetrusha
Microsoft Alias: ronpet

Thank you for your feedback, @KIDr55. We're pleased that you find the tutorials helpful.


No reader found for key

Not sure what I'm doing wrong. I can't get this extension working on a laptop running Neverware ChromeOS 66.1 with a Nitrokey for my smartcard. Things seem to be working fine on my desktop. I:

Installed the smartcard connector.
Ran the connector, giving it permission to access my Nitrokey.
Launched the extension on a login page. It finds a password for the domain, but gives me a "No reader found for key XXX" error. The reader is plugged in. I'm never prompted by the connector for access to my key, nor am I prompted for access to my Google Drive. The extension just seems to find my store and credentials.

Fairly new to Chrome/ChromeOS. How do I go about debugging this?
Thanks!

FWIW, I successfully used the key with my Android phone, using Openkeychain and the PasswordStore app. My passwords are successfully decrypted using the keys on the Nitrokey.
Maybe something changed in the connector since this extension was last released?

Sorry for the noise, I'm just trying to offer as many details as possible as I continue debugging this.
I tried installing a new middleware to see what would happen. I was prompted to approve it, and it appeared in the list of connected apps in the smart card connector.
I don't recall ever getting such a prompt from smart-pass. Additionally, it isn't in the list of middlewares. So I think the message about a missing key is a red herring, and that the extension just isn't connecting to the card.
Thanks. Officially out of ideas, so now I'll go silent. :)

Thanks for the detailed report! I have to apologize for making you go through these debugging efforts. It is very likely not your fault that the "card" is not working, but mine. When I started working with the Smart Card Connector, I only owned YubiKeys, meaning that my extensions could only be tested on them. Only when I started working on implementing smart card support for the Secure Shell Chrome App I was provided access to a Nitrokey and started testing. But the necessary changes I made to Secure Shell for it to support Nitrokeys never made it back into smart-pass unfortunately.
Now that I know that someone is very interested in getting Nitrokeys to work with smart-pass, I will look into the licensing situation of Secure Shell and try to backport my changes to smart-pass.

Cool, thanks for the update, this is my first time setting up any kind
of security token so I had no idea what might be going on. :) I'll stop
debugging things on my end.

I have backported all the changes I made for Nitrokey and OpenPGP card support in other projects. I tested this on my end with a Nitrokey Pro and a Gemalto USB Shell Token with an OpenPGP card - both work well now.
Please check that version 0.9.7 has rolled out to you (if you installed from the webstore) or update manually from the repo and try again. If you still can't connect to your Nitrokey, please right-click on the small smart-pass dialog displaying the "No reader found for key XXX" message and select Inspect. The Developer Tools should open and I would be very interested in the content of the Console tab. Please note that there is a very small likelihood that the error messages there contain encoded sensitive information such as PIN bytes, so better try this in a test setup.

Wow, thanks for the quick turnaround! This morning I successfully unlocked my Nitrokey and logged into a few sites. Interestingly, I don't recall ever being prompted to grant access to either the key or my Google Drive.
As an aside, is it possible to generalize the filesystem access so the extension isn't tied to Google Drive and can work with files stored on webdav, Dropbox, etc.? Not super familiar with ChromeOS yet.
Thanks again.

I don't know the exact rules governing caching of access tickets for Google API, but you can look up the active ones under chrome://identity-internals/. The Smart Card Connector will only ask once per middleware app, but it had some bugs that were only fixed recently.
Concerning other cloud storage providers: I chose Google Drive because it was a natural choice for ChromeOS and had superb API support. I could see adding support for credentials stored on the "local" filesystem at some point, which would enable Dropbox storage via extensions such as this one. If you would like to have this, please open a separate issue for better tracking. Since this is not about the core functionality of the extension, it might take me much longer though ;-)

Thanks, that's fine. I may look into implementing it myself as
well--I've wanted to get into extension development, and would really
like this functionality.


Update to tables_sqlServer.sql - IMAGE data type

It was brought to my attention that future version of sqlserver will be dropping support for the 'IMAGE' datatype
https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql
"ntext, text, and image data types will be removed in a future version of SQL Server. Avoid using these data types in new development work, and plan to modify applications that currently use them. Use nvarchar(max), varchar(max), and varbinary(max) instead"
Are there any plans to update the sql script and replace the 'IMAGE' datatype?

Hello @Begui, thanks for bring this issue to our attention. Unfortunately I don't have a SQLServer to verify the changes needed. Would you be interested in contributing a tested script in a PR?
Much appreciate your help.
Thanks.
Zemian

Hello @zemian  and @begui,
we also noticed this. For completelness I'll add the messages produces by SQL server here.
``
Object dbo.QRTZ_BLOB_TRIGGERS.BLOB_DATA uses deprecated data type TEXT, IMAGE or NTEXT which will be discontinued for future versions of SQL Server. For more details, please see: Line 5, Column 5.
Object dbo.QRTZ_CALENDARS.CALENDAR uses deprecated data type TEXT, IMAGE or NTEXT which will be discontinued for future versions of SQL Server. For more details, please see: Line 4, Column 5.
Object dbo.QRTZ_JOB_DETAILS.JOB_DATA uses deprecated data type TEXT, IMAGE or NTEXT which will be discontinued for future versions of SQL Server. For more details, please see: Line 11, Column 5.
Object dbo.QRTZ_TRIGGERS.JOB_DATA uses deprecated data type TEXT, IMAGE or NTEXT which will be discontinued for future versions of SQL Server. For more details, please see: Line 17, Column 5.
``
So we have 4 places where the IMAGE type is used. Following the link to https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql?view=sql-server-ver15 i can see, that we may should update this to varbinary(max)
I'll try to update https://github.com/quartz-scheduler/quartz/blob/master/quartz-core/src/main/resources/org/quartz/impl/jdbcjobstore/tables_sqlServer.sql and test it locally.
I understood, that this is for new installations. How do you work with migrations for existing installations? Where should we place such a migration (if it could really work - i'm not sure how to migrate binary-columns).
Thanks a lot for all the good work,
Frank

You might want to check how the .NET version script was updated to conform to new SQL Server versions.  Please note that the column names and data types/sizes might differ a bit.

Hello @lahma ,
thanks for this pointer. The conditions look much better there and you also have the newer data-types of course. So do you support older SQL-Server also? Or did I read the MS documentation wrong. For how long is this varbinary(max) datatype around?
Actually I would prefer to concentrate on the data-types for now, would you prefer to update the conditional-syntax also? The create-statements themselves look identical already right?
The Java version also does not feature indexes for SQL Server while the Oracle create script has some.
This more looks like a 'global inconsistency' - I would not try to tackle that problem for now.
Kaizen,
Frank

@efwe I think varbinary(max) has been supported since SQL Server 2005. Generally I don't stress about supporting product versions that are End-Of-Life. Here's current support listing from where you can see that we are already past supporting even server version 2012. So especially with script like this meant to be run as part of new development, I wouldn't worry much about supporting these old versions.
Unfortunately as I've been outside of Java land for so long I can't commit to tweaking and testing a new script version, I'd rather see someone with better testing capabilities and use cases got about this.

Hi @lahma ,
thanks for all the good information. So this datatype is around 'forever' and I just completely misunderstood the following page https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql?view=sql-server-ver15&viewFallbackFrom=sql-server-2014
which brings that 'does not apply to the requested version' header.
2005 sounds OK - nobody should start a new project with an older database :)
I'll prepare a minimal PR with only the datatype of the 4 blob columns changed.
hopeful,
Frank

Hi @lahma
I think @efwe 's PR looks fine and quite/exactly similar to how quartznet has done this..

Removing IMAGE Data Type

Would it be possible to merge that PR if its good to go since we are planning to use Quartz Server with SQL Server 2019, and since its a new project, i dont want to use deprecated data types 🤔
Thanks.
Sahil

Hello stale-bot :)
Sad enough this issue is still valid as the corresponding PR #515 has not yet landed. I will try to update it with tye `sign-off' message.
Generally this is an issue worth to be fixed (given Quartz wants to support MSSQL further)
~fw


Use ORM

We currently interact with Cloud SQL directly, and writing SQL queries by hand.  We can make our lives easier by using an ORM:

easier querying
db/schema migration tool
caching
support other DBs transparantly (e.g. cloud postgres)

We should do some research to see what is the best ORM out there: django ORM, sql alchemy, etc., especially considering what users/contributors would prefer.

This work has been done.


"You really want to download?"-popup prompts at every download

Every time a download gets started, the prompt with the question to overwrite an existing file pops up even if that file was never been downloaded.

It seems to be a bug in the chrome API. The attribute 'incognito' should return false if the downloadItem is recorded in the history. But even if it is not recorded, in the debugging console incognito returns always false.


”Rădăești”, ”Schitu”, ”Tunsești” are listed in the drop-down menu

Description:
When user writes ”Rădăești”, ”Schitu”, ”Tunsești” the locations appear in the drop-down menu next to the comune and the county which is a part according to the law.
Precondition:
The website is up an running.

Step 1
Write in the search bar "Rădăești"

Expected results
The location appears in the drop-down menu as "Sat Rădăești, VASLUI (Bogdănița)".

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 3
Write in the search bar "Schitu"

Expected results
The location appears in the drop-down menu as "Sat Schitu, VASLUI (Bogdănița)".

Step 4
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 5
Write in the search bar "Tunsești"

Expected results
The location appears in the drop-down menu as "Sat Tunsești, VASLUI (Bogdănița)".


Can this work with items added in Interface Builder instead from code?

I am trying to make ZHAutoScrollView work with textfields added as children from within the IB but they are not even clickable. Any idea why?

I think you can link the text fields in storyboard to the code as IBOutlet, then call handleTextField: in viewDidLoad to let the scrollView handle the text fields :) let me know whether it works

@abinop I think you can link the text fields in storyboard to the code as IBOutlet, then call handleTextField: in viewDidLoad to let the scrollView handle the text fields :) let me know whether it works

@honghaoz unfortunately, it does not work)

@hash3r Hey hash3r, yes, you are right, you can not set a view as class AutoScrollView and add subviews directly on it in IB. Since all text fields should be added on autoScorllView.contentView.
However, we have an another way to use it with IB. Basically, you create a wrapper view or container view for all of views. Then in code, you could add this wrapper view to autoScrollView.contentView, just setup some simple full width/height constraints are enough.
I've pushed a new interface builder demo. Pretty straight forward. Check it out! Let me know if you have more questions :)

@hash3r Project has been updated and it has an example project with different targets, try it

https://github.com/honghaoz/AutoKeyboardScrollView#work-with-interface-builder


request support for background-color setting for SelectorTextView

as i am concered, if no background-color setting for SelectorTextView, the use of this project is too limited and hardly is able to replace the use of xml-shape resources.
Any idea?

What is concered?

request support for background-color setting for SelectorTextView？ is this  possible?

@haogg SelectorTextView is set BackgroundColor of support!


feat: initial version of hodl code

WIP
Wiki: hive-engine/steemsmartcontracts-wiki#9.
Contract name and fees are more of a placeholder right now and could be changed if needed.
The core of the contract was inspired by an Ethereum contract, minus the implementation of a Governance Token to the contract, which I personally don't think is necessary.
TODO

[ ] Deposit Action

[ ] Handle deposit values and 'ratios'

[ ] Withdraw Action

[ ] Handle withdraws distribution

[ ] Tick Action

[ ] Update contract params to manage depositing/withdrawing/unlocking.

Closing this due to lack of activity.


sklean style api

Initial draft of an sklearn style api

If you decide you want to depend on scikit-learn, I'd encourage you to run this function in your unit tests: https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/utils/estimator_checks.py#L219
It is new in 0.17 and checks scikit-learn compatibility.
Also see the docs here:
http://scikit-learn.org/dev/developers/contributing.html#rolling-your-own-estimator
(they also contain more details on set_params and get_params)
You could also make scikit-learn an optional dependency, so that it can be used to test compatibility but is not required by the user.

@mariusvniekerk what's the status of this PR?

Basically needs refactoring to be closer to Andreas' suggestion


OpenCVException is now serializeable, to be able to send it to differ…

One more change related to AppDomains..
The callback of "redirectError" can only be hooked to one AppDomain. Therefore if an exception occurs in a different AppDomain the Framework will try to serialize the exception between the AppDomains.
If "OpenCVException" is serializable, all exceptions ( thrown by the default "ErrorHandlerThrowException")  will appear normally in the related AppDomain. Otherwise they will only work correct in the AppDomain which owns the error handler, all AppDomains different from that will receive serialization exception.

Thank you 👍
I was worried that .NET Core 1.0 does not have Serializable, but there is no problem with .NET Core 2.0.
https://apisof.net/catalog/System.SerializableAttribute


BIP44 not compatible with existing NEO Ledger addresses

So I was looking into the new ONT ledger app, and it seems that it will not be compatible with existing NEO addresses where users have their mainnet ONT stored either from the second airdrop, or via swap using neon-wallet.
https://github.com/ontio/OWallet/blob/master/src/core/ontLedger.js#L40
It appears the reason is that the SLIP44 value was updated to Ontology
https://github.com/satoshilabs/slips/blob/master/slip-0044.md
The problem with this is that if you change the unique address format produced by BIP44
https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki
Then the public key produced by the ledger will be different.
So I tested the ledger app using the Ontology SLIP44 - 80000400, and it seems to be able to connect to the device and generate the public key.
However this address is different from the public key generated by the device when using the NEO SLIP44 - 80000378
So I tried swapping this value back to the NEO SLIP44 value, but the ledger app does not appear to accept connections  to create the correct public address.(edited)
It just errors out with Ledger device: UNKNOWN_ERROR (0x6804)
This should not be an issue for new ledger users, but rather an issue for existing NEO ledger users, as their mainnet ONT/ONG will be unaccessible.
Can this app be updated to accept SLIP44 values for both NEO - 80000378 and Ontology - 80000400?

https://medium.com/ontologynetwork/owallet-faq-7f4f96784253
Regarding the proposed solution for users with existing NEO Ledger addresses. This does not appear to be a viable solution in the near or far term for the following reasons.
In the near term, the ask from Ontology is that all Ledger users that hold ONT completely reset their Ledger wallets. This reset does not only affect NEO and ONT, but any and all wallets a user may have on their device.
Meaning that if a Ledger user has Bitcoin, Bitcoin Cash, Litecoin, Ethereum, so on and so forth, users need to transfer all funds out of these addresses, into temporary addresses, and then back into a newly generated set of Ledger addresses for each coin.
Not only is this be time consuming, but it poses some risk to users as they are moving funds out of their secure device into an exchange (assumed to incur withdrawal fees) or paper wallets.
Furthermore, the whole premies of owning a Ledger is that all private keys are stored in the device, and shall never leave. The one exception is the mnemonic phrase generated on first usage.
As such, users are encouraged to protect this phrase for dear life, and some have gone through great lengths to secure these phrases or even portions of these phrases in multiple secure locations.
This ask appears to be far to great.
The long term impact is that the creation of the Ontology SLIP-44: 0x80000400, is that the address sets between NEO and Ontology have and will more so become fragmented.
Although the public and private keys between the two are in the same format, there will be a Ledger divide where seemingly compatible addresses have become no longer compatible.
This will go beyond the recovery of ONT funds from the token swap for airdrop round 2.
In the event that a user is sent ONT funds to their NEO created Ledger address, they will be forced to reset their Ledger for all wallets every time.
While this should not be an every day practice, having seen the mass of support questions come for even just managing NEO addresses, this is bound to happen.
In conclusion, the root cause of this is that the Ontology SLIP-44: 0x80000400, in my opinion, should never have been created in the first place.
Since the decision was to keep the address schema for Ontology the same as NEO, the same methodology should be applied when creating deterministic addresses with BIP-44.
This issue appears to be similar to how there are different ledger apps for Bitcoin and Bitcoin Cash. Wen using the Ledger Bitcoin wallet or Ledger Live, either the Bitcoin or Bitcoin Cash Ledger apps can be used.
I would assume that this same issue exists between the 2, as they both have different SLIP-44 values. This means that they either use the same transaction signing format or have adjusted both apps to accommodate different transaction signing formats.
Ideally if Ledger would allow Ontology to publish the Ontology Ledger app with just the NEO SLIP-44 value to exist along side the existing NEO Ledger app, since the signing logic is different for transactions.
However, if this is not possible another solution would be to update the existing NEO Ledger app to handle transaction signing for both NEO and ONT.

It's curious that for ETH you are able to use the same Ledger app in myetherwallet to have different BIP32 values:

All of which are accounted for in the Makefile for the ETH Ledger app:
https://github.com/LedgerHQ/blue-app-eth/blob/master/Makefile
Would it be possible for us to do the same for this ONT app? Or at the very least just change the SLIP used in this app?
https://github.com/LedgerHQ/ledger-app-ont/blob/master/Makefile#L27
Update to:
APP_LOAD_PARAMS = --path "44'/888'" --appFlags 0x40 --apdu $(COMMON_LOAD_PARAMS)

@TamtamHero Awesome! Thanks for adding this 👍

@TamtamHero When can expect to have a new version of this app deployed to Ledger Live? I know you mentioned "the coming days", but is it possible to be more specific?

I see that the derivation path is added, but I can't find it, probably I'm not looking at the right place. @nickfujita can you tell me what it is? I'm probably have to reset my Ledger, which is fine, but I just want to store my old (empty) addresses with key in case of a future drop I'm not aware of.
With kind regards!


WIP: Integrate Vercel/Pkg for Release Distribution

This https://github.com/vercel/pkg seems to provide us a way of packaging CLI applications as an executable for distribution to Linux, Windows and Mac.
We need to try it here before PK. And furthermore, the vercel/pkg is not currently part of nodePackages attribute in Nix. So I imagine similar to Electron, there may be a need to have this done in Nixpkgs as there may be some things changed.

The vercel/pkg has 2 interesting dependencies:
    "pkg-fetch": "3.2.1",
    "prebuild-install": "6.0.1",

The pkg-fetch appears to have pre-built nodejs binaries used by pkg. This is similar to how our electron-forge in Nixpkgs (https://github.com/NixOS/nixpkgs/pull/115230) packages up electron applications by fetching pre-built electron releases and just bundling our application with it. Note that the lack of a proper electron ecosystem in Nixpkgs means that it's a bit adhoc.
Our TypeScript-Demo-Electron uses utils.nix to provide specific Electron binaries to be used instead of making electron-forge download them. This is mainly because during the build phase we cannot have other tools downloading things, these must all be specified as part of Nix. This is what makes Nix builds deterministic (mostly). To achieve this we had to use ELECTRON_KIP_BINARY_DOWNLOAD = "1" and electron_zip_dir which is specified in the release.nix.
We may need to do something similar here with vercel/pkg if we want vercel/pkg to be used within a release.nix build phase.

This PR is also updating the nixpkgs.nix to match the 21.05 release on our nixpkgs overlay. OS apps obviously doesn't use our private overlay for now.

Hit an error from running pkg https://github.com/vercel/pkg/issues/1242. A stream write error, which doesn't seem to be based on any operating system.

I tried to run on Windows, the EPIPE error isn't occurring. So maybe it does have something to do with NixOS or Linux. We can also try this in a VirtualBox.

Upon running the pkg command, it asks to install several targets. These targets are stored in the PKG_CACHE_PATH.
This defaults to:
»» ~
 ♖ tree .pkg-cache                                                                                ⚡(master) pts/6 21:23:24
.pkg-cache
└── v3.1
    ├── fetched-v14.17.0-linux-x64
    ├── fetched-v14.17.0-macos-x64
    └── fetched-v14.17.0-win-x64

1 directory, 3 files

So this is something we can use as the equivalent of the electronZipDir when doing this during a nix build.

The built executables weigh in about 33 - 36 MiB for a simple hello world program. It's probably the entire node runtime plus the executable.

Ok tested on WSL as well, this builds a Linux executable that works on WSL (Ubuntu), and is also able to build the Windows executable which works via Powershell as well. The result is in the current directory:
typescript-demo-lib-linux
typescript-demo-lib-win.exe

The reason for choosing node14 is that node14 is the LTS release, and it is also the node that we use when we are in the nix-shell.

Running NixOS in virtualbox with an older kernel and older NixOS distribution version still fails with the same EPIPE error. I suspect this might mean that it may fail in NixOS generally or even any Linux distribution (barring the WSL Ubuntu distro).

I copied the linux executable that was built on WSL to NixOS to see if the ideas behind patchelf work here (https://nixos.wiki/wiki/Packaging/Binaries).
First thing is to see what interpreter path it's using (which is the dynamic link loader):
> patchelf --print-interpreter ./typescript-demo-lib-linux
/lib64/ld-linux-x86-64.so.2

That path does not exist on NixOS. It exists generally on other FHS-compatible Linux distributions.
To update this path, we use:
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./typescript-demo-lib-linux

This will set the dynamic link loader to the relevant path (note this must be used inside nix-shell from a mkDerivation).
At this point we can now execute the ./typescript-demo-lib-linux, however now it will tell us that a library is missing:
./typescript-demo-lib-linux: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

We can tell by these 2 commands:
[nix-shell:~/Projects/Typescript-Demo-Lib/tmp]$ ldd ./typescript-demo-lib-linux	linux-vdso.so.1 (0x00007ffc3f9e1000)
	libdl.so.2 => /nix/store/ikl21vjfq900ccbqg1xasp83kadw6q8y-glibc-2.32-46/lib/libdl.so.2 (0x00007f6f13796000)
	libstdc++.so.6 => not found
	libm.so.6 => /nix/store/ikl21vjfq900ccbqg1xasp83kadw6q8y-glibc-2.32-46/lib/libm.so.6 (0x00007f6f13653000)
	libgcc_s.so.1 => /nix/store/ikl21vjfq900ccbqg1xasp83kadw6q8y-glibc-2.32-46/lib/libgcc_s.so.1 (0x00007f6f13639000)
	libpthread.so.0 => /nix/store/ikl21vjfq900ccbqg1xasp83kadw6q8y-glibc-2.32-46/lib/libpthread.so.0 (0x00007f6f13618000)
	libc.so.6 => /nix/store/ikl21vjfq900ccbqg1xasp83kadw6q8y-glibc-2.32-46/lib/libc.so.6 (0x00007f6f13457000)
	/nix/store/ikl21vjfq900ccbqg1xasp83kadw6q8y-glibc-2.32-46/lib/ld-linux-x86-64.so.2 => /nix/store/ikl21vjfq900ccbqg1xasp83kadw6q8y-glibc-2.32-46/lib64/ld-linux-x86-64.so.2 (0x00007f6f1379d000)

And also:
[nix-shell:~/Projects/Typescript-Demo-Lib/tmp]$ patchelf --print-needed ./typescript-demo-lib-linux
libdl.so.2
libstdc++.so.6
libm.so.6
libgcc_s.so.1
libpthread.so.0
libc.so.6
ld-linux-x86-64.so.2

The libstdc++.so.6 is special shared library that needs to be acquired from stdenv.cc.cc.lib.

To get the path to libstdc++.so.6 we need to do this:
»» ~
 ♜ nix repl                                                                                pts/4 23:02:28
Welcome to Nix version 2.3.10. Type :? for help.

nix-repl> :l <nixpkgs>
Added 14209 variables.

nix-repl> with pkgs; lib.makeLibraryPath [ stdenv.cc.cc.lib ]
"/nix/store/5lgyy30nyvq59c4m2a7skmwaqz3jja3n-gcc-10.3.0-lib/lib"

nix-repl>

I'm getting this path from my standard <nixpkgs> environment, which would not be the same as what would be inside the nix-shell. If we are inside nix-shell, a better way would be to acquire the ./pkgs.nix:
[nix-shell:~/Projects/Typescript-Demo-Lib]$ nix repl
Welcome to Nix version 2.3.10. Type :? for help.

nix-repl> :l ./pkgs.nix
Added 14210 variables.

nix-repl> with pkgs; lib.makeLibraryPath [ stdenv.cc.cc.lib ]
"/nix/store/5lgyy30nyvq59c4m2a7skmwaqz3jja3n-gcc-10.3.0-lib/lib"

Which turns out to be the same path coincidentally.
Now we can set the rpath which allows the dynamic link loader to look for the relevant dependency:
patchelf \
  --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
  --set-rpath /nix/store/5lgyy30nyvq59c4m2a7skmwaqz3jja3n-gcc-10.3.0-lib/lib \
  ./typescript-demo-lib-linux

The result is an executable that does execute, but has some JS error.
[nix-shell:~/Projects/Typescript-Demo-Lib/tmp]$ ./typescript-demo-lib-linux
pkg/prelude/bootstrap.js:1
ba7b810-9dad-11d1-80b4-00c04fd430c8",o.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",o}("v5",80,(function(r){var e=[1518500249,1859775393,2400959708,3395469782],t=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof r){var n=unescape(encodeURIComponent(r));r=[];for(var i=0;i<n.length;++i)r.push(n.charCodeAt(i))}else Array.isArray(r)||(r=Array.prototype.slice.call(r));r.push(128);for(var f=r.length/4+2,s=Math.ceil(f/16),u=new Array(s),c=0;c<s;++c){for(var l=new Uint32Array(16),p=0;p<16;++p)l[p]=r[64*c+4*p]<<24|r[64*c+4*p+1]<<16|r[64*c+4*p+2]<<8|r[64*c+4*p+3];u[c]=l}u[s-1][14]=8*(r.length-1)/Math.pow(2,32),u[s-1][14]=Math.floor(u[s-1][14]),u[s-1][15]=8*(r.length-1)&4294967295;for(var d=0;d<s;++d){for(var h=new Uint32Array(80),v=0;v<16;++v)h[v]=u[d][v];for(var y=16;y<80;++y)h[y]=o(h[y-3]^h[y-8]^h[y-14]^h[y-16],1);for(var g=t[0],b=t[1],w=t[2],U=t[3],A=t[4],I=0;I<80;++I){var m=Math.floor(I/20),C=o(g,5)+a(m,b,w,U)+A+e[m]+h[I]>>>0;A=U,U=w,w=o(b,30)>>>0,b=g,g=C}t[0]=t[0]+g>>>0,t[1]=t[1]+b>>>0,t[2]=t[2]+w>>>0,t[3]=t[3]+U>>>0,t[4]=t[4]+A>>>0}return[t[0]>>24&255,t[0]>>16&255,t[0]>>8&255,255&t[0],t[1]>>24&255,t[1]>>16&255,t[1]>>8&255,255&t[1],t[2]>>24&255,t[2]>>16&255,t[2]>>8&255,255&t[2],t[3]>>24&255,t[3]>>16&255,t[3]>>8&255,255&t[3],t[4]>>24&255,t[4]>>16&255,t[4]>>8&255,255&t[4]]}))}));{"mode":33188,"size":3267,"isFileValue":true,"isDirectoryValue":false,"isSocketValue":false,"isSymbolicLinkValue":false}import uuid from './dist/index.js';
        ^

SyntaxError: Invalid or unexpected token
    at new Script (vm.js:102:7)
    at readPrelude (internal/bootstrap/pkg.js:29:13)
    at internal/bootstrap/pkg.js:36:18
    at internal/bootstrap/pkg.js:43:4
    at internal/bootstrap/pkg.js:44:2

So the built executable isn't perfect, but it does sort of work. Given that we are now in JS error land, at least that means the runtime is running, but maybe using patchelf isn't great for executables built from vercel/pkg.

I have cloned vercel/pkg and did npm install and npm run build. This produces a lib-es5 as the built output. And you run the node ./lib-es5/bin.js --help as the built pkg.
This will allow us to run pkg against our demo lib here, while also changing the code and seeing what exactly is causing the EPIPE error.
We know that it is happening at child.stdin.write(h);. The child is a subprocess object created by spawn function coming from the child_process library in Nodejs. The type is ChildProcessByStdio. The child.stdin is documented here: https://nodejs.org/api/child_process.html#child_process_subprocess_stdin
It appears the idea is to start a child process that is reading from STDIN, and then to write a Buffer of some bytes to this stdin. However we are getting an EPIPE error which usually means:

“Broken pipe.” There is no process reading from the other end of a pipe. Every library function that returns this error code also generates a SIGPIPE signal; this signal terminates the program if not handled or blocked. Thus, your program will never actually see EPIPE unless it has handled or blocked SIGPIPE.

Which could mean a problem on piping, or a problem about the child process or a problem with how nodejs does this. But still need to test on Ubuntu to make sure this is actually a NixOS problem and not Linux in general.

The executable that is built on NixOS in nix-shell is actually a valid executable. In fact I think it's the actual node runtime just with no script being passed in. It's not something I can run on NixOS because the interpreter and rpath is set to the standard Linux paths, but after I copied it to WSL, I was able to run it, and and we get a javascript runtime error (which means the node runtime is working). This time it says that the path argument is undefined, which seems to mean it's the script path was never able to be written to this executable, and thus we didn't complete the bundling. This seems to make sense given that the EPIPE error is occuring where we are writing some sort of short string to the child process.

This reduces the error down to something involving the bundling of the actual JS source code with the Node runtime binary.

Finished build on Ubuntu. It's fine. So this is a problem specific to NixOS (maybe the nodejs build in NixOS).

If I disable bytecode generation, it works!
pkg . --targets linux --no-bytecode

Strangely I cannot refer to the exact file pkg ./dist/bin/typescript-demo-lib.js --targets linux --no-bytecode it throws this:
> Error! --no-bytecode and no source breaks final executable
  /home/cmcdragonkai/Projects/Typescript-Demo-Lib/dist/bin/typescript-demo-lib.js
  Please run with "-d" and without "--no-bytecode" first, and make
  sure that debug log does not contain "was included as bytecode".

The built executable I've copied to WSL Ubuntu and works.

This works now:
[nix-shell:~/Projects/Typescript-Demo-Lib]$ pkg . --no-bytecode
><EMAIL_ADDRESS>> Targets not specified. Assuming:
  node14-linux-x64, node14-macos-x64, node14-win-x64

We get 3 executables.

Using --no-bytecode will be better for us since this is an open source project, so no need to obfuscate the code, and apparently it gives better reproducibility (but evidently not across different compilation platforms).

Realised that the reason might be the package.json... that's probably it.

Anyway, we can proceed!

But still strange error involving EPIPE - that is concerning if this is occurring only for NixOS. I suspect now this might be due to how nodejs is packaged in Nixpkgs. Perhaps the bytecode generation activates some feature that isn't available in the nodejs in Nixpkgs.

So I want to point out that unlike TypeScript-Demo-Electron, the name of this package is in the package.json which is:
@matrixai/typescript-demo-lib

That means the full name is org-scoped in NPM.
In our current default.nix we are using:
  name = "${builtins.replaceStrings ["/" "@"] ["_" ""] node2nixDev.packageName}-${node2nixDev.version}";

In order to remove @ and replace / with _. That way the final name of the derivation here is:
matrixai_typescript-demo-lib-1.0.0

This is in line with other Nix packages which generally have the name with a tagged on version.
While this is the name of the derivation, we would not be using this as the name of the packaged executable.
In the TypeScript-Demo-Electron we instead have:
      name = "${utils.basename}-${version}-darwin-${arch}.zip";

It strips any @matrixai/blah to just blah. But appends the version and then the darwin plus architecture.
Our prereleases here should follow something similar:
name-of-package-version-platform-architecture[.ext]

That means we get something like:
typescript-demo-lib-1.0.0-win32-x64.exe

If we keep the org scoping we get:
matrixai_typescript-demo-lib-1.0.0-win32-x64.exe

I think we ignore the org scoping here since this isn't distributed on npm at this point, so we can use the proper package name.

GitHub claims to have a "latest" release: https://docs.github.com/en/github/administering-a-repository/releasing-projects-on-github/linking-to-releases
That's probably because I don't have any releases technically, and I have only published tags, which they are all set to prereleases.
Instead a release creation is manual thing, while prereleases are automated.

To integrate pkg into the nix build pipeline, we will need to package up nodePackages.pkg similar to what we did with @electron-forge/cli.

We have a PR on nixpkgs upstream https://github.com/NixOS/nixpkgs/pull/128967

It was this commit that caused the change for bitwarden/cli: https://github.com/bitwarden/jslib/commit/1016bbfb9eb28c220de8d2ab86d1f2757328f254 It resulted in a new directory jslib/common which didn't exist before.
So I think node2nix is struggling to build bitwarden now.
If there's a way to bring vercel/pkg without attempting to update bitwarden, then this PR could be used, and somebody else has to fix @bitwarden/cli.

That PR is ready to be used. In order to be able to use it ourselves, we will need to wait for it to be merged upstream and then change our pkgs.nix to be pinned ahead. Adding its derivation to our overlay will be a bit of a pain since it's not just a simple derivation but can include references to other node packages. In the mean time we can rely on the npm installed pkg and just run the command within node2nix building environment...

I might need to change to using 3.1 binaries from pkg-fetch since pkg seems to fail on the mac build.

Relevant things:

https://github.com/vercel/pkg#config - this is not needed for TypeScript-Demo-Lib (as there are no scripts/assets to load)
https://github.com/vercel/pkg#snapshot-filesystem - this is important if we need to interact with the internal fs and deal with assets/scripts
Auto-rewriting of the assets https://github.com/vercel/pkg#detecting-assets-in-source-code

One has to know that scripts are only needed for dynamic require() calls. This must however be normal js code (so no ts code allowed!)
The assets are for other things.
Still need to figure out what happens with:

https://github.com/vercel/pkg#native-addons - that will be for the next PR to test how it deals with things like utp-native

@scottmmorris @DrFacepalm

It's all working!

We get:
/nix/store/j4vbjipszxxynvvv466jlzq9qmkqvq2r-typescript-demo-lib-1.0.0-macos-x64

It's time to test gitlab CI/CD now for the prereleases.


How to train on custom datasets

Hi authors,
Thanks for your excellent work.
I've noticed that this repository includes the checkpoint of a pretrained model ("./pretrained/droid.pth"), could you provide some details about which datasets this checkpoint file is based on and how this model is trained?
Also, if I plan to train on custom monocular datasets like Tanks and Temples to obtain a new set of checkpoints, how could I access the training scripts and what kinds of data (RGB maps, depth maps, poses, etc.) are required for training? Thank you!
Best,
Michael W

Hi,
The frontend is pretrained and fixed when doing SLAM things. So, if you want to deploy to another dataset, it doesn't need to train the frontend network again.
But, if you want to improve/finetune our pretrained frontend network, you can follow the steps mentioned in DroidSLAM.
Best,
Youmin


Support cancel_rx in ttrpc context

Follow up to https://github.com/containerd/rust-extensions/pull/190. In order to ugprade ttrpc crate to 0.8.1 and up, we need to make some change changes to support cancel_rx in ttrpc context.

If no one takes it in 3 days, I will take it 😂


Update azure-data-factory-limits.md

I confirmed I'm able to create more than 800 Azure Data Factories in a subscription.

We should check with the dev team first. Maybe your subscription has a higher default limit?
@MemiyazaMiyazaki  did you already discuss with someone in the ADF team? I understand you work internally in CSS.
Thanks! Jason

@JasonWHowell
Yes, I've discussed with Ajay Arora and Mario Zimmermann in the dev team.

@ktoliver #sign-off
cc: @jonburchel

@JasonWHowell: I'm sorry - only the author of this article, @chez-charlie, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


Major changes in the Python packaging of the library

I have changed a lot of stuff in the Python packaging to allow for it to work across many OS's and Python and numpy versions. Here is a list of the major

[x] Add a pyproject.toml to add setup-time dependencies
[x] Get rid of the Caller class and just make it a function (breaks depending packages that use the source of this package directly)
[x] Move core DBSCAN wrapper functionality in Caller into a src/dbscan/algo.h file that can be included and templated to create faster compilation in C++ programs if the number of dimensions is known at compile time
[x] Change Caller.cpp to return an int for errors instead of the labels, so that I can avoid IO during error and use the Python error handling
[x] Replace Cython code with a C++ wrapper written bare metal so that I can leverage the Python limited C API to allow many Python versions to use the same binary (like OpenCV does)
[x] Enforce using the oldest possible numpy version during compile-time to make sure that downgrading numpy will not break the binary

I have tested my changes on Ubuntu and MacOS. Here are the wheels: https://gist.github.com/anivegesana/8c23b7356e0f93dfe1ec79ceea33c100
They should also be compiled for all of the OSes that numpy supports, but compiling for many different versions of Python isn't necessary. You only need different binaries for each OS. You might also want to recompile for the two OSes I compiled for using a CI or Docker container, in case if I missed anything related to system dependencies. I don't think I did, but it is good to check.
Yank your old releases so PIP doesn't get confused and install the older Linux version on computers that can't run it. And add a source distribution when you publish to PyPI so that the package can be built from source on the machines that you didn't compile for.

If these changes are too breaking, you might want to avoid pulling them, but I believe that these changes will increase the usability of this package and each major change in the packaging is in service of making it more portable and usable.
This is the fastest DBSCAN library for Python I was able to find. Thank you for your great work in creating this library and I hope it gains traction.
Fixes #2, fixes #5

I also have a version without the breaking change of removing Wrapper::Caller, but I would definitely recommend using dbscan/algo.h, since it is much more flexible and saves significantly on compile time if the number of dimensions are known at compile time.

Hi @anivegesana, thanks a lot for your nice work. I've tested your changes and I believe they work well. I will update the changes to PyPI soon.

I think I should push the changes that add back the Caller class so it doesn't break people's code (the people who use the C++ caller directly.) I probably should have converted it back to a draft.
Was the Caller class a documented feature that you expected others to use direct? I guess I will open a new PR that adds it back. I think creating a includes directory with the public facing header files would be incredibly useful.

@wangyiqiu I was also looking into creating a sklearn compatible wrapper along with the low level C API function call that already exists:
import sklearn.base
import sklearn.cluster

class sklDBSCAN(sklearn.base.BaseEstimator):
    __slots__ = ('core_sample_indices_', 'components_', 'labels_', 'n_features_in_', 'feature_names_in_')
    def __init__(self, eps=0.5, *, min_samples=5, metric='euclidean', metric_params=None, algorithm='auto', leaf_size=30, p=None, n_jobs=None):
        if metric != 'euclidean': raise NotImplementedError('Only euclidean metric supported')
        if algorithm not in ('auto', 'kd_tree'): raise NotImplementedError('Only kd tree is supported')
        if leaf_size != 30: raise NotImplementedError('Leaf size not supported')
        if p not in (None, 2): raise NotImplementedError('Only Euclidean distance supported')
        if n_jobs is not None: raise NotImplementedError('Parallelization is done automatically')
    def fit_predict(self, X, y=None, sample_weight=None):
        if sample_weight is not None: raise NotImplementedError('sample_weight not supported')
        labels, core_samples = DBSCAN(X, self.eps, min_samples=self.min_samples)
        self.core_sample_indices_ = core_sample_indices = np.nonzero(core_samples)[0]
        self.components_ = X[core_sample_indices]
        self.labels_ = labels
        self.n_features_in_ = X.shape[1]
        return labels
    def fit(self, X, y=None, sample_weight=None):
        self.fit_predict(X, y=y, sample_weight=sample_weight)
        return self

sklDBSCAN.__module__ = 'dbscan'
sklDBSCAN.__doc__ = \
"""A faster version of DBSCAN (with more limited functionality than sklearn's
version). sklearn's documentation is below.

""" + sklearn.cluster.DBSCAN.__doc__

That is totally untested, but it might be something worthwhile to add before pushing out the release.


error send media

ERROR [2021-09-21 19:51:31.509 +0000] (21319): Error in uploading to med
ia.fblr22-1.fna.whatsapp.net, retrying...
class: "Baileys"
ERROR [2021-09-21 19:51:32.385 +0000] (21319): Error in uploading to med
ia-xsp1-3.cdn.whatsapp.net, retrying...
class: "Baileys"
ERROR [2021-09-21 19:51:32.841 +0000] (21319): Error in uploading to mmg
.whatsapp.net
class: "Baileys"
Error: Media upload failed on all hosts
at WAConnection.prepareMessageMedia (/skuy/lib/simple.js:379:28)
at processTicksAndRejections (node:internal/process/task_queues:96:5
)
at async WAConnection.prepareMessageContent (/skuy/node_modules/@adi
wajshing/baileys/lib/WAConnection/6.MessagesSend.js:128:21)
at async WAConnection.prepareMessage (/skuy/node_modules/@adiwajshin
g/baileys/lib/WAConnection/6.MessagesSend.js:54:25)
at async WAConnection.sendMessage (/skuy/node_modules/@adiwajshing/b
aileys/lib/WAConnection/6.MessagesSend.js:24:27)
at async WAConnection.sendFile (/skuy/lib/simple.js:661:14) unhandle
dRejection

https://github.com/adiwajshing/Baileys/issues/513


[Hack-together]

Are you accessing the project from the GitHub Codespaces?

[ ] No, I am running the project on my local machine (I will fill in the OS section below)
[✅] Yes, I am using GitHub Codespaces.

Note: The project is optimized to run on Codespaces. We welcome contributions to enhance it for cross-platform local development, but it's not something we will prioritize right now. Thank you!

Describe the bug
A clear and concise description of what the bug is.
The site has no Light-Dark theme switch which I believe can enhance the user experience.
To Reproduce
Steps to reproduce the behavior:

Use Material UI

Expected behavior
A toggle button on the navbar or right below the navbar in the right corner.
Screenshots

OS (please complete the following information):

OS:
OS Version:
npm version:
Node.js version:
output of azd version:

Additional context
Add any other context about the problem here.

Hi @master-coder-ayush Thanks for raising this issue!
A dark theme/theme toggle would indeed be a great addition. It is great work and we have 24 hours until the end of the Hackathon. @juliamuiruri4 Would we still consider this PR as part of the hackathon if it's opened after the deadline?

@anfibiacreativa - Yes, we can consider the PR. We gave some extension as most people learnt about the hack together towards the end and wanted to still contribute. Thanks @master-coder-ayush and looking forward to your contribution!

Closing due to inactivity. Stale.


Lack of clone implementations makes some multithreading patterns difficult.

TL;DR: Some structs, but most specifically SubscriptionWrite should derive Clone to allow for easy task per event patterns. An example use case with cloning is show here in this gist
While writing some code using the client which needed to be multithreaded, I encountered difficulties with the SubscriptionWrite struct. I was delegating incoming events using tokio::spawn, and then handling them with some internal logic, after which I needed to ack them, but didn't want to send those events back somehow, or have the main thread do the acking at all.
Since it looks like this struct is a wrapper for an mpsc::Sender, I thought that I could use the common pattern of giving the task a clone the sender, but Clone is not implemented for SubscriptionWrite

I did fork the repo and test out that adding #[derive(Clone)] didn't break anything, and it worked without any problem. Let me know if I should put together a pull request and I am more than happy to do so. Cheers!

Hey @GenerallyIntelligent, thanks for creating your issue!
For some reason, I didn't see your post earlier, sorry. Subscriptions/PersistentSubscriptions changed quite a bit in the meantime. While those still do not implement the Clone trait, for persistent subscriptions, both the read and write parts have been merged. You can have a look at the related PR, there are also snippets of how those are used now: https://github.com/EventStore/EventStoreDB-Client-Rust/pull/110
While I am not against adding Clone per se (with the new design, it's no longer possible to implement clone anyway), your usage is not really how we usually recommend using persistent subscriptions. I would recommend connecting to a persistent subscription as many times as you need and using your subscription handle in the thread you want instead.
I remain open-minded on this topic and would like to know more about why you are using persistent subscriptions that way. Maybe I'm missing something in your use case.

Thanks for getting back to me.
It does look like the new PersistentSubscription struct would make implementing clone practically impossible, since it contains the tonic stream.
As for why one would want to use persistent subscriptions this way:
We have some logic which we would like to be concurrent, because we don't want to impact our responsiveness to new events on the subscription. Because of this, we are spawning a new task to handle each event, and allowing the original task to block for the next event. (A common pattern with tokio, since the tasks are so cheap).
The issue we have is that our subscription is owned by the main task context (which is blocking for the next event), and we would like to ack the event we just handled. But since we are creating some arbitrary number of tasks, each of those tasks needs a way to ack its respective event.
There are a couple of ways to do this, but one solution is to give each task a clone of the subscription ack sender. This way, we are not creating new subscriptions (the main task is still blocking for the next event), but we are able to ack events within many different tasks concurrently. Both tokio::sync::mpsc::Sender and tokio::sync::mpsc::UnboundedSender implement clone, since it isn't important where we are sending from, and often helpful to delegate between tasks.
Please correct me if I am not understanding, but it sounds like you are suggesting we have some number of tasks for handling events, and connect to the persistent subscription on each, such that each task has a unique connection to the eventstore. The reason I am hesitant to do this is that it generates more overhead on the eventstore itself, and prevents us from able to scale as effectively to the volume of events.
If we receive a number of events equal to the number of tasks which we have created, we are unable to begin processing a new event, until all of the current events are processed, or until we can create a new connection to the persistent subscription. This can add significant latency in IO bound scenarios.
We are using a microservice architecture, and so will be scaling horizontally. I'd like to avoid creating 1000 subscriptions in separate tasks just so that we can handle a large number of events, and then scale that by 100 or so instances. I'm sure that the eventstore is robust, but we have a large number of services for which this sort of behavior would apply.

It does look like the new PersistentSubscription struct would make implementing clone practically impossible, since it contains the tonic stream.

The new design got rid of a lot of unneeded boxing, resulting in faster code overall.

Please correct me if I am not understanding, but it sounds like you are suggesting we have some number of tasks for handling events, and connect to the persistent subscription on each, such that each task has a unique connection to the eventstore.

You are right until the point where you thought each task needs its own connection to eventstore. An eventstore connection is cloneable. So you can create as many persistent subscriptions as you want with the same connection, and that's what I'm suggesting here. Obviously, you would have to use the right consumer strategy but it is worth investigating.
Overall, persistent subscriptions aren't as fast as regular subscriptions. Persistent subscriptions are only run by the leader node of a cluster for example. There is also the possibility of you not using the right feature too. Are you sure you need a persistent subscription anyway?
In the end, I can still sneak a way for you to have a detached handle to ack a persistent subscription event. However, I want to be sure the need for it is really founded.


kerberos realm hardcoded to confluent.example.com

documented variable to use is realm not realm_name, so the kerberos config automatically gets set to confluent.example.com
tested with kerberos playbook and realm name (!= confluent.example.com), services came up

fix for this: https://confluentinc.atlassian.net/browse/PLAT-601


Running on GPU

Hi. Thanks a lot for sharing your great work. I am trying to run ./script/train_local.sh but it always runs on CPU. I have changed the MODE to "gpu" here but it still doesn't use the GPU.  I was wondering if you can help me with how I can change the model to GPU?

I think I solved it. Thanks.


ionic build --prod no found ionic 3

Ionic version:  (check one with "x")
[ ] 1.x
[ ] 2.x
[ x] 3.x
I'm submitting a ...  (check one with "x")
[ ] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:

Expected behavior:

"dependencies": {
"@angular/common": "4.0.0",
"@angular/compiler": "4.0.0",
"@angular/compiler-cli": "4.0.0",
"@angular/core": "4.0.0",
"@angular/forms": "4.0.0",
"@angular/http": "4.0.0",
"@angular/platform-browser": "4.0.0",
"@angular/platform-browser-dynamic": "4.0.0",
"@ionic-native/core": "^3.4.2",
"@ionic-native/device": "^3.4.2",
"@ionic-native/geolocation": "^3.4.2",
"@ionic-native/splash-screen": "^3.4.2",
"@ionic-native/status-bar": "^3.4.2",
"@ionic/storage": "2.0.1",
"ionic-angular": "3.0.0",
"ionicons": "3.0.0",
"rxjs": "5.1.1",
"sw-toolbox": "3.4.0",
"zone.js": "^0.8.4",
"imgcache.js": "^1.1.1"
},
"devDependencies": {
"@ionic/app-scripts": "1.3.0",
"typescript": "~2.2.1"
},
error

This is no an error for ionic-angular but for ionic-app-script
I opened the same issue some hours ago
https://github.com/driftyco/ionic-app-scripts/issues/877

Had the same, solved via
ionic build ios --env=prod

"ionic build ios --env=prod"
give me the same result than
"ionic build ios"

This should be resolved in 1.3.1.
npm install<EMAIL_ADDRESS>
Thanks,
Dan


sample not working

I download this sample code and change Endpoint/ClientId...etc variables to match my AAD B2C tenant/app id, but I got error message after I successfully signed in to Facebook.
the error message is Authorization error: The operation couldn’t be completed. (org.openid.appauth.general error -4.)
Authorize endpoint: https://login.microsoftonline.com/te/sksb2c.onmicrosoft.com/B2C_1_sksb2cuserweb_sign_up_in/oauth2/v2.0/authorize
Token endpoint: https://login.microsoftonline.com/te/sksb2c.onmicrosoft.com/B2C_1_sksb2cuserweb_sign_up_in/oauth2/v2.0/token

Could you share more about which values you changed? The only values that you need to change are:

Also, can you confirm if the sample worked before you made changes with the out-of-the-box configuration?

@parakhj
Hi,I changed the value for  kTenantName, kSignupOrSigninPolicy, kClientId and kRedirectUri,
and I checked info.plist schemes value and I am sure it is the same as the value in ViewController.m  kRedirectUri.
@gsacavdm
Hi,
The code works fine ‘out-of-the-box’ when I download the code.
But then I change the value for  kTenantName, kSignupOrSigninPolicy, kClientId and kRedirectUri, and I checked info.plist schemes value and I am sure it is the same as the value in ViewController.m  kRedirectUri.
Not sure I have missed something things somewhere?
Or if it’s possible for me to send you my code via email?
Thanks!

"I am sure it is the same as the value in ViewController.m kRedirectUri."
Just to confirm, it shouldn't be the exact same value. It should just be the first part of the redirect URI ('com.onmicrosoft.fabrikamb2c.exampleapp') not "com.onmicrosoft.fabrikamb2c.exampleapp://oauth/redirect"

Hi there,
the sample is also not working for me.
First, the pod cannot be build, don't know why. My system is up to date (Xcode and so on).
I put the source of AppAuth directly into the project.
Now i can build an run.
I changed the data as described, but when the login redirects, it redirects to localhost and safari cannot open the page...
Am i right, that i have to use the custom redirect uri field?
I have tested in simulator and on my phone.
So do you have any hits for me?
Thanks

Yes, you need to use the custom redirect uri. Did you get it working?

Did anyone have an update for this? I also encounter this issue

I download this sample code and change Endpoint/ClientId...etc variables to match my AAD B2C tenant/app id, but I got error message after I successfully signed in to Facebook.
the error message is Authorization error: The operation couldn’t be completed. (org.openid.appauth.general error -4.)
Authorize endpoint: https://login.microsoftonline.com/te/sksb2c.onmicrosoft.com/B2C_1_sksb2cuserweb_sign_up_in/oauth2/v2.0/authorize
Token endpoint: https://login.microsoftonline.com/te/sksb2c.onmicrosoft.com/B2C_1_sksb2cuserweb_sign_up_in/oauth2/v2.0/token

did your problem solve?


Upgrade Storybook to v8

Is your proposal related to a problem?
Our current usage of Storybook is outdated, while Storybook 7 is still getting updates, it would be good to migrate to the latest.
v8 is faster to build, has a cleaner UI and allows a new approach to visual tests we may want to adopt.
Describe the solution you'd like
Upgrade to Storybook v8 and also update all related Storybook dependencies.
We will need to ensure that the storybook-django package is updated to support Storybook 8 before we do this work.

See https://github.com/torchbox/storybook-django/issues/14
See https://github.com/torchbox/storybook-django/pull/15

Updates needed

https://storybook.js.org/docs/migration-guide

As at 08/11/2024 - these packages would all need to be updated.

Package
Old Version
New Version

Major

◯ @storybook/addon-controls
^7.6.14
^8.4.2

◯ @storybook/addon-docs
^7.6.14
^8.4.2

◯ @storybook/react
^7.6.14
^8.4.2

◯ @storybook/react-webpack5
^7.6.14
^8.4.2

◯ storybook
^7.6.14
^8.4.2

◯ storybook-django
^0.5.1
^1.0.0

Minor

◯ eslint-plugin-storybook
^0.6.15
^0.11.0

Working on this
This is best done by the core team.
This is mostly done, it's just waiting on a downline dependency.
See WIP commit / branch here  https://github.com/lb-/wagtail/commits/wip/12553-update-storybook-v8/
https://github.com/lb-/wagtail/commit/ba83707bfc87e6dd0bde543ecb01a2a962adb161

@thibaudcolas  assigning to you, hope that's OK. Mostly done - https://github.com/lb-/wagtail/commit/ba83707bfc87e6dd0bde543ecb01a2a962adb161
We just need some support for changes to storybook-django. https://github.com/torchbox/storybook-django/pull/15


Export-BicepChildResource throws with "access denied" to list roleAssignment

Describe the bug
Export-BicepChildResource throws an error saying the credentials used do not have access to list roleAssignments.
Refreshed credentials in both Az CLI and PowerShell, after checking out appropriate role.

To Reproduce
Steps to reproduce the behavior:
Run the Export-BicepChildResource with a subscription or resource group as the ParentResourceId.
Such as:
Export-BicepChildResource -ParentResourceId "/subscriptions/c5f27640-57b7-79f1-9896-cb4b49217632"
Export-BicepChildResource -ParentResourceId "/subscriptions/c5f27640-57b7-79f1-9896-cb4b49217632/resourceGroups/rg-test-infra"
Expected behavior
Return all Child resources from that subscription or resource group.

Related to the work planned for #258 where we would likely take a dependency on AzAuth and rework the current authentication implementation which isn't very transparent.


Use get_ifindex_by_name

This is an alternative to #123 and #124 that expects from the C stubs a function get_ifindex_by_name. This simplifies the OCaml code, and allows us to use rtnl_link_get_by_name on Linux, and on FreeBSD the ifindex dance is moved to the C stub.

\o/ I'm happy with the much simpler code we have now.