displayName is added to regular JS objects

I have a large map in my code that looks something like this:
export const MANAGE_ACTIONS = {
  actionType: {
    nameFunc: () => {},
    iconFunc: () => {},
  },
 ...
};

which I elsewhere use to fetch the relevant functions per actionType so I'm expecting the values to all be objects,
and now all of a sudden I'm getting:
MANAGE_ACTIONS.displayName === 'MANAGE_ACTIONS' // true

After a short debugging this seems to be the problem:
const parentAncestor = ancestors[ancestors.length - 2]

if (parentAncestor && ['ReturnStatement', 'ArrowFunctionExpression'].includes(parentAncestor.type)) {
  // ArrowFunctionExpression is present when no Babel plugins are used when transforming JSX

  const variableDeclaratorIdx = ancestors.findIndex(ancestor => ancestor.type === 'VariableDeclarator')

  if (variableDeclaratorIdx != -1) {
    const variableDeclarator = ancestors[variableDeclaratorIdx]
    addDisplayName(parser, variableDeclarator)
  }
}

the assumption here about arrow functions is a little too generic :)
Expected
if nameFunc returns JSX then MANAGE_ACTIONS.actionType.nameFunc.displayName === 'nameFunc'
Actual
MANAGE_ACTIONS.displayName === 'MANAGE_ACTIONS'

Thanks for the report! This is indeed a bug, I am able to reproduce it with the following code:
import { HashRouter } from "react-router-dom"

const JSXExample = <HashRouter></HashRouter>

export const MANAGE_ACTIONS = {
  actionType: {
    nameFunc: () => { return JSXExample },
    iconFunc: () => {},
  },
};

I'd be happy to assist however I can, it seems that the walking logic and addDisplayName needs to be adjusted differently to handle these situations. was thinking maybe ansectors should be passed down the name naming method along with the root node of the matched function and the building of the path shuold be made there accroding to consistent logic.
wdyt?

I think you're right thatsomething with handling of ancestors will definitely need to change since that's where it's finding 'JSXExample' in the example code above. I took a look, and the logic that's checking the ancestors is used to detect references like this React.memo call: https://github.com/runreflect/webpack-react-component-name/blob/master/examples/memo/src/MemoizedButton.js#L4
If you comment out the addDisplayName call on line 113 of index.js, you'll see that the following unit test fails: https://github.com/runreflect/webpack-react-component-name/blob/master/test/plugin.spec.js#L178-L193. In this scenario, the plugin is converting this code:
const MemoizedButton = React.memo(Button);

to this when it's minified:
var J=r.memo(X);try{J.displayName="MemoizedButton"}catch(e){}

So I think what we need is a way to preserve that behavior without having false positive matches like the one you reported. If you're willing to assist, I'll definitely review and merge the PR.
Thanks again for reporting!

Hi @iMoses-Apiiro I will start work on a fix here soon but if you're planning on opening a PR just let me know and I'll hold off.


Fix readValueFrom/writeValueTo implementations in IntervalType

This got integrated into https://github.com/crate/crate/pull/8954


Added SignalR Hub and TumblerPhaseBroadcaster.

Have also added a call to the Broadcaster within TumblerstateMachine.UpdatePhase.
You can test by running - it will fire up a test html page with javascript to connect to client and a way to fire a broadcast back to the clients.

Ignore the comment in the Controller that says:
"//If collection.Count > 3 a SignalR broadcast is made to clients that connected via client-test"
As soon as you get client-test-broadcast in the controller it fires the broadcast.


Missing @events/GetQuote.json

in the README we see
curl -v -X POST --header "Content-Type: application/json" --data @events/GetQuote.json  http://<IP_ADDRESS>:7000/invoke

but this repository doesn't not have events folder or json file.

Hello @atacan
You can figure out the JSON passed to your Lambda function by printing a String representation of the input object.
The event reference is here
https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html
The Swift implementation is defined here
https://github.com/swift-server/swift-aws-lambda-events/blob/main/Sources/AWSLambdaEvents/APIGateway%2BV2.swift
Here is the JSON file I use:
{
  "rawQueryString": "",
  "headers": {
    "host": "b2k1t8fon7.execute-api.us-east-1.amazonaws.com",
    "x-forwarded-port": "443",
    "content-length": "0",
    "x-amzn-trace-id": "Root=1-6571d134-63dbe8ee21efa87555d59265",
    "x-forwarded-for": "<IP_ADDRESS>",
    "x-forwarded-proto": "https",
    "accept": "*/*",
    "user-agent": "curl/8.1.2"
  },
  "requestContext": {
    "apiId": "b2k1t8fon7",
    "http": {
      "sourceIp": "<IP_ADDRESS>",
      "userAgent": "curl/8.1.2",
      "method": "GET",
      "path": "/stocks/AAPL",
      "protocol": "HTTP/1.1"
    },
    "timeEpoch":<PHONE_NUMBER>365,
    "domainPrefix": "b2k1t8fon7",
    "accountId": "486652066693",
    "time": "07/Dec/2023:14:05:40 +0000",
    "stage": "$default",
    "domainName": "b2k1t8fon7.execute-api.us-east-1.amazonaws.com",
    "requestId": "Pk2gOia2IAMEPOw="
  },
  "isBase64Encoded": false,
  "version": "2.0",
  "routeKey": "$default",
  "rawPath": "/stocks/AAPL"
}

I added a sample JSON file for ease of use
https://github.com/swift-server/swift-openapi-lambda/commit/2b01689bcc2c3cc228e2c556f124345ddd6344bf


git urls can't handle a version range

when specifying a git url for the package (or, probably but not tested, a custom package name) the version check fails if it is a range (eg ~0.0.1).  This is because it's being validated with semver.valid() which is intended to validate a specific version string, not a range.
I would suggest that neither case should use semver.valid(), as it's an additional amount of validation that doesn't get applied to a "regular" version string.

(if you like the suggestion that special validation for git url / custom package versions, I'd be happy to submit a PR for that...)

PR welcome. :) Be sure to add a test.


linked by target "ort_utility" in directory

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
onnxruntime_LIBS
linked by target "ort_utility" in directory /source/code/AI/src/inference/OnnxRT/CppDeploy/samples/onnx_runtime_cpp/src
-- Configuring incomplete, errors occurred!
See also "/source、code/AI/src/inference/OnnxRT/CppDeploy/samples/onnx_runtime_cpp/build/CMakeFiles/CMakeOutput.log".
Makefile:7: recipe for target 'all' failed
make: *** [all] Error 1

I solved the problem. How much faster is cpp than py? My experiment is that cpp is only a little bit faster than py

@DYF-AI in theory, onnxruntime is only inference engine, so the speed will not change with the version in python gpu, unless you model is converted in tensorrt. However, this repository does not cover tensorrt.


bpf(): make union bpf_attr Linux ABI compatible

At this point we also take the first steps to fixing the existing ABI incompatibility. On the Linux side, care was taken to avoid most padding in bpf_attr. By forcing the compiler to refuse implicit padding we get a good heuristic for fields in the incorrect order.
These changes mean that union bpf_attr in linux/bpf.h is not source compatible with the Linux header anymore. It's not possible to be source compatible and ABI compatible at the same time because we're already using Linux type names with ABI incompatible definitions. For example BPF_OBJ_NAME_LEN differs, and the order of fields in struct bpf_prog_info, etc. also does not match.
Change the definition of union bpf_attr to be more convenient to work with. This allows refactoring the macro magic used to check for forwards and backwards compatibility into a class, which ends up a lot less error prone.
Updates #3729

There will be follow ups which take care of BPF_OBJ_NAME_LEN, struct bpf_prog_info, etc. problems.

LGTM other than some nits around not following the ebpf-for-windows repo's coding conventions

suggestion: to ensure the new tests run as part of regression tests, can you also add the new tests in api_tests? This PR currently adds new tests in unit_tests, but they do not run as regression tests.

@saxena-anurag can I just move the tests or do I need to copy them? I'm not familiar with the unit vs regression test distinction in this repo.

@saxena-anurag can I just move the tests or do I need to copy them? I'm not familiar with the unit vs regression test distinction in this repo.

Keeping tests in unit_tests help get code coverage, but since they statically link with ebpfcore.lib, it is not possible to run them as regression tests (test cases from older release should pass against latest eBPF runtime).
We can maybe copy the tests for now, to ensure we get both (code coverage, and regression coverage)


Create metadata for MetAPI

Description
This completes the milestone and serves as a complete MVP.
Subtasks

[ ] Create metadata structure in DB
[ ] Mock the metadata so testing without DB is possible

Related sources

Blocked by #40, #41

After todays meeting we decided on the following structure;
{
   "name":"befolkningstall",
   "description":"lorem ipsum dolor sit amet consectur adsciptig et",
   "tags":[
      "befolkning",
      "innbyggertall"
   ],
   "source":"https://example.commundsen/v0/example.json",
   "updated":"2020-12-01 23:59:59.000",
   "published":"2010-12-01 23:59:59.000",
   "visualisations":[
      {
         "type":"barchart",
         "axes":{
            "x":{
               "name":"Befolkning",
               "type":"integer",
               "limit":[
                  0,
                  100
               ]
            },
            "y":{
               "name":"År",
               "type":"date",
               "limit":[
                  0,
                  100
               ]
            }
         }
      },
      {
         "type":"piechart",
         "segments":[
             {
                 "name": "A",
                 "value": [0, 10]
             }
         ]
      },
      {
         "type":"linechart",
         "axes":{
            "x":{
               "name":"befolkning",
               "type":"integer",
               "limit":[
                  0,
                  100
               ]
            },
            "y":{
               "name":"aar",
               "type":"date",
               "limit":[
                  0,
                  100
               ]
            }
         }
      },
      {
         "type":"thresholdchart",
         "threshold": 50,
         "axes":{
            "x":{
               "name":"befolkning",
               "type":"integer",
               "limit":[
                  0,
                  100
               ]
            },
            "y":{
               "name":"aar",
               "type":"date",
               "limit":[
                  0,
                  100
               ]
            }
         }
      }
   ]
}

Which can be accessed with a request like this;
query {
  weatherForecast {
      meta {
          name
          description
      }
      data {
          properties {
              a
              b
          }
      }
  }
}

Does this need to be blocked by #41? If we can just migrate the current Atlas solution into the final database, then this issue can be closed by #56
@FredrikAugust

It doesn't. As long as the model is agreed on, you can close this.
It would be nice if you could document the DB structure, however (if you haven't already;).

DB has been documented in the Wiki


Issues discovered from debugging

ahhhhhh I think I am drinking tonight (after debugging this...)

ipython seems to listen on 8888 by default now, instead of 6789
listens on localhost instead of <IP_ADDRESS>
doesn't seem to read the config file which sets BOTH of those, because I was running with -u, and inside the container I see "I have no name!"

The solution for this seems to be updating the boot command to be
ipython notebook --config=/home/ipython/.ipython/profile_default/ipython_notebook_config.py

Closed with #35


photos folder URL

Please update the photos folder URL in photos.md after moving this folder to the appropriate location.
The folder currently lives in the Caribbean trainings folder ("Peru"): https://drive.google.com/drive/folders/1HPL_hac2O050P-1K7ewO00yvAybS26py
I believe the photos should be stored somewhere here: https://drive.google.com/drive/folders/1w0fRH2QaptnDLUAljaz4r1_ruDRJdgWN

Done! Thanks Andrea


Check touch screen support

Especially check touch screen support in graphs (moving graphs)

current canvas implementation has not out of the box touchscreen support (checked with iPad)

touch support must be implemented separately.
done in https://github.com/msuesskraut/calc-seed/blob/main/src/touch.rs


Next Release

Hey, had some troubles with the current releases (0.2.0-beta) and believe some of the fixes have been merged in...
When is the next release coming?

Hey @jamiepmullan, it's actually coming very soon! We've a PR in place that fixes most of the current issues we have in 0.2.0-beta, including most of the ones I just added today in the Issues list.
I'll keep you posted!

Hey @matux - thanks for replying! I appreciate you can’t say when… but is it days, weeks or months? Got an app I need to integrate it with quite urgently!

@jamiepmullan Less than 2 weeks, might be days if no more show-stopping issues pop up.

@jamiepmullan The new version is out!


adding on-delete constraints to create table

in a table column definition, when a foreign key is referenced, allows ON DELETE CASCADE/ON DELETE RESTRICT constraints.

added another commit - opening new pull request

This is fabulous! Sorry I missed it for a while - been extremely busy in personal life.  Merging & pushing to npm right now! :heart:


CEPH_2024-04-28

Thanks for the submission! The current output reflected your submission is:
https://hopkinsidd.github.io/rsv-forecast-hub_website/


[SPARK] upgrade supported versions to 3.4.1->3.4.2 and 3.5.0->3.5.1

Problem
Upgrade to latest Spark versions used by the integration.
Issue encountered:

For a job writing to JDBC table, although the job is uses SparkSqlExecutionContext, it is also using rdd job to when writing to jdbc. As a result, some of the listener calls run through SparkSqlExecutionContext while other run with RddExecutionContext which is makes the test fail because setActiveJob method that is necessary for output statistics to be up an running.
As a solution to this OpenLineageSparkListener will store Integer activeJobId property to let share jobId among SparkSQL and RDD execution contexts.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 85.52%. Comparing base (b131895) to head (511e7c6).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2743   +/-   ##
=======================================
  Coverage   85.52%   85.52%
=======================================
  Files          58       58
  Lines        3413     3413
=======================================
  Hits         2919     2919
  Misses        494      494

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Fileupload doesn't work on mobile chrome

The upload command always returns an error on the mobile version of chrome.
Tested on: Samsung Galaxy A20e on Android 10 and Chrome

fixed


How to query the current list of topics for a consumer group

It is both: question and bug.
We are having an issue wherein a broker disappearing and coming back within a minute (same hostname, same IP, same port) leads to BrokerNotAvailableError. We try to reconnect using refreshMetadata (see sample reconnect code below). Eventually it does seem to reconnect, but the consumer group we use does not have any topics associated, and so no messages come through.
We cannot reproduce it with any reliability. That also means we cannot turn on debug logs and leave them on indefinitely.
We are hoping our own minimal logs would catch it.

How do we ask the consumerGroup what its current state of brokers and topics is?
Have you seen this, where refreshMetadata returns without error, but topics are unavailable?

Environment

Node version: 8.9.0
Kafka-node version: 2.2.3
Kafka version: 1.0.0

For specific cases also provide

Number of Brokers: 3
Number partitions for topic: 2

Sample Reconnect Code
      consumerGroup.on('error', (err) => {
        log.error(`error on consumerGroup ${groupName}`);
        log.error(err);
        // we can handle a broker not available error or a timeout error
        if (err && ((err.name === "BrokerNotAvailableError" && !reconnecting) || err.name === "TimeoutError")) {
          log.error("attempting reconnect");
          reconnecting = true;
          reconnectAttempts++;
          consumerGroup.client.refreshMetadata(consumerGroup.topics, (err) => {
            if (err != null) {
              log.error(`error refreshing metadata for consumer group: ${err}`);
              log.error(err.stack);
            } else {
              log.error(`reconnect successful`);
              reconnectAttempts = 0;
            }
            reconnecting = false;
          });
        }
      });
      consumerGroup.on('connect', () => {
        reconnectAttempts = 0;
        log.info(`Connected consumerGroup ${groupName}`);
      });

Logs:
2018-02-03T16:22:44.513Z - ^[[32minfo^[[39m: [streamloader:kafka] processed 80177 since Sat, 03 Feb 2018 05:28:43 GMT , kafka CONNECTED
2018-02-03T16:23:24.598Z - ^[[31merror^[[39m: [streamloader:kafka] error on consumerGroup influxloader-group
2018-02-03T16:23:24.598Z - ^[[31merror^[[39m: [streamloader:kafka]  BrokerNotAvailableError: Could not find the leader
    at new BrokerNotAvailableError (/app/node_modules/kafka-node/lib/errors/BrokerNotAvailableError.js:11:9)
    at KafkaClient.Client.sendToBroker (/app/node_modules/kafka-node/lib/client.js:565:17)
    at KafkaClient.Client.send (/app/node_modules/kafka-node/lib/client.js:520:10)
    at KafkaClient.Client.sendFetchRequest (/app/node_modules/kafka-node/lib/client.js:208:8)
    at ConsumerGroup.HighLevelConsumer.fetch (/app/node_modules/kafka-node/lib/highLevelConsumer.js:573:15)
    at Immediate.<anonymous> (/app/node_modules/kafka-node/lib/consumerGroup.js:186:14)
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)

// repeat above lots

2018-02-03T16:23:32.348Z - ^[[31merror^[[39m: [streamloader:kafka] attempting reconnect
2018-02-03T16:23:40.795Z - ^[[31merror^[[39m: [streamloader:kafka] error refreshing metadata for consumer group: LeaderNotAvailable,LeaderNotAvailable
2018-02-03T16:23:40.795Z - ^[[31merror^[[39m: [streamloader:kafka]
2018-02-03T16:23:44.513Z - ^[[32minfo^[[39m: [streamloader] printing statistics
2018-02-03T16:23:44.513Z - ^[[32minfo^[[39m: [streamloader:influx] start:Sat, 03 Feb 2018 05:28:34 GMT ; processed:80259 ; averagePointsPerWrite:11 ; failedWrites:4 ; failedMessagesPermanent:0 ; failedMessagesTemporary:31
2018-02-03T16:23:44.513Z - ^[[32minfo^[[39m: [streamloader:kafka] processed 80259 since Sat, 03 Feb 2018 05:28:43 GMT , kafka DISCONNECTED: reconnect attempts 1
2018-02-03T16:23:54.483Z - ^[[31merror^[[39m: [streamloader:kafka] error on consumerGroup influxloader-group
2018-02-03T16:23:54.483Z - ^[[31merror^[[39m: [streamloader:kafka]  TimeoutError: Request timed out after 30000ms
    at new TimeoutError (/app/node_modules/kafka-node/lib/errors/TimeoutError.js:6:9)
    at Timeout.setTimeout [as _onTimeout] (/app/node_modules/kafka-node/lib/kafkaClient.js:384:14)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
2018-02-03T16:23:54.483Z - ^[[31merror^[[39m: [streamloader:kafka] attempting reconnect
2018-02-03T16:24:44.514Z - ^[[32minfo^[[39m: [streamloader] printing statistics
2018-02-03T16:24:44.514Z - ^[[32minfo^[[39m: [streamloader:influx] start:Sat, 03 Feb 2018 05:28:34 GMT ; processed:80259 ; averagePointsPerWrite:11 ; failedWrites:4 ; failedMessagesPermanent:0 ; failedMessagesTemporary:31
2018-02-03T16:24:44.514Z - ^[[32minfo^[[39m: [streamloader:kafka] processed 80259 since Sat, 03 Feb 2018 05:28:43 GMT , kafka CONNECTED

The CONNECTED message in the statistics line is defined as reconnectAttempts == 0.
Would love to provide more info, and even have the minimal logs tell us what the current Kafka connection state is. How?

consumerGroup.topicPayloads is the consumer's view of what topics/partitions/offsets it owns. And consumerGroup.client.this.topicMetadata is the client's view of what broker topics are available.

Thanks @hyperlink .
So topicMetadata is all topics, while topicPayloads is my topics, along with current state of each?
Any sense of what went wrong with our connection, and how to discover it? The brokers recovered, but this never seemed to. I cannot reproduce yet, but I think with each (supposedly) successful reconnection I will dump topicPayloads to the logs. Hopefully that will give insight.

@deitch does kafka logs around the time of the reconnects reveal anything?
I'm also pushing out 2.4.1 soon which contains another fix to help recover better. The goal being this module should be responsible for recovery and not the user of this library.

does kafka logs around the time of the reconnects reveal anything?

Not much, I can try and grab them and have another look. We had 3 VMs each as a worker node, with a kafka pod on each. The VMs ran OS updates and rebooted, which is why we lost connections, but it should have recovered reasonably quickly.

pushing out 2.4.1 soon which contains another fix to help recover better

Do you mean all of the error-catching, validating, and refreshMetadata I did above? That would be very nice indeed!

Here are some of the logs from one of the nodes at loss time, nothing exceptional there. I had to scrub some of the topic names because of confidentiality, replaced stuff with xxxx.
[2018-02-03 16:23:25,546] WARN [ReplicaFetcher replicaId=101, leaderId=102, fetcherId=0] Error in fetch to broker 102, request (type=FetchRequest, replicaId=101, maxWait=500, minBytes=1, maxBytes=1048576
0, fetchData={spark-cdr-0=(offset=0, logStartOffset=0, maxBytes=1048576), xxxx-webservice-0=(offset=0, logStartOffset=0, maxBytes=1048576), xxxx-video-0=(offset=0, logStartOffset=0,
 maxBytes=1048576), xxxx-webservice-0=(offset=1145162, logStartOffset=1052613, maxBytes=1048576), xxxx-video-0=(offset=2314566, logStartOffset=2272840, maxBytes=1048576), xxxx-session-0=(offset=4997048, logStartOffset=4843829, maxBytes=1048576), xxxx-callrouter-0=(offset=3426398, logStartOffset=3381031, maxBytes=1048576)}, isolationLevel=READ_UNCOMMITTED) (kafka
.server.ReplicaFetcherThread)
java.io.IOException: Connection to 102 was disconnected before the response was read
        at org.apache.kafka.clients.NetworkClientUtils.sendAndReceive(NetworkClientUtils.java:95)
        at kafka.server.ReplicaFetcherBlockingSend.sendRequest(ReplicaFetcherBlockingSend.scala:96)
        at kafka.server.ReplicaFetcherThread.fetch(ReplicaFetcherThread.scala:205)
        at kafka.server.ReplicaFetcherThread.fetch(ReplicaFetcherThread.scala:41)
        at kafka.server.AbstractFetcherThread.processFetchRequest(AbstractFetcherThread.scala:149)
        at kafka.server.AbstractFetcherThread.doWork(AbstractFetcherThread.scala:113)
        at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:64)
[2018-02-03 16:23:33,404] INFO [ReplicaFetcherManager on broker 101] Removed fetcher for partitions xxxx-video-0,spark-cdr-0,xxxx-callrouter-0,xxxx-webservice-0,xxxx-video-0,xxxx-webservice-0,xxxx-session-0 (kafka.server.ReplicaFetcherManager)
[2018-02-03 16:23:33,404] INFO [Partition xxxx-callrouter-0 broker=101] xxxx-callrouter-0 starts at Leader Epoch 60 from offset 3426398. Previous Leader Epoch was: 59 (kafka.clust
er.Partition)
[2018-02-03 16:23:33,405] INFO [Partition xxxx-video-0 broker=101] xxxx-video-0 starts at Leader Epoch 64 from offset 0. Previous Leader Epoch was: 63 (kafka.cluster.Partition)
[2018-02-03 16:23:33,406] INFO [Partition xxxx-session-0 broker=101] xxxx-session-0 starts at Leader Epoch 60 from offset 4997048. Previous Leader Epoch was: 59 (kafka.cluster.Partition)
[2018-02-03 16:23:33,406] INFO [Partition xxxx-video-0 broker=101] xxxx-video-0 starts at Leader Epoch 62 from offset 2314566. Previous Leader Epoch was: 61 (kafka.cluster.Partition)
[2018-02-03 16:23:33,406] INFO [Partition xxxx-webservice-0 broker=101] xxxx-webservice-0 starts at Leader Epoch 65 from offset 0. Previous Leader Epoch was: 64 (kafka.cluster.Partition)
[2018-02-03 16:23:33,406] INFO [Partition xxxx-webservice-0 broker=101] xxxx-webservice-0 starts at Leader Epoch 65 from offset 1145162. Previous Leader Epoch was: 64 (kafka.cluster.Partition)
[2018-02-03 16:23:33,406] INFO [Partition xxxx-0 broker=101] xxxx-0 starts at Leader Epoch 66 from offset 0. Previous Leader Epoch was: 65 (kafka.cluster.Partition)
[2018-02-03 16:23:33,406] INFO [ReplicaFetcher replicaId=101, leaderId=102, fetcherId=0] Shutting down (kafka.server.ReplicaFetcherThread)
[2018-02-03 16:23:35,858] INFO [Partition xxxx-session-0 broker=101] Shrinking ISR from 102,101 to 101 (kafka.cluster.Partition)
[2018-02-03 16:23:35,862] INFO [Partition __consumer_offsets-13 broker=101] Shrinking ISR from 102,103,101 to 103,101 (kafka.cluster.Partition)
[2018-02-03 16:23:35,866] INFO [Partition __consumer_offsets-46 broker=101] Shrinking ISR from 102,103,101 to 103,101 (kafka.cluster.Partition)
[2018-02-03 16:23:35,869] INFO [Partition __consumer_offsets-9 broker=101] Shrinking ISR from 102,103,101 to 103,101 (kafka.cluster.Partition)
[2018-02-03 16:23:35,872] INFO [Partition __consumer_offsets-42 broker=101] Shrinking ISR from 102,103,101 to 103,101 (kafka.cluster.Partition)
[2018-02-03 16:23:35,877] INFO [Partition xxxx-callrouter-0 broker=101] Shrinking ISR from 102,101 to 101 (kafka.cluster.Partition)
[2018-02-03 16:23:35,879] INFO [Partition xxxx-hsi-0 broker=101] Shrinking ISR from 102,101 to 101 (kafka.cluster.Partition)
...
[2018-02-03 16:24:50,211] INFO [Partition __consumer_offsets-15 broker=101] Expanding ISR from 103,101 to 103,101,102 (kafka.cluster.Partition)
[2018-02-03 16:24:57,419] INFO [ReplicaFetcherManager on broker 101] Removed fetcher for partitions __consumer_offsets-22,__consumer_offsets-30,__consumer_offsets-8,__consumer_offsets-21,__consumer_offsets-4,__consumer_offsets-27,__consumer_offsets-7,__consumer_offsets-9,generic-0,__consumer_offsets-25,__consumer_offsets-35,__consumer_offsets-41,__consumer_offsets-33,__consumer_offsets-23,__consumer_offsets-49,__consumer_offsets-47,__consumer_offsets-16,__consumer_offsets-28,__consumer_offsets-31,__consumer_offsets-36,__consumer_offsets-42,ivr-cdr-0,__consumer_offsets-3,__consumer_offsets-18,__consumer_offsets-37,__consumer_offsets-15,__consumer_offsets-24,__consumer_offsets-38,__consumer_offsets-17,__consumer_offsets-48,spark-cdr-0,__consumer_offsets-19,__consumer_offsets-11,__consumer_offsets-13,__consumer_offsets-2,__consumer_offsets-6,xxxx-callrouter-0,__consumer_offsets-14,xxxx-session-0,xxxx-webservice-0,xxxx-hsi-0,__consumer_offsets-20,__consumer_offsets-0,__consumer_offsets-44,__consumer_offsets-39,xxxx-phone-0,xxxx-video-0,__consumer_offsets-12,__consumer_offsets-45,__consumer_offsets-1,__consumer_offsets-5,__consumer_offsets-26,__consumer_offsets-29,__consumer_offsets-34,__consumer_offsets-10,__consumer_offsets-32,__consumer_offsets-40 (kafka.server.ReplicaFetcherManager)
[2018-02-03 16:24:57,419] INFO [Partition __consumer_offsets-0 broker=101] __consumer_offsets-0 starts at Leader Epoch 60 from offset 0. Previous Leader Epoch was: 59 (kafka.cluster.Partition)
[2018-02-03 16:24:57,420] INFO [Partition xxxx-callrouter-0 broker=101] xxxx-callrouter-0 starts at Leader Epoch 69 from offset 0. Previous Leader Epoch was: 68 (kafka.cluster.Partition)

2.4.1 is published.
KafkaClient will try to request metadata to a available broker before we yield requests with BrokerNotAvailableError so refreshing manually may not be necessary.

2.4.1 is published

Nice! I see it on npm.

KafkaClient will try to request metadata to a available broker before we yield requests with BrokerNotAvailableError so refreshing manually may not be necessary

So all my code will just go away? That would be a pleasure. What if no brokers are available, or the leader isn't, and the kafka cluster is electing a new topic leader? What happens during that time, and how many retries / how long between retries?

Retries are based on the options passed into the the ConsumerGroup. The default values are
{
  retries: 10,
  retryFactor: 1.8,
  retryMinTimeout: 1000
}

The idea is any BrokerNotAvailableError should trigger a refresh of the metadata and if that metadata is out of date then the retries should also fail with BrokerNotAvailableError again and get another set of metadata and so on until things are back to normal.

Ah, so those retry options would apply not just to initial connections, but all followups when suddenly BrokerNotAvailable? I like it. I think it fits with the flow.
I think we can close out this issue. Let me just ask a few questions:

Would it handle all of those, including LeaderNotAvailable? Is that just a subset of BrokerNotAvailable?
Can I set the retries to infinite? I guess I can just put a really high number?
What happens when it hits its limit?
Is there any way I can be notified (without turning on debug logging) of lost connection and retries? We have once-per-minute status/statistics logging, would like to be able to redo what we have above, query if it is connected and how many retries it has made if not connected.
Would it effectively replace the logic I have above? Or do I need to keep anything? We rely on that "catch an error and retry" as crucial, so want to make sure I got it covered. Copying the logic here:

      consumerGroup.on('error', (err) => {
        log.error(`error on consumerGroup ${groupName}`);
        log.error(err);
        // we can handle a broker not available error or a timeout error
        if (err && ((err.name === "BrokerNotAvailableError" && !reconnecting) || err.name === "TimeoutError")) {
          log.error("attempting reconnect");
          reconnecting = true;
          reconnectAttempts++;
          consumerGroup.client.refreshMetadata(consumerGroup.topics, (err) => {
            if (err != null) {
              log.error(`error refreshing metadata for consumer group: ${err}`);
              log.error(err.stack);
            } else {
              log.error(`reconnect successful`);
              reconnectAttempts = 0;
            }
            reconnecting = false;
          });
        }
      });
      consumerGroup.on('connect', () => {
        reconnectAttempts = 0;
        log.info(`Connected consumerGroup ${groupName}`);
      });

Thanks again for this great lib.


FEATURE: Exchange on Curve and Add to Uniswap Pool

As a user, I want to call a VolumeFi vyper contract to trade into a Uniswap pool that will check my balance and either exchange my balance for USDC or WETH using Curve or will trade my USDC or WETH using Uniswap so that I will be able to add to the Uniswap Pool in which I want to trade.
Requirements
Flow of read and write transactions on ETH

Read balance in USDC or ETH on trading account
Convert USDC to ETH via Curve to trade into a pool that is a WETH pair and to get lowest slippage

Curve uses Synthetic swaps for ETH to USDC with details here: https://curve.readthedocs.io/cross-asset-swaps.html

Convert ETH into other pool token if I do not have the token in my balance
Deposit into the Uniswap pool the desired amount.
We will limit to USDC and ETH
We will limit to convert USDC to ETH using Curve
We will convert ETH to Uniswap Pool pair in order to deposit to the pool
The contract will charge  $5.00 USDC fee per transaction for all transactions over $5,000. So pricing is $5.00 per transaction at a minimum transaction of $5,000 USDC. Anything less is zero cost.

Acceptance Criteria

This Vyper contract should be testable with a Uniswap interface to any Uniswap  Token/WETH or Token/USDC pool where the token balance requires a token purchase and where the user has either USDC or WETH
This contract will charge a $5.00 USDC per transaction fee for each transaction that is successful and not reverted. The contract will pay the fee to the ETH address given.

Shipped and delivered with https://etherscan.io/address/0xFd8A61F94604aeD5977B31930b48f1a94ff3a195 deployment.


Regression: auto rename for duplicate video titles

Spawning ffmpeg with access token and HLS URL. This may take a few seconds...
progress [░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0% 0 0s

ffmpeg returned an error: File 'videos\What to use when - Yammer or Outlook - 17-01-2020.mkv'
already exists. Overwrite? [y/N] Received > 3 system signals, hard exiting

Not sure if this came in with the recentmkv PR or it slipped though a while ago.

yeah, mp4 is hardcoded, forgot that


Don't expose Pushable from client

Why
While working on #98, I noticed that we can make our API more consistent when it comes to closing if we always expose a close method, especially for streams you can both call input.end and close to end the stream, 2 ways of doing things is not good, and the behavior of input.end is not self-explanatory as it is with close.
Note: This uncovered a larger discussion/issue about our protocol, I found in the implementation that sometimes the server can initiate a close and it expects the client to send a close back. This is not documented in our protocol. We're considering doing half closes, TBD https://replit.slack.com/archives/C05GZ4NRSJ3/p1715235702921009. We'll address that in a different PR, but this PR essentially makes it so that server close requests are half-closes, some tests failing in this PR rely on client responding, so please ignore for now.
What changed
We never expose Pushable on the client side, what were previously input Pushable is now a simple "send" callback. Our "receives" were already exposed as async iterables, not Pushable, so we're covered there.

upload returns [send, finalize]

send is a simple callback
finalize finalizes the request and returns a promise
it is now an error to send a message after calling finalize (previously you could call input.end followed by input.push)
receiving a reponse before we send a finalize request is now considered an error, more closely matching our protocol docs

client: > --  - {
server:          <

stream now returns send function as a first argument instead of a pushable

close function is the only way to close the stream
it is now an error to send a message after calling close (previously you could call input.end followed by input.push)

there are some other minor changes like re-using the send function for init messages.
I have some test changes, but decided not to check them since they don't make sense until we figure out what to do about server initiated closes.
Versioning

[ ] Breaking protocol change
[ ] Breaking ts/js API change

Closing this in favor of efforts starting in  #118


Fix failing tests due to table name clashes

I see, so this explains the test failures on #851?  That makes sense, the tests did seem to execute in different order when running the entire suite on my laptop so maybe that's why I didn't encounter it.

Going to go ahead and merge this since I don't see anything controversial about this PR 👍


Merge js-libp2p interfaces into one repo

Following https://github.com/ipfs/js-ipfs/issues/2222
Can I get a Yay or block on this? Happy to take this one and ship it next week
Modules

[x] Connection
[x] Content Routing
[x] Peer Discovery
[x] Peer Routing
[x] Stream Muxer
[x] Transport

Cleanup
NPM Deprecation Notice

[ ] https://www.npmjs.com/package/interface-connection
Content Routing
[ ] https://www.npmjs.com/package/interface-discovery
[ ] https://www.npmjs.com/package/interface-peer-routing
[ ] https://www.npmjs.com/package/interface-record-store
[ ] https://www.npmjs.com/package/interface-stream-muxer
[x] https://www.npmjs.com/package/interface-transport

Readme Deprecation Notice

[ ] libp2p/interface-connection#32
[ ] libp2p/interface-content-routing#5
[ ] libp2p/interface-peer-discovery#12
[ ] libp2p/interface-peer-routing#20
[ ] libp2p/interface-record-store#18
[ ] libp2p/interface-stream-muxer#57
[ ] libp2p/interface-transport#57

Github Archival
Description replacement: [DEPRECATED]: now part of the https://github.com/libp2p/js-interfaces repo

[ ] Connection
[ ] Content Routing
[ ] Peer Discovery
[ ] Peer Routing
[ ] Stream Muxer
[ ] Transport

Github Archival: Record Store
Description replacement: [DEPRECATED]: deprecated in favor of https://github.com/ipfs/interface-datastore

[ ] Record Store

I totally agree on this. Just thinking if we should finish the async migration for all the interfaces before. Now we have a few with async await, while others with PRs for async await on WIP

Fair point. What is your prediction for that endeavor to be finished?

The number of PRs is actually pretty small, so I don't think we need to wait. There may be some coordination annoyances deploying things individually, but it's easy enough to recreate them in the new repo.
I started a new repo, currently under my org for experimenting but I will move that over to libp2p soon, https://github.com/jacobheun/js-interfaces.
The major thing I have realized after moving these all under 1 repo is that releasing them individually with Aegir would be annoying. Tagging is the main reason. If the modules are still released individually, Aegir will want to create tags for them, which will likely conflict with the tags from the other interfaces. To get around this we could look at updating Aegir to be able to specify prefixes for tags, or possibly a sub path of the folder you want to release.
This could look like:
aegir release -t node --dir stream-muxer

which would look at the package.json file there, and handle any version bumping. The tag could them be prefixed with the path, stream-muxer/v0.6.1 in this instance.
Thinking Forward
For the interfaces I think we could really just combine them and release as a new package @libp2p/interfaces, and deprecate the old ones, but I think we can have that conversation separately.

Continuing the conversation from https://github.com/ipfs/js-ipfs/issues/2222#issuecomment-515141543 here, as it pertains primarily to this move.

We just need to require specific interfaces where needed to avoid bundle problems. Just like we do for lodash and pullstreams.
There's no need to require a global index.js that brings everything in fact we shouldn't even have a index.js that re-exports the interfaces, just one file per interface.

Right, so anyone bundling should be fine as only the needed dependencies should get bundled, however if you're not bundling you may get some extraneous dependencies, like chai because it is currently a dependency of the upcoming libp2p-connection
@hugomrdias another thing I am thinking about is how the test suites and interfaces themselves will be required. For example, let's say I want to use the Transport interface for one of the async migrations. It has some base Error exports, along with the Transport test suite. My thinking is we would do something like:
// our test file
const TransportTests = require('lib2p-interfaces/transport/tests')

// In the src transport code
const { AbortError } = require('lib2p-interfaces/transport/errors')

Our current setup, has us nesting all source code in ./src, which makes these requires actually look like require('lib2p-interfaces/src/transport/tests') and require('lib2p-interfaces/src/transport/errors') which isn't a huge issue, but I'd rather us not use /src in our require paths as it's an antipattern. Lodash avoids this by keeping all files at the root level and they build the main file as part of the deploy so you can do const _ = require('lodash'). Async.js handles this with a build script that compiles ./lib files into the root of the deployed package.
I am trying to think through how we could have aegir handle some of this and/or through repo structure, without causing issues with the webpack builds.

@jacobheun the problem here is the /src in the require path ?
i don't see this as a problem really, our source code doesn't need transpiling which is really good so the source is useable (i don't think we gonna ever change that) !! Plus the user only needs the repo to understand the file structure.
IMO this is a js community thing that tends to over complicate everything, i don't think we should buy into it.
That said if the js team thinks this is the way to go, we can add an extra step to the release command to copy /src/* to whatever folder.

Either way, I think both ways will be fine. The most important is to coalesce the interface repos for improved developer productivity :)

Done, right?

@vasco-santos I moved the issues. Didn't find any open PRs (but wouldn't be able to move them if there were any)

Thanks @daviddias ❤

All readme's have been updated.
All github repos have been archived.
npm deprecation notices have been added to all versions of the modules pointing to the libp2p-interfaces module.

This is done!


Request for repo transfer

Hello! A couple days ago I opened PR #15, although I didn't check whether the repository was active first.
I've since noticed a few more weapons and animations that aren't being counted correctly, like the Blazing blowpipe, and the more recent special attack animations for the elder maul and Osmumten's fang. I've updated them locally, but if it is amenable to you, I would like to take over the plugin ownership to keep it up to date more frequently without throwing a million PRs your way. You would, of course, be credited for all the ground work you've done.
If you prefer to retain ownership of the plugin but are open to collaboration, it is also possible to add me as an author in this repository and the plugin hub manifest, which would grant me the ability to release new versions but keeps the plugin under your namespace.
I am on the plugin hub maintainer team, so this can be as simple as just letting me know here, and I can do all the other necessary bookkeeping.
If I don't hear from you in the next couple weeks or so, I will assume the plugin is no longer being maintained and take ownership as well.
Please let me know either way, thanks!

Hi there, apologies for not being active on keeping things up to date I hardly play osrs anymore apart from a bit on big content releases here and there. Thanks for your offer on helping maintain this, I have added you as a collaborator and am good with you being added to the manifest. Let me know if there's anything else you need after you accept the invite

Thank you! Everything looks good. I'll be rolling out an update now with the noxious halberd and blazing blowpipe, and will continue to push out others as I come across them.


[All] Default Export Option

Add option defaultExport for components that do not have a named export for their component class.

Resolved in PR #78


Revert "Updated code to include the new delivery column"

This reverts commit de5c2616129b30c261d6ab5eeced667f661b7279.
new column no longer needed

Approved.


How do I use this library?

I want to create my own fishing rod, how do I use this library for this? Can you give an example?

check netherite plus


GO:0099008 should not be linked to Swiss-Prot KW KW-1173

Hello,
Could you please correct the following:
GO:0099008 (viral entry via permeabilization of inner membrane) which describes the entry of a non-enveloped virus into the cytoplasm of a host prokaryotic cell should not be cross-referenced to Swiss-Prot KW KW-1173 (Viral penetration via permeabilization of host membrane) because this KW is used for both the prokaryotic and the eukaryotic viruses.
Thanks,
Chantal Hulo

@ggeorghiou. I'm not sure who maintains the keyword mappings these days. Can you look into this or let me know who to contact? Thanks!

Hi @ukemi, that would be me. Looking into this now

Right, looking at the mappings for this keyword, it's mapped to two GO terms:

GO:0039665 - permeabilization of host organelle membrane involved in viral entry into host cell - https://www.ebi.ac.uk/QuickGO/term/GO:0046718
GO:0099008 - viral entry via permeabilization of inner membrane - https://www.ebi.ac.uk/QuickGO/term/GO:0099008

@SIBvirus - GO:0099008 covers the prokaryotes, while GO:0039655 covers everything but S. pombe and other fungi. I would perhaps suggest removing both terms and mapping the keyword to GO:0046718 - viral entry into host cell (https://www.ebi.ac.uk/QuickGO/term/GO:0046718) - however I feel this might be too generic since the keyword definition states viral penetration into the host cell - http://www.uniprot.org/keywords/KW-1173.
If you're happy to re-map this keyword to GO:0046718, I'll go ahead and do so. @sylvainpoux do you agree or have another suggestion?

Mapping KW-1173 (Viral penetration via permeabilization of host membrane) to GO:0046718 - viral entry into host cell is right but "viral entry into host cell" is a very broad term...

An exact matching to our KW-1173  would require the creation a GO term "viral entry via permeabilization of host membrane"  (which would include organellar + inner membrane in the definition). GO:0039665 and  GO:0099008 could thus be children of this term which itself would be a child of viral entry into host cell.

Just a question, I think you meant GO:0039665 in your comment? If the penetration is caused by a protein of the viral capsid, why do you need to exclude S. pombe and other fungi?

Actually I made a mistake, both GO terms that map to the keyword have the same taxon restraint to not allow annotation to pombe or other fungi. Why this is is a very good question and one that a pombe expert might be able to answer. @ValWood would you mind weighing in on why taxon restraints exist for GO:0039665 and GO:0099008?
Furthermore, @ukemi what do you think of requesting a new term as @SIBvirus has suggested in her second point?

These are viral terms? So we wouldn't use them to annotate fission yeast of budding yeast?
Have I understood the question?

Yes, they are viral terms. There are taxon restraints for these terms that say never in fungi and pombe, but not any other species.
This may be my ignorance on pombe and apologies for that, but do pombe never get viral infections? And if they do, are there any native proteins in pombe that a virus uses to help enter the cell? Or am I misunderstanding how the taxon restraints are applied in GO terms due to cloudy brain syndrome?

These have probably  been added to prevent mappings occurring in the past.
Virus's probably can infect   but the biological role of the pombe proteins isn't to help virus's enter the cell so we would not make these annotations ever......
We wouldn't annotate any viral terms to fission yeast.
v

Cheers Val for clearing that up!

@SIBvirus  can we get a reference, definition and parent for the new term request. I have modified this ticket accordingly.

Sorry for the late answer. I tried first to find a reference that would describe both the permeabilization of the endosomal membrane and from the inner membrane in bacteria. Unfortunately, research on eukaryotic and prokaryotic viruses are most of the time two separate fields.
I can propose you the following references:
Permeabilization of the endosome (and possibly from the Golgi or ER for some viruses):
PubMedID: 25055856
Permeabilization of the inner membrane (although not very clear... the authors talk about an endocytosis-like mechanism, although it cannot be endocytosis as the host is a bacteria):
PubMedID: 20427561
By reading on this topic again, I see some inconsistencies in the GO hierarchy:
"GO:0099006 viral entry via permeabilization of endosomal membrane" is not linked to  GO:0039665 permeabilization of host organelle membrane involved in viral entry into host cell"
What is the difference between "GO:0075502 endosome membrane permeabilization involved in viral entry into host cell"  and "GO:0099006 viral entry via permeabilization of endosomal membrane"? I think these two are synonyms
In order to display a clear view of this process, I would propose the following hierarchy:

Viral entry into host cell (GO:0046718)

Viral penetration via permeabilization of host membrane (new term)

Viral entry via permeabilization of inner membrane (GO:0099008)

Permeabilization of host organelle membrane involved in viral entry into host cell (GO:0039665)

Viral entry via permeabilization of endosomal membrane (GO:0099006) (synonym=endosome membrane permeabilization involved in viral entry into host cell GO:0075502)
         Viral entry into host cell (GO:0046718)
 		 ¦
 Viral penetration via permeabilization of host membrane	-> linked to KW-1173
    ¦		                       ¦
   GO:0039665           GO:0099008
    ¦
   GO:0099006

(synonym GO:0075502)

Definition of the new term:
Host membrane permeabilization triggered by an interaction between the bilayer of a host membrane and a membrane-penetration capsid protein. Results in release of the virus contents into the host cell cytoplasm.
I hope this helps
Chantal

Created new term:
+[Term]
+id: GO:0140267
+name: viral entry via permeabilization of host membrane
+namespace: biological_process
+def: "The entry of a virus into the cytoplasm of a host cell, triggered by an interaction between the bilayer of a host membrane and a membrane-penetration capsid protein. Results in release of the virus contents into the host cell cytoplasm." [PMID:20427561, PMID:25055856]
+is_a: GO:0046718 ! viral entry into host cell
+created_by: pg
+creation_date: 2018-09-25T14:33:03Z
DO NOT ANNOTATE (it's a grouping term)
Added children:

GO:0099008 'viral entry via permeabilization of inner membrane'
GO:0099006 'viral entry via permeabilization of endosomal membrane'

--
also added 'part of' some 'viral entry via permeabilization of host membrane' to

'endosome membrane permeabilization involved in viral entry into host cell'
'macropinosomal membrane permeabilization involved in viral entry into host cell'
'permeabilization of host organelle membrane involved in viral entry into host cell'

@SIBvirus let me know if this is not what you wanted.
Thanks, Pascale


EINVAL with bzip2 images on mac

Fixed by https://github.com/resin-io-modules/etcher-sdk/pull/53


Support replace edit in MockTextBuffer

Right now, we use pair add/delete instead of replace. That breaks tracking points.

I implemented this somewhere in a PR - might want to double check whether it's in already.


Unexpected non-deterministic output when recompiling Javy provider

Given a JS file that has the following source code:
console.log(Math.random())

I see the following results:
➜  javy git:(main) target/release/javy compile -d index.js -o index.wasm
➜  javy git:(main) wasmtime run --preload javy_quickjs_provider_v1=target/wasm32-wasi/release/javy_quickjs_provider_wizened.wasm index.wasm
0.6111985957948094
➜  javy git:(main) wasmtime run --preload javy_quickjs_provider_v1=target/wasm32-wasi/release/javy_quickjs_provider_wizened.wasm index.wasm
0.6111985957948094
➜  javy git:(main) make core
cargo build --package=javy-core --release --target=wasm32-wasi --features=
    Finished release [optimized] target(s) in 0.09s
wizer target/wasm32-wasi/release/javy_quickjs_provider.wasm --allow-wasi --wasm-bulk-memory true -o target/wasm32-wasi/release/javy_quickjs_provider_wizened.wasm
➜  javy git:(main) wasmtime run --preload javy_quickjs_provider_v1=target/wasm32-wasi/release/javy_quickjs_provider_wizened.wasm index.wasm
0.3228588863524102
➜  javy git:(main) wasmtime run --preload javy_quickjs_provider_v1=target/wasm32-wasi/release/javy_quickjs_provider_wizened.wasm index.wasm
0.3228588863524102

Running the same module with the same provider twice has identical output. This is expected for Shopify Functions. I've filed https://github.com/Shopify/javy/issues/318 for the non-Shopify use case since this is unexpected for that. However, simply recompiling the provider and linking to the recompiled provider, and then re-running the same module results in a different output. If there were a code change in the provider code, this would be somewhat expected. But there is no change which makes this unexpected behaviour to me and possibly for a Shopify Functions developer.
An additional impact of this bug is that our builds are non-deterministic. Rebuilding with the same code will always yield a slightly different executable which makes investigating some issues more difficult.

The root cause of this issue and #318 is that a random_state property on the JS context struct is set according to the current time during JS context initialization and we run that initialization as part of the Wizer preinitialization steps. That random_state is used as a seed by Math.random().
The JS context struct is forward declared in quickjs.h with the implementation provided in quickjs.c so we can't access the random_state property outside of quickjs.c. The function that sets random_seed, js_random_init, is a static function so it can't be called from outside quickjs.c. That function has one call site, JS_AddIntrinsicBaseObjects, but that calling function can only be called once on a JS context and it has already called when a JS context is initialized. Attempting to call it again results in abort() being invoked which causes a trap.
As far as I can see, we have 4 high-level approaches we could use:

Move the QuickJS context initialization out of the Wizer preinitialization
Override the implementation of Math.random() with our own implementation
Use a deterministic implementation of clock_time_get whenever we use Wizer to initialize a JS context
Change the code in quickjs.c, either move the random_state initialization or add a function to set the random state

(1) is the easiest change. Unfortunately it will degrade performance because a new JS context will need to be created at runtime instead of at build time.
I've tested (2) and it also works. Our implementation can bypass random_state entirely so we can the randomness will be controlled by whatever WASI implementation is provided by the host environment at runtime. The downside with this approach is that the Javy build is still non-deterministic because a different random_state is being set every time we recompile the core crate. But there isn't really any runtime consequence because of that.
For (3), Wizer when called as a Rust library allows specifying implementations of functions that are imported by the module being preinitialized. We can provide deterministic implementations of clock_time_get and other WASI APIs and try to write code to fallback to the default implementation for fd_read. This would mean the results of builds should become deterministic. The results of Math.random() would be fully deterministic from build to build. Unfortunately #318 will remain an issue since random_state will still remain fixed across invocations of the same Wasm module.
(4) is technically an option but we'd be forking QuickJS if we do it which would make updating QuickJS more difficult in the future so I don't think we should pursue this approach.
I'm strongly leaning toward approach (2). I think (3) could make sense to do at some point so the build becomes deterministic but it's less of a pressing concern if we do (2). And (2) is more straightforward compared to (3).
@saulecabrera thoughts?

Alright, for (2), would you prefer the overridden implementation be added in the core crate or the apis crate?
I'd slightly lean toward core because this only happens as a result of the preinitialization we perform in core and wouldn't normally happen so most other users of javy could use the default Math.random(). That said in favour of putting it in apis, it's a standard API, it would be easy for folks to not include our overridden implementation by not enabling the feature that would include it, and it would mean other folks who want to preinitialize their JS contexts could also use our implementation. So I could also see putting it in apis being a completely reasonable decision.

I was thinking adding it at the apis level, and making sure it's enabled by default, that way we'd only need to maintain a single code path that performs random for both: (i) any consumers of javy::Runtime and (ii) the core crate. Assuming that both random implementations are equivalent in functionality, it's not clear to me why someone would prefer the C implementation; I also think that delegating the internals of the implementation to WASI gives more flexibility to other use-cases in terms of determinism.
Does that make sense to you?

Does that make sense to you?

Mostly

Assuming that both random implementations are equivalent in functionality

They should be. Something's wrong if that's not the case.

it's not clear to me why someone would prefer the C implementation

Possibly to reduce the size of the module by not including an additional RNG. We could just delegate directly to random_get but that would likely be slower than using a PRNG seeded by random_get if there are multiple invocations of Math.random(). Also our approach would result in invoking at least one additional hostcall over using the default implementation. Normally just clock_time_get would run as part of JS context initialization. But our implementation would result in clock_time_get running as part of JS context initialization and then random_get would run at least once. Probably a relatively minor concern all said.

I also think that delegating the internals of the implementation to WASI gives more flexibility to other use-cases in terms of determinism

I'm not sure I follow exactly. I was thinking we would be using random_get to seed a PRNG to reduce hostcalls for multiple uses of Math.random(). I was planning on using the rand crate and double-checking the hostcalls it invokes. And that's not too far from the built-in logic, it's just that the initial seeding happens when initializing the JS context instead of on first call to Math.random(). We could just delegate directly to random_get, but I suspect it would be slower than using a PRNG.

Jeff and myself discussed this offline; after that discussion I'm aligned with the direction here. FWIW, I was hoping we could offer a single implementation but the potential performance impact and module size considerations are good points. If the performance/module size are not a concern in the long run, this is something that we can always revisit in the future.
One thing that I did forgot to mention -- since we are going to offer both options, can we add some documentation describing the pros and cons of each and when you should use one vs the other along with the module size and performance measurements for each?  My hope is that with this documentation, it should be straightforward to know when you should not use the default.


[Berry] Generate partial classes and interfaces

When generating a client using StawberryShake, the classes and interfaces should be generated with the partial modifier. This allows the encompassing project to extend them.

This one is done.


Add belaletech

Related issue
Name ADD

What changes does this PR do?
Screenshots (If any)
Questions

Ok thanks a lot for your help
On Fri, 12 May, 2023, 10:31 pm David Leal, @.***> wrote:

@.**** requested changes on this pull request.
In README.md
https://github.com/EddieHubCommunity/hacktoberfest-practice/pull/2780#discussion_r1192610194
:

@@ -183,7 +183,7 @@ A GitHub conflict is when people make changes to the same area or line in a file
| P | Q | R | S | T | U | V | W | X | Y | Z |

A

Belal Ahmad

Please add your name alphabetically and in the B section.
Let us know if you need any help with that. 🙂
—
Reply to this email directly, view it on GitHub
https://github.com/EddieHubCommunity/hacktoberfest-practice/pull/2780#pullrequestreview-1424870021,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AV6ISZENMZYGXI2AIWA3IETXFZUGHANCNFSM6AAAAAAX2ML4GY
.
You are receiving this because you were mentioned.Message ID:
<EddieHubCommunity/hacktoberfest-practice/pull/2780/review/1424870021@
github.com>


Minimap

FWIW, I am strongly against this 👎

I'm also not a fan, it brings me zero value and it's distracting and takes space
but as long as it's optional I don't see why it couldn't be added
there is definitely people who likes it

can't see anything 😅 did the screenshot get attached?

never said I was intelligent, seems github email drops images

oh, hold up, that's something different... that's the scrollbar itself, which I have butchered with custom css 🤣
yep, this is what I know from intellij based editors, but I wasn't aware vscode also had it
I turned off scrollbars looong time ago 😅
yeah, this is definitely more useful 👍🏻

yeah, minimaps sux, minimap like features in scroll bar, awesome use of space
On Jul 14 2022, at 8:56 pm, Alex Viscreanu @.***> wrote:

oh, hold up, that's something different... that's the scrollbar itself, which I have butchered with custom css 🤣
yep, this is what I know from intellij based editors, but I wasn't aware vscode also had it
I turned off scrollbars looong time ago 😅
yeah, this is definitely more useful 👍🏻
—
Reply to this email directly, view it on GitHub (https://github.com/zed-industries/feedback/issues/263#issuecomment-1184841051), or unsubscribe (https://github.com/notifications/unsubscribe-auth/ATXWUNQC3EHVLBCD3R4KLU3VUBWF5ANCNFSM53CW47CQ).
You are receiving this because you were mentioned.

I'm dyslexic (being a dyslexic dev is a weird thing, but that's another story), so I often recognize code by the shape of it - which is where the minimap becomes useful for me.

I think the minimap by itself is not very useful. However, it's actually really nice when it shows red/yellow lines for ESLint and/or TypeScript errors/warnings throughout the entire file, allowing you to quickly click on that area of the minimap and scrolling you down to where the error is.

I also recognize code by it's shape. It's super useful. But I prefer seeing an outline of the document. It gives me shape but also meaning in less space. Like a table of contents.
The breadcrumb feature already creates an outline, but only line by line, which is weird because if I am already at that line I already know where I am.
Having a full vertical outline would be useful for recognizing large documents.
Also, hints in the scrollbar are immediately useful.

@heyallan,
You're probably already aware of this, but in case you haven't seen this, we do have a search buffer symbols action that gives you a modal popup where you can see the overview of the current file's symbols.  You can then filter down to what you want and be taken to that point in the code.

@JosephTLyons Exactly. The functionality is already there. I just would like to have it permanently open on the side as a form of minimap.

fwiw I love the minimap for giving the code a shape and body, helps me navigate it by feel, like a few people have mentioned already. like i know where things are from the topology of the thing, like it's a kaiju or a battleship. i've come to understand this is atypical but
also because I'll occasionally annotate my code with huge ascii/ansi art, kind of like xcode's //MARK comments but I usually just use figlet

Also using the minimap to quickly navigate code by shape and colors.
Would love a similar option to not render actual characters (makes the shape & color fuller and easier to scan).

I've found minimaps really useful for many of the reasons mentioned here. While I am missing them in Zed, solving for that might not require a minimap.
First, I rebound the outline to cmd-o to make it much quicker to open. The fact it's syntax highlighted, and searchable makes it more useful than a minimap for moving around in a file.
  {
    "bindings": {
      "cmd-o": "outline::Toggle"
    }
  }

However, I still find myself missing how vscode indicates problems in the file tree and minimap.
The problem multi-buffer is a really neat idea, but I don't find it useful for more complex problems. (The amount of padding and UI chrome can sometimes make things feel disconnected).
I think I could live without a minimap if the file tree and outline had a color/underline/dot/something to indicate a problem/warning.
I seem to be a very spatial programming, in that I rarely search, and instead navigate to the file and part of the file when looking for something, or solving a bug. I think this is my brain indexing on where something is more than what it was named.
Given Zed's opportunity to rethink much of the IDE, and as much as I do love minimaps, I'm keen to see what you folks come up with.

@heyallan,
You're probably already aware of this, but in case you haven't seen this, we do have a search buffer symbols action that gives you a modal popup where you can see the overview of the current file's symbols. You can then filter down to what you want and be taken to that point in the code.

This feature is really good on backend, but for the frontend code sometimes you have some annoying and long JSX function, in symbol view it looks like this. (Not very helpful) It will be so good if that symbol view can parse JSX!

I seem to be a very spatial programming, in that I rarely search, and instead navigate to the file and part of the file when looking for something, or solving a bug. I think this is my brain indexing on where something is more than what it was named.

I love this insight!

I think it would be nice to have configurable minimap, either in the scrollbar or standalone, since there's no clear consensus here.

I really got used to minimaps. I'm not dyslexic but I do use it to recognise the shape of the code on long files. The other use case that I found SUPER useful is the MARK statements in Xcode.

Hey there - very excited about Zed - I wanted to echo others' comments about coming to rely on minimaps to navigate larger projects. At this point the lack of the option is a blocker on using adopting any new editor as a main editor.
I understand why people bring up search buffer symbols but I want to emphasize how the minimap feature allows you to spatially organize files by section and recognize layout. I both understand why some people don't care and want to encourage the Zed team to think about this as a core feature of a modern editor.

Here's the alternative Display hunks/diagnostics/search results in scroll bar that I'm personally looking forward to... Let's 👍🏽  it up.

Here's the alternative Display hunks/diagnostics/search results in scroll bar that I'm personally looking forward to and kind of mentioned here https://github.com/zed-industries/community/issues/263#issuecomment-1287994721
Let's 👍🏽  it up.

Git diff in scrollbar will be landing this next Wednesday, if all goes to plan.

Any chance of ticks in the scrollbar for bookmarks/errors/warnings/todo/etc like JetBrains? Even better if they were clickable.

Xcode has one of the most useful minimap I've ever used:
You can use // MARK: - XXX to add section header, which will be displayed in the minimap, making it super easy to navigate around:

Putting the mouse over the minimap shows the name of the function the user is pointing at:

I think one of the most useful features of the minimap that I'm missing in Zed is the ability to quickly see where symbols are being used

Is not only about the theme, but having it in the scrollbar too...


Add Sanction List

Add sanction list based to the discussion here https://github.com/sigma0-xyz/zkbitcoin/issues/5.
The logic goes like this:

Start a thread that periodically fetches the lates list of sanctioned BTC addresses from here https://www.treasury.gov/ofac/downloads/sanctions/1.0/sdn_advanced.xml
If the list is fresh it will extract all BTC addresses from that XML file and store in-memory
Exposes a is_sanctioned method that returns true if the address is in the sanction list.

It takes around 35s to update fetch the latest OFAC list and extract all addresses from XML to the in memory hashmap. The logic runs in a separate non-blocking thread so it should not cause any issues. Also, they update the list every few days so it's gonna run that often

I believe we should start this thread when we run StartCommitteeNode. It should wait for the fist sync of the OFAC list before the node itself starts.

BTW let me know when this is ready for review (looks like CI doesn't pass atm)

BTW let me know when this is ready for review (looks like CI doesn't pass atm)

Fixed the lint issues. You can review this :)

Sanction ist

I've added a comment regarding this.
https://github.com/sigma0-xyz/zkbitcoin/pull/30#issuecomment-1915156179
It's an XML file and is 92MB big.


Add myself to the admin list

@gastaldi asked me to do this ;-)

Can one of the admins verify this patch?

[test]


Page component not working with empty list

When you empty any list of tasks if the page component is enabled it will keep showing the button for next page and the text Page 1 of 0

Issue was at condition
if(this.props.pages === 1) {

Replaced with
if(this.props.pages <= 1 ) {


Feature Request for generate_deals and calc_all_tables Pattern

I propose some features to make the following code pattern easier and more obvious.

DealList.to_list() which returns a Python list of Deal. The issue is when I access d after calc_all_tables, I get an address exception so the workaround is to create a Python list/tuple before calc_all_tables, hence d_t = tuples(d).
DDTableList.ResTable.to_list() which returns a Python list of lists (list of directions containing list of suits), ordered same as pprint() tuple(tuple(sd[suit][direction] for suit in [3,2,1,0,4]) for direction in [0,2,3,1])?
Question: Why is resTable.pprint() ordered as NSWE instead of NSEW or NESW?

    d = generate_deals()
    d_t = tuple(d) # create a tuple before Deal storage goes wonky
    tables = calc_all_tables(d_t)
    t_t = (tt._data.resTable for tt in tables)

    for ii,(dd,sd,tt) in enumerate(zip(d_t,t_t,tables)):
        print(f"Deal: {ii+1}")
        dd.pprint()
        print()
        tt.pprint()
        print(tuple(tuple(sd[suit][direction] for suit in [3,2,1,0,4]) for direction in [0,2,3,1]))
        print()

generate_deals is a generator, so in the same way you might write list(range(n)) or list(permutations(l)) to collect the deals into a list you should do d = list(generate_deals()) - there isn't a DealList object as such. I think this idiom is common enough, and lazy evaluation has enough upsides, that it is ok as is but I am open to counter arguments.
Is there a particular reason you would like the DDTable as a 2D list? Seeing as it is trivial to add to_list I have put it in though. The reason for classes such as DDTable and DDTableList is that they just wrap the underlying C structs, avoiding making copies of the underlying data each time the dds interface is called. In the case above, the code could be rewritten using the __getitem__ operator of DDTable:
from endplay import *

deals = list(generate_deals(produce=20))
tables = calc_all_tables(deals)

for ii, (dd, tt) in enumerate(zip(deals, tables)):
    print(f"Deal: {ii+1}")
    dd.pprint()
    print()
    tt.pprint()
    print(tuple(tuple(tt[s, p] for s in Denom.bidorder()) for p in Player.iter_order("NSEW")))
    print()

It might be worthwhile me making it easier to customize the order of iteration of the enumerations though.
As for why the pprint order is NSWE: I agree, NSEW is more logical. I have changed that to the default, but added players and denoms parameters which let you customize the table to display any subset.


chore: Update AVL Tree

Description of Change

Updated AVL Tree data structure using modern C++ STL library features like std::unique_ptr and implemented Object Oriented structure. Also added additional tests and updated existing tests to use assert.
Checklist

[x] Added description of change
[x] Added file name matches File name guidelines
[x] Added tests and example, test must pass
[x] Added documentation so that the program is self-explanatory and educational - Doxygen guidelines
[x] Relevant documentation/comments is changed or added
[x] PR title follows semantic commit guidelines
[x] Search previous suggestions before making a new one, as yours may be a duplicate.
[x] I acknowledge that all my contributions will be made under the project's license.

Notes:
Completed the following TODO
/**
 * \todo update code to use C++ STL library features and OO structure
 * \warning This program is a poor implementation and does not utilize any of
 * the C++ STL features.
 * /

this pr should be put on hold until #2746

Is it necessary to add class names and variables in snake_case as well?

Is it necessary to add class names and variables in snake_case as well?

No, the contributing.md file prefers pascal or camel case last i checked please do check and confirm

Is it necessary to add class names and variables in snake_case as well?

No, the contributing.md file prefers pascal or camel case last i checked please do check and confirm

For classes, variables, and functions, there is no explicit mention of a case preference, although the description below led me to believe that snake_case is preferred.
/**
 * @brief Class documentation
 */
class class_name {
 private:
    int variable;   ///< short info of this variable
    char *message;  ///< short info

 public:
    // other members should be also documented as below
}

Also, this makes me believe that snake_case is preferred for functions
template <typename T>
bool is_number_on_array(const std::vector<T> &arr, const int &number) {
    for (int i = 0; i < sizeof(arr) / sizeof(int); i++) {
        if (arr[i] == number) {
            return true;
        }
        else {
            // Number not in the current index, keep searching.
        }
    }

    return false;
}

feel free to use snake case instead


feat: Keeplive Options

What's changed and what's your intention?

support keeplive options

Checklist

[x]  I have added the necessary unit tests and integration tests.

Refer to a related PR or issue link (optional)

Codecov Report
Attention: 3 lines in your changes are missing coverage. Please review.

Comparison is base (b66d47c) 21.57% compared to head (ef3fcd2) 35.00%.

Files
Patch %
Lines

request/header/header.go
75.00%
3 Missing :warning:

Additional details and impacted files
@@             Coverage Diff             @@
##             main      #14       +/-   ##
===========================================
+ Coverage   21.57%   35.00%   +13.42%
===========================================
  Files           7        7
  Lines         190      180       -10
===========================================
+ Hits           41       63       +22
+ Misses        143      111       -32
  Partials        6        6

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Rename configKey 'head' to 'unhead'; Update README

add "Module Configuration" section in README.md
Description
The nuxt config is set to 'head' but actually in README you can find that it should be 'unhead'.

Linked Issues
no
Additional context
no

Hey @m7rlin
This is a good idea. However, changing the config key will be a major breaking change.
Would it be possible for you to address this in the PR? You can defu nuxt.options.head with nuxt.options.unhead

Sure

I fixed ts error.

Thanks @m7rlin :clap:


STYLE: Updates for ImageIORegionGTest, DiscreteGaussianImageFilter

With clang-format.

Can anyone please explain why clang-format did not do this initially, for ImageIORegionGTest, DiscreteGaussianImageFilter?


Adding lines after a line with breakpoint set adds more breakpoints on each following line

VSCode Version: Code 1.18.0 (dcee2202709a4f223185514b9275aa4229841aa7, 2017-11-08T12:32:39.870Z)
OS Version: Darwin x64 17.0.0
Extensions:

Extension
Author (truncated)
Version

vscode-markdownlint
Dav
0.11.1

beautify
Hoo
1.1.1

html-css-class-completion
Zig
1.14.0

npm-intellisense
chr
1.3.0

path-intellisense
chr
1.4.2

jshint
dba
0.10.15

vscode-eslint
dba
1.4.3

githistory
don
0.2.3

jupyter
don
1.1.4

tslint
eg2
1.0.22

vscode-npm-script
eg2
0.3.3

code-runner
for
0.8.3

live-code-runner
lab
2.0.0

node-module-intellisense
lei
1.4.0

MagicPython
mag
1.0.12

markdown-shortcuts
mdi
0.8.1

python
ms-
0.8.0

cpptools
ms-
0.14.2

wordcount
ms-
0.1.0

debugger-for-chrome
msj
3.5.0

vscode-icons
rob
7.18.1

markdown-preview-enhanced
shd
0.3.0

code-spell-checker
str
1.4.12

python
tht
0.2.3

tensorflow-snippets
vah
0.3.3

Steps to Reproduce:

Open a Javascript file
Set a breakpoint on a line
Go to the ned of the line with the newly set breakpoint and press enter to start a new line
Start typing on the new line

A new breakpoint will be created and will keep being created as you add more (non-empty) lines to the file .

Reproduces without extensions: Yes

Update:  It actually looks like the original line where the break point is set is the actual breakpoint; the succeeding lines show a breakpoint enabled indicator, but where you click on them to remove them they stay in place and cannot be removed -- this looks to be more of a display update glitch.

I have similar problem. When file is modified more "ghost" breakpoints are added. The only way to get rid of them is to close and reopen the tab. Occurs after compiling typescript.

YA Update: the "remove all breakpoints" command fails in this state... all the existing and phantom breakpoints are still in place.

@FancyBanana - thanks for pointing out the open/close tab solution - solves the immediate "being able to debug" problem.

Duplicate of #37880. Please try Insiders where the problem is fixed. Expect fix for Stable soon.


update

Erm I don't think you meant to open a pull request on this

Erm I don't think you meant to open a pull request on this

Sorry, I am not that familiar with deploying it and It


addresstogps.com is down

Hi,
Any chances of reviving the website? Is this project over?
Thanks a lot

geo909, try his new project...https://github.com/DanielBarnett714/Acastus


Using dash "-" to define stdout not working

A bit like wget where you can do wget https://someurl -O - to say to output to stdout.
Although I cannot get it to work:
./generator.exe -o -

ERROR(S):
  Option 'o, output' has no value.
  Required option 'o, output' is missing.

I'm not sure the library accepts - as a standalone value. Can you use something else for your purposes?

The '-' for specifying "input from stdin" is a good convention that is common on *nix utilities.  This library doesn't support that, however you could go with the alternatives:

use --stdin option to specify input from stdin
use --file or a file parameter that is empty to switch the "mode of input" to stdin instead of the specified file

The other alternative could be search the arg[] to detect the '-' by itself and set your own stdin=true flag before passing it into the library


How to know connectionDidFailToOpen(error: Error) error status code?

Hey I'm trying to connect but for somehow it failed to connect because of "unauthorized" and connectionDidFailToOpen will fire how to know error information or catch error type
Thanks

Do you have authorization set up on the server side? If so, you need to get the token and set access token provider in the connection options when configuring a new connection like this (you need to return the real token):
https://github.com/moozzyk/SignalR-Client-Swift/blob/7babf80f7549f10f4af0e2df0e1f8907c374c6bc/Tests/SignalRClientTests/HubConnectionTests.swift#L912-L914

Ok, sure I'm do that. but if I want to know that my token is expired.
How to know that?

Getting the token is outside of scope of the client. Having said that, with the WebSockets transport (which is the only one that is currently supported) there are only two requests sent to the server and both of them happen when the connection starts so if you request a new token just before starting the connection it should not expire when the connection is starting.
I don't know/remember if SignalR closes the connection when you use the WebSockets transport if the token expires after the connection was established. If this is the case you could potentially use the auto reconnect feature released in v 0.7.0 where you would refresh the token in the connectionWillReconnect event handler.

Great
Could you tell me please when connectionWillReconnect will fire?
And if connection  dropped for any reason is this "withAutoReconnect" will connect it again ?

connectionWillReconnect will be invoked before the client starts reconnecting. Reconnecting will happen if the connection is lost and was not closed by the user.

Very very great.
Last thing is uninvoked methods when connection is lost will be invoked again after reconnecting success ?

Not at the moment. When the connection is reconnecting any attempt to send will throw. I left this TODO in the code:
https://github.com/moozzyk/SignalR-Client-Swift/blob/15e489979ee13b33c3f903a9e499544a94cc3125/Sources/SignalRClient/ReconnectableConnection.swift#L56

Thanks Pawel.


Reporters: add new summary reporter

This reporter provides a summary of all files with errors found listing each filename against the error count. The following shows a sample of the output
file.js: 1 error found.
file2.js: 2 errors found.
Fixes #1047

LGTM. Nice work!

Could you post screenshot of the summary output?

Is this analogue of the https://github.com/jscs-dev/node-jscs/pull/601?

@markelog I think #601 is doing a more detailed report than this. I could change the name if required
The reporter implemented by this PR will only show the list of file names with the error count for files with errors found by the rules. The following shows a sample of the output
file.js: 1 error found.
file2.js: 2 errors found.

I will do a screenshot of a run when I get back on my PC in another 8 hours.

How about we unite two approaches? first we could show paths with error count and then rule table - http://imgur.com/FBX0C75

@markelog You can add images to github from the clipboard - and lol I noticed that's what the message below says (although maybe you knew that already)

@markelog  I can look into that I believe we could implement this reporter to cover both. I see cli-table as one of the project dependencies so I will use that to create 2 tables showing different summaries. I will update this PR with the new code but it might take some time though.

@markelog I have modified the PR making 2 commits for fixing #453 and #1047.
This report will now contain 2 tables as shown below, I did not style the tables but it can be done if required.

for fixing #453

No connections to the new reporter

I did not style the tables but it can be done if required.

Yeah, that would be preferable, it seems, wow effect of the #601 partly was achieved because of the styling thing.
Also, could align width of those tables?

Hi @markelog,
I have merged the 2 commits into a single one since the relevance to the old issue is no longer there.
Styling to the table has also been applied and I made the widths of both tables similar as well. Please take note that the wow factor introduces an unwanted side effect. In order to make the tables align I had to make the columns fixed width summing to a total of 80 characters (taking 80 characters as the default for terminals)). For error count columns they are usually fine but the rule (49) and path (62) columns might be truncated as shown in the image.
By checking the length of the rule filenames, I think the longest rule in jscs is now 45 characters so unless someone comes up with a very long rule the path column might be the one with a higher chance of being truncated.

I have written the original tests to mimic the output since this is a test suite for a reporter so I thought have the formatted output might make it clearer about what the reporter does. But as per your comments and while working on the styling I found that it make the tests brittle and easily broken as it needs a fair amount of inside knowledge on cli-table. So I have also modified the tests to use regular expressions to reduce the correlation of the tests with cli-table.
Please let me know if you feel that more changes are required.

I found that it make the tests brittle

Yeah, that is one of the reason i was asking about that, console checks could be really tricky, just like regexps, perhaps you could change those tests to indexOf instead?
Also, red looks kinda aggressive, i understand that perhaps you chose that color because those are errors and errors are usually red. But i would propose to switch to more friendly color, like green one.

For the styling I actually copied from the original code of #601, I have made the easy change and I have also modified the headers to make more space for the path or rule column

For the tests I was testing out the use of the indexOf and found that the console output actually contains a lot of unicode use for styling so the checking of value for "Errors" or "No of Files" becomes very tricky.
As an alternative I found in package.json the rewire module, with that I was able to access the raw data used in cli-table to test the values rather than messing with the formatting and console related output. It has some drawbacks listed below although I think it is better as the tests are more accurate as only the data is tested instead of data meshed up with display content.
Drawbacks
1. Introduces variables outside the exported module function (I think this is fine as the file is meant to be used in node
2. Test file needs to know inners of cli-table and also internal variables of the reporter.

Awesome! Thank you


FL Studio Producer Edition Crack 24.1.1 With Activation Key Free Download 2024

FL Studio Crack has revolutionized music production with its intuitive interface, versatile features, and comprehensive toolset. Developed by Image-Line, FL Studio, formerly known as FruityLoops, has been a staple in the music industry since 1997. Let’s delve into how this powerful digital audio workstation (DAW) unleashes creativity in musicians, producers, and DJs across various genres.
DOWNLOAD LINK
FL Studio’s interface is designed for ease of use, making it accessible to beginners while offering advanced functionalities for professionals. Features like the step sequencer and piano roll simplify composition, allowing users to create melodies and beats effortlessly.
FL Studio Crack facilitates the integration of third-party plugins, expanding creative possibilities. With compatibility for virtual studio technology (VST) plugins, users can enhance their soundscapes with additional instruments and effects, controlled precisely through the mixer.
FL Studio’s vast library of samples, loops, and presets accelerates the production process, providing abundant resources for experimentation. Automation and modulation tools enable dynamic changes in tracks, adding depth and complexity to compositions.
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,,
,
,
,,
,
,
,

DO not download it


Add Toggle MiniMap to View menu

I'm a bad person cluttering up menus - but I think this is a cool enough feature that it deserves a toggle in there.
@alexandrudima sending directly to you but fell free to push back/ask others etc.
I also appreciate that menu is getting long :)  And with a default setting [assuming we adopt it] discover-ability is less of an issue.
Sean
// cc @egamma

This would be really useful for temporarily turning the minimap off when you want a little bit more horizontal space with side-by-side editors.

https://github.com/Microsoft/vscode/issues/22423


We need a sample that shows usage of MaximumTransferLength and MaximumConcurrency

We are getting asks to set the block size and a sample will help reduce the friction customers face for looking up a sample

Hi @amishra-dev, we deeply appreciate your input into this project. Regrettably, this issue has remained inactive for over 2 years, leading us to the decision to close it. We've implemented this policy to maintain the relevance of our issue queue and facilitate easier navigation for new contributors. If you still believe this topic requires attention, please feel free to create a new issue, referencing this one. Thank you for your understanding and ongoing support.


"Principal" instead of "Principle"

Please correct the misspelling in the beginning.  "Principle" in bold below should be "principal".
In this article you can learn to create or validate:

Azure Stack Hub service principle (SPN) credentials for the pipeline.
A web app in your Azure Stack Hub instance.
A service connection to your Azure Stack Hub instance.
A repo

with your app code to deploy to your app

Article link to the above is:
https://docs.microsoft.com/en-us/azure/devops/pipelines/targets/azure-stack?view=azure-devops


Remove mention of donations through Medsin on support pages

Gone! Pending donation system from the all powerful NVF


Crash during starting dfu

Describe the bug
Crash during starting dfu
To Reproduce
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots

Smartphone (please complete the following information):

Device: [Moto G8]
OS: [Android 10]

Additional context
Is the same issue?
https://github.com/NordicSemiconductor/Android-DFU-Library/issues/208

Thank you for that bug report,
I've published a new version: https://www.nuget.org/packages/Laerdal.Xamarin.Dfu.Android/<IP_ADDRESS>
Could you try it and let me know?

When I upgrade to <IP_ADDRESS>,that' fine.
Thank you solving the issue. @framinosona


Parallelize actions

Runs actions in parallel as their dependencies get solved.
We also are parallelizing actions of the same kind + component, since there is no good way to determine the order they are supposed to run, if in serial.


Cleanup peer data in accounting on disconnect

Once loaded peer related data (e.g. the reserved balance) stays in memory forever. This can be freed if the peer disconnects.

@ralph-pichler , what is the status of this?

@eknir very low prio and probably not too easy to get right.


feature: Add WPF support for the navigation

We should have WPF support.
Should be able to base it off the transition control that ReactiveUI navigation currently uses.

An example showing how to use wpf has been added


Running specific bats will run all as well

Describe the bug: (a clear and concise description of what the bug is)
When wanting to run a single bats file, it will run that one first,  and then run all other tests as well.
To Reproduce
Steps to reproduce the behavior:
run otomi bats bin/tests/otomi.bats for example - or any other test. It will run that test, and then run all defined tests as well
Expected behavior: (a clear and concise description of what you expected to happen)
Run only the supplied test.
This can be achieved to modify bin/otomi the execute function, bats command.
From drun bats -T "$@" bin/tests, to drun bats -T "$@" but this won't run all tests. Which it should do as well.
Maybe implement an if-statement that checks if the number of arguments passed along to $@ is  run only $@ otherwise run bin/tests

Filter still works... otomi bats -f $string_in_test_header

@svatwork does your observation mean this is a no-op? Then please close this with the correct label ("invalid" in this case).

Yes, I guess it is. Without filter the default behaviour is to run all tests, and -f supports the use case to run specific tests.

@svatwork this was reported as a bug and that label could have stayed next to the "invalid" label to reflect how we see this bug.
We don't have to remove labels unless we use those to indicate the stage of the process, such as "help wanted" .


Different hide implementation

Aves adds a tag "hide" which aves them does not show anymore. However, when using a file picker, for example, when sending media over whatsapp, the hidden files are all visible.
Since it is only possible to hide folders (and not individual images) perhaps it would be easier to add a .nomedia file to the folder or simple make the folder a hidden folder (by starting its name with a . ).
In #72 you mentioned:

Rather, I'd leverage tagging for this purpose. Users could tag the files they want to hide with some XMP tag, and then hide that tag. It is a more flexible and scalable way to go about it. These XMP tags stay within the files, so you would benefit from them in other software that understands XMP.

I suggest adding the tag "hide" and adding a .nomedia file. This way you have universal tags and an android specific solution.

Aves adds a tag "hide" which aves them does not show anymore.

This is incorrect. There is no tag "hide", and Aves does not modify hidden files in any way. You probably misunderstood my comment about XMP tags and how you can leverage them to have more control over what you hide. Anyway, I understand this implementation detail does not change the nature of your issue, it's just for clarification.

However, when using a file picker, for example, when sending media over whatsapp, the hidden files are all visible.

If you want to pick a file when sending media, social media apps (and the OS file picker itself) allow choosing an app to pick media (never used WhatsApp, but at least Telegram and KakaoTalk do), so you could choose Aves then, or you could send it from Aves in the first place.

Since it is only possible to hide folders (and not individual images) perhaps it would be easier to add a .nomedia file to the folder or simple make the folder a hidden folder (by starting its name with a . ).

Not only folders, it works with any filter: locations, tags, mime types, animated/videos/etc.
As for ".nomedia", I already explained why this is not a sound solution here. More importantly, adding ".nomedia" would wreck valid use cases, such as hiding images from a music collection.
Also, Aves works with the collection established by the OS Media Store. It is not scanning non-media files. Adding .nomedia files would cut off those files from Aves itself, so it couldn't unhide them, browse them, etc. Allowing Aves to do so on non-media files would turn it into a file manager, no longer a gallery, and would require broader security permissions.
If you absolutely need a ".nomedia" file, use your file manager and create that file. Please do not open another issue about this here.

At least for me the app is ignoring .nomedia files
I don't want to hide pictures that are just matching a certain filter, I want to hide pictures by directory, the way Fossify Gallery (I switched to your app because Fossify gallery was crashing repeatedly with my 60,000+ image library) does it (long press on picture, select exclude, choose the level of directory to exclude)


configfile: shed some excess indention

replace cfreader.config_path with cp (5x)
early exit of functions permit removing of extra indention

That's a rather large diff for a straight pull-merge while we're supposed to be in code freeze... Do we have enough test coverage of that area of code to know it's working the same in all conditions?

The diff size is primarily the result of the "left shift" of those two blocks by 4 spaces. I wonder if, in cases like this, if wouldn't be better (for the purposes of review at least) to make the 2-3 line changes that permit the left shift in one PR, and then follow it with the left shifted block in another. I'm betting that github's whitespace highlighting would then work and it wouldn't appear be a substantive change.

Actually, using two PRs wouldn't be necessary. Two commits in one PR, with a note explaining that the code change is in the first, and the second is only a left shift that happens to balloon the diff in rude proportion ought to work...

Yeah I only commented because there's a bit of a logic change (or reversal)
to make the indent change, and I was too tired to be able to take in the
entire thing.
On Sun, Feb 8, 2015 at 11:11 PM, Matt Simerson<EMAIL_ADDRESS>wrote:

Actually, using two PRs wouldn't be necessary. Two commits in one PR, with
a note explaining that the code change is in the first, and the second is
only a left shift that happens to balloon the diff in rude proportion
ought to work...
—
Reply to this email directly or view it on GitHub
https://github.com/baudehlo/Haraka/pull/832#issuecomment-73455239.