int.reinterpetAsDouble() and friends

Right now, to cast an int to a double (as is commonly needed when parsing or generating binary formats), you have to create a ByteData, push the bytes into it, then read the data out of it, as in:
    final ByteData _buffer = ByteData(4);
    _buffer.setUint32(0, (byte1 & 0xFC) + (byte2 << 8) + (byte3 << 16) + (byte4 << 24));
    return _buffer.getFloat32(0);

I'm just guessing but it seems like this is not as efficient as it could be. It would be really nice if there was a way to do a zero-overhead cast from int to 32bit double, int to 64bit double, 64bit double to int, and double-to-32bit-double-to-int (that last one wouldn't be quite zero-overhead presumably).
    return ((byte1 & 0xFC) + (byte2 << 8) + (byte3 << 16) + (byte4 << 24))).reinterpretAsFloat32();

FWIW, here's how it works in Go. https://golang.org/pkg/math/#Float32frombits declares:
func Float32frombits(b uint32) float32

From the user's point of view, this is like any other top-level function. The compilers can recognize calls to it, though, and replace it with a no-op (at the CPU instruction level).
The function name itself is a little awkward, but we're stuck with it now.

First of all, I'd expect to read that kind of binary data directly from a ByteData object, not to read the bytes first, then convert them to something else afterwards. I can see the problem if the bytes of a float are not consecutive in the physical layout, but that sounds rare. (Or, if the format is compressed or otherwise delivered in chunks).
This sounds like something which belongs in typed_data, and something which won't work (not to its full extent) when compiled to JavaScript. There are no 64-bit integers in JavaScript, and all integers are already doubles.
Even in JavaScript, an int32asFloat32 can work, and float32asInt32 too. (Should the Int be signed or unsigned? Probably signed, it makes the result have the same sign as the original, and JS bit operations prefers signed).
It's only going to be zero overhead if the numbers are unboxed.
Dart currently boxes doubles on the heap, and integers above the Smi range too (which is 63 bits on 64-bit architectures), and even smis are tagged. The basic int64asFloat64 operation would smi-check (assume it succeeds), then untag, then allocate a heap-double and store the untagged value into that.
Obviously, if the numbers are unboxed. a lot of that can go away, but you can't keep numbers unboxed for long.
Could this be done sufficiently efficiently using dart:ffi?
Alternatively, I'd just make a helper library using a ByteBuffer:
final _buffer = ByteBuffer(8);
final _int32 = _buffer.asInt32List();
final _float32 = _buffer.asFloat32List();
final _int64 = _buffer.asInt64List();
final _float64 = _buffer.asFloat64List();
int float32ToInt32(double f) {
  _float32[0] = f;
  return _int32[0];
}
double int32ToFloat32(int i) {
  _int32[0] = f;
  return _float[0];
}
// ... where the _int64 won't work on the web

FWIW https://github.com/google/iconvg/blob/main/src/dart/lib/decoder.dart is the code that led to this issue being filed. I welcome suggestions for how to restructure that code to make it faster (for my own edification mainly, I don't expect that code to see much usage in practice). (There's a couple of places where we're aware it could be made much faster, mostly around inlining the calls to nextByte where that could avoid the range checks, and some similar fixes elsewhere; I've intentionally optimized for code maintenance over speed where there would be a trade-off because the spec is likely to change still. But it's possible that the use of ByteData/Uint8List etc is suboptimal in ways that are orthogonal to maintenance costs.)

any news update?

No update.
The recommended approach is to use a ByteData view on your bytes and read through that, or more specific types if the data is known to be aligned.
There is no possible cross-platform way to convert a single 64-bit int to a double with the same representation, because the web does not have 64-bit ints at all. The only way to have a 64-bit int is to store it in a typed-data array (or another special representation like the fixnum package's Int64/Uint64 classes).
It would be possible to be cross platform for "float" (32-bit floating point numbers), but as far as I know, the web compiler would have to use a typed-data array for the conversion anyway.
So I'd use something like:
final ByteData _buffer = ByteData(8);
int doubleBits(double value) => (_buffer..setFloat64(0, value)).getInt64(0);
double reinterpretAsDouble(int value) => (_buffer..setInt64(0, value)).getFloat64(0);
double reinterpretAsFloat(int value) => (_buffer..setInt32(0, value)).getFloat32(0);
/// etc.

The approach we use in Flutter is to provide the best we can on each platform, rather than try to be limited to the least common denominator. It's ok if something can be a zero-op cast on x64 but ends up being more expensive in dart compiled to JS. The point is to do the best we can on each platform, and the best on x64 is to literally take the 8 bytes and just treat them as a double instead of an int.


systemd: Failed to start Alertmanager (when Prometheus is not running yet)

The Alertmanager service fails to start, when Prometheus has not started yet. We observer this mainly after a machine reboot:
# journalctl -u alertmanager.service --boot
-- Logs begin at Thu 2019-07-04 01:20:09 UTC, end at Wed 2019-07-10 08:03:29 UTC. --
Jul 10 00:00:19 prometheus.example.com systemd[1]: Started Prometheus Alertmanager.
Jul 10 00:00:19 prometheus.example.com alertmanager[2859]: level=info ts=2019-07-10T00:00:19.771Z caller=main.go:197 msg="Starting Alertmanager" version="(version=0.18.0, branch=HEAD, revision=1ace0f76b7101cccc149d7298022df36039858ca)"
Jul 10 00:00:19 prometheus.example.com alertmanager[2859]: level=info ts=2019-07-10T00:00:19.773Z caller=main.go:198 build_context="(go=go1.12.6, user=root@868685ed3ed0, date=20190708-14:31:49)"
Jul 10 00:00:19 prometheus.example.com alertmanager[2859]: level=warn ts=2019-07-10T00:00:19.799Z caller=cluster.go:154 component=cluster err="couldn't deduce an advertise address: no private IP found, explicit advertise addr not provided"
Jul 10 00:00:19 prometheus.example.com alertmanager[2859]: level=error ts=2019-07-10T00:00:19.815Z caller=main.go:222 msg="unable to initialize gossip mesh" err="create memberlist: Failed to get final advertise address: No private IP addres
Jul 10 00:00:19 prometheus.example.com systemd[1]: alertmanager.service: Main process exited, code=exited, status=1/FAILURE
Jul 10 00:00:19 prometheus.example.com systemd[1]: alertmanager.service: Failed with result 'exit-code'.
Jul 10 00:00:20 prometheus.example.com systemd[1]: alertmanager.service: Service hold-off time over, scheduling restart.
Jul 10 00:00:20 prometheus.example.com systemd[1]: alertmanager.service: Scheduled restart job, restart counter is at 1.
Jul 10 00:00:20 prometheus.example.com systemd[1]: Stopped Prometheus Alertmanager.
Jul 10 00:00:20 prometheus.example.com systemd[1]: Started Prometheus Alertmanager.
Jul 10 00:00:20 prometheus.example.com alertmanager[3231]: level=info ts=2019-07-10T00:00:20.213Z caller=main.go:197 msg="Starting Alertmanager" version="(version=0.18.0, branch=HEAD, revision=1ace0f76b7101cccc149d7298022df36039858ca)"
Jul 10 00:00:20 prometheus.example.com alertmanager[3231]: level=info ts=2019-07-10T00:00:20.213Z caller=main.go:198 build_context="(go=go1.12.6, user=root@868685ed3ed0, date=20190708-14:31:49)"
Jul 10 00:00:20 prometheus.example.com alertmanager[3231]: level=warn ts=2019-07-10T00:00:20.221Z caller=cluster.go:154 component=cluster err="couldn't deduce an advertise address: no private IP found, explicit advertise addr not provided"
Jul 10 00:00:20 prometheus.example.com alertmanager[3231]: level=error ts=2019-07-10T00:00:20.227Z caller=main.go:222 msg="unable to initialize gossip mesh" err="create memberlist: Failed to get final advertise address: No private IP addres
Jul 10 00:00:20 prometheus.example.com systemd[1]: alertmanager.service: Main process exited, code=exited, status=1/FAILURE
Jul 10 00:00:20 prometheus.example.com systemd[1]: alertmanager.service: Failed with result 'exit-code'.
Jul 10 00:00:20 prometheus.example.com systemd[1]: alertmanager.service: Service hold-off time over, scheduling restart.
Jul 10 00:00:20 prometheus.example.com systemd[1]: alertmanager.service: Scheduled restart job, restart counter is at 2.
Jul 10 00:00:20 prometheus.example.com systemd[1]: Stopped Prometheus Alertmanager.
Jul 10 00:00:20 prometheus.example.com systemd[1]: Started Prometheus Alertmanager.
Jul 10 00:00:20 prometheus.example.com alertmanager[3355]: level=info ts=2019-07-10T00:00:20.468Z caller=main.go:197 msg="Starting Alertmanager" version="(version=0.18.0, branch=HEAD, revision=1ace0f76b7101cccc149d7298022df36039858ca)"
Jul 10 00:00:20 prometheus.example.com alertmanager[3355]: level=info ts=2019-07-10T00:00:20.468Z caller=main.go:198 build_context="(go=go1.12.6, user=root@868685ed3ed0, date=20190708-14:31:49)"
Jul 10 00:00:20 prometheus.example.com alertmanager[3355]: level=warn ts=2019-07-10T00:00:20.472Z caller=cluster.go:154 component=cluster err="couldn't deduce an advertise address: no private IP found, explicit advertise addr not provided"
Jul 10 00:00:20 prometheus.example.com alertmanager[3355]: level=error ts=2019-07-10T00:00:20.476Z caller=main.go:222 msg="unable to initialize gossip mesh" err="create memberlist: Failed to get final advertise address: No private IP addres
Jul 10 00:00:20 prometheus.example.com systemd[1]: alertmanager.service: Main process exited, code=exited, status=1/FAILURE
Jul 10 00:00:20 prometheus.example.com systemd[1]: alertmanager.service: Failed with result 'exit-code'.
Jul 10 00:00:20 prometheus.example.com systemd[1]: alertmanager.service: Service hold-off time over, scheduling restart.
Jul 10 00:00:20 prometheus.example.com systemd[1]: alertmanager.service: Scheduled restart job, restart counter is at 3.
Jul 10 00:00:20 prometheus.example.com systemd[1]: Stopped Prometheus Alertmanager.
Jul 10 00:00:20 prometheus.example.com systemd[1]: Started Prometheus Alertmanager.
Jul 10 00:00:20 prometheus.example.com alertmanager[3790]: level=info ts=2019-07-10T00:00:20.874Z caller=main.go:197 msg="Starting Alertmanager" version="(version=0.18.0, branch=HEAD, revision=1ace0f76b7101cccc149d7298022df36039858ca)"
Jul 10 00:00:20 prometheus.example.com alertmanager[3790]: level=info ts=2019-07-10T00:00:20.877Z caller=main.go:198 build_context="(go=go1.12.6, user=root@868685ed3ed0, date=20190708-14:31:49)"
Jul 10 00:00:20 prometheus.example.com alertmanager[3790]: level=warn ts=2019-07-10T00:00:20.882Z caller=cluster.go:154 component=cluster err="couldn't deduce an advertise address: no private IP found, explicit advertise addr not provided"
Jul 10 00:00:20 prometheus.example.com alertmanager[3790]: level=error ts=2019-07-10T00:00:20.885Z caller=main.go:222 msg="unable to initialize gossip mesh" err="create memberlist: Failed to get final advertise address: No private IP addres
Jul 10 00:00:20 prometheus.example.com systemd[1]: alertmanager.service: Main process exited, code=exited, status=1/FAILURE
Jul 10 00:00:20 prometheus.example.com systemd[1]: alertmanager.service: Failed with result 'exit-code'.
Jul 10 00:00:21 prometheus.example.com systemd[1]: alertmanager.service: Service hold-off time over, scheduling restart.
Jul 10 00:00:21 prometheus.example.com systemd[1]: alertmanager.service: Scheduled restart job, restart counter is at 4.
Jul 10 00:00:21 prometheus.example.com systemd[1]: Stopped Prometheus Alertmanager.
Jul 10 00:00:21 prometheus.example.com systemd[1]: Started Prometheus Alertmanager.
Jul 10 00:00:21 prometheus.example.com alertmanager[3918]: level=info ts=2019-07-10T00:00:21.109Z caller=main.go:197 msg="Starting Alertmanager" version="(version=0.18.0, branch=HEAD, revision=1ace0f76b7101cccc149d7298022df36039858ca)"
Jul 10 00:00:21 prometheus.example.com alertmanager[3918]: level=info ts=2019-07-10T00:00:21.110Z caller=main.go:198 build_context="(go=go1.12.6, user=root@868685ed3ed0, date=20190708-14:31:49)"
Jul 10 00:00:21 prometheus.example.com alertmanager[3918]: level=warn ts=2019-07-10T00:00:21.115Z caller=cluster.go:154 component=cluster err="couldn't deduce an advertise address: no private IP found, explicit advertise addr not provided"
Jul 10 00:00:21 prometheus.example.com alertmanager[3918]: level=error ts=2019-07-10T00:00:21.118Z caller=main.go:222 msg="unable to initialize gossip mesh" err="create memberlist: Failed to get final advertise address: No private IP addres
Jul 10 00:00:21 prometheus.example.com systemd[1]: alertmanager.service: Main process exited, code=exited, status=1/FAILURE
Jul 10 00:00:21 prometheus.example.com systemd[1]: alertmanager.service: Failed with result 'exit-code'.
Jul 10 00:00:21 prometheus.example.com systemd[1]: alertmanager.service: Service hold-off time over, scheduling restart.
Jul 10 00:00:21 prometheus.example.com systemd[1]: alertmanager.service: Scheduled restart job, restart counter is at 5.
Jul 10 00:00:21 prometheus.example.com systemd[1]: Stopped Prometheus Alertmanager.
Jul 10 00:00:21 prometheus.example.com systemd[1]: alertmanager.service: Start request repeated too quickly.
Jul 10 00:00:21 prometheus.example.com systemd[1]: alertmanager.service: Failed with result 'exit-code'.
Jul 10 00:00:21 prometheus.example.com systemd[1]: Failed to start Prometheus Alertmanager.

We're running Prometheus and Alertmanager on the same host (deployed using your Ansible roles :+1:), so waiting for Prometheus seems a good measure:
diff templates/alertmanager.service.j2
 [Unit]
-After=network.target
+After=network.target prometheus.service

I realise this might need a new variable and a conditional for general usage (i.e. when both services run on different hosts). Alternatively (or additionaly), it might be also useful to add a delay between the retries to give Prometheus a fair chance to start (as you can see in the log above, the restart attempts all happened within 2s):
diff templates/alertmanager.service.j2
 Restart=always
+RestartSec=5s

Sorry for my lack of reply.
We try not to have any dependencies between roles and we cannot ensure there is prometheus.service on the same host as alertmanager. And even when there is prometheus.service there is no guarantee that alertmanager is configured to receive alerts from this prometheus instance. I would recommend to do such check on a playbook level.
As for the second part (RestartSec=5s), I am currently securing all service files and will include it shortly.

Fair point. We're actually already using a drop-in for that purpose:
# systemctl status alertmanager.service
● alertmanager.service - Prometheus Alertmanager
   Loaded: loaded (/etc/systemd/system/alertmanager.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/alertmanager.service.d
           └─after-prometheus.conf
[...]

with /etc/systemd/system/alertmanager.service.d/after-prometheus.conf containing just
[Unit]
After=prometheus.service

Maybe this could be added to the README.md, e.g. in the Example section?

As for the second part (RestartSec=5s), I am currently securing all service files and will include it shortly.

Great!

I also looked at your error msgs and it seems quite strange that your alertmanager requires prometheus server to start. This is not a usual case for alertmanager as it should be able to operate without any prometheus server (communication is unidirectional and alertmanager is on receiving end).
From what I see you are having problems because of networking problem as can be seen in logs:
level=warn ts=2019-07-10T00:00:21.115Z caller=cluster.go:154 component=cluster err="couldn't deduce an advertise address: no private IP found, explicit advertise addr not provided"

Are you using alertmanager in HA mode with gossip network? Because it looks like alertmanager cannot start because gossip network address specified with --cluster.advertise-address is not available. Could you provide ansible variables which were used to deploy alertmanager?

Maybe this could be added to the README.md, e.g. in the Example section?

No, there is no requirement of having prometheus running to use alertmanager. Of course it doesn't make much sense, but it is not a hard requirement.

This error:
level=warn ts=2019-07-10T00:00:21.115Z caller=cluster.go:154 component=cluster err="couldn't deduce an advertise address: no private IP found, explicit advertise addr not provided"

is something you get when one of alertmanager requirements is not met. As alertmanager docs says:

The cluster.advertise-address flag is required if the instance doesn't have an IP address that is part of RFC 6980 with a default route.

I'm not aware we're using alertmanager in HA mode. From what I can gather from our Gitlab instance (I don't have the repo checked out right now), these are the only alertmanager_* variables set:
alertmanager_version: 0.18.0
alertmanager_receivers: [] # multiple configures
alertmanager_route: {} # configured
alertmanager_child_routes: [] # routes omitted
alertmanager_listen_address: "<IP_ADDRESS>:9093"
alertmanager_external_url:   "https://alertmanager.example.com"

Maybe of note: we've submoduled 50d90b5e.
I'll have a more detailed look tomorrow when I'm back in the office.

I am not sure if this would cause problems, but you have misconfiguration in two places:

alertmanager_listen_address should be alertmanager_web_listen_address
alertmanager_external_url should be alertmanager_web_external_url

Those options were changed in 0.11.0 to make it similar to alertmanager config.

On a side note, wow, you are using it for quite a long time (0.11.0 was released more than a year ago)!

Since #70 we are also using network-online.target instead of network.target which should ensure IP addresses are available before starting alertmanager.

I've checked and we don't run alertmanager in HA mode. However, the alertmanager docs state (emphasis mine):

--cluster.listen-address string: cluster listen address (default "<IP_ADDRESS>:9094"; empty string disables HA mode)

combined with alertmanager_cluster configured to be {} (i.e. the default value), this results in the following ExecStart directive:
ExecStart=/usr/local/bin/alertmanager \
  --config.file=/etc/alertmanager/alertmanager.yml \
  --storage.path=/var/lib/alertmanager \
  --web.listen-address=<IP_ADDRESS>:9093 \
  --web.external-url=https://alertmanager.example.com

Note the absence of a --cluster.listen-address="", which would disable HA mode.
This is just a bad default on alertmanager's part. I'll check whether
alertmanager_cluster:
  listen-address: ""

shuts that off.

I just discovered we didn't update that part of our docs for over a year :man_facepalming:

:grinning:

Yeah, alertmanager_cluster["listen-address"] = "" does the trick. I'll close this for now.


Docs are down with error SSL_ERROR_UNRECOGNIZED_NAME_ALERT

When trying to reach https://laravelshopper.io/documentation it redirects to to https://docs.laravelshopper.io/

Sorry for that But we are in the process of remaking a new site. At the end of the month it will be available again

Still not working


Write dataset class that tokenizes on the fly

Our current dataset class leaves a lot to be desired.
Ideally, we would have a dataset class that takes in text data and processes it on the fly, using multiple workers, similar to the dataloader in MegatronLM https://github.com/microsoft/DeepSpeedExamples/blob/master/Megatron-LM/gpt2_data_loader.py

Superseded by codebase refactoring.


Collect data in Profilers stored in Contexts

EvaluationContext and Fetch*Request are given a Profiler field of type *inspect.Profiler which collects metrics about the evaluation of each command.
The interface for the Profiler is a method func (p *Profiler) Add(name string) func() which returns a function that adds a profiling metric from the whose start is the time of the first call, and whose finish is the time of the returned function's call, storing it in name.
Typical usage is:
defer request.Profiler.Add("FetchSingleRequest")

There is no need to check for a nil pointer before doing this call. If the pointer is nil, the .Add method has no effect.
If it's necessary to time a function that is invoked (rather than modifying the function to do the profiling itself), then you can do the following (for example);
toGraphiteNameDone := request.Profiler.Add("api.ToGraphiteName")
graphiteName, err := request.API.ToGraphiteName(request.Metric)
toGraphiteNameDone()

However, Backends and APIs do not need to invoke these. Instead, use the wrappers api.ProfilingAPI, api.ProfilingBackend, api.ProfilingMultiBackend, and query.ProfilingCommand.
TODO: tests

LGTM (sans test).
I think few high-level integration test might be useful. do few queries.

describe all
select ... where

and check whether it has the expected # of statistics. (1 api call, 5 backend calls, etc). i think validating the actual data is unnecessary.

LGTM. Can you squash it?

LGTM


Rename Basis get_axis to get_column, remove redundant methods

This is a follow-up to #60627 that was requested by @reduz when discussing it.

Basis: Unify get_axis and get_column to get_column (they do the same thing)
Basis: Unify set_axis and set_column to set_column (they do the same thing)
Basis: Rename set to set_columns
Basis: Remove get_row and set_row since it's not needed now that elements was renamed to rows
Transform2D: Remove get_axis (get_column) since it's not needed now that elements was renamed to columns

Thanks!


nodejs server - swagger-tools -

When I try to run the generated nodeJS server, I'm getting this result
Unsupported Swagger version: 3.0.0

In this case, the generated code is (probably) correct, but swagger-tools which is used by the nodejs server code looks directly at the source definition and only understands OpenAPI/Swagger 2.0.
I've added a downconverter, which, depending on the complexity of your source OpenAPI 3.0 definition may be enough to get the server up and running.
Please try v1.3.0 at let me know how you get on.

Closing due to inactivity - but please feel free to reopen the issue if necessary.


Test errors and exception in cadence contract by flow-js-testing

Problem
Test function pre conditions in contract is not completely convenient, because sendTransaction function doesn't return response with error code and error message. This function throws error like a long string. In my case in order to test pre condition we need to write something like this:
 test("create", async () => {
    let error;
    try {
      const result = await sendTransaction({
        code: createTransaction,
        args: [
          ["1623417982.00", t.UFix64],
        ],
        signers: [EMULATOR_ACCOUNT],
      });
    } catch(e) {
      error = e;
    }
    expect(error).toMatch(/(Start time can't be in the past)/);
  });

To test something similar to:
 pub fun create(
    startTime: UFix64,
  ): UInt64 {
      pre {
          startTime > getCurrentBlock().timestamp : "Start time can't be in the past"
      }
     ....
  }

What is the version of library you are using? 🤔

What is the version of flow-js-testing you are using?

0.1.10

Closing as this functionality is currently part of the shallRevert jest assertion https://github.com/onflow/flow-js-testing/blob/master/docs/api.md#shallrevertix-message.


Fixed links in wiki

There were a number of references to ./wikifile without the .md extension, which was a broken link in my browser. I have updated the links to include .md
Also changed "solicitate" to "solicit".
#238

Closing PR, explanation in #238


Bump plugin API

Fixes #17. Bumps logstash-core-plugin-api in order to allow installation on Logstash 5. It seems that this plugin is already compatible with the new Event API, so the only thing that is required for Logstash 5 compatibility is bumping the plugin API version.
These changes were basically copied from logstash-filter-alter, specifically 1b9c73d7b7cd681fcf73afe52e01e57cb24e30fd, 0ba3edd85e752fa2a2ac50c2833cb3e83da4fa08 and fe6fe57e491630c48d380de8e2c3bda6aa34ad18.

I've been reluctant to update the plugin to use the new event API since I haven't been able to find a good way of supporting nested fields (see #12). On the other hand, nested fields have never worked with this plugin and this PR doesn't make anything worse.
Regarding the Travis CI failure, should you really have changed require "logstash/devutils/rspec/spec_helper" to require_relative '../spec_helper' in prune_spec.rb?

Oops, I forgot to git add spec/spec_helper.rb

I'm not entirely sure about the test failure, trying to figure it out now.

Hello!
Are there any timeline for updating this plugin?

I'm unfortunately quite busy until the Christmas holidays and won't be able to review this until some time in the Dec 27–30 time frame.

Thanks! I can't administer the release of the gem to rubygems.org so that'll have to wait until next week when the core folks are back in the office. I'd also like to add a documentation clarification about non-support of subfields before cutting v3.0.0.


Parse class member with a missing identifier in the presence of a modifier

Fixes #3504.
class C {
    public {};
}

Our parser function isClassMemberStart treats public {} as a class member because it starts with the word "public". Starting with a modifier is enough evidence to consider it a class member. However, parseClassElement is not so forgiving. It expects to see an identifier after the word "public". It does have a special case for a decorator with no identifier after it, so I'm piggy backing on this fallback logic for modifiers as well.

@CyrusNajmabadi want to take a look?

:+1:


Fails to start with error "Invalid Configuration Location" (after upgrade from Zip install on Windows)

After trying to upgrade my DBeaver 6.2.5 to 6.3.2, I can no longer launch it. dbeaver.exe fails showing an "Invalid Configuration Location" dialog which contains:

The configuration area at 'c:\Program Files\dbeaver\configuration' is not writable. Please choose a writable location using the '-configuration' command line option.

I manually installed from dbeaver-ce-6.3.2-x86_64-setup.exe. My previous installation was done with dbeaver-ce-6.2.5-win32.win32.x86_64.zip.
The c:\Programmes\dbeaver\configuration\ directory exists, however I cannot create files in it or edit its files. I need administrator permissions. I am an administrator on this Windows install.
If this is the result of something wrong I did, I definitely do not see what (I did not fiddle with DBeaver's install).
System information:

Microsoft Windows 8.1 Entreprise

I also have same issue.
Please somebody reply answer for this issue. Thanks.

If you installed previous version from zip file then you need to delete it before new version install.
Also you could try to install dbeaver for current user only (it will be installed in your local user home app folder).

Ah, congratulations @serge-rider that must have been it. I had indeed installed from dbeaver-ce-6.2.5-win32.win32.x86_64.zip.
I managed to workaround by uninstalling DBeaver, then deleting its directory and finally executing the new version's installer (again).

Hi
I have the same problem with configuration area but from the EXE file (not the ZIP)
I've been noticing this for several version upgrades (even from 6.x to 7.x
Windows 10
dbeaver 7.x series
I have administrator rights to my local machine.
My workaround is simply to reset the permissions on the folder C:\Program Files\dbeaver\configuration for read and write access

I have a similar problem
I unloaded it and reloaded it
dbeaver-ce-22.2.0-x86_64-setup.exe
I installed it and chose to use it myself

This is still happening, I got this just now updating to the latest. For anyone not wanting to install as local user, a workaround is to grant your specific user full control over the dBeaver installation folder. At an administrative command prompt enter:
icacls "C:\Program Files\DBeaver\*" /grant:r machinename\username:F /T


Cosmos DB - Allow setting request level timeouts (vs. global timeouts at the connection level)

Is your feature request related to a problem? Please describe.
The Cosmos SDK currently allow setting request timeouts at the connection policy level, but not at the individual request level.
We're using Azure Functions with the recommended pattern of having a singleton for the client connection, so the timeout value only gets specified once each time the app starts up.
Describe the solution you'd like
When making multiple requests as part of a larger transaction, we'd like to be able to override the global timeout on individual requests via RequestOptions.
Example:
An http request starts with an overall timeout of 60s
Request 1 to cosmos is made with a timeout of 55s and takes 8s to complete
Request 2 to cosmos is made with a timeout of 48s and takes 3s to complete
A request to an http endpoint is made with a timeout of 45s and takes 10s to complete
Request 3 to cosmos is made with a timeout of 35s...
Describe alternatives you've considered
Creating a new client connection for each request would allow for setting independent timeouts, but would add a large amount of overhead vs. reusing connections.
Additional context
Most other http libraries offer an ability to set per-request timeouts.

In theory we could have multiple singletons, each with a different connection policy, i.e.:
Client 1 has a timeout of 10s
Client 2 has a timeout of 20s
Client 3 has a timeout of 30s
Client 4 has a timeout of 40s
Client 5 has a timeout of 50s
Which would put us somewhere in between a singleton and creating a new connection for every request.

Seems like a good feature. The underlying HTTP pipeline supports it: https://docs.microsoft.com/en-us/javascript/api/@azure/core-client/operationrequestoptions?view=azure-node-latest#@azure-core-client-operationrequestoptions-timeout
So it should just be a matter of passing this through the Cosmos request object.

Hey @timtucker-dte,
Could you kindly provide more details or context about the scenario or problem you are trying to solve? This will help me better comprehend your requirements and provide you with the most appropriate assistance.

@topshot99 Any progress on this?


Add inventory description of smart-locked restraints

Also includes a typo fix

Added a missed null check

Looks good, thank you ^^


Check combined PT calculation

Not sure combined PT is dealt with correctly
Check in FaultStressChange
And make a test for the combined effect

Test already existed, everything works


How can i pass downloaded file path ?

I want to use a unique name for downloaded file so i need to send the complete file to the downloader . Can't seems to work ..
Is it not possible with this library ? I tried the code below but it did not worked .

_downloadManager.download(url, fileLocalPath, "Token");
DownloadTask? downloadTask = _downloadManager.getDownload(url);
downloadTask?.status.addListener(() {
logger.e(downloadTask.status.value);
statusCallback(downloadTask.status.value, fileLocalPath);
if (downloadTask.status.value != DownloadStatus.queued ||
downloadTask.status.value != DownloadStatus.downloading) {
downloadUrlList.remove(url);
if (downloadTask.status.value == DownloadStatus.completed) {
completedDownloads[url] = fileLocalPath;
}
}
});

addDownload methods takes directory or File path ..

addDownload methods takes directory or File path ..


how to run on videos

if somebody have done it, please help me

if somebody have done it, please help me

Hello! just use for loop and opencv to read video and recognize frame. For example:
import cv2 #import other libraries , you can use ssd300_inference.ipynb cap = cv2.VideoCapture('pathToFile/1.mp4')  while(True):     ret, img = cap.read()     input_images = [img]     # here you can use the code starting from "ssd300_inference.ipynb" file, Chapter 3: Make predictions     # cycle will give you all frames from video file one by one, as rgb image.

thank you , i successfully did it.


Converts HTML file to MHTML?

any suggestions?

@kiquenet I would just write a class that does the opposite of what this class does. Take some HTML, base64 encode it, and write the boundaries.
I believe this is the spec to follow: http://www.ietf.org/rfc/rfc2557.txt


update port in docs

I'm not 100% sure if this is correct, however on this page the port values of 7545 and 8545 were both used which was confusing. I tried to start the cel-devchain with port 7545 and the celocli was unable to connect to the chain, but when I used 8545 it was able to connect. Since 8545 is also used on the rest of this page this seems like a safe change to suggest.
Signed-off-by: Jacob Saur<EMAIL_ADDRESS>

I just installed the devchain with yarn add celo-devchain and started it with yarn run celo-devchain --port 7545. Then I connected celocli with celocli config:set -n http://localhost:7545 and tested the connection with celocli account:list and got
All Addresses:  [
  '0x5409ED021D9299bf6814279A6A1411A7e866A631',
  '0x6Ecbe1DB9EF729CBe972C83Fb886247691Fb6beb',
  '0xE36Ea790bc9d7AB70C55260C66D52b1eca985f84',
  '0xE834EC434DABA538cd1b9Fe1582052B880BD7e63',
  '0x78dc5D2D739606d31509C31d654056A45185ECb6',
  '0xA8dDa8d7F5310E4A9E24F8eBA77E091Ac264f872',
  '0x06cEf8E666768cC40Cc78CF93d9611019dDcB628',
  '0x4404ac8bd8F9618D27Ad2f1485AA1B2cFD82482D',
  '0x7457d5E02197480Db681D3fdF256c7acA21bDc12',
  '0x91c987bf62D25945dB517BDAa840A6c661374402'
]
Keystore Addresses:  [
  '0x5409ED021D9299bf6814279A6A1411A7e866A631',
  '0x6Ecbe1DB9EF729CBe972C83Fb886247691Fb6beb',
  '0xE36Ea790bc9d7AB70C55260C66D52b1eca985f84',
  '0xE834EC434DABA538cd1b9Fe1582052B880BD7e63',
  '0x78dc5D2D739606d31509C31d654056A45185ECb6',
  '0xA8dDa8d7F5310E4A9E24F8eBA77E091Ac264f872',
  '0x06cEf8E666768cC40Cc78CF93d9611019dDcB628',
  '0x4404ac8bd8F9618D27Ad2f1485AA1B2cFD82482D',
  '0x7457d5E02197480Db681D3fdF256c7acA21bDc12',
  '0x91c987bf62D25945dB517BDAa840A6c661374402'
]
Local Addresses:  []

which is expected. @jsaur do these steps work for you?


Wso2 is 5.1.0 escapes username with + and adds 2 cn attribute

In wso2 is 5.1.0. When we going to add a new user with "username + char" they observed that user added with "username +char" and 2 "cn" is added as part of LDAP.

Thank you for your contribution!
We are closing this issue since it has not been prioritized for a long time. Chances are that it has already been solved in more recent versions. If not, we will be re-evaluating this when it becomes a priority.


Vienna can't be downloaded from Vienna-RSS.com

As pointed out on the Cocoaforge forums by a user, the website at Vienna-RSS.com doesn't actually have an active download link for the newest release for Vienna, which is a great oversight!
The user complains that he has to get the latest releases from sites such as Macupdate.com, which is to put it mildly, not in any way optimal, especially considering the adware which may come bundled with the software.
Solution: Create a download link to binaries of the newest (And older?) releases of Vienna on the website.
OP from Cocoaforge:

The Vienna website is missing a download link/menu. I see new releases in Macupdate, but I refuse to download from there and go to the Vienna website. Then wander around until I remember that there is a github link (for the source, which incidentally includes the binaries) in the development menu, though it's just text, not a real link. And I keep forgetting to make a bookmark to github (well, did it now).

Best would be a direct download link to specific versions in github, if that's possible. At least a link to the release section. Renaming the development link to say binary downloads are there wouldn't work well for average non-geeky users.

Argh good point.
I got sidetracked about the new site and so the temporary one is still up! i'll add a link.

OK I've added a blog post and a link at the top of the page which points to the latest github release. And hopefully I'll get around to getting a proper website up one day soon 😄


Pswish pipeline ( renaming my branch )

Changing pswish-insertion to pswish-pipeline to be my primary branch/project

This is a pretty substantial chunk of code, and it makes a lot of progress towards your final project and the goals we mentioned in class (object-oriented design, loading data into data structures). Overall it looks good, I'll comment in more detail in each line.
Also be sure to resolve this conflict. You can do it directly from the GitHub web interface, and it's a markdown file so it just needs to make sense in English and not delete others contributions. This particular file doesn't have to compile or pass tests.

In the future, please limit each PR to about 5 files changed or 100-200 lines of code.
If it's code within just your personal (Maven) project and doesn't conflict with other classmates, you only need to request a review from your team partner.

You can create new branches off this branch (not from main) in order to break up your development work into smaller PRs. I understand that you'll want to build on features in this branch before it's ready to merge into main, so you can create PRs from branches of branches as well.
Another advantage of merging more frequently to main is that you don't have to rebase or merge from main to stay up-to-date, and any conflicts to resolve stay small.

Thanks for the comments and feedback. I think this pull request was only meant to rename my branch but I had to delete the old and push to the new. I totally get long pull requests as the longer they are, the more likely they are to be put off till later/never by others.


Treesitter Postfix not working

Trying to make snippet for rust, but for some reason cannot match the call expression
here is the snippet code
treesitter_postfix({
	trig = ".testing",
	matchTSNode = {
		query = [[(call_expression) @prefix]],
		query_lang = "rust",
	},
}, { t("hello") }),

whenever i try to use the snippet for example on piece of code like this
conn.interact(|conn|{todo!()})

instean replacing the code with "hello" it append it instead

The entire match to the query should be replaced, so it seems like the query matches an empty string for some reason..
What does the ts-node-tree look like after the trigger is inserted (":TSPlaygroundToggle")?

you mean like this
          field_expression [12, 8] - [12, 42]
            value: call_expression [12, 8] - [12, 37]
              function: field_expression [12, 8] - [12, 21]
                value: identifier [12, 8] - [12, 12]
                field: field_identifier [12, 13] - [12, 21]
              arguments: arguments [12, 21] - [12, 37]
                closure_expression [12, 22] - [12, 36]
                  parameters: closure_parameters [12, 22] - [12, 28]
                    identifier [12, 23] - [12, 27]
                  body: macro_invocation [12, 29] - [12, 36]
                    macro: identifier [12, 29] - [12, 33]
                    token_tree [12, 34] - [12, 36]
                      unit_expression [12, 34] - [12, 36]
            field: field_identifier [12, 38] - [12, 42]

Yup :+1:
Just did a test on my side, and here it's working fine (ts_px_add just immediately adds the postfix-snippet, so should be the same as your code)
https://github.com/L3MON4D3/LuaSnip/assets/41961280/7427780e-e036-4f20-8e5c-700c408b7a9c
Not sure what things may be going wrong for you, if you can produce a MWE I can look into it some more

probably my config, i use lazyvim with custom tweaks, i think it break some stuff. i will try to look into it

same here

config

local treesitter_postfix = require("luasnip.extras.treesitter_postfix").treesitter_postfix
local postfix_builtin = require("luasnip.extras.treesitter_postfix").builtin

ls.add_snippets("javascript", {
  treesitter_postfix({
    trig = ".mv",
    matchTSNode = postfix_builtin.tsnode_matcher.find_topmost_types({
      "call_expression",
      "identifier"
    }),
  }, f(function(_, parent)
      print(parent.snippet.env.LS_TSMATCH)
      -- local node_content = table.concat(parent.snippet.env.LS_TSMATCH, '\n')
      -- local replaced_content = ("std::move(%s)"):format(node_content)
      -- return vim.split(ret_str, "\n", { trimempty = false })
    end))

})

record.webm

sorry for late response.
does adding the snippet using loaders.from_lua affect the result? the snippet is actually part of my project based snippet
here is my snippets
local tsp = require("luasnip.extras.treesitter_postfix").treesitter_postfix

return {
	s(
		"otw-task-runner",
		fmt(
			[[
                pub(crate) async fn {}<Service, DbService, MsgService>(
                    service: &TaskRunnerInner<Service, DbService, MsgService>,
                    payload: {},
                ) -> anyhow::Result<()>
                where
                    Service: 'static + Send + Sync + TaskRunnerService,
                    DbService: 'static + Send + Sync + DatabaseService,
                    MsgService: 'static + Send + Sync + MessageService,
                {{
                    {}
                }}]],
			{
				i(1, "runner"),
				i(2, "Payload"),
				i(3, "todo!()"),
			}
		)
	),
	tsp({
		trig = ".inner",
		matchTSNode = {
			query = [[
    (struct_item) @prefix
    ]],
			query_lang = "rust",
		},
	}, {
		t("hlleo"),
	}),
}, {}

config
local treesitter_postfix = require("luasnip.extras.treesitter_postfix").treesitter_postfix
local postfix_builtin = require("luasnip.extras.treesitter_postfix").builtin

ls.add_snippets("javascript", {
  treesitter_postfix({
    trig = ".mv",
    matchTSNode = postfix_builtin.tsnode_matcher.find_topmost_types({
      "call_expression",
      "identifier"
    }),
  }, f(function(_, parent)
      print(parent.snippet.env.LS_TSMATCH)
      -- local node_content = table.concat(parent.snippet.env.LS_TSMATCH, '\n')
      -- local replaced_content = ("std::move(%s)"):format(node_content)
      -- return vim.split(ret_str, "\n", { trimempty = false })
    end))

})

the LS_TSMATCH return nil for some reason

config
local treesitter_postfix = require("luasnip.extras.treesitter_postfix").treesitter_postfix
local postfix_builtin = require("luasnip.extras.treesitter_postfix").builtin

ls.add_snippets("javascript", {
  treesitter_postfix({
    trig = ".mv",
    matchTSNode = postfix_builtin.tsnode_matcher.find_topmost_types({
      "call_expression",
      "identifier"
    }),
  }, f(function(_, parent)
      print(parent.snippet.env.LS_TSMATCH)
      -- local node_content = table.concat(parent.snippet.env.LS_TSMATCH, '\n')
      -- local replaced_content = ("std::move(%s)"):format(node_content)
      -- return vim.split(ret_str, "\n", { trimempty = false })
    end))

})

2<IP_ADDRESS>.10.09.webm

The config works for me.
https://github.com/L3MON4D3/LuaSnip/assets/6359934/0a572f2d-96d4-4db2-a923-8ce0578803d7
Maybe something wrong in your ts parser?

config
local treesitter_postfix = require("luasnip.extras.treesitter_postfix").treesitter_postfix
local postfix_builtin = require("luasnip.extras.treesitter_postfix").builtin

ls.add_snippets("javascript", {
  treesitter_postfix({
    trig = ".mv",
    matchTSNode = postfix_builtin.tsnode_matcher.find_topmost_types({
      "call_expression",
      "identifier"
    }),
  }, f(function(_, parent)
      print(parent.snippet.env.LS_TSMATCH)
      -- local node_content = table.concat(parent.snippet.env.LS_TSMATCH, '\n')
      -- local replaced_content = ("std::move(%s)"):format(node_content)
      -- return vim.split(ret_str, "\n", { trimempty = false })
    end))

})

2<IP_ADDRESS>.10.09.webm

The config works for me.
CleanShot.2023-11-29.at.16.43.17.mp4
Maybe something wrong in your ts parser?

What is your version of neovim?

config
local treesitter_postfix = require("luasnip.extras.treesitter_postfix").treesitter_postfix
local postfix_builtin = require("luasnip.extras.treesitter_postfix").builtin

ls.add_snippets("javascript", {
  treesitter_postfix({
    trig = ".mv",
    matchTSNode = postfix_builtin.tsnode_matcher.find_topmost_types({
      "call_expression",
      "identifier"
    }),
  }, f(function(_, parent)
      print(parent.snippet.env.LS_TSMATCH)
      -- local node_content = table.concat(parent.snippet.env.LS_TSMATCH, '\n')
      -- local replaced_content = ("std::move(%s)"):format(node_content)
      -- return vim.split(ret_str, "\n", { trimempty = false })
    end))

})

2<IP_ADDRESS>.10.09.webm

The config works for me.
CleanShot.2023-11-29.at.16.43.17.mp4
Maybe something wrong in your ts parser?

What is your version of neovim?

master

same issue, parent.snippet.env.LS_TSMATCH is nil

I'm stuck here and can't move.

and cpu 100% here

I took a look at this a little bit and found it fails for me in https://github.com/L3MON4D3/LuaSnip/blob/f3b3d3446bcbfa62d638b1903ff00a78b2b730a1/lua/luasnip/extras/treesitter_postfix.lua#L244 at check_node_exclude_pos
The values at this point are
end_row:96 == pos[1]:96
end_col:7 == pos[2]:4

Removing the check_node_exclude_pos makes parent.snippet.env.LS_TSMATCH contain data. But it contains the match with the postfix trigger. eg test/xx with /xx being the trigger. I assume the check at check_node_exclude_pos fails because the trigger was not correctly removed? Hence the 4 vs 7 comparison?
Also I get two callback to my function node. One with parent.snippet.env.LS_TSMATCH="$LS_TSMATCH" and the other with parent.snippet.env.LS_TSMATCH={ "test/xx" }. Not sure if this is normal.

this fixed it for me https://github.com/hfn92/LuaSnip/commit/9d1bf4a4fd7cd6c4d15d415d8e5b7a764e85d402
but not sure how much sense this makes ...
and I still get the $LS_TSMATCH from the fake_expand on the first expand.

I'm stuck here and can't move.  and cpu 100% here

can you try this #1145
see if the problem is solved

@TwIStOy seem solved, but treesitter still unavailable

I'm not sure if it's my own problem

i can't reproduce this on my machine. it seems like there's no captures can be found in the match. maybe you can use function node to show which captures are found

@yifan0414 have tried my branch (https://github.com/hfn92/LuaSnip/tree/fix)? maybe it fixes it for you as well

@yifan0414 I don't know exactly what happens, I was just playing around to see if I can fix this issue for me :sweat_smile: I don't know exactly whats going on but in first callback when resolving, 'LS_TSMATCH' is nil.  I have an check in my callback to verify that LS_TSMATCH is not nil. This solves this error for me.

@yifan0414 Can you try to add reparseBuffer = "live" to your postfix snippet? This will remove trig first, then reparse the buffer, then try to expand the snippet.

@hfn92 The LS_TSMATCH must not contains the trig. So only these nodes before current cursor are considered. Remove exclude current cursor check seems not a good idea. That may cause LS_TSMATCH is nil in callbacks.

@TwIStOy The nil LS_TSMATCH was being triggered from some fake_expand function, it only happens once.
I'm not claiming I know whats going here, but check_node_exclude_pos always failed for me because it compared length of node + trigger with length of  node \w0 trigger. Removing the trigger fixed this for me

@TwIStOy  reparseBuffer = "live" fixes it for me. Thanks!

@TwIStOy The nil LS_TSMATCH was being triggered from some fake_expand function, it only happens once.

Oh hey, fake_expand is used for generating docstrings for nvim-cmp, if you want to handle that gracefully, make sure to add a codepath that detects this (ie.  LS_TSMATCH == nil) and returns some sane values (we can't provide them when generating docstrings, unfortunately)

@TwIStOy The nil LS_TSMATCH was being triggered from some fake_expand function, it only happens once.

Oh hey, fake_expand is used for generating docstrings for nvim-cmp, if you want to handle that gracefully, make sure to add a codepath that detects this (ie. LS_TSMATCH == nil) and returns some sane values (we can't provide them when generating docstrings, unfortunately)

Ah I see, thank you!


GPII-3591: Remove aws-unit-tests from CircleCI config

No reason to run them, since AWS infra is no more.

LGTM


Adding "top to bottom" tag in gitgraph breaks preview

Summary
attempting to use the TB tag in gitGraph to change the diagram orientation causes the preview to display an error.
Expected Behavior
The diagram renders either in the normal orientation or new orientation with the TB tag, like seen in the svg output from mermaid live
svg

Current Behavior
Adding TB: to a gitGraph causes an error to read out. I've included the error message below.
Error Message
Error parsing Mermaid diagram!

 But please remember that this plugin has no control over how Obsidian renders mermaid :( So, unfortunately, I can't help with this problem. It's best to raise this issue in official Obsidian forums.


Opam: undo upstream PR https://github.com/ocaml/opam-repository/pull/25484

This undoes the PR in the main opam repo which states that dune.3.7.0 (which is used by the Coq 8.17 pick) is not compatible with Windows (which is not factual).

This has already been fixed in opam upstream, so I will close this without merging. Still the CI run was interesting - it showed that this was the issue.


[Feature] Native transfers

We should add an intuitive high-level API for native transfers, such that you can write indexing functions that fire when a specific account (or list of accounts specified by a factory) sends or receives any amount of the native token.

If you could clarify on the native transfers. As I understand, they are not shown in the logs, but in call traces, right? Would it be an additional filter on the call traces then?

I am suggesting the API similar to contracts in the createConfig:
export default createConfig({
  networks: {
    mainnet: { chainId: 1, transport: http(process.env.PONDER_RPC_URL_1) },
  },
  contracts: {
    SudoswapPool: {
      abi: SudoswapPoolAbi,
      network: "mainnet",
      factory: {
        // The address of the factory contract that creates instances of this child contract.
        address: "0xb16c1342E617A5B6E4b631EB114483FDB289c0A4",
        // The event emitted by the factory that announces a new instance of this child contract.
        event: parseAbiItem("event NewPair(address poolAddress)"),
        // The name of the parameter that contains the address of the new child contract.
        parameter: "poolAddress",
      },
      startBlock: 14645816,
    },
  },
  accounts: {
    Alice: {
      network: "mainnet",
      address: [
        "0x...",
        "0x...",
        "0x..."
      ],
      startBlock: 14645816
    }
  }
});

Similarly, if we would like to track accounts generated from the factory:
export default createConfig({
  networks: {
    mainnet: { chainId: 1, transport: http(process.env.PONDER_RPC_URL_1) },
  },
  contracts: {
    SudoswapPool: {
      abi: SudoswapPoolAbi,
      network: "mainnet",
      address: "0xb16c1342E617A5B6E4b631EB114483FDB289c0A4"
      startBlock: 14645816,
    },
  },
  accounts: {
    SudoswapUsers: {
      network: "mainnet",
      factory: {
        // The address of the factory contract that creates instances of this child contract.
        address: "0xb16c1342E617A5B6E4b631EB114483FDB289c0A4",
        // The event emitted by the factory that announces a new instance of this child contract.
        event: parseAbiItem("event Deposit(address sender, uint256 amount)"),
        // The name of the parameter that contains the address of the new child contract.
        parameter: "sender",
      },
      startBlock: 14645816
    }
  }
});

This way our accounts config api would be close to what we have for contracts already.

This is a great start. Some follow-up questions to consider:

What would the indexing function keys/"event names" look like for accounts? For contracts, we use the pattern ponder.on("ContractName:EventName", ...) and ponder.on("ContractName.functionName", ...). And, what would be the type of the event object within the indexing function?
This config API seems sufficient for native token transfers. Now, what if the user also wants to index all ERC20 transfers to and from an account? At a low level, this would look like: index all ERC20 transfers where the to (or from) argument equals the account's address, or the following eth_getLogs filter:

{
  address: null, // Include all ERC20 contracts
  topics:[
    "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", // Transfer selector
    null, // Include all senders
    "0x00000000000000000000000054a2d42a40f51259dedd1978f6c118a0f0eff078" // Target account address as recipient
  ]
}

(cont) To support this feature, we'll need to come up with an intuitive config API for specifying the event ABI, and which indexed parameter should "match" the account's address. This API would be particularly powerful if it's extensible to any event, not just the standards (ERC20/ERC721).

Here's a concrete user scenario that will use this feature: A smart account infrastructure provider wants to build an API that serves a list of tokens (native, ERC20, ERC721) for each account created using their tool. The smart accounts are contracts (not EOAs) that get created via a factory contract that is compatible with our existing factory pattern.

The first idea that comes to mind:
export default createConfig({
  networks: {
    mainnet: { chainId: 1, transport: http(process.env.PONDER_RPC_URL_1) },
  },
  accounts: {
    Alice: {
      network: "mainnet",
      address: [                        // only native transfers (if no events are given)
        "0x...",
        "0x...",
        "0x..."
      ],
      startBlock: 14645816
    },
    Bob: {
      network: "mainnet",
      address: [                        // no native transfers, but event logs
        "0x...",
        "0x...",
        "0x..."
      ],
      events: [                        //list of events to index with corresponding event + parameter(s)
        {
          abi: ERC20Abi,                  //first version, uses an ABI and specifies only eventName
          eventName: 'TransferFrom',
          parameter: ["from", "to"]
        },
        {
          event: parseAbiItem(
            "event TransferFrom(address indexed from, address indexed to, uint256 value)"
          ),                              //second version, uses parseAbiItem similar to factory config
          parameter: "from"
        },
        ...
      ],
      startBlock: 14645816,
      includeNativeTransfers: false               // true, by default?
    },
  }
});

Then, the indexing functions would look as follows:
//The indexing function for events:
ponder.on("AccountName:EventName", async ({event, context}) => {

})

//The indexing function for native transfers:
ponder.on("AccountName", async ({event, context}) => {

})

The types for both events I would assume can be identical to those used for indexing contract events and callTraces.

Somewhat unrelated to the comments above, I think another feature we want with accounts is the ability to index all transactions to and from an account.
A concrete example of when this would be useful: tracking the sequencer address on the base chain for a layer 2 rollup.

Good point, we would be also interested in filtering native transfers based on "from", "to" parameters.  The revised version of the api design would be as shown below.
export default createConfig({
  networks: {
    mainnet: { chainId: 1, transport: http(process.env.PONDER_RPC_URL_1) },
  },
  accounts: {
    Bob: {                                     //the user needs to specify events, nativeTransfers or transactions
      network: "mainnet",
      address: [
        "0x...",
        "0x...",
        "0x..."
      ],
      events: [                        //list of events to index with corresponding event + parameter(s)
        {
          abi: ERC20Abi,                  //first version, uses an ABI and specifies only eventName
          eventName: 'TransferFrom',
          parameter: ["from", "to"]
        },
        {
          event: parseAbiItem(
            "event TransferFrom(address indexed from, address indexed to, uint256 value)"
          ),                              //second version, uses parseAbiItem similar to factory config
          parameter: "from"
        },
        ...
      ],
      nativeTransfers: "from" | "to" | ["from", "to"],
      transactions: "from" | "to" | ["from", "to"],
      startBlock: 14645816
    },
  }
});

For transactions, the indexing function might look as follows:
ponder.on("AccountName:transaction", async ({event, context}) => {

})

And type of the event for transaction would be:
{
  block: Block,
  transaction: Transaction,
  transactionReceipt: TransactionReceipt | undefined
}

We decided that were gonna focus on the internal filter types and work towards offering a low-level api that allows users to directly define a filter. Later on, we can build a high-level "account" api that abstracts away the filters.
Notes on filter types
Filters should be deliberately designed, expressive, and modeled after the fundamentals of the Ethereum blockchain, not necessarily the Ethereum standard JSON-RPC.
type TransferFilter = {

 type: "transfer";

 chainId: number;
  fromAddress: Address | Address[] | Factory | undefined;
  toAddress: Address | Address[] | Factory | undefined;
  fromBlock: number;
  toBlock: number | undefined;

  includeTransactionReceipt: boolean;
}

type TransactionFilter = {
  type: "transaction";
  chainId: number;
  fromAddress: Address | Address[] | Factory | undefined;
  toAddress: Address | Address[] | Factory | undefined;
  fromBlock: number;
  toBlock: number | undefined;

  includeTransactionReceipt: boolean;
}

I realized TransactionFilter is very similar to CallTraceFilter, except that it only contains top-level calls. I think it's still fine to separate them, but worth keeping in mind.


mount command doesn't work in alluxio/alluxio image

Alluxio image version:latest
Inside the k8s containers, mount command returns nothing. This makes fuse_mounted() not doing its job.
alluxio/alluxio-dev image doesn't have this problem.
The alluxio-fuse-client image, which pulling the latest Alpine image, doesn't have this problem.

Base image does not use alpine image any more. CentOS doesn't have this problem.


Update aws-java-sdk-core to 1.12.565

About this PR
📦 Updates com.amazonaws:aws-java-sdk-core from 1.12.459 to 1.12.565
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.amazonaws", artifactId = "aws-java-sdk-core" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.amazonaws", artifactId = "aws-java-sdk-core" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #633.


Build API docs

The page for the moment needs a decent bit of work for prettiness, but it's doing automatic API documentation. I will add the demo notebook as its own built page. This uses MyST so it should allow for standalone Markdown pages, rather than rST. Docs should be building on RTD from now too.

merge?


Added listen_loop_async to whisper_mic.py

listen_loop_async is a async generator so that async code that uses whisper mic can listen on each result asynchronously instead of simply printing

Looks good to me!


Sync

iBridges sync function, broadly mirroring the behaviour of irsync. See notebook for details.
What it doesn't do/allow (compared to irsync):

Sync individual files to a collection (and vice versa); it currently only accepts an existing folder or collection as source and target, and syncs the contents of the two. Symlinks are ignored.
setting the number of threads to use for the transfer (-N)
specifying the target resource (-R)
synchronize to all replicas (-a)
specify maximum age of the source copy in minutes for sync (--age age_in_minutes)

Hmmm, it seems rebasing has included 38 extra integration test files. Any ideas?

Hmmm, it seems rebasing has included 38 extra integration test files. Any ideas?

The order of the commit seems a bit weird. I would after a successful rebase that the new commits on develop would come first, and then after that your commits. However, here two of your commits come first. Perhaps you can somehow reorder the commits?

Hmmm, it seems rebasing has included 38 extra integration test files. Any ideas?

The order of the commit seems a bit weird. I would after a successful rebase that the new commits on develop would come first, and then after that your commits. However, here two of your commits come first. Perhaps you can somehow reorder the commits?

Hmmm, did that, but hasn't helped. I think I'll just create a new branch and PR.

If it works with a new branch that's good. Otherwise, maybe try rebasing again on develop with the new ordering?


npm安装依赖报错，cpu爆满

Qinglong version
last
Steps to reproduce
青龙面板执行npm install axios，安装依赖报错，error An unexpected error occurred: "ENOENT: no such file or directory, copyfile '/usr/local/share/.cache/yarn/v6/npm-lru-cache-6.0.0-6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94-integrity/node_modules/lru-cache/LICENSE' -> '/ql/node_modules/sequelize/node_modules/lru-cache/LICENSE'".
之后日志一直提示crond[195]: user root: parse error at 7
crond[195]: user root: parse error at 7
crond[195]: user root: parse error at 7
cpu一直爆满状态
What is expected?
0
What is actually happening?
0
System Info
No response
Any additional comments?
No response

/usr/local/bin/ql: line 431: /ql/data/log/check/2023-01-12-10-22-13.log: No space left on device

同样的问题crond[53]: user root: parse error at 7

同样的问题crond[53]: user root: parse error at 7

忽略

/usr/local/bin/ql: line 431: /ql/data/log/check/2023-01-12-10-22-13.log: No space left on device

没空间了，依赖在依赖管理中装，nodejs依赖填 axios


[Add-ins] Update clients anchor (#730)

[Add-ins] Update clients anchor

Update dates

Docs Build status updates of commit 2ceb1cb:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/add-ins/add-in-requirements.md
:white_check_mark:Succeeded

docs/add-ins/add-mobile-support.md
:white_check_mark:Succeeded

docs/add-ins/contextual-outlook-add-ins.md
:white_check_mark:Succeeded

docs/add-ins/index.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Using zgenom load with just location doesn't source functions

I'm trying to use zgenom to load plugins using just the [location] parameter pointing to a plugin directory.
This will however not properly add the functions subdirectory to fpath.
I think the reason is that zgenom-load() for the directory case doesn't declare local dir.
My current workaround is to add:
# ...
    elif [[ "$#" == 1 && ("${1[1]}" == '/' || "${1[1]}" == '.' ) ]]; then
        location="${1}"
        if [[ -d $location ]]; then
            local dir="$location"
        fi
    else
# ...

Hey @pmarschik thanks for reporting.
Yes, that's correct. The usage of $dir in __zgenom_source is not ideal.
I'll fix that soon 👍

Hey @pmarschik,
I'm not really sure what a sensible default for local directories would be.
For cloned sources the functions directory is always relative to the plugins root folder.
With your code functions would only be checked if it's a directory - but there is no way to find the root of the "plugin".
I also don't find it intuitive that zgenom load /path/to/plugin would detect functions but zgenom load /path/to/plugin/init.zsh wouldn't.
Ideally zgenom load /path/to/plugin path/to/file would be possible. This way loading could be done exactly like it's done for external plugins.
What's your usage of local plugins?
Maybe if there is no simple way to detect from a path of it's a plug-in the solution would be to indicate that it's a plug-in via a parameter --plugin. Or require users to make the distinction: if it's a directory it's highly likely to be plugin (and set dir), if it's a file it's the users intent to source exactly that one file.

Thanks for your reply.

if it's a file it's the users intent to source exactly that one file.

There isn't really a benefit of using zgenom load /path/to/file.zsh instead of source /path/to/file.zsh.
I'll have a thought what solution I'd prefer.

I've decided to also check for functions when a local file is used.
I'd find it confusing if the containing folder is added to fpath but not functions when present.


2 columns of turquoise showing around widget

Describe the bug
When a Niivue widget is created, 2 columns of turquoise can be seen on the left and right sides.
To Reproduce
Steps to reproduce the behavior:

Install ipyniivue using the installation steps. If needed, install yarn using npm install -g yarn
Open jupyter lab using jupyter lab
Open the examples -> introduction.ipynb file
Run the first two code sections.
See the strips of turquoise on the left and right sides of the Niivue widget.

Expected behavior
No turquoise should be visible unless the background color is set to turquoise. Since the default background color is black, the background should just consist of black.
Screenshots
Current display. The arrows at the bottom point to the thin strips of turquoise.

@AnthonyAndroulakis , is that just the "focus" ring around the canvas since the canvas has focus when it is attached to a niivue instance?

hm, I didn't know about canvas focus rings. It could be case. This is probably not a bug then, right?


Script to deploy code to lambda, with dev/prod option.

Pre-requisites

serverless installed on machine which is executing the script (here's how you can install it)
AWS access key and secret key (here is how you can get them)

Usage

Clone and cd into the repo.
command usage

Deploy in dev stage, paste the following into terminal
sh script.sh <key> <secret_key>
Deploy in prod stage,
sh script.sh <key> <secret_key> production

Notes

This script will create a new configuration profile beacon or override it if it already exits, hence make sure you either change the profile name in script or port your existing profile (named beacon) to a new one if you already have one named beacon.
If the script completes without error, use POST endpoint to access playground, or as the env variable for beacon frontend. Also lambda will only support queries and mutations. For subscriptions use an ec2 instance.

looks good other than the small typo

Fixed the typo!


Adds a document for Profiling and an unmangler.

Problem:
Profiling needs to be documented so others can do it.
Solution:
A document giving a step-by-step description of how to profile.

Ok, fixed those issues!

Kevin, I'm sorry, I left the comment about fixing the h1. in the file but forgot to fix the actual file.


feat(static): support Path arg in App.add_static_route()

Summary of Changes
Minor py3.5 compatibility change, to allow pathlib.Path argument types to be provided in App.add_static_route()
Related Issues
Closes #1962
Pull Request Checklist
This is just a reminder about the most common mistakes.  Please make sure that you tick all appropriate boxes.  But please read our contribution guide at least once; it will save you a few review cycles!
If an item doesn't apply to your pull request, check it anyway to make it apparent that there's nothing to do.

[x] Applied changes to both WSGI and ASGI code paths and interfaces (where applicable).
[x] Added tests for changed code.
[x] Prefixed code comments with GitHub nick and an appropriate prefix.
[x] Coding style is consistent with the rest of the framework.
[x] Updated documentation for changed code.

[x] Added docstrings for any new classes, functions, or modules.
[x] Updated docstrings for any modifications to existing code.
[x] Updated both WSGI and ASGI docs (where applicable).
[x] Added references to new classes, functions, or modules to the relevant RST file under docs/.
[x] Updated all relevant supporting documentation files under docs/.
[x] A copyright notice is included at the top of any new modules (using your own name or the name of your organization).
[x] Changed/added classes/methods/functions have appropriate versionadded, versionchanged, or deprecated directives.

[x] Changes (and possible deprecations) have towncrier news fragments under docs/_newsfragments/, with the file name format {issue_number}.{fragment_type}.rst. (Run towncrier --draft to ensure it renders correctly.)

If you have any questions to any of the points above, just submit and ask! This checklist is here to help you, not to deter you from contributing!
PR template inspired by the attrs project.

thanks for the update!


DMD docs added

DMD ID user module docs are added.

@bretg your feedback is implemented, please do review


LogstashBasicMarker implementation is inefficient and out-off-sync with implementation provided by Slf4J

LogstashBasicMarker is a now obsolete copy of org.slf4j.helpers.BasicMarker at version 1.7.12
The original implementation has been updated and improved since then. The version included in logback-logstash-encoder should be updated accordingly.
A few points:

replace the use of Vector by a more efficient List implementation
use a StringBuilder instead of a StringBuffer

Note: Slf4J BasicMarker has a package protected constructor and cannot be easily re-used in other project - reason why the project maintains its own copy.

Instead of copying an alternative is to declare LogstashBasicMarker in the org.slf4j.helpers package with a public constructor (inside this project) and extend from it.
@philsttr What do you think of this ?

Instead of copying an alternative is to declare LogstashBasicMarker in the org.slf4j.helpers package with a public constructor (inside this project) and extend from it.

It was originally in org.slf4j.helpers, but was moved into net.logstash.logback.marker to fix #104

I see. So better to leave it like this and keep an "internal" copy.
This class is public and behaves the same as the SLF4J version. Users may be tempted to use it as base class for their own specialisations... Is it something we want to support? Or should we protect it?
Personally, I would instead merge everything inside LogstashMarker and have only "one" base class for all of our markers.
Finally, we "copied" the class... but don't you think we should copy the relevant tests as well ?

Is it something we want to support?

No

Or should we protect it?

Yes, probably worth reducing the visibility.

but don't you think we should copy the relevant tests as well ?

definitely

Yes, probably worth reducing the visibility.

@philsttr Or even better - collapse the two implementations into one and keep only the LogstashMarker...

I kept them separate to easily see the differences between our copied version and the original... primarily so it would make it easier to sync.
However, if the logstash-logback-encoder implementation is going to start diverging more, then I don't see a reason to keep them separate.


ADD: Flood Fill Algorithm in C and C++ under Recursion.

🛠 Issue #808
👨💻 Changes proposed
I have added code for Flood Fill Algorithm in C and C++.
✔ Check List (Check all the applicable boxes)

[ ✔] My code follows the code style of this project.
[ ✔] This PR does not contain plagiarized content.
[ ✔] The title of my pull request is a short description of the requested changes.

📄 Note to reviewers
The code added for C is has hard coded input, whereas code added for C++ accepts user input. I have done for simplicity of the users so that they can test out the algorithm with their own testcases if they please to do so.

@XRegiGigaSX Resolve the Merge conflict


Make the temperature preset persistent entities

Changing a temperature preset should be simplier.
We could add some entities as domain number which can be changed easily in the VTherm and can be directly set into dabshboard.
Then we can remove the configuration presets which will simplify the configuration.
As a general way, keep configuration which change rarely into the configuration panel and add persistent configuration entities for each parameters which can be modified. Target temperature is the good example.

Be careful to the migration: how to keep the configured values.
Should we remove the central configuration for preset temperature as well ? Or just init the values of the new entities with the central configuration values ? The we lost the diffusion of changing a central configuration to all VTherm.

This would be awesome 👏
I think your suggestion is really good. Create Presets as Entities under the VT Device.
For the "migration: how to keep the configured values" I think your suggestion is good : Fill the new preset entities with the preset values from the Configuration/central configuration - and then remove the presets from the Configuration.
From that on - we will change the presets in the UI by changing the preset-entities.
👍

If it is easier during migration to leave the config in place, then perhaps the config values become "initial value" used until someone changed them.
This might allow newly defined VTherms to have a value before the user defines a UI for changing values, and covers the scenario where a VTherm exists without a UI.

I'm really looking forward to this enhancement :-)
I'm planning a UI like this as i short list for all my climate entities on each floor(and one for the whole house). I have many climate entities and I need a place to get quick glance over them all. Its not usable to have to maneuver through many "room" cards for this.
In this way I can get a quick glance over the temperatures and preset-states of every entity.
And the ability to quickly change preset-mode on many entities.
And when you have made the preset-temperatures an alterable entity in the UI, I will be able to enhance my “card” with a “Hold-action” over the preset-mode buttons  to let the user alter the preset temps right there.
That is a user-friendly UI :-) I think.
👍

I'm planning a UI like this as i short list for all my climate entities on each floor(and one for the whole house). I have many climate entities and I need a place to get quick glance over them all. Its not usable to have to maneuver through many "room" cards for this. In this way I can get a quick glance over the temperatures and preset-states of every entity. And the ability to quickly change preset-mode on many entities.

Oh that's great, can you please share how you managed to create that UI? I was trying a super-compact layout as well but gave up. This here is what I managed using multiple-entity-row, but the icons did not change state depending on the selected preset, and that was rather unusable.

@gunmalmg
I love your card and the compacity. Maybe an idea for a future UI card given out of the box by the VersatileThermostat UI Card. I will keep that in my TODO list, if you agree with that.

On the development of this feature itself, it is finally very complex and I'm running into race conditions:

temp entities should be initialized before VTherm climate (because VTherm need them),
but temp entities itself relies on VTherm configuration itself (to see if central configuration is used),
When central configuration is used, the Central VTherm should be initialized before all others.

So it is a nightmare to have all initialized depending on all configuration options. 😮💨

@gunmalmg
I love your card and the compacity. Maybe an idea for a future UI card given out of the box by the VersatileThermostat UI Card. I will keep that in my TODO list, if you agree with that.
jmcollin78/versatile-thermostat-ui-card#27

That's fine with me. Just happy to contribute 😀

On the development of this feature itself, it is finally very complex and I'm running into race conditions:

temp entities should be initialized before VTherm climate (because VTherm need them),
but temp entities itself relies on VTherm configuration itself (to see if central configuration is used),
When central configuration is used, the Central VTherm should be initialized before all others.

So it is a nightmare to have all initialized depending on all configuration options. 😮💨

I sense that you may have painted yourself into a corner with the central-config system. As it seems from your bullet list. 😜
It seems that it may have to be resolved with another perspective. 🤔
I may not see the whole picture regarding all the underlaying considerations, but what if :
When a user upgrades the VT-system (with the new preset-temp entities release). You make(generates) preset-temp entities for the already configured VT-devices, and preloads them with the temp values from the existing VT-config.
Then you remove the temp preset-values from the VT-config-interface, for the already defined VT's(the real ones - not the central-config).
You may be able to keep the central-config with temp preset-values that still can be used as default-values for new configuration of VT-thermostats with generated preset-temp entities.
But you should not keep preset-temp settings in both the VT-config(the real ones - not the central-config) and the new Preset-temp entities at the same time. That would be hard to manage.
The new solution with preset-temp entities would open many new possibilities regarding altering many presets at one time(that I sense is one of the benefits with the central-config). Users can e.g make an easy script that alters all the preset-entities for vt-Thermostats in e.g certain areas or all of them at ones.
This gives the users the possibility to take control of this themselves - not depending on you in all this (take some of the burden off you :-)
Does this give any meaning ?
Regards Gunnar

Thank you @gunmalmg for your tips. That is aproximatively what I'm trying to do to keep as much as possible the current behavior:

i keep central configuration temp but transform them as number entities so that they can be used directly by VTherm if central configuration is used. If someone change the central config temp entity, this will change all VTherm configured with central.
a VTherm which doesn't rely on the central configuration will have its own number temperature entities so that it can be changed alone without having impact or the others.

My concern was much about the startup dependencies but I found something to deal with that.

Hello, I have developed this improvement. It is available here for testing in a real environment: https://github.com/jmcollin78/versatile_thermostat/releases/tag/6.0.0.alpha1
Caution it mays contains bug because it has made many important changes and refactoring. If you can test in // of me, if could be great.

Exiting
I'll test it. But it will take some days - before I have the time. :-)
Med vennlig hilsen
Horisont Eiendom AS https://tingsakertorv.no/horisont-eiendom /
Lillesand Senter http://lillesandsenter.no / Agder Helsepark
https://tingsakertorv.no/forside-helse / Tingsaker Torv
https://tingsakertorv.no/om-tingsaker-torv / Horisont Utvikling
https://tingsakertorv.no/om-tingsaker-torv
Gunnar Malmgård
Tlf: 91686522,
@.***
Senterveien 30, 4790 Lillesand
søn. 10. mars 2024 kl. 19:09 skrev Jean-Marc Collin <
@.***>:

Hello, I have developed this improvement. It is available here for testing
in a real environment:
https://github.com/jmcollin78/versatile_thermostat/releases/tag/6.0.0.alpha1
Caution it may contains bug because it has made many important changes and
refactoring. If you can test in // of me, it could be great.
—
Reply to this email directly, view it on GitHub
https://github.com/jmcollin78/versatile_thermostat/issues/354#issuecomment-1987313882,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A6ULHFZYTVWFXLXZ7VL6VDDYXSOXDAVCNFSM6AAAAABCD2EUJWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBXGMYTGOBYGI
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hallo
Thank you for your effort on making this improvement.
The transition to present-temp entities seems to function well on my installation. (I don't use the central config) and I have not noticed any difference in base function of the vt_thermostat.
It is really nice to play with the possibilities thees UI exposed present-entities now gives.
Based on my first «playing around» - I have thees two suggestions :

Regarding the preset Entities ID’s name, I think it could be beneficial to add «preset».
Now it generates e.g the entityID like this : «number.vt_bath_comfort_away_temp». But I would suggest «number.vt_bath_preset_comfort_away_temp»
I see a potential in using the phrase «preset» as a filter opportunity in e.g an auto-entities card.

When the preset number entities are generated, the numbers «Display mode» seams to be set to «input field». But I would suggest «slider».
This will give a slider instead of an input number field in the UI for entity- and entities- cards. This would also give the slider on «more-info»card.
In UI - often used on smartphones and tablets - the slider is a more user friendly and intuitive way to alter a number than going over to «keyboard» to type a number.

Here is some examples of me playing around with UI possibilities 😀 (this is videos - hope it shows)

https://github.com/jmcollin78/versatile_thermostat/assets/128496535/e6340ae2-433e-4b50-bd1a-e6895c81aa06
https://github.com/jmcollin78/versatile_thermostat/assets/128496535/459690d8-c80d-4969-b882-c72cea5b2d62

Thank you @gunmalmg  for your valuable feedback. I will see what I take for the release (this week-end), all is working fine on my side also.

https://github.com/jmcollin78/versatile_thermostat/releases/tag/6.0.0
@gunmalmg I have rename the entities with preset. I don't have change the Number UI form to slider. My tries with a mobile device was not conclusive. The slider is very difficult to use. So I keep it like that and you can always long click on the  entity to get the full configuration window.

It's already there


Defvar search command, make helm-ag dependency even more optional.

For https://github.com/brotzeit/rustic/issues/143
This extracts the search functionality to the variable rustdoc-search-function so that the user can change it. I was unsure whether or not variables which are functions are reasonable subjects for defcustom, but if they are I will change it.
Furthermore, if helm-ag and ripgrep are not installed the search function is set to the emacs grep command, using grep.

You can use a function instead and add a defcustom similiar to:
(defcustom rustic-rustdoc-search-method 'with-helm-ag
  "Default function used for ..."
  :type 'function
  :group 'rustic-rustdoc)

and then actually call the function with funcall.

You can use functions instead and add a defcustom similiar to:
(defcustom rustic-rustdoc-search-method 'with-helm-ag
  "Default function used for ..."
  :type 'function
  :group 'rustic-rustdoc)

Done, with slightly different naming. Would you prefer rustic-rustdoc over rustdoc? I see the point of the former, but it is quite long.

Would you prefer rustic-rustdoc over rustdoc?

It's a convention.

Switching to doc definitely makes sense :+1:

Yeah, this feels more natural! Just need to smooth out some issues with regular grep now and then it should be ready.

:+1:


simple question on changing port to listen to

By default teleplot listens on port 47269. But I want to plot telemetry from a flight simulator, DigitalCombatSimulator  (DCS). It sends its telemetry out on port 34380. Is there a way to capture and plot DCS telemetry with teleplot?

Hi,
While I already played it, I'm not familiar with DCS telemetry, but I'm sure that changing the port won't be the solution, as teleplot will expect telemetry to be formated in a specific way for this to work.
Having said so, I've just read a few tutorials on DCS telemetry system and it seems that we can give it a LUA script (Export.lua) and do whatever we want  in lua. This means that we can send teleplot-formted messages from this script!
To give you a full answer, I decided to re-download DCS and write a few line of LUA, to see how the telemetry works. And in no-tomie, I managed to send Teleplot telemetry from DCS! 🎉 ✈ 📈
Here is the Export.lua script I used and saved in C:\Users\MyUserName\Saved Games\DCS\Scripts folder.
-- Sample script to export DCS world telemetry to Teleplot

-- Import socket lib
package.path  = package.path..";.\\LuaSocket\\?.lua"
package.cpath = package.cpath..";.\\LuaSocket\\?.dll"
socket = require("socket")

-- Setup teleplut UDP socket
udp = socket.udp()
teleplotAddr = "<IP_ADDRESS>"
teleplotPort = 47269
udp:settimeout(0)
udp:setoption('reuseaddr',true)
--udp:setsockname('*', 1900)
--udp:sendto("hello:42|g", "<IP_ADDRESS>", )

-- Implement DCS Export hook functions
function LuaExportStart()
end

function LuaExportBeforeNextFrame()
end

function LuaExportAfterNextFrame()
end

function LuaExportStop()
udp:close()
end

function LuaExportActivityNextEvent(t)
-- Get simulation time in milliseconds
local time = LoGetModelTime() * 1000

-- Send Multiple telemetry values to teleplot
local altASL = LoGetAltitudeAboveSeaLevel()
socket.try(udp:sendto(string.format("AltitudeAboveSeaLevel:%.0f:%.2f§feet", time, altASL), teleplotAddr, teleplotPort))

local altAGL = LoGetAltitudeAboveGroundLevel()
socket.try(udp:sendto(string.format("AltitudeAboveGroundLevel:%.0f:%.2f§feet", time, altAGL), teleplotAddr, teleplotPort))

local speedI = LoGetIndicatedAirSpeed()
socket.try(udp:sendto(string.format("IndicatedAirSpeed:%.0f:%.2f§knots", time, speedI), teleplotAddr, teleplotPort))

local speedT = LoGetTrueAirSpeed()
socket.try(udp:sendto(string.format("TrueAirSpeed:%.0f:%.2f§knots", time, speedT), teleplotAddr, teleplotPort))

local aoa = LoGetAngleOfAttack()
socket.try(udp:sendto(string.format("AngleOfAttack:%.0f:%.2f§degrees", time, aoa), teleplotAddr, teleplotPort))

--local acceleration = LoGetAccelerationUnits()
--socket.try(udp:sendto(string.format("AccelerationUnits:%.0f:%.2f§G", time, acceleration), teleplotAddr, teleplotPort))

local speedVertical = LoGetVerticalVelocity()
socket.try(udp:sendto(string.format("VerticalVelocity:%.0f:%.2f§feet/sec", time, speedVertical), teleplotAddr, teleplotPort))

local pitch, bank, yaw = LoGetADIPitchBankYaw()
socket.try(udp:sendto(string.format("Pitch:%.0f:%.2f§degrees", time, math.deg(pitch)), teleplotAddr, teleplotPort))
socket.try(udp:sendto(string.format("Bank:%.0f:%.2f§degrees", time, math.deg(bank)), teleplotAddr, teleplotPort))
socket.try(udp:sendto(string.format("Yaw:%.0f:%.2f§degrees", time, math.deg(yaw)), teleplotAddr, teleplotPort))
socket.try(udp:sendto(string.format("3D|ADIPitchBankYaw:%.0f:S:cube:W:1:D:2:H:0.5:R:%.2f:0:%.2f", time, pitch, -bank ) , teleplotAddr, teleplotPort))

return t+0.1
end

Launching Teleplot (with one of the numerous ways listed in the readme ) and starting a DCS flight, I managed to get the following output:

Now have fun!

Thank you SO MUCH!

I made the export lua a little neater by putting your code in a text file named TelePORT.lua which is put into the scripts folder in Saved Games-> DCS openbeta->Scripts. And then adding this line to the export.lua
local telePORTlfs=require('lfs');dofile(telePORTlfs.writedir()..'Scripts/TelePORT.lua')

thanks again


Manual - Extending Oakestra

[x] Addons
[x] Hooks
[x] Custom resources

This branch was rebased onto concepts because otherwise it would be tricky to verify that all the links work

@Mjaethers @melkodary is this PR ready for review? I still see that the fig is not compatible with the light/dark mode

From my end it's ready for review now

Thank you @melkodary and @Mjaethers for the great work on this!

Special thanks to @Mjaethers for helping me on this ❤


Support per-module checks

In grotesquely large codebases with thousands of modules, the initial check can take enough time that it's no longer trivial to just execute against all modules.  If a developer is modifying the dependencies in a single module -- probably somewhere in a middle layer of the dependency graph -- they should be able to execute against that single module.

For some rules, just starting from that module works. But some others, it may be required to go up until the root and cover ancestors.


Adding ipwb resources

ipwb does not (yet!) relate to Memento. Let me know if you disagree, @ibnesayeed . Closing this PR w/o merge.


Add Travis Integration ?

I made this continuous integration using Travis. I wondering if we can add it to the main project or if it is useless ?
https://github.com/AwesomeTurtle/personfinder/tree/awesometurtle-travis-integration

Oh that looks nice. How can we add one?

I don't know how it works from your account.
For my part, I have to click on my account icon, then integrations. Choose Travis CI. Configure it by adding personfinder repo.
Travis will trigger when a .travis.yml will be in the next commit.
You can find another method there

So we first need to put .travis.yml into our repository, right? Maybe can you send a pull request to add that?

I could send a pull request. But I made some major modifications: I added a docker-compose, and modified Dockerfile. It is easier to work with Docker on a Travis Integration.
I can send a pull request, and we will check if modifications are too majors.

Sounds good, thanks!
Just curious, what is benefit using docker-compose in this case, with just a single docker container?

A docker-compose is better than using a bash script for launching container (setting shared volumes, ports,etc)  and it is more scalable and maintainable. Moreover, the app could be scalable in the future ( if we want to add more services, I don't know..)

Thanks for explanation! Then using docker-compose sounds good.

Configured one and looks working. Great, thanks!
https://travis-ci.org/google/personfinder

Yes, well done !
We could clean up useless files related to Docker, but later.


Fix texture caching in native engine when using srgb buffer

Will be incorporated into https://github.com/BabylonJS/Babylon.js/pull/11149


Revised: Changing Tabs in VSCode causes Designer to refresh - losing all changes

Describe the Bug with repro steps

Open workflow1 in VS Code Designer
Open workflow2 in VS Code Designer in a second tab
Make any type of change to workflow1 and do not click save button
Display workflow2
Switch to workflow1 and all changes are lost

Screenshots or Videos
No response
Version

Extension v2.28.4

VSCode Info
Version: 1.79.2
Commit: 695af097c7bd098fbf017ce3ac85e09bbc5dda06
Date: 2023-06-14T08:58:33.551Z
Electron: 22.5.7
Chromium: 108.0.5359.215
Node.js: 16.17.1
V8: <IP_ADDRESS>-electron.0
OS: Darwin arm64 22.5.0
Additional context
Unable to now reference "workflow2" without having the "workflow1" in a state where it can be saved.
AB#24443256

This is impacting ability to use VSCode for Logic Apps Standard.  If you have the designer open and switch to another VSCode tab and return to the designer, the designer refreshes the workflow, losing changes and does not leave the current action open.  For complex workflows, finding your way back to where you were working takes time and you could potentially go to the wrong action and make changes where they were not intended.
Fairly certain this did not happen in older 2.x and definitely not in 1.x designer versions.  It appears to be a recent change in behaviour.

Hi @axiomitdavid thanks for raising this issue. I will take a look on this.

@ccastrotrejo what is the current status of this? It got reported again today and I can see how it would be disruptive.

@hartra344  I haven't started working on the fix for it, I will prioritize it.

i think this may be a similar thing also for copilot where if we open up the copilot panel, the designer refreshes, losing all unsaved changes. I believe it may be because we're changing some prop in the wrappers, which causes the children to rerender

Yeah it might be happening in the react projects we host. The reason of this happening is because we are not saving the "dirty" states


addon-resizer eats Deployment affinity/tolerations (needs newer version)

An external kubecfg user encountered this (and initially thought it was a kubecfg bug).  We will encounter the same issue with addon-resizer too.  Apparently the fix is to upgrade to (at least) k8s.gcr.io/addon-resizer:1.8.3
See also: https://github.com/kubernetes/autoscaler/issues/188

@anguslees is this still relevant?

Yes, we're still using gcr.io/google_containers/addon-resizer:1.0 in the prometheus manifests.


Update UG regarding the filterteam feature

Behavior of filterteam feature was not clearly specified, and this led to some confusion for the users. This commit fixes that.

Codecov Report

Merging #158 (47094b7) into master (1d5196d) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #158   +/-   ##
=========================================
  Coverage     69.83%   69.83%
  Complexity      574      574
=========================================
  Files            88       88
  Lines          1850     1850
  Branches        215      215
=========================================
  Hits           1292     1292
  Misses          473      473
  Partials         85       85

Continue to review full report at Codecov.

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


Create license

@waydelyle There's already a LICENSE.md ;)

Closing because we already have a license.


chore: clean up evalNot norm_num extension

Uses deriveBool, which was added in #3892, and allows removal of some have lines.
Changes an if then else into a match. This is more readable in my opinion.

bors r+


Deleted Git Stash Notation

Deleted Git Stash Notation. Branch should be rebased before PR is approved.

Make sure Martin Rebases branch before approving PR into Master


built-in remote for camera

Idea:
Press start on the controller
controller sends signal to receiving unit, triggering bulb mode (or set timer on camera)
controller plays pixels
controller sends signal to receiving unit to close shutter
Either 433 Mhz with a module like this: https://www.aliexpress.com/item/32416047991.html?spm=a2g0o.productlist.0.0.44c933caOL2SaQ&algo_pvid=9416576b-7458-4029-b1be-9e83031af96c&algo_expid=9416576b-7458-4029-b1be-9e83031af96c-4&btsid=0b0a050b16080249160327090ee01c&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_
or maybe BLE if range is enough.
highend: LoRa

This is a wonderful Idea! I like it.
I find that BLE will often go about 10m, but I think that is beyond what the spec says.

I have also found in testing that the WiFi radio will go closer to 30 meters outside. Maybe even further if the receiver is good.
I designed a radio controlled elevator button and I found it would easily go that far. I put an antenna on the receiver and it worked great, I don't know the exact distance because I didn't want to walk any further away from the house.
So we can probably use the WiFi on the TTGO and design a receiver for the camera. We might need to research how to actually trigger the camera but I hope that information is available somewhere.

triggering the camera is easy with an arduino a resistor, and an 2N2222 transistor. I have built a camera timer based on the M5Stack, the schematics can be found at https://www.essl.de/2020/10/23/timy-the-open-source-camera-timer/ it would be a great addition to it, as the M5 already has WiFi. cheaper would of course be an additional TTGO.

a candidate board for the reciever (or even for MIW): https://de.aliexpress.com/item/10000327309127.html?spm=a2g0o.productlist.0.0.197b4331SJLFWF&algo_pvid=cd2f3d4b-d215-4de5-b461-0e7eeda98eac&algo_expid=cd2f3d4b-d215-4de5-b461-0e7eeda98eac-32&btsid=2100bde116081576784187063e622c&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_
as it has an ipex connector for an antenna

I use two esp8266 made a Wireless remote for camera.
use the esp-now:https://www.espressif.com/en/products/software/esp-now/overview
if i play the bmp,then the shutter will be pressed at the same time.
You can understand the principle by watching these videos
https://www.youtube.com/watch?v=w4R9VoY96h8
https://www.youtube.com/watch?v=qxwXwNS3Avw
https://www.youtube.com/watch?v=_cNAsTB5JpM

i love this  idea!


[Formrecognizer] Remove unsupported feature tests

API change check
API changes are not detected in this pull request.

/azp run java - formrecognizer - tests


Add local console for docker attach

Why
Need a local console to directly control the dedicated server without rcon.
How to attach
docker attach --sig-proxy=false cs2-dedicated
or
docker attach --detach-keys="ctrl-x" cs2-dedicated
How to detach
Please do not use ctrl + c
use

ctrl + p + q

or

ctrl + x (docker attach --detach-keys="ctrl-x" cs2-dedicated)

Thank you for your contribution :)


1.0 change log and 1.0 source tag conflict re rowreduce

The 1.0 release notes (http://petl.readthedocs.org/en/latest/changes.html?highlight=rowreduce) say that rowreduce is overly complicated and has been removed. The next paragraph of this document suggest using it in place of recordreduce.
It seems rowreduce is in the 1.0 source tree: https://github.com/alimanfoo/petl/blob/v1.0/petl/transform/reductions.py#L16
Perhaps the first use of rowreduce in the change log was supposed to be recordreduce?

Hi @fhsm, thanks for this. The function rangerowreduce has been removed (along with the other range...() functions which all had complicated implementations and were hard to understand or debug). The function rowreduce() remains. The function recordreduce() was deprecated and has been removed because it was redundant. I think the changes section has this all correct, but let me know if you spot any inconsistencies.

You're right. The highlighting makes the substring match look like a separate word
"rangefacet, rangerowreduce, rangeaggregate, rangecounts, multirangeaggregate, lenstats."

Yeah that is confusing. Anyway thanks for taking the time.
On Wednesday, 21 January 2015, fhsm<EMAIL_ADDRESS>wrote:

You're right. The highlighting makes the substring match look like a
separate word
"rangefacet, rangerowreduce, rangeaggregate, rangecounts,
multirangeaggregate, lenstats."
--
Reply to this email directly or view it on GitHub
https://github.com/alimanfoo/petl/issues/307#issuecomment-70900155.

--
Alistair Miles
Head of Epidemiological Informatics
Centre for Genomics and Global Health http://cggh.org
The Wellcome Trust Centre for Human Genetics
Roosevelt Drive
Oxford
OX3 7BN
United Kingdom
Web: http://purl.org/net/aliman
Email<EMAIL_ADDRESS>Tel: +44 (0)1865 287721