Eat your veggies (all of them together)

a wild broccoli cauliflower appears... lets just imagine it looks like:

[X] bump version to

[X] full commit history in-tact

[x] combine licenses – this will likely be up for debate, but the choice will likely be up to the original license holder @joliss, some related points

both MIT (makes this clearer)
cauliflower-filter was derived from here originally, so I believe the original license should be preserved
@caitp has done non-trivial amount of work, so I would recommend her be appended

[ ] do the stuff I'm missing

hmm, local git doesn't seem to be confused about this merge.. GH!!!

:raised_hands:

skims-diff Looks awesome. I'm about to travel, but will review soonish.

skims-diff Looks awesome. I'm about to travel, but will review soonish.

@joliss I believe you have an ASI preference, although I do not share it I will gladly change this PR to align with your common style preference. :)

I believe you have an ASI preference, although I do not share it I will gladly change this PR to align with your common style preference. :)

I will gladly merge code with semicolons. :)

I believe the combined license are fine. We can also adjust them retroactively, assuming the licensees are reasonable. Which I suspect they are.
I plan on merging this after lunch (like 2 hours or so)
@joliss it would be handy if we could also release a new minor version along with the merge.

@joliss we should be ready for a minor release bump.


[WIP] Add custom call primitive interface

Not yet ready for review.
This is a sketch of an interface to abstract away some of the boiler plate required when defining primitives that get lowered to custom calls. There are a few design decisions to consider more carefully, and my goal is to balance supporting a wide range of use cases, without over-committing to a huge public API.
I note that much of this implementation comes from @superbobry.

Closing in favor of #21484. I'll flesh out the primitive API in a future PR.


it's always on my cell phone, This happened to some other phones, but not all of them

it's always on my cell phone, This happened to some other phones, but not all of them
When I create a new project, there was still a problem with my phone
It's normal on the simulator

[√] Flutter (Channel beta, 2.2.0-10.3.pre, on Microsoft Windows [Version 10.0.19042.928], locale zh-CN)
• Flutter version 2.2.0-10.3.pre at D:\flutter
• Framework revision 06e2fd6357 (5 days ago), 2021-05-08 11:28:22 -0700
• Engine revision a123e75c60
• Dart version 2.13.0 (build 2.13.0-211.14.beta)
• Pub download mirror https://pub.flutter-io.cn
• Flutter download mirror https://storage.flutter-io.cn
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at D:\androidSDK\android-sdk_r24.4.1-windows\android-sdk-windows
• Platform android-30, build-tools 30.0.3
• ANDROID_HOME = D:\androidSDK\android-sdk_r24.4.1-windows\android-sdk-windows
• Java binary at: D:\jdk1.8\bin\java
• Java version Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
[!] Android Studio (not installed)
• Android Studio not found; download from https://developer.android.com/studio/index.html
(or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions).
[√] IntelliJ IDEA Ultimate Edition (version 2020.1)
• IntelliJ at D:\IntelliJ IDEA\IntelliJ IDEA 2020.1.1
• Flutter plugin version 56.0.1
• Dart plugin version 201.7223.99
[√] VS Code
• VS Code at C:\Users\86183\AppData\Local\Programs\Microsoft VS Code
• Flutter extension can be installed from:
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[√] Connected device (3 available)
• vivo X20A (mobile) • 572a1c03 • android-arm64  • Android 8.1.0 (API 27)
• Chrome (web)       • chrome   • web-javascript • Google Chrome 90.0.4430.212
• Edge (web)         • edge     • web-javascript • Microsoft Edge 90.0.818.56
! Doctor found issues in 1 category.
Originally posted by @childDai in https://github.com/flutter/flutter/issues/82430#issuecomment-841012492

Exactly the same Issue! no need of other information!

Hi @Horrible122
Do you have this issue with exactly Flutter version and affected device same as @childDai?
If so, please try upgrading Flutter SDK to the latest and retry to see if the issue is still reproduced.


Fix unit tests imports

This PR fixes imports in the unit tests that were not working in some environments.
After this PR you should be able to run pytest and not have any module import issues.

Looks great, thanks for adding these & the pipelines.
Optional ask: can we update the readme.md with instructions on how to run the unit tests? (i.e. which directory to call from and such).

Thanks, @adelebai.
I added more information on how to setup the dev environment and run the unit tests in the readmes.

Approving this and will consume this to restructure the project a little bit and send that PR out in a little bit


Fetch widget data separately in each widget

Issue #:
https://github.com/bcgov/met-public/issues/821
Description of changes:

Remove fetch contacts from context
Add a widgets block and a switch by widget type
Fetch contacts on who is listening component mount

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the met-public license (Apache 2.0).

The failing jest check is not due to any changes in this PR. We had to merge https://github.com/bcgov/met-public/pull/807 with that failing test.


Added image and helpful link at bottom

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

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

Thank you for your PR but now we are no longer accepting links or other resources (images, etc.) which are not under our control, i.e. which a user or service might remove and is not under our control.
I'm closing this PR for the same reason as above, hope to see more contributions from you! ✈


Add two-step changes

In order to disseminate changes to peers in a collaborative way, not only do we need the ability to capture and broadcast individual changes, but stay application of locally generated changes before they are accepted by peers using some Operational Transform algorithm.  There doesn't seem to be support for this kind of two-step application of changes in draw.io.

See https://github.com/jgraph/drawio/issues/366


CustomResourceDefinition implementation (nee TPR)

Copy of TPR implementation for CRD. Only works on k8s 1.7+.
Passed the tests once but CRDs appear to be flaky (e.g. deleting them once seems to botch something on the kube master).
cc @geeknoid @ayj @rshriram

@kyessenov: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/pilot-presubmit.sh
3dba96b87d6ec446be113402b2a5cc144720f2e1
link
@istio-testing bazel test this

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Flakiness is due to overlap with TPR. Using a different API group fixes the issue.

@kyessenov: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/pilot-presubmit.sh
32285421122891f6270bfd3173e81fa60b163c82
link
@istio-testing bazel test this

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Are CRD actually used in this change?

@kyessenov: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/pilot-e2e-smoketest.sh
5058d05659375dfc60a4bf555517b8cf7cd5a9b9
link
@istio-testing smoke test this

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

/retest all


[Hashcat] Assertion in BitcastUtils.cpp - i < NumUserOperands && "getOperand() out of range!"

Compiling the attached file with the following command line
clspv source_94254947566768.bc -cl-single-precision-constant -cl-kernel-arg-info -rounding-mode-rte=16,32 -fp64=0 -rewrite-packed-structs -std430-ubo-layout -decorate-nonuniform -hack-mul-extended -hack-convert-to-float -arch=spir --use-native-builtins=ceil,copysign,exp2,fabs,floor,fma,fmax,fmin,half_exp,half_exp10,half_exp2,half_log,half_log10,half_log2,half_powr,half_rsqrt,half_sqrt,isequal,isfinite,isgreater,isgreaterequal,isinf,isless,islessequal,islessgreater,isnan,isnormal,isnotequal,isordered,isunordered,mad,rint,round,rsqrt,signbit,sqrt,trunc, -spv-version=1.6 -max-pushconstant-size=128 -max-ubo-size=1073741824 -global-offset -long-vector -module-constants-in-storage-buffer -cl-arm-non-uniform-work-group-size -enable-printf -printf-buffer-size=1048576  -x ir  -o compiled.spv

results in the following assertion being hit:
clspv: /path/to/clvk/external/clspv/third_party/llvm/llvm/include/llvm/IR/User.h:170: llvm::Value* llvm::User::getOperand(unsigned int) const: Assertion `i < NumUserOperands && "getOperand() out of range!"' failed.

Program received signal SIGABRT, Aborted.

source_94254947566768.zip

Also need #1198 and #1199 to be fixed


Code to add Resource group method to resource class

@salameer @veronicagg Please review and approve.
Generated SDK is available in the PR: https://github.com/Azure/azure-sdk-for-ruby/pull/1637
This code change will introduce the code that was removed here: https://github.com/Azure/azure-sdk-for-ruby/pull/1106/files#diff-bc92394309fb41ea1f9624dd4376c33cL24

Thanks for the comments. Comments addressed. Merging it now.


doc: Added git install instructions

This change will make it easier to install this theme.

lgth:)

Glad to help


Support for Turbulence

While I'm on track using this, I think having support for some noise / turbulence field would really add to the realism in some of the movements of Confetti.

Something like.

Sounds interesting, should do some more research on that. There's definitely a lot to improve on the randomness of the Konfetti the way it falls down and the way it gets distributed.


Oracle ingestion -> Not ingesting system table space

Describe the bug
Reported originally by @atulsaurav. When ingesting from Oracle, we do not ingest any system table space tables. This should at least be
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Here is some additional information
There is an example from SQLAlchemy version used in datahub -
The get_table_names function does a few things -

if you look at the query in this function, it queries ALL_TABLES. This would only pull tables names that the id has select privileges on. Usually it is harder to get a master id created that has access to all data in all tables. The other option is to request catalog access on oracle databases, where in the id doesnot has SELECT privileges on any tables except oracle catalog tables. however in this case pulling table list from ALL_TABLES is not helpful. However with catalog privileges, DBA_TABLES does present a listing of all tables on the database. So right off the bat, not all tables are pulled by simply using this method. We patched this on our side by replacing ALL_* tables with DBA_* tables. That fixed part of the problem.
The second level of exclusions result from the filter criteria in the query used in this function -

    sql_str = "SELECT table_name FROM dba_tables WHERE "
        if self.exclude_tablespaces:
            sql_str += (
                "nvl(tablespace_name, 'no tablespace') "
                "NOT IN (%s) AND "
                % (", ".join(["'%s'" % ts for ts in self.exclude_tablespaces]))
            )
        sql_str += (
            "OWNER = :owner "
            "AND IOT_NAME IS NULL "
            "AND DURATION IS NOT NULL"
        )

The excluded_tablespaces and DURATION above filters out tables in SYS and SYSAUX tablespaces, and temporary tables respectively.
Excluded tablespaces can be overridden by specifying additional connection parameters in the recipe (maybe a good idea to document it) but temp tables may need a patch.
Anyhow, it may still be a good idea to document the current state so users are aware of scenarios in which they may be missing tables in the catalog.
I am happy to discuss more on this.. feel free to slack me.

Hi @atulsaurav
I believe the behavior of get_table_names is not a bug in DataHub. You may need to contact the SqlAlchemy team and specifically, the oracle driver team who has written the function in such a manner. They might have used ALL_TABLES instead of DBA_TABLES for security concerns.
You can control excluded_tablespaces from the oracle source recipe.
Please find the sample oracle source recipe
source:
  type: oracle
  config:
    # Coordinates
    host_port: <host>:<port>
    database: <database>

    # Credentials
    username: <user-name>
    password: <password>
    options:
        exclude_tablespaces: ["SYSAUX"]

sink:
  type: "datahub-rest"
  config:
    server: "http://localhost:8080"

Please let me know if you face any issues.

Hey people, wouldn't be necessary to override the behavior of the other method to use the DBA_* tables too? E.g: get_columns (DBA_TAB_COLUMNS),  get_table_comment (DBA_TAB_COMMENTS), etc.
I'm testing the oracle ingestion with a user with only metadata privilege (tables DBA_). The ingestion works but the table's columns are not ingested. I think it is because these method are still reading metadata using the ALL_ tables (from sqlalchemy), that only return data from tables where the user can read from, and our oracle user can't (ideally we don't want to grant select on tables to the user, because we're only interested in metadata).

Fixed by PR: https://github.com/datahub-project/datahub/pull/5592. Closing.


Cisco Device HMAC Error

Using Posh-SSH version 3.1.3, I'm aware that versions 3.1.1 and above now use the 2023 SSH.Net Library.
This library lists support for the MAC algorithm hmac-sha2-512.
I'm attempting to create a New-SSHSession to a Cisco device, the device is configured to use hmac-sha2-512. The cmdlet fails citing a MAC error, when I manually change the hmac on the Cisco device to use hmac-sha2-256 the session is created successfully.
Is the 512 hmac algo not supported or is this an issue specific to Cisco devices?

Should work unless Cisco is doind different. Does an error show up in the Cisco logs? Dont have the gear to replicate


(feat) making prompt caching optional instead of enabled default

Short description of the problem this fixes or functionality that this introduces. This may be used for the CHANGELOG
Currently, only the official Claude model provided by Anthropic supports prompt caching, whereas other iterations, such as Google Vertex AI's Claude, still lack this functionality and make the API request failed. I think prompt caching should be implemented as a user-configurable option, allowing individuals to decide whether to enable it, rather than being automatically activated based on model name recognition.
the error I occured from vertex AI using claude-3.5:
litellm.llms.anthropic.AnthropicError: {"type":"error","error":{"type":"invalid_request_error","message":"messages.0.content.0.text.cache_control: Extra inputs are not permitted"}}

Give a summary of what the PR does, explaining any non-trivial design decisions
making prompt caching optional:
- add a new option of LLMConfig: caching_prompt

Link of any specific issues this addresses

Thanks for contributing this!
Might need one smaller fixes with regard to linting (move an and around):
https://github.com/All-Hands-AI/OpenHands/actions/runs/10654478910/job/29531928586?pr=3689

Thanks for contributing this! Might need one smaller fix with regard to linting (move an and around): https://github.com/All-Hands-AI/OpenHands/actions/runs/10654478910/job/29531928586?pr=3689

sry, fixed it.

We're looking into the workflow issues, stay tuned.

@WannaTen sorry for the conflicts popping up now.
I can resolve them for you, if you like, just don't want to get our efforts crossed. Just let me know. :)

@WannaTen sorry for the conflicts popping up now. I can resolve them for you, if you like, just don't want to get our efforts crossed. Just let me know. :)

It's ok, I can take care of those conflict.

@WannaTen sorry for the conflicts popping up now. I can resolve them for you, if you like, just don't want to get our efforts crossed. Just let me know. :)

It's ok, I can take care of those conflict.

well. after attempting the rebase, I have to reorganize this pr after your implementation of the vision active feature.

@tobitege Hi, I solved the conflict. the slight difference is that I discarded the  vision_is_active() used attribute llm.support_caching_prompt.

Thanks for the updates @WannaTen , I'll try to keep an eye on this :)


Review use of HttpClient

We have some code which uses HttpClient to fetch resources
We should review these articles to work out what makes sense here.

http://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/
http://odetocode.com/blogs/scott/archive/2004/06/08/http-connection-limits.aspx
http://byterot.blogspot.co.uk/2016/07/singleton-httpclient-dns.html

I recently saw this article which summarizes two of those links and also lists out the methods which are thread safe on HttpClient: https://www.infoq.com/news/2016/09/HttpClient

The advice is basically that HttpClient is thread-safe and automatically manages multiple connections and requests so it should be a singleton for the lifetime of the application. It implements IDisposable but only because it has resources to be disposed, not because it needs to be disposed on every request. There's no need to use more than one instance for the entire application but it's not too big of a deal if major libraries use their own.
Reusing a single instance or allowing for an instance to be passed in the construction/config would likely be best.

@manigandham: Except it's not quite that simple due to DNS caching as I understand it.

@jskeet
There is the ServicePointManager.DnsRefreshTimeout property specifically for controlling the DNS resolution cache settings for new connections to a service point (address). The default is 2 mins.
https://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.dnsrefreshtimeout(v=vs.110).aspx
Will do some testing but never encountered any DNS problems with HttpClient before.

@manigandham: I believe the problem is for new connections to the same name, when it's got a new IP address. See http://byterot.blogspot.co.uk/2016/07/singleton-httpclient-dns.html We can't know whether that's relevant to our users or not, unfortunately :(

@jskeet
That blog post seems to be confusing DNS TTLs with HTTP/TCP connection lifetimes.
HttpClient is just a wrapper around HttpClientHandler which uses the HttpWebRequest stack, and this stack uses connection pooling with ServicePoint objects managed by the ServicePointManager. HTTP/TCP connections stay open indefinitely and don't do DNS lookups again, which is the correct behavior. New requests on a new connection will do a new DNS lookup and get the updated address.
There is some client-side DNS caching but this can be tweaked by ServicePointManager. It's also possible to just use Dns.GetHostAddresses to get the IP first, then use that in HTTP requests to make it more explicit.
.NET Core doesn't actually have ServicePointManager anymore but it will be back in .NET Core 2.0/NETStandard 2.0.
More discussion here: https://github.com/dotnet/corefx/issues/11224

@manigandham: Thanks for the link - that's very helpful. Unfortunately what you wrote on that thread:

If you want another DNS lookup to be done, you need to reset the connection on the client. You can force a max-lifetime of the TCP connection, send a connection: close header or just dispose the HttpClient or the underlying ServicePoint.

... makes me worry about keeping a static HttpClient within the library. We wouldn't know when to dispose of the client, because we're just a library - and I don't want to start doing things like exposing a ResetClient method. I may look at the XDocument.Load implementation to see what that does...

We need to resolve this issue, either through code changes or documentation.

What exactly is the issue? HttpClient is a long-lived static resource so it shouldn't be recreated for every (seemingly) lightweight StorageClient - maybe allow users to pass in their own HttpClient instance as an option?

You can already pass in your own HttpClient instance when creating a StorageService, but because we modify the HttpClient, we can't just reuse one across all services/clients. Basically HttpClient can be a long-lived static resource, but only if you know everything about how it's used.

I don't think it's possible to pass in an HttpClient at all, because the underlying StorageService (as in all REST-based services) requires a ConfigurableHttpClient which inherits from HttpClient, not composing with it.
It is possible to provide a custom IHttpClientFactory, but still doesn't allow anything as simple as just returning an HttpClient.

@jskeet The only way I can see to fix this is by making REST-based clients implement IDisposable. It's very not great due to the characteristics of HttpClient, but will fix most problems.
I can't see any way to enable [Configurable]HttpClient sharing; can you?

Sharing could potentially be done by having an IHttpClientFactory that just returns the same ConfigurableHttpClient, so users could opt in that way... but I think making the clients implement IDisposable is almost certainly better.

The problem with sharing a ConfigurableHttpClient instance, is that it directly references a ConfigurableMessageHandler instance, upon which the user can directly mutate various things: E.g. NumRetries, NumRedirects, various interceptors, logging, etc...
So I don't see this as being a viable solution at all.
Hence IDisposable being the only solution I can see.

Righto, SGTM. We can have suitable documentation (like we do for Channel) about the situations in which it's actually important to dispose.

I'm just going to reopen this for now in order to add some more docs.

We now have those docs.


Unable to apply CoordinateTransformations with napari-ome-zarr

I am trying to use the coordinateTransformation metadata  from the iohug.ngff.create_image() and I am seeing a couple of issues that are possibly related so keeping them in the same issue.
The first issue that it might be more of a napari issue is that we cannot apply individual coordinate transforms for multiple images within a position. After running this code it throws the error below, which means it expects some sort of pyramidal structured dataset.
store_path = "/hpc/projects/comp_micro/sandbox/Ed/tmp/"
# timestamp = datetime.now().strftime("test_translate")

store_path = store_path + 'test_translate' + ".zarr"

tczyx_1= np.random.randint(
    0, np.iinfo(np.uint16).max, size=(1, 3, 3, 32, 32), dtype=np.uint16
)
tczyx_2= np.random.randint(
    0, np.iinfo(np.uint16).max, size=(1, 3, 3, 32, 32), dtype=np.uint16
)
coords_shift = [1.0,1.0,1.0, 100.0, 100.0]
coords_shift2 = [1.0,1.0,1.0, -100.0, 1.0]
scale_val = [1.0, 1.0, 1.0, 0.5, 0.5]
translation = TransformationMeta(type='translation', translation=coords_shift)
scaling = TransformationMeta(type='scale', scale=scale_val)
translation2 = TransformationMeta(type='translation', translation=coords_shift2)
with open_ome_zarr(
    store_path,
    layout="hcs",
    mode="w-",
    channel_names=["DAPI", "GFP", "Brightfield"]) as dataset:
    # Create and write to positions
    # This affects the tile arrangement in visualization
    position = dataset.create_position(0, 0, 0)
    position.create_image("0", tczyx_1, transform=[translation])
    position = dataset.create_position(0, 1, 0)
    position.create_image("0", tczyx_2, transform = [scaling])
    # Print dataset summary
    dataset.print_tree()

Error:
File "/hpc/mydata/eduardo.hirata/.conda/envs/pyplay/bin/napari", line 8, in <module>
    sys.exit(main())
  File "/hpc/mydata/eduardo.hirata/.conda/envs/pyplay/lib/python3.10/site-packages/napari/__main__.py", line 561, in main
    _run()
  File "/hpc/mydata/eduardo.hirata/.conda/envs/pyplay/lib/python3.10/site-packages/napari/__main__.py", line 341, in _run
    viewer._window._qt_viewer._qt_open(
  File "/hpc/mydata/eduardo.hirata/.conda/envs/pyplay/lib/python3.10/site-packages/napari/_qt/qt_viewer.py", line 830, in _qt_open
    self.viewer.open(
  File "/hpc/mydata/eduardo.hirata/.conda/envs/pyplay/lib/python3.10/site-packages/napari/components/viewer_model.py", line 1014, in open
    self._add_layers_with_plugins(
  File "/hpc/mydata/eduardo.hirata/.conda/envs/pyplay/lib/python3.10/site-packages/napari/components/viewer_model.py", line 1242, in _add_layers_with_plugins
    added.extend(self._add_layer_from_data(*_data))
  File "/hpc/mydata/eduardo.hirata/.conda/envs/pyplay/lib/python3.10/site-packages/napari/components/viewer_model.py", line 1316, in _add_layer_from_data
    layer = add_method(data, **(meta or {}))
  File "/hpc/mydata/eduardo.hirata/.conda/envs/pyplay/lib/python3.10/site-packages/napari/utils/migrations.py", line 44, in _update_from_dict
    return func(*args, **kwargs)
  File "/hpc/mydata/eduardo.hirata/.conda/envs/pyplay/lib/python3.10/site-packages/napari/components/viewer_model.py", line 823, in add_image
    layerdata_list = split_channels(data, channel_axis, **kwargs)
  File "/hpc/mydata/eduardo.hirata/.conda/envs/pyplay/lib/python3.10/site-packages/napari/layers/utils/stack_utils.py", line 79, in split_channels
    multiscale, data = guess_multiscale(data)
  File "/hpc/mydata/eduardo.hirata/.conda/envs/pyplay/lib/python3.10/site-packages/napari/layers/image/_image_utils.py", line 76, in guess_multiscale
    raise ValueError(
ValueError: Input data should be an array-like object, or a sequence of arrays of decreasing size. Got arrays of single shape: (1, 3, 3, 32, 64)
c

Now, if we remove the second image position.create_image("1", tczyx_2) and open the positions in napari napari --plugin napari-ome-zarr test_translate.zarr we see the two (32x32) test images as expected, but without transformations applied to them .

If we drag and drop the different positions separately into napari, we can see that the scaling was applied as well as the translation but now we have to slide the bar for positions.

If we drag and drop the different positions separately into napari, we can see that the scaling was applied as well as the translation but now we have to slide the bar for positions.

Why would do you need to slide the bar though, it appears that they are loaded as duplicate layers so blending should work?

I dont need the slide bar. The slide bar appears when you drag and drop the two different positions into napari.

I modified your code a little bit to write the FOVs in the same well:
from iohub.ngff import open_ome_zarr, TransformationMeta

store_path = "test_translate.zarr"

tczyx_1 = np.random.randint(
    0, np.iinfo(np.uint16).max, size=(1, 3, 3, 32, 32), dtype=np.uint16
)
tczyx_2 = np.random.randint(
    0, np.iinfo(np.uint16).max, size=(1, 3, 3, 32, 32), dtype=np.uint16
)
coords_shift = [1., 1.0, 1.0, 10.0, 10.0]
coords_shift2 = [1., 1.0, 0., -10.0, -10.0]
scale_val = [1., 1.0, 1.0, 0.5, 0.5]
translation = TransformationMeta(type="translation", translation=coords_shift)
scaling = TransformationMeta(type="scale", scale=scale_val)
translation2 = TransformationMeta(
    type="translation", translation=coords_shift2
)
with open_ome_zarr(
    store_path,
    layout="hcs",
    mode="w-",
    channel_names=["DAPI", "GFP", "Brightfield"],
) as dataset:
    # Create and write to positions
    # This affects the tile arrangement in visualization
    position = dataset.create_position(0, 0, 0)
    position.create_image("0", tczyx_1, transform=[translation])
    position = dataset.create_position(0, 0, 1)
    position.create_image("0", tczyx_2, transform=[translation2, scaling])
    # Print dataset summary
    dataset.print_tree()

And it works as expected either by dragging all the FOVs or opening from command line with napari test_translate.zarr/0/0/*.

For multiple channels, there will be duplicates but I guess that's fine. Writing the multiple positions into one well works.
I think that for the movies and good snapshots, we will just create a separate zarr store that can do some blending between positions.
What do you think @mattersoflight?

Writing the multiple positions into one well works.

I think this is a good solution for writing the reconstructed data and getting starting the analysis.
When this reconstructed data is further analyzed, we will be stitching volumes, projecting data, overlaying channels etc. in some order. These reduced datasets need not even be stored in ome-zarr format.


Question/feature request: merging several chunks due to small ETL interval

What's wrong?
FIY: Discord channel is not working and you allow now only bug reports but this is are questions/feature request.
Previous Discord advice was to try to make the ETL batch as closer to 150K.
As I am unable to run with more than 15min delay I am around 30k batch insert.
But because I choose to partition my tables by tenants for query performance the actual 30k is probably split by 10 tenants internally and reaches 10 different strip/chunks with an average of 3K/batch. Thus being again very far from the 150K or at least the 10k/chunk. I now run simple Vacuum after each insert as advised on Discord.
Is there any mechanism or would you consider adding such feature to merge manually or automatically several stripe/chunks beside/togheter with vacuum or other command ?
Does the columnar.vacuum make and actual stripe merge/reduction of number of stripes/chunks ?
Documentation only states: "stripes to consolidate" but being in the Space Reclamation area I am not sure it actually merges them or only defragments the space between them ?

Right, you can use vacuum to do this. Are you seeing results that indicate this isn't having the desired effect?
columnar.vacuum does not try to address this, it's looking for stripes which are at least 20% updated or deleted rows.

For this small ETL batches issue I am more concerned for the large number of stripes & chunks, which I already tested previously  causes slower query performance. Full vacuum blocks a big table for to long period of time.
Standard simple vacuum recommendation I received back than on Discord (from @mkaruza if I remember correctly) optimizes the performance in some regards but does not addresses the large number of stripes & chunks which in a large production database will reach a pretty huge number.
So if "columnar.vacuum does not try to address this", could there be other options ?

Right, not vacuum full tablename, just vacuum tablename, it's designed for this exact case.  What does your vacuum verbose tablename say?
@mkaruza could comment about how the vacuum works exactly. Possibly this could be improved further but we'd need to know more about the case you are encountering.

To rephrase this in a more technical/practical question:
On a brand new table:
I insert first batch of 3000rows => 1st Stripe is created with 1st Chunk.
I insert second batch of 3000rows => I assume second Chunk is created although 1st chunk had 7000 more rows capacity.
I run simple vacuum.
What effect does it have on the 2 chunks ?

My understanding is the vacuum will combine both stripes and chunks up to the maximum stripe size. I don't know the full details of the implementation but you can test it like so and see where its limitations are. Note that vacuum verbose runs vacuum after the statistics are printed, so you have to run it twice to see the before-and-after effect of running the vacuum. You can see here that it went from 2 stripes in 2 chunks to 1 chunk in 1 stripe.
postgres=# create table test_vacuum (i int) using columnar;
CREATE TABLE
Time: 39.342 ms
postgres=# insert into test_vacuum select generate_series(1, 3000);
INSERT 0 3000
Time: 18.313 ms
postgres=# insert into test_vacuum select generate_series(1, 3000);
INSERT 0 3000
Time: 10.551 ms
postgres=# vacuum verbose test_vacuum;
INFO:  statistics for "test_vacuum":
storage id:<PHONE_NUMBER>0
total file size: 32768, total data size: 13526
compression rate: 1.83x
total row count: 6000, stripe count: 2, average rows per stripe: 3000
chunk count: 2, containing data for dropped columns: 0, zstd compressed: 2

VACUUM
Time: 56.130 ms
postgres=# vacuum verbose test_vacuum;
INFO:  statistics for "test_vacuum":
storage id:<PHONE_NUMBER>0
total file size: 24576, total data size: 7129
compression rate: 3.47x
total row count: 6000, stripe count: 1, average rows per stripe: 6000
chunk count: 1, containing data for dropped columns: 0, zstd compressed: 1

VACUUM
Time: 33.640 ms

Is it better to run now columnar.vacuum?

If you are not using UPDATE or DELETE then there's no reason to ever call columnar.vacuum. The purpose of this function is space reclamation, or you could also think of it as table compaction, delete materialization, etc. Without it, the table would only continue to grow in size (on disk) when you update or delete without any way to reclaim space.
Here's an example, you can see that after running DELETE the "total row count" is still 1,000,000, but after running columnar.vacuum, the table is compacted and there is only the 500,000 rows on disk.
postgres=# truncate test_vacuum;
TRUNCATE TABLE
Time: 14.788 ms
postgres=# insert into test_vacuum select generate_series(1, 1000000);
INSERT 0 1000000
Time: 314.002 ms
postgres=# delete from test_vacuum where i % 2 = 0;
DELETE 500000
Time: 726.878 ms
postgres=# vacuum verbose test_vacuum;
INFO:  statistics for "test_vacuum":
storage id:<PHONE_NUMBER>1
total file size: 2736128, total data size: 2697277
compression rate: 1.53x
total row count: 1000000, stripe count: 7, average rows per stripe: 142857
chunk count: 100, containing data for dropped columns: 0, zstd compressed: 100

VACUUM
Time: 76.027 ms
postgres=# select columnar.vacuum('test_vacuum', 10);
 vacuum
--------
      9
(1 row)

Time: 98.648 ms
postgres=# vacuum verbose test_vacuum;
INFO:  statistics for "test_vacuum":
storage id:<PHONE_NUMBER>1
total file size: 1376256, total data size: 1351768
compression rate: 1.53x
total row count: 500000, stripe count: 4, average rows per stripe: 125000
chunk count: 51, containing data for dropped columns: 0, zstd compressed: 51

VACUUM
Time: 42.439 ms

Excellent information. Thank you so much for such fast and complete information.
Maybe this could be compiled into a maintenance guide or small ETL batch guide chapter into Documentation together with the examples you provided ;)


"Unexpected token : in JSON at position 76" when querying a path in AGE

Describe the bug
When querying a path
SELECT * from cypher('my_graph_name', $$
  MATCH p=(a)-[]-(b)
  RETURN p
$$) as (a agtype);

i get the error: "Unexpected token : in JSON at position 76"
To Reproduce
I created a docker compose file to test AGViewer with AGE. I used both the images of AGViewer and sorrell/agensgraph-extension in it.
The files and the specific steps that i used can be seen in this repo https://github.com/audiBookning/Compose-AGE-AGViewer.
But they can be resumed:

create some nodes
create some relation between two of them
try to query the path of those two
get the error "Unexpected token : in JSON at position ***"

Expected behavior
The query should give the nodes and relations between them.
I tried the path query directly in the psql cli and there was no problem.
I don't know if this issue really belongs here or it belongs on the AGE repo.
Desktop (please complete the following information):

OS: windows 10
Browser: chrome
Version 90.0.4430.93 (Official Build) (64-bit)

I checked the issue.
We will proceed to check the cause.
I will answer after solving the issue.

@audiBookning  fixed this issue.
try again.

Nice!
I just tried the steps on my side and there was no problems.
When i have more time, i will try to test AGE and AGViewer more.
In the mean time i will close this issue
Thanks.

@audiBookning
we are great thanks to your reporting.


Set TimedTransition interval on setup or loop

Hello, I'm trying to set the TimedTransition interval on setup() or loop() functions without success.
This is because I load a config.json with some values and some transition interval are defined there, so I need to set the interval on those functions.
Any ideas on how to achieve this?
Thank you.

Hey,
Thank you for your feedback.
Will look into it and get back to you.
Cheers

Would be awesome to set this from setup() or loop() functions to add some dynamic timers without using external ones.
Thank you Lennart! 🚀

Hey,
what do you mean with dynamic timers?
Do you want to add timed transitions in setup()?
This does work:
TimedTransition timedTransitions[2];

void setup() {
 timedTransitions[0] = TimedTransition(&s[0], &s[1], 6000);
 timedTransitions[1] = TimedTransition(&s[1], &s[0], 4000);
}

Or do you want to solve a different problem?

hey!
I need to read a JSON config file from internal memory with some values including the intervals of the timed transitions on the FSM. I have crafted my logic into your example of TimedTransitions to see the issue I have.
If I load this code the TimedTransitions got 0 as time interval, I think that when the FSM is initialized the values of turnedOnTimeRed and turnedOnTimeGreen are not set.
My rookie approach thought that setting those variables before fsm.add(timedTransitions, num_timed); would do the job and send those intervals but no luck.
#include "SimpleFSM.h"

/////////////////////////////////////////////////////////////////

int    turnedOnTimeRed;
int    turnedOnTimeGreen;
SimpleFSM fsm;

/////////////////////////////////////////////////////////////////

void on_red() {
  Serial.println("\nState: RED");
}

void on_green() {
  Serial.println("\nState: GREEN");
}

void ongoing() {
  Serial.print(".");
}
/////////////////////////////////////////////////////////////////

State s[] = {
  State("red", on_red /*, ongoing */),
  State("green", on_green, ongoing)
};

TimedTransition timedTransitions[] = {
  TimedTransition(&s[0], &s[1], turnedOnTimeRed),
  TimedTransition(&s[1], &s[0], turnedOnTimeGreen),
};

int num_timed = sizeof(timedTransitions) / sizeof(TimedTransition);

/////////////////////////////////////////////////////////////////

void setup() {
  Serial.begin(9600);
  while (!Serial) {
    delay(300);
  }
  Serial.println();
  Serial.println("SimpleFSM - Timed Transition (Simple traffic light)\n");

  readConfigFromJson();

  fsm.add(timedTransitions, num_timed);
  fsm.setInitialState(&s[0]);
}

/////////////////////////////////////////////////////////////////

void loop() {
  fsm.run();
}

/////////////////////////////////////////////////////////////////

void readConfigFromJson()
{
  // read and set variables...
  turnedOnTimeRed = 6000;
  turnedOnTimeGreen = 4000;
}

@LennartHennigs any updates on this issue? Thank you.


Expose configuration for local validation of access tokens

Also: it'd be cool to have an additional strategy: random-validation. Where we do math.random() and randomly either validate locally, or against the API. This way you get some tradeoff between performance and security.

The idea of random validation is interesting, but I don't think should be part of this library.  That could be a plugin/module.

Except the small doc edits, I think this looks good! :+1: :)


Refactor Context.GenericTag to Context.Tag

It should be easy. https://effect.website/docs/guides/context-management/services

Done


Cant pour paltinum blocks or ingots

I think there is a similar bug to https://github.com/Mrthomas20121/Tinkers-Reforged/issues/8 where i can pour plat to different casts, but not to ingots or blocks.

im aware of this. it's fixed in dev. i had a few exams lately didn't have time to work on it and push it to curseforge


Difficulty expressing a method call

Hello. I am having difficulty expressing a method call. My Kotlin definitions are as follows:
sealed interface Event<T> {
    data class Created<T>(val obj: T) : Event<T>
    data class Updated<T>(val obj: T) : Event<T>
    data class Deleted<T>(val obj: T) : Event<T>
}

interface EventListener<T> {
    fun onEventReceived(event: Event<T>)
}

val callback = object : EventListener<T> {
    override fun onEventReceived(event: Event<T>) {
        trySendBlocking(event)
    }
}

someJNICall(callback)

My C++ code is receiving a jobject eventListenerObj representing the callback defined above, and I would like to invoke its onEventReceived method. So far I've attempted to use the following definitions:
static constexpr jni::Class JavaObject {
    "java/lang/Object",
};

static constexpr jni::Class EventCreated {
    "com/myproject/Event$Created",
    jni::Field { "obj", JavaObject },
};

static constexpr jni::Class EventListener{
    "com/myproject/EventListener",
    jni::Method{"onEventReceived", jni::Return{}, jni::Params{EventCreated}},
};

auto javaEvent = jni::LocalObject<EventCreated> {};
javaEvent["obj"].Set(javaRpcObject);

jni::LocalObject<EventListener> eventListener{eventListenerObj};
eventListener("onEventReceived", javaEvent);

and I am experiencing a runtime error:
java_vm_ext.cc:594] JNI DETECTED ERROR IN APPLICATION: JNI CallVoidMethodV called with pending exception java.lang.NoSuchMethodError: no non-static method "Lcom/myproject/EventListener;.onEventReceived(Lcom/myproject/Event$Created;)V"

Running javap against EventListener.class, I see the following output:
{
  public abstract void onEventReceived(com.myproject.Event<T>);
    descriptor: (Lcom/myproject/Event;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: #8                           // (Lcom/myproject/Event<TT;>;)V
    RuntimeInvisibleParameterAnnotations:
      parameter 0:
        0: #9()
          org.jetbrains.annotations.NotNull
}
Signature: #3                           // <T:Ljava/lang/Object;>Ljava/lang/Object;

What is the proper way to call onEventReceived?
EDIT:
I was able to invoke the method successfully in the following manner:
jclass c = env->GetObjectClass(eventListenerObj);
jmethodID m = env->GetMethodID(c, "onEventReceived", "(Lcom/myproject/Event;)V");
env->CallVoidMethod(eventListenerObj, m, javaEvent.operator _jobject *());

How that translates to this library is still an open question.

Hello, thanks for your interest in JNI Bind and the detailed question.
I think you possibly are missing the "type erasure" of your interface.  Created is actually called something like com/myproject/Event$Created<Ljava/lang/Object;>
So too I think this applies to EventListener as it is generic.  It might be worthwhile to just print the instance of the class object using toString and maybe it will give you the proper signature, although, I've used classes with type erasure before successfully, and I believe that's your mistake.
Please let me know if it works.

Thank you @jwhpryor.
The following code:
callback::class.java.getDeclaredMethods().forEach { method ->
    println(method.toString())
}

leads to the following output:
public void com.myproject.ClusterSession$watch$1$callback$1.onEventReceived(com.myproject.Event)

It appears as though I need to somehow construct an Event, but Event is an interface, not a class. This is my attempt to do so in C++:
static constexpr jni::Class Event{
        "com/myproject/Event",
        jni::Constructor{EventCreated},
};

static constexpr jni::Class EventListener{
        "com/myproject/EventListener",
        jni::Method{"onEventReceived", jni::Return{}, jni::Params{Event}},
};

auto javaEvent = jni::LocalObject<EventCreated> {};
javaEvent["obj"].Set(javaRpcObject);

jni::LocalObject<Event> someEvent{javaEvent};
jni::LocalObject<EventListener> eventListener{eventListenerObj};
eventListener("onEventReceived", someEvent);

The code above type checks, but it fails at runtime:
java_vm_ext.cc:594] JNI DETECTED ERROR IN APPLICATION: JNI NewObjectV called with pending exception java.lang.NoSuchMethodError: no non-static method "Lcom/myproject/Event;.<init>(Lcom/myproject/Event$Created;)V"

It makes sense to me why it fails, because Event is not a class, and therefore it does not have any constructors.

I agree, it would make sense that you cannot construct an instance of an interface, and when you write jni::LocalObject<Event> someEvent{javaEvent};, you are essentially attempting to call a constructor (that doesn't exist) with an object.
Instead, you probably want to write jni::LocalObject<Event> someEvent{CreateCopy{}, javaEvent}; or jni::LocalObject<Event> someEvent{AdoptLocal{}, javaEvent}; or even I think just jni::LocalObject<Event> someEvent{std::move(javaEvent)}; I think would work (it depends on which of these you want).
https://github.com/google/jni-bind?tab=readme-ov-file#local-and-global-objects might be useful context for you.

Just checking in, did you manage to solve your issue?  If I don't hear back I'll close this issue out, but I wanted to give you a chance to respond.

Feel free to reopen as needed.  Best of luck!

Hi @jwhpryor. Apologies for the delay. It seems that jni::LocalObject<Event> someEvent{std::move(javaEvent)}; is exactly what was needed, thank you.


Event Type support

Signed-off-by: Matthias Wessendorf<EMAIL_ADDRESS>Fixes #

Proposed Changes

adding sourcecrd's Controller to support "Even Type" (and required cluster roles)

Release Note

Docs

/test pull-knative-sandbox-eventing-kafka-unit-tests

/test pull-knative-sandbox-eventing-kafka-integration-test-channel-consolidated

/retest

/hold
let's hold for reviews..

/close


AppBundle: Sideloaded 32bit app will be crashed on 64bit devices

I found another issue related sideload with AppBundle(Split Apk format)

Sideload app that have only 32bit ABI split apk format into 64bit device.

$ adb install-multiple base.apk config.armeabi_v7a.apk
$ adb shell dumpsys package your.app.package_name |grep splits
splits=[base, config.armeabi_v7a]

Open Google Play Store and go to app description, app is update-able even if has same version code.
Update app and google play deliver 64bit abi split apk because device is 64bit.

$ adb shell dumpsys package your.app.package_name |grep splits
splits=[base, config.arm64_v8a, config.armeabi_v7a]

SoLoader raise java.lang.UnsatisfiedLinkError

java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libyoga.so caused by: couldn't find DSO to load: libfb.so caused by: dlopen failed: "/data/data/your.app.package_name/lib-1/libfb.so" is 32-bit instead of 64-bit
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:774)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:627)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:565)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:513)
at com.facebook.yoga.YogaNative.<clinit>(YogaNative.java:15)

Version 0.10.3 has been released which includes this fix.


Bind webhook controller to a non priviliged port

Running a server on 443 with a non privileged user would fail to start it.
Changing to 8443
See:

https://github.com/tektoncd/pipeline/issues/719

/lgtm


Daylight Saving Time bugs cause failures in cookies

Although I'm not quite sure what countries (if any) change their DST today (March 9 at ~2-3 am EST, 2012), we've had a sequence of crashes related to the cookie handling in cowboy failing:
  2012-03-09 02:54:34.013 [error] <0.29836.839> ** Handler rtb_handler terminating in handle/2 for the reason error:{case_clause,[]}
 1158 ** Options were {...}
 1159 ** Handler state was {state,{config,cassanderl_dispatch,800,ets,36893,40990}}
 1160 ** Request was {http_req,#Port<0.39651388>,cowboy_tcp_transport,keepalive,'GET',{1,1},undefined,[...],undefined,<<"..."> >,80,
       [...],undefined,<<"...">>,undefined,<<"...">>,[],[{'Connection',<<"keep-alive">>},{'Accept-Encoding',<<"gzip, deflate">>},
       {'Accept-Language',<<"en-us">>},{'Referer',<<"...">>},{'Accept',<<"*/*">>},
       {'User-Agent',<<"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8)  AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7">>},
       {'Host',<<"...">>}],undefined,waiting,<<>>,locked}
 1161 ** Stacktrace: [{cowboy_clock,rfc2109,1},{cowboy_cookies,cookie,3},...,{cowboy_http_protocol,handler_loop,3}]

The exception seems to come from a bad handling of the possible return values from calendar:local_time_to_universal_time_dst/1 where the documentation says:

[]
For a local {Date1, Time1} during the period that is skipped when switching to daylight saving time, there is no corresponding UTC since the local time is illegal - it has never happened.

This [] return value isn't handled in cowboy_clock in this part of the code:
rfc2109(LocalTime) ->
     {{YYYY,MM,DD},{Hour,Min,Sec}} =
          case calendar:local_time_to_universal_time_dst(LocalTime) of
                [Gmt]   -> Gmt;
                [_,Gmt] -> Gmt
          end,
     ...

Which provokes crashes.

Thanks for the hard work of narrowing down the list of suspects. The root cause of the error was that the cowboy_cookies module generates localtimes that doesn't exist when it creates the expiration time for the cookie. In this case the date was 2012-03-09, the max_age used for the cookie was two days and the daylight savings time in Canada starts at 2012-03-11.

Opened an issue upstream: https://github.com/mochi/mochiweb/issues/73

Fixed in 3376b7295e6903d7fb28ba97de5cd72688719fb7. Thanks everyone!

I'll make sure we only deal with universal time when reworking the cookies code, so this shouldn't be an issue at all anymore at some point.


Add monorepo support

Right now, a single rule is selected to determine whether or not checks-out see sufficient approvals to accept a PR. When working in a monorepo, this isn't sufficient; different paths in the same project will have different approval rules, and you don't know ahead of time which combination of them need to be active for a given PR. Adding the ability to specify that multiple approval rules can be active at once, determined per-PR would enable a flexible monorepo approval system.

If #60 was done - could this be resolved by that? at least from a check on who?

My quick scan of how CODEOWNERS works is that is per-branch. The way I am thinking about it, monorepo support needs to be per-path. But I can be convinced that I am wrong.
This doesn't mean that #60 shouldn't be done, just that it probably doesn't help.
I have a potential early implementation of monorepo support, but I need to find out from the Open Source Office how to get the code here.


Updated research section with participant recruitment

No worries, good that you remind me!! It's important :)


Some content not visible / hidden when there's no scrollbar (everything in category C and without category)

App Version: 2.0.8
Platform: macOS Sonoma 14.2.1, MacBook Air 2020 (Intel)
Installation Method: Direct Download
Expected Behavior:
Show all open TODOs (when no filters applied)
Actual Behavior:
Shows all TODOs in categories A and B, but only header for C - and no TODOs with no priorities assigned. This changes only when the window is reduced to force a scroll bar to appear.
Some context: My setup has my MacBook Air in the middle, a 1080p screen on the left and a 2560*1440 screen on the right:

I want to keep sleek on the right screen, and maximized to list as many TODOs as possible.
Steps to Reproduce:

Open the app.
Maximize sleek on my vertical external screen
(sometimes) Push a button (such as the filter button on the upper left side) to make the scrollbar disappear
Observe the unexpected behavior.

Screenshots:
Problem when no scrollbar is visible (everything under the yellow "C" is hidden!)

No problem when the window is smaller, forcing a scrollbar to appear - and then scrolling down:

@thekryz thank you for this exemplary bug report!
Can I ask you to check, if this might be a duplicate of this report? https://github.com/ransome1/sleek/issues/639

@thekryz thank you for this exemplary bug report!
Can I ask you to check, if this might be a duplicate of this report? #639

Yes, it looks like they describe the same issue.

Duplicate of https://github.com/ransome1/sleek/issues/639. Will be dealt with over at 639.


Update the clang-format config file to ensure consistency with PL code style

This PR includes following updates in the code-base,

Update the C++ clang-format config file to ensure consistency with PL code style introduced here.
Add a missing std library to the DataView class.
Add missing headers to a few dialects files.
Fix pylint warnings and useless-suppression

I'll close this as stale, but we can reopen after a discussion about how we want to move forward with this.


New data structure —— List

We need a new data structure, List, to extend the database's key-value storage structure.
We need to build some instructions into List to make it more complete.
If you are interested in extending the List data structure, you can comment below on the issue id you would like to try and we will assign it to you.

ID
Method
Command
Description
Progress
People

1
LPush
LPush key value1
Insert one or more values at the left of a list

2
LPushs
LPushs key value1 value2 ...
Insert multiple values at the left of a list

3
RPush
RPush key value1
Insert one or more values at the right of a list

4
RPushs
RPushs key value1 value2 ...
Insert multiple values at the right of a list

5
LPop
LPop key
Remove and return the first value from the left of a list

6
RPop
RPop key
Remove and return the last value from the right of a list

7
LRange
LRange key start stop
Get a range of values from a list

8
LLen
LLen key
Get the length of a list

9
LRem
LRem key count value
Remove matching values from a list

10
LSet
LSet key index value
Set the value at a specific index in a list

11
LTrim
LTrim key start stop
Trim a list to the specified range of elements

12
LIndex
LIndex key index
Get the element at a specific index in a list

13
RPOPLPUSH
RPOPLPUSH source destination
Remove an element from the end of one list and push it to another list

I want to receive tasks from ID1 to 13


Computing features.csv and mos.csv for custom dataset

Hello,
I was trying to test the method on my custom point cloud to compute SRCC, PLCC and KRCC. How can I compute features.csv and mos.csv. I guess features.csv can be obtained from demo.py with little modifications(please confirm) but mos.csv is the major issue. Please share some more information for custom point clouds. Thank you

Yes, the features can be obtained via demo.py.
The mos indicates the mean opinion score, which is usually generated by the subjective experiment and considered as the ground truth (quality labels) of the point clouds. In the subjective experiment, people are invited to evaluate the point clouds and give their subjective ratings, which are the source of mos. For your custom point cloud, you should manually judge the point cloud first in terms of visual quality then you can compute SRCC, PLCC and KRCC.

Okay, thank you.


Problems with code

"User not activated!" and Avatar not addet. Error with url

"User not activated" - in CMS > Settings > Users > in Activation tab > check automatic activation.
Avatar - have you created users folder in media folder with images?

Hi. In media folder i created the folder users and have some error

"The file "/storage/ssd5/932/7556932/public_htmlhttp://some-domain.gom/storage/app/media/users/name.jpg" does not exist" on line 37 of /storage/ssd5/932/7556932/public_html/vendor/symfony/http-foundation/File/File.php

I solved the problem by removing the domain name in UserImportModel in this part $pathinfo['dirname']
The automatic activation is checked but users addet not activated

Hi @Carrrven I just release new version 1.0.5 fixes problem with the import avatars. Thanks for reporting the issue.


Improve some error messages for bevy_ecs generated by nightly rustc

This commit introduces a new feature flags that let's user opt into the
nightly only #[rustc_on_unimplemented] attribute. This attribute can
be used to improve error messages generated by missing trait
implementations. This commit adds annotations to two locations in bevy
to improve error messages submitted as part of
https://github.com/weiznich/rust-foundation-community-grant/issues/3
Addresses https://github.com/bevyengine/bevy/issues/1519

See https://github.com/weiznich/rust-foundation-community-grant/commit/e69f4f7e5bfa8faeeeb43369b206c32c45c3b5d0#diff-c059c07feb90f777392b96c4c59911c9b5895882682eff9b25f7f0539338b6b0 for the relevant output changes.
The exact wording of the error messages is up to discussion and can be easily changed.

I am extremely excited to see the upstream work start to pay off :)
Is there any way to automatically detect whether the user is on a compatible nightly version? This is most useful for beginners, so it's a shame it has to be opt-in.

The IntoSystemDescriptor error message is the other critical pain point; would that be feasible to address in this PR or are there limitations that would block that?

It seems rustc_on_unimplemented is never going to be stabilised, and not meant to be used of rustc. If that's the case, I don't think it's usable for Bevy

Is there any way to automatically detect whether the user is on a compatible nightly version? This is most useful for beginners, so it's a shame it has to be opt-in.

I didn't check that, but I would expect that any nightly from the last few years is compatible. The attribute does not really change much as far as I know. ekuber states that there were maybe 3 changes in the last 5 years, all of them backward compatible. As for the opt-in part: See the last part of the comment. At least I as diesel maintainer would be quite interested in having something like that on stable. Maybe we can suggest something like that to the compiler team if there is demand in the ecosystem.

The IntoSystemDescriptor error message is the other critical pain point; would that be feasible to address in this PR or are there limitations that would block that?

I do not know the code base well enough to say if that would be feasible or not. Generally speaking if the error messages is a "… trait not implemented …" error message, then it's likely possible. I might have a look at that if you can provide an example.

It seems rustc_on_unimplemented is never going to be stabilised, and not meant to be used outside of rustc. If that's the case, I don't think it's usable for Bevy

That's partially correct. rustc_on_unimplemented will not be stabilized as far as I can tell. Although it can be used outside of rustc (as shown by this PR). There are considerations to stabilize basically the same thing without guaranteeing anything other than that it does not cause a compiler error if present. I personally want to investigate in some good use-cases outside of rustc for this attribute, so that there are exist a few examples of successful uses of this attribute. This hopefully gives some good arguments to stabilize it in some form. (My personal favorite would be using a tool attribute for this, so similar to the existing #[rustfmt::skip] there would be an #[rust::on_unimplemented] attribute, but that's up to future discussion.)

I do not know the code base well enough to say if that would be feasible or not. Generally speaking if the error messages is a "… trait not implemented …" error message, then it's likely possible. I might have a look at that if you can provide an example.

Sure! Here's a simple failing snippet:
use bevy::prelude::*;

// Should be `mut commands: Commands` as `&mut Commands` doesn't implement `SystemParam`
fn broken_system(commands: &mut Commands) {}

fn main(){
    App::new().add_system(broken_system).run();
}

Maybe we can suggest something like that to the compiler team if there is demand in the ecosystem.

I'd be happy to help advocate for this; this style of work was mentioned in the lang team's roadmap as an area they'd like to move forward with and something I've personally discussed in the past with both Niko and Josh Triplett.
I agree that this work is valuable as a proof of concept for how this feature could improve end user UX.
I'm personally a bit nervous to merge this PR using rustc_on_unimplemented, but if @cart decides that this feature flag approach is acceptable I would want to insist on a step in CI that verifies that this continues to work as intended.

I didn't check that, but I would expect that any nightly from the last few years is compatible. The attribute does not really change much as far as I know

@weiznich to clarify, I was wondering if there was a way to detect at runtime if the rustc version was nightly or stable, so we could avoid having a feature flag at all :)

I'd be happy to help advocate for this; this style of work was mentioned in the lang team's roadmap as an area they'd like to move forward with and something I've personally discussed in the past with both Niko and Josh Triplett.

I should probably link this zulip discussion here as well as this seems to be highly relevant and currently ongoing.

@weiznich to clarify, I was wondering if there was a way to detect at runtime if the rustc version was nightly or stable, so we could avoid having a feature flag at all :)

As far as I know there is currently no way to detect which rustc version is used to compile the current crate. At least not without using a build.rs file and something like version_check or a similar approach. I personally prefer feature flags for such things as this gives users a finer control whether they want to use something that's not considered to be stable.

I'm personally a bit nervous to merge this PR using rustc_on_unimplemented, but if @cart decides that this feature flag approach is acceptable I would want to insist on a step in CI that verifies that this continues to work as intend

If this is totally opt-in and the implementation scope is small (and it looks that way to me), I'm down to merge something in this vein if it helps move this compiler effort forward / prove these features are valuable.
Probably worth adding some comment explaining the rationale behind this / the scope of this effort.
That being said, if merging this (as opposed to just testing this branch ourselves and leaving feedback) doesn't directly benefit the effort to stabilize (ex: help answer unanswered questions), then I think we should wait for a stable api.

I had some discussions with ekuber about how to stabilize the corresponding attribute. He tweeted about that here. The summary of that discussion is that we both agree on that it should be possible to stabilize this "soon". Maybe even without going through a language team decision by using the existing tool attribute RFC. I'm on holiday for the next weeks,after that I plan to fill a compiler MCP for this.
For this PR: It's up to you if you want to provide this improved error messages as early as possible or wait for a final compiler/language team decision. For diesel I recently shipped at least some uses of the corresponding attribute behind a feature flag, as I believe that can help users.

Given that this message is intended to help new users, I think the added complexity of requiring nightly / enabling a feature counteracts the improved UX of the better error messages. I think we should probably wait until it stabilizes.

Closing this out: we'll redo this properly with the stable equivalent soon :)


View the list of clusters that already exists

docker run swarm allows to create a cluster. list, manage, join requires the token. A new command that would allow to show the list of tokens that are already available would be useful.

@arun-gupta this is right now not possible since we don't know who created what.
However, this feature could definitely be possible once we address #374

@aluzzardi Agreed about #374. Are tokens generated without authentication with Docker Hub?

I don't think it's related to #374, but to #438. With #438 token will be linked to a docker hub user.

Closing due to lack of activity. Please reopen if you wish to continue discussing it.


David/proposer offchain

Fixes #524
This PR includes a proposer that exports two endpoints:

GET /healthcheck
POST /proposer/offchain-transaction to receive offchain transactions from users. The proposer will forward transactions received through this endpoint to optimist endpoint

Additional changes included are:

When a proposer registers, it now needs to provide its API URL so that the URL is recorded in the proposers contract. The proposer needs to have two endpoints implemented:

GET /healthcheck
POST /proposer/offchain-transaction

nightfall-client/src/routes/peers have been deleted, as the functionality is not used anymore. However, there is a function in nightfall-client/src/services/peers.mjs getProposers that return the next N proposers and the URLs so that a user can forward transactions directly. The URLs from proposers are extracted from proposers.sol contract directly.
Off chain transactions have been added to cli
Increased gas limit in proposer tests as a result of adding a url

To test changes, simply run ping-pong test. If has been modified to alternate between onchain and offchain transactions. You can also test direct transactions with cli tools (launching ./nf and requesting offchain transactions).
NOTE: I had to merge PR with #514 because there were changes to ping pong test that were required.

Hey the tests failed because it turns out we were really over the limit on gas. Add another 0 to the gas cost and they should run fine :sweat_smile:

BREAKING CHANGE: Because registerProposer function signature changes


Update community-tooling.md

CockroachDB support has been added to DBConvert and DBSync.
Thus, all DBConvert software associated with PostgreSQL can convert and synchronize data between CockroachDB and many other DBMS, including
PostgreSQL,
AWS RDS/ Aurora,
Google Cloud SQL for PostgreSQL,
Azure Database for PostgreSQL
Heroku Postgres,
Microsoft SQL Server
Windows Azure SQL Databases/ Azure SQL Data Warehouse
Google Cloud SQL for SQL Server
Oracle/ Oracle Cloud
MySQL, MariaDB, Percona
Microsoft Access
Firebird, InterBase
Please consider adding DBConvert link to the list of Third-Party Tools Supported by the Community

This change is


PHP 5.3.29 CodeIgniter

Anyone have an information what version CodeIgniter for PHP 5.3.29 ?

github is for bugs. support issues should be asked on forum.codeigniter.com
Per https://github.com/bcit-ci/CodeIgniter#server-requirements, the minimum version for CodeIgniter 3 is 5.2.4, so it will also work on 5.3.29. We recommend PHP 5.5 or later.


ja.json update

localisation file provided by touge

@BrotherSharper if you take a look at https://github.com/trioderegion/dnd5e-helpers/blob/action-management/lang/ja.json this would be the next release, i can add this addition to that branch directly otherwise


Error when using reboot resource on Linux when delay_mins is used

Description

An error occurs whenever the delay_mins property is used for a reboot resource. The reboot does still occur after the given delayed minutes, but the client does not exit gracefully.
Chef Version

Chef Client, version 14.5.33 x64
Platform Version

Red Hat Enterprise Linux Server release 7.3 (Maipo)
Linux version 3.10.0-514.21.1.el7.x86_64
Replication Case

Create a simple cookbook called foobar with the following default.rb recipe:
reboot 'do_reboot' do
  delay_mins 1
  action :reboot_now
end

Run chef-client -z -o foobar to execute the cookbook.
Client Output

Synchronizing Cookbooks:
  - foobar (0.0.0)
Installing Cookbook Gems:
Compiling Cookbooks...
Converging 1 resources
Recipe: foobar::default
  * reboot[do_reboot] action reboot_now[2018-10-09T12:41:22-05:00] WARN: Rebooting system immediately, requested by 'do_reboot
'
[2018-10-09T12:41:22-05:00] WARN: Rebooting system immediately, requested by 'do_reboot'
[2018-10-09T12:41:22-05:00] WARN: Skipping final node save because override_runlist was given
[2018-10-09T12:41:22-05:00] WARN: Skipping final node save because override_runlist was given

    Running handlers:
    Running handlers complete
    Chef Client finished, 0/0 resources updated in 14 seconds
[2018-10-09T12:41:22-05:00] WARN: Rebooting server at a recipe's request. Details: {:delay_mins=>1, :reason=>"Reboot by Chef",
 :timestamp=>2018-10-09 12:41:22 -0500, :requested_by=>"do_reboot"}
[2018-10-09T12:41:22-05:00] WARN: Rebooting server at a recipe's request. Details: {:delay_mins=>1, :reason=>"Reboot by Chef",
 :timestamp=>2018-10-09 12:41:22 -0500, :requested_by=>"do_reboot"}

    Running handlers:
[2018-10-09T12:41:22-05:00] ERROR: Running exception handlers
[2018-10-09T12:41:22-05:00] ERROR: Running exception handlers
    Running handlers complete
[2018-10-09T12:41:22-05:00] ERROR: Exception handlers complete
[2018-10-09T12:41:22-05:00] ERROR: Exception handlers complete
    Chef Client failed. 0 resources updated in 14 seconds
[2018-10-09T12:41:22-05:00] FATAL: Stacktrace dumped to /root/.chef/local-mode-cache/cache/chef-stacktrace.out
[2018-10-09T12:41:22-05:00] FATAL: Stacktrace dumped to /root/.chef/local-mode-cache/cache/chef-stacktrace.out
[2018-10-09T12:41:22-05:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2018-10-09T12:41:22-05:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2018-10-09T12:41:22-05:00] FATAL: Chef::Exceptions::Reboot: Rebooting server at a recipe's request. Details: {:delay_mins=>1,
 :reason=>"Reboot by Chef", :timestamp=>2018-10-09 12:41:22 -0500, :requested_by=>"do_reboot"}
[2018-10-09T12:41:22-05:00] FATAL: Chef::Exceptions::Reboot: Rebooting server at a recipe's request. Details: {:delay_mins=>1,
 :reason=>"Reboot by Chef", :timestamp=>2018-10-09 12:41:22 -0500, :requested_by=>"do_reboot"}

Stacktrace

Trace 1

Hi @cnunemaker, thanks for filing an issue.
When Chef triggers a reboot it always exits non-zero so that any program responsible for the chef-client run, like test-kitchen, can know that a reboot is going to happen. A common use case for this is testing a set of recipes with test-kitchen that require a reboot before they've completed configuring the system, so that test-kitchen waits to test the system until the end of the follow-up run.
So this is behaving as designed. If you wanted Chef to finish the run first, you should use the :request_reboot action. If you have something else that's failing because of the non-zero exit code, you can have it check for the specific exit code that represents a reboot. https://github.com/chef/chef-rfc/blob/master/rfc062-exit-status.md#reboot-requirement