AP & off line operation

Hi
I recently noticed that mclighting doesn't work offline (ie without internet connection)
Looking at the code I see that the html calls web resources. Is this what stops it working? I know I could work it out myself but I'm feeling lazy...
Presumably this is why it doesn't work in AP mode?
Wouldn't this be simple to fix?
Cheers
Ian

Hi @iansexton,
the standard UI needs network connection. Maybe I'll change that in the future.
You can use yout hotspot from a mobile phone to make it work everywhere.
There were also other attempts to create a UI without network connection required: https://github.com/toblum/McLighting/issues/237
There also a simple android app: https://github.com/toblum/McLighting/tree/master/clients/Android
Regards
Tobias

@toblum/McLighting<EMAIL_ADDRESS>Thanks for this. How did you generate the UI?
There are lots of places in the UK where a mobile phone has no access :(
Couldn't the remote resources be bundled with mclighting? I notice that one
is a very small file.
I'll take a look at #237 https://github.com/toblum/McLighting/issues/237
Cheers
Ian
On Sat, Jun 29, 2019 at 8:16 PM Tobias Blum<EMAIL_ADDRESS>wrote:

Hi @iansexton https://github.com/iansexton,
the standard UI needs network connection. Maybe I'll change that in the
future.
You can use yout hotspot from a mobile phone to make it work everywhere.
There were also other attempts to create a UI without network connection
required: #237 https://github.com/toblum/McLighting/issues/237
There also a simple android app:
https://github.com/toblum/McLighting/tree/master/clients/Android
Regards
Tobias
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/toblum/McLighting/issues/421?email_source=notifications&email_token=AISXEELFN5VSUS5S2Y5UCRTP46YIVA5CNFSM4H3TZALKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODY36TAI#issuecomment-506980737,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AISXEEONVSURRDWLDXUGWXDP46YIVANCNFSM4H3TZALA
.

Hi @iansexton,
I'll have a look on a versio without dependencies in the future. This alternative UI should also have no dependencies: https://github.com/toblum/McLightingUI but it's bigger in overall size.
Regards
Tobias


Spanish translations

Closes https://github.com/althea-mesh/althea-dash/issues/75

LGTM, thanks! Also closes #72


Teams improvements

Fully separate teams and referral sets
Allow setting a key name / metadata (to show in a team)
Invitations to closed teams (owner maintains a whitelist who can join)

Closed with PR #2058


Reflection macro improvements

Create an enum with the provided fields and names. A nameof reflection function is made.
Example: GLZ_ENUM_MAP(color, "Red", red, "Green", green, "Blue", blue);
nameof(color::red) == "Red"

@jbbjarnason, I've created some new enumeration macros (GLZ_ENUM AND GLZ_ENUM_MAP), primarily for internal use in Glaze. These macros compile much faster (~20X faster) than the more flexible glz::meta enumerate approach. They don't have to do any complex tuple handling with lots of templates. I'm using this for the error_code and for defined_formats.
I'm pointing this out to you because I changed the underlying type for defined_formats from a uint8_t to a uint32_t. The reason is because it keeps the macros simpler. We use defined_formats in a std::optional so the alignment will remove the benefits of uint8_t. I just wanted these reflection macros to use a uint32_t because it can be faster in some contexts and we don't have to worry about running out of space in a uint8_t.
Just making you aware of this change in case it adversely affects your codebase.

@jbbjarnason, I've created some new enumeration macros (GLZ_ENUM AND GLZ_ENUM_MAP), primarily for internal use in Glaze. These macros compile much faster (~20X faster) than the more flexible glz::meta enumerate approach. They don't have to do any complex tuple handling with lots of templates. I'm using this for the error_code and for defined_formats.
I'm pointing this out to you because I changed the underlying type for defined_formats from a uint8_t to a uint32_t. The reason is because it keeps the macros simpler. We use defined_formats in a std::optional so the alignment will remove the benefits of uint8_t. I just wanted these reflection macros to use a uint32_t because it can be faster in some contexts and we don't have to worry about running out of space in a uint8_t.
Just making you aware of this change in case it adversely affects your codebase.

Sounds awesome, great job!


Make RequestOptions.Properties public so that we can push info from application into CosmosRequestHandler

Is your feature request related to a problem? Please describe.
I really want to prevent polluting my code with unnecessary logging and instrumentation code.
I love that there is a CosmosRequestHandler that I can use to intercept the CosmosRequestMessage and execute some code before and after calling SendAsync()
Currently, in the CosmosRequestHandler:SendAsync() method there is no way for me to determine the origin of the request. Meaning I have no idea which part of my application made this request.
All I can get now from the CosmosRequestMessage is the requestUri  but it really does not help pinpoint the origin of the request.
I found that all the CRUD methods CreateItemAsync(), ReadItemAsync(), CreateItemQuery<T>() etc. on the CosmosContainer (except GetItemsIterator()) class take a RequestOption (or QueryRequestOptions, ItemRequestOptions etc.) as input. The RequestOptions.Properties field is marked as internal so I can't populate it with my own values.
Describe the solution you'd like
I would be happy with any of the following possibilities:

Make the RequestOptions.Properties field public
Allow us to add custom properties through the RequestOptions (and others) constructors
Add an alternative property bag or RequestContext that I can populate from my application code, and consume/intercept in the CosmosRequestHandler

I cloned the latest SDK and made the changes to it myself to check if it will work... and it does exactly what I want :)
Adding custom properties from my application, I can intercept them through the CosmosRequestHandler and take care of all the cross-cutting concerns. This is so neat and tidy compared to the BAD alternative:
public async Task<Vehicle> GetVehicle(string registration)
{
	var options = new ItemRequestOptions
	{
		// only works if this is public
		Properties = new ConcurrentDictionary<string, object>() { ["origin"] = nameof(GetVehicle) }
	};

	return await _container.ReadItemAsync<Vehicle>(
		partitionKey: "Vehicles",
		id: registration,
		requestOptions: options);
}

then in my CosmosRequestHandler I can do this:
public class RequestUnitTracker : CosmosRequestHandler
{
	public double RequestUnitsConsumed { get; set; }
	private readonly ILogger<RequestUnitTracker> _logger;

	public RequestUnitTracker(ILogger<RequestUnitTracker> logger)
	{
		_logger = logger;
	}

	public override async Task<CosmosResponseMessage> SendAsync(CosmosRequestMessage request, CancellationToken cancellationToken)
	{
		// measure latency
		var watch = Stopwatch.StartNew();
		watch.Start();

		// send the request
		CosmosResponseMessage response = await base.SendAsync(request, cancellationToken);
		watch.Stop();

		long elapsed = watch.ElapsedMilliseconds;
		response.Headers.Add("elapsed-time-ms", $"{elapsed}");

		// track the total RU's that were consumed
		RequestUnitsConsumed += response.Headers.RequestCharge;

		// track origin
		request.Properties.TryGetValue("origin", out object origin);

		// logs... don't forget the logs!
		_logger.LogInformation("{timeStamp} - {statusCode} - {method} - {requestUri} - {origin} - Charge: {requestCharge} Latency: {latency}",
			DateTimeOffset.UtcNow,
			response.StatusCode,
			request.Method,
			request.RequestUri, // <-- THIS IS NOT SPECIFIC ENOUGH
			origin, // <-- I NEED THIS
			response.Headers.RequestCharge,
			$"{elapsed}ms");

		return response;
	}
}

Describe alternatives you've considered
To get around this issue in my application I have to handle each and every instance where I make a request with the Cosmos SDK and manually log the method name/class name where the request originates from. Pollution levels are high :)
public async Task<Vehicle> GetVehicle(string registration)
{
	var watch = var watch = Stopwatch.StartNew();
	ItemResponse<Vehicle> response = await _container.ReadItemAsync<Vehicle>("Vehicles", registration);

	// this has to be called for each and every response I get back from Cosmos. Easily forget to add it and miss tracking the call. Also, now its too late to do anything I want in the <see cref="CosmosRequestHandler"/>
	await LogResponse(nameof(GetVehicle), response, watch.ElapsedMilliseconds);

	return response;
}

I've tried a few different ways to deal with these cross-cutting concerns but they all end up with far too much code and it just looks messy after a while.
Additional context
If there is another way to achieve what I'm trying to do I would be happy to try that instead.
Thanks

Would a single string property like "UserClientRequestId" be a better solution?

Property will not be set in the headers
Avoid creating dictionary for each request
Avoid the dictionary insert and lookup performance hit

Is there a scenario where multiple values need to be stored?

Yes! that is a great suggestion. It will definitely solve the issue.
In my case right now I don't need multiple values... but if I ever did need multiple values, I could re-use this UserClientRequestId value to form a correlation between data that I store myself in my app and the request that gets handled in the CosmosRequestHandler.
:)

Just to check, this UserClientRequestId would be a public property on the RequestOptions class?

Yes, the UserClientRequestId would be public.

Another way you can do this currently is extend the request option type, and add your custom field to it.

OK that could work. I just need to then cast the 'RequestOptions' to my custom type and use it...
This solution will be fine for now but I would prefer your original suggestion of the 'UserClientRequestId' field on the base 'RequestOptions' more. It means I won't need to extend multiple classes like 'ItemRequestOptions', 'QueryRequestOptions', etc. And cast/check types in the RequestHandler.

Hi j82w,
I had a quick attempt to get your recent suggestion working, but it's not possible at this stage either.
If I extend the ItemRequestOptions class (or others) to add my own UserClientRequestId field, I won't be able to retrieve it from the RequestMessage given to the handler because the RequestMessage.RequestOptions field also marked as internal.
So the question now is, can we have the RequestMessage.RequestOptions field as a public?

I would like this feature as well.
We want to have the usage of custom handlers to be able to integrate with our web api flow as well which it will be convenient to pass custom parameters in Properties for handlers to deal with.


Set format > Binary doesn't make any visiable changes

System information:

Operating system (distribution) and version Windows 10
DBeaver version 6.3.1

Describe the problem you're observing:
Set format > Binary doesn't make any visiable changes
Steps to reproduce, if exist:

Open data Editor for a table and right click on a cell with a string value;
Select Set format > Binary and press OK.

P.S. The same situation for "Geometry" type

Actual result:
no visiable changes of the cell value format
Include any warning/errors/backtraces from the logs

https://dbeaver.testquality.com defect D26. Do not remove or edit.

https://dbeaver.testquality.com defect D39. Do not remove or edit.

https://dbeaver.testquality.com defect D66. Do not remove or edit.

This behaviour is expected for Varchar data type. Closed.


Common Controls 17.1 Implementation

Need to update the implementation steps for GWS.COMMONCONTROLS.17.1v0.1. The setting was moved to Data instead of being under Account.

This is the one that we already know about. This will be the issue to track on the public repo.

Cannot create a PR yet as there are pending changes.

17.1 is now 15.1, updating title


DOCS-457: Add mc admin user svcacct reference docs

Closes #457
#. Summary

Adds the mc admin user svcaccount docs to the web CLI reference
Fixes a bug in rendering output for the mc admin commands that did not include full output
Slightly simplified logic for parsing options for mc-cmd directives

LGTM. I just don't understand why we need to use Console to create console for openid.

@vadmeste because there is no way to know the authenticated user unless - we can pass STS to mc generated externally.
And we can't generate a relevant SVC for an OIDC since we don't know the parent user.


runtime: parallelize Stakes::new using rayon

We used to do two loops over stakes.stake_delegations plus another loop over voter_pubkeys. Do the same logic but with just one loop.
I've now parallelized it using rayon. On my devbox it goes from ~50s to ~10s.

Codecov Report
Attention: Patch coverage is 55.55556% with 12 lines in your changes are missing coverage. Please review.

Project coverage is 81.8%. Comparing base (80d3200) to head (5f4f617).
Report is 10 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff            @@
##           master     #450     +/-   ##
=========================================
- Coverage    81.8%    81.8%   -0.1%
=========================================
  Files         841      841
  Lines      228242   228243      +1
=========================================
- Hits       186923   186907     -16
- Misses      41319    41336     +17

I've now parallelized it using rayon. On my devbox it goes from ~50s to ~10s.

This code is only invoked during validator start up and after that has no impact on runtime. So, given the use of thread-pool and code simplicity trade-offs, the question is that how much does it actually move the needle for the validator operators in terms of improving the entire restart time (which runs many tasks both serially and in parallel) as opposed to this single operation in isolation.
I am not a fan of throwing a thread-pool at every problem (at least not until other options are exhausted); here for example we are taking resources if there are other restart tasks running in parallel. So probably a better alternative would be to keep this code single threaded but run more tasks from the restart process in parallel with this code.
Then there is a whole discussion that if the scaling problem with stake accounts (here for example but more importantly at epoch boundary rewards calculation) is an "engineering" problem or an "economics" problem. Probably here isn't suitable for that discussion but happy to chat more on other channels or point you to previous discussions about that.

I've now parallelized it using rayon. On my devbox it goes from ~50s to ~10s.

This code is only invoked during validator start up and after that has no impact on runtime. So, given the use of thread-pool and code simplicity trade-offs, the question is that how much does it actually move the needle for the validator operators in terms of improving the entire restart time (which runs many tasks both serially and in parallel) as opposed to this single operation in isolation.

I have spent two weeks profiling ledger-tool verify startup, I'm happy to discuss in detail what happens and when, not sure why you're assuming I'm looking at this in isolation.
This PR improves startup by the amount I quoted above. Stakes::new gets executed from the main thread, after index building has finished. Nothing else is running in parallel because it's waiting for a bank to be rebuilt and the global rayon thread pool is idling. This PR doesn't add a new thread pool.
Profiler screenshot that shows how nothing else happens while Stakes::new executes (I've selected the time interval, you can see that all other threads idle waiting for this operation on the main thread to finish). As you can see right after this ends, replay threads start, ABS starts, etc.

Granted this is ledger-tool and not the validator. I'll take a startup profile of the validator too.

I am not a fan of throwing a thread-pool at every problem (at least not until other options are exhausted); here for example we are taking resources if there are other restart tasks running in parallel. So probably a better alternative would be to keep this code single threaded but run more tasks from the restart process in parallel with this code.

If you have concrete suggestions on what could be run in parallel and how it would be better I'm happy to hear them! We've been discussing this on discord for a couple of weeks, link to context on this specific optimization https://discord.com/channels/428295358100013066/838890116386521088/1222641979028930711

Then there is a whole discussion that if the scaling problem with stake accounts (here for example but more importantly at epoch boundary rewards calculation) is an "engineering" problem or an "economics" problem. Probably here isn't suitable for that discussion but happy to chat more on other channels or point you to previous discussions about that.

Sure happy to talk about that, but doesn't seem relevant to this PR? This PR improves the status quo.

Profiler screenshot that shows how nothing else happens while Stakes::new executes (I've selected the time interval, you can see that all other threads idle waiting for this operation on the main thread to finish). As you can see right after this ends, replay threads start, ABS starts, etc.

For reference, this is the profile with this PR, as you can see it's using the global rayon pool, which is otherwise idle

I have spent two weeks profiling ledger-tool verify startup, ... not sure why you're assuming I'm looking at this in isolation.

The validator startup time effectively takes until the node has caught up with the cluster and can start voting or generate blocks when it becomes the leader. This by large depends on if the node already has the snapshots or needs to fetch them from other nodes; but either way a lot more happens to "startup" a validator and start voting than what ledger-tool does.

If you have concrete suggestions on what could be run in parallel and how it would be better I'm happy to hear them!

Off top of my head, I can think of below but there are probably better candidates.

We can start ingesting shreds and persisting them to blockstore. Shreds which are not ingested and persisted have to be repaired later on which is a slower process.
We can join gossip and sync the CRDS table.

... an "engineering" problem or an "economics" problem.

Sure happy to talk about that, but doesn't seem relevant to this PR? This PR improves the status quo.

The relevance is that if we should waste time and effort on making a faster horse or work towards inventing a car.
sure, if it is a code change that does the exact the same thing as the old code but just faster, there is no reason not to merge that; but I am not yet sure how much of logical change https://github.com/anza-xyz/agave/pull/450#discussion_r1544094339 is.
I am not denying there are problems with the stakes cache and I am not trying to block you in making improvements, but just trying to provide more context to find a good longer term solution, and the truth is without the "economics" this is just kicking the bucket down the road and fighting a losing battle.
The economics part aside and just considering the status quo, this code here does two things:

Convert from Stakes<Delegation> to Stakes<StakeAccount>:
This is needed because changing our wire formats is pretty hacky today. So we convert from Stakes<StakeAccount> to Stakes<Delegation> when serializing and then convert back when deserializing.

If we switch to a backward/forward compatible serialization format, we can just stick with Stakes<StakeAccount> and don't need these conversions at all. That backward/forward compatible serialization format is already long due and solves a lot of other problems as well.

Perform sanity checks between stakes-cache and accounts-db:
This is needed because historically we had discrepancy between the two and these sanity checks will hopefully prevent checking in new buggy code re-introducing discrepancy between the stakes-cache and account db.

However, these sanity checks can be run async and don't need to delay validator start-up. So we can just spawn a thread which does these sanity checks and halts the validator process if it finds a discrepancy, but otherwise has no impact on validator startup.

I have spent two weeks profiling ledger-tool verify startup, ... not sure why you're assuming I'm looking at this in isolation.

The validator startup time effectively takes until the node has caught up with the cluster and can start voting or generate blocks when it becomes the leader. This by large depends on if the node already has the snapshots or needs to fetch them from other nodes; but either way a lot more happens to "startup" a validator and start voting than what ledger-tool does.

If you have concrete suggestions on what could be run in parallel and how it would be better I'm happy to hear them!

Off top of my head, I can think of below but there are probably better candidates.
* We can start ingesting shreds and persisting them to blockstore. Shreds which are not ingested and persisted have to be repaired later on which is a slower process.

* We can join gossip and sync the CRDS table.

... an "engineering" problem or an "economics" problem.

Sure happy to talk about that, but doesn't seem relevant to this PR? This PR improves the status quo.

The relevance is that if we should waste time and effort on making a faster horse or work towards inventing a car.

I was going to call strawman here but then...

sure, if it is a code change that does the exact the same thing as the old code but just faster, there is no reason not to merge that; but I am not yet sure how much of logical change #450 (comment) is.

Yeah, thank you, this articulates my point of view.

I am not denying there are problems with the stakes cache and I am not trying to block you in making improvements, but just trying to provide more context to find a good longer term solution, and the truth is without the "economics" this is just kicking the bucket down the road and fighting a losing battle.
The economics part aside and just considering the status quo, this code here does two things:
1. Convert from `Stakes<Delegation>` to `Stakes<StakeAccount>`:
   This is needed because changing our wire formats is pretty hacky today. So we convert from `Stakes<StakeAccount>` to `Stakes<Delegation>` when serializing and then convert back when deserializing.

   * If we switch to a backward/forward compatible serialization format, we can just stick with `Stakes<StakeAccount>` and don't need these conversions at all. That backward/forward compatible serialization format is already long due and solves a lot of other problems as well.

Thanks for the context. I am aware that the serialization format is far from ideal, and my impression is that changing it now is not a goal, not for us and neither for firedancer. I'm happy to be part of the conversation when the time comes tho.

2. Perform sanity checks between stakes-cache and accounts-db:
   This is needed because historically we had discrepancy between the two and these sanity checks will hopefully prevent checking in new buggy code re-introducing discrepancy between the stakes-cache and account db.

   * However, these sanity checks can be run async and don't need to delay validator start-up. So we can just spawn a thread which does these sanity checks and halts the validator process if it finds a discrepancy, but otherwise has no impact on validator startup.

I agree that long term if the number of stake accounts keeps growing what we're doing today won't work anymore. But what we're doing without this PR will perform even worse. And I agree that a new serialization format that doesn't require so many of these inefficient things we're doing will be great. Before those things materialize tho I will have done thousands of ledger replays, so in the meantime I'd like to take this easy win.


How to get decimal places to show up correctly on the right?

I am attempting to get javascript to make the right number have a decimal point in it example 9999.99 however i cannot seem to get it to behave properly. Do you have any advice?

For instance if i put 3.00 in the right the left pay now button displays Pay 0.03

If you want to display 3.00 should put 300. The value that you will put in the amount will be divided by 100.

There's an interactive amount input on the demo page. You should check it out.


the async-prompt fish script will make fish prompt hang for v3.0

I've tried to comment/uncomment piece by piece in my config.fish, and it turns out that the async prompt fish script file made fish prompt hang. No other info, so if you need anything, please let me know.

My environment, it is working on fish 3.0.2.

I'm really sorry for my late reply.
Could you try again on newer version of fish, maybe?
I don't know it's a related thing, but on my environment the master version of fish is hung(even if without async-prompt). The release version(3.0.2) is work.

Yeah, it works for v3.0.2 again.
Have you ever considered to write a pull request to fish-shell repo and let them merge this feature into fish-shell?

Thank you.
Hmm... Probably I won't create PR for fish core repository because this plugin works enough for me so I don't have motivation. Additionally I'm not familiar with such big C++ project. :thinking:

But it's still nice feature, because Fish plugin often break. It's hard to maintain code to work on both of Linux and macOS.


Add support for http basic auth

This also introduced the needed use of a general handler for the proxy so that we can intercept requests early on before creating the reverse proxy and passing it on.
Default realm and user is set, it requires the user to set a password for it to be in play (and optionally change the username and realm).

@acoshift definitely keen to see that and also learn from it :)
Please feel free to append.

Understood what you meant there now, oversight on my behalf. Pushed https://github.com/acoshift/revprox/pull/4/commits/71cb09c4891a0557f46e91971ff3844d82d1dca3.

I just refactor and I will bump version on another PR.

wow, I just forget to push to main.go will fix this now

gotcha, was trying my best to not bump up for real, but i I like what you did there!


coreos_ignition: can't load

I'm trying to use libvirt_ignition to stand up an instance for testing.
Terraform = v0.12.24
libvirt tf provider = v0.6.2
KVM = 2.12.0-44
I keep getting this error:
Error: Error creating libvirt domain: virError(Code=1, Domain=10, Message='internal error: qemu unexpectedly closed the monitor: 2020-08-18T20:15:50.321113Z qemu-kvm: -fw_cfg name=opt/com.coreos/config,file=T6OiMr-hJZB-3ctf-yP9I-i6NI-0cSg-KceTis: can't load T6OiMr-hJZB-3ctf-yP9I-i6NI-0cSg-KceTis')

  on main.tf line 47, in resource "libvirt_domain" "master01":
  47: resource "libvirt_domain" "master01" {

Should i be using something other than libvirt_ignition.master_ignition-metal3.id ?
Here is the tf:
provider "libvirt" {
    uri = "qemu:///system"
}

provider "libvirt" {
  alias = "metal3"
  uri   = "qemu+ssh://root@metal3/system"
}

resource "libvirt_volume" "rhcos45-qcow2-metal3" {
  name = "rhcos.qcow2"
  pool = "pool"
  source = "http://repo:8080/assets/rhcos-4.5.2-x86_64-qemu.x86_64.qcow2.gz"
  format = "qcow2"
  provider = libvirt.metal3
}

resource "libvirt_ignition" "master_ignition-metal3" {
  name = "master.ign"
  pool = "pool"
  content = file("/tmp/master.ign")
  provider = libvirt.metal3
}

# Define KVM domain to create
resource "libvirt_domain" "master01" {
  count = 1

  name   = "master01"
  memory = "16384"
  vcpu   = 4

  network_interface {
    network_name = "default"
    mac = "52:54:00:18:58:01"
  }

  disk {
    volume_id = libvirt_volume.rhcos45-qcow2-metal3.id
  }

  coreos_ignition = libvirt_ignition.master_ignition-metal3.id

  boot_device {
    dev = [ "hd"]
  }

  console {
    type = "pty"
    target_type = "serial"
    target_port = "0"
  }

  graphics {
    type = "spice"
    listen_type = "address"
    autoport = true
  }

  provider = libvirt.metal3
}

terraform {
  required_version = ">= 0.12"
}

@nnachefski that is the correct usage
What is pool "pool" on the hypervisor? You should be able to check the location if its is a dir type and see the file "master.ign" with the contents of /tmp/master.ign.
The only difference is that I use ct_config to render a template from a YAML (FCC/CL) and use data.ct_config.controller-ignitions.*.rendered as the content for the libvirt_ignition resource. This renders the files into the default pool which I can see and libvirt boots the qemu machine with -fw_cfg name=opt/com.coreos/config,file=/var/lib/libvirt/images/vm1-ign

thx @dude051 for jumping into this. I'm setting to need info of @nnachefski

Hi @nnachefski
apart from providing more information, could you try latest version?


feat(console): AE feature discovery banner added

AE feature banner shows if AE is disabled or not configured.

📚  View the storybook of this branch here

🚀 CI was able to deploy the build of this PR, so you can now try it directly here
Notes: The deployed app is linked to the management API of APIM master. (Same login and password as APIM master)

@ashraf706 it looks like prettier isn't super happy 😁
Also, can you add a screenshot in the PR description?


More robust system for truncating generated content (bug/enhancement?)

Recently my friend was using TavernAI as a frontend to KoboldAI, and his model generated some content along the lines of this:

{USER} : You can stop there if you dislike the direction this conversation is going.

This is weird, and a model issue. But this was displayed. Perhaps because there was actual text afterwards, with no newline.
So changing the system used to truncate the content that the backend AI generates on behalf of the user might be appropriate.
This issue may not be possible to fix without screwing with certain characters. If so, feel free to close this issue.

Now the standard truncation, if no additional settings are enabled, looks like this:

the answer is truncated by "{user}:"
the answer is truncated by <|endoftext|> token
the answer is truncated by "\end" token for llama similar models

As far as I can see, the problem is that response has "{user} :" instead "{user}:"

Can you speak indonesian?
Pada tanggal Kam, 27 Jul 2023 21.33, Borov666 @.***>
menulis:

Now the standard truncation, if no additional settings are enabled, looks
like this:

the answer is truncated by "{user}:"
the answer is truncated by <|endoftext|> token
the answer is truncated by "\end" token for llama similar models

As far as I can see, the problem is that response has "{user} :" instead
"{user}:"
—
Reply to this email directly, view it on GitHub
https://github.com/TavernAI/TavernAI/issues/220#issuecomment-1653747087,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BBGBYNFIYQ2VHCQ7RTQLFR3XSJ34NANCNFSM6AAAAAA2ZBSQCE
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

jelek


WIP: Create semver version 2.9.1-rc2

Raise version number in __version__
Update CHANGELOG
Mention TestPyPI in release-procedure.md
MANIFEST.in:

Exclude .travis.yml
Exclude .github directory (pretty useless in an archive/wheel)
Exclude docs/_build directory
Exclude temporary Python files like __pycache__, *.py[cod]
Include all *.txt and *.rst files

LGTM

Your changes are now in commit 56c847c6153.


Allow to change order via drag'n'drop

Clear and concise description of the problem
It would be very nice, if we could change the order of the bookmarks via drag'n'drop. So I can put my most important things at the top of the list.
Suggested solution
Add bookmark ordering via drag'n'drop
Alternative
No response
Additional context
No response
Validations

[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Yeah fair enough. You mean in the "List"/"Table" view of the bookmarks themselves?

Yes exactly 👍


Staking vulnerability

This is just to avoid taking coins that are less than .1 Strat
Next PR will include a few tests, I'd rather get these signature changes merged in if possible

Unit and Integration tests all good apart from usual suspects, CanStratisSyncFromCore is fixed in another PR

There are still a few places which I asked to change and they then exchanged yet, so not yet for me.

@Aprogiena the code policy states:
We add parentheses to group the parts of complex boolean expressions.
This is not a complex boolean operation:
if (coinSet == null || outputReference.Transaction.Index >= coinSet.Outputs.Length)
If you can't justify this as a complex boolean operation then I will dismiss your review and merge this PR cause we can't hold up work in this sprint.

To add to this, the review policy is also that if 2 reviewers approve the changes we are allowed to to push.

@Aprogiena It has also been agreed with @monsieurleberre to not create PRs like this again in the future.

The rule specifically mentions this example:
if (x.Value > 5 && y) // parentheses needed to avoid confusion

Which is less complex than the line I was commenting on. Therefore the code style requires the brackets there.

To add to this, the review policy is also that if 2 reviewers approve the changes are allowed to be pushed.

Where is that written? Can you link please?

If you can't justify this as a complex boolean operation then I will dismiss your review and merge this PR cause we can't hold up work in this sprint.

That would be very unfortunate.

Also https://github.com/stratisproject/StratisBitcoinFullNode/pull/1701#discussion_r205111616

@Aprogiena, what myself and @dangershony is concerned about in this review is whether or not you can confirm that the code changes wont break staking.

OK, I have seen what I needed to see; that a code review can be held for some a pair of brackets that don't actually improve code readability or code quality. I think this is wrong and I have said it enough. It is a shame that common sense doesn't weigh in sometimes, and I am convinced this is actually an important issue.
So I'll give you some brackets because they are less important than my point ❤

OK, I have seen what I needed to see; that a code review can be held for some a pair of brackets that don't actually improve code readability or code quality. I think this is wrong and I have said it enough. It is a shame that common sense doesn't weigh in sometimes, and I am convinced this is actually an important issue.

Any reason you can give me not to write the code properly and according to the requested code style the first time? Just give me one common sense reason why would you not do that instead of just trying to make drama.

@monsieurleberre you should read https://github.com/stratisproject/StratisBitcoinFullNode/blob/master/Documentation/codereview-policy.md
And it is perfectly fine if you don't agree with certain policy or if you don't understand why is it in place. It is not okay if you just ignore it if you don't understand it. So please don't do that.
If you don't agree with something, you are supposed to open a discussion about the topic, but you're not supposed to create a code that is against the policies. So please with all the policies when you create a code up until the point the policy is changed.

@monsieurleberre Also not cool that you just ignored some of my other comments on this PR, but let's say I will make a compromise and be okay unblocking if you just fix those last three things that I have just pointed out again.

It's a fair point too @Aprogiena, I should not be making drama, actually neither of us should.
I find the reviewing process extremely useful, but in my opinion, on many occasions it focuses on issue that are more in the realm of opinions than anything else. On these, I feel that we should let consensus emerge by itself, or simply tolerate other people's preferences.
About coding policy, yes I have read it twice or more, but sometimes I forget a rule or two genuinely. In the case of the brackets, I also genuinely thought the expression was way too simple to require any brackets.
I know it has been a painful review for you, I do apologise and I will try to keep the other ones more focused. Hopefully we'll then keep it about the code's quality. Thanks for the help!

All the reviews are painful, that's why I love it. Thanks for understanding.

Thanks a lot guys ❤


Icon generation based on SVG files is broken

When using an SVG file as icon in the project.xml, e.g.
<icon path="res/icon.svg"/>

The Generated .png and .ico files are contain wrongly resized images which only covers a fraction of the icon dimensions. Example:
This is the source icon.svg:  http://pastebin.com/k1xxDJaT
This is for example generated at project\bin\android\bin\res\drawable-xxxhdpi\icon.png : http://picpaste.com/icon.png
But it should actually look like this: http://picpaste.com/icon_1.png

I've had this issue too, I suspect it's because the bundled SVG renderer does not respect the viewBox property in the SVG.

same here, not even the default icon openfl.svg from the flashdevelop template is correct on android.

Any news on this? I stumbled upon this one today...

The current OpenFL/Lime icons work, but I can't promise the SVG library is perfect. The solution is to look at making improvements to https://github.com/openfl/svg
You can see how we use it in our SVG export script here:
https://github.com/openfl/lime/blob/master/tools/SVGExport.hx#L163-L170
To rebuild this, do cd tools && haxe svg.hxml in the Lime directory

I hacked in support for the viewBox property in a hurry, I've been meaning to do a proper PR with it, but haven't had time.
In the meantime, this is the code I use:
package com.grapefrukt.games.spacematch.renderers;

import format.SVG;
import format.svg.SVGData;
import format.svg.SVGRenderer;
import openfl.Assets;
import openfl.display.Graphics;
import openfl.display.Sprite;
import openfl.geom.Matrix;
import openfl.geom.Rectangle;

/**
 * ...
 * @author Martin Jonasson<EMAIL_ADDRESS> */
class VectorAsset extends Sprite {

	public function new(id:String) {
		super();
		var s = new CustomSVG(Assets.getText('svg/$id.svg'));
		s.render(graphics);
	}

}

private class CustomSVG {

	public var data:SVGData;
	var viewBox:Rectangle;

	public function new(content:String) {
		var xml = Xml.parse(content);

		var viewboxString = '';
		for (svg in xml.elementsNamed('svg')) {
			viewboxString = svg.get('viewBox');
			break;
		}

		if (viewboxString != '') {
			var arr = viewboxString.split(' ');
			viewBox = new Rectangle(Std.parseInt(arr[0]), Std.parseInt(arr[1]), Std.parseInt(arr[2]), Std.parseInt(arr[3]));
		}

		data = new SVGData(xml);
	}

	public function render(graphics:Graphics, x:Float = 0, y:Float = 0, width:Int = -1, height:Int = -1) {
		var matrix = new Matrix();
		matrix.identity();
		matrix.translate(x - viewBox.x, y - viewBox.y);

		if (width > -1 && height > -1) {
			matrix.scale(width / data.width, height / data.height);
		}

		var renderer = new SVGRenderer(data);
		renderer.render(graphics, matrix);
	}

}
````

This uses a separate class so I don't have to mess with the library code, which naturally is a better way to do things if you *actually* want to fix it, but yeah, quick fix on my side.

Known issue https://github.com/openfl/svg/issues/18

@grapefrukt could you please create a proper PR? We now have infrastructure in place to automatically test and verify SVGs generate correctly.


chore: Add welcome message to new PRs/Issues

Summary
These new workflows will help provide a better experience to our OSS community, users by providing them an acknowledgement message right after they post a new PR / Issue.
Tests
Will test this workflow after it gets merged to master.
Dependency changes
None.
AB#1889601

/azp run


EXR file with mixed channel types (float/half) is read incorrectly

Here's the file:
http://www.mediafire.com/download/lpbg7sv7lf7hlz2/art021.zip
It has mixed channel types, and the channels are bizzarely interleaved (see file info below)
At least the first four channels (A, B, Diffuse.A, Diffuse.B) are read incorrectly, as shown by "iv".
Same thing happens with the OpenImageIO OpenFX plugin https://travis-ci.org/MrKepzie/openfx-io used by Natron https://github.com/MrKepzie/Natron/tree/workshop - see https://github.com/MrKepzie/Natron/issues/415
$ oiiotool --info chopper.exr
chopper.exr : 1280 x  720, 11 channel, half/half/float/float/half/half/float/float/half/half/half openexr
$ exrheader chopper.exr

chopper.exr:

file format version: 2, flags 0x200
cameraAperture (type float): 20.12
cameraFarClip (type float): 1e+30
cameraFarRange (type float): 1000
cameraFov (type float): 48.2144
cameraNearClip (type float): 0.1
cameraNearRange (type float): 0
cameraProjection (type int): 0
cameraTargetDistance (type float): 0
cameraTransform (type m44f):
   (0.71934 0.694658 1.49012e-08 0
    0.248943 -0.257788 0.933581 0
    0.64852 -0.671562 -0.358368 0
    13.4352 -17.5011 -5.71905 1)
channels (type chlist):
    A, 32-bit floating-point, sampling 1 1
    B, 32-bit floating-point, sampling 1 1
    Diffuse.A, 16-bit floating-point, sampling 1 1
    Diffuse.B, 16-bit floating-point, sampling 1 1
    Diffuse.G, 16-bit floating-point, sampling 1 1
    Diffuse.R, 16-bit floating-point, sampling 1 1
    G, 32-bit floating-point, sampling 1 1
    R, 32-bit floating-point, sampling 1 1
    Z Depth.B, 16-bit floating-point, sampling 1 1
    Z Depth.G, 16-bit floating-point, sampling 1 1
    Z Depth.R, 16-bit floating-point, sampling 1 1
compression (type compression): zip, multi-scanline blocks
dataWindow (type box2i): (0 0) - (1279 719)
displayWindow (type box2i): (0 0) - (1279 719)
gamma (type float): 1
lineOrder (type lineOrder): increasing y
pixelAspectRatio (type float): 1
screenWindowCenter (type v2f): (0 0)
screenWindowWidth (type float): 1
tiles (type tiledesc):
    single level
    tile size 64 by 64 pixels
type (type string): "tiledimage"

using OpenEXR 2.1, OIIO 1.4.8 (from OSX homebrew)
[thanks for OIIO!]

perhaps https://github.com/OpenImageIO/oiio/pull/1113 fixes this ?

Fixed by https://github.com/lgritz/oiio/commit/8c2739ffb6216babc0701d13b4513e6157a96945 via #1113


feat(typescript): Disable type checking

Disable type checking by inserting // @ts-nocheck and removing all other // @ts-xxx directives.
It can be configured with:
{
  "disableTypeChecking": "{test,src,lib}/**/*.{js,ts,jsx,tsx,html,vue}" // configure a pattern or `false` here
  "warnings": {
    "preprocessorErrors": true // enable/disable error logging here (default: true)
  }
}

You can disable it completely by setting disableTypeChecking to false. The default is "{test,src,lib}/**/*.{js,ts,jsx,tsx,html,vue}".
The disabling of type checking is done in the DisableTypeCheckingPreprocessor class. It calls the function in the instrumenter package to do the actual disabling. The reason for this is that files need to be parsed to distinguish between code and comments (@ts-xxx directives are only removed when they appear inside comments). It also works with HTML and vue files, so it also supports use cases where type checking is done inside vue files (with the vue-cli).
Whenever parsing a file results in an error, a warning is logged and mutation testing will still proceed. The warning can be disabled by setting warnings.preprocessorErrors to false.
This setting replaces both sandbox.fileHeaders and sandbox.stripComments, since those resulted into a lot of problems (see #2438 ).
Fixes #2438

@brodybits Everything is now ready for review, please have a look 👍

@nicojs I did take a quick look earlier today, may need some more time to take a more careful look. Thanks for your work so far on this!

@brodybits I'll be merging this as soon as the tests pass, since it is blocking some progress on other stuff. Feel free to still finish you're review and comment (or again a PR), we can always improve later 🙏

I would probably rename the option (and ideally the modules) to disableTypeCheck or disableTypeChecks.
My apologies for the delays.

Thanks! Will you also rename the modules?

Excellent point! Much better. Thanks a lot! And just in time for this PR 👍

Thanks! Will you also rename the modules?

Yeah, forgot about that at first, did that right after. We're doing squash merges, so it will look nice and tidy afterward ;)

My apologies for the delays.

No worries whatsoever. I'm not entitled to your time, I know that there are more important things than this in the world 🤗
Thank you for the review! I'm glad you find naming things just as important as we do 👍


init_mkdocs branch TODO before PR and request for review

[x] on main site landing page, remove side bar so it doesn't have weird empty spacing
[x] add conda, mamba, mkdocs versions to the main README

documented in #4


add Pen definition and update schemas

Signed-off-by: codeKraken<EMAIL_ADDRESS>Notes for Reviewers
This PR fixes #
Signed commits

[ ] Yes, I signed my commits.

Did you also update the schemas in meshery ?

Merging this , lets discuss about other drafts.


It's possible to fixed width and height in grid container?

It's there a way to layout in a container with fixed width and height?
I have a big screen to map a div container with fixed width and height.

If you set the vertical margin to 0, the layout height will be colNum * rowHeight. You can adjust according to the height you need.
The width will be the same of the parent container.


How to use custom checkstyle config

Hi.. I have my custom config under following path:
support/checkstyle/checkstyle.xml
I am trying following config but it is failing..
on: pull_request

jobs:
  checkstyle_job:
    runs-on: ubuntu-latest
    name: Checkstyle job
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Run check style
      uses: nikitasavinov/checkstyle-action@master
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        reporter: 'github-pr-check'
        tool_name: 'testtool'
        checkstyle_config: 'support/checkstyle/checkstyle.xml'

But it's already nikitasavinov/checkstyle-action@master

But it's already nikitasavinov/checkstyle-action@master

@NKcqx  so there is no way to use any other check style config other than google_checks.xml?

But it's already nikitasavinov/checkstyle-action@master

@NKcqx so there is no way to use any other check style config other than google_checks.xml?

I don't know, trynna figure it out too.
Here's mine, I got the checkstyle.xml under project's root path:
- name: Checkout
        uses: actions/checkout@v2
      - name: Run java checkstyle
        uses: nikitasavinov/checkstyle-action@master
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          reporter: 'github-pr-check'
          tool_name: 'testtool'
          checkstyle_config: 'checkstyle.xml'

And got the result (already ran checkStyle locally without error):

Hi @nitinsh99, thank you for this bug report! I will take a look soon

Should be fixed on master. I will soon release 0.3.1 version with the fix.


Overlap between chocolatey-cookbook and Chef chocolatey resource?

Apologies if I'm a noob and missed something.
This cookbook states that it can manage Chocolatey packages.
However there is also the "chocolatey_package" resource: https://docs.chef.io/resource_chocolatey_package.html
What's a Chef Chocolatey user to do?

Use the built-in resource chocolatey_package - use this cookbook only to manage the installation of Chocolatey itself. HTH

Thanks!


Initial python basics commit

@ElijahCaine @jordane  How does that look?

Looks good. Ignore my pedantic comments.


Phinx\Adapter\Select object like Zend_Db to abstract SELECT Queries

We may introduce a Phinx\Adapter\Select class to abstract SELECT queries like Zend_Db does.
e.g.
$select->from('table')->where('id = ?', 1);

Closing this issue for now due to lack of support. Users are better off integrating an external PDO library if required.


License suggestion

Hey, I noticed the project lacked a license notice. I'm suggesting an MIT license like most of the other tree-sitter grammar projects (e.g. tree-sitter-javascript). Sorry for being a bit pushy! We need to make sure there's no issue with using your software.

thank you


[Feature Request] Make base optional (default 10) to simplify input

It means that insp 11 is as same as insp d 11. Use 10 as default base since it makes intuitive sense in most cases.

It means that insp 11 is as same as insp d 11. Use 10 as default base since it makes intuitive sense in most cases.

Nice idea !
I will work on it  soon.

Some additional suggestions:

Add o/O standing for octal
insp 07 --> insp o 7
insp 0b1101 --> insp b 1101
insp 0xffff --> insp h ffff

Some additional suggestions:

Add o/O standing for octal
insp 07 --> insp o 7
insp 0b1101 --> insp b 1101
insp 0xffff --> insp h ffff

Of course, octal should be supported.
Well, I don't think 0 and o can have same meaning.
3 and 4.  Actually 0x is legal for this version, but its implementation is to simply filter 0x characters. I will rebuild this part to make it more useful.

2.Well, I don't think 0 and o can have same meaning.

I mean C style, where number starts with 0 is interpreted as octal number.

I mean C style, where number starts with 0 is interpreted as octal number.

I got it. This makes sense.

Hey @pilgrimlyieu
New version has been released !
https://github.com/NaroZeol/PowerHexInspector/releases/tag/v0.3.0

New version has been released !

It works well! Thanks for your efforts.
By the way, octal sign o/O is not included in valid base values in README.

By the way, octal sign o/O is not included in valid base values in README.

Fixed.
The before v0.3.0 release had something wrong with endian option.
Try the new one to avoid that.
May be I should have some auto testings to avoid such things 😥😥😥


Name our weekly

When we name our weekly update, this is how it shows in most aggregators:

It is not clear what July 2022 is about. Notice how CPE does that: CPE Weekly Update – Week 27 2022
Can we name it e.g., Packit in July 2022?

We are speaking about this, aren't we?
https://github.com/packit/packit.dev/blob/626055f2a648ea3376c4d7b870d1d1de2aa69ab3/content/posts/weekly/June-2022.md?plain=1#L2
This will result in  Packit in July 2022 | Packit titles for the webpage but that's not a huge issue.

And one thing, do you receive updates every week or just for the first week in a month?
(Since we create a new page for the whole month when adding the first week of a month and update the existing page for other weeks in a month.)

See https://packit.dev/posts/weekly/
And once published the new one, you can see it live on http://fedoraplanet.org/

Maybe there's a way how to tweak just the RSS feed content without us having to change the existing layout?

See https://packit.dev/posts/weekly/

You mean this? It looks like there is always just a first week of each month...

And once published the new one, you can see it live on http://fedoraplanet.org/

I can't see any Packit article there (the oldest available is from August 11). So it looks like we really publish just a first week monthly.

We concluded we will name the next one "Packit [in] January 2023".

We changed the naming to Week X in Packit.


Model generation from yo rest:api

While using the yo:rest api tool to create an endpoint, when you get to the model generation part, it asks for a comma separated list of your fields. Is there a way to provide a model that has nested fields/arrays in this setup process?
For example:
-id
-colors
----color_name
----color_value
-categories
---category_name
---category_slug
...and so on.

You can not do that during the generation of the API from the command line (even we could implement something like this, it would be too complex compared to how easy it's to do the same in javascript).
To add more complexity, you need to go for the code. Once you have generated the API, you can simply open the file ./src/api/api-name.model.js and change the model to something like this:
const colorSchema = new Schema({
  name: String,
  value: String
})

const categorySchema = new Schema({
  name: String,
  slug: String
})

const articleSchema = new Schema({
  colors: [colorSchema],
  categories: [categorySchema]
})

I recommed you to see the mongoose docs for writing schemas/models: http://mongoosejs.com/docs/guide.html

Thanks.
That's what I thought, but I figured I should ask before assuming.

You're welcome. 😊

One other question: In the generated model file, there is the view block:
`compoundsSchema.methods = {
view (full) {
const view = {
// simple view
id: this.id,
id: this.id,
categories: this.categories,
}
return full ? {
  ...view,
  // add properties for a full view
  createdAt: this.createdAt,
  updatedAt: this.updatedAt
} : view

}
}`
In the const view obj, how would you reference nested objects and arrays?

If you mean choosing which properties to show on the categories field, I would use Array#map:
categories: this.categories.map(({ id, name }) => ({ id, name })) // omit slug

You can also use lodash's pick:
import { pick } from 'lodash'
...
categories: this.categories.map((category) => pick(category, 'id', 'name')) // omit slug


feat: make flux controller limits configurable

Closes #17212
A sample of the new config:
[flux-controller]
  query-concurrency = 0
  query-initial-memory-bytes = 0
  query-max-memory-bytes = 0
  total-max-memory-bytes = 0
  query-queue-size = 0

Also use the prometheus metrics in debug/vars, here is a sample:
"query_control_all_active": {"name":"query_control_all_active","tags":null,"values":{"gauge":0}},
"query_control_all_duration_seconds": {"name":"query_control_all_duration_seconds","tags":null,"values":{"0.001":0,"0.005":0,"0.025":0,"0.125":0,"0.625":0,"15.625":2,"3.125":2,"count":2,"sum":2.9953034240000003}},
"query_control_compiling_active": {"name":"query_control_compiling_active","tags":null,"values":{"gauge":0}},
"query_control_compiling_duration_seconds": {"name":"query_control_compiling_duration_seconds","tags":null,"values":{"0.001":2,"0.005":2,"0.025":2,"0.125":2,"0.625":2,"15.625":2,"3.125":2,"count":2,"sum":0.0010411650000000001}},
"query_control_executing_active": {"name":"query_control_executing_active","tags":null,"values":{"gauge":0}},
"query_control_executing_duration_seconds": {"name":"query_control_executing_duration_seconds","tags":null,"values":{"0.001":0,"0.005":0,"0.025":0,"0.125":0,"0.625":0,"15.625":2,"3.125":2,"count":2,"sum":2.994032791}},
"query_control_memory_unused_bytes": {"name":"query_control_memory_unused_bytes","tags":null,"values":{"gauge":0}},
"query_control_queueing_active": {"name":"query_control_queueing_active","tags":null,"values":{"gauge":0}},
"query_control_queueing_duration_seconds": {"name":"query_control_queueing_duration_seconds","tags":null,"values":{"0.001":2,"0.005":2,"0.025":2,"0.125":2,"0.625":2,"15.625":2,"3.125":2,"count":2,"sum":0.000087963}},
"query_control_requests_total": {"name":"query_control_requests_total","tags":null,"values":{"counter":1}},
"query_control_requests_total:1": {"name":"query_control_requests_total","tags":null,"values":{"counter":1}}

[x] CHANGELOG.md updated with a link to the PR (not the Issue)
[x] Well-formatted commit messages
[x] Rebased/mergeable
[x] Tests pass

Note query_control in the metric names have been replaced to qc

Looks like the race detector failed on the control test...


How to make a quest available at several npcs ?

How to make a quest available at several npcs ?

Not currently possible. No plans to add.


RBD driver support

Related projects:

https://github.com/yp-engineering/rbd-docker-plugin
https://github.com/AcalephStorage/docker-volume-ceph-rbd
https://github.com/contiv/volplugin

It seems ceph RBD would fit very well as driver. I'd love to see support for it.

+1
Ceph driver would be great!

Any plans to add ceph support? would be important for some setups.

+1

Another ceph plugin, but with last commit 7 months ago: rbd-volume - NON-FUNCTIONAL
https://github.com/ceph/ceph-docker/tree/master/rbd-volume

+1
For those wanting to use ceph, look at the page below, using https://github.com/yp-engineering/rbd-docker-plugin . I tested on docker 1.9.0 where it seems to work fine.
http://www.sebastien-han.fr/blog/2015/08/17/getting-started-with-the-docker-rbd-volume-plugin/

@pimpim please let us know how you like it and if you need any features from it.

@hekaldama  I am currently trying out the yp-engineering with a proof-of-concept ceph installation, no authentication or users inside of the ceph cluster. Maybe I should give some feedback on their project page as well, but since you ask for it:  I really like the plugin's ability for flexible creating of volumes of a certain size in ceph:  e.g. the "@512" option to create a 512 MB sized volume works great, could also make volumes larger than the default setting (in this case 20GB), maybe nicer to even use a M/G/T suffix to allow creating volumes between mega and terabytes without getting crazy long numbers. I also like that I can load several plugins per host, so I can use different pools simultaneously within the same docker instance. I wonder if you could even get pools from different ceph clusters, but then the host should be a client of different ceph clusters, not sure if that is possible. I did not yet test authentication options per pool, didn't find documentation on that either. Maybe also something similar to --rm would be nice, like --rm-volume to delete a scratch volume directly after use.

@pimpim added some tickets(https://github.com/yp-engineering/rbd-docker-plugin/issues/11, https://github.com/yp-engineering/rbd-docker-plugin/issues/12) to our project for your suggested enhancements.
As far auth during docker run, sounds like you are saying similar thing as https://github.com/yp-engineering/rbd-docker-plugin/issues/10? If so, please comment on that ticket with any other suggestions and such.
Thanks.

+1, its a must for us, we currently have to pin services to hosts.

+1 this would be fantastic!

anything new？

+1 just starting to have a ceph cluster running. Rancher Support would be great

+1 for RBD Ceph support in Convoy

+1 any news about it?

Any plans to add support for Ceph on Convoy in the near future?

+2

+1

+1 for RBD Ceph support in Convoy

+1

@all please +1 is so 2015... We are almost in 2017, didn't you see yet the button "add your reaction"? It is on the top right of each card!

@pierreozoux this issue is also 2015.


HDDS-3719. Datanode may fail to stop

What changes were proposed in this pull request?
Datanode state may go back from shutdown to running due to race condition.  The problem happens if the task executed by StateContext reports that next state should be RUNNING, but datanode state was set to SHUTDOWN in the meantime.  State machine loop will continue trying to execute tasks, which will all fail as the executor is already shut down.
2020-06-03 15:28:19,475 [Datanode State Machine Thread - 0] ERROR statemachine.DatanodeStateMachine (DatanodeStateMachine.java:start(221)) - Unable to finish the execution.
java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.ExecutorCompletionService$QueueingFuture@73c36b6c rejected from org.apache.hadoop.util.concurrent.HadoopThreadPoolExecutor@5c021707[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 24]
	at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063)
	at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830)
	at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379)
	at java.util.concurrent.ExecutorCompletionService.submit(ExecutorCompletionService.java:181)
	at org.apache.hadoop.ozone.container.common.states.datanode.RunningDatanodeState.execute(RunningDatanodeState.java:143)
	at org.apache.hadoop.ozone.container.common.statemachine.StateContext.execute(StateContext.java:411)
	at org.apache.hadoop.ozone.container.common.statemachine.DatanodeStateMachine.start(DatanodeStateMachine.java:208)
	at org.apache.hadoop.ozone.container.common.statemachine.DatanodeStateMachine.lambda$startDaemon$0(DatanodeStateMachine.java:375)
	at java.lang.Thread.run(Thread.java:748)

The fix disallows going from a later state to previous one.
https://issues.apache.org/jira/browse/HDDS-3719
How was this patch tested?
Added unit test to reproduce the problem:
https://github.com/adoroszlai/hadoop-ozone/runs/742340251
And verified the fix:
https://github.com/adoroszlai/hadoop-ozone/runs/742342096

Thanks @adoroszlai for the contribution.

Thanks @nandakumar131 for reviewing and committing it.


Contributor Guide

Issue: #1168
A draft for the community contributor guide, suggestions welcome.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hey @kaivalya97, thanks for this buddy.
Here are my suggestions:

In the How to Contribute to Space Cloud? section, I think it would be worth to mention that there are a couple of ways to contribute to Space Cloud. Contributing with code is one of them. Creating well-described issues with reproduce steps is one. Contributing to community (making sample apps, writing tutorials, etc or spreading the word) is another.
Second, we should also mention that if they are confused about where to start, what issue to pick or how to solve it, they can text on the #contributions channel of our Discord.
The second point of Project structure can include the word monorepo . Something like this: The codebase is a monorepo consisting of the core components space-cli, gateway and runner (and their sub modules).


Feedback: ssh_tunnel

Seems like there's a bit of complexity hiding beneath the step:
'Configure it to accept localhost RPC commands and secure via username & password.'
I would love that to be expanded out!

Cheers @grabblies -- thanks for the feedback.
I hope the updates make a bit more sense.
There really isn't much to it, just that the order in the list was funny.


onAdditionalDetails called twice when aborting threeds2 once

Describe the bug
I'm using Vue, so I was able to reproduce this issue with this repository: https://github.com/adyen-examples/adyen-vue-online-payments
When using a credit card with 3D Secure 2 enabled (https://docs.adyen.com/development-resources/test-cards/test-card-numbers#test-3d-secure-2-authentication) and aborting the threeds2 step once, the onAdditonalDetails event is fired twice, with the first one (which tries to handle the first order) fails and the second one is successful. I think it should only try to call this event once.
Can this event handler be destroyed somehow?
To Reproduce
Steps to reproduce the behavior:

Use dropin or card component
Use 3d secure 2 card (https://docs.adyen.com/development-resources/test-cards/test-card-numbers#test-3d-secure-2-authentication)
Make order and you will be redirected to 3d secure page

Don't continue and go to homepage by clicking on the logo for example (and don't reload!)
Go to checkout again and order again
Complete threeds2 step by clicking Submit
onAdditonalDetails fired twice

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

I got this nice solution from the adyen support team, which fixed it for our own integration, as well as the vue example:

in components/Navbar.vue:
+ id="home" to <img src="~/assets/images/mystore-logo.svg" alt="Mystore logo" />
Then in pages/checkout/_payment.vue on Line 121:
 const integration = checkout.create(ref.type).mount(ref.$refs[ref.type]);
 function unmountChallenge (){
     console.log("Unmounting to prevent duplicate /api/submitAdditionalDetails call")
     integration.unmount()
    };
 document.getElementById("home").addEventListener('click', function () {
     unmountChallenge()
 });

This unmounts dropin, thus where the native challenge is hosted and cancels the transaction meaning when the shopper returns, there won't be a duplicate onAdditionalDetails call made.

So integration.unmount() is what is needed for this kind of behavior.

I have the same issue on v3.18.2 I use react and method remove() not help with this.
Can anyone tell me what I do wrong ?


can not found redis when build yaml.But i had install redis-py

[root@nimbus script]# pyleus build storm-2/pyleus_topology.yaml
pyleus build: error: [VirtualenvError] Failed to execute Python module: handle_topology.handle_Bolt2. Error: Traceback (most recent call last):
File "/usr/lib64/python2.6/runpy.py", line 122, in _run_module_as_main
"main", fname, loader, pkg_name)
File "/usr/lib64/python2.6/runpy.py", line 34, in _run_code
exec code in run_globals
File "/tmp/tmpadkG6K/resources/handle_topology/handle_Bolt2.py", line 3, in
from redis import *
ImportError: No module named redis
But i had install redis ,and in python-shell i can import redis..
install redis by pip.
what should i do?thanks
@poros  if you need ,i can Provide SSH address.you can ssh machine to see the problem
virtualenv ：13.1.2
pyleus：0.3.0
storm：0.9.3
centos：6.6
jdk：1.7
python：2.6.6

you should specify redis in your requirements.txt. See http://yelp.github.io/pyleus/tutorial.html#organize-your-files

thanks.
my english is not good,so i did't see it. - . -


Model requires 6 inputs. Input Feed contains 2

export onnx model with “wenet/bin/export_onnx.py” and  run “python test_demo.py” with exported  onnx ， get follow error：
Traceback (most recent call last):
  File "test_demo.py", line 4, in <module>
    from wenet import WenetInfer
  File "/data/disk1/ybZhang/.opendir/RapidASR/python/base_wenet/wenet/__init__.py", line 2, in <module>
    from .wenet_infer import WenetInfer
  File "/data/disk1/ybZhang/.opendir/RapidASR/python/base_wenet/wenet/wenet_infer.py", line 37, in <module>
    from swig_decoders import (PathTrie, TrieVector,
ModuleNotFoundError: No module named 'swig_decoders'
source activate wenet
(wenet) [ybZhang@master /data/disk1/ybZhang/.opendir/RapidASR/python/base_wenet]$python test_demo.py pretrain_model2/onnx_cpu/ test_data/test.wav
Traceback (most recent call last):
  File "test_demo.py", line 22, in <module>
    key, content, elapse = wenet_infer(wav_path)
  File "/data/disk1/ybZhang/.opendir/RapidASR/python/base_wenet/wenet/wenet_infer.py", line 148, in __call__
    ort_outs = self.encoder_ort_session.run(None, ort_inputs)
  File "/home/ybZhang/miniconda3/envs/wenet/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 184, in run
    raise ValueError("Model requires {} inputs. Input Feed contains {}".format(num_required_inputs, num_inputs))
ValueError: Model requires 6 inputs. Input Feed contains 2

I can't reproduce the error in my pc (linux CentOS).
This erros may be caused that the swig_decoders package doesn't not install correctly.
Please make sure this swig_decoders package is installed correctly.

installed the swig_decoders  and I run “python test_demo.py” with onnx model downloaded from "https://github.com/RapidAI/RapidASR/tree/main/python/base_wenet" and  it worked.

OK, has this problem been resolved?
If yes, please close the issue.

OK, has this problem been resolved?
If yes, please close the issue.

Not solved, i means that downloading your onnx model it worked but use my exported onnx model, it met above error：
Traceback (most recent call last):
  File "test_demo.py", line 22, in <module>
    key, content, elapse = wenet_infer(wav_path)
  File "/data/disk1/ybZhang/.opendir/RapidASR/python/base_wenet/wenet/wenet_infer.py", line 148, in __call__
    ort_outs = self.encoder_ort_session.run(None, ort_inputs)
  File "/home/ybZhang/miniconda3/envs/wenet/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 184, in run
    raise ValueError("Model requires {} inputs. Input Feed contains {}".format(num_required_inputs, num_inputs))

Please make sure your trained model has the same configuration with this.
Because the inference code is derived from this configuration.

When I train the other speech model, I met the same problem with the inference code.
Solution:

Visualize the model with the netron
Click the input node, look the right borard and check the inputs nums.


Bootstrap Carousel Sliding outside only in CSS Columns structured

Before opening:
Searched for related issue causing with CSS columns. This is a unique issue no one could find it.
Issue observed after updating the Chrome browser 74 to 75
Before Update Chrome version 74

After Update Chrome version 75

Bug reports must include:

Operating system and version (Windows)
Browser and version (Chrome 75)
Bootstrap Version 3.3.7, jQuery v2.2.4 and also above v3.3
Added code and CSS snippents at https://www.bootply.com/LNYf6MbnOj

No future plans for updating the bootstrap version.
Production

Same issue with Bootstrap version 4.3.1
https://www.bootply.com/kIkBOZi7bH

The card columns are known to cause some rendering issues and will probably be ditched in v5.
You can use masonry to tackle your problem: https://deploy-preview-28922--twbs-bootstrap.netlify.com/docs/4.3/components/card/#card-columns-masonry-layout

I'm using the 3.3.7 and custom column structure and future update plans to 4.3 is not at confirmed. Updating the Masonry on the Dynamic cards are not working, hence used the css column standers approach to full fill the requirements.
So even removing the CSS Column from Upcoming Bootstrap version, the issue still exists with Chrome browser. I reported the bug to chrome forum. and awaiting for the response.

Thanks for reporting! Closing as a won't/can't fix :).


lower the permission required for creation of tags

Feedback
The tags are quite useful and in UI there is a way to tag workspace directly without going to organisation settings, but the tag is set to require superuser for any update/create option, possible to lower it to something like:

create is allowed by teams who can manage workspaces,
update and delete are restricted to superuser

hello @stanleyz
You can type the "tag" in this part and just press "enter" to add a new one.

Once you type enter you should see the new values here.

We didn't put any restriction to create tags in this part of the code as you can see here, so if you are authenticated and have access to the org you should be able to put some tags there.
https://github.com/AzBuilder/terrakube/blob/6f9a248cfe47a9ecb508cfe62846861c67ad5fe6/api/src/main/java/org/terrakube/api/rs/tag/Tag.java#L18
Is different for example from this part of the code that has some restriccions using elide permissions
https://github.com/AzBuilder/terrakube/blob/6f9a248cfe47a9ecb508cfe62846861c67ad5fe6/api/src/main/java/org/terrakube/api/rs/workspace/Workspace.java#L30

ah, yes. you are right. Somehow the tag on workspaces doesn't work on my local test instance, I'll take a look.
I was probably looking at globalvar but talking about tags.


ElectrumX becoming unresponsive

Versions
python=3.7.1, 3.9.1
electrumx=1.16.0
aiohttp=3.7.0, 4.0

Context
Simple nginx tcp stream load balancing, ssl terminated at electrumx
Symptoms
ElectrumX Nonresponsive for tcp, ssl, or rcp services
ElectrumX 100% cpu
Stack Trace
pyrasite-trace.txt
Found Workaround
Configured nginx to handle SSL termination.  Reporting these errors
2021/01/11 02:28:30 [crit] 21#21: *437620 SSL_shutdown() failed (SSL: error:14094123:SSL routines:ssl3_read_bytes:application data after close notify) while proxying connection, client: REDACTED, server: <IP_ADDRESS>:50002, upstream: "<IP_ADDRESS>:50213", bytes from/to client:81/205, bytes from/to upstream:205/0

Note, this seems to be occurring with other coins as well.

Note, this seems to be occurring with other coins as well.

I don't get this problem on my old setup (electumx running for weeks):
Python 3.7.5
aiorpcX version: 0.18.3
aiohttp Version: 3.5.4
$ git rev-parse HEAD
76dca02061d2f70483092ce257455354f030ed3e

I have this traceback for the main thread, on python 3.8.5 (from ubuntu 20.04).
It matches the one in the OP.
(gdb) py-bt
Traceback (most recent call first):
  File "/usr/lib/python3.8/asyncio/sslproto.py", line 535, in feed_appdata

  File "/usr/lib/python3.8/asyncio/sslproto.py", line 675, in _process_write_backlog
    ssldata, offset = self._sslpipe.feed_appdata(data, offset)
  File "/usr/lib/python3.8/asyncio/sslproto.py", line 599, in _write_appdata
    self._process_write_backlog()
  File "/usr/lib/python3.8/asyncio/sslproto.py", line 387, in write
    self._ssl_protocol._write_appdata(data)
  File "/usr/local/lib/python3.8/dist-packages/aiorpcx/rawsocket.py", line 118, in write
    self._asyncio_transport.write(framed_message)
  File "/usr/local/lib/python3.8/dist-packages/aiorpcx/session.py", line 153, in _send_message
    await self.transport.write(message)
  File "/usr/local/lib/python3.8/dist-packages/aiorpcx/session.py", line 496, in _throttled_request
    await self._send_message(message)
  <built-in method run of Context object at remote 0x7f09e30eb6c0>
  File "/usr/lib/python3.8/asyncio/events.py", line 81, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/lib/python3.8/asyncio/base_events.py", line 2627, in _run_once
--Type <RET> for more, q to quit, c to continue without paging--
  File "/usr/lib/python3.8/asyncio/base_events.py", line 826, in run_forever
    None, getaddr_func, host, port, family, type, proto, flags)
  File "/usr/lib/python3.8/asyncio/base_events.py", line 603, in run_until_complete
    self.run_forever()
  File "/usr/lib/python3.8/asyncio/runners.py", line 299, in run
  File "/usr/local/bin/electrumx_server", line 35, in main
    asyncio.run(controller.run())
  File "/usr/local/bin/electrumx_server", line 43, in <module>
    main()

Note that around line https://github.com/python/cpython/blob/v3.8.5/Lib/asyncio/sslproto.py#L262,
exc_errno = 5 corresponds to
>>> ssl.SSL_ERROR_SYSCALL
<SSLErrorNumber.SSL_ERROR_SYSCALL: 5>

I have been running with a patched python for the last two days, and did not yet get a hang.
The server looks to be functioning well.
The only change I made is not suppressing these ssl.SSL_ERROR_SYSCALL errors.
https://github.com/SomberNight/cpython/commit/8296a26a383780d316bccb458c310d9624f03759

I've opened upstream python-bug: https://bugs.python.org/issue44036

I've been hitting this for a while too, I get CPU pegged to 100% with the server unresponsive after a month or so of running and I have to kill the process. I've just changed bitcoin.lukechilds.co over to use EVENT_LOOP_POLICY=uvloop to see if that resolves it.
For anyone else who ends up here and uses my Docker images, I've published an alternate version (lukechilds/electrumx:v1.16.0-uvloop) which you can use as a drop in replacement.


Unable to connect on electrum server over tor

Hi, when i want to configure electrum wallet over tor, i get error like my address contain 552 bytes, and maximum allowed is 512 bytes , can you increase URL lenght to 1024 bytes on example? to have possibility to connect on electrum over tor, thanks, best whishes.

Hi, can you please provide a TOR address (or DM at anton.kumaigorodskiy@outlook.com)? That should help with debugging.

hi, i wrote to your email.

hi, any news about onion address support?

Hey, I'm way too busy with other things currently, sorry for not mentioning this right away. I plan to get back to this and overall wallet development but don't yet know when this will happen.

In-app Tor support has been dropped, please use Orbot.


Startup programs for specific session

Hello,
Is there a way to start some programs only for a specific session? Contrary to issue #546, there are some programs that can run multiple instances over different sessions. I want to start a certain program at startup for a specific user (already added in USER\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup) but it's starting another instance once I open another RDPWrap session (on the same user).
Maybe somebody else had this problem.
Many thanks!

This is general Windows problem, not related to RDP Wrapper at all. Ask on Windows forums.


Newline Escapes

Feature Description
Currently, DuckScript appears to lack any means to split up long lines. A simple \ before a newline probably is a good yet simple solution to the problem.
Describe The Solution You'd Like
At the end of lines, including a \ character should tell the parser to ignore the newline and continue parsing the command on the previous line.

We are aware that it is intentionally simple, and find that a strong quality. Looking into the source, it seems that there would need a modification to line splitting (the solution with the least code would be changing the delimiter, but that would require something like semicolons), perhaps using replace before splitting into lines (those followed by a space would be implicitly escaped).

@enderger i'm not worried about parsing. The technical issue is actually the parsed line metadata (such as a command line) that has which file and line number it came from). for that i'm not going to support the right line, only define it as the first line. i think its good enough but not as amazing as i would hope.
also since the next line would actually be not available, gotos would have to skip to next available line... this might happen already. need to check.


Added Unitsml::Formula to Math conversion methods

Added Unitsml to MathML, Latex conversion methods.

As you suggested, we have implemented support for Ox for XML conversion. However, it's important to note that the conversion of MathML and HTML is different. The MathML and HTML conversion data are available in unitsdb, and we are currently using this data for the conversion process. There are two important points to mention:

We can use string interpolation for the conversion process(already implemented).
We can use the Ox parse method to parse the unitsdb output, which includes the values of both the MathML and HTML keys in the units.yaml file. However, it's important to note that this method may raise an exception, as seen in the following example:

"NISTu89":
  dimension_url: "#NISTd16"
  short:
  root: false
  unit_system:
    type: "non-SI_not_acceptable"
    name: "non-SI"
  unit_name:
    - "erg per second"
  unit_symbols:
    - id: "erg*s^-1"
      ascii: "erg*s^-1"
      html: "erg/s"
      mathml: "<mrow><mi mathvariant='normal'>erg</mi><mo>/</mo><mrow><mi mathvariant='normal'>s</mi></mrow>"
      latex: \ensuremath{\mathrm{erg/s}}
      unicode: "erg·s⁻¹"
  root_units:
    enumerated_root_units:
      - unit: "erg"
        power_denominator: 1
        power_numerator: 1
      - unit: "second"
        power_denominator: 1
        power_numerator: -1
  quantity_reference:
    - name: "power"
      url: "#NISTq20"
    - name: "radiant flux"
      url: "#NISTq21"

mathml: "<mrow><mi mathvariant='normal'>erg</mi><mo>/</mo><mrow><mi mathvariant='normal'>s</mi></mrow>"
In this example, one closing mrow tag is missing, which will cause an exception when using the Ox parse method.

We can use the Ox parse method to parse the unitsdb output, which includes the values of both the MathML and HTML keys in the units.yaml file.

MathML should be parsed properly via Plurimath.
We do not really need to parse HTML, but just offer the value.
e.g.
Units.get_unit(:NISTu89).to_html
=> "erg/s"
Units.get_unit(:NISTu89).to_mathml
=> "<mrow><mi mathvariant='normal'>erg</mi><mo>/</mo><mrow><mi mathvariant='normal'>s</mi></mrow>"
Units.get_unit(:NISTu89).to_plurimath
=> Plurimath::Math

Broken MathML

mathml: "<mrow><mi mathvariant='normal'>erg</mi><mo>/</mo><mrow><mi mathvariant='normal'>s</mi></mrow>"
In this example, one closing mrow tag is missing, which will cause an exception when using the Ox parse method.

We should fix this in UnitsDB. We should have a validation step (via rspec) that ensures all values in UnitsDB are valid.

We should fix this in UnitsDB. We should have a validation step (via rspec) that ensures all values in UnitsDB are valid.

Should we add the rspec test to the UnitsDB repo for the validation of MathML?

Should we add the rspec test to the UnitsDB repo for the validation of MathML?

Yes please!

@suleman-uzair is this ready to merge now? Thanks.

@suleman-uzair is this ready to merge now? Thanks.

@ronaldtse , As we have made some changes to the Unitsdb MathML output, I am including Ox parsing functionality to generate the MathML in Unitsml-Ruby.

@ronaldtse, I have completed the implementation of the changes. Please let me know if you would like me to proceed with merging.


chore: use spancontext for link

Fixes #57

Created https://github.com/open-telemetry/opentelemetry-specification/issues/1667


Refactor entry list markup

:tada: This PR is included in version 2.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Asides over text

Hi Jeff,
got your amazing book (.epub) and it being read very easy on my phone or PC but currently i have downloaded on my PocketBook (PB740) e-reader and got a unpleasant issue.
All asides icons are huge and are placed over text which makes impossible to read it. I have tried to change fonts, font size, every possible option and all changes except asides size. Attaching photos.

I guess it is somehow related to the software you are using. Maybe asides size may/should be adjusted.
Thank you a lot for your work and book!

Interesting bug! Unfortunately, the way asides are formatted is something that's built as part of the LeanPub process, and they have a list of recommended apps and devices they test with here: http://help.leanpub.com/en/articles/3045130-how-can-i-read-a-leanpub-ebook-what-apps-or-devices-do-you-recommend
I would consider sending this information to LeanPub along with the device and/or software you're using, and maybe it's something they'd be able to adjust in the way they produce the book output.


Fix banner component

🗒 General
Hi! Would love if someone could help us update our DismissableBanners component. Currently, the banner appears at the top, and the colors don't pass accessibility standards. We'd love for the banner to show at the bottom (20px above the bottom).

📐 Specs
You can access specs by duplicating our Figma UI Kit. Click on the "Dismissable Banner" page on the left.

@katz95 You're thinking a fixed position to always show at the bottom of the page?
Right now it's up to the dev to position the banner, it shows up wherever it's added to the UI. Would it make sense to keep that option but allow for a fixed property or something like that?

Yes, that makes sense! @Rugvip

Me and @samiramkr will look into this.


Add support for implicit marshalling of the eq types

Also MSVC does not have support for strndup which is C23

I have to say: I am quite confused about all this RESOLUTION_CESIUM business, but let's make this a topic of a new issue, after we finish with this PR.

Re: RESOLUTION_CESIUM. I almost manage to make it work, except it fails during runtime, since Cesium.Runtime cannot be resolved. I did not pursue investigation, current way of things was present originally. Need time to investigate and fix properly, maybe something simple.

Thanks!


How do I control the lamps?

Hello.
I have it installed on a Wemods D1 Mini, but I dont see in the sketch which PIN's I should use.
Where can I define the PIN's?
Or did I understand something wrong?

Hi!
Espalexa is a library for interfacing with Alexa devices, it does not do anything useful like control lights on its own. You have to code the functionality yourself, one of the simplest possibilities for this is using pinMode and digitalWrite functions.

Hi thanks
I dont know how to program well, but I'll take a closer look


Async pure OCaml TLS, client-side only

Adds support for tls-async, client-side only.

Thanks! Let's add server support when that lands upstream.


fix: make sure it would not read from property from an undefined value in DefinePlugin

Summary

In the different environment, the keyword this would be assigned with different values.  One case I met is when I used the lib cypress-rspack-dev-server to run the cypress test, it reported the undefined error:

Add the question mark to all the properties to avoid this error.

Checklist

[ ] Tests updated (or not required).
[ ] Documentation updated (or not required).

plugin.apply is supposed to receive a Compiler. Would you please share a MRE?

plugin.apply is supposed to receive a Compiler. Would you please share a MRE?

OK, thanks for reply, will pass a compiler to raw


Missing a ProxyConfig for the ETH contract

Feature Request
The ProxyCheck defines two classes for Argent and OpenZeppelin contracts. However, the standard ETH token uses another convention and requires to call the implementation function instead.
A basic fix would be to add
    class EthProxyCheck(ProxyCheck):
        async def implementation_address(
            self, address: Address, client: Client
        ) -> Optional[int]:
            return await self.get_implementation(address, client)

        async def implementation_hash(
            self, address: Address, client: Client
        ) -> Optional[int]:
            return await self.get_implementation(address, client)

        @staticmethod
        async def get_implementation(address: Address, client: Client) -> Optional[int]:
            call = Call(
                to_addr=address,
                selector=get_selector_from_name("implementation"),
                calldata=[],
            )
            (implementation,) = await client.call_contract(call=call)
            return implementation

copy/pasted from ArgentProxyCheck with implementation instead of get_implementation. Another option would be to drop these classes and implement some wild guess rules, such as "if a method contains "implementation" then it's probably a proxy, then try to follow the hash (this kind of things done by starkscan for instance).
Up to you

Thank you for the request. Will discuss with the rest of the team, but if a different proxy is being used in the ETH contract then some kind of support our side seems reasonable to me.

note however that on the devnet the ETH is not deployed with a proxy pattern


filter for pervasive seq

It might be worth ensuring that the length of the filtered sequence is <= to the length of the original sequence.
The Dafny standard library also throws in a lemma about filter distributing over concatenation, which might be nice to include here too.

Another thing to consider is whether filter_lemma should have a #[verifier(broadcast_forall)], so that you get those properties for free when you use filter, rather than having to remember to invoke the lemma.  The Dafny version does this by providing them as postconditions on filter itself.

The Dafny standard library also throws in a lemma about filter distributing over concatenation, which might be nice to include here too.

Btw, I'm happy to port this over if you'd like.

Another thing to consider is whether filter_lemma should have a #[verifier(broadcast_forall)], so that you get those properties for free when you use filter, rather than having to remember to invoke the lemma. The Dafny version does this by providing them as postconditions on filter itself.

This is consistent with https://github.com/verus-lang/verus/pull/393#discussion_r1120379748 and while it does introduce two quantifiers, they seem relatively safe (as they include .filter(_)).
/cc @Chris-Hawblitzel, opinions?

I believe we need to add an additional lemma with the same signature and an empty body (with #[verifier(external_body)] for the broadcast_forall (as I believe it's currently not allowed to non-trusted proof fns.

That's correct.

Can you add a couple of minimal tests to tests/seqs.rs like in this PR https://github.com/verus-lang/verus/pull/393/files ?

I'd also recommend making filter opaque.

This is consistent with #393 (comment) and while it does introduce two quantifiers, they seem relatively safe (as they include .filter(_)).

It's probably fine, because the triggers on the forall i quantifiers are very specific.

@parno I added the distribution lemma, which entailed adding a couple other distribution lemmas for push and drop_last.
@utaal What did you have in mind for the tests? This is a lib file; I've proven every ensures.
@Chris-Hawblitzel I added broadcast versions of the lemmas, but as you note they have to be axioms :v( Please take a look to see if the new foralls are too broad. Also, do broadcasts work from inside impls?

I think a #[broadcast_forall] lemma is missing for filter_lemma?
I was thinking of something like:
            // TODO reveal_with_fuel(Seq::<int>::filter, 10);
            // TODO assert(s1.filter(|x: int| x <= 20).len() == 3);

            assert(s1.filter(|x: int| x <= 20).len() <= s1.len());

but it turns out the reveal_with_fuel generates invalid AIR.

I added a #[verifier(broadcast_forall)] version of the filter_lemma, which I think was missing. And I added a couple of usage tests.

@utaal What did you have in mind for the tests?

Testing call-sites and that broadcast_forall lemmas are being triggered as expected, like in my last commit.

@utaal thanks for the explanation about testing broadcast, that makes sense. I added a comment so future me will remember why we need tests verified libraries. :v)


Settings

Some way to store variables. For example: calendar_id, so in the next year is easy to change.

Social links variables


Reject Submissions

We need to have some conditions for rejecting submissions before they are stored in the DB.
Possible Conditions:

Too Big
Too Late (see #36)
Too Many Submissions Total
Too Many Submissions in a Window (Rate Limiting)

The infrastructure for this is in:
9c20e1a548c84d17ff08b06f1a0c2f4e3b42597e
Along with rejections for max number of submissions and max submissions within a window.

During tutoring, it can be annoying when students run into their submission limit.
It would be great to have a way to uncap the limit during tutoring.
Some possible solutions:

Give a time based code that allows for unlimited submissions for X hours.
Give a coupon for X number of submissions that do not count towards (or rely on) on the limit.
Allow a course grader to execute a command to give the student either of the above options.


Panel plugin with id agenty-flowcharting-panel could not be found

Anyone help me please ?
i Have agenty-flowcharting installed running on grafana 6. But still got the message
"Panel plugin with id agenty-flowcharting-panel could not be found" when i try to create a dashboard.
Any thoughts?

see https://grafana.com/docs/grafana/latest/plugins/plugin-signature-verification/
plugin is unsigned at this time

My docker image grafana/grafana:latest was cached at v6.1.5.
Testing with: GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=agenty-flowcharting-panel see config doesn't solve this issue.

Looking at https://www.npmjs.com/package/@grafana/data it says this is in beta, and looking at the version history there isn't a 6.1.x version of it.
Next I tried docker pull grafana/grafana moving me up to v7.1.5 the plugin loads no problem.
So I'm expecting the @grafana/data dependency of the plugin gives it a minimum version requirement of somewhere around v6.4.x?

Yeah, 6.4.x+. 6.4.1 doesn't work.

Fixed in 0.9.1 SNAPSHOT, i use too early grafana libs v7