[BUG] test_delta_name_column_mapping_no_field_ids fails on Spark

test_delta_name_column_mapping_no_field_ids failed on Spark 3.2.4 during a recent nightly integration test run.

 Only necessary if the answer is a reference (e.g., object,
[2024-07-18T18:46:34.572Z]             list, map)
[2024-07-18T18:46:34.572Z]         :param target_id: the name of the object from which the answer comes from
[2024-07-18T18:46:34.572Z]             (e.g., *object1* in `object1.hello()`). Optional.
[2024-07-18T18:46:34.572Z]         :param name: the name of the member from which the answer comes from
[2024-07-18T18:46:34.573Z]             (e.g., *hello* in `object1.hello()`). Optional.
[2024-07-18T18:46:34.573Z]         """
[2024-07-18T18:46:34.573Z]         if is_error(answer)[0]:
[2024-07-18T18:46:34.573Z]             if len(answer) > 1:
[2024-07-18T18:46:34.573Z]                 type = answer[1]
[2024-07-18T18:46:34.573Z]                 value = OUTPUT_CONVERTER[type](answer[2:], gateway_client)
[2024-07-18T18:46:34.573Z]                 if answer[1] == REFERENCE_TYPE:
[2024-07-18T18:46:34.573Z] >                   raise Py4JJavaError(
[2024-07-18T18:46:34.573Z]                         "An error occurred while calling {0}{1}{2}.\n".
[2024-07-18T18:46:34.573Z]                         format(target_id, ".", name), value)
[2024-07-18T18:46:34.573Z] E                   py4j.protocol.Py4JJavaError: An error occurred while calling o83.sql.
[2024-07-18T18:46:34.573Z] E                   : org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 1254.0 failed 1 times, most recent failure: Lost task 0.0 in stage 1254.0 (TID 15424) (<IP_ADDRESS> executor 0): java.lang.NoSuchMethodError: org.apache.spark.sql.execution.datasources.parquet.ParquetToSparkSchemaConverter.<init>(ZZ)V
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.sql.delta.commands.ParquetTable.$anonfun$mergeSchemasInParallel$2(ConvertToDeltaCommand.scala:542)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.rdd.RDD.$anonfun$mapPartitions$2(RDD.scala:863)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.rdd.RDD.$anonfun$mapPartitions$2$adapted(RDD.scala:863)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:373)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.rdd.RDD.iterator(RDD.scala:337)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.scheduler.Task.run(Task.scala:131)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.executor.Executor$TaskRunner.$anonfun$run$3(Executor.scala:506)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1491)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:509)
[2024-07-18T18:46:34.573Z] E                   	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[2024-07-18T18:46:34.573Z] E                   	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[2024-07-18T18:46:34.573Z] E                   	at java.lang.Thread.run(Thread.java:750)
[2024-07-18T18:46:34.573Z] E
[2024-07-18T18:46:34.573Z] E                   Driver stacktrace:
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.scheduler.DAGScheduler.failJobAndIndependentStages(DAGScheduler.scala:2450)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.scheduler.DAGScheduler.$anonfun$abortStage$2(DAGScheduler.scala:2399)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.scheduler.DAGScheduler.$anonfun$abortStage$2$adapted(DAGScheduler.scala:2398)
[2024-07-18T18:46:34.573Z] E                   	at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)
[2024-07-18T18:46:34.573Z] E                   	at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)
[2024-07-18T18:46:34.573Z] E                   	at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:49)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:2398)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.scheduler.DAGScheduler.$anonfun$handleTaskSetFailed$1(DAGScheduler.scala:1156)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.scheduler.DAGScheduler.$anonfun$handleTaskSetFailed$1$adapted(DAGScheduler.scala:1156)
[2024-07-18T18:46:34.573Z] E                   	at scala.Option.foreach(Option.scala:407)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:1156)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:2638)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:2580)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:2569)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:49)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:938)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.SparkContext.runJob(SparkContext.scala:2224)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.SparkContext.runJob(SparkContext.scala:2245)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.SparkContext.runJob(SparkContext.scala:2264)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.SparkContext.runJob(SparkContext.scala:2289)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.rdd.RDD.$anonfun$collect$1(RDD.scala:1030)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.rdd.RDD.withScope(RDD.scala:414)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.rdd.RDD.collect(RDD.scala:1029)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.sql.delta.commands.ParquetTable.mergeSchemasInParallel(ConvertToDeltaCommand.scala:528)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.sql.delta.commands.ParquetTable.getSchemaForBatch(ConvertToDeltaCommand.scala:575)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.sql.delta.commands.ParquetTable.$anonfun$inferSchema$3(ConvertToDeltaCommand.scala:592)
[2024-07-18T18:46:34.573Z] E                   	at org.apache.spark.sql.delta.commands.ParquetTable.$anonfun$inferSchema$3$adapted(ConvertToDeltaCommand.scala:586)
[2024-07-18T18:46:34.573Z] E                   	at scala.collection.Iterator.foreach(Iterator.scala:943)
[2024-07-18T18:46:34.573Z] E                   	at scala.collection.Iterator.foreach$(Iterator.scala:943)
[2024-07-18T18:46:34.574Z] E                   	at scala.collection.AbstractIterator.foreach(Iterator.scala:1431)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.commands.ParquetTable.$anonfun$inferSchema$2(ConvertToDeltaCommand.scala:586)
[2024-07-18T18:46:34.574Z] E                   	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.metering.DeltaLogging.recordFrameProfile(DeltaLogging.scala:141)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.metering.DeltaLogging.recordFrameProfile$(DeltaLogging.scala:139)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.commands.ParquetTable.recordFrameProfile(ConvertToDeltaCommand.scala:449)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.metering.DeltaLogging.$anonfun$recordDeltaOperationInternal$1(DeltaLogging.scala:134)
[2024-07-18T18:46:34.574Z] E                   	at com.databricks.spark.util.DatabricksLogging.recordOperation(DatabricksLogging.scala:77)
[2024-07-18T18:46:34.574Z] E                   	at com.databricks.spark.util.DatabricksLogging.recordOperation$(DatabricksLogging.scala:67)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.commands.ParquetTable.recordOperation(ConvertToDeltaCommand.scala:449)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.metering.DeltaLogging.recordDeltaOperationInternal(DeltaLogging.scala:133)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.metering.DeltaLogging.recordDeltaOperationForTablePath(DeltaLogging.scala:105)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.metering.DeltaLogging.recordDeltaOperationForTablePath$(DeltaLogging.scala:100)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.commands.ParquetTable.recordDeltaOperationForTablePath(ConvertToDeltaCommand.scala:449)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.commands.ParquetTable.inferSchema(ConvertToDeltaCommand.scala:586)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.commands.ParquetTable.tableSchema(ConvertToDeltaCommand.scala:473)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.commands.ConvertToDeltaCommandBase.$anonfun$performConvert$1(ConvertToDeltaCommand.scala:334)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.metering.DeltaLogging.recordFrameProfile(DeltaLogging.scala:141)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.metering.DeltaLogging.recordFrameProfile$(DeltaLogging.scala:139)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.commands.ConvertToDeltaCommandBase.recordFrameProfile(ConvertToDeltaCommand.scala:71)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.metering.DeltaLogging.$anonfun$recordDeltaOperationInternal$1(DeltaLogging.scala:134)
[2024-07-18T18:46:34.574Z] E                   	at com.databricks.spark.util.DatabricksLogging.recordOperation(DatabricksLogging.scala:77)
[2024-07-18T18:46:34.574Z] E                   	at com.databricks.spark.util.DatabricksLogging.recordOperation$(DatabricksLogging.scala:67)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.commands.ConvertToDeltaCommandBase.recordOperation(ConvertToDeltaCommand.scala:71)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.metering.DeltaLogging.recordDeltaOperationInternal(DeltaLogging.scala:133)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.metering.DeltaLogging.recordDeltaOperation(DeltaLogging.scala:123)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.metering.DeltaLogging.recordDeltaOperation$(DeltaLogging.scala:111)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.commands.ConvertToDeltaCommandBase.recordDeltaOperation(ConvertToDeltaCommand.scala:71)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.commands.ConvertToDeltaCommandBase.performConvert(ConvertToDeltaCommand.scala:316)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.delta.commands.ConvertToDeltaCommandBase.run(ConvertToDeltaCommand.scala:97)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult$lzycompute(commands.scala:75)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult(commands.scala:73)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.execution.command.ExecutedCommandExec.executeCollect(commands.scala:84)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.$anonfun$applyOrElse$1(QueryExecution.scala:97)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$5(SQLExecution.scala:103)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.execution.SQLExecution$.withSQLConfPropagated(SQLExecution.scala:163)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$1(SQLExecution.scala:90)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:775)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:64)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.applyOrElse(QueryExecution.scala:97)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.applyOrElse(QueryExecution.scala:93)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.catalyst.trees.TreeNode.$anonfun$transformDownWithPruning$1(TreeNode.scala:481)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:82)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.catalyst.trees.TreeNode.transformDownWithPruning(TreeNode.scala:481)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.org$apache$spark$sql$catalyst$plans$logical$AnalysisHelper$$super$transformDownWithPruning(LogicalPlan.scala:30)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper.transformDownWithPruning(AnalysisHelper.scala:267)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper.transformDownWithPruning$(AnalysisHelper.scala:263)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.transformDownWithPruning(LogicalPlan.scala:30)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.transformDownWithPruning(LogicalPlan.scala:30)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.catalyst.trees.TreeNode.transformDown(TreeNode.scala:457)
[2024-07-18T18:46:34.574Z] E                   	at org.apache.spark.sql.execution.QueryExecution.eagerlyExecuteCommands(QueryExecution.scala:93)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.sql.execution.QueryExecution.commandExecuted$lzycompute(QueryExecution.scala:80)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.sql.execution.QueryExecution.commandExecuted(QueryExecution.scala:78)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.sql.Dataset.<init>(Dataset.scala:219)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.sql.Dataset$.$anonfun$ofRows$2(Dataset.scala:99)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:775)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.sql.Dataset$.ofRows(Dataset.scala:96)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.sql.SparkSession.$anonfun$sql$1(SparkSession.scala:618)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:775)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.sql.SparkSession.sql(SparkSession.scala:613)
[2024-07-18T18:46:34.575Z] E                   	at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)
[2024-07-18T18:46:34.575Z] E                   	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[2024-07-18T18:46:34.575Z] E                   	at java.lang.reflect.Method.invoke(Method.java:498)
[2024-07-18T18:46:34.575Z] E                   	at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
[2024-07-18T18:46:34.575Z] E                   	at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
[2024-07-18T18:46:34.575Z] E                   	at py4j.Gateway.invoke(Gateway.java:282)
[2024-07-18T18:46:34.575Z] E                   	at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
[2024-07-18T18:46:34.575Z] E                   	at py4j.commands.CallCommand.execute(CallCommand.java:79)
[2024-07-18T18:46:34.575Z] E                   	at py4j.ClientServerConnection.waitForCommands(ClientServerConnection.java:182)
[2024-07-18T18:46:34.575Z] E                   	at py4j.ClientServerConnection.run(ClientServerConnection.java:106)
[2024-07-18T18:46:34.575Z] E                   	at java.lang.Thread.run(Thread.java:750)
[2024-07-18T18:46:34.575Z] E                   Caused by: java.lang.NoSuchMethodError: org.apache.spark.sql.execution.datasources.parquet.ParquetToSparkSchemaConverter.<init>(ZZ)V
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.sql.delta.commands.ParquetTable.$anonfun$mergeSchemasInParallel$2(ConvertToDeltaCommand.scala:542)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.rdd.RDD.$anonfun$mapPartitions$2(RDD.scala:863)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.rdd.RDD.$anonfun$mapPartitions$2$adapted(RDD.scala:863)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:373)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.rdd.RDD.iterator(RDD.scala:337)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.scheduler.Task.run(Task.scala:131)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.executor.Executor$TaskRunner.$anonfun$run$3(Executor.scala:506)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1491)
[2024-07-18T18:46:34.575Z] E                   	at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:509)
[2024-07-18T18:46:34.575Z] E                   	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[2024-07-18T18:46:34.575Z] E                   	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[2024-07-18T18:46:34.575Z] E                   	... 1 more

From the stacktrace posted above, we can see this is happening in the CPU session which has nothing to do with the plugin.  Looks like Delta Lake 2.0.x doesn't fully support Spark 3.2.4 which added a new constructor parameter to ParquetToSparkSchemaConverter.


Settings fix

It looks like a giant pr but all the changes are the same- just every Settings usage was touched.
Changelog:

Settings are now loaded when DI resolves setting class
Removed callbacks from features that exposed inner logic to the most high level interfaces

Mine!

@bokobza I've explained logic behind this PR to Dan but since you'd like to take a look at it I'll outline them here.
Here are the problems I have with the current design:

In every *Settings class we have callbacks.
public DnsSettings(Action<DnsSettings> callback)
    : this()
{
    this.callback = callback;
}

Those are callbacks that are called after the settings are loaded- at the end of Load method.
Now in the *Feature classes during adding a singleton we propagate this callback from the parameter of the method to the settings's constructor.
public static IFullNodeBuilder UseDns(this IFullNodeBuilder fullNodeBuilder, Action<DnsSettings> setup = null)
        {
            LoggingConfiguration.RegisterFeatureNamespace<DnsFeature>("dns");

            fullNodeBuilder.ConfigureFeature(features =>
            {
                features
                .AddFeature<DnsFeature>()
                .FeatureServices(services =>
                {
                    services.AddSingleton(fullNodeBuilder);
                    services.AddSingleton<IMasterFile, DnsSeedMasterFile>();
                    services.AddSingleton<IDnsServer, DnsSeedServer>();
                    services.AddSingleton<DnsSettings>(new DnsSettings(setup));
                    ...

the question is: why do we expose such a low level logic to the high level interface of the FN builder?
This callback mechanic is used only in the tests and dns feature.
What's wrong with just adding a commandline argument?
We can always achieve overriding of some setting by just adding a command line argument- node settings reader will always use last specified value in case there are many.

Now instead of loading settings at the moment DI resolves settings class (when instance is first time accessed) we have an additional level of complexity- Load methods that are called by the FN feature executor:
this.Execute(service => service.LoadConfiguration());

and this leads to the kind of mistakes we had after yesterday's PR- wrong launch sequence when settings class was accessed before Load was executed.
I don't see why we need an additional step at the node's initialization which just loads the settings from commandline args and config.
Also that leads to more lines in tests- first create the settings class and after call Load on it.
What I did in this PR is the removal of those Load methods- moved settings loading back to the constructor so it's executed when DI resolves the class and removed callbacks.

@bokobza all fixes except for those removed tests are applied. Thanks for review! 🙂
Let me know if you think that those tests make sense (imho they don't test anything)- I'll return them.

If the tests can test that the settings are applied properly, there is still some value in my opinion.

Let's wait for a second review.

Reintroduced the tests

If the tests can test that the settings are applied properly, there is still some value in my opinion.

Fair point

Let's wait for a second review.

Ok


fix(extension): extend JWT auth token expiration for extension EE-3065

The default expiration time of 8 hours does not make sense in the
context of the docker desktop extension. This adds a new feature flag
which can be enabled with --feat "docker-extension" and when present
will set the expiration time to 99 years.
I've set this flag in the docker-compose.yml we use when building our
docker extension.

Per William's suggestion I've updated both PRs to use an environment variable DOCKER_EXTENSION instead of the feature flag.


ant publish broken because google code no longer allows re-uploads.

Migrated from Google Code (issue 221)

Migration done in e453c2fafab13c066a7260434f0c08f61e437c8b, 315671e79d118de718ae53b664878dd168f70ca2, e437ff4d3c84102092d6da0f1478cc54fcd84844, et al. I suggest you create a new issue for the download counter if you still want it.


Inventory Applying triggers IndexOutOfRange

Currently don't have the time to debug myself, so I'll just drop the error here.
I might take a look at it on the weekend, if it isn't fixed by then.
From an initial look at it, it seems to be triggered in the routine that reassigns menu references for persistence.
// Reassign created menus to each other as submenus so the reference persists post restart.
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
  at System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) [0x00029] in <eae584ce26bc40229c1b1aa476bfa589>:0
  at System.ThrowHelper.ThrowArgumentOutOfRangeException () [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0
  at System.Collections.Generic.List`1[T].get_Item (System.Int32 index) [0x00009] in <eae584ce26bc40229c1b1aa476bfa589>:0
  at InventoryInventor.Manager.CreateMenus (VRC.SDK3.Avatars.ScriptableObjects.VRCExpressionsMenu& mainMenu, System.Int32 totalItems) [0x00a98] in E:\UnityProjects\Saki_Base_2019\Assets\Inventory Inventor\Editor\Scripts\InventoryInventor.cs:925
  at InventoryInventor.Manager.CreateInventory () [0x0179e] in E:\UnityProjects\Saki_Base_2019\Assets\Inventory Inventor\Editor\Scripts\InventoryInventor.cs:643
UnityEngine.Debug:LogError (object)
InventoryInventor.Manager:CreateInventory () (at Assets/Inventory Inventor/Editor/Scripts/InventoryInventor.cs:706)
InventoryInventor.InventoryInventorWindow:DrawCreateWindow () (at Assets/Inventory Inventor/Editor/Windows/InventoryInventorWindow.cs:192)
InventoryInventor.InventoryInventorWindow:OnGUI () (at Assets/Inventory Inventor/Editor/Windows/InventoryInventorWindow.cs:83)
UnityEngine.GUIUtility:ProcessEvent (int,intptr)

After looking into it a bit, I can't seem to reproduce your error. Additionally, without more information or my hands on the preset your using, I can't really debug the issue much further.
The only two scenarios that this case could be thrown, both of which shouldn't ever occur to begin with, are if the menu created has more controls than the number of items in the page it's made from or if the menus are created in a different order than they are listed in the Preset.
If you would be able to figure out which of these is the case for you and potentially why it is happening, it would greatly help.

That's what threw me off as well. Didn't look further into it because of that.
I'll probably take a look and throw in some debug code over the weekend.

Ok from what I can gather so far, it's mostly about things getting screwed up by the creation referencing names with similar names.
The 2 big issues (which kind of relate to the same initial problem) are

The call to FindAssets is getting done with an unquoted name, which can result in multiple results, which messes with the referencing of files in the script (ex: Outfits - Page 1 and Outfits - Page 2 would result in Outfits - Page 1 t:VRCExpressionMenu and Outfits - Page 2 t:VRCExpressionMenu which would both result in the same result set, so in my case, referencing page 1 twice, instead of upholding the referencing)
The call to DeleteAsset apparently is having a similar issue, although I'm not 100% sure, why that would be, since it should be doing it by file path? From my observations though, it will on some cases delete a previously created similar asset, that we had in the set, causing our pages to now contain null references.

Honestly, I think apart from the query needing to be quoted regardless, I think solving this generally by normalizing the names related to stuff, is the better approach here.
I'll probably work on that tomorrow and try and get a PR up for this.

Main issue with FindAssets has been fixed in v1.3.1, which seems to have also resolved the DeleteAsset issue according to the author. Name normalization is a work in progress.


Bug report - Regression of VAD quality between 3.1 and 4.0 (speech detected on perfect silence)

🐛 Bug
On some audio, the quality of the VAD is reallly worse in the latest version v4.0, compared to what it was in v3.1
More precisely, v4.0 detects speech on "quasi perfect" silent period:

left: v4.0
right: v3.1

Another user reports the same experience (and spotted v3 to me): https://github.com/linto-ai/whisper-timestamped/issues/74#issuecomment-1817482101
Also, I have troubles to revert to v3.1. See comment here: https://github.com/linto-ai/whisper-timestamped/pull/142#discussion_r1398256438
Maybe I missed something to handle versioning with silero-vad.
Any help on this PR would be very much appreciated.
To Reproduce
Audio to reproduce : https://github.com/linto-ai/whisper-timestamped/files/11220341/jon.zip

It is a known issue with near zero signals.
This is not a bug, this is a feature (tm).
The newer VAD tries to suppress spurious activations with subtle speech in the background.
We are still thinking on how to fix this if possible at all.
Because suppressing some noise in the background and working on perfectly silent audios are mutually exclusive. In any case post-processing hyper-parameters should be tuned for each domain. Maybe a VAD should have a flag.

Yeah, looks like "perfect" silence:

To be solved with a V5 release

Great job!

Any updates on this?

Pumped for next version of silero_vad.onnx!

Since the noise is really near-zero, could this be prevented by a preprocessing filter cutting long parts below a set threshold, or -20dB below the average RMS?

you're right. I tried compute RMS per frame and set a threshold of RMS*1000 < 10 and it works well.

Since the noise is really near-zero, could this be prevented by a preprocessing filter cutting long parts below a set threshold, or -20dB below the average RMS?

you're right. I tried compute RMS per frame and set a threshold of RMS*1000 < 10 and it works well.

Good. With frame you mean the 512/1024/1536 samples?

The new VAD version was released just now - https://github.com/snakers4/silero-vad/issues/2#issuecomment-2195433115
It was designed with this issue in mind and performance on edge cases like thhis data was significantly improved - https://github.com/snakers4/silero-vad/wiki/Quality-Metrics
Can you please re-run your tests and if the issue persists - please open a new issue


'nlohmann/json.hpp' file not found

For some reason I am getting this error message on basic setup when running this library on VS Code:
UIDeveloperTest.cpp:26:10: fatal error: 'nlohmann/json.hpp' file not found
#include "nlohmann/json.hpp"
^~~~~~~~~~~~~~~~~~~
1 error generated.
I can not seem to find the solution to this error.

In order to asses your issue, we need the following information:

What is the issue you have?

Please describe the steps to reproduce the issue. Can you provide a small but working code example?

What is the expected behavior?

And what is the actual behavior instead?

Which compiler and operating system are you using? Is it a supported compiler?

Did you use a released version of the library or the version from the develop branch?

If you experience a compilation error: can you compile and run the unit tests?

When trying to include the library with the following line:
#include
#include
#include
#include "nlohmann/json.hpp"
using json = nlohmann::json;
using namespace std;
int main() {
cout << "Hello World!";
return 0;
}
I get this error:
fatal error: 'nlohmann/json.hpp' file not found
I am running Visual Studio Code on a Mac I believe its being compiled using clang

Where did you put the json.hpp file?

Inside of a folder labeled nlohmann and then that is inside of a folder labeled include.

I am not familiar with Visual Studio Code. Maybe change the include to #include <nlohmann/json.hpp> and try to set the include path to your project path.

Yes I tried to change include to <nlohmann/json.hpp>, it didn't make a difference.

What’s the include path? Which build system are you using?

"includePath": [
"${workspaceFolder}/**"
],
using clang as the build system

I'm sorry, I have no idea how to fix this error as it is not related to this library. Please seek help in a forum for VS Code.

@Honorable22 Did you get any solution?

No. I did not get an solution.

On Sep 29, 2020, at 8:46 AM, shivam kumar singh<EMAIL_ADDRESS>wrote:

@Honorable22 Did you get any solution?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Never mind, My code compiles now :)

What was your solution?

On Sep 29, 2020, at 8:58 AM, shivam kumar singh<EMAIL_ADDRESS>wrote:

Never mind, My code compiles now :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

What was your solution?

First I had to install the nlohmann_json package from apt sudo apt install nlohmann-json-dev
then simply g++ file.cpp

Thank you for sharing.

On Sep 29, 2020, at 10:53 AM, shivam kumar singh<EMAIL_ADDRESS>wrote:

What was your solution?
First I had to install the nlohmann_json package from apt sudo apt install nlohmann-json-dev
then simply g++ file.cpp
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

if you experience the same issue. you can solve it by adding (nlohmann-json) the path to c_cpp_properties.json like this
{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "${workspaceFolder}/**",
                "/opt/homebrew/Cellar/nlohmann-json/3.10.5/include/"
            ],
           ...
          ...

 c_cpp_properties.json can be found in your current working dir under .vscode dir

@kevinmukuna didn't help :(

I tried installing nlohmann json and some files found missing in /usr/include/nlohmann. I used sudo apt-get install nlohmann-json3-dev for installation and it was success. However some files are missing. My system details:
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.5 LTS
Release:	20.04
Codename:	focal
Architecture is arm64.
Can anyone please help to get it resolved?

I tried installing nlohmann json and some files found missing in /usr/include/nlohmann. I used sudo apt-get install nlohmann-json3-dev for installation and it was success. However some files are missing. My system details:
Distributor ID: Ubuntu
Description: Ubuntu 20.04.5 LTS
Release: 20.04
Codename: focal
Architecture is arm64.
Can anyone please help to get it resolved?

I am not maintaining this package. Please contact the maintainer.

I am not maintaining this package. Please contact the maintainer.

@nlohmann Thanks for the reply. Can I please know the details of the maintainer?

I do not know. You should be able to look this up in your distro.

When I do sudo apt install nlohmann-json-dev
It give me this:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package nlohmann-json-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
Any other solution or stable branch available?

sudo apt install libstdc++-12-dev this also did not resolve this error.
still getting error
.plugin_symlinks/flutter_secure_storage_linux/linux/include/json.hpp:18:8: error: macro name missing
/home/aseem/code/pangea_flutter/linux/flutter/ephemeral/.plugin_symlinks/flutter_secure_storage_linux/linux/include/Secret.hpp:12:17: error: implicit instantiation of undefined template 'std::basic_string<char>'
/home/aseem/code/pangea_flutter/linux/flutter/ephemeral/.plugin_symlinks/flutter_secure_storage_linux/linux/include/Secret.hpp:57:25: error: use of undeclared identifier 'nlohmann'


Add Introductory Price to InAppBillingProduct

In android, and iOS as well, fields about the Introductory price would be very useful.
iOS Documentation about introductory price: https://developer.apple.com/documentation/storekit/in_app_purchase/offering_introductory_prices_in_your_app
Android Documentation about introductory price: https://developer.android.com/google/play/billing/billing_subscriptions.html#intro
Bug Information
No Fields available regarding Introductory price
Version Number of Plugin: 1.2.4 (and the latest github version)
Device Tested On: iPhone 6/ Samsung S5
Simulator Tested On: N/A
Version of VS: 7.3.3
Version of Xamarin:  Xamarin.iOS -Version: <IP_ADDRESS> (Visual Studio Community)
Xamarin.Android Version: <IP_ADDRESS> (Visual Studio Community)
Versions of other things you are using: N/A
Steps to reproduce the Behavior
Call GetProductInfoAsync.
Expected Behavior
InAppBillingProduct containing fields regarding wether Introductory price is available and the specific introductory prices for the product.
Actual Behavior
No fields available for introductory price in InAppBillingProduct after calling GetProductInfoAsync.
Code snippet
N/A
Screenshots
N/A

@jamesmontemagno
could you pls reopen this issue?
Because the crash occurs in our app
Application Specific Information:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SKProduct introductoryPrice]: unrecognized selector sent to instance 0x174214a50'
Version 1.2.4-136beta


Fix for OutOfDirectMemoryError.

Use fixed RCVBUF buffer allocator instead of the adaptive one.
Before or while filing an issue please feel free to join our  slack channel to get in touch with development team, ask questions, find out what's cooking and more!
Issue #, if available:
Description of changes:
Testing done:
To run CI tests on your changes refer README.md
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Please retrigger CI.


No longer working with Groovy files

I have noticed that in the most recent versions of Auto Comment Blocks (v1.0.1) and VS Code (v1.31.0), the extension no longer seems to work with .groovy files. The extension still works with JavaScript files, FWIW.

sigh Now, I'm getting inconsistent results. Perhaps another extension is interfering with this one. Closing for now. Sorry.


Chunk tables of size 5 fore restoring.

Description
Chunk tables of size 5 fore restoring.
Related Issue
Restoring all table at one is causing some table restore to fail so improved the restoration process to restore table on chunk

#1146 Created to make the restore process more efficient.


这怎么办

Even though the initial HTML page is loaded over a secure HTTPS connection, some resources like images, stylesheets or scripts are being accessed over an insecure HTTP connection. Usage of insecure resources is restricted to strengthen the security of your entire site.To resolve this issue, load all resources over a secure HTTPS connection.受影响的资源1 项资源

名称
限制状态

kedou.workerman.net:8280/
已屏蔽

与服务器断开连接了。您可以重新刷新页面。


Requires JQuery (breaks with jqLite)

Because the library uses Object.is(), it requires the full version of jQuery. It'd be cool if this were replaced so jqLite could be used (looking at you, Angular users)

HI,
thank you for tip. I will remove jQuery dependency soon.


[HS2][HS2PE] blend shapes for mouth, teeth and tongue not working correctly

When using the blend shapes function in HS2PE, most sliders for the mouth, teeth and tongue do not seem to work. Any other sliders for eyes etc. seemingly work just fine. I've found a few posts scattered about where people describe the same issue, but I've yet to find any solution to it.
I'm thinking I've probably overlooked something obvious here but I'm starting to think I'll have to manually remove mods that could be conflicting with HS2PE to try and find the cause of this.

I believe these sliders only work with some of the expressions.

I'm not sure I understand. Shouldn't I be able to change the mouth just like eyes for example? I remember it working a few months back but I am now unable to properly use the function since the mouth barely changes (if at all), even though the values do.

As seen here, the only working ones are no.39 and no.41, all others have no effect.
I apologize if I've fundamentally misunderstood something.

Likely caused by a file conflict. When using BetterRepack, I was able to restore functionality by deleting my BepInEx folder and replacing it with the backup from R13. Pretty sure it's a conflict with something added in R14.

@Fadbeet132 Can you pinpoint what exactly is causing the issue?

Still investigating, I'll look into it this weekend.

So I ran the upgrade package for R14 again over my existing install, and blend shapes are still working. Not sure what causes it, but this worked for me:

Run Update from r13 to r14
Delete BepinEx folder
replace BepInEx folder with the backup of R13
Run update r13 to r14 package again

During the upgrade last time I also installed LoveMachine, not sure if that had any effect on the hooks used for BlendShapes. It would make sense though, LM may use blend shapes to detect current animation states.

During the upgrade last time I also installed LoveMachine, not sure if that had any effect on the hooks used for BlendShapes. It would make sense though, LM may use blend shapes to detect current animation states.

Can you try installing LoveMachine now that the bug is gone? You can get it here.

Reinstalled LoveMachine, bug has not come back.


Random Generator Function Updated

Related Issue

Closes: #168
Description of Changes
The given PHP code, which generates a random number and assigns it to a variable, has been fixed by replacing it with JavaScript code because the code is executed on the server-side, and once the HTML with the JavaScript code is sent to the client, the PHP code is no longer active.
The new code generates a random hexadecimal number of length 6 and assigns it to the variable randNum. The generated number is then displayed in the shortenLink input field when the generateRandom button is clicked.
Previous Code
                <?php
                                $randNum = bin2hex(random_bytes(3));;
                                echo "
                                        <script>
                                                document.querySelector('#generateRandom').addEventListener('click',function(){
                                                        console.log('sadfsdg');
                                                        document.querySelector('#shortenLink').value='". $randNum."';
                                                    });
                                        </script>
                                ";
                ?>

New Code
    <script>
        document.querySelector('#generateRandom').addEventListener('click', function () {
            var randNum = Array.from({ length: 6 }, () => Math.floor(Math.random() * 16).toString(16)).join('');
            console.log(randNum);
            document.querySelector('#shortenLink').value = randNum;
        });
    </script>

Checklist:

[x] My code adheres to the established style guidelines of this project.
[x] I have conducted a self-review of my code.
[x] I have included comments in areas that may be difficult to understand.
[x] I have made corresponding updates to the project documentation.
[x] My changes have not introduced any new warnings.

Screenshots
Here is Video
https://github.com/apoorvaron/Shorty/assets/85815172/a87b9d71-65d7-4522-8ddd-9ac208d350b2

@Nishitbaria Random number is working but responsiveness is not done

@

@Nishitbaria Random number is working but responsiveness is not done

Will Soon Update

@apoorvaron I have done responsive please check
https://github.com/apoorvaron/Shorty/assets/85815172/8f2e514a-3cda-4ff9-865c-b6b2ec976980

I have one more thing to ask but first you check commits first

Just do this by changing the style
Style (change stylings using media query , don't just add directly other it will affect desktop view too)

I have one more thing to ask but first you check commits first

@Nishitbaria Ask

I have one GitHub workflow which is checks whether code is in a prettier format or not so if you need it then I can create a new issue and pull a request today  @apoorvaron its very helpful for formatting code  ;)

@Nishitbaria Ya sure

@apoorvaron Thanks Man but before I wanna discus two issues I noticed

For newLink.php

function blockSpecialChar(e) {
        let value = document.querySelector('#shortenLink').value;
        let previewBtn = document.querySelector('#previewBtn');

        if (value.length != 0) {

            previewBtn.removeAttribute("hidden");
        }
        var k;
        document.all ? k = e.keyCode : k = e.which;
        return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57));
    }

This code makes previewBtn Visible ok... but if user pressed random button then preview button will never show This issue was on previous code also before this merge because this blockspecialChar function handles its thatswhy
i want to solve in this request only

and another one that the onkeypress function  is depreciated in android chrome browser etc means it doesnt works in android means android doesnt supports it and it has alternative like onkeydown or onkeyup but the blockSpecialChardoesnt work on android means user can still enter special characters so
we can solve it by making a function which checks after Shorten button is pressed
Any Suggestion regarding this issues ?
should i create ?

@Nishitbaria yes , you can definitely work on this and create another PR if you want.

@apoorvaron   should I create an issue for that or direct create the PR?

According to guidelines, first you have to create a issue

@apoorvaron There is issue in your tag of level3 that it should be in lowercase but in your first character is captial please fix it as our points are not counted

@Nishitbaria updated


Simplify smoke test log generation.

Don't do different things for the log analyzer and otherwise.

Codecov Report
Patch and project coverage have no change.

Comparison is base (105f100) 93.13% compared to head (81344c0) 93.13%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1901   +/-   ##
=======================================
  Coverage   93.13%   93.13%
=======================================
  Files         355      355
  Lines       25843    25843
=======================================
  Hits        24069    24069
  Misses       1774     1774

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


HLS - Use HLS video encoding and give it a top priority to stream.

Description
LEARNER-4757

Added another column of ‘URL_HLS’ in database to persist HLS video encoding in database.
Please refer to Jira story for more details.

Testing:

As database migration is involved, so all edge cases related to that should be tested.

Issue yet to fix:
- Download some video with old code base database version 6, then update to new code base(code of this PR) with database version 7, downloaded video download state will not be shown in course outline list view.

@miankhalid know issue has been fixed. It ready for complete review now.

Commit messages aren't helpful and too short. They should be brief and atleast tell the purpose of something's addition/deletion.
Please update the commit messages.


JBDS-4138 Remove setx VAGRANT_DETECTED_OS setup from vagrant installer

Fix remoses execution setx from vagrant.js, because it is CDK
responsibility to set it up.

test this

test this


fc3d_FixedPoint_set_internalsolver_tolerance: too many prints in verbose mode

is called inside nsgs loop and if numerics is in verbose mode, it prints at each iteration of the solver
fc3d_FixedPoint_set_internalsolver_tolerance - Internal solver tolerance is set to ...
it is unusable in a simulation,
maybe some flag numerics_debug is needed ?

Perhaps, you can increase the level of verbose to 2

fixed in  683ec52


Add approximate price in USD (or EUR)

Using this library:
https://www.npmjs.com/package/cryptocompare

Would Origin emphasize cryptocurrency or real world currency more to customers at launch? The emphasized currency might be displayed in a more pronounced way, IE:

vs.

Great question. Showing prices in fiat seems way more friendly to me. A few things we need to keep in mind though:

Our community is global, so we need to support a lot more fiat currencies than just USD
We'll need to find free and reliable API's for doing the ETH/Fiat conversion (with a fallback plan if that data is not available for any reason)
Users should be able to set their preferred currency in the DApp. It would be nice to make an intelligent guess from their location & or have whatever currency they choose be cached and remembered in localStorage.

We should always have an ETH price. A fiat equivalent may or may not be available depending on whether we know the users location and the local conversion rate.

Ideally we'd use an on chain oracle to pull the exchange rates. It gives the user more privacy, since they aren't sending requests to a random API owned by someone else.
One example of such an onchain oracle is this one, from the Dai Stablecoin, that averages 13 other ETH/USD oracles
https://makerdao.com/feeds/#0x729d19f657bd0614b4985cf1d82531c67569197b

Agree in principle, although not sure how performant that is going to be.
I could see this ending up as yet another function of your trusted bridge server.

Agree with Josh. For now bridge server seems like the easiest solution.
On Tue, Apr 17, 2018 at 8:48 AM Josh Fraser<EMAIL_ADDRESS>wrote:

Agree in principle, although not sure how performant that is going to be.
I could see this ending up as yet another function of your trusted bridge
server.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/OriginProtocol/demo-dapp/issues/36#issuecomment-382042914,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEuxN2ynL_YFrBfKs37iiMfdAb_1oVJtks5tpg7NgaJpZM4RVhXS
.

--
Cofounder of Origin http://www.originprotocol.com
Join our Telegram http://t.me/originprotocol.com

It should be very performant - we just check the value once every fifteen minutes or so, and store it locally with an expiration time. It doesn't have to happen on every page load.

I do agree however that this may want to go into the bridge server, since that way if an oracle goes haywire, existing daps aren't stuck with it.

I was imagining far more real-time updates given how volatile crypto can be. Let's plan on 1 minute caching at most.

+1
On Tue, Apr 17, 2018 at 10:17 AM, Josh Fraser<EMAIL_ADDRESS>wrote:

I was imagining far more real-time updates given how volatile crypto can
be. Let's plan on 1 minute caching at most.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/OriginProtocol/demo-dapp/issues/36#issuecomment-382072616,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEuxN1DKyzUUItramCtEzWeXjohZHeqKks5tpiObgaJpZM4RVhXS
.

--
Cofounder of Origin http://www.originprotocol.com
Join our Telegram http://t.me/originprotocol.com

While it would be great to role our own, currency conversion is outside our scope.
There are numerous projects doing this, and Origin Dapp creators are free to use any API/service that they like. Demo-dapp is, after all, just an example.
According to this commit, Metamask is using the Cryptonator API. The commit notes, "Thankfully they don't have limits, so we can ping liberally".
Given that currently most of our users will be finalizing transactions in Metamask, I suggest it makes the most sense for Demo-Dapp to use the same conversion API.

Should users be able to specify prices in either ETH or USD/etc? Having that feature would allow a user to peg their listing (otherwise, if a user had a listing on both Craigslist and Origin for instance, they'd have to adjust the Origin listing to track exchange rates)

@ambertch - For now the listing price will remain constant (in ETH) and we'll just worry about displaying it also in the user's desired currency.
Giving the seller the option to price a listing in fiat (and have the eth/crypto price dynamically updated) is very cool and something we've discussed, but is not in scope for v1.

Making progress.

network call via cc
test

Limiting factor in my implementation is currently with nock; see commit msg

RFC : https://github.com/OriginProtocol/demo-dapp/pull/118

https://github.com/OriginProtocol/demo-dapp/pull/118

Sorry for the hold-up on this; I've attempted to hold myself to a TDD standard but given an infra issue this still is not ready.
I'm going to be fairly preoccupied next week (between work and Google I/O) so I'll look to do a PR with just the code change (and commented-out test) latest in two weeks.

related to https://github.com/OriginProtocol/demo-dapp/issues/185

see also : https://github.com/OriginProtocol/demo-dapp/issues/149

Done via #188 ✅


Stop reader

Is there a way to stop the reader from listening? If I use reader.close(), the entire node.js process stops (on mac). reader.disconnect() doesn't work either. Reader keeps listening.
reader.on('card.off', card => {

            try {

              reader.emit('end');

          	} catch (err) {
          		console.error('error when reading data', err);
          	}
});

reader.on('end', () => {

          reader.close();
});

I basically want to have an interface with a button 'read NFC' and on click it needs to listen for nfc input, but once the card leaves and input is read, I want the nfc process killed. Help would be much appreciated.

Got it, just changed the on. to once. so the event happens only once. Fairly new to node.js here...


Running no Yaml conf stopped in error import matplotlib

The python included in ML engine is not including matplotlib.
How you overcome this?

pip install matplotlib


permissions for sub-directories created in shared directory

Shared directory should be RW for all, which is how the permissions are set.
However, directories created under shared default to RO.  This can cause difficulty when trying to collaborate with others.

Actually, the correct permissions within a shared folder should be rw for the group the shared folder belongs to, rw for all would mean folks who don't have access to the folder would get access.

Actually, the correct permissions within a shared folder should be rw for the group the shared folder belongs to, rw for all would mean folks who don't have access to the folder would get access.

This is an old SO post but does describe the behavior needed:
https://superuser.com/questions/277775/ensuring-new-files-in-a-directory-belong-to-the-group

This is an old SO post but does describe the behavior needed:
https://superuser.com/questions/277775/ensuring-new-files-in-a-directory-belong-to-the-group

https://blog.superuser.com/2011/04/22/linux-permissions-demystified/
"SetGID, however, is a whole different ball game.  When a directory has the SetGID bit set and a file is created within that directory the group ownership of the file is automatically modified to be the group of the directory."
☝ can we do this with the nfswrapper qhub is using?

https://blog.superuser.com/2011/04/22/linux-permissions-demystified/
"SetGID, however, is a whole different ball game.  When a directory has the SetGID bit set and a file is created within that directory the group ownership of the file is automatically modified to be the group of the directory."
☝ can we do this with the nfswrapper qhub is using?

Shall we add this to the technical discussion meeting tomorrow? @dharhas @tylerpotts @brl0

Shall we add this to the technical discussion meeting tomorrow? @dharhas @tylerpotts @brl0

This will become easier to implement as soon as we have local testing is implemented.

@tylerpotts @aktech could you point me where the nfs configs are? I've saw some of the groups permissions here and here. I got the idea for the proposed changes using SetGID, but I'm not sure where should I put those changes...

This needs to be modified https://github.com/Quansight/qhub-cloud/blob/f4c30f4f3c4f282cfe0d82a0d90dbeac01cf8e4c/qhub/template/{{ cookiecutter.repo_directory }}/templates/jupyterhub_config.py.j2#L91

Reopening as there are still issues with the write permissions.

Moving to 0.4 release since this issue is partially complete but will need more investigation

@costrouc says this is fixed.

Reopening as there are still issues with the group/users permissions

I am fairly new to QHub, here are my observations

I started with creating a .ipynb file in the shared directory. Which resulted in a permission denied issue.
Later I tried opening an exiting file which threw a JSON exception (unreadable notebook)
I used vscode initially to open and later switched to Jupyter notebook
After a constant struggle I ended up restarting the QHub instance and was able to create a .ipynb file in my home (haven't tried in shared folder post restarting)

Closed as Keycloak will now handle user management which will lesser the related file permissioning issues on QHub


ADR for etcd status

Proposed Changes

ADR
Types of Changes

Verification

Testing

Linked Issues

https://github.com/k3s-io/k3s/issues/8033

User-Facing Change

Further Comments

@vitorsavian since we're not getting any engagement on this, lets move forward with adding an etcd status condition. If that ends up being a problem for the Rancher folks we can address it with them later.

cc @cwayne18 @caroline-suse-rancher


add psp17receiver, update tests

yes ok, good idea, I will do that after your tests are merged to main


fixed content type on README + misc reformatting

Pull Request Test Coverage Report for Build 153

1 of 3 (33.33%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 70.707%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

fancyimpute/solver.py
0
2
0.0%

Totals

Change from base Build 151:
0.02%

Covered Lines:
840

Relevant Lines:
1188

💛  - Coveralls


feat: wip proxy support

addresses #9
The proxy functionality is properly structured in:

/src/proxy/types.ts - Type definitions
/src/proxy/ProxyManager.ts - Implementation
/src/popup/components/ProxySettings.svelte - UI component

need to also resolve this error:
Unchecked runtime.lastError: You do not have permission to use blocking webRequest listeners. Be sure to declare the webRequestBlocking permission in your manifest. Note that webRequestBlocking is only allowed for extensions that are installed using ExtensionInstallForcelist.


Error: Error reading from stdin: Error: write EPIPE"

Expected behavior
I want to  run a phantom by url route when a pass a query

ph created
page created
page opened: success

ex.:
exports.index = function* () {
  const url = this.query.url;

  if (urlReg.test(url)) {
    const instance = yield phantom.create();
    const page = yield instance.createPage();

    const status = yield page.open('https://stackoverflow.com/');
    console.log(status);

    const content = yield page.property('content');
    console.log(content);

    yield instance.exit();
    this.data = status;
  } else {
    this.data = null;
  }
};

Actual behavior
it throw a error:
Error: Error reading from stdin: Error: write EPIPE at Phantom._rejectAllCommands (/home/nemo/local/uae_agent/apps/catchJsError/node_modules/phantom/lib/phantom.js:357:41) at Phantom.kill (/home/nemo/local/uae_agent/apps/catchJsError/node_modules/phantom/lib/phantom.js:337:14) at Socket.Phantom.process.stdin.on.e (/home/nemo/local/uae_agent/apps/catchJsError/node_modules/phantom/lib/phantom.js:175:18) at emitOne (events.js:96:13) at Socket.emit (events.js:188:7) at onwriteError (_stream_writable.js:318:10) at onwrite (_stream_writable.js:336:5) at WritableState.onwrite (_stream_writable.js:89:5) at fireErrorCallbacks (net.js:455:13) at Socket._destroy (net.js:496:3)

Environment

OS:  6.0.0
Node version (node -v): linux
package version: 4.0.2

I don't understand what your problem is or what is causing it. I can't reproduce it. Can you provide something I can run locally? A way to reproduce it would be nice.

Closing this ticket because there has been no response. We can reopen if needed.

SSH login into fresh CentOS 7 install, using Putty.
Just trying to open a simple page (works on Windows).
[1555] Unhandled Rejection at: Promise Promise {
  <rejected> Error: Error reading from stdin: Error: write EPIPE
    at Phantom._rejectAllCommands (/jsonrpc-bidirectional/node_modules/phantom/lib/phantom.js:357:41)
    at Phantom.kill (/jsonrpc-bidirectional/node_modules/phantom/lib/phantom.js:337:14)
    at Socket.Phantom.process.stdin.on.e (/jsonrpc-bidirectional/node_modules/phantom/lib/phantom.js:175:18)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:191:7)
    at onwriteError (_stream_writable.js:341:10)
    at onwrite (_stream_writable.js:359:5)
    at fireErrorCallbacks (net.js:480:13)
    at Socket._destroy (net.js:521:3)
    at WriteWrap.afterWrite [as oncomplete] (net.js:815:10) } reason Error: Error reading from stdin: Error: write EPIPE
    at Phantom._rejectAllCommands (/jsonrpc-bidirectional/node_modules/phantom/lib/phantom.js:357:41)
    at Phantom.kill (/jsonrpc-bidirectional/node_modules/phantom/lib/phantom.js:337:14)
    at Socket.Phantom.process.stdin.on.e (/jsonrpc-bidirectional/node_modules/phantom/lib/phantom.js:175:18)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:191:7)
    at onwriteError (_stream_writable.js:341:10)
    at onwrite (_stream_writable.js:359:5)
    at fireErrorCallbacks (net.js:480:13)
    at Socket._destroy (net.js:521:3)
    at WriteWrap.afterWrite [as oncomplete] (net.js:815:10)

Node.js v7.9.0
Reproduce using:
git clone git@github.com:oxygens/jsonrpc-bidirectional.git jsonrpc-bidirectional
cd jsonrpc-bidirectional
npm install
node --expose-gc --max-old-space-size=3072 tests/bug_uws_close_await_hang.js

Basically, this reproduces the issue for me:
const Phantom = require("phantom");

(async ()=>{
	const phantom = await Phantom.create(
		[],
		{
			logger: console,
			logLevel: "error" // error | debug
		}
	);

	const phantomPage = await phantom.createPage();
	await phantomPage.setting("javascriptEnabled", true);

	const strPhatomPageURL = "https://google.com";
	await phantomPage.open(strPhatomPageURL);
})();

These people have the same issue since apr 2015:
https://github.com/marcbachmann/node-html-pdf/issues/35

Did you try npm rebuild phantomjs-prebuilt?

I tried running jsonrpc example and I get
[54689] Unhandled Rejection at: Promise Promise {
  <rejected> ReferenceError: phantomPage is not defined
    at AllTests.callRPCMethodFromWebPage (/Users/amirraminfar/Desktop/jsonrpc-bidirectional/tests/AllTests.js:1029:9)
    at process._tickCallback (internal/process/next_tick.js:109:7) } reason ReferenceError: phantomPage is not defined
    at AllTests.callRPCMethodFromWebPage (/Users/amirraminfar/Desktop/jsonrpc-bidirectional/tests/AllTests.js:1029:9)
    at process._tickCallback (internal/process/next_tick.js:109:7)

instead.
I then tried running await phantomPage.open("https://google.com"); on my mac with your test and it worked.
I have a feeling this is an env issue with linux. Have you tried running without node to see how phantomjs behaves? That's probably the eaisest way to debug.

[root@vm bin]# ./phantomjs
./phantomjs: error while loading shared libraries: libfontconfig.so.1: cannot open shared object file: No such file or directory
[root@vm bin]# pwd
/test/node_modules/phantomjs-prebuilt/lib/phantom/bin

@oxygens I tried running within centos7 via docker and I got a bunch of different errors when trying to install phantomjs-prebuilt. Then I tried to install phantomjs in centos and noticed that also broke. I was confused but found that bzip2 and bzip2-libs libs are not installed. I installed those using yum and was able to get phantomjs running. I was then able to run npm i phantom which worked and then run node test.js (from above) which worked.

@oxygens see my above answer.

To fix my error:
yum install libXext  libXrender  fontconfig  libfontconfig.so.1

Isn't there a phantom build without dependencies?

phantom tries installing phantomjs-prebuilt if it's not already installed. It's not smart enough to realize you don't have all dependencies. You should make phantomjs worked before using phantom.

Also I recommend reading http://phantomjs.org/build.html and installing all those dependencies.

I think you need to fix your library to properly throw the right error (which phantom has sent to stderr or stdout) before trying to open the pipes (which close immediately cause the process exits).
Otherwise anyone using your library in any project, will have no idea what is going on, when installing on some fresh Linux box.

I think you need to fix your library to properly throw the right error (which phantom has sent to stderr or stdout) before trying to open the pipes (which close immediately cause the process exits).

Pull requests are welcome @oxygens.
You are the first person who has ran to this problem. I think if you had paid attention to the actual output like I did then you could have avoided this problem. :)

This is not my bug report, it is somebody else's, and it is quite an assumption to say I am the only one to run into the problem.
For the moment, I have updated my usage to go out of its and send phantomjs --help error output to stderr.
		try
		{
			phantomPage = await phantom.createPage();
		}
		catch(error)
		{
			if(
				error.message.includes("Error reading from stdin")
				&& os.platform() === "linux"
			)
			{
				// https://github.com/amir20/phantomjs-node/issues/649
				console.error("phantomjs may have reported an error in the phantom library.");
				console.error("If missing phantomjs dependencies: yum install libXext  libXrender  fontconfig  libfontconfig.so.1");

				const processCommand = exec("../node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs --help");
				processCommand.stdout.pipe(process.stdout);
				processCommand.stderr.pipe(process.stderr);
				await new Promise(async (fnResolve, fnReject) => {
					processCommand.on("error", fnReject);
					processCommand.on("exit", (nCode) => {
						if(nCode === 0)
						{
							fnResolve();
						}
						else
						{
							fnReject(new Error("Failed with error code " + nCode));
						}
					});
				});

				process.exit(1);
			}

			throw error;
		}

The key is this:
processCommand.stdout.pipe(process.stdout);
processCommand.stderr.pipe(process.stderr);

This way, the phantomjs startup error is not hidden away.
I hope it is useful to you.

@oxygens something like this is already implemented here. I don't know why that didn't work. Probably because phantomjs-prebuilt installed but it still didn't work correctly without dependencies.
I did want to say something that has been bothering me. This is an open-source project. It's not "my" library as you wrote. There has been a lot of people contributing. I don't get paid for it and do it mostly out of my free time. If you feel like it can be improved then please send a pull request. I won't have time to fix every issue. It is important to realize this library doesn't replace phantomjs. It is an extension to phantomjs as it proxies everything. If you don't understand how phantomjs works then you shouldn't use this library. I will probably update the README file to make sure others understand that. In the last three years of me answering to all issues, I think you are the only person who had a hard time with centos7. Clearly, if you had read the output during npm install then you would has seen the same error that I saw. But instead you seem to be blaming the library. I hope you understand my frustration. With your tone, you are expecting for free open-source projects to work out of the box.
Instead, send a pull request. Be part of the community that improves the code. I think the right fix is to add something to this code where it tries to do phantom --version and throw an Error if it didn't work. In the past I had done processCommand.stdout.pipe(process.stdout) but then a whole slew of people complained because they wanted to be turned off. A lot of people do cron jobs and complained that they had no control. Perhaps sending it to logger is even better.
Best of luck and glad to see it is working now.

Thank you for all your hard work on this library amir20 :)
I choose to contribute code to projects in which I know my way around so I can be efficient. Otherwise I just contribute a minimum of debugging, time and bug reports.
I hope this thread will be useful to someone.


Fix user guide bugs for v1.3

Pull Request Test Coverage Report for Build 457

0 of 0   changed or added relevant lines in 0 files are covered.
32 unchanged lines in 4 files lost coverage.
Overall coverage increased (+0.4%) to 78.089%

Files with Coverage Reduction
New Missed Lines
%

file:/home/travis/build/AY1920S2-CS2103-W14-2/main/src/main/java/seedu/address/model/supplier/Supplier.java
1
97.83%

file:/home/travis/build/AY1920S2-CS2103-W14-2/main/src/main/java/seedu/address/logic/commands/EditSupplierCommand.java
4
94.52%

file:/home/travis/build/AY1920S2-CS2103-W14-2/main/src/main/java/seedu/address/logic/parser/AddressBookParser.java
6
76.0%

file:/home/travis/build/AY1920S2-CS2103-W14-2/main/src/main/java/seedu/address/logic/commands/DeleteSupplierCommand.java
21
53.85%

Totals

Change from base Build 424:
0.4%

Covered Lines:
1896

Relevant Lines:
2428

💛  - Coveralls


Popover example #1 doesn't appear to work

https://reakit.io/components/popover

Clicking this button doesn't do anything. The white box that says "Popover" is there no matter what. I assume this is supposed to be the popover.

Okay so it does work, but it's kind of misleading at first. I expected the button to do something in this example.

Hey, @Slapbox. It was a "static" example. You should toggle the visible prop in order to control it.
But I agree it may not be clear enough. Would you mind sending a PR?

@diegohaz I'm just starting out using this library and not 100% sure if this is what you mean, but I submitted a simple PR.
https://github.com/reakit/reakit/pull/206


New Functions

Possible setup for a barnes hut simulation using a in memory data base and some organization of the files

@WilliamAnimate I added you so you can review when the time comes but ill ping you when that is

@WilliamAnimate @haywoodspartan its review time


Feature Request: Activate old revisions when using single revision mode in portal

Is your feature request related to a problem? Please describe.
Using single revision mode it is not possible to activate an old revision. This would make it easier to roll back to a previous revision in case of failures etc...
Describe the solution you'd like.
Similar to multi-revision mode but you are only able to select one active revision. It would also automatically change the traffic to always be 100% on the selected revision.
Describe alternatives you've considered.
A workaround for this has been to activate multi-revision mode, activate an old revision, and turn multi-revision off. You can also deploy a new revision with an old image tag. But none of these are intuitive.
Additional context.
If I reload the revision screen in portal I am able to quickly see the "show inactive revision" checkbox and can click it in single revision mode. This will show all old revisions so they are still there in both multi and single revisions. I can however not change the active one in single-revision.

It's not exposed in the UI yet. But you can do it from the CLI (or API) while still in single revision mode with
$ az containerapp revision list --all --name $APP_NAME \
    --resource-group $RESOURCE_GROUP  \
    --output table --query "[].{Name:name, Created:properties.createdTime, Active:properties.active}"

# Name            Created                    Active
# --------------  -------------------------  --------
# app--rev1     2023-05-23T01:02:10+00:00  False
# app--rev2     2023-06-14T17:40:12+00:00  True

$ az containerapp revision activate --name $APP_NAME \
    --resource-group $RESOURCE_GROUP \
    --revision app--rev1

# "Activate succeeded"

$ az containerapp revision list --all --name $APP_NAME \
    --resource-group $RESOURCE_GROUP  \
    --output table --query "[].{Name:name, Created:properties.createdTime, Active:properties.active}"

# Name            Created                    Active
# --------------  -------------------------  --------
# app--rev1     2023-05-23T01:02:10+00:00  True
# app--rev2     2023-06-14T17:40:12+00:00  False

Thanks! Is there any timeline when this will be available in the azure portal UI?

Hi @morgan-cromell we've updated the portal UI! You should now have the option to see previous revisions in single revision mode and select them to activate. We're currently limiting it to just the last 5 inactive revisions. We're also in the middle of updating the revision blade UI to make the previous revisions easier to interact with. You can view the previous revisions by checking the "view inactive revisions" checkbox, which is now available in single revision mode.

@SophCarp. Thank you!

@morgan-cromell is it alright to close this issue?


Error: ENOENT: no such file or directory, mkdir '\?' Please open the output channel for details.

💬 Questions and Help
OS: WINDOWS11
node: 14.16.1
I can login to leetcode-cn.com and fetch the problem successfully. But when I click code now, I get the following error message:
Error: ENOENT: no such file or directory, mkdir '\\?' Please open the output channel for details.

And the warning in the Output of vscode is :
(node:58920) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)

same issue

@wangzhankun have you solved this issue?

same issue.
Electron: 17.4.1
Chromium: 98.0.4758.141
Node.js: 16.13.0
V8: <IP_ADDRESS>-electron.0
OS: Darwin arm64 21.3.0

Setting Workspace Folder to a exist path helps.

Please set the correct path in the settings.

If you want to open another folder, please change the settings also.

@wangzhankun thanks


Unused return value

Not really a big issue, but an annoyance nonetheless.
RGFW.h:4030:25: warning: ignoring return value of ‘read’ declared with attribute ‘warn_unused_result’ [-Wunused-result]

This should be fixed with this commit https://github.com/ColleagueRiley/RGFW/commit/39ce5cc57a282e938c45382f45d82bb74c9f788b
Although I don't get that warning so I'm not sure if it's fixed.

Yep, that fixes it. Might be a compiler specific thing as I am using gcc.


Remove use of @StateObject for MIDIHelper() in “EndpointPickers” and “EventParsing” Example apps

Running the SwiftUI versions of the “EndpointPickers” and “EventParsing” Example apps on macOS results in the following runtime issue being reported in Xcode 14.2 (14C18), macOS: 13.1 (22C65).
"EndpointPickers[4226:63591] [SwiftUI] Accessing StateObject's object without being installed on a View. This will create a new instance each time."
Additionally, upon launch the "MIDI In Connection" and "MIDI Out Connection" popups in the "EndpointPickers" app don't correctly reflect the available endpoints on the system.
The issue is that in both Example apps 'midiHelper' is defined as a @StateObject property wrapper which should only be used for an ObservableObject created within a SwiftUI view (and only if that view created the instance). In this case MIDIHelper is being created within the App object not within a SwiftUI View.
The solution appears to be to simply remove the '@StateObject':

@StateObject var midiHelper = MIDIHelper()

var midiHelper = MIDIHelper()

Thanks - some of the SwiftUI examples need some TLC and cleanup. Any improvements are welcome.


Convert ParticleSet to structure of arrays

This means initialisation of particles is very cheap from Python, and shouldn't be any worse from the C kernel. This gives a massive speedup. See #665 for other discussion.
As part of this change, the semantics of accessing properties on a ParticleSet has changed: pset[idx].property becomes pset.property[idx]. It would be possible to rearrange __getitem__ to return some kind of accessor, like the ParticleAccessor to make this backward-compatible, but I'm not sure of the efficiency implications of such a change. Speaking of which, I created ParticleAccessor before implementing __getattr__ on ParticleSet. It might be worth ripping this back out since it's somewhat unneeded.
A few of the tests are (randomly) failing in JIT mode with segfaults. It looks like maybe something isn't being initialised correctly but it's being a little tricky to debug. I thought I'd just put the bulk of the work up here first.
There are a couple of other remaining tasks:

get ParticleFile working again. I hacked this in another branch at a6684db, but that was before the writing to temporary dictionaries, so it'd probably be worth just responding to the few errors that pop up, rather than trying to merge this other change across. I'll do this after dealing with the JIT segfaults.
test all tutorials/examples (I imagine things like particle plotting probably won't work)

Thanks so much for all this development, @angus-g! I'd really like to try give it a spin in a real-life setup to investigate how much faster Parcels becomes!
As you've seen, I did quite some development over the last few weeks. I've today finally fixed the ParticleFile, so that works too
As I can see, there are two open issues:

[ ] print(ParticleSet) is now very ugly
[ ] there are Segmentation faults. I've now found why they happen: because particle.xi is not set to an array the size of the number of Grids (we need a particle.xi for each grid separately). For some reason, https://github.com/angus-g/parcels/blob/soa-storage/parcels/particle.py#L239-L254 is not called anymore?

The second open issue obviously is much more problematic than the first one. But we're almost there!

Even though we are now using the fixed version of cgen (thanks @angus-g!),  the windows CI still breaks. Surprisingly, this seems to be related to printing to stdout. The error we are now getting is
./.github/scripts/windows_test.bat : WARNING: Casting field data to np.float32
At D:\a\_temp\cc668354-a74d-4222-8293-0beb2f6f0a93.ps1:4 char:1
+ ./.github/scripts/windows_test.bat
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (WARNING: Castin...a to np.float32:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

Note that this WARNING is the first message printed to stdout. With https://github.com/OceanParcels/parcels/pull/678/commits/d835667589616af060fd9990292aaa7650f225c9, the same error appeared immediately after the INFO Compiled JITParticleAdvectionRK4 message.
I don't know enough about Windows why this now breaks, but the really strange thing is that it doesn't happen on master, so does seem related to cgen again?

That's an odd error, I'm not reproducing that locally. Particularly, all the JIT advection tests are passing for me, which suggests that the fixed cgen is working.
I'm only hitting the following error where compiling with -fPIC raises a warning on Windows:
tests/test_kernel_execution.py::test_execution_keep_cfiles_and_nocompilation_warnings[False] FAILED

================================== FAILURES ===================================
________ test_execution_keep_cfiles_and_nocompilation_warnings[False] _________

fieldset = <parcels.fieldset.FieldSet object at 0x000001EA2709F940>
delete_cfiles = False

    @pytest.mark.parametrize('delete_cfiles', [True, False])
    def test_execution_keep_cfiles_and_nocompilation_warnings(fieldset, delete_cfiles):
        pset = ParticleSet(fieldset, pclass=JITParticle, lon=[0.], lat=[0.])
        pset.execute(pset.Kernel(AdvectionRK4, delete_cfiles=delete_cfiles), endtime=1., dt=1.)
        cfile = pset.kernel.src_file
        logfile = pset.kernel.log_file
        del pset.kernel
        if delete_cfiles:
            assert not path.exists(cfile)
        else:
            assert path.exists(cfile)
            with open(logfile) as f:
>               assert 'warning' not in f.read(), 'Compilation WARNING in log file'
E               AssertionError: Compilation WARNING in log file
E               assert 'warning' not in 'C:\\Users\\Angus\\App...c4c_0.c -shared -m64\n'
E                 'warning' is contained here:
E                   C:\Users\Angus\AppData\Local\Temp\parcels-tmp\5fc35a3ed3c047645697155520b62c4c_0.c:1:0: warning: -fPIC ignored for target (all code is position independent)
E                 ?                                                                                +++++++
E                    #include "parcels.h"
E                    ^
E                   Compiling: gcc -Wall -fPIC -IC:\Miniconda36-x64\envs\parcels\lib\site-packages\parcels-0.1.dev1+g0b49473-py3.6.egg\parcels\include -g -O3 -m64 -o C:\Users\Angus\AppData\Local\Temp\parcels-tmp\5fc35a3ed3c047645697155520b62c4c_0.dll C:\Users\Angus\AppData\Local\Temp\parcels-tmp\5fc35a3ed3c047645697155520b62c4c_0.c -shared -m64

tests\test_kernel_execution.py:280: AssertionError

Good call on the revert; it looks like anything written to stderr is considered an error in 2019? Weird!

Just pushed through a little change in the recovery kernel logic: we can handle all the particles with the Repeat state at once, which again removes a Python loop over all particles (e.g. in the case of the first execution step with deferred load, where all particles will be Repeat). The recovery kernels are still executed in a Python loop, which could be slow if there are many particles with errors.
I'm able to initialise and sample about 7 million particles on 0.1 deg global surface velocities, though the actual advection is letting me down for speed now.

@angus-g : I like the work you are recently doing on optimizing Parcels, and I would appreciate some talk via Slack, Mail or Skype to coordinate our optimization efforts a bit. I am preparing some branches at the moment for clean benchmarking of the source code and, afterwards, iterative hypothesis testing on some (code) optimization procedures and algorithmic changes. That benchmarking is also meant as an optimization guideline. Please contact me if you're in for a conversation, also on your goals and development- or research intents. Cheers, @CKehl

@CKehl no problem, I’m happy to discuss via Slack, preferably

How can I find you on Slack ? Alternatively, you can find me by searching for my full name.

Thanks @erikvansebille and @CKehl!


added Ejabberd and Coturn tutorials

I added a tutorial on how to install and setup the ejabberd XMPP server and a separate page on how to setup a Coturn Turnserver for voice and video calling using XMPP and Matrix.
I also updated the link to my personal website on the PeerTube page as it was outdated.

This guide actually helped me setup my own server, thanks. I did have to look elsewhere for help with some specific things I wanted to setup, but I think most of those fall beyond the scope of an article like this. However one thing I would add is that in order to enable OMEMO encryption, you have to comment out the following lines as it's disabled by default due to some poor implementations by clients:
force_node_config:
  ## Avoid using OMEMO by default because it
  ## introduces a lot of hard-to-track problems
  ## "eu.siacs.conversations.axolotl.*":
  ##   access_model: whitelist

See this Github issue for more info. https://github.com/processone/ejabberd/issues/2425


Amazon Kinesis Storm Clickstream CloudFormation template fails with Epoch error

Hi there,
I just tried to use kinesis-storm-clickstream-stack.template to provision the reference application. Stack creation failed on this step:
13:10:11 UTC-0500	CREATE_FAILED	AWS::CloudFormation::WaitCondition	NodeJsWaitCondition	WaitCondition received failed message: 'Failed to install Epoch.See epoch-install.log for details' for uniqueId: i-05d4688c
The provisioning operation was rolled back, so I'm not sure how to get to epoch-install.log.
Is the stack template out of date? Does Epoch need a version update? Any other ideas?
Thanks,
Ranjith

Looks like epoch has moved. I resolved this by modifying the .template to get epoch from here.
https://cdn.jsdelivr.net/epoch/0.8.4/epoch.zip


DiskStore flush returns false even though mapping was faulted

The method DiskStore.flush(K key, ValueHolder valueHolder, CachingTier cachingTier) returns false even though the mapping was faulted before.

Whoever investigates this issue and #362 should first investigate whether we need this return value for any product reasons before fixing these bugs.  We may be able to get away with eliminating the return value entirely rather than fixing these bugs.

Also AuthoritativeTierFlush SPI tests should be updated in case a value is not returned anymore

Ah! Turns out these were test issues, and actually still somewhat are... The mock passed in are not configured to return the proper value, so the CAS-like op fails... Now, with the id stuff, it works, but sort of coincidently

Addressed as part of #373


Add Podfans App

Podfans (alpha) now supports all the Podcast Namespace tags phases 1-6.
Podfans is a PWA and in the beta will be made mobile ready.

Thanks Dave, a lot of work to get here do you know when it will appear on the apps page please?

I usually wait to get a few and do all at once, but I'll go ahead and do this one now.

Done!


nixos-icons: remove rendered version of logo

It was removed upstream in this commit:
https://github.com/NixOS/nixos-artwork/commit/ce919b818047ac481b8f1bfb9bee377e2b2889e2#diff-335810e528842e1863df83d8f11332a3b8ae60a56cf2f8761a10f96b34bb5bbe

Related: https://github.com/danth/stylix/pull/343

Is the preceding prePatch phase still required?

Yes, this changes the color of the logo and then adds the appropriate comment saying we modified it.


Support for .NET 4.0 is broken since 1.9.3 ?

The https://www.nuget.org/packages/Handlebars.Net/1.9.0 did only have .NETFramework 4.0 as minimum requirement.
Since 1.9.3, this is move to .NETFramework 4.5.2.
Can you please lower the requirements again ?

That is the lowest version supported by Microsoft. We do not support versions that MS has dropped.


[WIP] Test executor

Initial draft on the logic, that will execute certain checks against some app
TODO:

[ ] Docs
[x] Tests should include some locally running server (similar to Django's live_server) so we can actually verify the behavior. Probably the simplest option is to use Flask or aiohttp server (aiohttp even has a builtin fixture for it).
[ ] Collect test execution results
[x] move aiohttp to dev dependencies

In the future, it could be also WSGI apps, so requests might be optional. Also, some parts could be done asynchronously (tests itself could be run in parallel if there are no restrictions from the hypothesis side), but I am not sure how to implement it better :(

Also, it probably will make sense to either remove the deadline health check or set it to a higher value.
If we will remove it, then it maybe will help with parallel test execution

Codecov Report

Merging #63 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #63      +/-   ##
==========================================
+ Coverage   99.67%   99.68%   +0.01%
==========================================
  Files          10       11       +1
  Lines         310      320      +10
  Branches       42       42
==========================================
+ Hits          309      319      +10
  Partials        1        1

Flag
Coverage Δ

#unittests
99.68% <100%> (+0.01%)
:arrow_up:

Impacted Files
Coverage Δ

src/schemathesis/runner.py
100% <100%> (ø)

src/schemathesis/schemas.py
99.11% <0%> (-0.06%)
:arrow_down:

src/schemathesis/models.py
100% <0%> (ø)
:arrow_up:

src/schemathesis/types.py
100% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


PowerToys Run crashes on launch

Microsoft PowerToys version
0.82.0
Installation method
PowerToys auto-update
Running as admin
Yes
Area(s) with issue?
PowerToys Run
Steps to reproduce
Try to launch PowerToys run, either from the PowerToys UI or using the keyboard shortcut (Alt + Space).
✔ Expected Behavior
Expecting the search box to appear so that I can launch an app by searching for it.
❌ Actual Behavior
An error message appears, asking me to submit this bug report.

2024-07-12.txt
Other Software
No response

/dup #33504


Support for Alpine Linux

I am trying to utilize this Terraform plugin in a docker build that runs Alpine linux. Currently, when I try to use the plugin by adding the binary to my docker container, I get the following error:

* provider.libvirt: * fork/exec ./terraform.d/plugins/linux_amd64/terraform-provider-libvirt: no such file or directory

This error lead to to this issue: https://github.com/vancluever/terraform-provider-acme/issues/29
Looks like Alpine needs a static linked binary instead of dynamic lined binary, which is what your binaries build as.
I tried to manually build the plugin, but to make it statically linked, I think I need to disable CGO_ENABLED, which is required to be enabled by libvirt-go.
After install all the requirements and trying to disable CGO I end up with this error:
go install -ldflags "-w -extldflags "-static" -X main.version=$(git describe --always --abbrev=40 --dirty)"
# github.com/dmacvicar/terraform-provider-libvirt/libvirt
libvirt/config.go:16:15: undefined: libvirt.Connect
make: *** [Makefile:14: install] Error 2

I am not sure what the solution is as I am pretty new to GO. But any help you guys can provide would be great!

@james-crowley  thx for Issue. I have some speculation in mind but can you provide us a docker file and the whole setup to reproduce it locally so I could experiment when i have some spare time? tia

@MalloZup Sorry for the delay, I was on vacation last week.
Here is my dockerfile I am trying to use to build the plugin:
FROM golang:alpine

# Update APK
RUN apk update && apk upgrade

# Install Dependencies
RUN apk add git make pkgconfig libvirt gcc libvirt-dev libc-dev

# Debugging packages
RUN apk add file nano

RUN go get github.com/dmacvicar/terraform-provider-libvirt

I am currently testing is on by Mac running 10.13.6.
Additionally, here is my dockerfile that I would be using once I get the plugin binary built:
# Grab the Terraform binary
FROM hashicorp/terraform:0.11.13 AS terraform

## Python Base Image
FROM python:3-alpine

# Update APK
RUN apk update && apk upgrade

# Install Dependencies
RUN apk add git gettext sshpass openssh nano
#RUN apk add git make pkgconfig libvirt gcc libvirt-dev libc-dev file nano wget

# Grab Libvirt Plugin
RUN wget https://github.com/dmacvicar/terraform-provider-libvirt/releases/download/v0.5.1/terraform-provider-libvirt-0.5.1.Ubuntu_18.04.amd64.tar.gz
RUN tar -xvf terraform-provider-libvirt-0.5.1.Ubuntu_18.04.amd64.tar.gz

# Copy Terraform binary to image
COPY --from=terraform /bin/terraform /bin/

# Make temp ssh key
RUN mkdir -p /root/.ssh/
RUN ssh-keygen -f /root/.ssh/id_rsa -t rsa -N ''

# Setup Terraform Folder Struc
RUN mkdir -p /root/.terraform.d/plugins/linux_amd64/
RUN mv terraform-provider-libvirt /root/.terraform.d/plugins/linux_amd64/

If you need anything else please let me know!

Any updates on this issue? I am putting together a work flow/demo and would love to use alpine for it. I know you guys got your handsful with Terraform v0.12, but I did not know if you had quick fix for this.
 Use the make targets for that, especially the make build.
Once you have builded to alpine you can transfer to your other container

@james-crowley let me know if you have other issue. But i think it should be solved and we can close once you have positive feedback. Thx!

@MalloZup After some testing it seems to work. The only issue I ran into is the new /dev/urandom change in the latest update, as the building in the golang docker container only builds the current version.
When I build the Alpine binary, is there away to tell it to build a certain version? I tried to checkout https://github.com/dmacvicar/terraform-provider-libvirt/tree/v0.5.1 , but building it gave me an error.

@james-crowley  for building a certain releases you could do git reset -- GIT-HASH commit --hard and the hash should be the released one . For example 0.5.2 is the c0e46b59df8718cdd905b1a3fb9738b0d4905143

@MalloZup thanks for all the help. Closing the issue.


speed: add ecdhx448 to ecdh choices

I noticed that ecdhx25519 was an option for openssl speed, but ecdhx448 wasn't added when Ed448/X448 support was implemented.

@tycho, we need a CLA from you, or for you to modify/amend the commit to add "CLA: trivial" to the next.  Thanks!

I'll mark this as trivial for now, but I'll probably submit a CLA soon as well.

@mattcaswell I'll merge, but do you agree it's trivial?  I do.

Yes, I agree this is trivial.

Merged to master.  Thank you!


Improving the sound for security boots

About the PR
Tweaked the sound for combat boots and jackboots so it doesn't sound so loud (-18db).
Media
OLD
https://user-images.githubusercontent.com/68664576/232844946-e0a6f6b5-04e2-4500-bfef-4f54b78e31ca.mov
NEW
https://user-images.githubusercontent.com/68664576/232844972-52908074-1c00-4c63-9ac6-374e189dcc9c.mov

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog
:cl: Klaypexx

tweak: The sound for combat boots and jackboots has become more pleasant to hear

Could we have a quick comparison video attached for a PR like this? Can't play the file change on mobile.
You'll want to check the box under media too to say you've acknowledged it.

Yeah, off course. Here is the difference between downsampling to -10 and -18 dB