Could not determine recommended JdbcType for com.fasterxml.jackson.databind.JsonNode

Hi Vlad,
I am trying to replicate this example with the latest version, v.3.0.1, but It doesn't seem to work. Here below is the error message I receive. The error occurs while creating the entity manager factory (EntityManagerFactory) in my client class.

Exception in thread "main" org.hibernate.type.descriptor.java.spi.JdbcTypeRecommendationException: Could not determine recommended JdbcType for com.fasterxml.jackson.databind.JsonNode

Here's my entity class:
import com.fasterxml.jackson.databind.JsonNode;
import io.hypersistence.utils.hibernate.type.json.JsonBinaryType;
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.hibernate.annotations.TypeDef;

/**
 *
 * @author squirrel
 */
@Entity(name = "Event")
@Table(name = "p_event")
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
@TypeDef(
        typeClass = JsonBinaryType.class,
        defaultForType = JsonNode.class
)
@ToString
public class Event implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id")
    private Long id;

    @Column(columnDefinition = "jsonb")
    private JsonNode data;
}

All the examples in the docs are available in the src/test folders.
In your case, this is the test case you were looking for.
You'll find more examples there, and they all work like a charm.
Compare the existing examples with yours and see where they differ.

Thanks for the prompt reply. I am looking into it now.

I confirm, works like a charm! :)
Many Thanks!

You're welcome.


Fix firefox bug by checking for document response type

See #111, and discussion on  #112
This pull request depends on commits in #115

replaced by #121


Small fixes to static analyzer bugs

Part 1 #27638 - 3,4,6,9,10
Part 2 #27649 - 1,3,8,10,11,13
Part 3 #27668 - 4,15,17

Thanks!

@qarmin Can I let you mark the relevant entries as fixed in the linked issues? If you want you can use the - [ ] syntax to create checkbox, and them tick them off (of write - [x] directly for the fixed ones).


Pulse, ParametricPulse and SamplePulse types should not live in pulse_lib

What is the expected enhancement?
These are all types within our IR and should not live within an implementation library (they currently are in pulse_lib). They probably should live in a module qiskit.pulse.types

@taalexander Just to clarify.

pulse_lib should remain, but would just contain the sampler subdir and continuous.py and discrete.py
parametric_pulses.py, pulse.py, and sample_pulse.py would move to a new dir, pulse/types
Any imports of those 3 modules in the code would have to be updated
I don't see the need for any new tests, just updating the imports in the test files
Are there documentation changes required?
Thanks.

pulse_lib should remain, but would just contain the sampler subdir and continuous.py and discrete.py

👍

parametric_pulses.py, pulse.py, and sample_pulse.py would move to a new dir, pulse/types
Any imports of those 3 modules in the code would have to be updated

Just the classes ParametricPulse, Pulse and SamplePulse would have to move and should live in a new module types. The implementations could continue to live in pulse_lib.

I don't see the need for any new tests, just updating the imports in the test files

👍

Are there documentation changes required?

I think we should add a reno noting they have been moved. Please look at the documentation in pulse_lib to see if there are any links to these classes and if so these should be moved to the new types module which should be included in the documentation. of qiskit.pulse.
Also wrapper objects for ParametricPulse and SamplePulse should be left where they exist currently and inherit from the new location. When initialized they should emit a warning saying their location has been moved before initializing the object. This will be easier if the calls to ParametricPulse and SamplePulse use namespace imports, eg., import qiskit.pulse.types as types and call types.ParametricPulse rather than from qiskit import ParametricPulse.

Ok, so instead of a types dir, there would be a new types module in pulse that would now contain the 3 classes.
When you say the implementations could stay in pulse_lib, are you saying that for example, the class Gaussian and others would stay in parametric_pulses.py in pulse_lib. But pulse.py and sample_pulse.py would go away since they only contain the base classes?
If there's agreement on structure, I can get started on this and then dig into the docs to see what changes are needed there.

One other thing - when I looked at the docs for ParametricPulse and clicked on the Source link, at the top it showed it in pulse.commands.parametric_pulses.py. There is still a file in commands and also a sample_pulse.py, both which have deprecation warnings. Should these be removed now, and are you suggesting we leave the 3 source files in pulse_lib with these style deprecation warnings?

When you say the implementations could stay in pulse_lib, are you saying that for example, the class Gaussian and others would stay in parametric_pulses.py in pulse_lib. But pulse.py and sample_pulse.py would go away since they only contain the base classes?
If there's agreement on structure, I can get started on this and then dig into the docs to see what changes are needed there.

I think ignore what I said. The user-facing import is still in qiskit.pulse so we shouldn't have to be worried about gracefully deprecating changing the locations of these classes in the internal namespace of qiskit.pulse.

One other thing - when I looked at the docs for ParametricPulse and clicked on the Source link, at the top it showed it in pulse.commands.parametric_pulses.py. There is still a file in commands and also a sample_pulse.py, both which have deprecation warnings. Should these be removed now, and are you suggesting we leave the 3 source files in pulse_lib with these style deprecation warnings?

Yes I think we can remove these after the release of 0.13 which is happening today.

Ok. Then to summarize,

Create a new file, types.py in pulse and place the 3 classes in it.
Delete sample_pulse.py and pulse.py from pulse_lib.
Remove ParametricPulse from parametric_pulses.py, but leave Gaussian and all the other classes.
Find all the places these 3 classes are imported and change the imports to the new location.
Remove from the command directory, parametric_pulses.py and sample_pulse.py.
Modify the documentation to bring all the correct file locations up to date.
Create a reno indicating that these classes have been moved and where to.
If this is ok, I can get started on it.

A few more things.

I noticed there's a channels dir that has no source files, but does have files in its pychache. Does this have a purpose?
I also found a pulse tutorial that imports SamplePulse, which I assume would need a change.
In looking at the init.py for pulse dir, only certain classes and functions are imported. Is there a rationale for what imports are included in that init.py?
Thanks.

Ok. Then to summarize,

Create a new file, types.py in pulse and place the 3 classes in it.
Delete sample_pulse.py and pulse.py from pulse_lib.
Remove ParametricPulse from parametric_pulses.py, but leave Gaussian and all the other classes.
Find all the places these 3 classes are imported and change the imports to the new location.
Remove from the command directory, parametric_pulses.py and sample_pulse.py.
Modify the documentation to bring all the correct file locations up to date.
Create a reno indicating that these classes have been moved and where to.
If this is ok, I can get started on it.

Yes this sounds excellent 😄

A few more things.

I noticed there's a channels dir that has no source files, but does have files in its __pychache__. Does this have a purpose?

This package has since been condensed into a single module, the __pycache__ in your repository is likely just a remnant of this.

I also found a pulse tutorial that imports SamplePulse, which I assume would need a change.

If this import is from pulse_lib this should be changed as well.

In looking at the __init__.py for pulse dir, only certain classes and functions are imported. Is there a rationale for what imports are included in that __init__.py?

What was included here was what has been intended to be exposed to users at the top-level of pulse for common use.

Thanks.

No, thank you 😄.

Do you want me to remove the channels dir? I'll get started on this. Working on 2 other issues right now, so may be a few days. I'll give you a progress report when I have something.

I don't think its tracked in the git repository.

Ok. I'll try removing it and see if it affects anything. Like to keep things neat..

@taalexander From pulse/commands/__init__.py
"""Supported command types in Pulse. This directory is deprecated.

AcquireInstruction, FrameChange, FrameChangeInstruction, PersistentValue,
PersistentValueInstruction, PulseInstruction, DelayInstruction and ParametricInstruction are all
deprecated. When they are removed, this ``pulse.commands`` import path for the remaining objects
can also be deprecated.
"""
from .acquire import Acquire, AcquireInstruction
from .frame_change import FrameChange, FrameChangeInstruction
from .meas_opts import Discriminator, Kernel
from .persistent_value import PersistentValue, PersistentValueInstruction
from .command import Command
from .pulse_decorators import functional_pulse
from .sample_pulse import SamplePulse, PulseInstruction
from .snapshot import Snapshot
from .delay import Delay, DelayInstruction
from .parametric_pulses import (ParametricPulse, ParametricInstruction, Gaussian, GaussianSquare, Drag, ConstantPulse)

I assume this means that the entire commands dir can be removed also. There seem to be other
implementations of all the classes referenced here that are not in the deprecated list above, except for Command, which has a deprecation warning in pulse/instructions/instruction.py.
Just out of curiosity, when deprecation messages are inserted like this, is there some reason that there's no date or release # included. No way to know whether this was done yesterday or a year ago.

In parametric_pulse.py, this is part of the doc string at the top.
The new pulse must then be registered by the assembler in 'qiskit/qobj/converters/pulse_instruction.py:ParametricPulseShapes' by following the existing pattern:
class ParametricPulseShapes(Enum):
    gaussian = commands.Gaussian
    ...
    new_supported_pulse_name = commands.YourPulseCommandClass`

Are the references to commands the old commands dir and how should these be referenced in the new doc string? Thanks.

I'm a bit confused about continuous.py and discrete.py in pulse_lib. There seem to be many duplicately named functions in these. In parametric_pulses.py there is a line, from .continuous import continuous, but there is no continuous function in continuous.py. Also in the __init__.py in pulse_lib, only functions from discrete.py are imported. Is continuous.py still in use, and if so, how should I deal with the imports?

Actually I see now that Drag uses continuous.drag. That seems to be the only reference. I assume a user could create there own functions using ParmetricPulses and importing continuous or discrete? Anyway I guess these references stay as is.

It appears that FrameChange, FrameChangeInstruction, PersistentValue, and
PersistentValueInstruction are used in the code even though it says these are deprecated in the message above. Other than the test files, which I can change, the only other modules that reference them directly using pulse.commands, are matplotlib.py in visualizations/pulse and qiskit/qobj/converters/pulse_instruction.py.
Soooo, should I leave the commands dir just for these or move FrameChange and PersistentValue somewhere else and update the imports in the 2 modules?

Actually on previous comment, it seems that moving frame_change.py and persistent_value.py into pulse and updating the imports in the 2 files that reference them. Then the commands dir can be removed. Assuming these really do need to be kept.

@taalexander This is where things are as of today.

Pulse, SamplePulse and ParametricPulses moved to pulse/types.py
Removed channels dir with no adverse affect
All __init__.py files updated to the new reality
All files under pulse updated to handle new structure
Left pulse/commands dir in place
Have clean lint and tests

The next step is to remove the commands dir and clean up any references to it.
I'll give you more details if you want to proceed with this step.

Hello, @enavarro51. Please leave the commands directory in place, we have an internal deprecation schedule for which we need to update the codebase to include.

Could you please make a WIP PR so I can see what you have done so far?

Ok, got it. And since this is my first WIP, all I do is put [WIP] in front of the description? I'll get this out today.

Ok, got it. And since this is my first WIP, all I do is put [WIP] in front of the description? I'll get this out today.

Yes, or you can use the new Github feature and mark it as a draft. Thank you very much!

@taalexander Uploaded the WIP. #4176

In light of #4225 and #4204 do you have new thoughts here @lcapelluto?

In light of #4225 and #4204 do you have new thoughts here @lcapelluto?

Hi @taalexander  & @lcapelluto :  #4225  #4204 are work in progress from me. Maybe I can handle this as another issue, but how please direct me?

Closing as won't do


Fix failing Python 3.5.3 tests

There are tests that are failing on Travis against Python 3.5.3. They are working locally against Python 3.5.2. This is odd.
This PR fixes the tests so that they pass.

Now failing on 3.4.6... flaky tests! :(


In memory Files (temporary files in ram)

File can be created without filename/path, in this case it would be created in memory, and can be later relocated to a file-system.
All of it will be transparent for the user:

$file = fl();
// or
$file = new File();

$file->content = "My content";
// The written content is in memory, no real file is created at this point

echo $file->content;
// Here no real file reading is done, data is taken from the ram

// Move or copy in this case would be almost exactly the same because data is always copied from ram
$file->move(name: 'my-AWESOME-file-FROM-ram', ext: 'txt');

Implemented in #17


Fix/s3 file config

I replaced the environment variable that sets file mode from AWS keys to bucket. This allows the end user to use a role without keys in AWS. This addresses issue #12 that I opened.
I also added the environment variable to set ensemble size for the zk cluster.

:+1: thanks!


Fix two inverted checks (-z instead of -n)

I noticed that it printed
You're using an RSA key with SHA-1.
It looks like your version of OpenSSH is too old to support any secure public
key algorithms.  This key will continue to work if it's already set up, but you
should strongly consider upgrading OpenSSH to version 7.2 or newer.  If the key
hasn't been set up by the deadline, then you'll need to upgrade your version of
OpenSSH to continue.

even though I'm using OpenSSH 7.6.

Yes, what @tgummerer said is correct.  And thanks for the patch and correcting my mistake here.

But I'm running OpenSSH 7.6. It definitely shouldn't say something about upgrading to 7.2 or newer.

Do you have any local changes in ~/.ssh/config or /etc/ssh/ssh_config that affect the algorithms in use?

Oh, I understand now. I mistakenly thought that SHA-1 was a property of the key file itself.

Do you have any local changes in ~/.ssh/config or /etc/ssh/ssh_config that affect the algorithms in use?

I do not.
I'm using Ubuntu 18.04. I checked on another fairly stock Ubuntu 18.04 machine and got the same result. The exact version printed out by ssh is
OpenSSH_7.6p1 Ubuntu-4ubuntu0.5, OpenSSL 1.0.2n  7 Dec 2017

So maybe the 7.2 thing is incorrect.
FTR I also tried on an Ubuntu 20.04 machine using OpenSSH 8.2 and it works fine (it signs using rsa-sha2-512).
Anyway I just switched to Ed25519 keys for myself. But I think there's still an issue with the script.

I see similar behaviour here on CentOS 7. SSH config is stock other than the use of a deploy key which I don't think would matter:
$ cat .ssh/config
Host github.com
  IdentityFile /usr/local/etc/deploy.key

Gist of ssh -vvvv: https://gist.github.com/mvermaes/84b94499cd59dff37d54dbb56b648df7
We will migrate to Ed25519 keys which don't have the problem anyway as @cespare mentioned, but hopefully this helps.


Add the description about the LMs Support

@neubig Here's the update is this what you mean or there's other things to add

solves : #644

Thanks for adding in particular an encouragement to share knowledge, I think it's a good idea.


The [Bug Report] card type carousel causes the entire page jitter

Element UI version
1.4.3
OS/Browsers version
win10/qqbrowser/chorme 60.0.3112.113
Vue version
2.4.2
Reproduction Link
https://jsfiddle.net/api/post/library/pure/
Steps to reproduce
https://jsfiddle.net/api/post/library/pure/
What is Expected?
页面能够正常渲染，但不引起抖动发生
What is actually happening?
2秒抖动一次，包含文字都重新渲染，忽大忽小问题

Issues without a reproduction link will be closed directly.


Remove "or available on this machine" from GemNotFound error in --path mode

As discussed in #4571, it's confusing that bundler says "or available on this machine" when the bundle is installed using --path mode. We should stop printing it under those circumstances. While we're at it, it would be cool to add "or in gems cached in vendor/cache" if the cache exists.

This just uses the #to_s of the source. Keep in mind I changed that in the 2.0 branch.

@indirect @segiddins can this issue be closed? 😄

I believe so 👍🏻


inputProps.required is undefined when isRequired = true is passed to useTextField

Provide a general summary of the issue here
inputProps.required is undefined when isRequired = true is passed to useTextField
🤔 Expected Behavior?
inputProps.required is true as well
😯 Current Behavior
inputProps.required is undefined
💁 Possible Solution
Should I use aria-required ?
🔦 Context
No response
🖥 Steps to Reproduce
pass isRequired = true to useTextField
Version
3.29.1
What browsers are you seeing the problem on?
Chrome
If other, please specify.
No response
What operating system are you using?
Windows 10, 64x
🧢 Your Company/Team
No response
🕷 Tracking Issue
No response

I'm not seeing that issue here for 3.29.1: https://codesandbox.io/s/cranky-darkness-4zgkgj?file=/src/App.js
Are you able to reproduce this in a codesandbox? Also, this behavior may change in the upcoming release, so maybe check if you are using nightlies. In the upcoming release, validationBehavior will be factored into which gets put on the element.
https://github.com/adobe/react-spectrum/blob/0b541f48848eb43f74ae57e8b21dc4455d95040b/packages/%40react-aria/textfield/src/useTextField.ts#L168-L169

I want to use inputProps.required to show an asterisk on the label. I cant get it to work on the example either:
https://codesandbox.io/embed/nifty-davinci-njq2rp

Sorry, I had was using isReadOnly in the sandbox instead of isRequired.
What gets included in inputProps is an implementation detail that could change, so I would recommend just relying on props.isRequired to render your asterisk. This is what we do in for our fields in React Spectrum.

Going to close this, but feel free to include any follow-up questions or discussions here!


fix: add history entries for tars attribute

image-spec says that this field is optional, however some systems like seen in https://github.com/bazel-contrib/rules_oci/issues/645 require this field. Also, skipping history entries lead to broken images if the base image already had one.
fixes https://github.com/bazel-contrib/rules_oci/issues/645

This partially fixes https://github.com/bazel-contrib/rules_oci/issues/438 too.


GROOVY-6360: GString performance is slow with String's method (add sp…

…ecial GString DGM method for StringBuilder)

I see this as complementary to Daniel's other suggestion around @Pure.

+1


fix(Makefile): don't do license check on gitignored files

This fixes the license check so it doesn't run on files that are
gitignored. Also provides a faster implementation if 'ag' is installed.

This change is

have you looked into git ls-files?

Yes, I first wrote it with git ls-files. However, that command doesn't give you a way to exclude files that are in checked in and up to date (-x only works if you are using -i or -o). So I ended up having to do approximately the same thing.

While this works, it is slower than molasses. I'm closing the PR, since it's not critical.


Workflow implementation in SDK

Is your feature request related to a problem? Please describe.
Related dapr/dapr proposal for workflow: https://github.com/dapr/dapr/issues/4576
Describe the solution you'd like
Add GO SDK support for dapr workflow. This will include both the authoring and management functionalities.

Are we planning to have workflows in go as well?

Indeed, that's being planned.

/assign


Update digest to 0.10

This builds on top of #34.

Re-based.

I'm gonna put this in draft until we merge the others.

Ready to merge.


Evaluate the API for downloading CSV for ledger entries

Ahead of implementing the download CSV features in the UI for ledger entries in this ticket https://github.com/vegaprotocol/frontend-monorepo/issues/2320 we would like to evaluate the API to ensure that it works and gives us what we need to be able to implement the feature.
Once we are sure we can then prioritise the frontend tickets to implement

[ ] Write ticket(s) in the vega repo for the core work we need to be able to use this api endpoint to achieve the story #2320

Seems to we are blocked on this issue now https://github.com/vegaprotocol/vega/issues/8203

@Maciek Gordon confirmed this morning that the core ticket to unblock our CSV export of Ledger Entries is complete and deployed to Stag3 last night so we should be able to get this work over the line now https://vegaprotocol.slack.com/archives/C02MV2GQ20Y/p1682388664264399


280 characters

Hiya,
Now that 280 characters has rolled out to all users, can we get an update that handles this (and the special rules for what characters count double)?
Thanks,
G

We announced version 2.0 will be released shortly. For details of the new algorithm, please see the technical documentation on the Twitter Developer site. Thank you.

Any update on when version 2.0  is being released?

While there is no official one I have implemented a version in Swift https://gist.github.com/hebertialmeida/d868bd58efe8b5240e4ef8b542107099

Currently looking into mid-December before we are able to make a release due to some other moving parts.

Mid-December is here. Are there any news?

Just a little more patience... 😉

Released last Friday!


[Bugfix] Fix bug rename database failed

What type of PR is this：

[x] bug
[ ] feature
[ ] enhancement
[ ] refactor
[ ] others

Which issues of this PR fixes ：

Fixes #8159
Problem Summary(Required) ：

This is introduced by deleting the code #7990 , I think this Cluster code can be deleted

[FE PR Coverage check]
:heart_eyes: pass : 0 / 0 (0%)

run starrocks_fe_unittest

[FE PR Coverage check]
:disappointed: fail : 0 / 3 (00.00%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/server/LocalMetastore.java
0
3
00.00%


[feature request] command line app

is it possible to make is a command line app to print the current space?

+1, I'd love this and am willing to sponsor this feature

Hello,
I had a need for a command line utility as well so I grabbed the WhichSpace function that queries the spaces info and wrapped it in a command line swift app.
You can find it here: https://github.com/davidpurnell/SpaceInfo

Cheers! Starred, will give it a spin
I discovered / was using https://github.com/alt-jero/McSpaces in the meantime, it works fine, but bit of a raw one.

Ah, McSpaces is giving UUIDs.  My version outputs integers incremented from 1.  I'm using it in some Keyboard Maestro macros so my use case required simple numbering of spaces. Hope that works for you!

Yes actually my usage of McSpaces was pretty hacky. It gives you a blank UUID for Space #1, and an actual UUID for the rest.
By coincidence, I was only interested in querying "am I in space #1?" so getting a blank UUID was enough 😄
A number-based approach is more robust and allows more use cases.

I have several KM macros that move windows around between multiple displays and spaces. These macros need to know what current space and/or display index the frontmost window is located on.

@davidpurnell, SpaceInfo looks cool. You may know this already, but if WhichSpace is running, you can get the current space with AppleScript:
tell application "System Events" to tell process "WhichSpace" to set temp to (title of menu bar items of menu bar 1)
return item 1 of temp

I'm going to check out your macros on GitHub. Have you shared them on the KM Forum? If not consider doing so. It's a great place to share KM ideas.
I've also developed a set of KM macros to manage spaces; there are on the forum: Desktop Spaces • Macros for Navigation and Window Management

Yep. I used to query Whichspace this way to get the current space index and then used that in earlier versions of my KM macros.  Pretty sure I've seen some of your macros on the forum. I'm a lurker there but perhaps it's time to start posting!


Death dropped containers ignore pickup rules

This is dangerous as weapons can be duplicated this way.

Resolved via commit 86cc3f4f6e55ba2549e55f068069de2a01e119f0.


Change “Edit comment” to “Edit” in action sheet?

“Edit” seems more consistent since it is only “Delete” for the delete comment action.
Sent with GitHawk

Ref #674
Sent with GitHawk


[Backport v2.9] [RFE] Cloud Credentials Expiry field support

Backport of https://github.com/rancher/rancher/issues/47241 to v2.9.x line of releases.

@jakefhyde  thanks for this addition :smile: :+1:  -> I'm going to go ahead and close this out as this has already been validated in:

https://github.com/rancher/rancher/issues/47492#issuecomment-2412131230
( Havester v1.3.2 & (Rancher v2.9.3-alpha5 & Rancher v2.9-head (v2.9-9fa98c1a0843dbee3d8ea9ffc2e84a891f2696c3-head) ) )

cc: @khushboo-rancher @bk201


High CPU Usage

See #14
I am using k3s on a i5 and the local path provisioner (version v0.0.11) sits at 18% CPU:

Steps to reproduce:

Install k3s on x86 Hardware
Use the local path provisioner

Interestingly enough I am also running k3s on a cloud server, not using the local-path-provisioner (but having it running) and it doesn't consume nearly as many resources there.

I'm seeing this as well, with v0.0.11. For me, cpu usage starts low if I delete the pod and let it recreate, then after a while I see it back up in my top consumers.
I've just updated the manifest to v0.0.12 and will see if the issue persists.


Concern: The create-rbac command creates a service principal has contributor permission to entire subscription by default.

The permission is too broad. It raises a security concern. I understand this change originates from https://github.com/Azure/azure-cli/issues/1190, however, I don't think the default setting is reasonable. By default, a good security practice is to grant accounts smallest set of permissions to enable it to function. If the role assignment is not intuitive and convenient, we should instead fix role assignment commands rather than write blank checks to newly created service principal.

@yugangw-msft @johanste
I think we should seek advice from AAD and other security crews.

We have talked to RABC team last year. We will live with it for 2 reasons

create-for-rbac is a convenient command for rbac where role assignment is a must have, hence a default is needed. We don't see there are any other defaults which always work. The help calls out the default value very clearly. --skip-assignment was provided for people to skip it
At the same time for people with security concerns, use az ad sp create which we have agreed that we will never create any default assignments


[CWS] fix bpf map name generation

What does this PR do?
The automatic bpf map name generation has been broken for some time. This PR fixes it, ensuring it's checked by the CI as well.
Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


Minervaen/logs

Added test step for Log Dialogs
Updated file names to match other source files
Renamed file to match file functionallity

Did you mean to close this?


Kernel function z_impl_k_wakeup is not interrupt safe, can result in invalid thread state and assert

I've been having issues with using k_sleep in the main thread, and using k_wakeup in other threads and in interrupts to wake the main thread prematurely. Usually it is fine, but rarely I end up with the ASSERT in z_tick_sleep tripping because the main thread resumes from sleep while its state is still marked suspended.
I believe I've narrowed down the problem to this step in z_impl_k_wakeup, where it performs a bitwise clearing of the suspended bit from the state variable. I don't believe that is an atomic action, at least not on all platforms (I'm developing in ARMv7-M).
https://github.com/zephyrproject-rtos/zephyr/blob/7c9dbde659d03ba4733157c493c07d5fd32988a9/kernel/sched.c#L1656
The function k_wakeup includes a bitwise clearing of the suspended bit from the state variable, but it isn’t protected from interrupts.
I believe what's happening is the following:

Initially Thread B (main thread) is sleeping, after a k_sleep call.
Thread A: k_wakeup starts, trying to wake up Thread B, thread state of Thread B is currently just suspended.
Thread A: k_wakeup prepares to clear the “suspended” bit. It calculates that the new Thread B state will be 0x0.
a. An interrupt occurs. In the interrupt handler, k_wakeup runs, trying to wakeup Thread B. It clears the suspended state, queues Thread B, and the thread state of Thread B has queued bit set.
b. Interrupt finishes. Thread A resumes.
Thread A: resuming work in the middle of the earlier k_wakeup call
Thread A: The thread state of Thread B is set to the prepared new value, 0x0. This wipes the queued bit that was set in the interrupt. Thread B is now in the ready queue, but doesn't have its queued bit set.
Thread A: Finished the k_wakeup function, Thread B is queued (second time), and the thread state of Thread B has queued bit set.
At this point, Thread B is in the kernel scheduler ready queue twice
Later, scheduler runs Thread B, wiping the queued bit. Now Thread B is in the scheduler ready queue once, without queued state bit.
Thread B: sleeps again, setting its thread state suspended bit, and the scheduler runs the next thread in the ready queue
Thread B: immediately wakes because it was the next in the scheduler ready queue
Thread B: resuming in z_tick_sleep, the thread state of Thread B is still suspended, because it was not supposed to be in the ready queue and so it didn't clear its suspended state before resuming.
Thread B: The program sees that the thread woke up while still suspended, so the program asserts in z_tick_sleep and crashes.

I have a suggested fix to solve this bug. In z_impl_k_wakeup, wrap the call to z_mark_thread_as_not_suspended in a spin lock.
	K_SPINLOCK(&sched_spinlock) {
		z_mark_thread_as_not_suspended(thread);
	}

I'm developing with nRF Connect SDK v2.5.2, which appears to be using Zephyr 3.4.99. If that doesn't mean anything to you, then their release notes say they're using all commits from Zephyr up to and including a768a05e6205e415564226543cee67559d15b736

Thank you for reporting this. However - unless you are able to reproduce this issue with upstream Zephyr main - please report issues with the nRF Connect SDK (NCS) on the Nordic Semiconductor DevZone.

I believe I can reproduce this on Zephyr main, but it will be a few days at least before I have time to work on that. I don't have an existing pure Zephyr build environment ready.
The key point of this report is that the line
https://github.com/zephyrproject-rtos/zephyr/blob/a6e9f12ca85bcb2f3a8e264dd5b0e0e4b7fc1f38/kernel/include/ksched.h#L152
in z_mark_thread_as_not_suspended is being used in z_impl_k_wakeup without wrapping in a spin lock, so it is possible (but rare) that an interrupt can occur during that instruction, resulting in an invalid thread state if the thread state is modified in the interrupt. The steps I described my report are one possible consequence of this vulnerability.
For a little more context in case it is relevant, in my project the zephyr kernel is using a single CPU with the "dumb" scheduler.

I believe that @helpfulchicken is correct that some locking is required and that the described situation can indeed happen. Very nice catch!

FWIW, the bug is absolutely correct.  The suggested fix is not.  Locking the access to the bitfield just ensures that the state word can't be corrupted by racing access, it does nothing to prevent the actual scheduler state from getting mixed up by racing contexts (e.g. consider another thread trying to suspend, or even abort, the thread you are in the process of "waking up" while you're operating on it!).
Oddly k_thread_resume() has correct locking, but k_wakeup() never got it.  To be fair: both of these are inherently race-prone APIs and I try to warn apps away from using either of them.  Any decision by a thread to "go to sleep" needs to be atomic with all changes to the state required to make that decision, and the API doesn't provide that.  Consider a condition variable for this kind of code, or restructuring the architecture to use a k_sem/k_fifo to handle work out of a "queue".

Give me a moment, should be a quick fix.

@andyross - Looks like we both were doing the fix at the same time. I just saw your comments now.


"Internal resolution error" issue for long file paths

While working on a project, attw CLI started to fail suddenly with an "Internal resolution error" when pushing a new component. The unique aspect of this new component is its relatively long name.
It's worth noting that I suspect this might not be an issue with attw itself but rather with TypeScript. I'm creating this issue to investigate, just in case my assumption is incorrect.
It appears that the failure is occurring here while trying to resolve imports within a specific source file.
Interestingly, I've noticed that if the file path length of the imported file exceeds approximately 82 characters (as far as I can tell), ts.getResolvedModule fails to resolve the import. This behavior doesn't make any sense, so I suspect there might be something off in my TypeScript configuration or elsewhere.
To assist with troubleshooting, I've created a repository to reproduce the issue:
https://github.com/inakiabt/ts-issue

My bet is this has something to do with the tar packing/unpacking. Have you tried running npm pack, then unpacking the tarball and seeing whether the file round trips properly?

Yep, you found a bug in my fork of untar.js, which was present in the repo I forked from, and also the repo that forked from. Fixed in the latest patch.


Installing flutter on linux without curl.

I cloned the flutter repo and added it to my $PATH variable, as suggested. Then running $ flutter doctor returns:
Downloading Dart SDK from Flutter engine 20caf549695193a9920ca37752eca4f141bbef31...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0Warning: Transient problem: timeout Will retry in 1 seconds. 3 retries left.
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0Warning: Transient problem: timeout Will retry in 2 seconds. 2 retries left.
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0Warning: Transient problem: timeout Will retry in 4 seconds. 1 retries left.
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: storage.googleapis.com

Failed to retrieve the Dart SDK from: https://storage.googleapis.com/flutter_infra/flutter/20caf549695193a9920ca37752eca4f141bbef31/dart-sdk-linux-x64.zip
If you're located in China, please see this page:
  https://flutter.dev/community/china

According to the official guide for installation, curl is a necessary tool for installing flutter and this is happening because of my system constraints (toolbox container in EndlessOS), because of which I don't have internet access so curl cannot resolve any host. So I took the link provided in the error message and downloaded the file. Now how do I "notify" flutter about this?

Hi @happy-san
You can unzip the downloaded SDK zip file and paste into the flutter directory in the following location
flutter -> bin -> cache -> paste dart-sdk folder here and run flutter doctor -v. (I am not sure this will be enough but worth a try)
However,  curl is a necessity for most command-line tools,  hope this helps.

Thanks for responding, I'll try it out.

The unzip procedure didn't work. But downloading the tar.xz bundle and then setting the path variable did. Thankyou.


Update readme file.

Coverage remained the same at 82.418% when pulling adda3142bc00818be598f630f7cbe58d625d9827 on dev into e15258abc841ffa8dc81e53da141e451aa31d65c on main.


Pythonanywhere deployment

Hi everyone.
Does someone tried to deploy a justpy project through pythonAnywhere?
I can't make the IP address binding part as it explained at:
https://justpy.io/tutorial/deployment/
I get the next server error output:
ERROR:    [Errno 13] error while attempting to bind on address ('<IP_ADDRESS>', 80): permission denied
(Maybe it is an easy one issue but i get stacked)
Thanks in advance
Mateo

PythonAnywhere does not currently support websockets. Maybe that is the issue. Another possibility is that you need to set the host and port. See https://justpy.io/reference/justpy/


Set up PROW job for the experimental repo for license, copyright and header scanning

Set up PROW job for the experimental repo for license, copyright and header scanning. This is for informational purposes.

@tliron can we please give access to @radoslawc access to this repo for enabling PROW?

We need to change "PROW" git application in nephio main org to be public . It is private now.
From Rado :
https://docs.prow.k8s.io/docs/getting-started-deploy/#install-prow-for-a-github-organization-or-repo


UICollcetionViewCell Images change to wrong images while scrolling after async image loading

When I'm scrolling my chat based on UICollcetionView, some images are placed on wrong cells. Here is my code:
import UIKit
import Kingfisher
class FriendMessageWithMultimediaCell: FriendMessagesCollectionViewCell {

    override func layoutSubviews() {
        super.layoutSubviews()
        updateUI()
    }

    override func updateUI() {
        super.updateUI()

        guard let attach = message?.lastPhotoAttachment else { return }

        if let photo = attach.photo604, let url = URL(string: photo)
        {
            addSubview(attachImageView)
            attachImageView.kf.setImage(with: url)
            setupUIComponents(withImageScale: attach.scaleForHeight)
        }
    }

Here screenshot:

If messages don't include images, code bellow
guard let attach = message?.lastPhotoAttachment else { return }   aren't executed, but according to screenshot, images appear on screen in wrong place.

I believe it's an issue due to your cell reusing and/or the timing of updateUI instead of Kingfisher.
(It is rare and strange to me to update UI in layoutSubviews, which should only update the layout as name indicating).
Would you please check your code, especially the cell reusing timing and logic?

I've solved my issue, I just set all outlets to nil or "" before fill them.
And Thanx, I refactored my code, splitted them on setup UI components and update UI with data

:)


500 Error for https://deno.land/x/ through e.g. curl

curl https://deno.land/x/ throws an 500 error from Cloudflare.
This causes failure of awesome-bot checks for denolib/awesome-deno

@kevinkassimo
curl -H "accept: html" https://deno.land/x/ works

There are more cases with throwing 500, see #117.


Update windows-sys to 0.48

Thanks @taiki-e

It's really not great to have the same conversation in three issues/prs, but I've responded here: https://github.com/microsoft/windows-rs/pull/2568#issuecomment-1682017160.


nri-bundle-3.2.8 - Helm Deployment fails

Bug description
A clear and concise description of what the bug is.
When trying to deploy the Newrelic operator on "Redhat OpenShift v4.8", it fails with the error described below.
Version of Helm and Kubernetes
Helm: v3.6.2+5.el8
Kubernetes: v1.21.1+6438632
Which chart?
Not sure but here is the list of charts in the repo.
$ helm search repo newrelic/
NAME                                    CHART VERSION   APP VERSION     DESCRIPTION
newrelic/newrelic-infra-operator        0.4.0           0.5.0           A Helm chart to deploy the New Relic Infrastruc...
newrelic/newrelic-infrastructure        2.7.2           2.8.2           A Helm chart to deploy the New Relic Infrastruc...
newrelic/newrelic-k8s-metrics-adapter   0.1.1           0.1.0           A Helm chart to deploy the New Relic Kubernetes...
newrelic/newrelic-logging               1.10.4          1.10.0          A Helm chart to deploy New Relic Kubernetes Log...
newrelic/newrelic-pixie                 1.4.2           1.4.2           A Helm chart for the New Relic Pixie integration.
newrelic/nri-bundle                     3.2.8           1.0             A Helm chart to deploy New Relic integrations b...
newrelic/nri-kube-events                1.11.0          1.6.0           A Helm chart to deploy the New Relic Kube Events
newrelic/nri-metadata-injection         2.1.1           1.6.0           A Helm chart to deploy the New Relic metadata i...
newrelic/nri-prometheus                 1.10.0          2.9.0           A Helm chart to deploy the New Relic Prometheus...
newrelic/nri-statsd                     1.0.3           2.0.3           A Helm chart to deploy the New Relic Statsd int...
newrelic/simple-nginx                   1.1.1           1.1             A Helm chart for installing a simple nginx
newrelic/synthetics-minion              1.0.42          3.0.53          New Relic Synthetics Containerized Private Mini...
What happened?
Command issued:
helm repo add newrelic https://helm-charts.newrelic.com && helm repo update &&
helm upgrade --install newrelic-bundle newrelic/nri-bundle
--set global.licenseKey=XXXXX
--set global.cluster=openshift-poc
--namespace=newrelic
--set newrelic-infrastructure.privileged=true
--set global.lowDataMode=true
--set ksm.enabled=true
--set kubeEvents.enabled=true
--set prometheus.enabled=true
--set logging.enabled=true
--set newrelic-pixie.enabled=true
--set newrelic-pixie.apiKey=px-api-XXXXX
--set pixie-chart.enabled=true
--set pixie-chart.deployKey=px-dep-XXXXX
--set pixie-chart.clusterName=openshift-poc
Output:
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "newrelic" chart repository
Update Complete. ⎈Happy Helming!⎈
namespace/newrelic created
Release "newrelic-bundle" does not exist. Installing it now.
Error: rendered manifests contain a resource that already exists. Unable to continue with install: ClusterRole "system:controller:operator-lifecycle-manager" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "newrelic-bundle"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "newrelic"
What you expected to happen?
Deployment should have succeeded.
How to reproduce it?
Run the above command on OpenShift 4.8
Steps to reproduce the problem, as minimally and precisely as possible.
Anything else we need to know?
The following command failed before we ran the chart install command:
kubectl apply -f https://download.newrelic.com/install/kubernetes/pixie/latest/olm_crd.yaml
Output:
$ kubectl apply -f https://download.newrelic.com/install/kubernetes/pixie/latest/olm_crd.yaml
customresourcedefinition.apiextensions.k8s.io/catalogsources.operators.coreos.com unchanged
customresourcedefinition.apiextensions.k8s.io/clusterserviceversions.operators.coreos.com configured
customresourcedefinition.apiextensions.k8s.io/installplans.operators.coreos.com unchanged
Warning: resource customresourcedefinitions/operatorconditions.operators.coreos.com is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
customresourcedefinition.apiextensions.k8s.io/operatorgroups.operators.coreos.com unchanged
customresourcedefinition.apiextensions.k8s.io/operators.operators.coreos.com unchanged
customresourcedefinition.apiextensions.k8s.io/subscriptions.operators.coreos.com unchanged
The CustomResourceDefinition "operatorconditions.operators.coreos.com" is invalid: status.storedVersions[0]: Invalid value: "v2": must appear in spec.versions
We updated
We updated "spec.versions" to "v2" from "v1" for the CRD "operatorconditions.operators.coreos.com" in the "olm_crd.yaml" locally and deployed it again. It ran successfully.
Surprise us!

Hi ,
The next best step is to visit New Relic Support, where you can engage the New Relic Support Community or open a support ticket depending on your support level. The support team is best positioned to assist with your specific needs.
Please provide a link to this GitHub issue when submitting your community post or support ticket.
Thanks!


go/support/http 3405 extend logging middleware

PR Checklist
PR Structure

[X] This PR has reasonably narrow scope (if not, break it down into smaller PRs).
[X] This PR avoids mixing refactoring changes with feature changes (split into two PRs
otherwise).
[X] This PR's title starts with name of package that is most changed in the PR, ex.
services/friendbot, or all or doc if the changes are broad or impact many
packages.

Thoroughness

[X] This PR adds tests for the most critical parts of the new functionality or fixes.
[ ] I've updated any docs (developer docs, .md
files, etc... affected by this change). Take a look in the docs folder for a given service,
like this one.

Release planning

[ ] I've updated the relevant CHANGELOG (here for Horizon) if
needed with deprecations, added features, breaking changes, and DB schema changes.
[ ] I've decided if this PR requires a new major/minor version according to
semver, or if it's mainly a patch change. The PR is targeted at the next
release branch if it's not a patch change.

What
Extends logStartOfRequest and adds a new function LoggingMiddlewareWithOptions to pass a slice of header names for the logger to capture.
Closes:#3405
Why
Logs values that are not in the default logger we should accept additional headers, such as CF-Connecting-IP
Known limitations
Any extra headers given will need to be set in the Request ahead of time before calling.
Ex) r.Header.Set("X-Forwarded-For", "<IP_ADDRESS>")

@leighmcculloch When you have a chance give me a final thumbs up or down, just want to see if I addressed all your suggestions properly.

Nice work!


add node lease namespace

@tengqm
Melony QIN

On 3 Apr 2020, at 15:50, netlify[bot]<EMAIL_ADDRESS>wrote:

Deploy preview for kubernetes-io-master-staging ready!
Built with commit 1a9e085
https://deploy-preview-20082--kubernetes-io-master-staging.netlify.com
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

@cloudmelon 👋 Please rebase this PR and squash your commits.

@cloudmelon if you rebase and squash, I think these changes are good to merge.

change to another PR


feat(balancer): expose balancer_health even when healthchecks are off

The Kong load balancer has concepts of upstream health, which is managed by the healthchecker, and balancer health, which is affected by the healthchecker but also affected by the balancer "health threshold" setting. This means a balancer can be unhealthy (and return HTTP 503) even when healthchecks for the upstream are disabled.
The endpoint /upstreams/<upstream>/health?balancer_health=1 is an "advanced mode" for viewing health, which shows the balancer health as opposed to upstream health. (It is hidden behind a query argument to avoid confusion, as for most cases the upstream health is sufficient and the "balancer" terminology referring to a mostly internal Kong object may also be unclear to end-users.) This endpoint, however, only returns the balancer health, when healthchecks for upstream health are enabled.
This PR changes this behavior so that using ?balancer_health=1 we can always see the balancer health, through a new attribute balancer_health, which always returns HEALTHY or UNHEALTHY (reporting the true state of the balancer), even if the overall upstream health status is HEALTHCHECKS_OFF. This is useful for debugging.
The original attribute health is preserved with the existing semantics for backward compatibility, returning HEALTHY, UNHEALTHY or HEALTHCHECKS_OFF.

Thanks @hutchic for giving me a ping about this! It's been a while! I've just rebased it against the latest master (it wasn't too much trouble in spite of the balancer refactors!) This feature was an old ask from @Tieske, who wanted more diagnostics from the balancer state even when healthchecks were disabled, based on his experience troubleshooting customer issues.

Closing because of lack of activity. We would like to accept this contribution if anyone wishes to pick this back up.

lack of activity? I rebased it like 3 hours ago :laughing:

Oops, apologies. Could you please re-open this one?

I can't, the reopen button in grayed out.

@bungle thank you! ❤

@bungle @hishamhm  just want to understand how this query param work "health?balancer_health=1". In my case even the target exist in upstream im not getting data key and its value, Sometime is show some time it didn't show up.
Like
{"node_id":"908a59ea-1ff1-47eb-89a1-xxxxxxxxx","next":null}
but some time i get {"node_id":"908a59ea-1ff1-47eb-89a1-xxxxxxxxx","data":[***] "next":null}
same i can see in admin logs response byte size is very less
x.x.x.x - - [30/Mar/2023:16:45:37 +0530] "GET /upstreams/908a59ea-1ff1-47eb-89a1-xxxxxxxxx/health?balancer_health=1 HTTP/1.1" 200 62 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/111.0"
x.x.x.x - - [30/Mar/2023:16:18:23 +0530] "GET /upstreams/908a59ea-1ff1-47eb-89a1-xxxxxxxxx/health?balancer_health=1 HTTP/1.1" 200 621 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/111.0"
Kong version:- 2.4.0
lua_version:- "LuaJIT 2.1.0-beta3"
Do let me know how can I debug this.


StatsDriver Tool does not use unique directory name when specified

StatsDriver Tool does not use unique directory name when specified on the command line

This actually has nothing to do with not being able to use unique directory names (which it can't). The issue with this tool is that the LABEL_SIZE was changed from 1024 to 128 in the CountersManager. I have modified the source to use the LABEL_SIZE from CountersManager directly so that this will not happen again. I will be issuing a pull request with this fix.

Sorry, in the previous comment I meant to say (which it can) instead of (which it can't).


Add automatic revocation

Increases security, helps to clean up old forgotten files

Added in commits ab36da5 and ae0e430


Test continue on for PR comments

Refs: https://github.com/microsoft/vscode/issues/183449

[x] macOS @joaomoreno
[x] linux @ulugbekna
[x] windows @bpasero

Complexity: 3
Create Issue

When you checkout a PR with GitHub Pull Requests and Issues and write a comment without submitting the comment, we now save these unsubmitted comments for "continue on".
Setup:
You will need two machines that you can install desktop VS Code insiders on. vscode.dev can't be used to test this.
NOTE: Make sure you have the same version of VS Code and GitHub Pull Requests and Issues on both machines
Install the GitHub Pull Requests and Issues extension on both machines.
Install the GitHub Repositories extension on both machines.
Turn on "Cloud changes" from the Account menu on both machines.
To verify:

Check out a PR on machine one using the GitHub Repositories + Remote Repositories extension.
a. Run the command: "Remote Repositories: Open Remote Repository..."
b. Choose the option to "Open a Pull Request from GitHub"
c. Find your PR in the list and choose it
On machine two, check out the same PR with the GitHub Repositories extension.
Back to machine one: Start to write a comment. Do not submit the comment.
On machine one, make a small edit in a file. (@joyceerhl, this seems to be needed for the "Store working changes in cloud" command)
On machine one, Command: "Cloud Changes: Store Working Changes in Cloud"
On machine two, open the file that you were leaving a comment in on machine one in step two.
On machine two, "Cloud Changes: Resume Latest Changes from Cloud"
Verify that the comment from machine one now shows on machine two

Once you have this working some other good things to test (Each time you test you will need to close the old comment, make a new comment, and make a new small edit):

Does the sync still work if the file is closed at the time that you "Resume"?
Does "Resuming" an unsubmitted reply to a submitted comment work?
Does "Resuming" multiple unsubmitted comments work?

@alexr00 that did not work for me at least on macOS. I had tried with https://insiders.vscode.dev/github/microsoft/vscode/pull/191241 having previously added a comment from desktop. Is there a way to figure out?

Didn't work for me either.
I checked out a PR on insiders.vscode.dev, started typing in a comment, but didn't submit.
Opened insiders desktop, checked out same PR - no comments

Looks like I have some missing steps. In the setup:

Turn on "Cloud changes" from the Account menu

And steps 3, 4, and 7.

There's still an issue with this feature. This TPI is currently blocked.

Trying on mac without luck:
Desktop:

insiders.vscode.dev:

Both are on today's Insiders build and the latest PR extension pre-release from yesterday.

Works when testing with insiders open in two tabs

@bpasero and @anthonykim1 could you please test by opening a PR in insiders.vscode.dev in two different browser tabs instead of 1 insiders.vscode.dev instance and one VS Code desktop instance?

It also does not work for me between 2 browser tabs (the change restores, but not the comment). I suggest to move this feature and testing into October.

Moving to October so we can figure out the URI mismatch.

Let me know @alexr00  if you still wanted me to test this

For now, no further testing is needed. We'll test again during the October endgame.

It still doesn't work for me, sorry :-(

I tried multiple times trying to get this work, but still having some trouble. Tried to use more of the "store in cloud" and the "show cloud changes" but can't seem to see the comments even after actually submitting the comments from different device.

Following the steps very closely actually works. But the entire flow feels flimsy.

I kinda expected this to just work in regular checked out repos, not only using Remote Repositories.
I also kinda expected it to just work without the Store and Resume commands
Do we already have an issue for this seems to be needed for the "Store working changes in cloud" command?
Is there any way to test this as it's intended for users to use it, not via all these steps?

This worked only once for me and the things I have to remember to test this are incredibly complex: why do I have to make an edit, why do I have to run a command to sync, why does this not happen automatically? Think about settings sync: it just works.
@alexr00 @joyceerhl I would suggest you two sit together, test the flow end to end, improve the user experience and then we test this again.

Thank you everyone for your persistence in testing this!


Make all available criteria available in the find dialog

When adding attributes for filtering controls, the find dialog is shown (see picture below). After commit ebf271ec060e7252c92544276fd8963e55a53cd9, this the only way to add attributes to the list. Unfortunately, the dialog does not show all available criteria but only Binding path and Property – such that Aggregation, Identifier, Metadata, and View data are missing. For me, this is a bug right now.
The missing criteria need to be added to make the dialog fully functional. Alternatively, the old behavior before commit ebf271ec060e7252c92544276fd8963e55a53cd9 could be re-instantiated by reverting the commit.
What is your opinion on how to resolve this, @martenAdrian?

This is kinda related to issue #65, but deals with already available data, while issue #65 demands additional information to be retrieved.

I gave this another thought: We also have the different targets available (i.e., own element and the four next parents), so we would need to integrate this information into the find dialog, too.
The refactoring that is needed to incorporate also the target information into the find dialog is rather extensive. Hence, I suggest reverting commit ebf271ec060e7252c92544276fd8963e55a53cd9 for now. This issue could be revisited then after the next release.
What are your thoughts?

In respect to commit 9445a07, we don't have aggregations or associations within the dialog.
Association can not be checked, and aggregations are currently only part of the commit. Should follow afterwards.


⚠ Bio Links has degraded performance

In df56c06, Bio Links (https://bio.rheinklang.events/links) experienced degraded performance:

HTTP code: 200
Response time: 2065 ms

Resolved: Bio Links performance has improved in 4ca7c71 after 35 minutes.


Increase stitching flexibility for multiple tiled regions

This is for internal use only; if you'd like to open an issue or request a new feature, please open a bug or enhancement issue
Instructions
This document should be filled out prior to embarking on any project that will take more than a couple hours to complete. The goal is to make sure that everyone is on the same page for the functionality and requirements of new features. Therefore, it's important that this is detailed enough to catch any misunderstandings beforehand. For larger projects, it can be useful to first give a high-level sketch, and then go back and fill in the details. For smaller ones, filling the entire thing out at once can be sufficient.
Relevant background
Addresses #332.
Our current tiled stitching only accounts for one tiled image per run. We would like the functions instead to allow for any amount of tiles that were generated in a single MIBI run.
In addition, for runs where the user has included additional points outside of the tiled fovs, those should be ignored for stitching purposes.
Design overview
Both notebook 2a and the new tiler specify tile association by including either a user specified or automatically generated prefix in the custom fov name within the run file. (i.e. Tile_1_R2C3)
The current logic for tiled image stitching goes through the following steps:

check for previous stitching
get custom fov names from the run file

this needs to be adjusted to ignore any fovs that don’t have RnCm format, since right now it just pulls all of them

check for prefix in fov names and retrieve the max row and column numbers from the names

uses load_utils.check_fov_name_prefix and load_utils.get_tiled_fov_names from alpineer
need to be adjusted to account for more than one prefix

load in image data

how the load_utils.load_tiled_img_data function is used within toffy.image_stitching.stitch_images will need to be tweaked so that the image data for each tile is loaded in separately

save stitched channel images in a stitched_images_tiled subfolder

within stitched_images_tiled, if there’s more than one tile there will be a subfolder with the tile prefix for each set of stitched images
if there’s only one tile, images will be saved directly to the stitched_images_tiled folder

Steps 2-5 will require adjustments, so there will have to be two PRs: one in alpineer and a subsequent one here in toffy.
Code mockup
PSA - There's a lot of nearly complete code down here, mostly just for my benefit so I can really think through the return changes for functions in alpineer before bumping those to toffy.
2: Drop non-tiled fovs from the list of folder names early in stitch_images(), so the later helper functions don’t have to deal with it. Any fovs not included in this dictionary are not read in for stitching.
def get_tiled_names(fov_list, run_dir):
    """Retrieves the original tiled name for each fov, excludes any non-tiled fovs
    Args:
        fov_list (list): list of fovs that have an existing image dir
        run_dir (str): path to the run directory containing the run json file
    Returns:
        dictionary with RnCm name as keys and the fov-x-scan-1 name as values"""

    run_name = os.path.basename(run_dir)
    run_file_path = os.path.join(run_dir, run_name + ".json")
    fov_names = {}

    # check for a run file
    io_utils.validate_paths(run_file_path)

    # retrieve all tiled fov names
    run_data = json_utils.read_json_file(run_file_path)
    for fov in run_data["fovs"]:
        run_order = fov.get("runOrder")
        default_name = f"fov-{run_order}-scan-1"

        if default_name in fov_list:
            # get tiled name
            tiled_name = fov.get("name")
## UPDATED ##
            # filter out non-tiled and moly fovs
            if re.search(re.compile(r"(R\+?\d+)(C\+?\d+)”), tiled_name) and tiled_name != "MoQC" :
                fov_names[tiled_name] = default_name

    return fov_names

3: Currently, check_fov_name_prefix returns a tuple consisting of a bool to indicate whether the fov names have a prefix,
and either a simple list of non-prefixed fov names or a dictionary with the fov names as keys and prefixes as values.
Instead, we should should just always return a dictionary, with prefixes (or an empty string) as keys and the fovs belonging to each prefix as the values.
def check_fov_name_prefix(fov_list):
    """Checks for a prefix (usually detailing a run name) in any of the provided FOV names

    Args:
        fov_list (list): list of fov name
    Returns:
        (dict): dictionary with prefixes as the keys and fov names as values
    """

     # dict containing fov name and run name
     fov_names = {}
     for folder in fov_list:
         fov = "".join(folder.split("_")[-1:])
         prefix_name = "_".join(folder.split("_")[:-1])
         if prefix_name in fov_names.keys():
            fov_names[prefix_name].append(fov)
         else:
            fov_names[prefix_name] = fov

    return fov_names

For get_tiled_fov_names, rather than returning a tuple of (fov_names : list , row_num : int, column_num : int), we should instead return a list of tuples in the event there are multiple tiles. Also return the prefix associated with each tuple.
def get_tiled_fov_names(fov_list, return_dims=False):
    """Generates the complete tiled fov list when given a list of fov names

    Args:
        fov_list (list):
            list of fov names with are suffixed with RnCm, where n and m are any integer.
        return_dims (bool):
            whether to also return row and col dimensions
    Returns:
        list: list of tuples containing the names of all fovs expected for tiled image shape, if return_dims then also the prefix, row_num and col_num
    """

    expected_tiles = [], [], []

    # check for run name prefixes
    tiled_fov_names = check_fov_name_prefix(fov_list)
    prefixes = tiled_fov_names.keys()
    search_term: re.Pattern = re.compile(r"(R\+?\d+)(C\+?\d+)")

## UPDATED ##
    for tile in prefixes:
       rows, cols, expected_fovs = [], [], []
       fov_names = tiled_fov_names[tile]
       # get tiled image dimensions
       for fov in fov_names:
           R, C = re.search(search_term, fov).group(1, 2)
           rows.append(int(R[1:]))
           cols.append(int(C[1:]))

       row_num, col_num = max(rows), max(cols)

       # fill list of expected fov names
       for n in range(row_num):
           for m in range(col_num):
               fov = f"R{n + 1}C{m + 1}"

               # prepend run names
               if fov in list(fov_names.keys()):
                   expected_fovs.append(f”{tile}_” + fov)
               else:
                   expected_fovs.append(fov)

        if return_dims:
           expected_tiles.append(tile, expected_fovs, row_num, col_num)
        else:
           expected_tiles.append(expected_fovs)

   return expected_tiles

4/5: We need to load in the fov images for each tile separately and save them in individual folders.
def stitch_images(tiff_out_dir, run_dir=None, channels=None, img_sub_folder=None, tiled=False):
    """Creates a new directory containing stitched channel images for the run
    Args:
        tiff_out_dir (str): path to the extracted images for the specific run
        run_dir (str): path to the run directory containing the run json files, default None
        channels (list): list of channels to produce stitched images for, None will do all
        img_sub_folder (str): optional name of image sub-folder within each fov
        tiled (bool): whether to stitch images back into original tiled shape"""

    . . .

    # get load and stitching args
    if tiled:
        # returns a dict with keys RnCm and values og folder names
        folders_dict = get_tiled_names(folders, run_dir)
        try:
            expected_tiles = load_utils.get_tiled_fov_names(
                list(folders_dict.keys()), return_dims=True
            )
        except AttributeError:
            raise ValueError(f"FOV names found in the run file were not in tiled (RnCm) format.")
    else:
        num_cols = math.isqrt(len(folders))
        max_img_size = get_max_img_size(tiff_out_dir, img_sub_folder, run_dir)

    # make stitched subdir
    os.makedirs(stitched_dir)

    # save the stitched images to the stitched_image subdir
    for chan in channels:
        # tiled image loading
## UPDATED ##
           for tile in expected_tiles:
               prefix, expected_fovs, num_rows, num_cols = tile
               if prefix == "":
                     prefix = "unamed_tile"
               # subset the folders_dict for fovs found in the current tile
               tile_dict = {key: folders_dict[key] for key in expected_fovs}

               # if multiple tiles, save to individual subdirs
               if len(expected_tiles) > 1:
                  tile_stitched_dir = os.path.join(stitched_dir, prefix)
                  if not os.path.exists(tile_stitched_dir):
                     os.makedirs(tile_stitched_dir)
               else:
                  tile_stitched_dir = stitched_dir

               image_data = load_utils.load_tiled_img_data(
                   tiff_out_dir,
                   tile_dict,
                   expected_fovs,
                   chan,
                   single_dir=False,
                   img_sub_folder=img_sub_folder,
               )
               fname = os.path.join(tile_stitched_dir, chan + "_stitched.tiff")
               stitched = data_utils.stitch_images(image_data, num_cols)
               current_img = stitched.loc["stitched_image", :, :, chan].values
               image_utils.save_image(fname, current_img)
        else:
            image_data = load_utils.load_imgs_from_tree(
                tiff_out_dir,
                img_sub_folder=img_sub_folder,
                fovs=folders,
                channels=[chan],
                max_image_size=max_img_size,
            )
            fname = os.path.join(stitched_dir, chan + "_stitched.tiff")
            stitched = data_utils.stitch_images(image_data, num_cols)
            current_img = stitched.loc["stitched_image", :, :, chan].values
            image_utils.save_image(fname, current_img)

Required inputs
A mibi run with multiple tiles. Also a run with a single, non-tiled point included.
Output files
Separate stitched images for each tile.
Timeline
Give a rough estimate for how long you think the project will take. In general, it's better to be too conservative rather than too optimistic.

[ ] A couple days
[x] A week
[ ] Multiple weeks. For large projects, make sure to agree on a plan that isn't just a single monster PR at the end.

Estimated date when a fully implemented version will be ready for review:
Wednesday 4/19
Estimated date when the finalized project will be merged in:
Friday 4/21

We might be able to remove this control statement:

# prepend run names
if fov in list(fov_names.keys()):
    expected_fovs.append(f”{tile}_” + fov)
else:
    expected_fovs.append(fov)

becomes just
expected_fovs.append(f"{tile}_" + fov)

While it's true that not all FOVs generated by this loop will necessarily be contained in the tiled region, not sure ATM if there's a reason prepending the prefix to these "ghost" FOVs will cause issues. That being said, it does provide a good way to distinguish them.

Tiny aesthetic modification: we might be able to simplify the regex search for m and n in R{m}C{n}:

search_term: re.Pattern = re.compile(r"R\+?(\d+)C\+?(\d+)")
...
R, C = re.search(search_term, fov).group(1, 2)
rows.append(int(R))
cols.append(int(C))

I think we can should save to individual subdirs even if there is just one tile:

# if multiple tiles, save to individual subdirs
if len(expected_tiles) > 1:
    tile_stitched_dir = os.path.join(stitched_dir, prefix)
    if not os.path.exists(tile_stitched_dir):
        os.makedirs(tile_stitched_dir)
else:
    tile_stitched_dir = stitched_dir

becomes just
tile_stitched_dir = os.path.join(stitched_dir, prefix)
if not os.path.exists(tile_stitched_dir):
    os.makedirs(tile_stitched_dir)

Agreed, I think we can just always add the prefix since for those expected fovs without corresponding images, it won't really matter whether the function is checking a math for Tile_1_R1C4 or R1C4 since the folder doesn't exist either way.

looks good!

Looks good to me. The only thing that I can think of, would be refactoring the regex searching lines for n and m
def get_r_c(...)
	re.search(re.compile(r"(R\+?\d+)(C\+?\d+)”)

	R, C = re.search(search_term, fov).group(1, 2)
	           rows.append(int(R[1:]))
	           cols.append(int(C[1:]))
	return R,C

since we seem to be using this quite a lot recently.


Allow versions to be integers

Checklist before submitting

[x] Did you read the contributor guide?
[ ] Did you update any affected documentation?
[x] Did you write any tests to validate this change?

Description
Allows the version field in an open-ce-info.yaml file to be an integer.
Review process to land

All tests and other checks must succeed.
At least one maintainer must review and approve.
If any  maintainer requests changes, they must be addressed.

Codecov Report

Merging #87 (7a8fc78) into main (8ab63c5) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main      #87   +/-   ##
=======================================
  Coverage   96.60%   96.60%
=======================================
  Files          23       23
  Lines        2032     2032
=======================================
  Hits         1963     1963
  Misses         69       69

Flag
Coverage Δ

unittests
96.60% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

open_ce/get_licenses.py
97.60% <100.00%> (ø)

Continue to review full report at Codecov.

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

Codecov Report

Merging #87 (7a8fc78) into main (8ab63c5) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main      #87   +/-   ##
=======================================
  Coverage   96.60%   96.60%
=======================================
  Files          23       23
  Lines        2032     2032
=======================================
  Hits         1963     1963
  Misses         69       69

Flag
Coverage Δ

unittests
96.60% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

open_ce/get_licenses.py
97.60% <100.00%> (ø)

Continue to review full report at Codecov.

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

Codecov Report

Merging #87 (7a8fc78) into main (8ab63c5) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main      #87   +/-   ##
=======================================
  Coverage   96.60%   96.60%
=======================================
  Files          23       23
  Lines        2032     2032
=======================================
  Hits         1963     1963
  Misses         69       69

Flag
Coverage Δ

unittests
96.60% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

open_ce/get_licenses.py
97.60% <100.00%> (ø)

Continue to review full report at Codecov.

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


World is not saved when killing the game

If the game is killed (eg. alt f4) the world is not saved and all progress since the last save is lost.
In vanilla the world is saved before closing the game.
Minecraft 1.19.3

oh god, fix coming soon!

https://modrinth.com/mod/fastquit/version/1.3.0
will port to other versions shortly

Even with the last version the world is still not fully saved when killing it with task manager (alt f4 now works fine tho).
It seems like it saves halfway because if i place some blocks and then kill it half of the blocks remain but the other half doesn't. Also, the player position gets reset.

that is very weird, i'll look into that. does it save fully with vanilla?

I think so, but i cannot test right now

no worries, i'll test it out tomorrow i think

okay so i can confirm the issue, but its also happening in vanilla for me, so its probably minecrafts or the taskmanagers fault?

If it's a vanilla issue i wouldn't bother trying to fix it (unless it's super easy).
When i get back i will do some more testing and see (i thought that didn't happen in vanilla, but i was probably wrong), but for now i can't do anything

yea i'm interested in why it happens now, i'll look into it at some point, for now enjoy the holidays! :)

okay so im pretty sure the task manager problem is just because of how the taskmanager kills the process and theres not really something i could do about it and since its in vanilla too im just gonna leave it like that. thanks for your help! :)

Glad to help, and thanks for testing it! :D


[GEP-24] Shoot OIDC Issuer

How to categorize this PR?

/area security usability
/kind enhancement
What this PR does / why we need it:
This PR introduces GEP-24, which is a concrete proposal for implementing https://github.com/gardener/gardener/issues/8937
Reviews are welcome.
/cc @vpnachev @timuthy

I cannot directly reply to one of the comments so I am copying it here:

Can't we assume that Gardener takes over management when shoot.Spec.Kubernetes.KubeAPIServer.ServiceAccountConfig.Issuer is unset? (can be combined with Gardenlet feature gate for sake of feature graduation).

This can be a breaking change for users that first create a shoot cluster and then modify its shoot.Spec.Kubernetes.KubeAPIServer.ServiceAccountConfig.Issuer as part of some workflow/automatization process. Another problem with this approach is that validation will be harder since we will not have an indication that the shoot has this feature enabled. Do you mean that the gardenlet can set the shoot annotation in case the issuer is empty? I would not mind such approach, but I think that we should collect evidence that existing integrations will not break because of it.

We can eventually even deprecate serviceAccountConfig.issuer + serviceAccountConfig.acceptedIssuers
Can you explain why serviceAccountConfig.acceptedIssuers can be deprecated? Isn't that still required to configure trust?

The existence of the acceptedIssuers field is because once the user provides a new value for issuer existing service account tokens will not be accepted by the kube-apiserver. It was meant to allow changing the issuer in a non disruptive manner. See the example below:
Old config:
issuer: https://abc.example

New config:
issuer: https://new-issuer.example
acceptedIssuers:
- https://abc.example

If we have fully managed setup for all shoot cluster and all of them have the managed issuer feature ON, then we do not need this acceptedIssuer field exposed since users would not have the need to interact with it. If for some reason these values need to be changed, Gardener internals can take care without exposing such fields to the user.

Apart from the comments in the PR I wondered what is planned for the Kube-Apiserver of the virtual-garden cluster. Doesn't it make sense to expose this information similarly?

For me it does not make any sense to have this for the virtual garden cluster since it does not have any workload running in it. Right now users issue service account tokens in that cluster just for the sake of communicating with it from the outside (ex. external systems, other clusters). I hope that this GEP and the follow ups (if we provide the feature that Gardener managed shoots can be trusted by the Garden cluster itself) will help limit/eliminate that behaviour.

Hi @rfranzke @timuthy
Are there any other concerns that need to be addressed w.r.t this proposal?

Thanks, I think we are good to go then!
/lgtm
/approve

@rfranzke I forgot one last change 🏡

/lgtm
/approve

/lgtm


use partial-io for I/O tests

We recently released the partial-io crate, which adds convenience wrappers
for partial reads and writes.  It's basically a more formal version of a couple
of helpers we already had.
partial-io also supports quickcheck for random test cases. That could
eventually be used as well, as in e.g.
https://github.com/alexcrichton/bzip2-rs/pull/20.
What do you think?

I suppose some cargo fmt got mixed in there, but it looks good otherwise!
Thank you for the work!

(I made the formatting changes in a separate commit)


[python] Improving the syntax of the f-strings in the file: tests/c_api_test/test.py

I am improving the python code to the fstring format for the file tests/c_apo_test/test.py
I am trying to contribute to the issue #4136
@jameslamb

Thank you so much, for all the help and conversations looking forward to make more contributions.


Error when running example code: name 'version_str_to_tuple' is not defined

Hello!
I downloaded all of the example files and tried running them. Below are my error results. I'm using:

Python 2.7.9
antlr-python-runtime      3.4
intellect                 1.4.9

Output when running the example code:
File "//anaconda/lib/python2.7/site-packages/intellect/grammar/PolicyParser.py", line 129, in PolicyParser
antlr_version = version_str_to_tuple("3.1.3 Mar 17, 2009 19:23:44")
NameError: name 'version_str_to_tuple' is not defined
Is there something I can do to remedy this?
Thanks!

Robert

It's apparently gone in antlr-python-runtime 3.4, it works in 3.1.2. I don't know what the replacement is.


M3-920 Domain deletion confirmation shows 'undefined' on submission.

Purpose
It was found that confirming the request to delete a Domain would result in "undefined" flashing in place of the domains title in the confirmation dialog. This was a result of clearing the state when closing the dialog, which was unnecessary.

Coverage remained the same at 27.466% when pulling 2655e342b65973e36c06a2ae782959c2121d50ed on rjstires:M3-920 into 9e9b3eb3a67b645e07af69d18c4ef9029473e22e on linode:develop.

Unrelated, but when testing this I noticed that when creating your first Domain (from the empty state page), the new domain doesn't get added to the list: you have to reload the page to see it. Is there a ticket with this (couldn't find one in the backlog)?


Why concatenating a matrix of ones?

Hi and first of all thanks for the great code!
Can I ask why you stack a matrix of ones in the penultimate channel here?
https://github.com/USTC-JialunPeng/Diverse-Structure-Inpainting/blob/467b7a9ea3b783c09ec5beb941085bd8e75de2d3/net/structure_generator.py#L30
Wouldn't it make more sense to have x = tf.concat([x, ones_x*(1-mask), ones_x*mask], 3) ?
(i.e. you concat the mask as its one-hot encoding).
Best,
P.

It's a good question.
It originated from the implementation of PixelCNN++, a widely used PixelCNN.
https://github.com/openai/pixel-cnn/blob/bbc15688dd37934a12c2759cf2b34975e15901d9/pixel_cnn_pp/model.py#L36
However, I think it may have little impact on the performance. You can try to remove it and re-train the model.
Best wishes,
Jialun

https://github.com/openai/pixel-cnn/blob/bbc15688dd37934a12c2759cf2b34975e15901d9/pixel_cnn_pp/model.py#L36

Thanks for your answer!


Make addon-options work with story parameters

What I did

use makeDectorator to upgrade withOptions
update documentation

How to test
I've added usage to some stories in the marko-cli

If your answer is yes to any of these, please make sure to include it in your PR.
For maintainers only: Please tag your pull request with at least one of the following:
["cleanup", "BREAKING CHANGE", "feature request", "bug", "documentation", "maintenance", "dependencies", "other"]

Attempting to make addon-options use parameters. Few things,

I have not deprecated the global setOptions. I think its probably a good idea to let it be there but would like to know what others think.
Right now when you set options (using params) for a story, they get set globally. Ideally i would probably like it to be reset or something (maybe to the options we set using setOptions?) if we switch to a story where we don't set options. Is it possible to setOptions specifically for a story?

setOptions being persistent is expected behavior I think?
I don't see this as a big problem.


ArduCAM ov2640 mini with Arduino Uno and bluetooth module HC-05

Hi,
I am working on project where I want to integrate the ArduCAM 2640 mini camera with Arduino Mega R3 which is connected to a Bluetooth transceiver module HC-05. I want to capture images using arducam and then directly transfer them to pc using Bluetooth.
Thanks,
Anurag

@anuraqbansal4,
You can follow the example https://github.com/ArduCAM/Arduino/tree/master/ArduCAM/examples/mini/ArduCAM_Mini_OV2640_Video_Streaming

modify the example and setup another hardware UART port for HC-05 module.
modify the image data sending part code to the UART which connected to HC-05
using the host app on your PC to debug with your modified code  https://github.com/ArduCAM/Arduino/blob/master/ArduCAM/examples/mini/ArduCAM_host_v1.0.exe

Hello Lee,
Thank you, some of the part is getting clear to me however it would be of great help if you can share the modifications in the code needed for Bluetooth interfacing as I am stuck there. I have limited knowledge all your help will be appreciated. I am also still working on understanding the basic working principal of the ov2640 and the library for the same. It would also be great if you can share some tutorial that explain the working and interfacing from the scratch, in your knowledge.
Thanks,
Anurag

Hello Lee, I am still waiting for your response. Please help me and guide me through this.

@Anuragbansal4, we are so busy here. I will let my engineer here to modify an example to stream data via another software UART port on UNO. So please be patient.

Thank you Lee, that would be of great help. Awaiting to hear from your engineer soon.
Thanks,
Anurag

@Anurag, Please check the modified example below, it uses software uart. You can connect these pins to your HC-05 module.
const int RX_PIN = 2;  //RXD
const int TX_PIN = 3;  //TXD
www.arducam.com/downloads/sketch/SoftwareSerial_OV2640_Video_Streaming/SoftwareSerial_OV2640_Video_Streaming.ino

Thank you very much Lee. It was of great help. I am waiting to upload the sketch and stream the photo and video.
Thanks,
Anurag

Hello Lee,
I have tried uploading the code to UNO and connected the Arducam with the arduino as per the Hardware Application Note. The camera works well when connected with PC, using Arducam host app. But, when connected to another PC via bluetooth and using the Arducam host, an error pops up which is - ' System.TimeoutException: The write timed out. at System.IO.Ports.SerialStream.Write(Byte[ ] array, Int32 offset count, Int32 timeout) at ..........and so on'. Please let me know where I am making a mistake while using the same.

@anuragbansal4, it seems that there may be bugs in host application. The buletooth serial port maybe different from USB-serial port. So the behavior is also different.
You may need to build your own host application for that.

Hello Lee,
I am working on the host application, however I have few queries related to JPEG image transfer. I am successful in transferring the byte array, however I am facing problem while parsing the array. So while transferring the byte array, I have made a provision to display the data. The condition to detect the end of frame is FF D9, but the data does not contain FF D9 marker, (Data does contain D9 but FF's are missing) because of which I am unable to parse the array and detect frame ends. I would like to know how has this been implemented in the Arducam host application which works with PC?
Thanks,
Anurag

@Anuragbansal4, there must be FF D9 JPEG end marker in the data stream, or else you have to drop the bad frame and search for a new FF D8 JPEG start marker.

Hello Lee,
I have been working on Arducam, and as directed by you am working on developing a app to decode the image via Bluetooth. However, I am facing a problem were I am trying to print the image data on serial monitor which I recognized is getting printed in ASCII format, but as I serially transmit that same data over bluetooth to my app on pc and display it as it is, it shows data in UTF8 format. I noticed that the arducam application that you shared earlier which works on pc also has option to show binary data and hex. It would be of great help if you can share the code of the arducam.exe application. And also, I have located the FF D8 and FF D9 markers, you were right it was due to bad frames but now that problem is resolved. Thank you for your guidance. Please share your inputs on above problem too.
Thanks,
Anurag

Hello Lee,
I'm using a Arducam 0v2640 that have 18 pin. How I connect it with arducam shield so I can combine with Arduino ? Thanks for your help.


Google Infographics was turned off

This Gem is dependent on Google Infographics, but Google Infographics was turned off on March 18, 2019.
https://developers.google.com/chart/infographics/

yep, I recommend looking at an alternative library that can actually generate qr codes https://www.ruby-toolbox.com/categories/QR_Codes

All right. Thank you for your answer!


Unable to send array of strings

I am unable to send an array of Strings. When I send a JS array it reads it as one long string in the powershell script (i.e. it only loops through once in my powershell foreach loop) . I've also tried sending it formatted as a powershell array @()
JS
let users = ["account1", "account2"]
let params = [{name: 'Accounts', value: users}]
ps.addCommand(filePath + 'Enable-ADUser.ps1', params)
return ps.invoke()

Powershell
Param (
   [Parameter(Mandatory = $true)]
   [String[]] $Accounts
)

Not sure where I'm going wrong. Are we able to send an array to powershell?
Thank you!

Hey @shareiff ,
Thank you for helping me find this bug.
Anyway I will make some tests, fix it, and come out with a new version, soon. 🥇

Thanks! no rush, I figure I can just wrap the ps.addCommand() in a for-loop

Hey @shareiff
Please check out the new features entered in the last commit.
Thx. 👍


Graal support via optional module

Since it only adds one class and no classpath dependencies, should we just add svm.kt to the main OkHttp artifact? That way OkHttp works with graal out of the box, no extra dependency necessary?

Since it only adds one class and no classpath dependencies, should we just add svm.kt to the main OkHttp artifact? That way OkHttp works with graal out of the box, no extra dependency necessary?

Yep, but if we have issues in non core modules then we will have this setup for each.  Let's go with your plan.
Types of failures when you get things wrong with graal, i.e. we can expect a few bug reports about things we haven't got perfect in other modules.

Use reflection or classpath resources but it hasn't retained those.
Your code at runtime on another machine uses state from the build machine at runtime.
You hardcode something like a UUID or secure random // return 42

Thanks for getting this started!


ld: library not found for -lrealsense2

Python build on Mac OSX issue, does anyone know what to do? Thanks a lot!
[machine-name]:build username$ make
Scanning dependencies of target pyrealsense2
[  5%] Building CXX object CMakeFiles/pyrealsense2.dir/python.cpp.o
[ 11%] Linking CXX shared library pyrealsense2.cpython-36m-darwin.so
ld: library not found for -lrealsense2
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [pyrealsense2.SOVERSION.cpython-36m-darwin.so] Error 1
make[1]: *** [CMakeFiles/pyrealsense2.dir/all] Error 2
make: *** [all] Error 2
[machine-name]:build username$ -v
-bash: -v: command not found
[machine-name]:build username$ make -v
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

@BoydRotgans were you able to solve the issue?

After running cmake ../ -DBUILD_PYTHON_BINDINGS=bool:true, I opened RealsensePythonWrappers.xcodeproj in the build/wrappers/python directory. In Xcode, I ran Build.
I believe that successfully built pyrealsense2.so and pybackend2.so in the the build/wrappers/python/Debug folder. I haven't successfully used them yet though (getting "No module named pyrealsense2" when I run the example scripts, but I think it is a problem with python not being able to find the files).
Have you tried the Xcode approach?

[Realsense Customer Engineering Team Comment]
hi @djjacqmin, @BoydRotgans,
would like to know if you still need help on this issue? thanks.

@RealSense-Customer-Engineering I have resolved my issue with re: "No module named pyrealsense2", simply had to add pyrealsense2 to path.


Typing experiment

Typing techniques experiments, for example on the operands of operations

This is the typer first version.
The implementation is simple: the AST is not decorated with the type of expressions (same AST for typer and compiler), no clean error handling (stopping at the first error, etc.).
But this is a first approach with the fundamental concepts!


Build with clang 17

We observed yesterday that the libtiledbvcf compilation failed when using clang 18 for the osx-64 and osx-arm64 builds (https://github.com/TileDB-Inc/tiledb-vcf-feedstock/pull/141#issuecomment-2450229359). We fixed it by pinning to clang 16, which was known to work. This tests against clang 17.
An aside: note that the tiledb pins were added back to the .ci_support/ files when I rerendered because I have conda-build 24.9 installed locally (whereas previously I had 24.5.1 installed; xref: https://github.com/conda-forge/r-tiledb-feedstock/pull/91#discussion_r1826135225)

This PR confirmed that we can compile with clang 17. Not urgent, but during the next update we should bump from clang 16 to clang 17.

Also the problem with clang 18 was fixed upstream in https://github.com/TileDB-Inc/TileDB-VCF/pull/787, so we should be able to remove the clang 16 pin during the next update


Need first-aid/bandage mechanic

The only way to heal when under 50% is to chug a healing pot.
Even if you drag your wounded body back to town after adventuring you can't rest if below 50%. We need some kind of bandage mechanic to allow players a (very slow) way to regen back to 50%.

Added to the to-do list!


parametric text issue

I am getting the following error message when I use the change parameters option in fusion 360,
I got a file from a friend and that changing one of the parameters to change a radius and also it is meant to change the radius written on the product
however when I click on OK, on parameters i get this message:
I have installed from the autodesk fusion 360 app store plugin:
"ParametricText"
Some screen shots below include what done / happen with extra text, i entered on them.
See https://forums.autodesk.com/t5/fusion-360-support/parameters-with-parametric-text-plugin/m-p/11824148#M170295, where i have got some pictures to assist
ParametricText v 2.3.0 error: 5 : MoveFace1 / Compute Failed // ASM_REBL_REMOVE_FAILED - An existing fillet or chamfer could not be deleted.
Try suppressing or deleting existing fillets/chamfers before attempting the operation. // ASM_REBL_REMOVE_FAILED - An existing fillet or chamfer could not be deleted.
Try suppressing or deleting existing fillets/chamfers before attempting the operation.
Copy this message by taking a screenshot. Describe what you did to get this error or record a video.
Fusion 360 v. 2.0.15509
C:\Users\Nathaniel\AppData\Roaming\Autodesk\ApplicationPlugins\ParametricText.bundle\Contents\thomasa88lib\events.py failed:
Traceback (most recent call last):
File "C:\Users//AppData/Roaming/Autodesk/ApplicationPlugins/ParametricText.bundle/Contents\thomasa88lib\events.py", line 142, in catcher
func(args)
File "C:/Users//AppData/Roaming/Autodesk/ApplicationPlugins/ParametricText.bundle/Contents/ParametricText.py", line 1362, in update_cmd_execute_handler
update_texts(*async_update_queue_.get())
File "C:/Users//AppData/Roaming/Autodesk/ApplicationPlugins/ParametricText.bundle/Contents/ParametricText.py", line 1322, in update_texts
text_updated = set_sketch_text(sketch_text, evaluate_text(text, sketch_text, next_version))
File "C:/Users//AppData/Roaming/Autodesk/ApplicationPlugins/ParametricText.bundle/Contents/ParametricText.py", line 711, in set_sketch_text
check_text_height_bug(sketch_text)
File "C:/Users//AppData/Roaming/Autodesk/ApplicationPlugins/ParametricText.bundle/Contents/ParametricText.py", line 790, in check_text_height_bug
sketch_text.height = test_height
File "/packages\adsk\fusion.py", line 74886, in _set_height
return _fusion.SketchText__set_height(self, value)
RuntimeError: 5 : MoveFace1 / Compute Failed // ASM_REBL_REMOVE_FAILED - An existing fillet or chamfer could not be deleted.
Try suppressing or deleting existing fillets/chamfers before attempting the operation. // ASM_REBL_REMOVE_FAILED - An existing fillet or chamfer could not be deleted.
Try suppressing or deleting existing fillets/chamfers before attempting the operation.

Hi,
This message is from Fusions engine:
"MoveFace1 / Compute Failed // ASM_REBL_REMOVE_FAILED - An existing fillet or chamfer could not be deleted.
Try suppressing or deleting existing fillets/chamfers before attempting the operation
"
My guess that it is triggered when ParametricText tries to do Compute All.
What happens if you just open the file and do Compute All in Fusion? (Ctrl+B)
Any errors?
If not, what happens if you first disable ParametricText in the add-ins dialog, then change your intended radius and then update the text manually, by editing the sketch. Any errors from fusion? Errors after Compute All?


Support Fallback Options Better

We use Policy to provide Circuit Breaker, but we don't provide a way to fall back to something other than the call, leaving that to the implementer. Hystrix advice is fail fast, fail silent, static, stubbed, cached via network. This involves raising a new command that is queued or serviced by cache in case those elements are also defective.
https://github.com/Netflix/Hystrix/wiki/How-To-Use
Should we offer more support for fallback options?
The main issue here is that Hystix commands return results. We have strict CQS and so don't do this. So our only model for resilience is to queue for eventual execution. It could suggest that we need to provide a Brighter Query library that supports all these options...

Our best approach to this may be as follows:

Add a method to IHandleRequests TRequest Fallback(TRequest request).
Add a RequestHandler attribute [SupportsFallback]
Implement a SupportsFallbackHandler

In the Handle method, wrap the call to next.Handle(...) in a try...catch
On a BrokenCircuitException, call next.Fallback(...)

The idea here is to support an alternate to the existing Handle for when you know that the circuit is broken

https://github.com/Netflix/Hystrix/wiki/How-To-Use#Fallback

We could provide options on Supports Fallback:

[SupportsFallback(backstop=false circuitBreaker=true)] to determine if you catch just a circuitBreaker exception or any exception

Might help to configure the fallbackPolicy as a lambda inconstructor and then apply according to selection

Fixed