Using .resx in .NET Core 1.1.0 is not working on Linux (Ubuntu 16.04)

From @deepak-khopade-isdr on March 10, 2017 20:8
Using .resx in .NET Core 1.1.0 is not working on Linux (Ubuntu 16.04) as per explained below. Have spent half of the day making it work, but seems not working on Linux.
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization
Copied from original issue: dotnet/corefx#16985

From @tarekgh on March 10, 2017 22:15
@deepak-khopade-isdr is this specific to asp.net or you cannot do it in general?

Just FYI - when tried to see all string values under _localizer.GetAllStrings(), got an error below:
      An unhandled exception has occurred while executing the request
System.Resources.MissingManifestResourceException: No manifests exist for the current culture.
   at Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.GetResourceNamesFromCultureHierarchy(CultureInfo startingCulture)
   at Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.<GetAllStrings>d__14.MoveNext()
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
   at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)
   at Microsoft.AspNetCore.Mvc.Formatters.JsonOutputFormatter.WriteObject(TextWriter writer, Object value)
   at Microsoft.AspNetCore.Mvc.Formatters.JsonOutputFormatter.<WriteResponseBodyAsync>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeResultAsync>d__30.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeNextResultFilterAsync>d__28.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ResultExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeNextResourceFilter>d__22.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ResourceExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeAsync>d__20.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Builder.RouterMiddleware.<Invoke>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.<Invoke>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware.<Invoke>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.<Invoke>d__7.MoveNext()
fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[0]
      An unhandled exception has occurred: No manifests exist for the current culture.
System.Resources.MissingManifestResourceException: No manifests exist for the current culture.
   at Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.GetResourceNamesFromCultureHierarchy(CultureInfo startingCulture)
   at Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.<GetAllStrings>d__14.MoveNext()
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
   at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)
   at Microsoft.AspNetCore.Mvc.Formatters.JsonOutputFormatter.WriteObject(TextWriter writer, Object value)
   at Microsoft.AspNetCore.Mvc.Formatters.JsonOutputFormatter.<WriteResponseBodyAsync>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeResultAsync>d__30.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeNextResultFilterAsync>d__28.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ResultExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeNextResourceFilter>d__22.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ResourceExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeAsync>d__20.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Builder.RouterMiddleware.<Invoke>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.<Invoke>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware.<Invoke>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.<Invoke>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.<Invoke>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>d__6.MoveNext()
fail: Microsoft.AspNetCore.Server.Kestrel[13]
      Connection id "0HL38PTDRA7VN": An unhandled exception was thrown by the application.
System.Resources.MissingManifestResourceException: No manifests exist for the current culture.
   at Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.GetResourceNamesFromCultureHierarchy(CultureInfo startingCulture)
   at Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.<GetAllStrings>d__14.MoveNext()
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
   at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)
   at Microsoft.AspNetCore.Mvc.Formatters.JsonOutputFormatter.WriteObject(TextWriter writer, Object value)
   at Microsoft.AspNetCore.Mvc.Formatters.JsonOutputFormatter.<WriteResponseBodyAsync>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeResultAsync>d__30.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeNextResultFilterAsync>d__28.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ResultExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeNextResourceFilter>d__22.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ResourceExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeAsync>d__20.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Builder.RouterMiddleware.<Invoke>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.<Invoke>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware.<Invoke>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.<Invoke>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.<Invoke>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.<Invoke>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.<Invoke>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.<RequestProcessingAsync>d__2.MoveNext()

Just tried with ASP.NET Web API and its not working; haven't tried in a class lib project. Any suggestions out there?

No error, just returning not found. In my controller, I am trying to load the error message from .resx file and its just returning below:
{
  "Name": "GET_COLOR_404",
  "Value": "GET_COLOR_404",
  "ResourceNotFound": true
}

Content in .resx file:
<?xml version="1.0" encoding="utf-8"?>
<root>
    <data name="GET_COLOR_404">
        <value>Color presets not found.</value>
    </data>
    <data name="COLOR_PATCH_400_NULL">
        <value>Color settings cannot be null.</value>
    </data>
    <data name="COLOR_PATCH_400_NOT_UPDATED">
        <value>No data was updated.</value>
    </data>
</root>

Have registered everything as expected in Startup.cs and have injected the IStringLocalizer<ColorsController> localizer in my controller and simply trying to use it like below:
return NotFound(localizer["GET_COLOR_404"]);

From @davidfowl on March 11, 2017 22:12
@deepak-khopade-isdr What exactly doesn't work? What error do you get?

From @karelz on March 13, 2017 16:56
@tarekgh FYI: It's super-easy to move issues these days, even for us: https://github-issue-mover.appspot.com/

Alright... will do. Thanks.

From @tarekgh on March 13, 2017 15:29
@deepak-khopade-isdr could you please move this issue to the asp.net repo instead just to get quicker responses? Thanks.

@ryanbrandenburg

I think this a duplicate for issue https://github.com/aspnet/Localization/issues/314, so please follow up with this https://github.com/aspnet/Localization/issues/343

Yeah, I started responding on https://github.com/aspnet/Home/issues/1965, closing this as a dupe of that.


Add feedback widget to new UI

It might be helpful to launch the new PyPI design with a feedback sidebar widget, ala https://www.feedbackify.com/
We would need to make it explicit that bugs should still be logged in the issue tracker.
This would  be a cheap way to get some UX/UI feedback - anything that comes up frequently could then be added to the issue tracker and subsequently addressed.

I am not sure what to do here - UserVoice (https://www.uservoice.com/widget/) is probably the best on the market, but we would need to ask for sponsorship...
Otherwise, I want a widget that is responsive, so that rules out many of the other commercial solutions.  I can't seem to find any open source alternatives...

This might be helpful: https://www.quora.com/What-is-the-best-website-feedback-widget-available-for-free

It has come to my attention (thanks to a usability audit from @xavierdutreilh) that the Github issue tracker can be a problem for blind users - this makes the installation of an alternative feedback mechanism even more important.
We will need to ensure that any widget chosen is easy to use for blind/vision impaired users.

ping @dstufft on this.  Any update?

Closing this issue as I have instead decided to link to a Google form from the help page :)


Not receiving data subscribed from topic

Hi, I am using Arduino Uno and ESP-01 with
AT version: 1.5.0
SDK version: 2.1 &
Bin version : 1.5.1
I am able to connect, disconnect, publish, subscribe and unsubscribe but not receiving data from MQTT server for the subscribed topic. I tried connecting using MQTTBox in that I am receiving data properly. So I think the mistake may be in the code I have written. So I have uploaded the code here
I have not provided the domain, username and password for some reasons
#include <SoftwareSerial.h>
#include <WiFiEsp.h>
#include <WiFiEspClient.h>
#include <PubSubClient.h>
#include "ArduinoJson.h"

#define WIFI_AP         "My AP"
#define WIFI_PASSWORD   "MyPASSWORD"
#define MQTT_BROKER     "iothub.domain.net" // Don't want to share
#define PUBLISH_TOPIC   "fwent/edge/inbound"
#define SUBSCRIBE_TOPIC "fwent/edge/outbound"

// Function decleration
void InitWiFi();
void callback(char* topic, byte* payload, unsigned int length);
void reconnect();

// Initialize
WiFiEspClient espClient;
SoftwareSerial esp01(9, 8); // RX, TX
PubSubClient mqtt(espClient);
DynamicJsonDocument jsonData(170);

char payload[170];
int status = WL_IDLE_STATUS, flag = 0;

void setup() {
  Serial.begin(9600);
  InitWiFi();

  // Connect to MQTT Broker
  mqtt.setServer(MQTT_BROKER, 1883);
  // Set callback to receive payload
  mqtt.setCallback(callback);

  // JSON payload
  jsonData["dev_eui"] = "123456789";
  jsonData["client_id"] = "123456789";
  jsonData["snr"] = "25%";
  jsonData["switch"] = "off";
  jsonData["battery_level"] = 62;
  jsonData["temperature"] = 60.5;
  jsonData["humidity"] = 85;

  serializeJson(jsonData, payload);
  Serial.println(payload);
}

void loop() {
  status = WiFi.status();

  if (status != WL_CONNECTED) {
    while (status != WL_CONNECTED) {
      Serial.print("Message: Connecting to ");
      Serial.println(WIFI_AP);

      // Connect to network
      status = WiFi.begin(WIFI_AP, WIFI_PASSWORD);
      delay(500);
    }
  }

  // Check for connection
  if (!flag && !mqtt.connected())
    reconnect();

  if (Serial.available()) {
    char ch = Serial.read();
    if (ch == 'p') {
      // Publish your data here
      if (mqtt.publish(PUBLISH_TOPIC, payload)) {
        Serial.print("Published: ");
        Serial.println(payload);
      }
    }
    else if (ch == 's') {
      // Subscribe to Topic
      if (mqtt.subscribe(SUBSCRIBE_TOPIC)) {
        Serial.print("Message: Subscribed to topic ");
        Serial.println(SUBSCRIBE_TOPIC);
      }
    }
    else if (ch == 'u') {
      // Unsubscribe from topic
      if (mqtt.unsubscribe(SUBSCRIBE_TOPIC)) {
        Serial.print("Message: Unsubscribed from topic ");
        Serial.println(SUBSCRIBE_TOPIC);
      }
     }
     else if (ch == 'd') {
      flag = 1;
      mqtt.disconnect();
      Serial.println("Message: Disconnected from MQTT");
     }
     else if (ch == 'c')
      flag = 0;
  }

  mqtt.loop();
}

void InitWiFi() {
  // Initialize serial for ESP module
  esp01.begin(2400);

  // Initialize ESP module
  WiFi.init(&esp01);

  // check for the presence of the shield
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("Error: WiFi shield not present");

    // Blocking here only
    while (true);
  }
}

void reconnect() {
  // Loop untill reconnect
  while (! mqtt.connected()) {
    Serial.println("Message: Connecting to MQTT Broker...");
    //                 Client ID      User Name   Password
    if (mqtt.connect("123456789" , "mynamehere", "mypasshere"))
      Serial.println("Message: Connected to MQTT");
  }
}

void callback(char* topic, byte* payload, unsigned int length) {
  Serial.print("Message arrived [");
  Serial.print(topic);
  Serial.print("] ");

  for (int i = 0; i < length; i++) {
    Serial.print((char)payload[i]);
  }

  Serial.println();
}

Does it work if you try increasing the buffer size?
mqtt.setServer(MQTT_BROKER, 1883);
mqtt.setCallback(callback);
mqttClient.setBufferSize(1024);

Hi friend I tried with these but same problem. Which version of AT Firmware are you using? Which version of PubSubClient you are using? Anyone who have working code can please share here

I got it working when I directly upload the sketch to ESP-01 using serial interface. By using Generic ESP8266 Module in Arduino Board Manager and by changing the header file to ESP8266WiFi.h instead of WiFiEsp.h and WiFiEspClient.h. Now receiving message from subscribed topic.


Fix returning tuple subclass from a view function

Fixes #52.

Coverage remained the same at 100.0% when pulling 498e0412dd6b6b78a144330a7a7dbb765ac61d2a on fix_52_view_func_return_tuple_subclass into 3aced345b1ad8cc8ac0aa6f0b38cf0b8bc54538c on master.

Coverage remained the same at 100.0% when pulling 498e0412dd6b6b78a144330a7a7dbb765ac61d2a on fix_52_view_func_return_tuple_subclass into 3aced345b1ad8cc8ac0aa6f0b38cf0b8bc54538c on master.

Coverage remained the same at 100.0% when pulling 498e0412dd6b6b78a144330a7a7dbb765ac61d2a on fix_52_view_func_return_tuple_subclass into 3aced345b1ad8cc8ac0aa6f0b38cf0b8bc54538c on master.


[Suggestion] Add a pattern which allows other players to use per-player patterns on a wisp

For example, Consume Wisp and Manager Purification would work on a "friendly wisp" without penalty.
Obviously the wisp being made friendly would need to cast this.
Naming suggestions:

Friendly Gambit
Become Friendly
Extroversion (make friendly) and Introversion (make not friendly)

implemented for the next version


Run Snapshot tests in parallel

It would be great to be able to run all tests on X devices at the same time.
Is there a way to do it nicely?
Last time I tried to start multiple fastlane scan the snapshots were inconsistent.

Something like this ?
xcodebuild -workspace XXX.xcworkspace -scheme "XXXSnapShotTests" -destination name="iPhone 5" -destination name="iPhone 8" -destination name="iPhone 8 Plus" -destination name="iPhone 11 Pro" -destination name="iPhone 11 Pro Max" clean test

How different is it compared to our first approach?
We don't know why the snapshots actually end up being inconsistent.
I think information about that aspect would help to find a great solution


CheckName IsWord() when upgrading from v4 to v5

.NET 4.7, LiteDB v5
I have a v4 DB and when upgrading to v5 I get the exception InvalidCollectionName "Use only [a-Z$_]" in
    public static void CheckName(string name, HeaderPage header)
    {
        if (Encoding.UTF8.GetByteCount(name) > header.GetAvaiableCollectionSpace()) throw LiteException.InvalidCollectionName(name, "There is no space in header this collection name");
        if (!name.IsWord()) throw LiteException.InvalidCollectionName(name, "Use only [a-Z$_]");
        if (name.StartsWith("$")) throw LiteException.InvalidCollectionName(name, "Collection can't starts with `$` (reserved for system collections)");
    }

The problem is when I comment out the line, I can upgrade the DB to v5, but I cannot read collections starting with a digit, not a letter.
So a collection name "S18Docs" works, but "18SDocs" do not work. That breaks backwards compatibility and makes upgrading to v5 very hard.
I am happy to send my small DB to debug the problem?

Thank you for your answer. Seems in Transact SQL names are not allowed to start with a digit, therefore it might be good practice to change the collection names anyway.


Bug: attribution of entries in threads appears to be buggy?

As you can see in the example below, @jimpick's entry has been attributed to @neauoire somehow.

Can anyone confirm this for me?

I was seeing similar thread weirdness the other day

Fixed by @kodedninja

@neauoire I don't think so :smile: the one I fixed is that you weren't able to quote yourself. Or are these related?

Oh, I misread what the new code was doing. I'll have a look at this one then 👍

Another example:


Http check

 Issue by kylebrandt
Monday Oct 06, 2014 at 16:24 GMT
Originally opened as https://github.com/bosun-monitor/scollector/pull/68

kylebrandt included the following code: https://github.com/bosun-monitor/scollector/pull/68/commits

So old it would just be time to start from scratch.


Do you have an example for Sagemaker or Documentation?

Confirm by changing [ ] to [x] below:

[x] I've gone though Developer Guide and API reference
[x] I've searched for previous similar issues and didn't find any solution

Platform/OS/Hardware/Device
What are you running the sdk on?
MacOS Mojave
Describe the question
I'm trying to use sagemaker but i'm getting linker errors. You do not provide any examples in examples folder. Is this available in the sdk?
Logs/output
[ 83%] Building CXX object CMakeFiles/VideoAnalysis.dir/src/Sagemaker.cpp.o
[100%] Linking CXX executable VideoAnalysis
Undefined symbols for architecture x86_64:
"Aws::SageMakerRuntime::SageMakerRuntimeClient::SageMakerRuntimeClient(std::__1::shared_ptrAws::Auth::AWSCredentialsProvider const&, Aws::Client::ClientConfiguration const&)", referenced from:
std::__1::__compressed_pair_elem<Aws::SageMakerRuntime::SageMakerRuntimeClient, 1, false>::__compressed_pair_elem<std::__1::shared_ptrAws::Auth::DefaultAWSCredentialsProviderChain&&, Aws::Client::ClientConfiguration&, 0ul, 1ul>(std::__1::piecewise_construct_t, std::__1::tuple<std::__1::shared_ptrAws::Auth::DefaultAWSCredentialsProviderChain&&, Aws::Client::ClientConfiguration&>, std::__1::__tuple_indices<0ul, 1ul>) in Sagemaker.cpp.o
"Aws::SageMakerRuntime::SageMakerRuntimeClient::~SageMakerRuntimeClient()", referenced from:
std::__1::__compressed_pair_elem<Aws::SageMakerRuntime::SageMakerRuntimeClient, 1, false>::~__compressed_pair_elem() in Sagemaker.cpp.o
"Aws::SageMakerRuntime::Model::InvokeEndpointRequest::InvokeEndpointRequest()", referenced from:
Sagemaker::infer(std::__1::shared_ptr) in Sagemaker.cpp.o
"Sagemaker::_ALLOCATION_TAG", referenced from:
Sagemaker::Sagemaker() in Sagemaker.cpp.o
"vtable for Aws::SageMakerRuntime::Model::InvokeEndpointRequest", referenced from:
Aws::SageMakerRuntime::Model::InvokeEndpointRequest::~InvokeEndpointRequest() in Sagemaker.cpp.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [VideoAnalysis] Error 1
make[1]: *** [CMakeFiles/VideoAnalysis.dir/all] Error 2
make: *** [all] Error 2
10:01:37: The process "/usr/local/Cellar/cmake/3.16.5/bin/cmake" exited with code 2.
Error while building/deploying project Video_Analysis (kit: Desktop Qt 5.12.5 clang 64bit)
When executing step "CMake Build"
To enable logging, set the following system properties:
REMEMBER TO SANITIZE YOUR PERSONAL INFO
options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Trace;
Aws::InitAPI(options)

Hi @braca51e ,
We sadly don't have one ready, but here's a super basic example on how to create a notebook instance in sagemaker :
#include <aws/core/Aws.h>
#include <aws/core/utils/logging/LogLevel.h>
#include <aws/core/client/ClientConfiguration.h>
#include <aws/sagemaker/SageMakerClient.h>
#include <aws/sagemaker/model/CreateNotebookInstanceRequest.h>
#include <aws/sagemaker/model/CreateNotebookInstanceResult.h>

#include <iostream>

using namespace std;
using namespace Aws;

int main(){
    SDKOptions options;
    options.loggingOptions.logLevel = Utils::Logging::LogLevel::Trace;
    InitAPI(options);
    {
        Client::ClientConfiguration sageconfig("default");
        SageMaker::SageMakerClient myClient(sageconfig);
        SageMaker::Model::CreateNotebookInstanceRequest nowork;

        nowork.WithNotebookInstanceName("myInstance");
        nowork.WithInstanceType(SageMaker::Model::InstanceType::ml_t2_medium);
        nowork.WithRoleArn("***Write your own role Arn here***");
        auto outcome = myClient.CreateNotebookInstance(nowork);
        if(outcome.IsSuccess()){
            cout<<"the notebook instance"<< outcome.GetResult().GetNotebookInstanceArn() << "was succesfully created"<<endl;
        }else{
            cout<<"error: " << outcome.GetError() << endl;
        }

    }ShutdownAPI(options);
return 0;
}

Hope this helps, let me know if there's anything specific you're trying to do too. I might not be able to do complicated samples for you but simple/generic actions like this should be fine.

@KaibaLopez Thanks for the answer this is very helpful. This is very helpful.
I'm trying to call an endpoint that I already deployed in Sagemaker. Having an example for InvokeEndpoint would be great!

@KaibaLopez this is what I'm trying to compile:
#include <aws/core/Aws.h>
#include <aws/core/utils/logging/LogLevel.h>
#include <aws/core/utils/Outcome.h>
#include <aws/core/client/ClientConfiguration.h>
#include <aws/sagemaker-runtime/SageMakerRuntimeClient.h>
#include <aws/sagemaker-runtime/model/InvokeEndpointRequest.h>
#include <aws/sagemaker-runtime/model/InvokeEndpointResult.h>

#include <iostream>

using namespace std;
using namespace Aws;

int main(){
    SDKOptions options;
    options.loggingOptions.logLevel = Utils::Logging::LogLevel::Trace;
    InitAPI(options);
    {
        Client::ClientConfiguration sageconfig("default");
        std::shared_ptr<SageMakerRuntime::SageMakerRuntimeClient> _sagemakerClient = MakeShared<SageMakerRuntime::SageMakerRuntimeClient>("_ALLOCATION_TAG",
                                            sageconfig);
        SageMakerRuntime::Model::InvokeEndpointRequest request;
        request.SetEndpointName("test");
        auto payload = Aws::MakeShared<Aws::StringStream>("FrameInference", std::stringstream::in | std::stringstream::out | std::stringstream::binary);
        request.SetBody(payload);
        request.SetContentType("image/jpeg");
        SageMakerRuntime::Model::InvokeEndpointOutcome result = _sagemakerClient->InvokeEndpoint(request);
        std::cout << "Calling sagemaker endpoint success: " << result.IsSuccess() << std::endl;

    }ShutdownAPI(options);
return 0;
}

@KaibaLopez Never ind I was not finding the right package in cmake was using sagemaker instead of sagemaker-runtime

glad you were able to find your error.
I'll be closing this if there isn't any more questions.


Is there a way to print both tool use requests and responses inside chat.toolloop?

Hi, sorry if this is a dumb question but I've been trying to make this work and reading the source code and I've had no luck.
I'm playing with an assistant which has 3 tools.
I'm trying to print everything that's happening so I can debug the system prompt and the initial message prompt.
However, if I call chat.toolloop like so:
answer = chat.toolloop(main_prompt, trace_func=print)

I only get prints of:

(1) the messages from the assistant before calling the tool
(2) the tool_use request
(3) the messages from the assistant after calling the tool and seeing the results

I'm not seeing, however, any output regarding the tool function call, nor the results and how they are sent to Claude (which would be very useful in debugging).
To work around this, I added prints inside the tool function, but the result is a little weird (at least to me):
The prints from the tool function call appear before (1) from above.
The question is: is there easy way to have the debug prints in chronological order (that is, (1), (2), tool function prints, (3))?
Thanks in advance! Claudette inspired me to play with Claude API and it's fun! :)

I want that too! At some point I'll get around to adding it...

In case anyone is in the same situation...
For now I'm using the following decorator:
import functools

def debug_print(func):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        result = func(*args, **kwargs)
        print(f"TOOL DEBUG: {func.__name__}() returned {result}")
        return result
    return wrapper

You can use it by prefixing your tool functions with @debug_print like so:
@debug_print
def get_customer_info(...):
  ...

If I have time this week I'll try to add the functionality to claudette (although I wouldn't do it with a decorator)

Printing the chat history (chat.h) is pretty useful for debugging. When running the order cancellation example from the docs, here's the full chat history which includes the results of the tool function calls.
[
 {'role': 'user', 'content': [{'type': 'text', 'text': 'Please cancel all orders for customer C1 for me.'}]},
 {'role': 'assistant', 'content': [TextBlock(text="Okay, let's cancel all orders for customer C1:", type='text'), ToolUseBlock(id='toolu_01YANwcUTV41qShFRHkqPXFn', input={'customer_id': 'C1'}, name='get_customer_info', type='tool_use')]},
 {'role': 'user',  'content': [{'type': 'tool_result', 'tool_use_id': 'toolu_01YANwcUTV41qShFRHkqPXFn', 'content': "{'name': 'John Doe', 'email'<EMAIL_ADDRESS>'phone': '123-456-7890', 'orders': [{'id': 'O1', 'product': 'Widget A', 'quantity': 2, 'price': 19.99, 'status': 'Cancelled'}, {'id': 'O2', 'product': 'Gadget B', 'quantity': 1, 'price': 49.99, 'status': 'Cancelled'}]}"}]},
 {'role': 'assistant', 'content': [TextBlock(text="Based on the customer information, it looks like there are 2 orders for customer C1:\n- Order O1 for Widget A (2 units)\n- Order O2 for Gadget B (1 unit)\n\nLet's go ahead and cancel both of these orders:", type='text'), ToolUseBlock(id='toolu_016NBwPF2pJvQFcQCeXn6h1s', input={'order_id': 'O1'}, name='cancel_order', type='tool_use')]},
 {'role': 'user', 'content': [{'type': 'tool_result', 'tool_use_id': 'toolu_016NBwPF2pJvQFcQCeXn6h1s', 'content': 'True'}]},
 {'role': 'assistant', 'content': [ToolUseBlock(id='toolu_01Fp5yy7apAKG2oXc2muX3Mz', input={'order_id': 'O2'}, name='cancel_order', type='tool_use')]},
 {'role': 'user', 'content': [{'type': 'tool_result', 'tool_use_id': 'toolu_01Fp5yy7apAKG2oXc2muX3Mz', 'content': 'True'}]},
 {'role': 'assistant', 'content': [TextBlock(text='Both order cancellations were successful. All orders for customer C1 have now been cancelled.', type='text')]}
]

@maraoz does printing the chat history (mentioned here) solve your issue?

@comhar let me check and report back

Not really. I'm using chat.toolloop (see: https://github.com/maraoz/claudette-scheduling-agent/blob/main/main.py#L576) and what I want is to be able to print function calls and results as they happen. From what I understand, your suggestion would mean the whole chat is printed at the end. Right?
If you find a way of using chat.h to achieve what I want let me know, I'm interested!

Not really. I'm using chat.toolloop (see: https://github.com/maraoz/claudette-scheduling-agent/blob/main/main.py#L576) and what I want is to be able to print function calls and results as they happen. From what I understand, your suggestion would mean the whole chat is printed at the end. Right? If you find a way of using chat.h to achieve what I want let me know, I'm interested!

Ah ok. If we change toolloop to trace history (self.h) instead of the Chat response we can generate something like this when using print as trace_func

raw trace_func
https://github.com/user-attachments/assets/b4dfec85-cf9b-4e83-8aca-7a8ba9ddb293

Here's a cleaner version which better highlights the tool call.

clean trace_func
https://github.com/user-attachments/assets/3fc50392-047b-4007-a883-03cadc7539c5

@maraoz would this solve your problem?

@comhar yes! love it :)


Add .dump() method

Similar to dump  in KMC_tools, write kmer:count pairs to a text file.
Could add two options for this:

.dump_hash() for hash:count pairs
.dump() for kmer:count pairs

The second option should throw an error if no hash:kmer map is stored in the KmerCountTable object.
Should we support sorting output on either kmer or count?

Check out Pariter for parallel queries that preserve input / output order.

Just adding .dump_hash() for now until we have a solution for #21.
Default sort on counts then keys. Option to sort on keys.
@ctb For writing output, should we:

Take a outfile arg and handle in rust?, or
Yield output lines and handle the writing in Python?

2 is easier to write tests for, 1 is probably easier for users.


New progress bar

A more configurable version of the ProgressBar widget. Also added dependency 'tracing'

Cool. Thanks for this.


Unable to access properties on Rect2

Describe the bug
When working with a Node2D or CanvasItem, dragging from the get_viewport_rect() function does not provide a way to obtain the size property.
Expected behavior
Should be able to access size like GDScript.
Actual behavior
The size property is inaccessible.
How to Reproduce?

Add Node2D in a scene.
Attach an Orchestrator script to the Node2D
Add a get_viewport_rect() function call.
Drag from the Rect2 output, no way to obtain the size

Godot full version
4.3.-dev3
Orchestrator version
2.0.dev3
Additional information

Users should use the Break node for this:


Conda-forge package

Hi there,
I just stumbled upon this after looking for a GDAL-free alternative for reading GML files. I'm wondering if there's interest in publishing a conda-forge package. If so, I can help by drafting a recipe.
Thanks!

I myself do not use conda but I hear that many people do, so I guess it would make sense to add that. I would appreciate if you could add the recipe for that!

See: https://github.com/conda-forge/staged-recipes/pull/16132

Available in conda-forge: https://github.com/conda-forge/pygml-feedstock/
Installable via: conda install -c conda-forge pygml


Inotify exit watch

We add an inotify based container exit watch that can asynchronously update the status of the containers that have exited so we don't have to call runtime state on containers during container list which gets called frequently by the kubelet.
Replaces #747

Should this code eventually be moved to libpod?  Should conman write status to /var/run/libpod/ o r /var/run/containers?  ( would prefer the second.)  conman should really not get tied to crio, perhaps the directory should be passed in via command line?  Will crio care about exit status of containers launched by kpod? or libpod?

Other then my comments which can be fixed after this is merged, This patch LGTM.

Pushed update to address comments.

LGTM

@runcom PTAL

LGTM


[WIP] feat: client.reconfigure(config)

The one thing that I'm battling with here is the reconfigure method name. It kind of sounds like we're reconfiguring the existing client (OO approach) instead of returning a newly configured client (functional approach).
We might want to think about naming the method to something like getReconfigured?
In the end, I'm nitpicking here, reconfigure is fine too.

The one thing that I'm battling with here is the reconfigure method name. It kind of sounds like we're reconfiguring the existing client (OO approach) instead of returning a newly configured client (functional approach).
We might want to think about naming the method to something like getReconfigured?
In the end, I'm nitpicking here, reconfigure is fine too.

What about clone? That's technically what we're doing here. But I'm also more in favor of configure than reconfigure or 'getReconfigured' (I think the return type being the Client kinda hints enough that we're not reconfiguring the existing client).
IMO: clone > configure > reconfigure > getReconfigured

What about clone? That's technically what we're doing here. But I'm also more in favor of configure than reconfigure or 'getReconfigured' (I think the return type being the Client kinda hints enough that we're not reconfiguring the existing client). IMO: clone > configure > reconfigure > getReconfigured

I can get behind clone for sure!

In the end @pileks @nerfZael, I decided against the clone(...) name because it was strange to have it return a ClientConfigBuilder instance instead of a new Client. So I still think reconfigure(...) makes the most sense. This is the interface:
const newClient = new PolywrapClient(
  client
    .reconfigure({ ...partial_config })
    .addPlugin({...})
    .build()
);


Support Plug and Phoenix, and add Recursive Filtering

The most basic functionality giving us canonical logs and recursive filtering on metadata, which makes using it for things like nested form inputs with password fields "safe". Is ready to use, though I want the Absinthe functionality before doing a real release.

Current dependencies on/for this PR:

main

PR #1   👈

This comment was auto-generated by Graphite.


regex for {float} ng/uL shouldn't include "ng/uL" etc

just validate a bare float
@mslarae13

2 hour task per Mark. Would apply to any float type column.
Bonus after organizing columns. See #59

The syntax for 'dna_concentration' etc. in JGI_sample_slots  is now just '{float}'.
See also
@mslarae13 has pointed out the importance of letting submitters know that they must report their concentrations of DNA (etc.) according to a mandated unit. @cmungall, @mslarae13  and I have agreed that those mandated units should appear in each column's header. I haven't done that yet.


Use consistent terminology for examples

Sometimes I call them "examples", sometimes "recipes". I like "recipes" better, but if we end up dropping the cooking metaphor for https://github.com/brson/rust-cookbook/issues/164 that will need to change.
For now let's just replace the word "example" with "recipe".

@dtolnay what do you think of the word "recipe"?

OK, now that I've written the word "recipe" like 20 times I'm getting that "weird word" sensation... like what do all those letters even mean?

Recipe is fine but I agree this is contingent on #164.

Well "Rust Recipes" is also a viable name for the book.
It would still convey the "cookbook" idea without name collision and it rhymes ;)

I think it's always good to compare it with what already exists, I am aware of Clojure Cookbook. From the first line of their README.md:

The book details a large number of recipes – pairs of problems and solutions – for common topics in Clojure.

Then searching "cookbook" in O'Reilly shows that there is a clear pattern among writers for this kind of book: "cookbook" is a list of "recipes" to solve programming tasks. I am in favor of "recipe" as well.

Greetings!
I'm a fledgling in the open source world, however I'd love to take on this task if help is still needed. Any feedback / advice along the way would also be greatly appreciated. Thank you!

Great!  Do you know how to fork and clone your fork locally?

@AndyGauge I do! I'm so excited!
Thank you so much for asking! Are there any recent updates you'd like me to be aware of before approaching? I will be doing all of the necessary research through the existing codebase + related project updates before I begin. I will also post here should I have any questions along the way!

Sure,
This particular issue was a grounds for discussing naming of our samples.  I would say we officially landed keeping the cookbook theme, and as such should move towards reviewing the content and making changes that reflect the cooking theme, like examples should be recipes.  If you have time and are eager to review the language here, I'm happy to merge/support the process.  In fact I have a little project that I started and haven't made time for and might just be looking for somebody to finish it for me.  #564

@AndyGauge Thank you for clarifying! I am beyond impressed by how welcoming, kind, and supportive your organization is. Thank you for the helpful encouragement! I am eager to take this on and would love to help with additional projects. I intend to submit the updated revision this week.

@AndyGauge @brson Hi, I'm new to open source and would love to work on this!


Use surrounds as textobjects (like vim-sandwich)

vim-sandwich has the functionality to turn user-define surrounds into textobjects through the recommended mappings as<char> and is<char>; suppose I have defined the char x for the delimiters foo and bar; then, for fooSOME_TEXTbar, dsx would result in SOME_TEXT, dasx would result in the entire phrase being deleted, and disx would result in foobar. Since we are already providing the find and delete patterns for user-defined surrounds, I think it would not be too difficult to implement this textobject functionality. This is the one vim-sandwich feature that is keeping me from switching to nvim-surround at the moment.

This sounds like a great feature that I would like to add, although I'm a bit busy with other things at the moment. I'll leave a few examples for myself below; feel free to correct if I've made any mistakes:
-- Before text
local f = function(arg1, arg2)
-- After `dsf`
local f = arg1, arg2
-- After `disf`
local f = function()
-- After `dasf`
local f =

I was playing around with the source, and put the following function in init.lua; I also bound das to call this function in config.lua by adding an entry for das in keymaps and calling set_keymap on it.  However, it does the exact same thing as delete_surround; I am a little confused.
M.delete_object = function(args)
  -- Call the operatorfunc if it has not been called yet
  if not args then
    -- Clear the delete cache (since it was user-called)
    cache.delete = {}

    vim.go.operatorfunc = "v:lua.require'nvim-surround'.delete_callback"
    return "g@l"
  end
  local selection = utils.get_selection(args.del_char)

  -- Get the selections to delete

  if selection then
    buffer.delete_selection(selection)
    buffer.set_curpos(selection.first_pos)
  end

  buffer.reset_curpos(args.curpos)
  cache.set_callback("v:lua.require'nvim-surround'.delete_callback")
end

Am I missing something about what get_selection and delete_selection do?

Oops, I closed this by mistake; I reopened; I hope you'll still be able to see this issue?

It's all good, I can still see it. From a cursory glance it looks like your code should work; I would recommend re-trying the same edit on branch add-treesitter-support and see if that works?

Glad that it works for you! If possible, I would like some suggestions on how this feature could be "properly" integrated. I think code-wise it shouldn't be that hard to implement; just have another function/callback pair, where the user is queried for the character. However, what would you recommend I call the keymaps? Perhaps delete_around and delete_inner to go with delete?

Those seem to be good names, I think!
I guess there should be options to toggle these functionalities globally, and a note be added about overriding the builtin s "sentence" text object (useful for markdown and tex), which one may consider remapping.
Something more (maybe too) ambitious would be making the mappings available for all operators, not just deletion, so they become full-fledged text-objects (which is the case with vim-sandwich). Maybe this should be handled in a separate plugin, a Lua plugin to define user text-objects (which is still non-existent at present, I believe?).

I think mini.ai is what you're looking for; I would prefer to not set any operator maps for this plugin; having it focus on just surrounds and not try to provide a whole framework for text-objects. On second thought, if there are conflicting keymaps, I'm unsure about whether or not I want to support this in nvim-surround. You're probably better off using something like nvim-treesitter-textobjects and just using daf.

Oh, didn't know about mini.ai; I just tried it and it meets my needs (and saves one keystroke), only I don't know why it is slower than the modified nvim-surround when deleting simple regex patterns (there is a noticeable lag with mini.ai).
What I need to delete are special latex command sequences with text in between, so treesitter won't be of much help; only a regex-capable solution like mini.ai or nvim-surround will do.

@Doltonius Does vim-sandwich literally create the operators asf/isf for you? Or does it only create the mappings dasf and disf, giving the illusion of custom text-objects? If I am to implement this, I think it might make more sense to do the latter, since for the former might introduce mappings that unintentionally conflict with other plugins, e.g. targets.vim, nvim-treesitter-textobjects, or even mini.ai. If the latter, then I figure that adding something similar to the local copy that you have already written would suffice. In any case this probably won't get added for a little bit (sorry!); I would like to see more support from the community for this feature before I go and just add it.

only I don't know why it is slower than the modified nvim-surround when deleting simple regex patterns

This is one of the most surprising things that I've heard so far, since I've done zero optimization and I already know of a few ways that I could speed up nvim-surround by quite a bit. However those performance issues probably will only show up on larger files with very long lines (if at all), which is why I haven't bothered trying to pre-optimize.

vim-sandwich provides as<char> and is<char> as true textobjects that can be used after v, d, c, y and other operators, although this feature is disabled by default; the as<char> and is<char> mappings are only the suggested mappings. The conflict with the sentence text object is the only potential conflict I can think of with these mappings. Yeah, I agree that if there is only me who needs this, then probably it shouldn't be officially added; and even when added, I think the default should be to disable it as in vim-sandwich.

It usually is quite hard to get a sense for how many people actually want this feature. I'll try to remember to make note of it in the next release post or something, but yeah unsure how many people are going from sandwich to this plugin, and from those how many used the textobjects.

So for what it's worth, I don't / haven't used this feature of vim-sandwich, but it does sound amazing, and I think I would try and make it part of my routine if it popped up in nvim-sandwich. To me, this is one of those features that "multiplies"; providing means you suddenly a whole bunch of useful text objects, all based on the built-in and user definitions for surroundings.

Oh, didn't know about mini.ai; I just tried it and it meets my needs (and saves one keystroke), only I don't know why it is slower than the modified nvim-surround when deleting simple regex patterns (there is a noticeable lag with mini.ai).

@Doltonius, 'mini.ai' really shouldn't have any noticeable lag when using Lua patterns: on my machine it almost always executes in less than 1 ms. The tree-sitter ones can be slow on big files (>1000 lines) with many captures: I sometimes get around 100 ms.
I would suggest that issue here is with conflicting mappings (so one of them is applied after 'timeoutlen' ms) or something else. If you can reproduce the lag, would you mind opening an issue in 'mini.nvim'? Thanks.

how many people are going from sandwich to this plugin, and from those how many used the text-objects

For what it's worth, I haven't migrated yet because this plugin doesn't expose the text-objects that vim-sandwich does

Still delaying this feature request until later, but from a UX standpoint I think it might make sense to make it an additional (and optional) key into each surround, i.e. create_textobject = "some string". That way you could name them whatever you wanted, e.g. some people might prefer af instead of asf, or some other arbitrary string that isn't necessarily related to the input key into the surround (in the previous example f).

For those that are interested, someone else seems to have implemented this functionality as a standalone plugin: https://github.com/XXiaoA/ns-textobject.nvim

vim-sandwich has the functionality to turn user-define surrounds into textobjects through the recommended mappings as<char> and is<char>; suppose I have defined the char x for the delimiters foo and bar; then, for fooSOME_TEXTbar, dsx would result in SOME_TEXT, dasx would result in the entire phrase being deleted, and disx would result in foobar. Since we are already providing the find and delete patterns for user-defined surrounds, I think it would not be too difficult to implement this textobject functionality. This is the one vim-sandwich feature that is keeping me from switching to nvim-surround at the moment.

I'm confused about where will the cursor is after doing textobject. Maybe it isn't pretty important on delete operations, but it makes big effect on change operations.

Ok so I don't think that implementing this feature would be terribly hard (famous last words), but I do have reservations for doing so since I feel that this would perhaps be beyond the scope of what nvim-surround is supposed to be used for. I was thinking of creating a "spin-off" plugin, i.e. nvim-motions, but the sheer amount of duplicated code that would have to be shared between the two seems almost comical. This feature does seem very useful and I would like to add it in; here are some ideas:

Add it into nvim-surround as a create_motion key for each surround, which will use the find() key of the surround as the motion.
a. Very good code reuse, no breaking changes, probably the easiest to actually do.
b. Potentially "does too much" in one plugin, as we are now introducing motions to a plugin that is supposed to be focused on delimiter pairs.
Create a new plugin nvim-motions.
a. I would either need to duplicate a bunch of code (yuck), or have one of the plugins require the other (seems non-ideal as that would likely end up being a breaking change for nvim-surround).

Feel free to let me know what y'all think!

I suppose we should create another plugin (do one thing and do it best). And maybe the new plugin had better be independent. In my view, It's annoying for user to require a surround plugin for a motion plugin (there seems has no relevance between then).

Yeah I guess an alternate idea would be to introduce some sort of "library" that both plugins could inherit from, but I'm not 100% sure what that would look like. I think it might also be beneficial for other plugin developers, i.e. see this comment. I'm not sure if my code is something that can be put into LuaRocks, or how that works at all, but I'm open to any ideas.

Maybe create a library which  like https://github.com/nvim-lua/plenary.nvim provides find, buffer and stuff functionality🤔.

This sounds like a great feature that I would like to add, although I'm a bit busy with other things at the moment. I'll leave a few examples for myself below; feel free to correct if I've made any mistakes:
-- Before text
local f = function(arg1, arg2)
-- After `dsf`
local f = arg1, arg2
-- After `disf`
local f = function()
-- After `dasf`
local f =

I think like you said, this shouldn't be too hard to implement; the main problem is how the user should configure this.

Support now in ns-textobject with default configuration of nvim-surround and ns-textobject. (Using nvim-surround's surrounds configuration):
a = func(args)
Press dsf -> a = args
Press daf -> a =
Press dif -> a = func()

utilizing mini.ai i can define it like this:
  local ns_utils = require("nvim-surround.utils")

  local function ns_alias_mini_ai(alias)
      return function (mode)
        vim.g.miniai_disable = true
        local s = ns_utils.get_nearest_selections(alias, "change")
        if not s then
          vim.g.miniai_disable = false
          return
        end
        local f_col = s.left.first_pos[2] + (mode == "i" and 1 or 0)
        local t_col = s.right.last_pos[2] + (mode == "i" and -1 or 0)
        local region = {
          from = { line = s.left.first_pos[1], col = f_col },
          to = { line = s.right.last_pos[1], col = t_col },
        }
        vim.g.miniai_disable = false
        return region
      end
  end

  -- local custom_textobjects = {}
  -- for alias, _ in pairs(require('nvim-surround.config').get_opts().aliases) do
  --   custom_textobjects[alias] = ns_alias_mini_ai(alias)
  -- end

  return {
    custom_textobjects = {
      s = ns_alias_mini_ai("s"),
    },
  }

because ns_utils.get_nearest_selections has no forward search it's quite impractical tho

After further consideration (a year later :skull:) I think this is probably beyond the scope of this particular plugin; alternatives linked earlier in this thread should suffice for most people


add links to the badges

Is your feature request related to a problem? Please describe.
I think these badges should be linked to the related web pages present in README.md file, like now after clicking on them they are taking us to this type of web pages.

This is of no use, it should contain the links to the related webpages/ sections.
And also these badges are not looking enough good, I would like to align them to the center and make them all of single type.

Describe the solution you'd like
I would like to add links to these badges, align them to center, and make them all of single type.
For example, I will add a link to the PR badge so that a user can directly go to that webpage/section easily using the badge.

Should I work on this??

Yeah sure !


Mobile > arrow disappeared

left, right arrow was disappeared on mobile (ios chrome and safari)
It seems that there's a code and arrow on mobile html as well but it was not appeared because of margin and position problem.
is any idea?

Same problem on firefox, android. Took me a while to figure out how to go to the next page.


Release Candidate Comments (Issue Label Inclusivity)

This issue was created to collect comments about the upcoming metrics release.
This thread is for comments about Issue Label Inclusivity
GitHub location: https://github.com/chaoss/wg-diversity-inclusion/blob/master/focus-areas/project-and-community/README.md
See all release candidates of metrics are at:
https://chaoss.community/metrics-202008/

link to the metric:
https://github.com/chaoss/wg-diversity-inclusion/blob/master/focus-areas/project-and-community/issue-label-inclusivity.md

This metric seems too broad, is it capturing how a particular project is inclusive?
Signed-off-by: Armstrong<EMAIL_ADDRESS>

It is working to capture if the labels associated with issues can be used to improve inclusiveness of a project.

I find this metric to be straightforward and unique overall, but I do have a couple thoughts for it.
1 - are the listed filter correct for this metric?
Based on the title and objective to (paraphrasing) capture data about the clarity of and usability of labels, the filters don't line up since they are general metrics on issues themselves as opposed to scoping to the objective. Some filters that come to mind as I read (with explanations why):

Number of labels (because there's a sweet spot between too few and too many that needs to be measured)
Number of labels for same type of issue (with the implication that having bug, Bugs, and area/bugs` being difficult for contributors and especially newcomers to understand)
Inactive labels (e.g. labels not in use or never in use. This could be part of regular maintenance to delete unhelpful labels)

2 - does it make sense to have dependencies across metrics?
The following line under Objective mentions another metric as an input for this metric:

Usable Title and Description: Issue titles and descriptions follow the Documentation Usability metric objectives

At first glance, I'm not sure what the Documentation Usability metric is, so a link would be helpful. Secondly, I think these would better serve users if the metrics as independent of each other.

The idea of this metric is to gauge whether or not the issue list and more precisely its labels speaks to a variety of contributors that have different goals (code, documentation, translation, etc...) and are at different contribution stages (newcomer, expert etc...). An ideal scenario would be for anyone to be able to find an issue to work on and for the labels to be defined in a way that makes the choosing process as straightforward as possible.

The idea of being able to detect repetitive labels that are spelled/ formulated differently is really interesting from a usability perspective in general. It should be possible to detect that in the list of labels predefined by a project. This could fit under the consistent use of labels objective.
For the number of labels filter it might be tricky to define a threshold that can apply to all projects since they will differ in size, complexity..
Inactive labels are interesting from a usability perspective too, I am wondering how can we define an inactive label (maybe one that hasn't been used in three months or a year). My understanding is this would still involve defining a threshold that might not be universal for all projects. I wonder if there is a threshold or some best practices in literature that covers that.

The dependencies across metrics is a really good point. From a user perspective it would be easier to have the metrics be independent but from a design perspective it would be repetitive to have metrics be independent. I am wondering whether there was a case where two or more metrics are dependent from one another and how was that handled.
__
The idea behind the issue title and description to follow the Documentation Usability metric is to avoid technical jargon and focus on readability, structural clarity and language inclusion.

Great points and I appreciate the thoughtful response!

The idea behind the issue title and description to follow the Documentation Usability metric is to avoid technical jargon and focus on readability, structural clarity and language inclusion.

I am in full support of capturing all of the above. As a user of this metric, I'm not sure what I am expected to come with vs what I learn from this metric in the process of using it. For instance

with 'technical jargon' -- do I bring a set of terms that are technical jargon and implement this metric by counting the usage of them across the project?
for 'readability' -- do I bring my own standard of readability to this metric or is there a standard on readability we are referring users to? I see the objective listed, and the part I feel confident I could measure is sentence length (though it's not clear how short is readable v. unreadable).

This metric is full of expert advice around documentation, but I'm finding it difficult to understand as a user both (a) independent of Documentation Usability and (b) reviewing both together.
Some suggestions that come to mind (with my naive understanding -- apologies, I haven't been part of the WG, but hopefully those fresh eyes can be helpful):

Separate the aggregate/synthetic metric from its atomic metric parts. Each of the objectives are complex and nuanced enough to be there own atomic, while Label Incivility reads as an synthetic.
For the atomic metrics, consider each metric being a collection of specific metrics that are either boolean or provide a spectrum toward self assessment.

Ex: "This project is newcomer-friendly bc it has X labels as well as core-contributor friendly because it follows a consistent namespacing pattern (area/type or area:type)

@mbbroberg could you take a shot at issuing a PR based on these suggested changes?

@mariamgui, is this metric ready?

Ready for release

@klumb I believe it's ready :)

Thanks @mariamgui and @germonprez


Fix the C2678 MSVC compilation error

MSVC 14.15 returns the C2678 error during a compilation of the
'tensorflow/core/kernels/data/scan_dataset_op.cc' unit:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\include\xmemory(217):
error C2678: binary '*': no operator found which takes a left-hand
operand of type 'const _Iter' (or there is no acceptable conversion)
with
[
_Iter=tensorflow::OpInputList::Iterator
]
.\tensorflow/core/framework/op_kernel.h(405):
note: could be 'const tensorflow::Tensor &tensorflow::OpArgIterator<tensorflow::OpInputList,
const tensorflow::Tensor>::operator *(void)'
Two const operator functions: 'operator*() const' and 'operator->()
const', returning a const pointer or const reference respectively,
have been added to the 'OpArgIterator' template class.
Signed-off-by: Pavel Samolysov<EMAIL_ADDRESS>

I signed it!

@jsimsa   Please take a look and approve/suggest any changes.

Nagging Reviewer @jsimsa: You have been added as a reviewer to this pull request. Please add your review or reassign. It has been 14 days with no activity and the awaiting review label has been applied.

Nagging Reviewer @jsimsa: You have been added as a reviewer to this pull request. Please add your review or reassign. It has been 29 days with no activity and the awaiting review label has been applied.

@jsimsa @harshini-gadige what does Internal CI build failed mean? I've checked the log and see no dependencies on my changes what can brake the build, please let me know If I have to change something in my code.


Audio Meter

This gadget will allow you to control and see information on audio that is playing. Audio controls will include play, pause, next track, previous track, shuffle, repeat, and volume controls. If the user does not wish to control music tracks, the gadget will simply control computer audio.
Additionally, the gadget will display a basic visualizer along the bottom edge.
To-do

[x] Gadget fundamentals
[x] Audio visualizer
[x] Volume controls
[x] Drag volume bar to move it
[x] Configuration skin

NowPlaying Controls:

[x] Album art
[x] Title, artist, album, with marquee
[x] Progress bar
[x] Progress bar interaction (scrubbing through a song)
[x] Progress & remaining time in song
[x] Generic controls: previous, play, pause, next, shuffle, repeat
[x] Accommodations for scaling
[x] WebNowPlaying support

With dragging support added to the volume and song progress sliders, the only thing left to do is to figure out how to add scaling support to the media cover art and track info, and Audio Meter will be pretty much complete! :D

Until containers are updated to support working with TransformationMatrix, you won't be able to use the standard version of the track info at any scale. If you set the scale factor to anything besides 1, then an alternate form of the track info will be used, one that does not use container meters. This results in the album art always having square corners, and the text staying still rather than marqueeing. :(
Now that scaling accomodations have been implemented, Audio Meter is now complete until such time as containers are updated. This issue will be closed once the next beta releases!

Beta 9 is out!

i use chrome (yt) and spotify app can this be dynamic too? whatever source is broadcasting?


Formatting for nested entities in referenced table

lat-long are number properties, I tried applying the currency format on Address entity, when I tap on the address using address.latitude/address.longitude within School entity, the lat-long do not come with the formatting I've applied on the table, however when you hover on the address quickview it shows the formatting.

Steps to reproduce the behavior:

Go to 'https://function-adminportal-test.shesha.dev/dynamic/TestModule/referrence-table'
Hover over on the quickview and check the lat-long properties which shows some formatting applied
Check the lat-long columns, the formatting showing on the quickview did not apply on the two columns since I used the tapping method onto the entity

Expected behavior
The formatting should apply when a user tap on an entity property that has a formatting applied on it

Hi @hlayisanimazuze. It's fixed, please check


Possible typo in all Cargo.locks

Problem
There is a possible typo included in all Cargo.lock files. When cargo generates a Cargo.lock file for you, there is the following comment above the content:
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
more_below_this_lock = "0.0.0"

It doesn't look like @ prefixing generated has been used before in other repositories as an indicator so looks to be a typo.
Steps

Generate a Cargo.lock file using the cargo CLI

Possible Solution(s)

Remove the @ from @generated
Notes
Output of cargo version:
cargo 1.45.0-nightly (cb06cb269 2020-05-08)

Looks like this was made 17 months ago so a decent amount of recent cargo builds are affected (if this is indeed a typo).

No, it is not a typo: https://github.com/rust-lang/cargo/issues/6180.

Alright, good to know :)


How To (Updates and Fixes)

Description
This PR updates the how to pages to use the new {{< version >}} tag, it also fixes the yucky embedding page.
This PR also adds the new All in one tab system for the docker page, and placeholders for new pages.
This PR fixes #
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

Ding its ready for yall to review and merge!


Support request-response?

Hi @vincev
Thank you for releasing this crate. I'm looking forward to seeing that this crate is included in the rust-libp2p officially soon.
I'm trying to extend your wasm-libp2p-chat example to support file sharing using the request-response protocol, similar as the file-sharing example in the rust-libp2p repo.
But, it didn't work. I'd like to ask if the libp2p-websys-transport supports the request-response protocol.
In my scenario, my wasm web broadcast a start-providing via Kademlia. Then, my rust-libp2p node calls a get-providers via Kademlia and sends a file request to the my web via request-response.
My web uses your libp2p-websys-transport and my Rust node uses TCP and WebSocket transports provided by rust-libp2p.
When, my Rust node tries to send a file request to my web, the following error occurs. It seems that it was failed to upgrade the outbound connection from the node to the web.
[2023-05-03T11:35:21Z INFO  jiri_core::p2p] Sending a request to PeerId("12D3KooWEcodQSPbhaTTF9v9RSmQUTf4UY99qCcYT1SbTseE8EsT") for 6990c425-f1cf-4130-9027-8d93b9074974
[2023-05-03T11:35:21Z INFO  jiri_core::p2p] Sent request successfully
[2023-05-03T11:35:21Z DEBUG yamux::connection] 3340b205: new outbound (Stream 3340b205/6) of (Connection 3340b205 Server (streams 2))
[2023-05-03T11:35:21Z DEBUG multistream_select::dialer_select] Dialer: Proposed protocol: /jiri-file-exchange/1
[2023-05-03T11:35:21Z DEBUG multistream_select::dialer_select] Dialer: Received confirmation for protocol: /jiri-file-exchange/1
[2023-05-03T11:35:21Z DEBUG libp2p_core::upgrade::apply] Failed to upgrade outbound stream to /jiri-file-exchange/1
[2023-05-03T11:35:21Z DEBUG libp2p_swarm] Connection closed with error Handler(Left(Left(Left(Right(Upgrade(Apply(Kind(UnexpectedEof)))))))): Connected { endpoint: Listener { local_addr: "/ip4/<IP_ADDRESS>/tcp/8081/ws", send_back_addr: "/ip4/<IP_ADDRESS>/tcp/57019/ws" }, peer_id: PeerId("12D3KooWEcodQSPbhaTTF9v9RSmQUTf4UY99qCcYT1SbTseE8EsT") }; Total (peer): 0.
[2023-05-03T11:35:21Z DEBUG libp2p_gossipsub::behaviour] Peer disconnected: 12D3KooWEcodQSPbhaTTF9v9RSmQUTf4UY99qCcYT1SbTseE8EsT
[2023-05-03T11:35:21Z INFO  jiri_core::p2p] Unrecognized event received: JiriBehaviourEvent: OutboundFailure { peer: PeerId("12D3KooWEcodQSPbhaTTF9v9RSmQUTf4UY99qCcYT1SbTseE8EsT"), request_id: RequestId(1), error: ConnectionClosed }

Do you have any idea about the request-response support? I'm curious if I have to use other ways, such as WebRTC or relay-server.
Thank you!

Hi @youngjoon-lee,
I have never tested this transport with anything more complex than a chat but Thomas from the libp2p team who is improving the code to bring the crate into libp2p found a problem with Websocket dropping connection if the client sends a lot of data (see here).
It seems that the problem you are getting may be caused by the connection being dropped.

Thank you @vincev for your help. I'm just sending only 20 bytes of data from server to the wasm web, but I'll try to read the thread that you shared carefully. Also, I'll try to test it with the existing libp2p-wasm-ext.


Add option for array syntax in flattened property names with "extra dot" before the index bracket

I'm submitting a...

[ ] Regression
[ ] Bug report
[x] Feature request
[ ] Documentation issue or request
[ ] Support request

Current behavior
An array index is inserted into the flatted property name like this (without a . between the c and the [3]): 'a.b.c[3].xyz'
Expected behavior
Ideally, the flatten function would have the option to produce this syntax (with a .): 'a.b.c.[3].xyz'
What is the motivation / use case for changing the behavior?
Various libraries use either or both syntaxes when it comes to expressing paths into JavaScript objects. Unfortunately, there is no universal standard, but it would be very convenient to be able to choose the desired syntax in cases where uni-flatten is being used along with other libraries that prefer or require the "extra dot" syntax.
I've tested the unflatten function, and it already seamlessly supports the syntax with the "extra dot", so only the flatten function would change.
PS - I've done extensive testing with various flatten/unflatten libraries, and this is by far the most complete. Great job!

I have opened a pull request for this feature. Please refer to this test. Does it look okay to you?

Thank you for the quick response! That looks great and fully satisfies my use-case.
Note that the custom serializer has pros and cons (as you've already mentioned). On one hand, it's highly flexible, but it can also break the deserializer (my particular syntax doesn't break it, but it's only one case). What I might suggest is that you consider the option for a custom deserializer too. It's not something I have a specific use-case for today, but it would provide the option for someone to define an entirely different serialization syntax, and mostly, it will "complement" the ability to set a customer serializer.

Understood. Thank you!


Allow no state arg pass to set_evaluating

Signed-off-by: Kaiyuan Hu<EMAIL_ADDRESS>

/lgtm
/approve


How to properly parse trajectories / missing files?

Hi, thanks for this amazing work! I really appreciate that you've released things so comprehensively, including the emulator code and everything in one nice repo.
I was trying to parse some of the trajectories, specifically from webarena-reflexion-oracle-eval, and I think I might be missing something. I wanted to see what the model sees for the trajectories leading to the outcome; I see "image_paths" as a key to the jsons in the records folder, but many of them refer to images that are not present in the images folder.
For example, "outputs/mar22-all-gpt4-baseline-temp0-noUAhint-r1/images/0_0_0.png in the 0_0.json example -- the only folder included with the zip is r3, and the images folder for that has no 0_0_0.png.
Am I misunderstanding how to parse this? Are some files missing? I also noticed the renders folder -- what would be the easiest way to visualize the trajectories like I'm hoping to? Thanks!

Hi, thank you for the kind words:)
I am pretty occupied right now and will try to get back to you by next Monday.

Thanks!

From: Jiayi Pan @.>
Sent: Thursday, April 11, 2024 5:29:00 PM
To: Berkeley-NLP/Agent-Eval-Refine @.>
Cc: Sachit Menon @.>; Author @.>
Subject: Re: [Berkeley-NLP/Agent-Eval-Refine] How to properly parse trajectories / missing files? (Issue #1)
Hi, thank you for the kind words:)
I am pretty occupied right now and will try to get back to you by next Monday.
—
Reply to this email directly, view it on GitHubhttps://github.com/Berkeley-NLP/Agent-Eval-Refine/issues/1#issuecomment-2050585541, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFD4ZUNSRQ2YHGEMB5J5OQ3Y436BZAVCNFSM6AAAAABGC6KSS2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANJQGU4DKNJUGE.
You are receiving this because you authored the thread.Message ID: @.***>

Hi @sachit-menon
Thanks for your interest in your work! It seems that some of the images are not correctly copied from baseline runs to the experiment runs. We will fix it soon.
To visualize the trajectories, you can preview the HTML files under renders. The images are encoded as base64 strings there thus should not have the above problem.

Fixed with the latest push

Hi @594zyc , thanks for the pointer to the renders; they've been very interesting to parse. One thing I'm missing -- do the renders show what the actual feedback from the evaluator was? (And beyond that, what the captions were for the caption-based ones?)

Hi @sachit-menon , the renders only show the agent trajectories. The evaluator's feedbacks are recorded in the markdown files under eval.

Hi sachit, renders is in fact a built-in feature of webarena, and isn't available for other environments.
However, it should still be easy to inspect these trajectories with our annotation app
python -m agent_eval.eval.annotate_app --dataset <path-to-dataset> --log_name <log-name>

Thanks both of you!


not owned by current user

The README.md has now a note on "not owned by current user".

It is lessons learned from #10.

Good shout, thank you


Missing format for arrays

The following Swagger spec results in a null format; see https://github.com/Swagger2Markup/swagger2markup/issues/38.
"pictures": {
  "type": "array",
  "items": {
    "type": "string",
    "format": "byte"
  }
}

verified working in 1.0.11


Send SIGUSR1 to client process on Timeout

This will send SIGUSR1 to all client processes when a task hits a
timeout. The intention is to trigger a debugging hook, installed in
the python client, to help with deadlock detection.
See
https://github.com/raiden-network/raiden/issues/7141#issuecomment-901757801
for reference.

How does the light client react to USR1?

How does the light client react to USR1?

Probably NOOP reaction at all? @andrevmatos ?

We don't have specific hooks for USR1. Nodejs does, by enabling inspector on the process, but without a DevTool to connect to it, it should be noop for us.


CPS-0003? | Smart tokens

The CPS standard is coming from this proposal: https://github.com/cardano-foundation/CIPs/tree/master/CIP-9999
The topic of smart tokens at this stage is not ready for a CIP, so I deemed a CPS to be a better fit for discussions. Since the CPS standard is not set yet and also this topic would require proper discussions potentially elsewhere, I also made this as a DRAFT.
The need to extend the functionality around tokens and their utility was raised in the Interoperability working group - https://github.com/input-output-hk/Interoperability-working-group/issues/16
Disclaimer:
I don't think I'm a good fit to define the full requirements for what smart-tokens should fulfill, neither have I the overview of the development direction of Cardano. I also don't have the connections to push this forward. I think experts in regulations, compliance definitely should have a strong say, with dapps and wallets defining how they would work from the UX perspective. My aim here is simply to raise the topic.

(rendered proposal in branch)

You might be interested in https://github.com/cardano-foundation/CIPs/pull/336

I am very sure you don't want this. This entire issue stems from a conflation with what tokens are considered to be in Ethereum and Cardano. You don't want to use tokens for these use cases.
You can effectively implement ERC-20 on top of Cardano, in several ways:

Single UTXO with Merkle Tree of (owner, amount) pairs.
One UTXO per "coin" with helper token to authenticate coin. Datum would include amount, owner, etc.

"Smart tokens"/spending policies don't offer any benefit over the above in terms of fees, efficiency, simplicity, or similar.

I am very sure you don't want this. This entire issue stems from a conflation with what tokens are considered to be in Ethereum and Cardano. You don't want to use tokens for these use cases.
You can effectively implement ERC-20 on top of Cardano, in several ways:

Single UTXO with Merkle Tree of (owner, amount) pairs.
One UTXO per "coin" with helper token to authenticate coin. Datum would include amount, owner, etc.

"Smart tokens"/spending policies don't offer any benefit over the above in terms of fees, efficiency, simplicity, or similar.

It would be nice to have PoC for this / some examples we could play with.

I am very sure you don't want this. This entire issue stems from a conflation with what tokens are considered to be in Ethereum and Cardano. You don't want to use tokens for these use cases.
You can effectively implement ERC-20 on top of Cardano, in several ways:

Single UTXO with Merkle Tree of (owner, amount) pairs.
One UTXO per "coin" with helper token to authenticate coin. Datum would include amount, owner, etc.

"Smart tokens"/spending policies don't offer any benefit over the above in terms of fees, efficiency, simplicity, or similar.

could you elaborate please? Depending on how exactly you want to implement this I see issues in every direction. If you have a single utxo, you run into spend/interaction conflicts and tx chaining won't solve for you. If you have try to start emulating a "blockchain with tokens" with coins on utxos, to me it seems you are just moving security risks to the authentication token. In either case you would need direct full smart contract support from wallets anyhow. So I don't see how this is more efficient or simpler.

Supporting this in wallets is neuded anyway; wallets need to in general be able to show user funds locked by protocols.
Wrt. the single UTXO solution, transaction chaining can still solve this, wrt. the multi UTXO solution, I'm not sure what you mean about moving risks. It's waaaay simpler than any proposed solution I've seen for spending policies.

Supporting this in wallets is neuded anyway; wallets need to in general be able to show user funds locked by protocols.
Wrt. the single UTXO solution, transaction chaining can still solve this, wrt. the multi UTXO solution, I'm not sure what you mean about moving risks. It's waaaay simpler than any proposed solution I've seen for spending policies.

Could you please actually elaborate :) rather than just refuting my points. If you have a single utxo and you want to do chaining with 100x people + smart contracts trying to interact with the same token at the same time, how are you doing transaction chaining?
As for the auth coin. If the auth coin ever gets leaked, the token practically becomes worthless, as you could create a utxo with an auth token with arbitrary amount. This way you increase the surface of potential vulnerabilities from the validator script that would track the coins and datums, to also the liquidity policy that handles minting/burning the auth coins.

Looking to the future about how we might ensure this subject is tracked properly: since as said above this CPS shares considerations with #378... which is currently defined as a CIP but might be more useful as a CPS (https://github.com/cardano-foundation/CIPs/pull/378#issuecomment-1322152149)... could separate authors @szist and @MartinSchere post any ideas about combining these proposals into a single CPS?

p.s. also since mentioned in https://github.com/cardano-foundation/CIPs/pull/378#issuecomment-1322336214 this should be related to https://github.com/cardano-foundation/CIPs/pull/336 (primarily in terms of reasons to not do this... or at least some reasons to be careful about considering it)

I will try to incorporate the comments and considerations from the enforceable royalties into this CPS till eow. I wasn't aware of that CIP before writing this CPS. Thanks KtorZ for the updates, i'll fix the version.

Programmable Tokens is one of the worst components of the Ethereum ecosystem. It opens up a Pandora's box of issues that would be super hard to justify for the functionality that they offer.
approve() & transferFrom() are probably the two most desirable features introduced by Smart Tokens, but they are also immeasurably dangerous and have a hand in practically every one of the 100+ Ethereum exploits totaling to billions of dollars in damages.
Freezing tokens also comes with its own set of issues and introduces either a lot of complexity (making sure entire UTXOs are not locked just because they have 1 programmable token in them, forcing the inclusion of some type of Spending policy in every single transaction involving UTXOs that contain smart tokens even if the smart tokens are just part of the change UTXO), or a lot of spam UTXOs (ie you cannot have programmable tokens in the same UTXO as ADA / native assets).
If this is implemented I'd suggest it be a very very small subset of vetted features of programmable tokens to avoid these issues.
"Supporting this in wallets is needed anyway; wallets need to in general be able to show user funds locked by protocols."
This should be a priority for so many reasons outside of just supporting mock ERC tokens.
"Single UTXO with Merkle Tree of (owner, amount) pairs.
One UTXO per "coin" with helper token to authenticate coin. Datum would include amount, owner, etc."
I'm not particularly fond of either of those solutions.
I propose the following solution:
Smart tokens are minted to a programmableTokenValidator that enforces that those tokens cannot be sent to anywhere outside the validator address. Each user possessing smart tokens has their own UTXOs locked at the smart contract containing their smart tokens with a datum identifying them as the owner. If Bob wants to send Alice 20 of his smartCoin, he simply spends his UTXO from the script to the script adjusting the datum accordingly.

Then any arbitrary logic can be tagged onto the validator (thus giving us programmable tokens). For instance to add the ability to freeze tokens, we just enforce that the validator checks for the inclusion of a reference Input identified by some auth token managed by the creator of the programmable token. The reference input contains a datum with the field {freeze :: Bool}, if freeze = false the validator does not allow spending of the programmable token, if freeze = true spending is allowed.

I'm working on a CIP that proposes a solution with logarithmic complexity to add a new public key hash (account) and keeps the balance unrelated to the Merkle tree so that transactions with ERC20-like tokens can happen with constant complexity

Here is an example of token functionality requested for Cardano native tokens. Perhaps it can be included in the Smart Token proposal?
Title: CPS 101? - Cardano Improvement Proposal for Customizable Fees for Native Tokens
Abstract: CPS 101? proposes an innovative solution to introduce a customizable automated fee system for Cardano native tokens that can be easily executed by smart contracts on all exchanges. This proposal outlines two alternative methods for implementing the fee system - one utilizing a smart contract that controls the supply of tokens, and the other leveraging metadata of a special initial token during the mint.
Motivation: Automated fee systems have become increasingly popular in the cryptocurrency space as they incentivize token holders to hold onto their tokens and discourage frequent pump and dumps. They are also used to fund development and charitable giving. This functionality has been present on every major chain for years. However, Cardano’s current structure of native tokens makes it difficult to implement such fee systems, which rely on smart contracts to govern fees and distribution. This proposal seeks to introduce a method for implementing a similar automated fee system for Cardano native tokens, enabling greater flexibility and customization for token issuers.
Specification: Option 1 - Smart Contract-Based Fee System: To implement a smart contract-based fee system, we propose the following steps:
Create a smart contract that controls the supply of tokens and governs the behavior of the token.

Define the logic for deducting the fee from each transaction and distributing those fees to the appropriate parties within the smart contract.

Deploy the smart contract to the Cardano blockchain and associate it with the native token.

The smart contract will automatically execute and handle the fees and fee distribution whenever a transaction involving the token occurs.

Option 2 - Metadata-Based Fee System: To implement a metadata-based fee system, we propose the following steps:
Mint a special initial token that includes metadata defining the fee structure for the native token, much like the royalties done with NFTs on CIP-27.

When a user sends a transaction involving the native token, DEXs can easily implement the fee like done on NFT marketplaces.

Deduct the fee from the transaction amount, and distribute it to the appropriate parties.

Since the fee is specified in the metadata of the initial token, it does not require a smart contract to be associated with the native token.

Alternatively, the metadata could even point to a smart contract that handles the details automatically, making it more modular.
Rationale: By introducing a method for implementing a customizable automated fee system for Cardano native tokens, this proposal would enable greater flexibility and customization for token issuers. This proposal aligns with the overall goal of the Cardano ecosystem to provide a robust and flexible platform for building decentralized applications and tokens. Moreover, it will make it easier for communities to fund their projects democratically and incentivize token holders to hold onto their tokens. The proposal will make it possible for the Cardano ecosystem to attract a wide range of projects, from nation-states seeking to create their own digital currencies to charitable organizations wanting to fund their operations using the generated fees. The possibilities are endless, and the potential for innovation is vast.

As you might've deduced by now, I'm on a hiatus since December with no end in site. Life happens. Unless there is anybody else who would want to take up this proposal, @KtorZ feel free to close this.

thanks for the update @szist: I've already referred a handful of people to this CPS and thread... if there is any potential interest in carrying on the work you have done, I (we editors) will certainly refer them here. 😎

@colll78
If you squint, your proposed solution is an application of CIP-68.
Issue a user NFT to the freezing authority.
Specify the token amount and current owner in the ref NFT.
Disallow changing the amount but allow the user NFT holder to freeze.
Current owner can assign new owner.


Automatically Create CloudWatch Dashboard with Alarms for key AWS Serverless Metrics

Dashboards should aggregate key metrics for serverless AWS Services as defined in AWS Well Architected Serverless Lens: https://docs.aws.amazon.com/wellarchitected/latest/serverless-applications-lens/best-practices.html
AWS Lambda: Duration, Errors, Throttling, and ConcurrentExecutions. For stream-based invocations, alert on IteratorAge. For Asynchronous invocations, alert on DeadLetterErrors.
AWS AppSync: 5XX and Latency
Amazon SQS: ApproximateAgeOfOldestMessage
Amazon SNS: NumberOfNotificationsFailed, NumberOfNotificationsFilteredOut-InvalidAttributes
Amazon SES: Rejects, Bounces, Complaints, Rendering Failures
AWS Step Functions: ExecutionThrottled, ExecutionsFailed, ExecutionsTimedOut
Amazon EventBridge: FailedInvocations, ThrottledRules
Amazon S3: 5xxErrors, TotalRequestLatency
Amazon DynamoDB: ReadThrottleEvents, WriteThrottleEvents, SystemErrors, ThrottledRequests, UserErrors
I think this will require going through all constructs and ensuring these metrics are being recorded/reported.
Additionally, CloudWatch alarms should be raised when these errors occur. Need to decide threshold. But how will user be notified? Should we ask for alarm notification email with gboost create prompts and add that to CDK template? Should this only be done for test, prod and not for dev?

Potential API:
// infra/src/monitor-stack.ts
import { Stack } from "aws-cdk-lib";
import type { Construct } from "constructs";
import { Monitor } from "gboost-infra";

export class MonitorStack extends Stack {
  constructor(scope: Construct, id: string) {
    super(scope, id);
    // somehow automatically gathers all serverless infra and creates best practice dashboard with alarms
    new Monitor(this, "MonitorApp", { email<EMAIL_ADDRESS>});
  }
}

This is already available here!
Work still needs to be done to add it to gboost create though.

Added by default to all gboost create templates!


No Output String

I'm not getting any output string. My code is below
    @IBAction func takePhoto(_ sender: Any) {

        imagePicker =  UIImagePickerController()
        imagePicker.delegate = self
        imagePicker.sourceType = .camera

        present(imagePicker, animated: true, completion: nil)

    }

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        imagePicker.dismiss(animated: true, completion: nil)
        imageView.image = info[.originalImage] as? UIImage
        myImage = (info[.originalImage] as? UIImage)!

    }

    @IBAction func btnTapped(_ sender: Any) {
        print("Btn tapped")

        swiftOCRInstance.recognize(myImage) { recognizedString in
           // print(self.myImage)
            print(recognizedString)
         //   self.outputLbl.text = recognizedString
        }

    }

Junaid how have you converted to swift 5. Can you help me out. I'm stuck

I didn’t convert to swift 5

Which version of swift are you using?

It doesnt support for my 4.2


fix: ICA module params on v2.x

Closes https://github.com/celestiaorg/celestia-app/issues/3824 by fixing the issue for subsequent releases + mainnet
Testing
On Arabica, I can state sync from a recent snapshot the tip. To truly test this I need to state sync from a snapshot prior to the v2 upgrade height and then execute all the blocks after that but my node can't discover snapshots from that long ago. Created https://github.com/celestiaorg/celestia-app/issues/3828 which would help

Converted to draft b/c we're evaluating our options. Will have a discussion about potential fixes tomorrow.


initial AzDo port to support perf compare

This is step 1 of porting TRSS to work with Azure Devops.
For now, this will only support the perf compare feature which takes two Azure DevOps URL's and scrapes the metrics using the built-in TRSS parsers.
At some point as a next step I'd like to get the runs imported into the DB but I'd prefer to do this in a follow-up PR to avoid a single massive changeset.

Thanks @llxia, @karianna are you happy to approve this initial attempt? I’ll refactor the changes in follow-up PRs

@gdams please do make sure there is a refactoring work item in place.  As it stands it will be difficult for others to maintain this


feat(minor): Add support for more convenient FrostflakeIdentifier() init

Description
Allows for more convenient use sites when using the shared generator:
        Frostflake.setup(sharedGenerator: frostflake)

...

    let frostflake1 = FrostflakeIdentifier()
    let frostflake2 = FrostflakeIdentifier()

How Has This Been Tested?
Manual and unit test.
Minimal checklist:

[x] I have performed a self-review of my own code
[ ] I have added DocC code-level documentation for any public interfaces exported by the package
[x] I have added unit and/or integration tests that prove my fix is effective or that my feature works

I would not tell
let frostflake = FrostflakeIdentifier()

is cleaner for a new user than
let frostflake = Frostflake.generate()

When I find a code as in first example it is not clear to me what kind of frostflake I will get unless I will not look at documentation. In the same time the second example is completely self-documented and just reading a code I see a frostflake will be a brand-new-uniq instance.

It's very standard for this kind of types, see e.g. https://developer.apple.com/documentation/foundation/uuid with identical behaviour.

(I guess the point for such common currency types is that they are usually used a lot, so you are only a new user once...)


Collect OffHeap Resource stats about remaining memory

Goal is to be able to access a stats about the remaining memory from the offheap resources service of voltron that are used by ehcache server entity.
There are 2 options:

Add an observer per offheapresource in Management

pros: code in ehcache, simple to do
cons: observers and stats are duplicated for all ehcache server entities (so process work from scheduled tasks is duplicated)

Make the offheap resource module depends on statistics.jar and add the observer in the service
2.1. then, we can just register the stats at each server entity creation through a provider (so as many stats as server entities). we have the observer in 1 place, but stats computation is still duplicated. But not the observer stats (passthrough stat)
2.2. or we can leverage Terracotta-OSS/terracotta-platform#179 to make this stat at a common place

pros: easier if several entities share this service
cons: requires statistics.jar to be in common classpath

MOVED TO Terracotta-OSS/terracotta-platform#183