Fix Windows width calculation

This fixes the Windows prompt width calculation by using the same width calculation Unix uses. This code might have originally been in place to work around a Windows shortcoming, but it seems that current versions of Windows calculate width the same way Unix does
Before:

After:

Sorry, I don't have access to a Windows machine right now (and only Windows 7 at work).
I guess your PR is fine but I don't understand why!
Because there should be no ansi escape sequence in prompt (only highlight_prompt should inject esc. seq.).
On unix platform, to keep backward compatibility, you can still use esc. seq. directly in prompt (but should not).

Would the above fix not work for highlight_prompt?

Your fix will work for highlight_prompt.
But prompt is not supposed to contain escape sequence (at least) on windows.
Could you please confirm that rustyline example was run without any modification ?
Thanks.

Yes, the normal prompt works. This fix is for when people put ANSI sequences into their prompts.

Basically it lets both kinds of prompts work correctly.

oh I see what you're saying. You're talking about the screenshot. No, the PR doesn't change the default behavior of the example. I just changed it to make my testing a little easier.

Ok,
Your screenshots are the result of rustyline example with the following modifications:
a prompt containing ansi escape sequences directly.
Right ?
My concerns are that:

ansi escape sequences are not supported yet on Windows < 10 => highlighting is disabled.
highlighting/colouring is (should be) disabled when terminal is not supported.
highlighting/colouring is (should be) disabled when stdout is not a tty.
highlighting may be disabled manually (https://docs.rs/rustyline/4.0.0/rustyline/config/enum.ColorMode.html).

When prompt already contains ansi escape sequences, it's not easy/efficient to remove them (when highlighting is disabled).
So I am not sure:

with your PR, behaviour is consistent on unix and Windows 10,
but highlighting cannot be disabled dynamically anymore.

Just to be clear, the PR does not change the default prompt. The screenshot is only from my testing and is not part of the PR.
The PR only changes how the length is calculated. If there is no ANSI in the prompt, the length is calculated correctly.

@gwenn - I'm not clear what you're asking me to change so that the PR can be accepted.

@jonathandturner
I am so sorry.
With ConEmu (and Windows 7), without your PR but this :
diff --git a/src/tty/windows.rs b/src/tty/windows.rs
index 2a44206..aa47bbd 100644
--- a/src/tty/windows.rs
+++ b/src/tty/windows.rs
@@ -550,6 +550,7 @@ impl Term for Console {
                 let raw = original_stdstream_mode | wincon::ENABLE_VIRTUAL_TERMINAL_PROCESSING;
                 self.ansi_colors_supported =
                     unsafe { consoleapi::SetConsoleMode(self.stdstream_handle, raw) != 0 };
+                self.ansi_colors_supported = true;
             }
             Some(original_stdstream_mode)
         } else {

The prompt is displayed correctly:

Could you please tell me:

the Windows version,
the console (cmd, powershell, conemu, ...)
rustyline version/sha

?
And if you have time, without your PR, add this line:
diff --git a/src/tty/windows.rs b/src/tty/windows.rs
index 2a4420689..ca0feeccf 100644
--- a/src/tty/windows.rs
+++ b/src/tty/windows.rs
@@ -398,6 +398,7 @@ impl Renderer for ConsoleRenderer {
             pos.col = 0;
             pos.row += 1;
         }
+        debug!(target: "rustyline", "orig: {:?}, s: {:?}, pos: {:?}", orig, s, pos);
         pos
     }

And send me the logs.
Thanks.

I'm on cmd in Windows 10 (latest stable release).  Using git sha which was the latest as of a few days ago aba9b21e0261e8dd5145b315eaf255e35579a49a
The fix you suggested of forcing ansi doesn't fix the calculation.
Here are some sample logs:
     Running `target\debug\examples\example.exe`
[2019-05-15T12:46:27Z DEBUG rustyline::tty::windows] orig: Position { col: 0, row: 0 }, s: "\u{1b}[1;32m>>\u{1b}[0m ", pos: Position { col: 12, row: 0 }
[2019-05-15T12:46:27Z DEBUG rustyline::tty::windows] orig: Position { col: 12, row: 0 }, s: "", pos: Position { col: 12, row: 0 }
[2019-05-15T12:46:27Z DEBUG rustyline::tty::windows] orig: Position { col: 12, row: 0 }, s: "", pos: Position { col: 12, row: 0 }
>>          [2019-05-15T12:46:30Z DEBUG rustyline::keymap] Emacs command: SelfInsert(1, 't')
[2019-05-15T12:46:30Z DEBUG rustyline::undo] Changeset::insert(0, 't')
[2019-05-15T12:46:30Z DEBUG rustyline::tty::windows] orig: Position { col: 12, row: 0 }, s: "t", pos: Position { col: 13, row: 0 }
t[2019-05-15T12:46:30Z DEBUG rustyline::keymap] Emacs command: SelfInsert(1, 'e')
[2019-05-15T12:46:30Z DEBUG rustyline::undo] Changeset::insert(1, 'e')
[2019-05-15T12:46:30Z DEBUG rustyline::tty::windows] orig: Position { col: 12, row: 0 }, s: "te", pos: Position { col: 14, row: 0 }
e[2019-05-15T12:46:30Z DEBUG rustyline::keymap] Emacs command: SelfInsert(1, 's')
[2019-05-15T12:46:30Z DEBUG rustyline::undo] Changeset::insert(2, 's')
[2019-05-15T12:46:30Z DEBUG rustyline::tty::windows] orig: Position { col: 12, row: 0 }, s: "tes", pos: Position { col: 15, row: 0 }
s[2019-05-15T12:46:30Z DEBUG rustyline::keymap] Emacs command: SelfInsert(1, 't')
[2019-05-15T12:46:30Z DEBUG rustyline::undo] Changeset::insert(3, 't')
[2019-05-15T12:46:30Z DEBUG rustyline::tty::windows] orig: Position { col: 12, row: 0 }, s: "test", pos: Position { col: 16, row: 0 }

The column miscalculation is what this PR attempts to fix.

Ok,
[2019-05-15T12:46:27Z DEBUG rustyline::tty::windows] orig: Position { col: 0, row: 0 }, s: "\u{1b}[1;32m>>\u{1b}[0m ", pos: Position { col: 12, row: 0 }

Is unexpected !
There should be no ansi escape sequence when calling calculate_position.
static PROMPT: &'static str = ">> ";
...
let readline = rl.readline(PROMPT);
...     let mut s = State::new(&mut stdout, prompt, helper, ctx);
...             let prompt_size = out.calculate_position(prompt, Position::default());

Expected:
[2019-05-15T16:26:05Z DEBUG rustyline::tty:: windows] orig: Position { col: 0, row: 0 }, s: ">> ", pos: Position { col: 3, row: 0 }

@gwenn - as I mentioned earlier I am toggling the prompt to be the ansi prompt to test both non-ansi and ansi prompts.
The non-ansi version works fine (but it's not what I'm trying to fix). Example:
    Finished dev [unoptimized + debuginfo] target(s) in 0.92s
     Running `target\debug\examples\example.exe`
[2019-05-15T16:31:30Z DEBUG rustyline::tty::windows] orig: Position { col: 0, row: 0 }, s: ">> ", pos: Position { col: 3, row: 0 }
[2019-05-15T16:31:30Z DEBUG rustyline::tty::windows] orig: Position { col: 3, row: 0 }, s: "", pos: Position { col: 3, row: 0 }
[2019-05-15T16:31:30Z DEBUG rustyline::tty::windows] orig: Position { col: 3, row: 0 }, s: "", pos: Position { col: 3, row: 0 }
>> [2019-05-15T16:31:31Z DEBUG rustyline::keymap] Emacs command: SelfInsert(1, 'q')
[2019-05-15T16:31:31Z DEBUG rustyline::undo] Changeset::insert(0, 'q')
[2019-05-15T16:31:31Z DEBUG rustyline::tty::windows] orig: Position { col: 3, row: 0 }, s: "q", pos: Position { col: 4, row: 0 }
[2019-05-15T16:31:31Z DEBUG rustyline::tty::windows] orig: Position { col: 3, row: 0 }, s: "q", pos: Position { col: 4, row: 0 }
>> q[2019-05-15T16:31:33Z DEBUG rustyline::keymap] Emacs command: SelfInsert(1, 'i')
[2019-05-15T16:31:33Z DEBUG rustyline::undo] Changeset::insert(1, 'i')
[2019-05-15T16:31:33Z DEBUG rustyline::tty::windows] orig: Position { col: 3, row: 0 }, s: "qi", pos: Position { col: 5, row: 0 }
[2019-05-15T16:31:33Z DEBUG rustyline::tty::windows] orig: Position { col: 3, row: 0 }, s: "qi", pos: Position { col: 5, row: 0 }
>> qi

Are you saying that putting ansi in the default prompt is what is breaking it?

I see. Sorry it took so long. I couldn't understand why it wouldn't be okay to have ANSI codes in the prompt.
As best as I can figure out now, you put two versions of the prompt in there: one with colors and one without. The one without colors is the one used for the calculation.
I went back to using a simple prompt and a colored prompt separately, and then did .color_mode(ColorMode::Forced) to used the colored prompt.  This appears to work correctly with your fix.
     Running `target\debug\examples\example.exe`
[2019-05-15T16:41:18Z DEBUG rustyline::tty::windows] orig: Position { col: 0, row: 0 }, s: ">> ", pos: Position { col: 3, row: 0 }
[2019-05-15T16:41:18Z DEBUG rustyline::tty::windows] orig: Position { col: 3, row: 0 }, s: "", pos: Position { col: 3, row: 0 }
[2019-05-15T16:41:18Z DEBUG rustyline::tty::windows] orig: Position { col: 3, row: 0 }, s: "", pos: Position { col: 3, row: 0 }
>> [2019-05-15T16:41:19Z DEBUG rustyline::keymap] Emacs command: SelfInsert(1, 't')
[2019-05-15T16:41:19Z DEBUG rustyline::undo] Changeset::insert(0, 't')
[2019-05-15T16:41:19Z DEBUG rustyline::tty::windows] orig: Position { col: 3, row: 0 }, s: "t", pos: Position { col: 4, row: 0 }
[2019-05-15T16:41:19Z DEBUG rustyline::tty::windows] orig: Position { col: 3, row: 0 }, s: "t", pos: Position { col: 4, row: 0 }
>> t[2019-05-15T16:41:19Z DEBUG rustyline::keymap] Emacs command: SelfInsert(1, 'h')
[2019-05-15T16:41:19Z DEBUG rustyline::undo] Changeset::insert(1, 'h')
[2019-05-15T16:41:19Z DEBUG rustyline::tty::windows] orig: Position { col: 3, row: 0 }, s: "th", pos: Position { col: 5, row: 0 }
[2019-05-15T16:41:19Z DEBUG rustyline::tty::windows] orig: Position { col: 3, row: 0 }, s: "th", pos: Position { col: 5, row: 0 }
>> th[2019-05-15T16:41:19Z DEBUG rustyline::keymap] Emacs command: SelfInsert(1, 'i')
[2019-05-15T16:41:19Z DEBUG rustyline::undo] Changeset::insert(2, 'i')
[2019-05-15T16:41:19Z DEBUG rustyline::tty::windows] orig: Position { col: 3, row: 0 }, s: "thi", pos: Position { col: 6, row: 0 }
i[2019-05-15T16:41:20Z DEBUG rustyline::keymap] Emacs command: SelfInsert(1, 's')
[2019-05-15T16:41:20Z DEBUG rustyline::undo] Changeset::insert(3, 's')
[2019-05-15T16:41:20Z DEBUG rustyline::tty::windows] orig: Position { col: 3, row: 0 }, s: "this", pos: Position { col: 7, row: 0 }

Yes, because there is no way to remove them on Windows < 10 where ansi esc seq are not supported, or if stdout is not a tty, or when the terminal is not supported.
And, I guess there is something wrong in rustyline because you should not have to force the color mode (on Windows 10). The bug should be here:
            // To enable ANSI colors (Windows 10 only):
            // https://docs.microsoft.com/en-us/windows/console/setconsolemode
            if original_stdstream_mode & wincon::ENABLE_VIRTUAL_TERMINAL_PROCESSING == 0 {
                let raw = original_stdstream_mode | wincon::ENABLE_VIRTUAL_TERMINAL_PROCESSING;
                self.ansi_colors_supported =
                    unsafe { consoleapi::SetConsoleMode(self.stdstream_handle, raw) != 0 };
            }

I will try to have access to a windows 10 machine...

Since this PR fixes the issue where people use ANSI in their prompts, wouldn't it be okay to just accept it?  It doesn't break people who don't use ANSI.
A use case I've seen is something like this:
let readline = rl.readline(&format!(
            "{}> ",
            Color::Green.paint(display.to_string())
        ));

Where you're also mixing in parameters into the prompt to display things like:
C:\Source> "

The most natural place to put this is when you write out the prompt. I'm not sure how else you would do it.

Something like this.
I will try to see if I can fix the lifetime mismatch.

But you are right. It's not user friendly.
https://python-prompt-toolkit.readthedocs.io/en/master/pages/reference.html?highlight=prompt#module-prompt_toolkit.formatted_text

Many places in prompt_toolkit can take either plain text, or formatted text. For instance the prompt() function takes either plain text or formatted text for the prompt.

Ok, here is an example with a non static prompt.
Let me know if it looks awkward.

Windows bug related to ansi colors is also fixed: #227.

Any way around this? Is this going to be fixed? :/

Will there finally be a fix?

As already explained, there should be no ansi escape seq directly in the prompt, only highlight_prompt may return ansi escape seq.
Or we need a PR to remove ansi escape seq if terminal doesn't support them...

@gwenn You could also just allow the user to feed a usize into a readline function that places the cursor at the given distance from the beginning. That would allow for ansi codes to be used but doesn't affect non-ansi apps.

@BlackBirdTV You mean that rustyline user should compute the size of the prompt ?
And cursor may not be at the end of the prompt by default because you can have an initial input...
Also final user may want no color but how to remove the ansi sequences from your already styled prompt ?
We may introduce a Prompt trait like:
trait Prompt {
  /// ANSI esc sequences stripped used colors are not supported or disabled.
  fn rawText(&self) -> &str;
  /// May contains ANSI esc sequences
  fn styledText(&self) -> &str;
  /// Display size
  fn width(&self) -> usize;
}

with a default impl for &str.
And your impl would need something like strip-ansi-escapes for rawText.


It seems can left credentials parameter empty while modify base_url to proxy server when construct azure SDK

from azure.mgmt.storage import StorageManagementClient
from azure.mgmt.containerservice import ContainerServiceClient

// proxy server maintain credentials that used to authenticate with azure,
proxy_url="xxxxx"

subscription_id = "xxx"

storage_client = StorageManagementClient(credential="",subscription_id=subscription_id,base_url=proxy_url)
client = ContainerServiceClient(subscription_id=subscription_id,credential="",base_url=proxy_url)

storage_accounts = storage_client.storage_accounts.list()
print("storage_accounts",storage_accounts)

for account in storage_accounts:
    print(account.name)

for cluster in client.managed_clusters.list():
    print("Cluster name: {}".format(cluster.name))
    print("Kubernetes version: {}".format(cluster.kubernetes_version))
    print("Location: {}".format(cluster.location))
    print("Node count: {}".format(cluster.agent_pool_profiles[0].count))

above code snippet is working,  btw I thinks it's good for my scenarios. but I'm not sure why it works

Hi @shenshanyoumu thanks for your feedback!
What is the version number of the service you are using?

@Wzb123456789 , for azure.mgmt.storage is 21.0.0

// proxy server maintain credentials that used to authenticate with azure
Credential is to be used to authenticate rest api and according to your code and comment, it seems that your proxy_url doesn't need the authentication. Could you check your proxy server?

// proxy server maintain credentials that used to authenticate with azure Credential is to be used to authenticate rest api. According to your code and comment, it seems that your proxy_url doesn't need the authentication. Could you check your proxy server?

thanks for your reply, yes that's how proxy-server works. anyway I will check azure authenticate workflow in a deep way


cant install using go get go.universe.tf/tlsrouter

ubuntu@ip-10-0-1-115:~$ go get go.universe.tf/tlsrouter
package go.universe.tf/tlsrouter: unrecognized import path "go.universe.tf/tlsrouter" (parse https://go.universe.tf/tlsrouter?go-get=1: no go-import meta tags ())

Yeah, I see a 404 for that. @danderson?

Yup, the package got renamed to go.universe.tf/tcpproxy, and when we merged the tlsrouter binary into this repo, we didn't update the docs. Fetching the binary should be go get go.universe.tf/tcpproxy/tlsrouter.

@odedpriva, which docs led you astray? Is there something we forgot to update?

using this : https://github.com/google/tcpproxy/blob/master/cmd/tlsrouter/README.md

Thanks, I'll leave that to Dave to fix.


Repeater functionality incorrect?

Sorry if I misunderstand how this is supposed to work. It seems that the Repeater is supposed to repeat its children after they return Success or Failure.  But if a child is running, the Repeater should allow it to finish running.  If this is the intended behavior, then repeater.go, at the top of Tick() should have something like:
status := core.Update(d.Child, ctx)

// Continue if child is running
if status == core.StatusRunning {
	return core.StatusRunning

Which makes the demo code works correctly.  Without this, it just runs for one tick and exits, even though the 700ms child hasn't yet completed.
Thanks
Dan

Hi Dan,
You are indeed correct – thank you very much!
I have committed a fix here.


Daylight: Select Lists: add demo to top of page

I seem to have missed adding a demo at the top of this page. It is currently the same demo as the one at the bottom, which might be why I left it off, but the page does feel empty without it.

Will reopen as a new PR with changes to this and other pages with demos that involved the applying styles to native elements.


Adds support for transferring dataclass_transform decorators to type stubs

Ensures that functions like this:
@typing{_extensions}.dataclass_transform(field_specifiers=(custom_field,))
def decorator():
    ...

maintain their dataclass_transform decorator in a generated type stub

@prbot approve

Ah, good question! We are in some other cases, but I don't think we are
here, so it may have been a lucky coincidence that it's actually imported
and works for me when I just tested this. Will add it to self.imports in a
followup PR to make sure it's always imported if this code path is used
On Wed, Aug 14, 2024 at 3:27 PM Michael Waskom @.***>
wrote:

@.**** commented on this pull request.
In synchronicity/type_stubs.py
https://github.com/modal-labs/synchronicity/pull/147#discussion_r1716926776
:

@@ -781,6 +781,22 @@ def _get_function_source(
body_indent: str,
transform_signature=None,
) -> str:

   maybe_decorators = ""

   if hasattr(func, "__dataclass_transform__"):

       dt_spec = func.__dataclass_transform__

       if dt_spec["field_specifiers"]:

           refs = ""

           for field_spec_entity in dt_spec["field_specifiers"]:

               if field_spec_entity.__module__ == self.target_module:

                   ref = field_spec_entity.__qualname__

               else:

                   self.imports.add(field_spec_entity.__module__)

                   ref = f"{field_spec_entity.__module__}.{field_spec_entity.__qualname__}"

               refs += ref + ", "

           args = f"field_specifiers=({refs})"

       maybe_decorators = ***@***.***_extensions.dataclass_transform({args})\n"

That makes sense — but are we guaranteed to have typing_extensions
imported in the type stubs we emit?
—
Reply to this email directly, view it on GitHub
https://github.com/modal-labs/synchronicity/pull/147#discussion_r1716926776,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AASII2S6V52ZG2ND4CIJY6LZRNLKPAVCNFSM6AAAAABMQD7C4KVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDEMZYGE3DOMBVHA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>


objective_c throws '_isValidObject(ptr)': is not true

I have written a method with Swift and use ffigen to generate the dart bindings.
When I call the metod from Dart, the method throws an error like this.
[log] 'package:objective_c/src/internal.dart': Failed assertion: line 113 pos 12: '_isValidObject(ptr)': is not true.
[log] #0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:51:61)
      #1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:40:5)
      #2      ObjCObjectBase._retain (package:objective_c/src/internal.dart:113:12)
      #3      new _ObjCFinalizable (package:objective_c/src/internal.dart:54:7)
      #4      new ObjCObjectBase (package:objective_c/src/internal.dart)
      #5      new NSObject._ (package:objective_c/src/objective_c_bindings_generated.dart:25:9)
      #6      new NSObject.castFromPointer (package:objective_c/src/objective_c_bindings_generated.dart:34:14)
      #7      new NSString._ (package:objective_c/src/objective_c_bindings_generated.dart:506:15)
      #8      new NSString.castFromPointer (package:objective_c/src/objective_c_bindings_generated.dart:515:14)
      #9      new ObjCBlock_ffiVoid_NSString_NSError.listener.<anonymous closure> (package:camerax_ios/src/ffi.g.dart:37907:58)
      #10     _ObjCBlock_ffiVoid_NSString_NSError_closureTrampoline (package:camerax_ios/src/ffi.g.dart:37825:39)
      #11     new ObjCBlock_ffiVoid_NSString_NSError.listener.<anonymous closure> (package:camerax_ios/src/ffi.g.dart)
      #12     _rootRunUnary (dart:async/zone.dart:1415:13)
      #13     _CustomZone.runUnary (dart:async/zone.dart:1308:19)
      #14     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1217:7)
      #15     _CustomZone.bindUnaryCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1254:26)
      #16     _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)

Here is the Swift method.
    @objc public func takePictureToAlbum(name: String?, completionHandler handler: @escaping (String?, (any Error)?) -> Void) {
        requestPhotoLibraryAuthorization() { [self] status in
            if status == .authorized {
                let settings = AVCapturePhotoSettings(from: capturePhotoSettings)
                let delegate = CameraCapturePhotoCaptureDelegate() { [self] photo, error in
                    if let error {
                        handler(nil, error)
                    } else {
                        savePhoto(photo, name: name, completionHandler: handler)
                    }
                }
                capturePhotoDelegates.append(delegate)
                capturePhotoOutput.capturePhoto(with: settings, delegate: delegate)
            } else {
                handler(nil, CameraError.unauthorized)
            }
        }
    }

Here is the Dart caller.
  @override
  Future<Uri> takePictureToAlbum({String? name}) async {
    final completer = Completer<Uri>();
    final handler =
        ffi.ObjCBlock_ffiVoid_NSString_NSError.listener((savedPath, error) {
      if (error == null) {
        final savedUri = Uri.file('$savedPath');
        completer.complete(savedUri);
      } else {
        completer.completeError(error);
      }
    });
    ffiValue.takePictureToAlbumWithName_completionHandler_(
      name?.toNSString(),
      handler,
    );
    final savedUri = await completer.future;
    return savedUri;
  }

I'm guessing it's the completion handler that throws the error. There are a few places where the handler is being called in your swift function. Do you know which code path you're hitting? I can't tell much from the Dart stack trace.
Anyway, that assertion is designed to catch cases where we try to use an ObjC object in Dart when it's already been freed. This used to be a big issue for listener blocks, because they are called asynchronously, so their arguments may be freed before the callback is run. That bug is fixed now, but the fix hasn't been published yet.
Which version of ffigen are you using?

I'm guessing it's the completion handler that throws the error. There are a few places where the handler is being called in your swift function. Do you know which code path you're hitting? I can't tell much from the Dart stack trace.
Anyway, that assertion is designed to catch cases where we try to use an ObjC object in Dart when it's already been freed. This used to be a big issue for listener blocks, because they are called asynchronously, so their arguments may be freed before the callback is run. That bug is fixed now, but the fix hasn't been published yet.
Which version of ffigen are you using?

Here is the savePhoto method which I passed the completion handler.
    private func savePhoto(_ photo: AVCapturePhoto, name: String?, completionHandler handler: @escaping (String?, (any Error)?) -> Void) {
        do {
            if let data = photo.fileDataRepresentation() {
                let fileManager = FileManager.default
                guard let documentUrl = try? fileManager.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true) else {
                    throw CameraError.saveUrlNil
                }
                let photosUrl = documentUrl.appendingPathComponent("Photos")
                if !fileManager.fileExists(atPath: photosUrl.path) {
                    try fileManager.createDirectory(at: photosUrl, withIntermediateDirectories: true)
                }
                let dataUri = photosUrl.appendingPathComponent(UUID().uuidString).appendingPathExtension("JPG")
                try data.write(to: dataUri, options: .atomic)
                debugPrint("saved uri \(dataUri.path)")
                PHPhotoLibrary.shared().performChanges() {
                    let creationRequest = PHAssetCreationRequest.forAsset()
                    let options = PHAssetResourceCreationOptions()
                    options.originalFilename = name
                    creationRequest.addResource(with: .photo, data: data, options: options)
                } completionHandler: { success, error in
                    if let error {
                        handler(nil, error)
                    } else {
                        handler(dataUri.path, nil)
                    }
                }
            } else {
                throw CameraError.savePhotoNil
            }
        } catch {
            handler(nil, error)
        }
    }

I'm using ffigen: 12.0.0

Ok, then this is a dupe of https://github.com/dart-lang/native/issues/835. if you're on ffigen 12, you don't have the fix yet. I'm planning to publish ffigen 13 later this week, so just wait for that (or add it as a git dependency if you want to try the fix now).
The fix involves generated ObjC code, in addition to the generated Dart code. So you'll need to include the generated ObjC file in your app/plugin build.

Sometime it causes a breakpoint with debug mode.

ffigen 13.0.0 is published

Should I change the plugin to plugin_ffi and include the generated .m file to CMakeList?
Or just add the .m file to the Classes folder?

Either should work. You just have to include the .m file in the build somehow.


variable dimension issue

File "e:\python\cod\codes\rl-pendulum\Pendulum_DQN\pendulum_dqn.py", line 155, in
action, real_action, count = agent.choose_action(torch.FloatTensor(state))
^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: expected sequence of length 3 at dim 1 (got 0)

hey, did you find the solution to that issue?
If you did, please do share it with me.

To fix this, go to line 149 and change it from
state = env.reset() to state, _ = env.reset()
This code is according to old gym and does not account for new gym
You'll likely encounter another problem at line 156 as well,
change any instance of state_prime, reward, done, _ = env.step([real_action]) to state_prime, reward, done, truncated,  _ = env.step([real_action])
and then change at line 153 from while not done to while not (done or truncated)


display build URL for changepoint

Type of change

[ ] Refactor
[x] New feature
[ ] Bug fix
[ ] Optimization
[ ] Documentation Update

Description
Since it will be easier to check buildUrl from the console, this would be an addition to orion. I'm unable to add the hyperlinked text in this preview, but the terminal does show hyperlinked text. The reason moving to hyperlinked text is to keep the terminal readable and clean. If having the URL makes more sense, it can be updated
(venv) sboyapal orion (display-builds) >> orion --hunter-analyze
2024-02-12 22:46:11,108 - Orion - INFO - The test aws-small-scale-cluster-density-v2 has started
2024-02-12 22:46:11,109 - Matcher - INFO - Executing query against index=perf_scale_ci
2024-02-12 22:46:11,656 - Matcher - INFO - Executing query against index=ripsaw-kube-burner*
2024-02-12 22:46:13,538 - Orion - INFO - Collecting podReadyLatency
2024-02-12 22:46:13,538 - Matcher - INFO - Executing query against index=ripsaw-kube-burner
2024-02-12 22:46:15,809 - Orion - INFO - Collecting apiserverCPU
2024-02-12 22:46:15,809 - Matcher - INFO - Executing query against index=ripsaw-kube-burner
2024-02-12 22:46:18,905 - Orion - INFO - Collecting ovnCPU
2024-02-12 22:46:18,905 - Matcher - INFO - Executing query against index=ripsaw-kube-burner
2024-02-12 22:46:23,264 - Orion - INFO - Collecting etcdCPU
2024-02-12 22:46:23,264 - Matcher - INFO - Executing query against index=ripsaw-kube-burner
2024-02-12 22:46:26,399 - Orion - INFO - Collecting etcdDisck
2024-02-12 22:46:26,399 - Matcher - INFO - Executing query against index=ripsaw-kube-burner
time                       uuid                                    P99    apiserverCPU_cpu_avg    ovnCPU_cpu_avg    etcdCPU_cpu_avg    etcdDisck_duration_avg
-------------------------  ------------------------------------  -----  ----------------------  ----------------  -----------------  ------------------------
2023-10-16 19:25:28 +0000  e624b10f-148b-4871-acb5-e8a71cf1b605  13000                 10.175            2.42737            7.63694                 0.0115776
2023-10-18 15:11:43 +0000  325dd073-b680-4e44-951f-26506f401be0  13000                 10.4876           2.49018            8.12781                 0.0107434
2023-10-24 10:52:22 +0000  8cfc4fcf-46c7-4b9f-a464-cd100bfb84bf  13000                 10.3932           2.44498            7.60968                 0.0116801
                                                                                ················
                                                                                +13.8%
                                                                                ················
2023-10-31 10:30:02 +0000  3c9e2789-59d4-4d6f-9f07-5c400cf25c93  13000                 11.0129           2.73347            8.83458                 0.0112971
2023-11-03 04:08:14 +0000  649228fb-9ff4-458a-8a8b-b9ecb521ca1b  13000                 10.8605           2.82005            8.34146                 0.0101805
2023-11-07 10:26:08 +0000  d8e0c965-4548-48d4-8a7a-c065b93ee766  15000                 10.5964           2.6356             7.48679                 0.0124896
2023-11-15 12:36:38 +0000  a990f7f9-1faf-41f7-b9fb-3b83f91b6e52  13000                 10.8222           2.81836            8.56302                 0.0112316
2023-11-22 12:53:45 +0000  e6c219dc-a9aa-4cf9-854a-fbd846c8ad22  13000                 10.8555           2.84967            8.20129                 0.0111251
2023-11-29 12:32:04 +0000  adc95590-791d-423b-9d09-8190178edbf6  13000                 11.4115           2.8615             8.67125                 0.0127318
                                                                                ························
                                                                                +42.9%
                                                                                ························
2023-12-06 12:34:57 +0000  5b06c830-be55-4c84-b4da-92720b55c304  13000                 11.05             2.85996            8.69638                 0.0134358
2023-12-20 12:37:17 +0000  c5f95336-27d4-4615-94c1-d618e975a36b  13000                 10.9253           2.77954            8.20148                 0.0137848
2023-12-27 12:36:59 +0000  bd5e6cad-6bc2-472d-948a-b1fbb350e80a  13000                 11.1967           2.77645            8.63235                 0.0154012
2024-01-03 12:33:09 +0000  b91c7156-0b86-4c79-81eb-60dfb7288070  13000                 10.7863           2.80557            8.54677                 0.0138396
                                                                                ················
                                                                                +23.3%
                                                                                ················
2024-01-10 12:38:16 +0000  12a1750e-a7eb-48ed-bc00-35078d2bbad8  13000                 10.9379           3.10667            8.86329                 0.0154639
                                                                                ·················
                                                                                +14.3%
                                                                                ·················
2024-01-10 22:59:25 +0000  c6b4aaa3-cd2c-4f04-af20-3d10c52449a2  13000                 11.4162           3.1338             9.29143                 0.0128269
                                                                        ······················
                                                                                +22.9%
                                                                        ······················
2024-01-11 17:30:26 +0000  c2963cec-e800-423f-92b1-3e6f692a55cb  13000                 16.1465           3.80976           10.1149                  0.0149901
2024-01-15 13:01:36 +0000  4f73a079-0088-4027-af0d-7c1b5b429fdd  13000                 15.0479           3.93557           10.0966                  0.0193588
2024-01-15 20:30:57 +0000  90189fbf-7181-4129-8ca5-3cc8d656b595  13000                 10.8181           3.05989            8.48998                 0.015606
2024-01-17 12:35:28 +0000  bff92096-3a8e-4cb4-805b-55638be4aa23  14000                 11.3023           3.03366            9.04686                 0.0124663
2024-01-22 12:57:43 +0000  f8778f71-08b3-42af-8e71-6ce1b8335c8d  13000                 16.0607           3.93435           10.5545                  0.0231879
2024-01-24 12:48:41 +0000  d70a8864-b251-417a-b43b-d85a54604c0f  13000                 10.7205           3.05               8.23406                 0.015117
2024-01-29 16:41:22 +0000  28175f25-7f08-4b86-b754-cca0a59f35ea  13000                 15.3787           3.9335            10.4592                  0.0213644
2024-01-31 12:41:55 +0000  33feb742-30be-45c4-9849-52072e52aaee  13000                 11.1809           3.0081             9.01858                 0.0164261
2024-02-05 12:57:47 +0000  ab482da1-a857-4d08-948a-897d9c670b64  13000                 16.3836           4.08402           10.4616                  0.0217523
2024-02-07 12:48:05 +0000  724504bf-637b-407b-b379-d46614df9da5  13000                 10.8264           3.09103            8.57438                 0.0149923
2024-02-07 13:26:27 +0000  69475c18-ad94-4a34-b6c1-f7d4d5b2043a  13000                 10.9693           3.11466            8.77954                 0.0147759
2024-02-12 12:58:13 +0000  f728b48b-96a6-49b8-8bdf-06f71b0b0108  13000                 15.3591           3.95375           10.3827                  0.0196659
2024-02-12 22:46:27,995 - Matcher - INFO - Executing query against index perf_scale_ci
INFO:Matcher:Executing query against index perf_scale_ci
2024-02-12 22:46:28,037 - Matcher - INFO - Executing query against index perf_scale_ci
INFO:Matcher:Executing query against index perf_scale_ci
2024-02-12 22:46:28,085 - Matcher - INFO - Executing query against index perf_scale_ci
INFO:Matcher:Executing query against index perf_scale_ci
2024-02-12 22:46:28,130 - Matcher - INFO - Executing query against index perf_scale_ci
INFO:Matcher:Executing query against index perf_scale_ci
2024-02-12 22:46:28,174 - Matcher - INFO - Executing query against index perf_scale_ci
INFO:Matcher:Executing query against index perf_scale_ci
2024-02-12 22:46:28,221 - Matcher - INFO - Executing query against index perf_scale_ci
INFO:Matcher:Executing query against index perf_scale_ci
2024-02-12 22:46:28,269 - Matcher - INFO - Executing query against index perf_scale_ci
INFO:Matcher:Executing query against index perf_scale_ci
2024-02-12 22:46:28,326 - Matcher - INFO - Executing query against index perf_scale_ci
INFO:Matcher:Executing query against index perf_scale_ci

8cfc4fcf-46c7-4b9f-a464-cd100bfb84bf=======>click here for build URL

3c9e2789-59d4-4d6f-9f07-5c400cf25c93=======>click here for build URL

adc95590-791d-423b-9d09-8190178edbf6=======>click here for build URL

5b06c830-be55-4c84-b4da-92720b55c304=======>click here for build URL

b91c7156-0b86-4c79-81eb-60dfb7288070=======>click here for build URL

12a1750e-a7eb-48ed-bc00-35078d2bbad8=======>click here for build URL

c6b4aaa3-cd2c-4f04-af20-3d10c52449a2=======>click here for build URL

c2963cec-e800-423f-92b1-3e6f692a55cb=======>click here for build URL

Related Tickets & Documents

Related Issue #8
Closes #

Checklist before requesting a review

[x] I have performed a self-review of my code.
[ ] If it is a core feature, I have added thorough tests.

Testing

Please describe the System Under Test.
Please provide detailed steps to perform tests related to this code change.
How were the fix/results from this change verified? Please provide relevant screenshots or results.

@shashank-boyapally we need a rebase of this PR

rebased this, with changes to use our new internal instance.

lgtm! Thanks!


enhancements to device tree generation

As far as I can tell the generation property is define in all cases except  a few where it's structures.
Also, as far as I can tell the generation property is read but has absolutely no effect on generation.  The yaml template even says it's ignored.
This is unfortunate, as I had hoped there was an option to produce the macro value for a string property without the quotes around the string.  (And there are cases where I'd love to see arrays and compounds generated as structure initializers like {1, 2, 3, 4, 5} instead of independent macros for each element, which can be a real pain when the array isn't a known length.)
What's going on with generation?  Can we add new generation options, like token to eliminate quotes on strings and initializer for compounds/arrays that aren't broken down?  It's still there, so presumably there's a reason....

I'm trying to phase out generation in the YAML files.  If you've got an example of what you want generated we can look at doing it.
We're working on a new parser and generation script/tooling.  I'm not sure if it will get completed in time for merging in 2.0.  So we can see if what you need makes sense to add there or to add to the existing code.

Below are three enhancements to generation that I would like to see, with real-world examples
GPIOS
In addition to
#define DT_GPIO_KEYS_BUTTON_0_GPIOS_CONTROLLER "GPIO_0"
#define DT_GPIO_KEYS_BUTTON_0_GPIOS_FLAGS      256
#define DT_GPIO_KEYS_BUTTON_0_GPIOS_PIN        18

I would like to see
#define DT_GPIO_KEYS_BUTTON_0_GPIOS {"GPIO_0", 256, 18}

in conjunction with a standard struct gpio_descriptor in the gpio.h header, allowing:
   .mode_btn = DT_GPIO_KEYS_BUTTON_0_GPIOS,

This would reduce the amount of noisy boilerplate when instantiating GPIO uses.
Tokenizable Values
Waveshare's e-paper displays use the same API with a large number of device-specific values, including initialization sequences and look-up tables.  I would like the driver I'm  developing to allow selection of the display like this:
    variant:
      type: string
      category: required
      generation: define
      enum:
        - "epd1p54"
        - "epd1p54b"
        - "epd1p54c"
        - "epd4p2"
        # ...

Currently what I get is:
#define DT_NORDIC_NRF_SPI_40004000_WAVESHARE_EPD_0_VARIANT "epd1p54b"

In the driver I have things like:
static u8_t epd1p54b_init[] = { /* lots of bytes here */};

Since the value of the property is expressed as a string rather than a token, I can't use it in something like:
   .init = CONCAT(DT_INST_0_WAVESHARE_EPD_VARIANT, _init),

So I want an option to generate string-valued properties as tokens.
Array Initializers
It would be nice if an external board that had a display not built into the driver could provide the necessary information in the device-tree bindings, e.g.:
vcom-lut = <0x0E 0x14 0x01 0x0A 0x06 0x04 0x0A 0x0A
            0x0F 0x03 0x03 0x0C 0x06 0x0A 0x00>;

Currently that expands to:
#define DT_NORDIC_NRF_SPI_40004000_WAVESHARE_EPD_0_VCOM_LUT_0   14
#define DT_NORDIC_NRF_SPI_40004000_WAVESHARE_EPD_0_VCOM_LUT_1   20
#define DT_NORDIC_NRF_SPI_40004000_WAVESHARE_EPD_0_VCOM_LUT_10  3
#define DT_NORDIC_NRF_SPI_40004000_WAVESHARE_EPD_0_VCOM_LUT_11  12
#define DT_NORDIC_NRF_SPI_40004000_WAVESHARE_EPD_0_VCOM_LUT_12  6
#define DT_NORDIC_NRF_SPI_40004000_WAVESHARE_EPD_0_VCOM_LUT_13  10
#define DT_NORDIC_NRF_SPI_40004000_WAVESHARE_EPD_0_VCOM_LUT_14  0
#define DT_NORDIC_NRF_SPI_40004000_WAVESHARE_EPD_0_VCOM_LUT_2   1
#define DT_NORDIC_NRF_SPI_40004000_WAVESHARE_EPD_0_VCOM_LUT_3   10
#define DT_NORDIC_NRF_SPI_40004000_WAVESHARE_EPD_0_VCOM_LUT_4   6
#define DT_NORDIC_NRF_SPI_40004000_WAVESHARE_EPD_0_VCOM_LUT_5   4
#define DT_NORDIC_NRF_SPI_40004000_WAVESHARE_EPD_0_VCOM_LUT_6   10
#define DT_NORDIC_NRF_SPI_40004000_WAVESHARE_EPD_0_VCOM_LUT_7   10
#define DT_NORDIC_NRF_SPI_40004000_WAVESHARE_EPD_0_VCOM_LUT_8   15
#define DT_NORDIC_NRF_SPI_40004000_WAVESHARE_EPD_0_VCOM_LUT_9   3

It should instead be expanded to an initializer so I can do:
#ifdef DT_INST_0_WAVESHARE_EPD_VCOM_LUT
static u8_t vcom_lut[] = DT_INST_0_WAVESHARE_EPD_VCOM_LUT
#else
static u8_t vcom_lut[] = CONCAT(DT_INST_0_WAVESHARE_EPD_VARIANT,_vcom_lut);
#endif

I join in here. But I prefer to use a-byte-data-property for that, like:
        ssd1673fb@0 {
                compatible = "solomon,ssd1673fb", "gd,gde0213b1";
                label = "SSD1673";
                spi-max-frequency = <4000000>;
....
                vcom = <0xa8>;
                border-waveform = <0x71>;
                lut_initial = [22, 55, AA, 55, AA, 55, AA, 11];
                lut_default = [22, 11, 00, 55, 00, 55, 00, 00];
        };

@pabigot OT: I wonder why you write driver for a display and not a display controller. btw, ssd1673 already supports HINK E0154A05.

@jfischer-phytec-iot I'm intending to write a driver that conforms to Zephyr's display API so it can be used with lvgl.  I don't believe these displays use the ssd1673, but I'll check into that.

Agree, support for bytestring generating an initializer is desirable.

@pabigot The driver should be for a display controller not a display and the parameters for a specific panel have to be passed from DT. For example, ssd1673 (will rename it to something generic) supports different controllers (SSD1673 (gde0213b1) and SSD1608 (GDE029A1) compatible),  see reel_board.dts and ssd1673.c. But because of the problem described above, the LUTs are still in the driver itself.
I prepare ssd1673 to support IL3897 (GDEH0213B72).

@pabigot just doing a quick scan of this, but have we dealt with the issues described here?

GPIOS -- yes (#18588)
Tokenizable values, Generated Enums -- No.
Array initializers -- yes (#17395), and in-progress (#20174)

If I create a new issue for the token/enum capability and #20174 gets merged (I will update per your comment), I can close this.  Is that plan OK?

The unimplemented capability is now in its own issue.


When installing by npm, don't copy the file /node_modules/@ innologica/vue-stackable-modal/src/assets/modal/modal.scss

I copied the file from the github repository and create the file manually

Can you clarify. Do you want me to copy or not the modals.scss file. I think I've included it in the npm package.


Fix bug where interpolations were unnecessarily resolved during merge.

Closes #431 .
DictConfig and ListConfig which were interpolations had to be "expanded" in order to fulfil the merge. If it wasn't, it detaches the node to find the interpolation value which in the example given in #431 doesn't exist and then fails. is_interpolation has to be checked before is_missing since is_missing detaches the node(which will resolve the interpolation) to find if that is missing.

Also, can you tell me what is missing from this PR? :)

Also, can you tell me what is missing from this PR? :)

news fragment?

Also, can you tell me what is missing from this PR? :)

news fragment?

Yup :)

Great.
Merging, can you add another PR cherry-picking this into the 2.0_branch?

Sure


VInput multiple on select doesn't work.

Another scenario vue.js natively supports but not implemented. the multiple attribute when added renders correctly but implementation doesn't work.
<VInput label="Dropdown List (Multi)" type="select" multiple v-model="multiSelectValue" :options="options"/>
v-model doesn't support arrays

Thanks. This will be fixed in the next release.

Small update on this. I tried implementing the logic required to make this work properly. It's close, but it wasn't quite right. The good news is I was able to reproduce the expected behavior on a trimmed down version of the component: https://codesandbox.io/s/sharp-kilby-863y2
Should be a pretty small step to get things hooked up properly in the library.
Thanks again for the bug report. This was super helpful.

Just published 0.4.5 with this fixed


Add a a way to specify descriptions and default values using dynaconf_validaors.toml

Hi,
thank you for the library. It really improved the way I approach configuration files.
Finally I have types and proper sections.
What I am missing is schema: I would love to be able to enforce that some parameters are obligatory, their type and provide a description, also raise an exception if there is some unknown parameter is configured.
I think I could use something like marshmallow for that, but if it is part of this library, it would be great for my use-cases.
What do you think?
UPD: after looking at the docs more, I think validators would solve majority of our use-cases, but I don't see a way to specify descriptions and default values in a nice way, so that they are automatically populated in our docs.

After #146 validators will be a plugin, then we can work on this

Now we can define default values using validators,   the  validators.toml is still missing this support
Details here: https://www.dynaconf.com/validation/#providing-default-or-computed-values
We still need

Define description/help for a setting value in the validator (or  as a schema class)
Support description, default in toml validator
Add a way  to  generate initial settings file   based on  validator.

Hey.. Im a girly guy..  I wear girl clothes paint my nails hit me up<PHONE_NUMBER>
<EMAIL_ADDRESS>

Hey.. Im a girly guy..  I wear girl clothes paint my nails hit me up<PHONE_NUMBER>
<EMAIL_ADDRESS>

https://github.com/rochacbruno/dynaconf/issues/115#issuecomment-456583088


Unable to Import videocr

I am trying to run the Colab example that you have provided and It is not working.
from videocr import save_subtitles_to_file

#@title OCR parameters
input_file_path = "example.mp4" #@param {type:"string"}
output_file_path = "example.srt" #@param {type:"string"}
language_code = "ch" #@param {type:"string"}
use_gpu = False #@param {type:"boolean"}
start_time = "00:00" #@param {type:"string"}
end_time = "" #@param {type:"string"}
confidence_threshold = 50 #@param {type:"number"}
similarity_threshold = 80 #@param {type:"number"}
frames_to_skip = 0 #@param {type:"integer"}
crop_x = 40 #@param {type:"integer"}
crop_y = 650 #@param {type:"integer"}
crop_width = 890 #@param {type:"integer"}
crop_height = 69 #@param {type:"integer"}

save_subtitles_to_file(input_file_path, output_file_path, lang=language_code,
                       time_start=start_time, time_end=end_time,
                       conf_threshold=confidence_threshold, sim_threshold=similarity_threshold,
                       use_gpu=use_gpu,
                       # # Models different from the default mobile models can be downloaded here: https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.3/doc/doc_en/models_list_en.md
                       # det_model_dir='<PADDLEOCR DETECTION MODEL DIR>', rec_model_dir='<PADDLEOCR RECOGNITION MODEL DIR>',
                       # brightness_threshold=210, similar_image_threshold=1000 # filters might help
                       # use_fullframe=True, # note: videocr just assumes horizontal lines of text. vertical text scenario hasn't been implemented yet
                       frames_to_skip=frames_to_skip, # can skip inference for some frames to speed up the process
                       crop_x=crop_x, crop_y=crop_y, crop_width=crop_width, crop_height=crop_height)

and I got this error
Error: Can not import avx core while this file exists: /usr/local/lib/python3.10/dist-packages/paddle/fluid/core_avx.so
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
[<ipython-input-5-56913c3f6c54>](https://localhost:8080/#) in <cell line: 1>()
----> 1 from videocr import save_subtitles_to_file
      2
      3 #@title OCR parameters
      4 input_file_path = "example.mp4" #@param {type:"string"}
      5 output_file_path = "example.srt" #@param {type:"string"}

11 frames
[/usr/local/lib/python3.10/dist-packages/paddle/fluid/core.py](https://localhost:8080/#) in <module>
    254 if avx_supported():
    255     try:
--> 256         from . import core_avx
    257         core_avx.LoDTensor = core_avx.Tensor
    258

ImportError: /usr/local/lib/python3.10/dist-packages/paddle/fluid/core_avx.so: undefined symbol: _dl_sym, version GLIBC_PRIVATE

I think the problem is with the Python version, is because recently Colab started to use Python 3.10.

Not sure but the above error might be due to Cuda version not being compatible with the old paddlepaddle library. There was also a similar error caused by the Colab environment missing libssl. I've updated the Colab notebook to use the latest paddleocr/paddlepaddle versions and install libssl

Thank you


Value::query()

Not sure whether you're still interested in such a functionality.
My next step would be to add Value::query_mut() and then add convenience functions on top to Value::set_at("foo.bar.baz", Value::String(String::from("foo"))) for example.
If you're interested.
If I get an ACK on this, I would add more tests for this first functionality and get this into mergable state and add the other functionality after this "simple" Value::query is merged.

Another thing we might want to include: More informative error types, indicating where it failed. So we can construct messages like:
Could not execute query 'foo.bar.0.baz', because cannot execute query '0.baz' on 'String'

... if you want a thing like this! :smile:  Would be rather complex to implement, though.

Thanks for the PR! It looks like this is pretty similar lookup, though. Perhaps if this is adding functionality beyond that it could be folded into that function?

@alexcrichton Yes, it is supposed to work like lookup, though I plan to improve it and provide additional error data (as it returns a Result rather than an Option). For example, we could later return an error which says something like "I was able to walk 'foo.bar.0.baz' but the last part of your query: '...baz.thing' couldn't be found because there was an 'Array' and not a 'Table'" (maybe less verbose... but I guess you get what I mean).
Also: custom seperator, auto-create (query foo.bar.baz in a Value::Table automatically creates a table at bar and inside that a table at baz) and even more possibilities.

I'd personally feel that custom separators is a little too much into the realm of "too powerful", but a "smart insert" that auto-creates tables seems quite nice!
I'd also love if we could retrofit these APIs to return a Result with that sort of error information (seems neat to have), but that'd unfortunately require a new major version :(. In any case though I'd prefer to avoid a mirror API which does similar features with only a change in the return type.

Closing due to inactivity, but feel free to resubmit!


Cant control AUBESS smart plug

Hi
Basically I want to switch from localtuya to tyua-local, but unfortunately my devices don't work properly
Describe the bug
I have a few AUBESS WiFi smart plugs. I trying to add one of them to Tuya-Local.
To Reproduce
Try to switch off the socket. Actually the device doesn't react to the command at all, on-screen switch turning off for a few seconds and then returns to original state.
Expected behavior
Entity controls the device. Socket switching of and on.
Additional context
In Localtuya the same device works fine. And Tuya-Local immediately reflects all changes properly.
tuya_local-5d69f755f0c81f0b65945a4c0fadc8ea-Test4-6b25de2e4b88adf7d46e8b63b8722051.json.txt
home-assistant_tuya_local_2023-10-09T16-38-03.403Z.log
Thanks!
PS.
It would be nice to make a couple enhancements. What is the best way to ask them - make separate tickets?

Support Tuya cloud connection to detect devices (ip/localkey) like localtuya does
It would be nice if an entity will have somewhere attribute which device template it uses. And it would be nice to have ability to change the template without entity delete/create cycle.

PPS.
I have the same device as in this ticket and it works well from localtuya. So I'm waiting for it will be available in tyualocal
https://github.com/make-all/tuya-local/issues/1038

In the past others have found this to be caused by using the wrong device id for their devices.  In particular, for many devices, the iot.tuya.com lists "id" and "uuid", as the same values, so a lot of advice equated these, but it turns out some devices have a different "uuid" and "id", and in those cases the "id" must be used to function correctly.


Problem accessing images in browser (Undefined Buffer)

Hello
I am using the library with Angular and typescript and since version 5.4.1 (worked well on 5.4.0) i have been getting the error: "Error executing command 'IMAGE $row'. Buffer is not defined" when using images in documents.
I believe that this should be some confusion I'm passing the image data as ArrayBuffer (also fails if base64 is used).
We are passing image data on the jx context object with each image represented using the type.
export type DocxImage = {data: ArrayBuffer, extension: string, width: number, height: number};
In our template we cycle our image array and present each one using:
{{FOR row IN photos}}{{IMAGE $row}}{{END-FOR row}}
Thanks a lot for the great job with this lib, it has been a lifesaver.

Well I have fixed it temporarily in my project by setting Buffer  as ArrayBuffer, seems to fix the problem.
window.Buffer = window.ArrayBuffer

Well I have fixed it temporarily in my project by setting Buffer  as ArrayBuffer, seems to fix the problem.
window.Buffer = window.ArrayBuffer

Thanks for your report. This seems like a polyfilling issue that testing doesn't pick up because webpack polyfills/shims stuff like this more aggressively than the Angular compiler. It seems we already discussed a similar issue a while ago #135 .
I'll add it to my backlog. I think we may be able to reduce our reliance on types like Buffer that aren't portable between browser/node versions.

Thanks for your report. This seems like a polyfilling issue that testing doesn't pick up because webpack polyfills/shims stuff like this more aggressively than the Angular compiler. It seems we already discussed a similar issue a while ago #135 .
I'll add it to my backlog. I think we may be able to reduce our reliance on types like Buffer that aren't portable between browser/node versions.

https://github.com/guigrpa/docx-templates/releases/tag/v4.8.0 may help with this, as it contains a precompiled polyfilled build. LMK if you run into any issues.


Do not connect UDP sockets when broadcast is allowed

This PR fixes issue #480, as explained in this comment.
The _SelectorDatagramTransport.sendto method has to be modified so _sock.sendto is used in all cases (because there is no proper way to tell if the socket is connected or not). Could that be an
issue for connected sockets?

Please reopen this PR at https://github.com/python/cpython. This repo is going to be deleted soon.

No problem, moved to python/cpython#423.


Sound over HDMI

Hello how can I configure the sound via HDMI. I only get the sound through the internal speakers.
Many Thanks

Add property "hda-gfx" = "onboard-1"  (string) to frame buffer patch.
No further assistance from my side since this notebook uses a mini display port.


Android doesn't read 'res://' directory but can read 'user://'

Godot version:
Godot 3.2.2beta4
OS/device including version:
Android 10 / Samsung Note 9
Issue description:
Listing files in directory doesn't work on android.  Same code lists files as expected on Windows.
Steps to reproduce:
var dir = Directory.new()
print(dir.dir_exists('res://BrushTextures/'))
returns false on Android, returns True on windows

func dir_contents('res://BrushTextures/'):
	var dir = Directory.new()
	if dir.open(path) == OK:
		dir.list_dir_begin()
		var file_name = dir.get_next()
		while file_name != "":
			if dir.current_is_dir():
				print("Found directory: " + file_name)
			else:
				print("Found file: " + file_name)
			file_name = dir.get_next()
	else:
		print("An error occurred when trying to access the path.")

on Android prints("An error occurred when trying to access the path.")
on Windows prints a list of the files in the dir.
Accessing a specific file in this directory, for eg 'res://BrushTextures/Capturemasayasu.JPG'
works fine on Android and Windows.
Minimal reproduction project:

Did some more digging.
Android reads 'user://' directory properly
for some reason, when reading 'res://', Android finds [cl, images, webkit]
Very confused because Android is able to load textures from the res:// directory fine with exact paths, but can't seem to see the directory contents with dir_contents()

Put the code between ``` so that it stays formatted and readable.

Android reads 'user://' directory properly
But, when reading 'res://', Android finds [cl, images, webkit]

user:// is normal filesystem, res:// contents of assets folder inside the APK. Issue should be somewhere in: dir_access_jandroid.cpp, for loading files from the APK there are two versions for some reason: file_access_android.cpp and file_access_jandroid.cpp.

Unrelated note: something like res://BrushTextures/Capturemasayasu.JPG won't work on any platform after exporting. Texture files are converted and stored inside .import subfolder as .stex files, originals aren't packed, there will be only res://BrushTextures/Capturemasayasu.JPG.import with the link to .stex. Loading file with load or preload function by its original name will work but opening it directly won't.

Thanks for the help, would this work?
I'm working on a painting program and want to assign textures to strokes, but figure it would be too expensive to save the texture itself, so I'm saving path to the texture into the stroke so it knows which texture to load before drawing.
func list_files_in_directory(path, filter):
	print('List files')
	var files = []
	var dir = Directory.new()
	dir.open(path)
	dir.list_dir_begin()

	while true:
		var file = dir.get_next()
		if file == "":
			break
#		if file.ends_with(filter):
		files.append(file)
		var f = File.new()
	dir.list_dir_end()
	print('FILES LIST ', files)
	return files

func initialize_grid():
	brush_texture_paths = list_files_in_directory(brush_directory, filter)

	N.ViewportInfo.text = str(brush_texture_paths)
	for brush_texture in brush_texture_paths:
		var brush_texture_path = brush_directory+brush_texture
		print(brush_texture_path)
		var icon_bg = ColorRect.new()
		icon_bg.name = brush_texture
		icon_bg.size_flags_vertical = SIZE_EXPAND_FILL
		icon_bg.size_flags_horizontal = SIZE_EXPAND_FILL
		icon_bg.color = Color(.15,.15,.15,1)
		var icon_size = Vector2(rect_size.x / columns, rect_size.x/columns)
		icon_bg.rect_size = icon_size
		var icon = TextureRect.new()
		icon.texture = load(brush_texture_path)```

This is a known issue: listing directories within res:// on Android isn't feasible. You need to generate a file that contains the list of files within the directory and make sure it's exported so you can read it later.

Good to know, thanks @Calinou and @bruvzg

It possible to list directories on Android if use android.content.res.AssetManager.list with JNI instead of AAssetManager_openDir

@o01eg interested in this solution, is this something done in GDscript or changing engine code?

I did it in GDNative extension:
https://github.com/freeorion/freeorion/blob/c266a40eccd3a99a17de8fe57c36ef6ba3771665/util/Directories.cpp#L809-L861

Thanks, I ended up using method suggested in discord to create a JSON list of the files with the editor, and reference that in the Android build.

It works since Godot 3.5.

Thanks, this should indeed be fixed by the full Android scoped storage support.

@wajrou how did you get directory file listing to work? I can't seem to get listing file directories to work on my game. If I open the res:// directory, I get .import when I use directory.get_next() and directory.get_current_dir(). There is no file or directory names -- there's only .import.


port-net: Perfect Dark Plus Mod (Netplay) (WIP)

I'm a bit curious about this. I've seen this pop a few times, I wanted to see, but apart from adding the options for the Skedar and Dr. Caroll, and adding the new levels in the list, the rest such as models and level data are missing of course.
I'm not too skilled into turning the existing mod to work with this, I guess you have to make a mod version of the PD+ mod, but out from extracting a few things from the patched rom, I don't really know to make this work correctly. I know it seems more like a personal test version, but still intrigued.

@Knaxia
Sorry, I meant to create a PR in my project, but I made a mistake, so deleted.
Please check the wiki I created.
https://github.com/jonaeru/perfect_dark/wiki/How-to-Play-Mods

Oh wow, this is everything I wanted and more!
I really enjoyed playing PD+ on my actual N64 (everdrive), but being able to also have the 2 other mods and play it on PC too, that's just amazing!
Thanks a bunch for your time on this, really appreciate it!

Thank you!


Update to Chromium 95.0.4638.49

This PR updates to Chromium 95.0.4638.49.
Notable changes:

The change in chromium-upstream/missing-header-without-tflite.patch finally landed so the patch has been removed.
The kShowAppsShortcutInBookmarkBar pref now checks a feature flag, so extra/inox-patchset/0006-modify-default-prefs.patch has been updated to change the feature's value.  3111337
The FLoC patch has been updated with a couple more failsafes.
The Privacy Sandbox patch now removes the settings entry since it's no longer removed due to being disabled.
The reporting patch had a couple small changes in response to the changes made in [3053749].
remove-unused-preferences-fields.patch now includes a partial revert of [3194085] due to the removal of signin_pref_names.h.

Fixes #1695
Blog post
Change log

Am I right that 95 is still not stable? Just checking.

Linux standalone build builds and works fine. Will check Android later.

I just found that the setting pages in cr95 is now separated by sections like this:

There will probably be issues asking to reverse the change, although I don't know whether it is doable.
Also, the link to Chrome Web Store in chrome://extensions/ is not substituted. Is that expected?

I wonder why there is an empty line in patches/series? Do we need it?
https://github.com/Eloston/ungoogled-chromium/blob/147610de51f87956bdbdd4df3ae04eed2372895c/patches/series#L40

I think I'll include the ui removal changes in this PR as well instead of making that separate.  I'll add them after I push the .54 commit.

Works for me aswell

95.0.4638.54 is out


Add documentation and alias methods UntilTrue() and UntilFalse()

This PR adds:

Documentation for public methods and enums
Alias methods UntilTrue() and UntilFalse() for more expressive condition definition
Corresponding tests for these alias methods (but not too many as they call Until() anyway)

I'd also like to add a method that waits until a piece of code does not throw an exception, let me know if you'd like that, and if you want to receive that in a separate PR or as more commits on top of this one.

Nice work, I will go ahead and merge this PR.
Your additional suggestion sounds very useful indeed. If you could submit a new PR then I'd appreciate it.
Many thanks!


Exception in thread "main" java.util.zip.ZipException: when running flutter precache

MY RESULT FOR THIS....FACING same PRoblem
rohit-linux-2019@dell-Inspiron-5567:~$ flutter precache --verbose
[  +10 ms] executing: [/home/rohit-linux-2019/FlutterDevelopment/flutter/] git -c
log.showSignature=false log -n 1 --pretty=format:%H
[  +32 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] 8af6b2f038c1172e61d418869363a28dffec3cb4
[        ] executing: [/home/rohit-linux-2019/FlutterDevelopment/flutter/] git tag --contains HEAD
[ +172 ms] Exit code 0 from: git tag --contains HEAD
[   +1 ms] 1.17.5
[   +6 ms] executing: [/home/rohit-linux-2019/FlutterDevelopment/flutter/] git rev-parse
--abbrev-ref --symbolic @{u}
[   +4 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/stable
[        ] executing: [/home/rohit-linux-2019/FlutterDevelopment/flutter/] git ls-remote --get-url
origin
[   +8 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +62 ms] executing: [/home/rohit-linux-2019/FlutterDevelopment/flutter/] git rev-parse
--abbrev-ref HEAD
[   +5 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] stable
[  +57 ms]
/home/rohit-linux-2019/FlutterDevelopment/flutter/bin/cache/artifacts/gradle_wrapper/gradle/wrapper/
gradle-wrapper.jar mode: 33188 rw-r--r--.
[   +1 ms]
/home/rohit-linux-2019/FlutterDevelopment/flutter/bin/cache/artifacts/gradle_wrapper/gradlew.bat
mode: 33188 rw-r--r--.
[        ]
/home/rohit-linux-2019/FlutterDevelopment/flutter/bin/cache/artifacts/gradle_wrapper/gradlew mode:
33261 rwxr-xr-x.
[        ] /tmp/flutter_gradle_wrapper.EEYOIN/gradlew mode: 33188 rw-r--r--.
[        ] Trying to give execute permission to /tmp/flutter_gradle_wrapper.EEYOIN/gradlew.
[ +103 ms] Downloading Android Maven dependencies...
[   +7 ms] executing: /home/rohit-linux-2019/android-studio/android-studio/jre/bin/java -version
[  +76 ms] Exit code 0 from: /home/rohit-linux-2019/android-studio/android-studio/jre/bin/java
-version
[        ] openjdk version "1.8.0_242-release"
           OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
           OpenJDK 64-Bit Server VM (build 25.242-b3-6222593, mixed mode)
[   +2 ms] executing: /home/rohit-linux-2019/android-studio/android-studio/jre/bin/java -version
[  +50 ms] Exit code 0 from: /home/rohit-linux-2019/android-studio/android-studio/jre/bin/java
-version
[        ] openjdk version "1.8.0_242-release"
           OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
           OpenJDK 64-Bit Server VM (build 25.242-b3-6222593, mixed mode)
[   +5 ms] executing: /tmp/flutter_gradle_wrapper.EEYOIN/gradlew -b
/home/rohit-linux-2019/FlutterDevelopment/flutter/packages/flutter_tools/gradle/resolve_dependencies
.gradle --project-cache-dir /tmp/flutter_gradle_wrapper.EEYOIN resolveDependencies
[ +129 ms] Unzipping
/home/rohit-linux-2019/.gradle/wrapper/dists/gradle-5.6.2-all/9st6wgf78h16so49nn74lgtbb/gradle-5.6.2
-all.zip to /home/rohit-linux-2019/.gradle/wrapper/dists/gradle-5.6.2-all/9st6wgf78h16so49nn74lgtbb

                    Exception in thread "main" java.util.zip.ZipException: error in opening zip file
                    	at java.util.zip.ZipFile.open(Native Method)
                    	at java.util.zip.ZipFile.<init>(ZipFile.java:225)
                    	at java.util.zip.ZipFile.<init>(ZipFile.java:155)
                    	at java.util.zip.ZipFile.<init>(ZipFile.java:169)
                    	at org.gradle.wrapper.Install.unzip(Install.java:214)
                    	at org.gradle.wrapper.Install.access$600(Install.java:27)
                    	at org.gradle.wrapper.Install$1.call(Install.java:74)
                    	at org.gradle.wrapper.Install$1.call(Install.java:48)
                    	at
                    	org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager
                    	.java:65)
                    	at org.gradle.wrapper.Install.createDist(Install.java:48)
                    	at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
                    	at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
[   +1 ms] Failed to download the Android dependencies
[   +8 ms] Downloading Android Maven dependencies... (completed in 0.3s)
[   +9 ms] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[   +7 ms] "flutter precache" took 479ms.

flutter doctor -v
[✓] Flutter (Channel master, 1.21.0-2.0.pre.66, on Mac OS X 10.15.6 19G73, locale en-GB)
    • Flutter version 1.21.0-2.0.pre.66 at /Users/taha/Code/flutter_master
    • Framework revision 54c9441723 (2 days ago), 2020-07-17 18:56:12 -0400
    • Engine revision d327828632
    • Dart version 2.9.0 (build 2.9.0-21.0.dev 9dca49e71e)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/taha/Code/sdk
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = /Users/taha/Code/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.6, Build version 11E708
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.47.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.12.2

[✓] Connected device (6 available)
    • SM M305F (mobile)      • 32003c30dc19668f                     • android-arm64  • Android 10 (API 29)
    • Taha’s iPhone (mobile) • 00008020-001059882212002E            • ios            • iOS 13.6
    • iPhone 11 (mobile)     • AAB605C7-0569-43D6-9D8D-2AC1A9C36264 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-13-6 (simulator)
    • macOS (desktop)        • macos                                • darwin-x64     • Mac OS X 10.15.6 19G73
    • Web Server (web)       • web-server                           • web-javascript • Flutter Tools
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 83.0.4103.116

• No issues found!

Hi @rohitghosal
Looks like your gradle isn't properly downloaded or is damaged
Please go to user directory -> .gradle and delete cachesand tryflutter precache --verbose`  again and make sure you're connected to stable internet connection while doing this
I just reproduce but no issue
(base) taha@pop-os:~/Code/flutter_master$ flutter precache
Downloading Dart SDK from Flutter engine d32782863249a3d7492eb7a550d492b8fa0f6f74...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  253M  100  253M    0     0  4274k      0  0:01:00  0:01:00 --:--:-- 5962k
Building flutter tool...
Downloading Material fonts...                                       1.4s
Downloading Gradle Wrapper...                                       0.9s
Downloading Android Maven dependencies...                           4.3s
Downloading android-arm-profile/linux-x64 tools...                  1.5s
Downloading android-arm-release/linux-x64 tools...                  1.9s
Downloading android-arm64-profile/linux-x64 tools...                1.2s
Downloading android-arm64-release/linux-x64 tools...                4.0s
Downloading android-x64-profile/linux-x64 tools...                  1.6s
Downloading android-x64-release/linux-x64 tools...                  1.6s
Downloading android-x86 tools...                                    7.9s
Downloading android-x64 tools...                                    9.2s
Downloading android-arm tools...                                    4.8s
Downloading android-arm-profile tools...                            2.7s
Downloading android-arm-release tools...                            2.4s
Downloading android-arm64 tools...                                  3.9s
Downloading android-arm64-profile tools...                          3.1s
Downloading android-arm64-release tools...                          2.6s
Downloading android-x64-profile tools...                            3.4s
Downloading android-x64-release tools...                            2.5s
Downloading android-x86-jit-release tools...                        5.3s
Downloading package sky_engine...                                   1.3s
Downloading flutter_patched_sdk tools...                            7.0s
Downloading flutter_patched_sdk_product tools...                    3.9s
Downloading linux-x64 tools...                                      6.5s
Downloading linux-x64/font-subset tools...

flutter doctor -v
[✓] Flutter (Channel master, 1.21.0-2.0.pre.66, on Linux, locale en_US.UTF-8)
    • Flutter version 1.21.0-2.0.pre.66 at /home/taha/Code/flutter_master
    • Framework revision 54c9441723 (3 days ago), 2020-07-17 18:56:12 -0400
    • Engine revision d327828632
    • Dart version 2.9.0 (build 2.9.0-21.0.dev 9dca49e71e)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at /home/taha/Code/sdk
    • Platform android-30, build-tools 30.0.1
    • ANDROID_HOME = /home/taha/Code/sdk
    • Java binary at: /home/taha/Code/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • clang version 10.0.0-4ubuntu1
    • cmake version 3.16.3
    • ninja version 1.10.0
    • pkg-config version 0.29.1

[✓] Android Studio (version 4.0)
    • Android Studio at /home/taha/Code/android-studio
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.47.2)
    • VS Code at /usr/share/code
    • Flutter extension version 3.12.2

[✓] Connected device (3 available)
    • Linux (desktop)  • linux      • linux-x64      • Linux
    • Web Server (web) • web-server • web-javascript • Flutter Tools
    • Chrome (web)     • chrome     • web-javascript • Google Chrome 84.0.4147.89

• No issues found!

Thank you

I can't understand the proper way...plz show me...the way is it under
flutter project or through terminal!
On Mon, 20 Jul, 2020, 16:50 Taha Tesser<EMAIL_ADDRESS>wrote:

Hi @rohitghosal https://github.com/rohitghosal
Looks like your gradle isn't properly downloaded or is damaged
Please go to user directory -> .gradle and delete cachesand tryflutter
precache --verbose` again and make sure you're connected to stable internet
connection while doing this
I just reproduce but no issue
(base) taha@pop-os:~/Code/flutter_master$ flutter precache
Downloading Dart SDK from Flutter engine d32782863249a3d7492eb7a550d492b8fa0f6f74...
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed

100  253M  100  253M    0     0  4274k      0  0:01:00  0:01:00 --:--:-- 5962k
Building flutter tool...
Downloading Material fonts...                                       1.4s
Downloading Gradle Wrapper...                                       0.9s
Downloading Android Maven dependencies...                           4.3s
Downloading android-arm-profile/linux-x64 tools...                  1.5s
Downloading android-arm-release/linux-x64 tools...                  1.9s
Downloading android-arm64-profile/linux-x64 tools...                1.2s
Downloading android-arm64-release/linux-x64 tools...                4.0s
Downloading android-x64-profile/linux-x64 tools...                  1.6s
Downloading android-x64-release/linux-x64 tools...                  1.6s
Downloading android-x86 tools...                                    7.9s
Downloading android-x64 tools...                                    9.2s
Downloading android-arm tools...                                    4.8s
Downloading android-arm-profile tools...                            2.7s
Downloading android-arm-release tools...                            2.4s
Downloading android-arm64 tools...                                  3.9s
Downloading android-arm64-profile tools...                          3.1s
Downloading android-arm64-release tools...                          2.6s
Downloading android-x64-profile tools...                            3.4s
Downloading android-x64-release tools...                            2.5s
Downloading android-x86-jit-release tools...                        5.3s
Downloading package sky_engine...                                   1.3s
Downloading flutter_patched_sdk tools...                            7.0s
Downloading flutter_patched_sdk_product tools...                    3.9s
Downloading linux-x64 tools...                                      6.5s
Downloading linux-x64/font-subset tools...
flutter doctor -v
[✓] Flutter (Channel master, 1.21.0-2.0.pre.66, on Linux, locale en_US.UTF-8)
• Flutter version 1.21.0-2.0.pre.66 at /home/taha/Code/flutter_master

• Framework revision 54c9441723 (3 days ago), 2020-07-17 18:56:12 -0400

• Engine revision d327828632

• Dart version 2.9.0 (build 2.9.0-21.0.dev 9dca49e71e)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
• Android SDK at /home/taha/Code/sdk

• Platform android-30, build-tools 30.0.1

• ANDROID_HOME = /home/taha/Code/sdk

• Java binary at: /home/taha/Code/android-studio/jre/bin/java

• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

• All Android licenses accepted.

[✓] Chrome - develop for the web
• Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
• clang version 10.0.0-4ubuntu1

• cmake version 3.16.3

• ninja version 1.10.0

• pkg-config version 0.29.1

[✓] Android Studio (version 4.0)
• Android Studio at /home/taha/Code/android-studio

• Flutter plugin version 47.1.2

• Dart plugin version 193.7361

• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.47.2)
• VS Code at /usr/share/code

• Flutter extension version 3.12.2

[✓] Connected device (3 available)
• Linux (desktop)  • linux      • linux-x64      • Linux

• Web Server (web) • web-server • web-javascript • Flutter Tools

• Chrome (web)     • chrome     • web-javascript • Google Chrome 84.0.4147.89

• No issues found!
Thank you
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/61808#issuecomment-660966473,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQJZOU5KX5JVSHBOBHJV4IDR4QR7PANCNFSM4PA4VG5A
.

Hi @rohitghosal
User directory is  inside your home directory, .gradle will be hidden, on Ubuntu you can type control + h to unhide hidden folders and here you can see .gradle folder
Inside .gradle -> delete caches folder  and  after this, try executing flutter precache --verbose  from terminal and make sure you're connected to stable internet connection while doing this

Without additional information we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.


Already in bind error still prevails

I did everything like in solution to my issue was said but i still get same error even after disabling ICS

A program on your PC is already using UDP port 53 and if it's not ICS then I don't know what it is.
You could try running netstat -aof | findstr :53 in a command prompt to find the process ID of the program that's using it and then kill it using task manager.

umm im using windows 10

well i did run and it showed this
TCP    <IP_ADDRESS>:5357           genuine.adobe.com:0    LISTENING       4
TCP    <IP_ADDRESS>:53           genuine.adobe.com:0    LISTENING       4536
TCP    [::]:5357              DESKTOP-46EMNAI:0      LISTENING       4
TCP    [::1]:53               DESKTOP-46EMNAI:0      LISTENING       4536
UDP    <IP_ADDRESS>:5353           :                                    4712
UDP    <IP_ADDRESS>:5353           :                                    2172
UDP    <IP_ADDRESS>:5353           :                                    4712
UDP    <IP_ADDRESS>:5355           :                                    2172
UDP    <IP_ADDRESS>:53768          :                                    2876
UDP    <IP_ADDRESS>:53837          :                                    3540
UDP    <IP_ADDRESS>:53           :                                    4536
UDP    [::]:5353              :                                    4712
UDP    [::]:5353              :                                    2172
UDP    [::]:5355              :                                    2172
UDP    [::1]:53               :                                    4536

The number on the far right is the process ID, so it seems as though process 4536 is what's  hogging the port.
You can find and terminate the process in question at Task Manager -> Details or by running the command
taskkill /f /pid 4536 in a command prompt.

it worked but after i rest pc it had diffrent error
2024-03-22 19:38:03.749 ERROR : Could not start DNS server
java.net.BindException: Address already in use: bind
at sun.nio.ch.Net.bind0(Native Method) ~[?:?]
at sun.nio.ch.Net.bind(Net.java:565) ~[?:?]
at sun.nio.ch.DatagramChannelImpl.bindInternal(DatagramChannelImpl.java:1329) ~[?:?]
at sun.nio.ch.DatagramChannelImpl.bind(DatagramChannelImpl.java:1299) ~[?:?]
at io.netty.util.internal.SocketUtils$6.run(SocketUtils.java:133) ~[entralinked.jar:?]
at io.netty.util.internal.SocketUtils$6.run(SocketUtils.java:130) ~[entralinked.jar:?]
at java.security.AccessController.doPrivileged(AccessController.java:571) ~[?:?]
at io.netty.util.internal.SocketUtils.bind(SocketUtils.java:130) ~[entralinked.jar:?]
at io.netty.channel.socket.nio.NioDatagramChannel.doBind0(NioDatagramChannel.java:201) ~[entralinked.jar:?]
at io.netty.channel.socket.nio.NioDatagramChannel.doBind(NioDatagramChannel.java:196) ~[entralinked.jar:?]
at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:562) ~[entralinked.jar:?]
at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334) ~[entralinked.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506) ~[entralinked.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:491) ~[entralinked.jar:?]
at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973) ~[entralinked.jar:?]
at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:260) ~[entralinked.jar:?]
at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356) ~[entralinked.jar:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[entralinked.jar:?]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[entralinked.jar:?]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[entralinked.jar:?]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503) ~[entralinked.jar:?]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[entralinked.jar:?]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[entralinked.jar:?]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[entralinked.jar:?]
at java.lang.Thread.run(Thread.java:1583) ~[?:?]

does the program always looks for new port?

It does not.
Whatever keeps using port 53 is probably starting automatically every time you turn on your PC, so you'll have to either do something about that or find & kill the process every time.

You mean kill evey process what has 53 in it?
On Fri, Mar 22, 2024, 20:20 Kuroppoi @.***> wrote:

It does not.
Whatever keeps using port 53 is probably starting automatically every time
you turn on your PC, so you'll have to either do something about that or
find & kill the process every time.
—
Reply to this email directly, view it on GitHub
https://github.com/kuroppoi/entralinked/issues/47#issuecomment-2015761771,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARF4YJVICV3RNLXDHAKKQBLYZSAAZAVCNFSM6AAAAABFB4SEM2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJVG43DCNZXGE
.
You are receiving this because you authored the thread.Message ID:
@.***>

You just follow the instructions again that I gave you earlier.

I know but every time i boot up the program it creates different dns
On Fri, Mar 22, 2024, 20:30 Kuroppoi @.***> wrote:

You just follow the instructions again that I gave you earlier.
—
Reply to this email directly, view it on GitHub
https://github.com/kuroppoi/entralinked/issues/47#issuecomment-2015773970,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARF4YJWFKSYJ2QMVECXG44TYZSBEJAVCNFSM6AAAAABFB4SEM2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJVG43TGOJXGA
.
You are receiving this because you authored the thread.Message ID:
@.***>

Weird.
Are you maybe using a VPN?

No I don't have access to it because it's oaid
On Fri, Mar 22, 2024, 23:57 Kuroppoi @.***> wrote:

Weird.
Are you maybe using a VPN?
—
Reply to this email directly, view it on GitHub
https://github.com/kuroppoi/entralinked/issues/47#issuecomment-2016055182,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARF4YJXQAXFKXA6LOBIDEITYZSZL3AVCNFSM6AAAAABFB4SEM2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJWGA2TKMJYGI
.
You are receiving this because you authored the thread.Message ID:
@.***>

But does Game Sync work or not?

I haven't tested yet
On Sat, Mar 23, 2024, 14:53 Kuroppoi @.***> wrote:

But does Game Sync work or not?
—
Reply to this email directly, view it on GitHub
https://github.com/kuroppoi/entralinked/issues/47#issuecomment-2016501659,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARF4YJTKKVS5YL7J2VDBHADYZWCPJAVCNFSM6AAAAABFB4SEM2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJWGUYDCNRVHE
.
You are receiving this because you authored the thread.Message ID:
@.***>

For me taskkill didn't help because the PID that was bound to port 53 was an instance of svchost.exe which just got restarted when I killed it, so I did some more digging. The culprit turned out to be two Windows services (Host Network Service and Internet Connection Sharing). I disabled those and that got entralinked working.


Logging into MLFlow for Confusion Matrix

I am using the MLFlow vis backend to log my model coco metric into MLFlow but within the coco metric, it doesnt have the result of confusion matrix that would allow me to derive the average precision and average recall.
How do I log the result from tools/analysis_tools/confusion_matrix.py into the MLFlow?

I believe this is really useful feature. So, in test, there is an option to compute confusion matrix.

Update: I am currently extracting the precision and recall from the cocometrics's cocoeval, and logging them into mlflow through the typical visbackend.
But, it doesnt work for runner.test(). When running runner.test(), no metrics from cocometrics was actually logged into MLflow. I believe this is another issue, relating to https://github.com/open-mmlab/mmengine/issues/1482


[opentelemetry-collector] Remove default resource values

Pushing this forward since https://github.com/open-telemetry/opentelemetry-helm-charts/pull/645 went stale :)
and I couldnt update https://github.com/open-telemetry/opentelemetry-helm-charts/pull/711 this PR
Closes https://github.com/open-telemetry/opentelemetry-helm-charts/issues/644
Updating patch version and added note in Upgrading doc.

I think I actually need to work from fork not branch in this repo?
Oh definitely.  Sorry I didn't even notice the PRs weren't coming from a fork haha


Typing sounds

Hi guys,
In DIalogic 1 there was a feature made I think by Tim, that allowed us to add sound to the text while being displayed in the text box.
It would be awesome if you could re implement it and also expand it letting us to set different sounds for each character.
Hope you have a nice day.

While not tightly integrated into the Text Event this time around, the functionality still exists by adding a vocal event before a text event.
There is also a PR for 'advanced' 'auto-advance' functionality that should be merged 'soon' that makes sure the vocal event finishes before moving on.
While not the exact functionality, I think it does still cover most cases.

This is more about typing sounds I believe and contrary to how it sounds in the original comment, typing sounds ARE already implemented in 2.x. However they are not exposed to the default layout. If I believe correctly that was what this is about: Exposing the typing sound settings on the default layout (and possibly the other layouts as well).


Formatter: one interface per line

Via @tombentley:

One interface per line? (Bearing in mind that some of the filters we might write could implemented lots of these interfaces)

We've established checkstyle rules for the project and have those enforced by the build.  I'm not aware of a need to format filter implementations specially as this time. Closing.


Need more information for the difference between a sampler and ask-and-tell.

Feature Request
I'm new to Evolution Strategy and I don't understand the difference between a sampler and ask-and-tell interface.

Sampler is a high-level interface intended to perform optimizations from Optuna. ask-and-tell interface is a low-level interface intended to perform optimizations without Optuna.


⚠ Bofrost.at has degraded performance

In bb77a25, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2160 ms

Resolved: Bofrost.at performance has improved in e688f82 after 22 minutes.


Write changes to /etc/ssh/sshd_config.d/55-CIS.conf instead of /etc/ssh/sshd_config

Feature Request or Enhancement

Feature []
Enhancement [X]

Summary of Request
RHEL 9 supports drop-in configuration files for sshd. Writing configuration changes to /etc/ssh/sshd_config prevents future upgrades writing a new version of the config file because it is no longer owned by the openssh-server package.
Describe alternatives you've considered
I've configured sshd the same way this role is doing it.  The issue becomes the stability of the overall configuration when you have multiple roles adding/changing the contents of the file.
Suggested Code
I would suggest you write any changes to /etc/ssh/sshd_confi.d/55-CIS.conf instead of the file owned by the openssh-server.

Another option would be to replace the hard-coded path to the /etc/sshd_config file with a var like rhel9_cis_sshd_config_file and let me override the path when I call the role.  Task names would likely have to be updated as well.  I've never forked someone else's repo to provide update via PR before, but I can give it a shot if that is what you prefer.

hi @smatterchew
Thank you for raising this issue. This is very likely to be included in the RHEL9-cis Benchmark when it gets released. I have seen part of the STIG which is often similar and they are adopting this new option.
This may work well as a new template file.
We will need to align all the audit checks as well. Hopefully will get a chance to look into this soon.
If you wanted to fork it and update it in your own branch and create PR happy to go through this with you. We do ask that each commit you make is signed-off-by and gpg signed.
kindest regards
uk-bolly